uityu.shared 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # uityu.shared
2
2
 
3
- Paquete compartido para los microservicios de UITYU. Expone infraestructura lista para producción (Firebase Admin, utilidades y cimientos de seguridad) con una API predecible y orientada a DDD.
3
+ Paquete compartido para los microservicios de UITYU. Expone infraestructura lista para producción (Firebase Admin, utilidades comunes, logging, normalización de texto, búsqueda, HTTP, etc.) con una API predecible y orientada a DDD.
4
4
 
5
5
  ## Instalación
6
6
 
@@ -21,47 +21,78 @@ import { getOrCreateFirebaseAdmin } from 'uityu.shared/firebase/admin';
21
21
  ```ts
22
22
  import { getOrCreateFirebaseAdmin } from 'uityu.shared/firebase/admin';
23
23
 
24
- const fb = getOrCreateFirebaseAdmin({
24
+ const firebase = getOrCreateFirebaseAdmin({
25
25
  projectId: 'my-project',
26
- tenantDbId: '(default)'
26
+ defaultFirestoreAlias: 'primary',
27
+ defaultFirestoreDbId: '(default)'
27
28
  });
28
29
 
29
- await fb.firestore.collection('users').doc('123').get();
30
+ await firebase.defaultFirestore.collection('users').doc('123').get();
30
31
  ```
31
32
 
32
- ### Multi Firestore DB + multi-tenant
33
+ ### Multi Firestore con alias
33
34
 
34
35
  ```ts
35
36
  import { getOrCreateFirebaseAdmin } from 'uityu.shared/firebase/admin';
36
37
 
37
- const fb = getOrCreateFirebaseAdmin({
38
- projectId: 'my-project',
39
- tenantDbId: 'tenant-eu',
40
- securityDbId: 'security-global',
41
- appName: 'tenant-eu-app'
38
+ const firebase = getOrCreateFirebaseAdmin({
39
+ projectId: 'analytics-project',
40
+ firestoreDatabases: [
41
+ { alias: 'default', dbId: '(default)' },
42
+ { alias: 'audit', dbId: 'audit-db' },
43
+ { alias: 'analytics', dbId: 'analytics-db' }
44
+ ]
45
+ });
46
+
47
+ const auditDb = firebase.getFirestore('audit');
48
+ const analyticsDb = firebase.getFirestore('analytics');
49
+
50
+ await auditDb.collection('events').add({ type: 'ACCESS', createdAt: Date.now() });
51
+ await analyticsDb.collection('dashboards').doc('overview').set({ views: 420 });
52
+ ```
53
+
54
+ ### Alias impulsados por variables de entorno
55
+
56
+ ```
57
+ FIREBASE_PROJECT_ID=my-shared-project
58
+ FIRESTORE_DB_DEFAULT=(default)
59
+ FIRESTORE_DB_ALIASES={"audit":"audit-db","analytics":"analytics-db"}
60
+ ```
61
+
62
+ ```ts
63
+ import { getOrCreateFirebaseAdmin } from 'uityu.shared/firebase/admin';
64
+
65
+ const firebase = getOrCreateFirebaseAdmin({
66
+ env: () => ({
67
+ FIREBASE_PROJECT_ID: process.env.FIREBASE_PROJECT_ID,
68
+ FIRESTORE_DB_DEFAULT: process.env.FIRESTORE_DB_DEFAULT,
69
+ FIRESTORE_DB_ALIASES: process.env.FIRESTORE_DB_ALIASES
70
+ })
42
71
  });
43
72
 
44
- await fb.tenantFirestore.collection('profiles').get();
45
- await fb.securityFirestore.collection('audits').get();
73
+ const primaryDb = firebase.getFirestore();
74
+ const auditDb = firebase.getFirestore('audit');
46
75
  ```
47
76
 
48
- ### Uso avanzado con credenciales y storage
77
+ ### Uso avanzado con credenciales y Storage
49
78
 
50
79
  ```ts
51
80
  import { createFirebaseAdmin } from 'uityu.shared/firebase/admin';
52
- import { credential } from 'firebase-admin';
81
+ import * as admin from 'firebase-admin';
53
82
 
54
- const fb = createFirebaseAdmin({
83
+ const firebase = createFirebaseAdmin({
55
84
  projectId: 'secure-project',
56
- credential: credential.cert(JSON.parse(process.env.FIREBASE_SA_JSON ?? '{}')),
57
- tenantDbId: 'tenant',
58
- securityDbId: 'security',
85
+ credential: admin.credential.cert(JSON.parse(process.env.FIREBASE_SA_JSON ?? '{}')),
59
86
  storageBucket: 'secure-project.appspot.com',
87
+ firestoreDbAliases: {
88
+ default: '(default)',
89
+ media: 'media-db'
90
+ },
60
91
  appName: 'secure-project::primary'
61
92
  });
62
93
 
63
- await fb.auth.getUser('uid');
64
- await fb.storage.bucket().file('path/to/file');
94
+ await firebase.auth.getUser('uid');
95
+ await firebase.storage.bucket().file('path/to/file');
65
96
  ```
66
97
 
67
98
  ### Idempotente por diseño
@@ -73,14 +104,14 @@ await fb.storage.bucket().file('path/to/file');
73
104
 
74
105
  Cada factory devuelve un objeto con:
75
106
 
76
- - `app`: instancia de `firebase-admin`
77
- - `tenantFirestore`: Firestore del tenant
78
- - `securityFirestore`: Firestore secundario de seguridad
79
- - `firestore`: alias del `tenantFirestore`
80
- - `auth`: `Auth` inicializado
81
- - `storage`: `Storage` inicializado
107
+ - `app`: instancia de `firebase-admin`.
108
+ - `defaultFirestore`: instancia asociada al alias predeterminado.
109
+ - `firestores`: mapa alias -> instancia lazily inicializada.
110
+ - `getFirestore(alias?)`: helper para resolver una base por alias (usa el alias predeterminado si se omite).
111
+ - `auth`: `Auth` inicializado.
112
+ - `storage`: `Storage` inicializado.
82
113
 
83
- ## Common utilities (`uityu.shared/common/*`)
114
+ ## Common utilities (`@uityu/uityu-shared/common/*`)
84
115
 
85
116
  ### Logging listo para JSON
86
117
 
@@ -121,7 +152,7 @@ const keepCase = normalizeText(' Mixed Value ', { lowercase: false });
121
152
  // -> 'Mixed Value'
122
153
  ```
123
154
 
124
- ## Errores + HTTP (`uityu.shared/errors`, `uityu.shared/http`)
155
+ ## Errores + HTTP (`@uityu/uityu-shared/errors`, `@uityu/uityu-shared/http`)
125
156
 
126
157
  ```ts
127
158
  import { AppErrorFactory } from 'uityu.shared/errors';
@@ -163,7 +194,7 @@ export const handler = (req, res, next) => {
163
194
  };
164
195
  ```
165
196
 
166
- ## Búsqueda (`uityu.shared/search`)
197
+ ## Búsqueda (`@uityu/uityu-shared/search`)
167
198
 
168
199
  ```ts
169
200
  import {
@@ -185,10 +216,10 @@ for (const prefix of prefixes) {
185
216
 
186
217
  ## Por qué adoptar este paquete
187
218
 
188
- - Sin copy/paste entre microservicios
189
- - API estable y versionable (semver)
190
- - Facilita pruebas e inyección de dependencias
191
- - Alineado con DDD y SOLID
219
+ - Sin copy/paste entre microservicios.
220
+ - API estable y versionable (semver).
221
+ - Facilita pruebas e inyección de dependencias.
222
+ - Alineado con DDD y SOLID.
192
223
  - Preparado para extender con `firebase/functions`, `firebase/pubsub`, etc.
193
224
 
194
225
  ## Roadmap sugerido
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-admin.cache.d.ts","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAI3H,eAAO,MAAM,kBAAkB;aACpB,qBAAqB,GAAG,mBAAmB,GAAG,SAAS;aAGvD,qBAAqB,UAAU,mBAAmB,GAAG,mBAAmB;aAIxE,qBAAqB,GAAG,OAAO;CAGzC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,6BAA6B,KAAG,qBACgB,CAAC"}
1
+ {"version":3,"file":"firebase-admin.cache.d.ts","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAI3H,eAAO,MAAM,kBAAkB;aACpB,qBAAqB,GAAG,mBAAmB,GAAG,SAAS;aAGvD,qBAAqB,UAAU,mBAAmB,GAAG,mBAAmB;aAIxE,qBAAqB,GAAG,OAAO;CAGzC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,6BAA6B,KAAG,qBAOtE,CAAC"}
@@ -11,5 +11,11 @@ export const firebaseAdminCache = {
11
11
  return facadeCache.has(key);
12
12
  }
13
13
  };
14
- export const createCacheKey = (config) => [config.projectId, config.tenantDbId, config.securityDbId, config.appName].join('::');
14
+ export const createCacheKey = (config) => {
15
+ const aliases = Object.keys(config.firestore.dbIds)
16
+ .sort()
17
+ .map((alias) => `${alias}:${config.firestore.dbIds[alias]}`)
18
+ .join('|');
19
+ return [config.projectId, config.firestore.defaultAlias, aliases, config.appName].join('::');
20
+ };
15
21
  //# sourceMappingURL=firebase-admin.cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-admin.cache.js","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.cache.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8C,CAAC;AAE1E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,CAAC,GAA0B;QAC5B,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,GAAG,CAAC,GAA0B,EAAE,MAA2B;QACzD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,GAAG,CAAC,GAA0B;QAC5B,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAqC,EAAyB,EAAE,CAC7F,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"firebase-admin.cache.js","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.cache.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8C,CAAC;AAE1E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,CAAC,GAA0B;QAC5B,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,GAAG,CAAC,GAA0B,EAAE,MAA2B;QACzD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,GAAG,CAAC,GAA0B;QAC5B,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAqC,EAAyB,EAAE;IAC7F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;SAChD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-admin.factory.d.ts","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.factory.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,2BAA2B,CAAC;AAMnC,eAAO,MAAM,mBAAmB,GAAI,QAAQ,mBAAmB,KAAG,mBAWjE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,mBAAmB,KAAG,mBAUtE,CAAC"}
1
+ {"version":3,"file":"firebase-admin.factory.d.ts","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.factory.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,mBAAmB,GAAI,QAAQ,mBAAmB,KAAG,mBAWjE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,mBAAmB,KAAG,mBAUtE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { credential } from 'firebase-admin';
1
+ import * as admin from 'firebase-admin';
2
2
  import { getApp, initializeApp } from 'firebase-admin/app';
3
3
  import { getAuth } from 'firebase-admin/auth';
4
4
  import { getFirestore } from 'firebase-admin/firestore';
@@ -6,6 +6,7 @@ import { getStorage } from 'firebase-admin/storage';
6
6
  import { FirebaseAdminError } from './firebase-admin.types.js';
7
7
  import { createCacheKey, firebaseAdminCache } from './firebase-admin.cache.js';
8
8
  const DEFAULT_DB = '(default)';
9
+ const DEFAULT_ALIAS = 'default';
9
10
  const DEFAULT_APP_PREFIX = 'uityu.shared';
10
11
  export const createFirebaseAdmin = (config) => {
11
12
  const normalized = normalizeConfig(config);
@@ -26,13 +27,30 @@ export const getOrCreateFirebaseAdmin = (config) => {
26
27
  };
27
28
  const bootstrapFirebaseAdmin = (config) => {
28
29
  const app = getOrInitializeApp(config);
29
- const tenantFirestore = getFirestore(app, config.tenantDbId);
30
- const securityFirestore = config.securityDbId === config.tenantDbId ? tenantFirestore : getFirestore(app, config.securityDbId);
30
+ const firestores = {};
31
+ const { defaultAlias, dbIds } = config.firestore;
32
+ firestores[defaultAlias] = getFirestore(app, dbIds[defaultAlias]);
33
+ const resolveFirestoreByAlias = (alias) => {
34
+ const targetAlias = alias ?? defaultAlias;
35
+ const cached = firestores[targetAlias];
36
+ if (cached) {
37
+ return cached;
38
+ }
39
+ const dbId = dbIds[targetAlias];
40
+ if (!dbId) {
41
+ throw new FirebaseAdminError(`Firestore alias "${targetAlias}" is not configured.`);
42
+ }
43
+ const instance = getFirestore(app, dbId);
44
+ firestores[targetAlias] = instance;
45
+ return instance;
46
+ };
47
+ const defaultFirestore = firestores[defaultAlias];
31
48
  return {
32
49
  app,
33
- tenantFirestore,
34
- securityFirestore,
35
- firestore: tenantFirestore,
50
+ firestore: defaultFirestore,
51
+ defaultFirestore,
52
+ firestores,
53
+ getFirestore: resolveFirestoreByAlias,
36
54
  auth: getAuth(app),
37
55
  storage: getStorage(app)
38
56
  };
@@ -60,26 +78,89 @@ const buildAppOptions = (config) => {
60
78
  options.credential = config.credential;
61
79
  }
62
80
  else if (config.serviceAccount) {
63
- options.credential = credential.cert(config.serviceAccount);
81
+ options.credential = admin.credential.cert(config.serviceAccount);
64
82
  }
65
83
  return options;
66
84
  };
67
85
  const normalizeConfig = (config) => {
68
86
  const envRecord = resolveEnv(config.env, config.useProcessEnvFallback ?? true);
69
- const projectId = requireValue(config.projectId, envRecord.APP_TENANT_PROJECT_ID, envRecord.GCLOUD_PROJECT);
70
- const tenantDbId = resolveValue(config.tenantDbId, envRecord.FIRESTORE_DB_TENANT) ?? DEFAULT_DB;
71
- const securityDbId = resolveValue(config.securityDbId, envRecord.FIRESTORE_DB_SECURITY) ?? tenantDbId;
87
+ const projectId = requireValue(config.projectId, envRecord.FIREBASE_PROJECT_ID, envRecord.GCLOUD_PROJECT);
88
+ const firestore = normalizeFirestoreConfig(config, envRecord);
72
89
  const appName = resolveValue(config.appName) ?? `${DEFAULT_APP_PREFIX}::${projectId}`;
73
90
  return {
74
91
  projectId,
75
- tenantDbId,
76
- securityDbId,
92
+ firestore,
77
93
  appName,
78
94
  storageBucket: resolveValue(config.storageBucket),
79
95
  credential: config.credential,
80
96
  serviceAccount: config.serviceAccount
81
97
  };
82
98
  };
99
+ const normalizeFirestoreConfig = (config, envRecord) => {
100
+ const defaultAlias = resolveValue(config.defaultFirestoreAlias) ?? DEFAULT_ALIAS;
101
+ const defaultDbId = resolveValue(config.defaultFirestoreDbId, envRecord.FIRESTORE_DB_DEFAULT) ?? DEFAULT_DB;
102
+ const aliasMap = {};
103
+ applyAliasRecord(aliasMap, parseAliasRecord(envRecord.FIRESTORE_DB_ALIASES));
104
+ applyAliasRecord(aliasMap, config.firestoreDbAliases);
105
+ applyAliasRecord(aliasMap, convertDatabaseArray(config.firestoreDatabases));
106
+ aliasMap[defaultAlias] = defaultDbId;
107
+ return {
108
+ defaultAlias,
109
+ dbIds: aliasMap
110
+ };
111
+ };
112
+ const convertDatabaseArray = (entries) => {
113
+ if (!entries?.length) {
114
+ return undefined;
115
+ }
116
+ return entries.reduce((acc, entry) => {
117
+ if (!entry) {
118
+ return acc;
119
+ }
120
+ const alias = trim(entry.alias);
121
+ const dbId = trim(entry.dbId);
122
+ if (alias && dbId) {
123
+ acc[alias] = dbId;
124
+ }
125
+ return acc;
126
+ }, {});
127
+ };
128
+ const applyAliasRecord = (target, source) => {
129
+ if (!source) {
130
+ return;
131
+ }
132
+ for (const [alias, dbId] of Object.entries(source)) {
133
+ const cleanAlias = trim(alias);
134
+ const cleanDbId = trim(dbId);
135
+ if (cleanAlias && cleanDbId) {
136
+ target[cleanAlias] = cleanDbId;
137
+ }
138
+ }
139
+ };
140
+ const parseAliasRecord = (raw) => {
141
+ if (!raw) {
142
+ return undefined;
143
+ }
144
+ try {
145
+ const parsed = JSON.parse(raw);
146
+ if (!parsed || typeof parsed !== 'object') {
147
+ throw new Error('Alias definition must be an object.');
148
+ }
149
+ return Object.entries(parsed).reduce((acc, [alias, value]) => {
150
+ const cleanAlias = trim(alias);
151
+ const cleanValue = typeof value === 'string' ? trim(value) : undefined;
152
+ if (cleanAlias && cleanValue) {
153
+ acc[cleanAlias] = cleanValue;
154
+ }
155
+ return acc;
156
+ }, {});
157
+ }
158
+ catch (error) {
159
+ throw new FirebaseAdminError('Unable to parse FIRESTORE_DB_ALIASES env variable. Expected JSON object string.', {
160
+ cause: error
161
+ });
162
+ }
163
+ };
83
164
  const resolveEnv = (source, allowProcessEnv) => {
84
165
  if (source) {
85
166
  return sanitizeEnv(typeof source === 'function' ? source() : source);
@@ -90,10 +171,10 @@ const resolveEnv = (source, allowProcessEnv) => {
90
171
  return {};
91
172
  };
92
173
  const sanitizeEnv = (record = {}) => ({
93
- APP_TENANT_PROJECT_ID: trim(record.APP_TENANT_PROJECT_ID),
174
+ FIREBASE_PROJECT_ID: trim(record.FIREBASE_PROJECT_ID),
94
175
  GCLOUD_PROJECT: trim(record.GCLOUD_PROJECT),
95
- FIRESTORE_DB_TENANT: trim(record.FIRESTORE_DB_TENANT),
96
- FIRESTORE_DB_SECURITY: trim(record.FIRESTORE_DB_SECURITY)
176
+ FIRESTORE_DB_DEFAULT: trim(record.FIRESTORE_DB_DEFAULT),
177
+ FIRESTORE_DB_ALIASES: trim(record.FIRESTORE_DB_ALIASES)
97
178
  });
98
179
  const resolveValue = (...candidates) => {
99
180
  for (const candidate of candidates) {
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-admin.factory.js","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firebase-admin.factory.js","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.factory.ts"],"names":[],"mappings":"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"}
@@ -3,23 +3,32 @@ import type { App } from 'firebase-admin/app';
3
3
  import type { Auth } from 'firebase-admin/auth';
4
4
  import type { Firestore } from 'firebase-admin/firestore';
5
5
  import type { Storage } from 'firebase-admin/storage';
6
- export type FirebaseEnvRecord = Partial<Record<'APP_TENANT_PROJECT_ID' | 'GCLOUD_PROJECT' | 'FIRESTORE_DB_TENANT' | 'FIRESTORE_DB_SECURITY', string | undefined>>;
6
+ export type FirebaseEnvRecord = Partial<Record<'FIREBASE_PROJECT_ID' | 'GCLOUD_PROJECT' | 'FIRESTORE_DB_DEFAULT' | 'FIRESTORE_DB_ALIASES', string | undefined>>;
7
7
  export type FirebaseEnvSource = FirebaseEnvRecord | (() => FirebaseEnvRecord);
8
+ export interface FirestoreDatabaseConfig {
9
+ alias: string;
10
+ dbId: string;
11
+ }
8
12
  export interface FirebaseAdminConfig {
9
13
  projectId?: string;
10
14
  credential?: AppOptions['credential'];
11
15
  serviceAccount?: ServiceAccount;
12
16
  storageBucket?: string;
13
- tenantDbId?: string;
14
- securityDbId?: string;
17
+ defaultFirestoreAlias?: string;
18
+ defaultFirestoreDbId?: string;
19
+ firestoreDatabases?: FirestoreDatabaseConfig[];
20
+ firestoreDbAliases?: Record<string, string>;
15
21
  appName?: string;
16
22
  env?: FirebaseEnvSource;
17
23
  useProcessEnvFallback?: boolean;
18
24
  }
25
+ export interface NormalizedFirestoreConfig {
26
+ defaultAlias: string;
27
+ dbIds: Record<string, string>;
28
+ }
19
29
  export interface NormalizedFirebaseAdminConfig {
20
30
  projectId: string;
21
- tenantDbId: string;
22
- securityDbId: string;
31
+ firestore: NormalizedFirestoreConfig;
23
32
  appName: string;
24
33
  storageBucket?: string;
25
34
  credential?: AppOptions['credential'];
@@ -27,9 +36,10 @@ export interface NormalizedFirebaseAdminConfig {
27
36
  }
28
37
  export interface FirebaseAdminFacade {
29
38
  app: App;
30
- tenantFirestore: Firestore;
31
- securityFirestore: Firestore;
32
39
  firestore: Firestore;
40
+ defaultFirestore: Firestore;
41
+ firestores: Record<string, Firestore>;
42
+ getFirestore(alias?: string): Firestore;
33
43
  auth: Auth;
34
44
  storage: Storage;
35
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-admin.types.d.ts","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,MAAM,CAAC,uBAAuB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC,CACzH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,CAAC,MAAM,iBAAiB,CAAC,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,GAAG,CAAC;IACT,eAAe,EAAE,SAAS,CAAC;IAC3B,iBAAiB,EAAE,SAAS,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAO3D"}
1
+ {"version":3,"file":"firebase-admin.types.d.ts","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,MAAM,CACF,qBAAqB,GACrB,gBAAgB,GAChB,sBAAsB,GACtB,sBAAsB,EACxB,MAAM,GAAG,SAAS,CACnB,CACF,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,CAAC,MAAM,iBAAiB,CAAC,CAAC;AAE9E,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,yBAAyB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAO3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-admin.types.js","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.types.ts"],"names":[],"mappings":"AA6CA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YAClB,IAAoC,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"firebase-admin.types.js","sourceRoot":"","sources":["../../../src/firebase/admin/firebase-admin.types.ts"],"names":[],"mappings":"AA+DA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YAClB,IAAoC,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uityu.shared",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Shared infrastructure toolkit for UITYU microservices (Cloud Functions, SSR, APIs).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",