firebase-contract 0.1.0-rc.13 → 0.1.0-rc.15

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
@@ -10,7 +10,7 @@ From one contract, generate:
10
10
  - **Zod** validation schemas
11
11
  - **Data Connect** GraphQL schema (`@table`, keys, directives), query/mutation
12
12
  operations (routed per connector), and `Any`↔logical adapters
13
- - **Firestore** projection schemas (denormalized read model with `_meta_`)
13
+ - **Firestore** projection schemas (denormalized read model; shared field groups via fragments)
14
14
  - **API** request/response types, request-validation Zod, and class-validator DTOs
15
15
  - **Cloud Task / Pub/Sub** payload envelopes + delivery constants
16
16
  - **SQL migrations** for constraints Data Connect can't express (composite FKs,
@@ -200,6 +200,14 @@ typo like `optionnal:` must not quietly turn into a required field. There is
200
200
  no `version:` field: nothing consumes one, so accepting it would only fake a
201
201
  compatibility mechanism that does not exist.
202
202
 
203
+ **Out-of-vocabulary values are errors too.** A value outside a field's fixed
204
+ set is `INVALID_VALUE` rather than a silent coercion: `auth: PUBILC` does not
205
+ quietly become `NO_ACCESS`, `dir: Dsec` does not become `ASC`, and a mistyped
206
+ `action` / `single` / `keyArg` / `style.*` is not dropped. The one exception is
207
+ `where.op`, which is warned (`UNKNOWN_WHERE_OP`) not errored — it is emitted
208
+ verbatim into GraphQL and the recognized-operator list may lag Data Connect, so
209
+ a typo is surfaced without rejecting a valid-but-unlisted operator.
210
+
203
211
  ```yaml
204
212
  imports:
205
213
  - ./apps/shop/data-connect/schema.yml
@@ -473,9 +481,9 @@ reality automatically:
473
481
 
474
482
  - **relations → resolved string ids** (`ownerUser` → `ownerUserId: z.string()`)
475
483
  - **timestamps → `z.date()`**, optional fields → `.nullable()`
476
- - a **`_meta_`** consistency envelope is attached (opt out with `meta: false`)
477
484
  - `pick` / `omit` select which base fields survive
478
485
  - inline `fields` add denormalized data (flattened DAG edges, stringified JSON)
486
+ - `extends: [<fragment>…]` splices shared fields in (see **Fragments** below)
479
487
 
480
488
  ```yaml
481
489
  firestore:
@@ -509,7 +517,6 @@ export const ShopSchema = DcShopSchema.pick({
509
517
  }).extend({
510
518
  createdAt: z.date(),
511
519
  updatedAt: z.date().nullable(),
512
- _meta_: _Meta_Schema,
513
520
  })
514
521
  ```
515
522
 
@@ -526,6 +533,46 @@ Additional projection options:
526
533
  - FS-only enums render as frozen consts (`REVIEW_STATE` + `ReviewStateSchema`),
527
534
  co-located with the first projection that references them
528
535
 
536
+ ### Fragments (`fragments:` + `extends:`)
537
+
538
+ A **fragment** is a named group of fields declared once and spliced into
539
+ consumers via `extends: [<name>…]` — the way to share a common field across
540
+ many projections (a consistency `_meta_` envelope, audit columns, …) without a
541
+ tool-imposed convention. The fragment field's name, type, and which docs carry
542
+ it are all yours.
543
+
544
+ The value objects a fragment references can be **pinned** to a fixed split
545
+ output via `out` (+ optional `file`) on the model declaration. A pinned value
546
+ object is *placement-scoped*: emitted only at that location (dependency-ordered,
547
+ with an `index.ts` barrel), imported by consumers via that directory, and
548
+ excluded from the default `typescript`/`zod` barrels — so it lives purely in the
549
+ firestore output. This is what lets a shared envelope sit under `firestore/_/`.
550
+
551
+ ```yaml
552
+ models:
553
+ MetaOp:
554
+ out: firestore/_ # → firestore/_/_meta_.ts (+ firestore/_/index.ts)
555
+ file: _meta_.ts
556
+ fields:
557
+ id: { type: string }
558
+ Meta:
559
+ out: firestore/_
560
+ file: _meta_.ts
561
+ fields:
562
+ scope: { type: float, nullable: true }
563
+ op: { type: MetaOp, nullable: true }
564
+
565
+ fragments:
566
+ meta:
567
+ fields:
568
+ _meta_: { type: Meta }
569
+
570
+ firestore:
571
+ Shop:
572
+ from: Shop
573
+ extends: [meta] # appends `_meta_: MetaSchema` (imported from './_')
574
+ ```
575
+
529
576
  ## Discriminated unions
530
577
 
531
578
  ```yaml
@@ -609,7 +656,7 @@ project:
609
656
  | `data-connect-operations`| document | `<connector>/operations.gql` + `.ts`; `split: true` → `<connector>/operations/<entity>/{queries,mutations}.gql` | queries/mutations (where ops, orderBy, limit, aggregate, exprs, inc), per connector; split matches the real Data Connect repo layout |
610
657
  | `data-connect-adapter` | document | `data-connect-adapters.ts` | convert `Any` rows ⇄ logical types |
611
658
  | `firestore-types` | document | `firestore-types.ts` | naive TS types with Firestore `Timestamp` (all models) |
612
- | `firestore` | document | `firestore.ts`; `split: true` → `firestore/<collection>.ts` + barrel | Firestore projection Zod schemas (derived, denormalized); split adds `_meta_` under `firestore/_/`, DC-schema `.pick()` reuse, `FIRESTORE_DATABASES` constants in the barrel |
659
+ | `firestore` | document | `firestore.ts`; `split: true` → `firestore/<collection>.ts` + barrel | Firestore projection Zod schemas (derived, denormalized); `extends` fragments, pinned value objects under their `out` (e.g. `firestore/_/`), DC-schema `.pick()` reuse, `FIRESTORE_DATABASES` constants in the barrel |
613
660
  | `api-types` | api | `api-types.ts` | endpoint request/response types |
614
661
  | `api-validation` | api | `api-validation.ts` | endpoint request-validation Zod |
615
662
  | `api-dto` | api | `<operation>.dto.ts` per api | class-validator DTO classes (NestJS `dto/` convention) |
@@ -1 +1 @@
1
- {"version":3,"file":"firestore-projection-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/firestore/firestore-projection-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AA0F5E;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,QAAO,SAoBnD,CAAA"}
1
+ {"version":3,"file":"firestore-projection-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/firestore/firestore-projection-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AA4E5E;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,QAAO,SAiBnD,CAAA"}
@@ -1,4 +1,4 @@
1
- import { findModel } from '../../ir/ir.js';
1
+ import { findFragment, findModel } from '../../ir/ir.js';
2
2
  import { singleQuote } from '../support/naming.js';
3
3
  import { isRelation, relationFkName } from '../support/relations.js';
4
4
  import { headerBlocks } from '../support/header.js';
@@ -18,19 +18,6 @@ const SCALAR_ZOD = {
18
18
  json: 'z.unknown()',
19
19
  id: 'z.string()',
20
20
  };
21
- const META_BLOCK = [
22
- 'export const _Meta_OperationSchema = z.object({',
23
- ' id: z.string(),',
24
- ' identifierId: z.string(),',
25
- ' updatedAt: z.number(),',
26
- '})',
27
- 'export const _Meta_Schema = z.object({',
28
- ' scope: z.number().nullable(),',
29
- ' sys: z.number().nullable(),',
30
- ' op: _Meta_OperationSchema.nullable(),',
31
- '})',
32
- 'export type _Meta_ = z.infer<typeof _Meta_Schema>',
33
- ].join('\n');
34
21
  const fsField = (ir, field) => {
35
22
  const name = isRelation(field) ? relationFkName(field) : field.name;
36
23
  let schema;
@@ -69,7 +56,8 @@ const effectiveFields = (ir, doc) => {
69
56
  const { name, schema } = fsField(ir, field);
70
57
  entries.set(name, schema);
71
58
  }
72
- for (const field of doc.fields) {
59
+ const added = [...doc.fields, ...doc.extends.flatMap(name => findFragment(ir, name)?.fields ?? [])];
60
+ for (const field of added) {
73
61
  const { name, schema } = fsField(ir, field);
74
62
  entries.set(name, schema);
75
63
  }
@@ -82,8 +70,6 @@ const renderDoc = (ir, doc) => {
82
70
  else if (doc.description)
83
71
  lines.push(`// ${doc.description}`);
84
72
  const fields = effectiveFields(ir, doc).map(field => ` ${field.name}: ${field.schema},`);
85
- if (doc.meta)
86
- fields.push(' _meta_: _Meta_Schema,');
87
73
  lines.push(`export const ${doc.name}Schema = z.object({\n${fields.join('\n')}\n})`);
88
74
  lines.push(`export type ${doc.name} = z.infer<typeof ${doc.name}Schema>`);
89
75
  return lines.join('\n');
@@ -104,9 +90,6 @@ export const createFirestoreProjectionGenerator = () => withSplitVariant({
104
90
  return [];
105
91
  }
106
92
  const blocks = [...headerBlocks(context), "import { z } from 'zod'"];
107
- if (ir.firestore.some(doc => doc.meta)) {
108
- blocks.push(META_BLOCK);
109
- }
110
93
  for (const doc of ir.firestore) {
111
94
  blocks.push(renderDoc(ir, doc));
112
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"firestore-split-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/firestore/firestore-split-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AAyO5E;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,QAAO,SAqI5C,CAAA"}
1
+ {"version":3,"file":"firestore-split-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/firestore/firestore-split-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AAoN5E;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,QAAO,SAiL5C,CAAA"}
@@ -1,10 +1,16 @@
1
- import { findEnum, findModel } from '../../ir/ir.js';
1
+ import { findEnum, findFragment, findModel } from '../../ir/ir.js';
2
2
  import { zodConstraints } from '../support/constraints.js';
3
3
  import { headerBlocks } from '../support/header.js';
4
4
  import { camelCase, constantCase, pluralize, singleQuote } from '../support/naming.js';
5
5
  import { isRelation, relationFkName } from '../support/relations.js';
6
6
  import { collectDeps, kebabCase, tableNameOf } from '../support/split.js';
7
7
  import { outputFile } from '../support/templates.js';
8
+ /** Fields spliced into a projection by its `extends` fragments (in declared order). */
9
+ const fragmentFieldsOf = (ir, doc) => doc.extends.flatMap(name => findFragment(ir, name)?.fields ?? []);
10
+ /** True for a placement-pinned value object (emitted at its own `out`, not co-located). */
11
+ const isPinnedModel = (ir, name) => findModel(ir, name)?.out !== undefined;
12
+ /** Import path (dir barrel) from a `firestore/<name>.ts` doc to a pinned model's `out` dir. */
13
+ const pinnedImportPath = (out) => `./${out.startsWith('firestore/') ? out.slice('firestore/'.length) : out}`;
8
14
  // Projection-level scalars: timestamps become dates, ids/relations become
9
15
  // resolved (hashids-encoded) string ids.
10
16
  const SCALAR_FS = {
@@ -24,36 +30,6 @@ const SCALAR_EMBEDDED = {
24
30
  int: 'z.number().int()',
25
31
  int64: 'z.number().int()',
26
32
  };
27
- const META_FILE = `import { z } from 'zod'
28
-
29
- /**
30
- * Cloud Task 整合性管理用の operation 識別子メタ。
31
- * 整合性回復 (reconciliation) 処理の最新世代を表す。
32
- */
33
- export const _Meta_OperationSchema = z.object({
34
- /** opId (operation id) */
35
- id: z.string(),
36
- /** 整合性回復処理の識別子 */
37
- identifierId: z.string(),
38
- /** unixtime (最終更新) */
39
- updatedAt: z.number(),
40
- })
41
- export type _Meta_Operation = z.infer<typeof _Meta_OperationSchema>
42
-
43
- /**
44
- * 全 Firestore document に付ける整合性管理メタ。
45
- *
46
- * - \`scope\`: app hosting 経由で set される unixtime
47
- * - \`sys\`: cloud functions / cloud task 経由で set される unixtime
48
- * - \`op\`: cloud task で set される operation メタ
49
- */
50
- export const _Meta_Schema = z.object({
51
- scope: z.number().nullable(),
52
- sys: z.number().nullable(),
53
- op: _Meta_OperationSchema.nullable(),
54
- })
55
- export type _Meta_ = z.infer<typeof _Meta_Schema>
56
- `;
57
33
  const lineComments = (description, indent) => description ? description.split('\n').map(line => `${indent}// ${line}`.trimEnd()) : [];
58
34
  const jsdoc = (description, indent) => {
59
35
  if (!description)
@@ -216,7 +192,7 @@ const effectiveFields = (ir, doc) => {
216
192
  entries.set(name, { comments: [], entry: ` ${name}: ${schema},`, name, pickable });
217
193
  roots.push(field);
218
194
  }
219
- for (const field of doc.fields) {
195
+ for (const field of [...doc.fields, ...fragmentFieldsOf(ir, doc)]) {
220
196
  const { name, schema } = overrideFieldSchema(ir, field);
221
197
  const comments = field.jsdoc ? jsdoc(field.description, ' ') : lineComments(field.description, ' ');
222
198
  entries.set(name, { comments, entry: ` ${name}: ${schema},`, name, pickable: false });
@@ -249,7 +225,9 @@ export const createFirestoreSplitLayout = () => ({
249
225
  const pseudo = { name: `__${doc.name}`, fields: roots, key: [], indexes: [] };
250
226
  const collected = collectDeps(ir, [pseudo]);
251
227
  const included = (doc.include ?? []).filter(name => !collected.models.includes(name));
252
- const deps = { enums: collected.enums, models: [...included, ...collected.models] };
228
+ // Pinned value objects are emitted at their own `out`, never co-located.
229
+ const models = [...included, ...collected.models].filter(name => !isPinnedModel(ir, name));
230
+ const deps = { enums: collected.enums, models };
253
231
  docDeps.set(doc.name, deps);
254
232
  const moduleName = docModuleName(doc);
255
233
  for (const name of deps.enums)
@@ -285,8 +263,23 @@ export const createFirestoreSplitLayout = () => ({
285
263
  const importLines = [...external.entries()]
286
264
  .sort(([a], [b]) => a.localeCompare(b))
287
265
  .map(([home, symbols]) => `import { ${[...symbols].sort().join(', ')} } from './${home}'`);
288
- if (doc.meta)
289
- importLines.unshift(`import { _Meta_Schema } from './_'`);
266
+ // Pinned value objects directly referenced by this doc: imported from their out-dir barrel.
267
+ const { roots } = effectiveFields(ir, doc);
268
+ const pinnedImports = new Map();
269
+ for (const field of roots) {
270
+ if (field.type.kind === 'model' && isPinnedModel(ir, field.type.name)) {
271
+ const model = findModel(ir, field.type.name);
272
+ if (!model?.out)
273
+ continue;
274
+ const from = pinnedImportPath(model.out);
275
+ const set = pinnedImports.get(from) ?? new Set();
276
+ set.add(`${fsModelName(ir, field.type.name)}Schema`);
277
+ pinnedImports.set(from, set);
278
+ }
279
+ }
280
+ for (const [from, symbols] of [...pinnedImports.entries()].sort(([a], [b]) => a.localeCompare(b))) {
281
+ importLines.unshift(`import { ${[...symbols].sort().join(', ')} } from '${from}'`);
282
+ }
290
283
  // Fields whose Zod chain is identical to the Data Connect schema are
291
284
  // picked from it (single definition); only representation changes extend.
292
285
  const baseModel = doc.from ? findModel(ir, doc.from) : undefined;
@@ -330,8 +323,6 @@ export const createFirestoreSplitLayout = () => ({
330
323
  lines.push(...field.comments);
331
324
  lines.push(field.entry);
332
325
  }
333
- if (doc.meta)
334
- lines.push(' _meta_: _Meta_Schema,');
335
326
  lines.push('})');
336
327
  }
337
328
  else {
@@ -340,17 +331,48 @@ export const createFirestoreSplitLayout = () => ({
340
331
  lines.push(...field.comments);
341
332
  lines.push(field.entry);
342
333
  }
343
- if (doc.meta)
344
- lines.push(' _meta_: _Meta_Schema,');
345
334
  lines.push('})');
346
335
  }
347
336
  lines.push(`export type ${doc.name} = z.infer<typeof ${doc.name}Schema>`);
348
337
  blocks.push(lines.join('\n'));
349
338
  files.push({ path: `firestore/${moduleName}.ts`, content: `${blocks.join('\n\n')}\n` });
350
339
  }
351
- if (ir.firestore.some(doc => doc.meta)) {
352
- files.push({ path: 'firestore/_/_meta_.ts', content: META_FILE });
353
- files.push({ path: 'firestore/_/index.ts', content: `export * from './_meta_'\n` });
340
+ // Pinned value objects: emitted at their own `out` (grouped per out+file),
341
+ // dependencies first, with an index barrel. These replace the former
342
+ // hardcoded `_meta_` envelope — the shape now lives entirely in the contract.
343
+ const pinDirs = [];
344
+ const pinGroups = new Map();
345
+ for (const model of ir.models) {
346
+ if (model.out === undefined)
347
+ continue;
348
+ const file = model.file ?? 'index.ts';
349
+ const key = `${model.out}${file}`;
350
+ const group = pinGroups.get(key) ?? { out: model.out, file, models: [] };
351
+ group.models.push(model);
352
+ pinGroups.set(key, group);
353
+ }
354
+ for (const { out, file, models } of pinGroups.values()) {
355
+ // Order so a referenced value object is declared before its referrer (same file).
356
+ const ordered = [];
357
+ const placed = new Set();
358
+ const place = (m) => {
359
+ if (placed.has(m.name))
360
+ return;
361
+ placed.add(m.name);
362
+ for (const dep of collectDeps(ir, [m]).models) {
363
+ const depModel = models.find(x => x.name === dep);
364
+ if (depModel)
365
+ place(depModel);
366
+ }
367
+ ordered.push(m);
368
+ };
369
+ for (const m of models)
370
+ place(m);
371
+ const body = ['import { z }' + " from 'zod'", ...ordered.map(m => renderEmbeddedModel(ir, m))].join('\n\n');
372
+ const base = file.replace(/\.ts$/, '');
373
+ files.push({ path: `${out}/${file}`, content: `${body}\n` });
374
+ files.push({ path: `${out}/index.ts`, content: `export * from './${base}'\n` });
375
+ pinDirs.push(out);
354
376
  }
355
377
  // Barrel: database name constants (when the project defines services) + re-exports.
356
378
  const barrel = [...headerBlocks(context)];
@@ -367,8 +389,8 @@ export const createFirestoreSplitLayout = () => ({
367
389
  ].join('\n'));
368
390
  }
369
391
  const exportLines = ir.firestore.map(doc => `export * from './firestore/${docModuleName(doc)}'`);
370
- if (ir.firestore.some(doc => doc.meta))
371
- exportLines.push(`export * from './firestore/_'`);
392
+ for (const out of pinDirs)
393
+ exportLines.push(`export * from './${out}'`);
372
394
  barrel.push(['// Zod schema / TypeScript 型のエクスポート', ...exportLines].join('\n'));
373
395
  files.push({ path: outputFile(context, 'firestore.ts'), content: `${barrel.join('\n\n')}\n` });
374
396
  return files;
@@ -1 +1 @@
1
- {"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/support/split.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,EAAE,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIvD,qEAAqE;AACrE,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,OAAiE,CAAA;AAE1G,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,MAAyD,CAAA;AAEtG,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MAA6C,CAAA;AAavF,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,8DAA8D;IAC9D,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,EAAE,EAAE,OAAO,OAAO,EAAE,KAAG,UAuBtD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,OAAO,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAavE,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,2CAA2C;IAC3C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,qDAAqD;IACrD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,oDAAoD;IACpD,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,EAAE,KAAG,WAepC,CAAA"}
1
+ {"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/support/split.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,EAAE,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIvD,qEAAqE;AACrE,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,OAAiE,CAAA;AAE1G,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,MAAyD,CAAA;AAEtG,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MAA6C,CAAA;AAavF,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,8DAA8D;IAC9D,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,EAAE,EAAE,OAAO,OAAO,EAAE,KAAG,UAuBtD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,OAAO,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAavE,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,2CAA2C;IAC3C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,qDAAqD;IACrD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,oDAAoD;IACpD,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,EAAE,KAAG,WAgBpC,CAAA"}
@@ -90,7 +90,8 @@ export const splitGroups = (ir) => {
90
90
  }
91
91
  const leftoverEnums = ir.enums.map(e => e.name).filter(name => !enumHome.has(name));
92
92
  const leftoverModels = ir.models
93
- .filter(model => !isTable(model))
93
+ // Pinned value objects are emitted at their own `out`, never in the default barrels.
94
+ .filter(model => !isTable(model) && model.out === undefined)
94
95
  .map(model => model.name)
95
96
  .filter(name => !modelHome.has(name));
96
97
  return { tables, enumHome, modelHome, leftoverEnums, leftoverModels };
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/typescript/typescript-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AAO5E,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAS,0BAA+B,KAAG,SA0BpF,CAAA"}
1
+ {"version":3,"file":"typescript-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/typescript/typescript-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AAO5E,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAS,0BAA+B,KAAG,SA4BpF,CAAA"}
@@ -17,13 +17,15 @@ export const createTypeScriptGenerator = (options = {}) => {
17
17
  description: 'TypeScript interfaces and enum const/union types',
18
18
  generate(ir, context) {
19
19
  const blocks = [...headerBlocks(context)];
20
- if (usesJson(ir.models)) {
20
+ // Pinned value objects (models with `out`) are firestore-scoped: excluded here.
21
+ const models = ir.models.filter(model => model.out === undefined);
22
+ if (usesJson(models)) {
21
23
  blocks.push(JSON_TYPE);
22
24
  }
23
25
  for (const irEnum of ir.enums) {
24
26
  blocks.push(enumStyle === 'const' ? renderEnumConst(irEnum) : renderEnumUnion(irEnum));
25
27
  }
26
- for (const model of ir.models) {
28
+ for (const model of models) {
27
29
  blocks.push(renderModel(model, ir));
28
30
  }
29
31
  return [{ path: outputFile(context, 'types.ts'), content: `${blocks.join('\n\n')}\n` }];
@@ -1 +1 @@
1
- {"version":3,"file":"zod-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/zod/zod-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AAO5E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,SAoBnC,CAAA"}
1
+ {"version":3,"file":"zod-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/zod/zod-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AAO5E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,SAqBnC,CAAA"}
@@ -16,7 +16,8 @@ export const createZodGenerator = () => withSplitVariant({
16
16
  for (const irEnum of ir.enums) {
17
17
  blocks.push(renderEnum(irEnum));
18
18
  }
19
- for (const model of ir.models) {
19
+ // Pinned value objects (models with `out`) are firestore-scoped: excluded here.
20
+ for (const model of ir.models.filter(model => model.out === undefined)) {
20
21
  blocks.push(renderModel(model, ir));
21
22
  }
22
23
  return [{ path: outputFile(context, 'schemas.ts'), content: `${blocks.join('\n\n')}\n` }];
@@ -1 +1 @@
1
- {"version":3,"file":"build-ir.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/ir/build-ir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAS,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAGL,WAAW,EAIZ,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAGL,EAAE,EAgBH,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,EAAE,CAAA;IACN,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B;AAqLD;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,WAAW,WAAW,EAAE,KAAG,aAkQlD,CAAA"}
1
+ {"version":3,"file":"build-ir.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/ir/build-ir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAGL,WAAW,EAIZ,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAGL,EAAE,EAiBH,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,EAAE,CAAA;IACN,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B;AAyPD;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,WAAW,WAAW,EAAE,KAAG,aAkSlD,CAAA"}
@@ -1,4 +1,4 @@
1
- import { error } from '../diagnostics.js';
1
+ import { error, warning } from '../diagnostics.js';
2
2
  import { isScalarType, } from './ir.js';
3
3
  const resolveTypeRef = (typeName, enumNames, modelNames) => {
4
4
  if (isScalarType(typeName)) {
@@ -58,6 +58,42 @@ const OPERATION_TYPES = new Set(['query', 'mutation']);
58
58
  const MUTATION_ACTIONS = new Set(['insert', 'update', 'upsert', 'delete']);
59
59
  const AUTH_LEVELS = new Set(['NO_ACCESS', 'PUBLIC', 'USER']);
60
60
  const API_KINDS = new Set(['callable', 'https', 'task', 'pubsub']);
61
+ const ORDER_DIRS = new Set(['ASC', 'DESC']);
62
+ const SINGLE_KINDS = new Set(['key', 'id']);
63
+ /** Per-key valid values for an operation's `style:` block. */
64
+ const STYLE_VALUES = {
65
+ signature: new Set(['inline', 'multi']),
66
+ args: new Set(['inline', 'multi']),
67
+ data: new Set(['inline', 'multi', 'compact']),
68
+ orderBy: new Set(['bare', 'array']),
69
+ auth: new Set(['inline', 'newline']),
70
+ key: new Set(['inline', 'multi']),
71
+ and: new Set(['inline', 'multi']),
72
+ where: new Set(['inline', 'multi']),
73
+ };
74
+ /**
75
+ * Data Connect scalar/list filter operators. A `where.op` outside this set is
76
+ * warned (not errored): the value is emitted verbatim into GraphQL, so a typo
77
+ * ships broken schema, but the list may lag DC additions — a warning surfaces
78
+ * typos without rejecting a valid-but-unlisted operator.
79
+ */
80
+ const WHERE_OPS = new Set([
81
+ 'eq', 'ne', 'gt', 'ge', 'lt', 'le', 'in', 'nin', 'isNull',
82
+ 'contains', 'startsWith', 'endsWith',
83
+ 'includes', 'excludes', 'includesAll', 'includesAny', 'excludesAll', 'excludesAny',
84
+ ]);
85
+ /**
86
+ * The contract is the single source of truth, so an out-of-vocabulary *value* is
87
+ * as much a defect as an unknown key: it is silently coerced to a default or
88
+ * dropped, and the generated output no longer reflects what was written. These
89
+ * checks turn that silent coercion into a diagnostic at the coercion site (the
90
+ * raw value is still in hand here; it is lost once the IR is built).
91
+ */
92
+ const checkValue = (diagnostics, file, path, key, value, valid) => {
93
+ if (value !== undefined && !valid.has(value)) {
94
+ diagnostics.push(error('INVALID_VALUE', `Invalid ${key} "${value}" — expected one of ${[...valid].join(' | ')}`, { file, path }));
95
+ }
96
+ };
61
97
  const buildSelect = (entries) => entries.map(entry => ({
62
98
  field: entry.field,
63
99
  ...(entry.select !== undefined ? { select: buildSelect(entry.select) } : {}),
@@ -65,7 +101,27 @@ const buildSelect = (entries) => entries.map(entry => ({
65
101
  ...(entry.alias !== undefined ? { alias: entry.alias } : {}),
66
102
  ...(entry.args !== undefined ? { args: entry.args } : {}),
67
103
  }));
68
- const buildOperation = (name, raw, sourceFile) => {
104
+ const buildOperation = (name, raw, sourceFile, diagnostics) => {
105
+ const path = `operations.${name}`;
106
+ checkValue(diagnostics, sourceFile, `${path}.type`, 'type', raw.type, OPERATION_TYPES);
107
+ checkValue(diagnostics, sourceFile, `${path}.auth`, 'auth', raw.auth, AUTH_LEVELS);
108
+ checkValue(diagnostics, sourceFile, `${path}.action`, 'action', raw.action, MUTATION_ACTIONS);
109
+ checkValue(diagnostics, sourceFile, `${path}.single`, 'single', raw.single, SINGLE_KINDS);
110
+ checkValue(diagnostics, sourceFile, `${path}.keyArg`, 'keyArg', raw.keyArg, SINGLE_KINDS);
111
+ for (const o of raw.orderBy ?? [])
112
+ checkValue(diagnostics, sourceFile, `${path}.orderBy`, 'orderBy dir', o.dir, ORDER_DIRS);
113
+ for (const [k, v] of Object.entries(raw.style ?? {})) {
114
+ if (STYLE_VALUES[k])
115
+ checkValue(diagnostics, sourceFile, `${path}.style.${k}`, `style.${k}`, v, STYLE_VALUES[k]);
116
+ }
117
+ for (const w of raw.where ?? []) {
118
+ if (w.op !== undefined && !WHERE_OPS.has(w.op)) {
119
+ diagnostics.push(warning('UNKNOWN_WHERE_OP', `Unknown where operator "${w.op}" on ${path} — emitted verbatim into GraphQL; verify it is a valid Data Connect operator`, {
120
+ file: sourceFile,
121
+ path: `${path}.where`,
122
+ }));
123
+ }
124
+ }
69
125
  const op = {
70
126
  name,
71
127
  operationType: (OPERATION_TYPES.has(raw.type) ? raw.type : 'query'),
@@ -129,7 +185,8 @@ const buildApiPayload = (raw, enumNames, modelNames) => {
129
185
  payload.model = raw.model;
130
186
  return payload;
131
187
  };
132
- const buildApi = (name, raw, sourceFile, enumNames, modelNames) => {
188
+ const buildApi = (name, raw, sourceFile, enumNames, modelNames, diagnostics) => {
189
+ checkValue(diagnostics, sourceFile, `apis.${name}.kind`, 'kind', raw.kind, API_KINDS);
133
190
  const api = {
134
191
  name,
135
192
  kind: (API_KINDS.has(raw.kind) ? raw.kind : 'callable'),
@@ -165,7 +222,7 @@ const buildFirestoreDoc = (name, raw, sourceFile, enumNames, modelNames) => {
165
222
  pick: raw.pick ?? [],
166
223
  omit: raw.omit ?? [],
167
224
  fields,
168
- meta: raw.meta ?? true,
225
+ extends: raw.extends ?? [],
169
226
  sourceFile,
170
227
  };
171
228
  if (raw.from !== undefined)
@@ -252,6 +309,10 @@ export const buildIr = (documents) => {
252
309
  })),
253
310
  sourceFile: doc.filePath,
254
311
  };
312
+ if (raw.out !== undefined)
313
+ model.out = raw.out;
314
+ if (raw.file !== undefined)
315
+ model.file = raw.file;
255
316
  if (raw.description !== undefined)
256
317
  model.description = raw.description;
257
318
  if (raw.table !== undefined)
@@ -316,11 +377,11 @@ export const buildIr = (documents) => {
316
377
  }
317
378
  const operations = [];
318
379
  for (const { name, doc } of operationEntries) {
319
- operations.push(buildOperation(name, doc.operations[name], doc.filePath));
380
+ operations.push(buildOperation(name, doc.operations[name], doc.filePath, diagnostics));
320
381
  }
321
382
  const apis = [];
322
383
  for (const [name, doc] of apiSources) {
323
- apis.push(buildApi(name, doc.apis[name], doc.filePath, enumNames, modelNames));
384
+ apis.push(buildApi(name, doc.apis[name], doc.filePath, enumNames, modelNames, diagnostics));
324
385
  }
325
386
  const unionSources = new Map();
326
387
  for (const doc of documents) {
@@ -390,6 +451,31 @@ export const buildIr = (documents) => {
390
451
  envelope.description = raw.description;
391
452
  envelopes.push(envelope);
392
453
  }
454
+ const fragmentSources = new Map();
455
+ for (const doc of documents) {
456
+ for (const name of Object.keys(doc.fragments)) {
457
+ if (fragmentSources.has(name)) {
458
+ diagnostics.push(error('DUPLICATE_DEFINITION', `Fragment "${name}" is defined more than once`, {
459
+ file: doc.filePath,
460
+ path: `fragments.${name}`,
461
+ }));
462
+ continue;
463
+ }
464
+ fragmentSources.set(name, doc);
465
+ }
466
+ }
467
+ const fragments = [];
468
+ for (const [name, doc] of fragmentSources) {
469
+ const raw = doc.fragments[name];
470
+ const fragment = {
471
+ name,
472
+ fields: Object.entries(raw.fields).map(([fieldName, rawField]) => buildField(fieldName, rawField, enumNames, modelNames)),
473
+ sourceFile: doc.filePath,
474
+ };
475
+ if (raw.description !== undefined)
476
+ fragment.description = raw.description;
477
+ fragments.push(fragment);
478
+ }
393
479
  let header;
394
480
  for (const doc of documents) {
395
481
  if (doc.header !== undefined) {
@@ -422,6 +508,7 @@ export const buildIr = (documents) => {
422
508
  firestore,
423
509
  unions,
424
510
  envelopes,
511
+ fragments,
425
512
  ...(project ? { project } : {}),
426
513
  ...(header !== undefined ? { header } : {}),
427
514
  },
@@ -121,6 +121,10 @@ export interface IrModel {
121
121
  fsName?: string;
122
122
  /** Composite unique/index constraints (Data Connect `@unique`/`@index`). */
123
123
  indexes: IrIndex[];
124
+ /** Placement-pinned split output dir (relative to the generator `out`); firestore-scoped value object. */
125
+ out?: string;
126
+ /** File name for a placement-pinned value object. */
127
+ file?: string;
124
128
  /** Absolute path of the file this model was defined in. */
125
129
  sourceFile?: string;
126
130
  }
@@ -322,8 +326,9 @@ export interface IrEnvelope {
322
326
  * A Firestore projection document. Firestore is a denormalized read model, so a
323
327
  * projection *derives* from a Data Connect model (`from`) and then diverges:
324
328
  * fields are picked/omitted, relations become resolved string ids, timestamps
325
- * become dates, a `_meta_` envelope is added, and extra denormalized fields
326
- * (e.g. flattened DAG edges) are declared inline.
329
+ * become dates, fragments (e.g. a shared `_meta_` envelope) are spliced in via
330
+ * `extends`, and extra denormalized fields (e.g. flattened DAG edges) are
331
+ * declared inline.
327
332
  */
328
333
  export interface IrFirestoreDoc {
329
334
  name: string;
@@ -338,14 +343,21 @@ export interface IrFirestoreDoc {
338
343
  omit: string[];
339
344
  /** Added or overriding projection-specific fields. */
340
345
  fields: IrField[];
341
- /** Attach the consistency `_meta_` envelope (default true). */
342
- meta: boolean;
346
+ /** Fragment names whose fields are appended to this projection. */
347
+ extends: string[];
343
348
  /** Embedded models to host in this projection file even when unreferenced. */
344
349
  include?: string[];
345
350
  /** Verbatim TypeScript helpers emitted into the projection file. */
346
351
  helpers?: string;
347
352
  sourceFile?: string;
348
353
  }
354
+ /** A reusable named group of fields, spliced into consumers via `extends`. */
355
+ export interface IrFragment {
356
+ name: string;
357
+ description?: string;
358
+ fields: IrField[];
359
+ sourceFile?: string;
360
+ }
349
361
  /** A discriminated union of model variants keyed by a shared discriminant field. */
350
362
  export interface IrUnion {
351
363
  name: string;
@@ -383,12 +395,14 @@ export interface Ir {
383
395
  firestore: IrFirestoreDoc[];
384
396
  unions: IrUnion[];
385
397
  envelopes: IrEnvelope[];
398
+ fragments: IrFragment[];
386
399
  project?: IrProject;
387
400
  /** Raw header text from the contract (`default` = built-in banner). */
388
401
  header?: string;
389
402
  }
390
403
  export declare const findModel: (ir: Ir, name: string) => IrModel | undefined;
391
404
  export declare const findEnum: (ir: Ir, name: string) => IrEnum | undefined;
405
+ export declare const findFragment: (ir: Ir, name: string) => IrFragment | undefined;
392
406
  /** The id field's scalar name of a model, used to type foreign keys. Defaults to `string`. */
393
407
  export declare const idTypeOf: (ir: Ir, modelName: string) => ScalarType;
394
408
  //# sourceMappingURL=ir.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/ir/ir.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,YAAY,4FAA6F,CAAA;AAEtH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,UACA,CAAA;AAEpD,qEAAqE;AACrE,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACjC,6EAA6E;GAC3E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAExC,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qCAAqC;IACrC,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,WAAW,EAAE,aAAa,CAAA;IAC1B,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,CAAA;IACjB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uCAAuC;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,iDAAiD;IACjD,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CACjE;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,iFAAiF;IACjF,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,gFAAgF;IAChF,GAAG,CAAC,EAAE,gBAAgB,CAAA;IACtB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC/B,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,CAAA;AAChD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AACtE,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEvD,wFAAwF;AACxF,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qFAAqF;IACrF,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,+EAA+E;AAC/E,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iGAAiG;IACjG,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yFAAyF;IACzF,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,mGAAmG;IACnG,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,kFAAkF;AAClF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;IACnB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iGAAiG;IACjG,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;CACpB;AAED,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,6BAA6B;IAC7B,GAAG,EAAE,MAAM,EAAE,CAAA;CACd;AAED,sFAAsF;AACtF,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,aAAa,CAAA;IAC5B,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,SAAS,CAAA;IACf,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,iCAAiC;IACjC,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,wDAAwD;IACxD,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,mCAAmC;IACnC,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACtE,uFAAuF;IACvF,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IACrB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,sCAAsC;IACtC,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,kFAAkF;IAClF,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,0FAA0F;IAC1F,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACtC,wEAAwE;IACxE,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;QAC9B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;QACzB,oGAAoG;QACpG,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;QACrC,6DAA6D;QAC7D,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;QAC1B,4DAA4D;QAC5D,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;QAC3B,wDAAwD;QACxD,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;QACxB,kFAAkF;QAClF,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;QACxB,sEAAsE;QACtE,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;KAC3B,CAAA;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE9D,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,mDAAmD;IACnD,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,4EAA4E;AAC5E,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,YAAY,CAAA;IACtB,iDAAiD;IACjD,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,uGAAuG;AACvG,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+CAA+C;IAC/C,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oEAAoE;IACpE,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,8BAA8B;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,sDAAsD;IACtD,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,+DAA+D;IAC/D,IAAI,EAAE,OAAO,CAAA;IACb,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,4EAA4E;AAC5E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,wEAAwE;IACxE,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,2EAA2E;IAC3E,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACpD;AAED,MAAM,WAAW,EAAE;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,UAAU,EAAE,WAAW,EAAE,CAAA;IACzB,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,SAAS,EAAE,UAAU,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,SAAS,GAAI,IAAI,EAAE,EAAE,MAAM,MAAM,KAAG,OAAO,GAAG,SACb,CAAA;AAE9C,eAAO,MAAM,QAAQ,GAAI,IAAI,EAAE,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,SACV,CAAA;AAE/C,8FAA8F;AAC9F,eAAO,MAAM,QAAQ,GAAI,IAAI,EAAE,EAAE,WAAW,MAAM,KAAG,UAOpD,CAAA"}
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/ir/ir.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export const SCALAR_TYPES = ['string', 'int', 'int64', 'float', 'boolean', 'time
11
11
  export const isScalarType = (name) => SCALAR_TYPES.includes(name);
12
12
  export const findModel = (ir, name) => ir.models.find(model => model.name === name);
13
13
  export const findEnum = (ir, name) => ir.enums.find(irEnum => irEnum.name === name);
14
+ export const findFragment = (ir, name) => ir.fragments.find(fragment => fragment.name === name);
14
15
  /** The id field's scalar name of a model, used to type foreign keys. Defaults to `string`. */
15
16
  export const idTypeOf = (ir, modelName) => {
16
17
  const model = findModel(ir, modelName);
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/parser/parse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,UAAU,EAAS,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAGL,WAAW,EAaZ,MAAM,mBAAmB,CAAA;AA+mB1B;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,EAAE,cAAc,UAAU,EAAE,KAAG,WAO7F,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/parser/parse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,UAAU,EAAS,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAGL,WAAW,EAcZ,MAAM,mBAAmB,CAAA;AAkoB1B;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,EAAE,cAAc,UAAU,EAAE,KAAG,WAO7F,CAAA"}
@@ -86,12 +86,16 @@ const normalizeModel = (raw, filePath, name) => {
86
86
  if (!isObject(fieldsRaw)) {
87
87
  return fail(`Model "${name}" is missing a "fields" object`, filePath, `models.${name}.fields`);
88
88
  }
89
- checkKeys(raw, ['fields', 'description', 'key', 'table', 'gqlName', 'directives', 'footer', 'fsName', 'indexes', 'sql'], filePath, `models.${name}`);
89
+ checkKeys(raw, ['fields', 'description', 'key', 'table', 'gqlName', 'directives', 'footer', 'fsName', 'indexes', 'sql', 'out', 'file'], filePath, `models.${name}`);
90
90
  const fields = {};
91
91
  for (const [fieldName, fieldRaw] of Object.entries(fieldsRaw)) {
92
92
  fields[fieldName] = normalizeField(fieldRaw, filePath, `models.${name}.fields.${fieldName}`);
93
93
  }
94
94
  const model = { fields };
95
+ if (raw.out !== undefined)
96
+ model.out = String(raw.out);
97
+ if (raw.file !== undefined)
98
+ model.file = String(raw.file);
95
99
  if (raw.description !== undefined)
96
100
  model.description = String(raw.description);
97
101
  if (raw.key !== undefined)
@@ -590,7 +594,7 @@ const normalizeFirestoreDoc = (raw, filePath, name) => {
590
594
  if (!isObject(raw)) {
591
595
  return fail(`Firestore doc "${name}" must be an object`, filePath, `firestore.${name}`);
592
596
  }
593
- checkKeys(raw, ['from', 'collection', 'description', 'meta', 'helpers', 'include', 'pick', 'omit', 'fields'], filePath, `firestore.${name}`);
597
+ checkKeys(raw, ['from', 'collection', 'description', 'extends', 'helpers', 'include', 'pick', 'omit', 'fields'], filePath, `firestore.${name}`);
594
598
  const doc = {};
595
599
  if (raw.from !== undefined)
596
600
  doc.from = String(raw.from);
@@ -598,8 +602,8 @@ const normalizeFirestoreDoc = (raw, filePath, name) => {
598
602
  doc.collection = String(raw.collection);
599
603
  if (raw.description !== undefined)
600
604
  doc.description = String(raw.description);
601
- if (raw.meta !== undefined)
602
- doc.meta = Boolean(raw.meta);
605
+ if (raw.extends !== undefined)
606
+ doc.extends = asStringArray(raw.extends, filePath, `firestore.${name}.extends`);
603
607
  if (raw.helpers !== undefined)
604
608
  doc.helpers = String(raw.helpers);
605
609
  if (raw.include !== undefined)
@@ -618,6 +622,23 @@ const normalizeFirestoreDoc = (raw, filePath, name) => {
618
622
  }
619
623
  return doc;
620
624
  };
625
+ const normalizeFragment = (raw, filePath, name) => {
626
+ if (!isObject(raw)) {
627
+ return fail(`Fragment "${name}" must be an object`, filePath, `fragments.${name}`);
628
+ }
629
+ if (!isObject(raw.fields)) {
630
+ return fail(`Fragment "${name}" is missing a "fields" object`, filePath, `fragments.${name}.fields`);
631
+ }
632
+ checkKeys(raw, ['fields', 'description'], filePath, `fragments.${name}`);
633
+ const fields = {};
634
+ for (const [fieldName, fieldRaw] of Object.entries(raw.fields)) {
635
+ fields[fieldName] = normalizeField(fieldRaw, filePath, `fragments.${name}.fields.${fieldName}`);
636
+ }
637
+ const fragment = { fields };
638
+ if (raw.description !== undefined)
639
+ fragment.description = String(raw.description);
640
+ return fragment;
641
+ };
621
642
  const normalizeUnion = (raw, filePath, name) => {
622
643
  if (!isObject(raw)) {
623
644
  return fail(`Union "${name}" must be an object`, filePath, `unions.${name}`);
@@ -728,12 +749,13 @@ const parseContractInner = (content, filePath) => {
728
749
  firestore: {},
729
750
  unions: {},
730
751
  envelopes: {},
752
+ fragments: {},
731
753
  };
732
754
  }
733
755
  if (!isObject(doc)) {
734
756
  return fail('Contract root must be a mapping', filePath);
735
757
  }
736
- checkKeys(doc, ['imports', 'defaults', 'header', 'project', 'generators', 'enums', 'models', 'operations', 'apis', 'tasks', 'events', 'firestore', 'unions', 'envelopes'], filePath, '(root)');
758
+ checkKeys(doc, ['imports', 'defaults', 'header', 'project', 'generators', 'enums', 'models', 'operations', 'apis', 'tasks', 'events', 'firestore', 'unions', 'envelopes', 'fragments'], filePath, '(root)');
737
759
  const imports = [];
738
760
  if (doc.imports !== undefined) {
739
761
  if (!Array.isArray(doc.imports)) {
@@ -866,6 +888,15 @@ const parseContractInner = (content, filePath) => {
866
888
  envelopes[name] = normalizeEnvelope(raw, filePath, name);
867
889
  }
868
890
  }
891
+ const fragments = {};
892
+ if (doc.fragments !== undefined) {
893
+ if (!isObject(doc.fragments)) {
894
+ return fail('"fragments" must be a mapping', filePath, 'fragments');
895
+ }
896
+ for (const [name, raw] of Object.entries(doc.fragments)) {
897
+ fragments[name] = normalizeFragment(raw, filePath, name);
898
+ }
899
+ }
869
900
  const contract = {
870
901
  filePath,
871
902
  imports,
@@ -877,6 +908,7 @@ const parseContractInner = (content, filePath) => {
877
908
  firestore,
878
909
  unions,
879
910
  envelopes,
911
+ fragments,
880
912
  };
881
913
  if (doc.project !== undefined) {
882
914
  contract.project = normalizeProject(doc.project, filePath);
@@ -69,6 +69,16 @@ export interface RawModel {
69
69
  fsName?: string;
70
70
  indexes?: RawIndex[];
71
71
  sql?: RawSqlConstraints;
72
+ /**
73
+ * Pin this value-object's split output to a fixed directory (relative to the
74
+ * generator `out`), e.g. `_` → `firestore/_/…`. A model with `out` is a
75
+ * placement-scoped value object: it is emitted only at this location by the
76
+ * owning split generator (firestore) and excluded from the default
77
+ * typescript/zod barrels. Split layouts only.
78
+ */
79
+ out?: string;
80
+ /** File name for a placement-pinned value object (default: the `out` dir's index style). */
81
+ file?: string;
72
82
  }
73
83
  export interface RawOperation {
74
84
  description?: string;
@@ -212,12 +222,18 @@ export interface RawFirestoreDoc {
212
222
  pick?: string[];
213
223
  omit?: string[];
214
224
  fields?: Record<string, RawField>;
215
- meta?: boolean;
225
+ /** Fragments to splice into this projection (their fields are appended). */
226
+ extends?: string[];
216
227
  /** Embedded models to host in this projection file even when unreferenced. */
217
228
  include?: string[];
218
229
  /** Verbatim TypeScript helpers emitted into the projection file. */
219
230
  helpers?: string;
220
231
  }
232
+ /** A reusable named group of fields, spliced into a consumer via `extends`. */
233
+ export interface RawFragment {
234
+ description?: string;
235
+ fields: Record<string, RawField>;
236
+ }
221
237
  export interface RawUnion {
222
238
  description?: string;
223
239
  discriminant: string;
@@ -264,5 +280,6 @@ export interface RawContract {
264
280
  firestore: Record<string, RawFirestoreDoc>;
265
281
  unions: Record<string, RawUnion>;
266
282
  envelopes: Record<string, RawEnvelope>;
283
+ fragments: Record<string, RawFragment>;
267
284
  }
268
285
  //# sourceMappingURL=raw-document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raw-document.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/parser/raw-document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raw-document.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/parser/raw-document.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ export declare const unions: ValidationRule;
40
40
  * - zod schemas module: logical names and their `…Schema` companions
41
41
  * - unions module: union names/schemas plus the variant schemas it imports
42
42
  * - firestore module: doc names, co-located enums/embedded models under
43
- * `fsName ?? name`, plus the `_Meta_…` / `FIRESTORE_DATABASES` runtime
43
+ * `fsName ?? name`, plus the `FIRESTORE_DATABASES` runtime
44
44
  *
45
45
  * GraphQL names are checked separately ({@link graphqlNameCollisions}) because
46
46
  * that namespace is scoped per data-connect-graphql declaration, not global.
@@ -282,7 +282,7 @@ const RESERVED_OWNER = 'the generated runtime';
282
282
  * - zod schemas module: logical names and their `…Schema` companions
283
283
  * - unions module: union names/schemas plus the variant schemas it imports
284
284
  * - firestore module: doc names, co-located enums/embedded models under
285
- * `fsName ?? name`, plus the `_Meta_…` / `FIRESTORE_DATABASES` runtime
285
+ * `fsName ?? name`, plus the `FIRESTORE_DATABASES` runtime
286
286
  *
287
287
  * GraphQL names are checked separately ({@link graphqlNameCollisions}) because
288
288
  * that namespace is scoped per data-connect-graphql declaration, not global.
@@ -342,7 +342,7 @@ export const nameCollisions = ir => {
342
342
  // firestore module: doc schemas + co-located enums/embedded models under fsName-effective names.
343
343
  // Tables are imported as `Dc…Schema` aliases, so they don't claim names here.
344
344
  check('firestore', [
345
- ...['_Meta_', '_Meta_Schema', '_Meta_Operation', '_Meta_OperationSchema', 'FIRESTORE_DATABASES', 'FirestoreDatabaseKey', 'FirestoreDatabaseId'].map(identifier => ({ owner: RESERVED_OWNER, identifier, path: '(generated)' })),
345
+ ...['FIRESTORE_DATABASES', 'FirestoreDatabaseKey', 'FirestoreDatabaseId'].map(identifier => ({ owner: RESERVED_OWNER, identifier, path: '(generated)' })),
346
346
  ...ir.firestore.flatMap(d => claim(`firestore doc "${d.name}"`, d.sourceFile, `firestore.${d.name}`, [d.name, `${d.name}Schema`])),
347
347
  ...ir.enums.flatMap(e => {
348
348
  const fs = e.fsName ?? e.name;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "firebase-contract",
3
- "version": "0.1.0-rc.13",
3
+ "version": "0.1.0-rc.15",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "firebase-contract": "./dist/lib/cli/index.js",