firebase-contract 0.1.0-rc.11 → 0.1.0-rc.13
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 +34 -6
- package/dist/lib/_internal/compiler/compiler.d.ts.map +1 -1
- package/dist/lib/_internal/compiler/compiler.js +42 -4
- package/dist/lib/_internal/generators/support/split.d.ts +1 -1
- package/dist/lib/_internal/generators/support/split.js +1 -1
- package/dist/lib/_internal/generators/typescript/render.d.ts +15 -0
- package/dist/lib/_internal/generators/typescript/render.d.ts.map +1 -0
- package/dist/lib/_internal/generators/typescript/render.js +92 -0
- package/dist/lib/_internal/generators/typescript/typescript-generator.d.ts +2 -1
- package/dist/lib/_internal/generators/typescript/typescript-generator.d.ts.map +1 -1
- package/dist/lib/_internal/generators/typescript/typescript-generator.js +5 -75
- package/dist/lib/_internal/generators/typescript/typescript-split-generator.d.ts.map +1 -1
- package/dist/lib/_internal/generators/typescript/typescript-split-generator.js +2 -82
- package/dist/lib/_internal/generators/zod/render.d.ts +12 -0
- package/dist/lib/_internal/generators/zod/render.d.ts.map +1 -0
- package/dist/lib/_internal/generators/zod/render.js +59 -0
- package/dist/lib/_internal/generators/zod/zod-generator.d.ts +2 -1
- package/dist/lib/_internal/generators/zod/zod-generator.d.ts.map +1 -1
- package/dist/lib/_internal/generators/zod/zod-generator.js +5 -52
- package/dist/lib/_internal/generators/zod/zod-split-generator.d.ts.map +1 -1
- package/dist/lib/_internal/generators/zod/zod-split-generator.js +2 -54
- package/dist/lib/_internal/ir/build-ir.d.ts.map +1 -1
- package/dist/lib/_internal/ir/build-ir.js +0 -2
- package/dist/lib/_internal/ir/ir.d.ts +0 -1
- package/dist/lib/_internal/ir/ir.d.ts.map +1 -1
- package/dist/lib/_internal/parser/parse.d.ts +5 -3
- package/dist/lib/_internal/parser/parse.d.ts.map +1 -1
- package/dist/lib/_internal/parser/parse.js +69 -12
- package/dist/lib/_internal/parser/raw-document.d.ts +0 -1
- package/dist/lib/_internal/parser/raw-document.d.ts.map +1 -1
- package/dist/lib/_internal/resolver/import-resolver.js +1 -1
- package/dist/lib/_internal/validation/rules.d.ts +32 -0
- package/dist/lib/_internal/validation/rules.d.ts.map +1 -1
- package/dist/lib/_internal/validation/rules.js +119 -0
- package/dist/lib/cli/commands/generate.d.ts.map +1 -1
- package/dist/lib/cli/commands/generate.js +6 -4
- package/dist/lib/cli/commands/index.d.ts.map +1 -1
- package/dist/lib/cli/commands/index.js +2 -0
- package/dist/lib/cli/commands/init.d.ts.map +1 -1
- package/dist/lib/cli/commands/init.js +2 -18
- package/dist/lib/cli/commands/where.d.ts +3 -0
- package/dist/lib/cli/commands/where.d.ts.map +1 -0
- package/dist/lib/cli/commands/where.js +57 -0
- package/dist/lib/cli/config.d.ts +3 -2
- package/dist/lib/cli/config.d.ts.map +1 -1
- package/dist/lib/cli/config.js +3 -0
- package/package.json +1 -1
|
@@ -1,55 +1,12 @@
|
|
|
1
1
|
import { headerBlocks } from '../support/header.js';
|
|
2
2
|
import { withSplitVariant } from '../support/split-variant.js';
|
|
3
3
|
import { createZodSplitLayout } from './zod-split-generator.js';
|
|
4
|
-
import { singleQuote } from '../support/naming.js';
|
|
5
|
-
import { isRelation, relationFkName, relationFkType } from '../support/relations.js';
|
|
6
|
-
import { zodConstraints } from '../support/constraints.js';
|
|
7
4
|
import { outputFile } from '../support/templates.js';
|
|
8
|
-
|
|
9
|
-
string: 'z.string()',
|
|
10
|
-
int: 'z.number().int()',
|
|
11
|
-
int64: 'z.number().int()',
|
|
12
|
-
float: 'z.number()',
|
|
13
|
-
boolean: 'z.boolean()',
|
|
14
|
-
timestamp: 'z.string().datetime()',
|
|
15
|
-
date: 'z.string()',
|
|
16
|
-
json: 'z.unknown()',
|
|
17
|
-
id: 'z.string()',
|
|
18
|
-
};
|
|
19
|
-
const schemaName = (name) => `${name}Schema`;
|
|
20
|
-
const renderRef = (ref) => {
|
|
21
|
-
switch (ref.kind) {
|
|
22
|
-
case 'scalar':
|
|
23
|
-
return SCALAR_ZOD[ref.name];
|
|
24
|
-
case 'enum':
|
|
25
|
-
// Enums are declared before models, so a direct reference is safe.
|
|
26
|
-
return schemaName(ref.name);
|
|
27
|
-
case 'model':
|
|
28
|
-
// Model references are wrapped in z.lazy so declaration order and cycles
|
|
29
|
-
// never matter.
|
|
30
|
-
return `z.lazy(() => ${schemaName(ref.name)})`;
|
|
31
|
-
default:
|
|
32
|
-
return 'z.unknown()';
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
const renderFieldSchema = (field, ir) => {
|
|
36
|
-
const isRel = isRelation(field);
|
|
37
|
-
const name = isRel ? relationFkName(field) : field.name;
|
|
38
|
-
const base = field.literal !== undefined
|
|
39
|
-
? `z.literal(${singleQuote(field.literal)})`
|
|
40
|
-
: isRel
|
|
41
|
-
? SCALAR_ZOD[relationFkType(ir, field)]
|
|
42
|
-
: renderRef(field.type);
|
|
43
|
-
const cons = zodConstraints(field);
|
|
44
|
-
let schema = field.list ? `z.array(${base})${cons}` : `${base}${cons}`;
|
|
45
|
-
if (field.optional) {
|
|
46
|
-
schema = `${schema}.optional()`;
|
|
47
|
-
}
|
|
48
|
-
return ` ${name}: ${schema},`;
|
|
49
|
-
};
|
|
5
|
+
import { renderEnum, renderModel } from './render.js';
|
|
50
6
|
/**
|
|
51
7
|
* Generates Zod schemas and the types inferred from them. Model references use
|
|
52
|
-
* `z.lazy` so the output is order- and cycle-independent.
|
|
8
|
+
* `z.lazy` so the output is order- and cycle-independent. Rendering is shared
|
|
9
|
+
* with the split layout (./render.js) so both emit identical members.
|
|
53
10
|
*/
|
|
54
11
|
export const createZodGenerator = () => withSplitVariant({
|
|
55
12
|
name: 'zod',
|
|
@@ -57,14 +14,10 @@ export const createZodGenerator = () => withSplitVariant({
|
|
|
57
14
|
generate(ir, context) {
|
|
58
15
|
const blocks = [...headerBlocks(context), "import { z } from 'zod'"];
|
|
59
16
|
for (const irEnum of ir.enums) {
|
|
60
|
-
|
|
61
|
-
blocks.push(`export const ${schemaName(irEnum.name)} = z.enum([${values}])\n` +
|
|
62
|
-
`export type ${irEnum.name} = z.infer<typeof ${schemaName(irEnum.name)}>`);
|
|
17
|
+
blocks.push(renderEnum(irEnum));
|
|
63
18
|
}
|
|
64
19
|
for (const model of ir.models) {
|
|
65
|
-
|
|
66
|
-
blocks.push(`export const ${schemaName(model.name)} = z.object({\n${fields}\n})\n` +
|
|
67
|
-
`export type ${model.name} = z.infer<typeof ${schemaName(model.name)}>`);
|
|
20
|
+
blocks.push(renderModel(model, ir));
|
|
68
21
|
}
|
|
69
22
|
return [{ path: outputFile(context, 'schemas.ts'), content: `${blocks.join('\n\n')}\n` }];
|
|
70
23
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-split-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/zod/zod-split-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"zod-split-generator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/_internal/generators/zod/zod-split-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AAO5E;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAO,SAmEtC,CAAA"}
|
|
@@ -1,61 +1,9 @@
|
|
|
1
1
|
import { findEnum, findModel } from '../../ir/ir.js';
|
|
2
|
-
import { zodConstraints } from '../support/constraints.js';
|
|
3
2
|
import { headerBlocks } from '../support/header.js';
|
|
4
|
-
import {
|
|
5
|
-
import { isRelation, relationFkName, relationFkType } from '../support/relations.js';
|
|
3
|
+
import { isRelation } from '../support/relations.js';
|
|
6
4
|
import { assignModuleNames, collectDeps, splitGroups } from '../support/split.js';
|
|
7
5
|
import { outputFile } from '../support/templates.js';
|
|
8
|
-
|
|
9
|
-
string: 'z.string()',
|
|
10
|
-
int: 'z.number().int()',
|
|
11
|
-
int64: 'z.number().int()',
|
|
12
|
-
float: 'z.number()',
|
|
13
|
-
boolean: 'z.boolean()',
|
|
14
|
-
timestamp: 'z.string().datetime()',
|
|
15
|
-
date: 'z.string()',
|
|
16
|
-
json: 'z.unknown()',
|
|
17
|
-
id: 'z.string()',
|
|
18
|
-
};
|
|
19
|
-
const schemaName = (name) => `${name}Schema`;
|
|
20
|
-
const renderRef = (ref) => {
|
|
21
|
-
switch (ref.kind) {
|
|
22
|
-
case 'scalar':
|
|
23
|
-
return SCALAR_ZOD[ref.name];
|
|
24
|
-
case 'enum':
|
|
25
|
-
return schemaName(ref.name);
|
|
26
|
-
case 'model':
|
|
27
|
-
// Wrapped in z.lazy so declaration order and (cross-file) cycles never matter.
|
|
28
|
-
return `z.lazy(() => ${schemaName(ref.name)})`;
|
|
29
|
-
default:
|
|
30
|
-
return 'z.unknown()';
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
const renderFieldSchema = (field, ir) => {
|
|
34
|
-
const isRel = isRelation(field);
|
|
35
|
-
const name = isRel ? relationFkName(field) : field.name;
|
|
36
|
-
const base = field.literal !== undefined
|
|
37
|
-
? `z.literal(${singleQuote(field.literal)})`
|
|
38
|
-
: isRel
|
|
39
|
-
? SCALAR_ZOD[relationFkType(ir, field)]
|
|
40
|
-
: renderRef(field.type);
|
|
41
|
-
const cons = zodConstraints(field);
|
|
42
|
-
let schema = field.list ? `z.array(${base})${cons}` : `${base}${cons}`;
|
|
43
|
-
if (field.nullable)
|
|
44
|
-
schema = `${schema}.nullable()`;
|
|
45
|
-
if (field.optional)
|
|
46
|
-
schema = `${schema}.optional()`;
|
|
47
|
-
return ` ${name}: ${schema},`;
|
|
48
|
-
};
|
|
49
|
-
const renderEnum = (irEnum) => {
|
|
50
|
-
const values = irEnum.values.map(singleQuote).join(', ');
|
|
51
|
-
return (`export const ${schemaName(irEnum.name)} = z.enum([${values}])\n` +
|
|
52
|
-
`export type ${irEnum.name} = z.infer<typeof ${schemaName(irEnum.name)}>`);
|
|
53
|
-
};
|
|
54
|
-
const renderModel = (model, ir) => {
|
|
55
|
-
const fields = model.fields.map(field => renderFieldSchema(field, ir)).join('\n');
|
|
56
|
-
return (`export const ${schemaName(model.name)} = z.object({\n${fields}\n})\n` +
|
|
57
|
-
`export type ${model.name} = z.infer<typeof ${schemaName(model.name)}>`);
|
|
58
|
-
};
|
|
6
|
+
import { renderEnum, renderModel, schemaName } from './render.js';
|
|
59
7
|
/**
|
|
60
8
|
* Split variant of the Zod generator: one file per table at
|
|
61
9
|
* `schemas/<table-name>.ts` (kebab-case) with enums and embedded value objects
|
|
@@ -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,
|
|
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"}
|
|
@@ -365,7 +365,6 @@ export const buildIr = (documents) => {
|
|
|
365
365
|
for (const [name, doc] of firestoreSources) {
|
|
366
366
|
firestore.push(buildFirestoreDoc(name, doc.firestore[name], doc.filePath, enumNames, modelNames));
|
|
367
367
|
}
|
|
368
|
-
const version = documents.length > 0 ? documents[documents.length - 1].version : 1;
|
|
369
368
|
const envelopeSources = new Map();
|
|
370
369
|
for (const doc of documents) {
|
|
371
370
|
for (const name of Object.keys(doc.envelopes)) {
|
|
@@ -416,7 +415,6 @@ export const buildIr = (documents) => {
|
|
|
416
415
|
}
|
|
417
416
|
return {
|
|
418
417
|
ir: {
|
|
419
|
-
version,
|
|
420
418
|
enums,
|
|
421
419
|
models,
|
|
422
420
|
operations,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/ir/ir.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/ir/ir.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { Diagnostic } from '../diagnostics.js';
|
|
1
2
|
import { RawContract } from './raw-document.js';
|
|
2
3
|
/**
|
|
3
4
|
* Parse a single YAML contract file into a {@link RawContract}. Shorthand forms
|
|
4
5
|
* are normalized here so downstream code sees one canonical shape. Syntax and
|
|
5
|
-
* structural problems throw a {@link ContractError};
|
|
6
|
-
*
|
|
6
|
+
* structural problems throw a {@link ContractError}; unknown keys are collected
|
|
7
|
+
* into `diagnostics` as UNKNOWN_KEY errors (all of them in one pass); semantic
|
|
8
|
+
* problems are left for validation.
|
|
7
9
|
*/
|
|
8
|
-
export declare const parseContract: (content: string, filePath: string) => RawContract;
|
|
10
|
+
export declare const parseContract: (content: string, filePath: string, diagnostics?: Diagnostic[]) => RawContract;
|
|
9
11
|
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lib/_internal/parser/parse.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -4,6 +4,27 @@ const isObject = (value) => typeof value === 'object' && value !== null && !Arra
|
|
|
4
4
|
const fail = (message, filePath, path) => {
|
|
5
5
|
throw new ContractError(message, [error('PARSE_ERROR', message, { file: filePath, path })]);
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Sink for UNKNOWN_KEY diagnostics, set for the duration of one parseContract
|
|
9
|
+
* call (the parser is synchronous, so there is no reentrancy). Collected keys
|
|
10
|
+
* become errors instead of throws so a single pass reports every typo at once.
|
|
11
|
+
*/
|
|
12
|
+
let unknownKeySink;
|
|
13
|
+
/**
|
|
14
|
+
* The contract is the single source of truth, so a key the parser would
|
|
15
|
+
* silently drop is either a typo about to change meaning (`optionnal:` making a
|
|
16
|
+
* field required) or dead weight lying about what the contract expresses.
|
|
17
|
+
* Either way it is an error, not a shrug.
|
|
18
|
+
*/
|
|
19
|
+
const checkKeys = (raw, known, filePath, path) => {
|
|
20
|
+
if (!unknownKeySink)
|
|
21
|
+
return;
|
|
22
|
+
for (const key of Object.keys(raw)) {
|
|
23
|
+
if (!known.includes(key)) {
|
|
24
|
+
unknownKeySink.push(error('UNKNOWN_KEY', `Unknown key "${key}" in ${path} — remove it or fix the typo`, { file: filePath, path: `${path}.${key}` }));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
7
28
|
const normalizeField = (raw, filePath, path) => {
|
|
8
29
|
// Shorthand: `title: string` — the value is the type name.
|
|
9
30
|
if (typeof raw === 'string') {
|
|
@@ -15,6 +36,7 @@ const normalizeField = (raw, filePath, path) => {
|
|
|
15
36
|
if (typeof raw.type !== 'string') {
|
|
16
37
|
return fail(`Field "${path}" is missing a string "type"`, filePath, path);
|
|
17
38
|
}
|
|
39
|
+
checkKeys(raw, ['type', 'optional', 'nullable', 'jsdoc', 'list', 'id', 'unique', 'relation', 'default', 'description', 'min', 'max', 'minLength', 'maxLength', 'pattern', 'nonempty', 'email', 'url', 'col', 'literal'], filePath, path);
|
|
18
40
|
const field = { type: raw.type };
|
|
19
41
|
if (raw.optional !== undefined)
|
|
20
42
|
field.optional = Boolean(raw.optional);
|
|
@@ -64,6 +86,7 @@ const normalizeModel = (raw, filePath, name) => {
|
|
|
64
86
|
if (!isObject(fieldsRaw)) {
|
|
65
87
|
return fail(`Model "${name}" is missing a "fields" object`, filePath, `models.${name}.fields`);
|
|
66
88
|
}
|
|
89
|
+
checkKeys(raw, ['fields', 'description', 'key', 'table', 'gqlName', 'directives', 'footer', 'fsName', 'indexes', 'sql'], filePath, `models.${name}`);
|
|
67
90
|
const fields = {};
|
|
68
91
|
for (const [fieldName, fieldRaw] of Object.entries(fieldsRaw)) {
|
|
69
92
|
fields[fieldName] = normalizeField(fieldRaw, filePath, `models.${name}.fields.${fieldName}`);
|
|
@@ -91,6 +114,7 @@ const normalizeModel = (raw, filePath, name) => {
|
|
|
91
114
|
if (!isObject(entry)) {
|
|
92
115
|
return fail(`Model "${name}" index #${i} must be an object`, filePath, `models.${name}.indexes`);
|
|
93
116
|
}
|
|
117
|
+
checkKeys(entry, ['fields', 'name', 'unique', 'expand'], filePath, `models.${name}.indexes[${i}]`);
|
|
94
118
|
const index = {
|
|
95
119
|
fields: asStringArray(entry.fields, filePath, `models.${name}.indexes[${i}].fields`),
|
|
96
120
|
};
|
|
@@ -108,6 +132,7 @@ const normalizeModel = (raw, filePath, name) => {
|
|
|
108
132
|
return fail(`Model "${name}" sql must be an object`, filePath, `models.${name}.sql`);
|
|
109
133
|
}
|
|
110
134
|
const sqlRaw = raw.sql;
|
|
135
|
+
checkKeys(sqlRaw, ['checks', 'foreignKeys', 'indexes'], filePath, `models.${name}.sql`);
|
|
111
136
|
const sql = {};
|
|
112
137
|
if (sqlRaw.checks !== undefined)
|
|
113
138
|
sql.checks = asStringArray(sqlRaw.checks, filePath, `models.${name}.sql.checks`);
|
|
@@ -119,6 +144,7 @@ const normalizeModel = (raw, filePath, name) => {
|
|
|
119
144
|
if (!isObject(entry) || typeof entry.references !== 'string') {
|
|
120
145
|
return fail(`Model "${name}" sql.foreignKeys[${i}] needs columns + references`, filePath, `models.${name}.sql.foreignKeys`);
|
|
121
146
|
}
|
|
147
|
+
checkKeys(entry, ['columns', 'references', 'name'], filePath, `models.${name}.sql.foreignKeys[${i}]`);
|
|
122
148
|
const fk = {
|
|
123
149
|
columns: asStringArray(entry.columns, filePath, `models.${name}.sql.foreignKeys[${i}].columns`),
|
|
124
150
|
references: entry.references,
|
|
@@ -136,6 +162,7 @@ const normalizeModel = (raw, filePath, name) => {
|
|
|
136
162
|
if (!isObject(entry)) {
|
|
137
163
|
return fail(`Model "${name}" sql.indexes[${i}] must be an object`, filePath, `models.${name}.sql.indexes`);
|
|
138
164
|
}
|
|
165
|
+
checkKeys(entry, ['columns', 'name', 'unique'], filePath, `models.${name}.sql.indexes[${i}]`);
|
|
139
166
|
const idx = {
|
|
140
167
|
columns: asStringArray(entry.columns, filePath, `models.${name}.sql.indexes[${i}].columns`),
|
|
141
168
|
};
|
|
@@ -157,11 +184,13 @@ const normalizeEnum = (raw, filePath, name) => {
|
|
|
157
184
|
if (!Array.isArray(raw.values)) {
|
|
158
185
|
return fail(`Enum "${name}" is missing a "values" array`, filePath, `enums.${name}.values`);
|
|
159
186
|
}
|
|
187
|
+
checkKeys(raw, ['values', 'gqlName', 'fsName', 'fsDescription', 'description'], filePath, `enums.${name}`);
|
|
160
188
|
const values = [];
|
|
161
189
|
const valueComments = {};
|
|
162
190
|
const valueKeys = {};
|
|
163
191
|
for (const entry of raw.values) {
|
|
164
192
|
if (isObject(entry) && typeof entry.value === 'string') {
|
|
193
|
+
checkKeys(entry, ['value', 'description', 'key'], filePath, `enums.${name}.values`);
|
|
165
194
|
values.push(entry.value);
|
|
166
195
|
if (entry.description !== undefined)
|
|
167
196
|
valueComments[entry.value] = String(entry.description);
|
|
@@ -205,6 +234,7 @@ const normalizeOperation = (raw, filePath, name) => {
|
|
|
205
234
|
if (typeof raw.model !== 'string') {
|
|
206
235
|
return fail(`Operation "${name}" is missing a string "model"`, filePath, `operations.${name}.model`);
|
|
207
236
|
}
|
|
237
|
+
checkKeys(raw, ['type', 'model', 'action', 'auth', 'authReason', 'inputs', 'select', 'where', 'orderBy', 'limit', 'single', 'keyArg', 'entityDir', 'whereAnd', 'gqlName', 'footer', 'raw', 'style', 'keyVars', 'aggregate', 'exprs', 'inc', 'connectors', 'description'], filePath, `operations.${name}`);
|
|
208
238
|
const op = { type: raw.type, model: raw.model };
|
|
209
239
|
if (raw.action !== undefined)
|
|
210
240
|
op.action = String(raw.action);
|
|
@@ -220,6 +250,7 @@ const normalizeOperation = (raw, filePath, name) => {
|
|
|
220
250
|
if (typeof entry === 'string')
|
|
221
251
|
return { field: entry };
|
|
222
252
|
if (isObject(entry) && typeof entry.field === 'string') {
|
|
253
|
+
checkKeys(entry, ['field', 'required', 'description', 'var', 'flat', 'literal', 'quote', 'inc', 'asKey'], filePath, `operations.${name}.inputs`);
|
|
223
254
|
return {
|
|
224
255
|
field: entry.field,
|
|
225
256
|
...(entry.required !== undefined ? { required: Boolean(entry.required) } : {}),
|
|
@@ -244,6 +275,7 @@ const normalizeOperation = (raw, filePath, name) => {
|
|
|
244
275
|
if (typeof entry === 'string')
|
|
245
276
|
return { field: entry };
|
|
246
277
|
if (isObject(entry) && typeof entry.field === 'string') {
|
|
278
|
+
checkKeys(entry, ['field', 'select', 'description', 'alias', 'args'], filePath, path);
|
|
247
279
|
return {
|
|
248
280
|
field: entry.field,
|
|
249
281
|
...(entry.select !== undefined ? { select: normalizeSelect(entry.select, `${path}.${entry.field}`) } : {}),
|
|
@@ -266,6 +298,7 @@ const normalizeOperation = (raw, filePath, name) => {
|
|
|
266
298
|
if (typeof entry === 'string')
|
|
267
299
|
return { field: entry, op: 'eq' };
|
|
268
300
|
if (isObject(entry) && typeof entry.field === 'string') {
|
|
301
|
+
checkKeys(entry, ['field', 'op', 'required', 'description', 'var', 'literal', 'flat'], filePath, `operations.${name}.where`);
|
|
269
302
|
return {
|
|
270
303
|
field: entry.field,
|
|
271
304
|
op: entry.op !== undefined ? String(entry.op) : 'eq',
|
|
@@ -288,11 +321,13 @@ const normalizeOperation = (raw, filePath, name) => {
|
|
|
288
321
|
if (!isObject(entry) || typeof entry.field !== 'string') {
|
|
289
322
|
return fail(`Operation "${name}" orderBy entry needs a field`, filePath, `operations.${name}.orderBy`);
|
|
290
323
|
}
|
|
324
|
+
checkKeys(entry, ['field', 'dir'], filePath, `operations.${name}.orderBy`);
|
|
291
325
|
return { field: entry.field, dir: entry.dir !== undefined ? String(entry.dir).toUpperCase() : 'ASC' };
|
|
292
326
|
});
|
|
293
327
|
}
|
|
294
328
|
if (raw.limit !== undefined) {
|
|
295
329
|
if (isObject(raw.limit) && typeof raw.limit.var === 'string') {
|
|
330
|
+
checkKeys(raw.limit, ['var', 'default', 'required'], filePath, `operations.${name}.limit`);
|
|
296
331
|
op.limit = {
|
|
297
332
|
var: raw.limit.var,
|
|
298
333
|
...(raw.limit.default !== undefined ? { default: Number(raw.limit.default) } : {}),
|
|
@@ -322,7 +357,9 @@ const normalizeOperation = (raw, filePath, name) => {
|
|
|
322
357
|
return fail(`Operation "${name}" style must be a mapping`, filePath, `operations.${name}.style`);
|
|
323
358
|
}
|
|
324
359
|
const style = {};
|
|
325
|
-
|
|
360
|
+
const styleKeys = ['signature', 'args', 'data', 'orderBy', 'auth', 'key', 'and', 'where'];
|
|
361
|
+
checkKeys(raw.style, styleKeys, filePath, `operations.${name}.style`);
|
|
362
|
+
for (const k of styleKeys) {
|
|
326
363
|
if (raw.style[k] !== undefined)
|
|
327
364
|
style[k] = String(raw.style[k]);
|
|
328
365
|
}
|
|
@@ -338,6 +375,7 @@ const normalizeOperation = (raw, filePath, name) => {
|
|
|
338
375
|
if (!isObject(raw.aggregate)) {
|
|
339
376
|
return fail(`Operation "${name}" aggregate must be an object`, filePath, `operations.${name}.aggregate`);
|
|
340
377
|
}
|
|
378
|
+
checkKeys(raw.aggregate, ['count', 'sum'], filePath, `operations.${name}.aggregate`);
|
|
341
379
|
op.aggregate = {
|
|
342
380
|
count: raw.aggregate.count !== undefined ? Boolean(raw.aggregate.count) : false,
|
|
343
381
|
sum: asStringArray(raw.aggregate.sum, filePath, `operations.${name}.aggregate.sum`),
|
|
@@ -357,16 +395,13 @@ const normalizeOperation = (raw, filePath, name) => {
|
|
|
357
395
|
if (typeof entry === 'string')
|
|
358
396
|
return { field: entry };
|
|
359
397
|
if (isObject(entry) && typeof entry.field === 'string') {
|
|
398
|
+
checkKeys(entry, ['field', 'var'], filePath, `operations.${name}.inc`);
|
|
360
399
|
return { field: entry.field, ...(entry.var !== undefined ? { var: String(entry.var) } : {}) };
|
|
361
400
|
}
|
|
362
401
|
return fail(`Operation "${name}" inc entry must be a field or { field, var }`, filePath, `operations.${name}.inc`);
|
|
363
402
|
});
|
|
364
403
|
}
|
|
365
|
-
|
|
366
|
-
if (raw.connector !== undefined) {
|
|
367
|
-
op.connectors = [String(raw.connector)];
|
|
368
|
-
}
|
|
369
|
-
else if (raw.connectors !== undefined) {
|
|
404
|
+
if (raw.connectors !== undefined) {
|
|
370
405
|
op.connectors = asStringArray(raw.connectors, filePath, `operations.${name}.connectors`);
|
|
371
406
|
}
|
|
372
407
|
if (raw.description !== undefined)
|
|
@@ -379,6 +414,7 @@ const normalizeApiPayload = (raw, filePath, path) => {
|
|
|
379
414
|
if (!isObject(raw)) {
|
|
380
415
|
return fail(`"${path}" must be an object`, filePath, path);
|
|
381
416
|
}
|
|
417
|
+
checkKeys(raw, ['model', 'void', 'fields'], filePath, path);
|
|
382
418
|
const payload = {};
|
|
383
419
|
if (raw.model !== undefined)
|
|
384
420
|
payload.model = String(raw.model);
|
|
@@ -412,6 +448,7 @@ const normalizeGeneratorUse = (raw, filePath, path) => {
|
|
|
412
448
|
if (!isObject(raw) || typeof raw.generator !== 'string') {
|
|
413
449
|
return fail(`"${path}" must be a generator name or { generator, out?, file?, split?, options?, header? }`, filePath, path);
|
|
414
450
|
}
|
|
451
|
+
checkKeys(raw, ['generator', 'out', 'file', 'split', 'options', 'header'], filePath, path);
|
|
415
452
|
const use = { generator: raw.generator };
|
|
416
453
|
if (raw.out !== undefined)
|
|
417
454
|
use.out = String(raw.out);
|
|
@@ -437,6 +474,7 @@ const normalizeSectionDefaults = (raw, filePath, section) => {
|
|
|
437
474
|
if (!isObject(raw)) {
|
|
438
475
|
return fail(`"${section}.${SECTION_DEFAULTS_KEY}" must be an object`, filePath, `${section}.${SECTION_DEFAULTS_KEY}`);
|
|
439
476
|
}
|
|
477
|
+
checkKeys(raw, ['generators'], filePath, `${section}.${SECTION_DEFAULTS_KEY}`);
|
|
440
478
|
if (raw.generators === undefined)
|
|
441
479
|
return [];
|
|
442
480
|
return normalizeGeneratorUses(raw.generators, filePath, `${section}.${SECTION_DEFAULTS_KEY}.generators`);
|
|
@@ -462,6 +500,7 @@ const normalizePathApi = (raw, filePath, pathKey) => {
|
|
|
462
500
|
if (kind !== 'https' && kind !== 'callable') {
|
|
463
501
|
return fail(`Api "${pathKey}" kind must be https|callable (tasks/events have their own sections)`, filePath, `apis.${pathKey}.kind`);
|
|
464
502
|
}
|
|
503
|
+
checkKeys(raw, ['operationId', 'kind', 'method', 'description', 'request', 'response', 'generators'], filePath, `apis.${pathKey}`);
|
|
465
504
|
const prefixed = METHOD_PREFIXED_KEY_RE.exec(pathKey);
|
|
466
505
|
const keyMethod = prefixed?.[1];
|
|
467
506
|
const routePath = prefixed?.[2] ?? pathKey;
|
|
@@ -489,6 +528,7 @@ const normalizeTask = (raw, filePath, name) => {
|
|
|
489
528
|
if (!isObject(raw)) {
|
|
490
529
|
return fail(`Task "${name}" must be an object`, filePath, `tasks.${name}`);
|
|
491
530
|
}
|
|
531
|
+
checkKeys(raw, ['description', 'envelope', 'maxAttempts', 'timeoutSeconds', 'request', 'response', 'generators'], filePath, `tasks.${name}`);
|
|
492
532
|
const api = { kind: 'task' };
|
|
493
533
|
if (raw.description !== undefined)
|
|
494
534
|
api.description = String(raw.description);
|
|
@@ -510,6 +550,7 @@ const normalizeEvent = (raw, filePath, name) => {
|
|
|
510
550
|
if (!isObject(raw)) {
|
|
511
551
|
return fail(`Event "${name}" must be an object`, filePath, `events.${name}`);
|
|
512
552
|
}
|
|
553
|
+
checkKeys(raw, ['description', 'envelope', 'maxAttempts', 'timeoutSeconds', 'topic', 'request', 'response', 'generators'], filePath, `events.${name}`);
|
|
513
554
|
const api = { kind: 'pubsub' };
|
|
514
555
|
if (raw.description !== undefined)
|
|
515
556
|
api.description = String(raw.description);
|
|
@@ -535,6 +576,7 @@ const normalizeEnvelope = (raw, filePath, name) => {
|
|
|
535
576
|
if (!isObject(raw.fields)) {
|
|
536
577
|
return fail(`Envelope "${name}" is missing a "fields" object`, filePath, `envelopes.${name}.fields`);
|
|
537
578
|
}
|
|
579
|
+
checkKeys(raw, ['fields', 'description'], filePath, `envelopes.${name}`);
|
|
538
580
|
const fields = {};
|
|
539
581
|
for (const [fieldName, fieldRaw] of Object.entries(raw.fields)) {
|
|
540
582
|
fields[fieldName] = normalizeField(fieldRaw, filePath, `envelopes.${name}.fields.${fieldName}`);
|
|
@@ -548,6 +590,7 @@ const normalizeFirestoreDoc = (raw, filePath, name) => {
|
|
|
548
590
|
if (!isObject(raw)) {
|
|
549
591
|
return fail(`Firestore doc "${name}" must be an object`, filePath, `firestore.${name}`);
|
|
550
592
|
}
|
|
593
|
+
checkKeys(raw, ['from', 'collection', 'description', 'meta', 'helpers', 'include', 'pick', 'omit', 'fields'], filePath, `firestore.${name}`);
|
|
551
594
|
const doc = {};
|
|
552
595
|
if (raw.from !== undefined)
|
|
553
596
|
doc.from = String(raw.from);
|
|
@@ -582,6 +625,7 @@ const normalizeUnion = (raw, filePath, name) => {
|
|
|
582
625
|
if (typeof raw.discriminant !== 'string') {
|
|
583
626
|
return fail(`Union "${name}" is missing a string "discriminant"`, filePath, `unions.${name}.discriminant`);
|
|
584
627
|
}
|
|
628
|
+
checkKeys(raw, ['discriminant', 'variants', 'description'], filePath, `unions.${name}`);
|
|
585
629
|
const union = {
|
|
586
630
|
discriminant: raw.discriminant,
|
|
587
631
|
variants: asStringArray(raw.variants, filePath, `unions.${name}.variants`),
|
|
@@ -594,6 +638,7 @@ const normalizeProject = (raw, filePath) => {
|
|
|
594
638
|
if (!isObject(raw)) {
|
|
595
639
|
return fail('"project" must be an object', filePath, 'project');
|
|
596
640
|
}
|
|
641
|
+
checkKeys(raw, ['services', 'codebases', 'idCodec', 'aliases'], filePath, 'project');
|
|
597
642
|
const project = {};
|
|
598
643
|
if (raw.services !== undefined) {
|
|
599
644
|
if (!Array.isArray(raw.services)) {
|
|
@@ -603,6 +648,7 @@ const normalizeProject = (raw, filePath) => {
|
|
|
603
648
|
if (!isObject(entry) || typeof entry.name !== 'string') {
|
|
604
649
|
return fail(`project.services[${i}] needs a name`, filePath, 'project.services');
|
|
605
650
|
}
|
|
651
|
+
checkKeys(entry, ['name', 'database', 'location', 'connectors'], filePath, `project.services[${i}]`);
|
|
606
652
|
const service = { name: entry.name };
|
|
607
653
|
if (entry.database !== undefined)
|
|
608
654
|
service.database = String(entry.database);
|
|
@@ -624,6 +670,7 @@ const normalizeProject = (raw, filePath) => {
|
|
|
624
670
|
project.codebases = codebases;
|
|
625
671
|
}
|
|
626
672
|
if (isObject(raw.idCodec)) {
|
|
673
|
+
checkKeys(raw.idCodec, ['minLength', 'alphabet'], filePath, 'project.idCodec');
|
|
627
674
|
const idCodec = {};
|
|
628
675
|
if (raw.idCodec.minLength !== undefined)
|
|
629
676
|
idCodec.minLength = Number(raw.idCodec.minLength);
|
|
@@ -646,10 +693,20 @@ const normalizeProject = (raw, filePath) => {
|
|
|
646
693
|
/**
|
|
647
694
|
* Parse a single YAML contract file into a {@link RawContract}. Shorthand forms
|
|
648
695
|
* are normalized here so downstream code sees one canonical shape. Syntax and
|
|
649
|
-
* structural problems throw a {@link ContractError};
|
|
650
|
-
*
|
|
696
|
+
* structural problems throw a {@link ContractError}; unknown keys are collected
|
|
697
|
+
* into `diagnostics` as UNKNOWN_KEY errors (all of them in one pass); semantic
|
|
698
|
+
* problems are left for validation.
|
|
651
699
|
*/
|
|
652
|
-
export const parseContract = (content, filePath) => {
|
|
700
|
+
export const parseContract = (content, filePath, diagnostics) => {
|
|
701
|
+
unknownKeySink = diagnostics;
|
|
702
|
+
try {
|
|
703
|
+
return parseContractInner(content, filePath);
|
|
704
|
+
}
|
|
705
|
+
finally {
|
|
706
|
+
unknownKeySink = undefined;
|
|
707
|
+
}
|
|
708
|
+
};
|
|
709
|
+
const parseContractInner = (content, filePath) => {
|
|
653
710
|
let doc;
|
|
654
711
|
try {
|
|
655
712
|
doc = parseYamlText(content);
|
|
@@ -662,7 +719,6 @@ export const parseContract = (content, filePath) => {
|
|
|
662
719
|
// An empty file is a valid, contribution-free contract.
|
|
663
720
|
return {
|
|
664
721
|
filePath,
|
|
665
|
-
version: 1,
|
|
666
722
|
imports: [],
|
|
667
723
|
defaultConnectors: [],
|
|
668
724
|
enums: {},
|
|
@@ -677,6 +733,7 @@ export const parseContract = (content, filePath) => {
|
|
|
677
733
|
if (!isObject(doc)) {
|
|
678
734
|
return fail('Contract root must be a mapping', filePath);
|
|
679
735
|
}
|
|
736
|
+
checkKeys(doc, ['imports', 'defaults', 'header', 'project', 'generators', 'enums', 'models', 'operations', 'apis', 'tasks', 'events', 'firestore', 'unions', 'envelopes'], filePath, '(root)');
|
|
680
737
|
const imports = [];
|
|
681
738
|
if (doc.imports !== undefined) {
|
|
682
739
|
if (!Array.isArray(doc.imports)) {
|
|
@@ -713,6 +770,7 @@ export const parseContract = (content, filePath) => {
|
|
|
713
770
|
if (!isObject(doc.defaults)) {
|
|
714
771
|
return fail('"defaults" must be a mapping', filePath, 'defaults');
|
|
715
772
|
}
|
|
773
|
+
checkKeys(doc.defaults, ['connectors'], filePath, 'defaults');
|
|
716
774
|
defaultConnectors = asStringArray(doc.defaults.connectors, filePath, 'defaults.connectors');
|
|
717
775
|
}
|
|
718
776
|
const operations = {};
|
|
@@ -808,10 +866,8 @@ export const parseContract = (content, filePath) => {
|
|
|
808
866
|
envelopes[name] = normalizeEnvelope(raw, filePath, name);
|
|
809
867
|
}
|
|
810
868
|
}
|
|
811
|
-
const version = typeof doc.version === 'number' ? doc.version : 1;
|
|
812
869
|
const contract = {
|
|
813
870
|
filePath,
|
|
814
|
-
version,
|
|
815
871
|
imports,
|
|
816
872
|
defaultConnectors,
|
|
817
873
|
enums,
|
|
@@ -839,6 +895,7 @@ export const parseContract = (content, filePath) => {
|
|
|
839
895
|
if (typeof entry.out !== 'string') {
|
|
840
896
|
return fail(`generators[${i}] needs a string "out"`, filePath, `generators[${i}].out`);
|
|
841
897
|
}
|
|
898
|
+
checkKeys(entry, ['generator', 'out', 'file', 'split', 'options', 'header'], filePath, `generators[${i}]`);
|
|
842
899
|
const decl = { generator: entry.generator, out: entry.out };
|
|
843
900
|
if (entry.file !== undefined)
|
|
844
901
|
decl.file = String(entry.file);
|
|
@@ -250,7 +250,6 @@ export interface RawContract {
|
|
|
250
250
|
generatorDecls?: RawGeneratorDecl[];
|
|
251
251
|
/** Section-level generator defaults (`apis:/tasks:/events:` → `defaults`). */
|
|
252
252
|
sectionDefaults?: RawSectionDefaults;
|
|
253
|
-
version: number;
|
|
254
253
|
/** Raw header text prepended to generated files (`default` = built-in banner). */
|
|
255
254
|
header?: string;
|
|
256
255
|
project?: RawProject;
|
|
@@ -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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"}
|