{"version":3,"file":"angular-fire-ai.mjs","sources":["../../../src/ai/ai.ts","../../../src/ai/ai.module.ts","../../../src/ai/firebase.ts","../../../src/ai/angular-fire-ai.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { AI as FirebaseAI } from 'firebase/ai';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AI extends FirebaseAI {}\n\nexport class AI {\n  constructor(ai: FirebaseAI) {\n    return ai;\n  }\n}\n\nexport const AI_PROVIDER_NAME = 'AI';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AIInstances extends Array<FirebaseAI> {}\n\nexport class AIInstances {\n  constructor() {\n    return ɵgetAllInstancesOf<FirebaseAI>(AI_PROVIDER_NAME);\n  }\n}\n\nexport const AIInstance$ = timer(0, 300).pipe(\n  concatMap(() => from(ɵgetAllInstancesOf<FirebaseAI>(AI_PROVIDER_NAME))),\n  distinct(),\n);\n","import {\n  EnvironmentProviders,\n  InjectionToken,\n  Injector,\n  NgModule,\n  NgZone,\n  Optional,\n  makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { AI as FirebaseAI } from 'firebase/ai';\nimport { registerVersion } from 'firebase/app';\nimport { AI, AIInstances, AI_PROVIDER_NAME } from './ai';\n\nexport const PROVIDED_AI_INSTANCES = new InjectionToken<AI[]>('angularfire2.ai-instances');\n\nexport function defaultAIInstanceFactory(provided: FirebaseAI[]|undefined, defaultApp: FirebaseApp) {\n  const defaultAI = ɵgetDefaultInstanceOf<FirebaseAI>(AI_PROVIDER_NAME, provided, defaultApp);\n  return defaultAI && new AI(defaultAI);\n}\n\nexport function AIInstanceFactory(fn: (injector: Injector) => FirebaseAI) {\n  return (zone: NgZone, injector: Injector) => {\n    const ai = zone.runOutsideAngular(() => fn(injector));\n    return new AI(ai);\n  };\n}\n\nconst AI_INSTANCES_PROVIDER = {\n  provide: AIInstances,\n  deps: [\n    [new Optional(), PROVIDED_AI_INSTANCES ],\n  ]\n};\n\nconst DEFAULT_AI_INSTANCE_PROVIDER = {\n  provide: AI,\n  useFactory: defaultAIInstanceFactory,\n  deps: [\n    [new Optional(), PROVIDED_AI_INSTANCES ],\n    FirebaseApp,\n  ]\n};\n\n@NgModule({\n  providers: [\n    DEFAULT_AI_INSTANCE_PROVIDER,\n    AI_INSTANCES_PROVIDER,\n  ]\n})\nexport class AIModule {\n  constructor() {\n    registerVersion('angularfire', VERSION.full, 'ai');\n  }\n}\n\nexport function provideAI(fn: (injector: Injector) => FirebaseAI, ...deps: any[]): EnvironmentProviders {\n  registerVersion('angularfire', VERSION.full, 'ai');\n\n  return makeEnvironmentProviders([\n    DEFAULT_AI_INSTANCE_PROVIDER,\n    AI_INSTANCES_PROVIDER,\n    {\n      provide: PROVIDED_AI_INSTANCES,\n      useFactory: AIInstanceFactory(fn),\n      multi: true,\n      deps: [\n        NgZone,\n        Injector,\n        ɵAngularFireSchedulers,\n        FirebaseApps,\n        [new Optional(), AppCheckInstances ],\n        ...deps,\n      ]\n    }\n  ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/ai';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n  getAI as _getAI,\n  getGenerativeModel as _getGenerativeModel,\n  getImagenModel as _getImagenModel,\n  getVertexAI as _getVertexAI\n} from 'firebase/ai';\n\nexport const getAI = ɵzoneWrap(_getAI, true);\nexport const getGenerativeModel = ɵzoneWrap(_getGenerativeModel, true);\nexport const getImagenModel = ɵzoneWrap(_getImagenModel, true);\nexport const getVertexAI = ɵzoneWrap(_getVertexAI, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵzoneWrap","_getAI","_getGenerativeModel","_getImagenModel","_getVertexAI"],"mappings":"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"}