primitive-admin 1.1.0-alpha.44 → 1.1.0-alpha.45
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/dist/bin/primitive.js +0 -0
- package/dist/src/commands/blob-buckets.js +20 -7
- package/dist/src/commands/blob-buckets.js.map +1 -1
- package/dist/src/commands/sync.js +113 -28
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/workflows.js +185 -20
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +1 -0
- package/dist/src/lib/api-client.js +4 -0
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +61 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js +127 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.d.ts +30 -5
- package/dist/src/lib/db-codegen/dbGenerator.js +227 -165
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +11 -23
- package/dist/src/lib/db-codegen/dbTemplates.js +21 -41
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +7 -3
- package/dist/src/lib/db-codegen/dbTsTypes.js +23 -1
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -1
- package/dist/src/lib/generated-allowlist.js +13 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +96 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +112 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generator.d.ts +70 -0
- package/dist/src/lib/workflow-codegen/generator.js +186 -0
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
- package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
- package/dist/src/lib/workflow-codegen/naming.js +81 -0
- package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +55 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.js +237 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
- package/package.json +4 -2
|
@@ -20,14 +20,23 @@
|
|
|
20
20
|
* the templates consume; the templates stay pure string-emitters.
|
|
21
21
|
*/
|
|
22
22
|
import * as path from "path";
|
|
23
|
-
import { promises as fsp } from "fs";
|
|
24
23
|
import { parseConfigToml, stringifyConfigToml } from "../config-toml.js";
|
|
25
24
|
import { loadSchemaFromTomlString } from "js-bao";
|
|
26
25
|
import { parseDatabaseTypeToml } from "../../commands/sync.js";
|
|
26
|
+
import { writeOrCheckGeneratedFiles, } from "../codegen-shared/generatedFiles.js";
|
|
27
27
|
import { fingerprintToml } from "./dbFingerprint.js";
|
|
28
|
+
import { tsTypeForDbFieldType } from "./dbTsTypes.js";
|
|
28
29
|
import { resolveRecordInterfaceName, opParamsInterfaceName, opResultAliasName, opsFactoryName, opPropertyKey, } from "./dbNaming.js";
|
|
29
30
|
import { renderHeader, renderRecordInterface, renderOpParamsInterface, renderOpResultAlias, renderOpsFactory, RESULT_ALIASES_BLOCK, } from "./dbTemplates.js";
|
|
30
31
|
const GENERATED_FILE_SUFFIX = ".generated.ts";
|
|
32
|
+
/**
|
|
33
|
+
* Op-param types that declare a scalar value (#1488). A param carrying one of
|
|
34
|
+
* these explicit declarations is validated by the runtime as that scalar, so
|
|
35
|
+
* array-element inference must not rewrite it to an array type in the generated
|
|
36
|
+
* interface. Keep in step with the runtime's scalar coercion list
|
|
37
|
+
* (`MODEL_PARAM_SCALAR_TYPES` in `database-operations-controller.ts`).
|
|
38
|
+
*/
|
|
39
|
+
const SCALAR_PARAM_TYPES = new Set(["string", "number", "boolean", "integer"]);
|
|
31
40
|
/**
|
|
32
41
|
* Render the in-memory `.generated.ts` content for a single database-type
|
|
33
42
|
* TOML. Exported so tests can assert on the rendered string directly.
|
|
@@ -58,6 +67,18 @@ export function renderDbTypeFile(input) {
|
|
|
58
67
|
// fields + server-stamped fields). Used to guard projection `Pick`
|
|
59
68
|
// against keys that are not members of the interface (#1439).
|
|
60
69
|
const recordFieldsByModel = new Map();
|
|
70
|
+
// model name → declared field name → field type. Feeds the `$in`/`$nin`
|
|
71
|
+
// array-param element-type inference (#1488) below.
|
|
72
|
+
const fieldTypesByModel = new Map();
|
|
73
|
+
for (const schema of schemas) {
|
|
74
|
+
const ftypes = new Map();
|
|
75
|
+
for (const [fname, fopts] of Object.entries(schema.fields)) {
|
|
76
|
+
const t = fopts?.type;
|
|
77
|
+
if (typeof t === "string")
|
|
78
|
+
ftypes.set(fname, t);
|
|
79
|
+
}
|
|
80
|
+
fieldTypesByModel.set(schema.name, ftypes);
|
|
81
|
+
}
|
|
61
82
|
const seenInterfaceNames = new Map(); // interfaceName → modelName
|
|
62
83
|
for (const schema of schemas) {
|
|
63
84
|
const ifaceName = resolveRecordInterfaceName(schema.name, schema.options?.className);
|
|
@@ -107,7 +128,8 @@ export function renderDbTypeFile(input) {
|
|
|
107
128
|
// name-sorted order so the factory's methods are deterministic.
|
|
108
129
|
const factoryOps = [];
|
|
109
130
|
for (const op of sortedOps) {
|
|
110
|
-
const
|
|
131
|
+
const inferredArrays = inferArrayParamElementTypes(op, fieldTypesByModel);
|
|
132
|
+
const params = paramsToFields(op.params, inferredArrays);
|
|
111
133
|
blocks.push(renderOpParamsInterface({
|
|
112
134
|
interfaceName: opParamsInterfaceName(op.name),
|
|
113
135
|
opName: op.name,
|
|
@@ -128,10 +150,6 @@ export function renderDbTypeFile(input) {
|
|
|
128
150
|
? classifyProjection(op.definition?.projection, (op.modelName && recordFieldsByModel.get(op.modelName)) ||
|
|
129
151
|
new Set())
|
|
130
152
|
: undefined;
|
|
131
|
-
// Mutation ops: pick the flat-vs-batch result shape from step kinds (#1438).
|
|
132
|
-
const mutationCategory = op.type === "mutation"
|
|
133
|
-
? classifyMutationResult(op.definition)
|
|
134
|
-
: undefined;
|
|
135
153
|
// Pipeline ops: resolve the `return`-step result shape (#1437).
|
|
136
154
|
const pipelineReturn = op.type === "pipeline"
|
|
137
155
|
? resolvePipelineReturn(op.definition, recordInterfaceByModel, recordFieldsByModel)
|
|
@@ -142,7 +160,6 @@ export function renderDbTypeFile(input) {
|
|
|
142
160
|
opType: op.type,
|
|
143
161
|
recordInterfaceName,
|
|
144
162
|
projection,
|
|
145
|
-
mutationCategory,
|
|
146
163
|
pipelineReturn,
|
|
147
164
|
}));
|
|
148
165
|
}
|
|
@@ -233,48 +250,6 @@ function classifyProjection(projection, recordFieldNames) {
|
|
|
233
250
|
}
|
|
234
251
|
return { kind: "partial" };
|
|
235
252
|
}
|
|
236
|
-
/**
|
|
237
|
-
* Classify a mutation op's result shape from its definition's step kinds
|
|
238
|
-
* (#1438). The runtime (`executeMutation`) routes save/patch/delete steps
|
|
239
|
-
* through a single `/batch` DO call (returned as `results[0]` — a
|
|
240
|
-
* `{ results: [...] }` body), while increment / addToSet / removeFromSet are
|
|
241
|
-
* forwarded as individual ops whose flat DO responses are returned as
|
|
242
|
-
* `results[0]` — so a universal `{ results: [...] }` type would lie for the
|
|
243
|
-
* flat cases.
|
|
244
|
-
* - any save/patch/delete step → `batch` (covers mixed save+increment).
|
|
245
|
-
* - increment-only → `increment`.
|
|
246
|
-
* - addToSet/removeFromSet-only → `stringset`.
|
|
247
|
-
* - mix of only increment + stringset → `mixed`. No `/batch` is sent, so the
|
|
248
|
-
* runtime returns the FIRST individual op's flat response — an
|
|
249
|
-
* `IncrementMutationResult` or `StringSetMutationResult` depending on
|
|
250
|
-
* definition order — never a `{ results: [...] }` body. Typed as the union
|
|
251
|
-
* of the two flat shapes so the generated caller can't read a nonexistent
|
|
252
|
-
* `results` array.
|
|
253
|
-
* - empty / malformed / unknown kinds → `opaque` (conservative fallback).
|
|
254
|
-
*/
|
|
255
|
-
function classifyMutationResult(definition) {
|
|
256
|
-
const ops = definition && typeof definition === "object"
|
|
257
|
-
? definition.operations
|
|
258
|
-
: undefined;
|
|
259
|
-
if (!Array.isArray(ops) || ops.length === 0)
|
|
260
|
-
return "opaque";
|
|
261
|
-
const kinds = ops.map((o) => o && typeof o === "object" ? o.op : undefined);
|
|
262
|
-
if (kinds.some((k) => k === "save" || k === "patch" || k === "delete")) {
|
|
263
|
-
return "batch";
|
|
264
|
-
}
|
|
265
|
-
if (kinds.every((k) => k === "increment"))
|
|
266
|
-
return "increment";
|
|
267
|
-
if (kinds.every((k) => k === "addToSet" || k === "removeFromSet")) {
|
|
268
|
-
return "stringset";
|
|
269
|
-
}
|
|
270
|
-
// All remaining ops are individual flat kinds but a mix of increment and
|
|
271
|
-
// stringset — the runtime returns one flat shape (the first op's), so type
|
|
272
|
-
// it as the union rather than the batch `MutationResult`.
|
|
273
|
-
const isIndividual = (k) => k === "increment" || k === "addToSet" || k === "removeFromSet";
|
|
274
|
-
if (kinds.every(isIndividual))
|
|
275
|
-
return "mixed";
|
|
276
|
-
return "opaque";
|
|
277
|
-
}
|
|
278
253
|
/**
|
|
279
254
|
* Resolve a pipeline op's `return`-step result shape (#1437). The runtime
|
|
280
255
|
* flattens a returning pipeline to the returned step's shape, so codegen types
|
|
@@ -333,26 +308,203 @@ function collectStampedFields(typeConfig) {
|
|
|
333
308
|
return [...new Set(names)];
|
|
334
309
|
}
|
|
335
310
|
/**
|
|
336
|
-
* Convert the normalized op `params` map
|
|
337
|
-
*
|
|
338
|
-
* output. A string param's
|
|
339
|
-
* render a string-literal
|
|
311
|
+
* Convert the normalized op `params` map
|
|
312
|
+
* (`{ name: { type, required, enum?, items? } }`) into a sorted list of
|
|
313
|
+
* `ParamField`. Sorted by name for deterministic output. A string param's
|
|
314
|
+
* `enum` (#861) is carried through so the emitter can render a string-literal
|
|
315
|
+
* union.
|
|
316
|
+
*
|
|
317
|
+
* `inferredArrayElements` (#1488, Phase 1) maps a param bound to a `$in`/`$nin`
|
|
318
|
+
* filter operator to its inferred scalar element TS type (or the `"unknown"`
|
|
319
|
+
* sentinel → `unknown[]`). Inference only ever NARROWS a param the emitter
|
|
320
|
+
* would otherwise widen: an explicit `type = "array"` declaration (Phase 2)
|
|
321
|
+
* always wins, and a param absent from the map keeps its declared-type mapping.
|
|
340
322
|
*/
|
|
341
|
-
function paramsToFields(params) {
|
|
323
|
+
function paramsToFields(params, inferredArrayElements) {
|
|
342
324
|
if (!params || typeof params !== "object")
|
|
343
325
|
return [];
|
|
344
326
|
return Object.entries(params)
|
|
345
|
-
.map(([name, def]) =>
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
//
|
|
352
|
-
|
|
353
|
-
|
|
327
|
+
.map(([name, def]) => {
|
|
328
|
+
const rawType = def?.type;
|
|
329
|
+
const declaredType = rawType ?? "object";
|
|
330
|
+
const declaredItems = def?.items;
|
|
331
|
+
let type = declaredType;
|
|
332
|
+
let items = declaredItems;
|
|
333
|
+
// Apply inference only to untyped/`object` params — the declaration is
|
|
334
|
+
// otherwise authoritative (behavior 8). A param explicitly declared as a
|
|
335
|
+
// scalar (`string`/`number`/`boolean`/`integer`) is validated by runtime
|
|
336
|
+
// `execute` against that scalar type; a param declared with a model type
|
|
337
|
+
// is treated as model-typed by the runtime `coerceParam`, which rejects
|
|
338
|
+
// arrays with "must be an object"; and an explicit `array` already has its
|
|
339
|
+
// element type. Rewriting any of those to an inferred array would emit a
|
|
340
|
+
// type the server is guaranteed to reject. Only untyped/`object` params
|
|
341
|
+
// (which the emitter would otherwise widen to `Record<string, unknown>`)
|
|
342
|
+
// are eligible. Since `declaredType = rawType ?? "object"`, `=== "object"`
|
|
343
|
+
// matches both a missing `type` and an explicit `object` declaration.
|
|
344
|
+
const inferred = inferredArrayElements?.get(name);
|
|
345
|
+
if (declaredType === "object" && inferred !== undefined) {
|
|
346
|
+
type = "array";
|
|
347
|
+
// The `"unknown"` sentinel means "array, element unresolved": leave
|
|
348
|
+
// `items` undefined so the emitter renders `unknown[]`.
|
|
349
|
+
items = inferred === "unknown" ? undefined : inferred;
|
|
350
|
+
}
|
|
351
|
+
return {
|
|
352
|
+
name,
|
|
353
|
+
type,
|
|
354
|
+
required: def?.required === true,
|
|
355
|
+
// Allowed-value set for a string param → string-literal union (#861).
|
|
356
|
+
// `normalizeOperationFromToml` preserves `enum` upstream via its
|
|
357
|
+
// `...rest` spread; carry it through here so it reaches the emitter.
|
|
358
|
+
enum: def?.enum,
|
|
359
|
+
items,
|
|
360
|
+
};
|
|
361
|
+
})
|
|
354
362
|
.sort((a, b) => a.name.localeCompare(b.name));
|
|
355
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* Infer the scalar element TS type for op params consumed by a `$in`/`$nin`
|
|
366
|
+
* filter operator (#1488, Phase 1). Codegen-only: a param compared with
|
|
367
|
+
* `$in`/`$nin` against a model field is definitionally an array, so the
|
|
368
|
+
* typed-ops factory (#1441) should emit `<elem>[]` rather than widening an
|
|
369
|
+
* untyped/object param to `Record<string, unknown>` (which `string[]` is not
|
|
370
|
+
* assignable to).
|
|
371
|
+
*
|
|
372
|
+
* Kept a small local helper next to {@link inferRequiredRecordFields} rather
|
|
373
|
+
* than a shared cross-runtime analysis pass (sponsor decision on #1488).
|
|
374
|
+
*
|
|
375
|
+
* Returns a map of param name → element TS type. The `"unknown"` sentinel means
|
|
376
|
+
* "emit `unknown[]`" — used when the compared field is missing from the model
|
|
377
|
+
* schema (or the op has no resolvable model), when the same param is bound to
|
|
378
|
+
* fields of differing element types, or when the param is also used as a scalar
|
|
379
|
+
* elsewhere (conservative widen, mirroring #845's disagreement rule / #1488
|
|
380
|
+
* Fork 4). A param absent from the map is not consumed by any array operator
|
|
381
|
+
* and keeps its declared-type mapping (inference never widens such a param).
|
|
382
|
+
*/
|
|
383
|
+
export function inferArrayParamElementTypes(op, fieldTypesByModel) {
|
|
384
|
+
const result = new Map();
|
|
385
|
+
if (!op || typeof op !== "object")
|
|
386
|
+
return result;
|
|
387
|
+
const def = op.definition;
|
|
388
|
+
if (!def || typeof def !== "object")
|
|
389
|
+
return result;
|
|
390
|
+
// Element TS types seen for each param via `$in`/`$nin` (deduped). A param
|
|
391
|
+
// also seen as a scalar reference is widened to `unknown[]`.
|
|
392
|
+
const arrayElems = new Map();
|
|
393
|
+
const scalarRefs = new Set();
|
|
394
|
+
const addArrayElem = (param, elem) => {
|
|
395
|
+
let s = arrayElems.get(param);
|
|
396
|
+
if (!s) {
|
|
397
|
+
s = new Set();
|
|
398
|
+
arrayElems.set(param, s);
|
|
399
|
+
}
|
|
400
|
+
s.add(elem);
|
|
401
|
+
};
|
|
402
|
+
// A bare `$params.<name>` string → the param name, else null.
|
|
403
|
+
const paramRef = (v) => {
|
|
404
|
+
if (typeof v !== "string")
|
|
405
|
+
return null;
|
|
406
|
+
const m = v.match(/^\$params\.([A-Za-z0-9_]+)$/);
|
|
407
|
+
return m ? m[1] : null;
|
|
408
|
+
};
|
|
409
|
+
// Scalar element TS type for `field` of the current model, or `"unknown"`.
|
|
410
|
+
// A `stringset` field's ELEMENT is a string (#1488, e7) — do NOT reuse
|
|
411
|
+
// `tsTypeForDbFieldType`, which maps `stringset → string[]` and would emit
|
|
412
|
+
// `string[][]` for the param.
|
|
413
|
+
const elemTypeForField = (field, fields) => {
|
|
414
|
+
const ftype = fields?.get(field);
|
|
415
|
+
if (ftype === undefined)
|
|
416
|
+
return "unknown"; // missing field / no schema (e2)
|
|
417
|
+
if (ftype === "stringset")
|
|
418
|
+
return "string";
|
|
419
|
+
const ts = tsTypeForDbFieldType(ftype);
|
|
420
|
+
return ts === "string" || ts === "number" || ts === "boolean"
|
|
421
|
+
? ts
|
|
422
|
+
: "unknown";
|
|
423
|
+
};
|
|
424
|
+
const modelFields = (name) => typeof name === "string" ? fieldTypesByModel.get(name) : undefined;
|
|
425
|
+
// Walk a filter object, resolving field conditions against `fields`.
|
|
426
|
+
const walkFilter = (filter, fields) => {
|
|
427
|
+
if (!filter || typeof filter !== "object" || Array.isArray(filter))
|
|
428
|
+
return;
|
|
429
|
+
for (const [key, value] of Object.entries(filter)) {
|
|
430
|
+
if (key === "$and" || key === "$or") {
|
|
431
|
+
if (Array.isArray(value)) {
|
|
432
|
+
for (const sub of value)
|
|
433
|
+
walkFilter(sub, fields);
|
|
434
|
+
}
|
|
435
|
+
continue;
|
|
436
|
+
}
|
|
437
|
+
// `$not` is a logical operator too, but (unlike `$and`/`$or`) it wraps a
|
|
438
|
+
// SINGLE nested condition object rather than an array — recurse into it so
|
|
439
|
+
// an `$in`/`$nin` inside a negated filter still infers its element type.
|
|
440
|
+
// Mirrors the operation grammar walker in
|
|
441
|
+
// `src/app-api/services/walk-operation.ts` (`walkFilterFields`), which
|
|
442
|
+
// treats `$and`/`$or`/`$not` as the recursing logical operators; the two
|
|
443
|
+
// walk the same op-definition filter grammar and must agree.
|
|
444
|
+
if (key === "$not") {
|
|
445
|
+
walkFilter(value, fields);
|
|
446
|
+
continue;
|
|
447
|
+
}
|
|
448
|
+
// Field condition: `key` is a field name; `value` is a scalar (shorthand
|
|
449
|
+
// equality) or an operator map (`{ $in: ..., $eq: ... }`).
|
|
450
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
451
|
+
for (const [operator, opVal] of Object.entries(value)) {
|
|
452
|
+
const p = paramRef(opVal);
|
|
453
|
+
if (!p)
|
|
454
|
+
continue;
|
|
455
|
+
if (operator === "$in" || operator === "$nin") {
|
|
456
|
+
addArrayElem(p, elemTypeForField(key, fields));
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
// A scalar operator ($eq/$ne/$gt/…) binds a scalar param.
|
|
460
|
+
scalarRefs.add(p);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
const p = paramRef(value);
|
|
466
|
+
if (p)
|
|
467
|
+
scalarRefs.add(p);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
};
|
|
471
|
+
// Top-level query filter.
|
|
472
|
+
walkFilter(def.filter, modelFields(op.modelName));
|
|
473
|
+
// `applyToQuery` ops hold their matching query under `definition.source`
|
|
474
|
+
// (`source.filter`), which resolves against the op's own model unless the
|
|
475
|
+
// source names a different one. Without this walk, an `$in`/`$nin` against an
|
|
476
|
+
// object/untyped param inside `source.filter` stays widened to
|
|
477
|
+
// `Record<string, unknown>` — the original array-param bug (#1488).
|
|
478
|
+
if (def.source && typeof def.source === "object") {
|
|
479
|
+
walkFilter(def.source.filter, modelFields(def.source.modelName ?? op.modelName));
|
|
480
|
+
}
|
|
481
|
+
// Mutation inner operations — each may carry its own filter + modelName.
|
|
482
|
+
if (Array.isArray(def.operations)) {
|
|
483
|
+
for (const inner of def.operations) {
|
|
484
|
+
if (inner && typeof inner === "object") {
|
|
485
|
+
walkFilter(inner.filter, modelFields(inner.modelName ?? op.modelName));
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
// Pipeline steps — each may carry its own filter + modelName.
|
|
490
|
+
if (Array.isArray(def.steps)) {
|
|
491
|
+
for (const step of def.steps) {
|
|
492
|
+
if (step && typeof step === "object") {
|
|
493
|
+
walkFilter(step.filter, modelFields(step.modelName ?? op.modelName));
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
for (const [param, elems] of arrayElems) {
|
|
498
|
+
if (scalarRefs.has(param) || elems.size !== 1) {
|
|
499
|
+
// Used as both array and scalar, or bound to differing element types.
|
|
500
|
+
result.set(param, "unknown");
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
result.set(param, [...elems][0]);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
return result;
|
|
507
|
+
}
|
|
356
508
|
/**
|
|
357
509
|
* Infer which record fields are always supplied at create time, by reading the
|
|
358
510
|
* `save` operation params (issue #842).
|
|
@@ -454,7 +606,9 @@ export function inferRequiredRecordFields(operations) {
|
|
|
454
606
|
return result;
|
|
455
607
|
}
|
|
456
608
|
/**
|
|
457
|
-
* Run codegen end-to-end across one or more database-type TOML inputs.
|
|
609
|
+
* Run codegen end-to-end across one or more database-type TOML inputs. The
|
|
610
|
+
* disk lifecycle (write / `--check` / stale cleanup) is delegated to the
|
|
611
|
+
* shared `writeOrCheckGeneratedFiles` (shared with `workflows codegen`).
|
|
458
612
|
*/
|
|
459
613
|
export async function generateDbTypes(options) {
|
|
460
614
|
const outAbs = path.resolve(options.outputDir);
|
|
@@ -463,106 +617,14 @@ export async function generateDbTypes(options) {
|
|
|
463
617
|
const filePath = path.join(outAbs, `${input.databaseType}${GENERATED_FILE_SUFFIX}`);
|
|
464
618
|
filesToWrite.set(filePath, renderDbTypeFile(input));
|
|
465
619
|
}
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
}
|
|
476
|
-
writtenFiles.sort();
|
|
477
|
-
deletedFiles.sort();
|
|
478
|
-
return { writtenFiles, deletedFiles, mismatches: [] };
|
|
479
|
-
}
|
|
480
|
-
async function runCheck(outAbs, filesToWrite, singleType) {
|
|
481
|
-
const mismatches = [];
|
|
482
|
-
for (const [filePath, expected] of filesToWrite) {
|
|
483
|
-
let actual;
|
|
484
|
-
try {
|
|
485
|
-
actual = await fsp.readFile(filePath, "utf-8");
|
|
486
|
-
}
|
|
487
|
-
catch (err) {
|
|
488
|
-
if (err && err.code === "ENOENT") {
|
|
489
|
-
actual = null;
|
|
490
|
-
}
|
|
491
|
-
else {
|
|
492
|
-
throw err;
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
if (actual === null) {
|
|
496
|
-
mismatches.push({ filePath, reason: "missing" });
|
|
497
|
-
}
|
|
498
|
-
else if (actual !== expected) {
|
|
499
|
-
mismatches.push({ filePath, reason: "differs" });
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
// Stale on-disk generated files the generator wouldn't produce also count
|
|
503
|
-
// as a mismatch (so CI catches dropped database types). Skip this when the
|
|
504
|
-
// run was filtered to a single type: `filesToWrite` is then a partial set,
|
|
505
|
-
// so sibling types' files are not "stale" — they just weren't in scope.
|
|
506
|
-
if (!singleType && (await dirExists(outAbs))) {
|
|
507
|
-
const onDisk = await listOwnedGeneratedFiles(outAbs);
|
|
508
|
-
const expectedPaths = new Set(filesToWrite.keys());
|
|
509
|
-
for (const filePath of onDisk) {
|
|
510
|
-
if (!expectedPaths.has(filePath)) {
|
|
511
|
-
mismatches.push({ filePath, reason: "stale" });
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
return {
|
|
516
|
-
writtenFiles: [...filesToWrite.keys()].sort(),
|
|
517
|
-
deletedFiles: [],
|
|
518
|
-
mismatches,
|
|
519
|
-
};
|
|
520
|
-
}
|
|
521
|
-
async function cleanupGeneratedOutputs(outDir, filesToWrite, singleType) {
|
|
522
|
-
// A single-type filter run only owns its own file(s); the `filesToWrite`
|
|
523
|
-
// set does not represent the full set of generated files. Skip orphan
|
|
524
|
-
// cleanup so sibling types' `*.generated.ts` are not silently destroyed.
|
|
525
|
-
// Full cleanup only happens on the unfiltered "generate all" run.
|
|
526
|
-
if (singleType)
|
|
527
|
-
return [];
|
|
528
|
-
const onDisk = await listOwnedGeneratedFiles(outDir);
|
|
529
|
-
const expectedPaths = new Set(filesToWrite.keys());
|
|
530
|
-
const deleted = [];
|
|
531
|
-
for (const filePath of onDisk) {
|
|
532
|
-
if (!expectedPaths.has(filePath)) {
|
|
533
|
-
await fsp.unlink(filePath);
|
|
534
|
-
deleted.push(filePath);
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
return deleted;
|
|
538
|
-
}
|
|
539
|
-
/**
|
|
540
|
-
* List only the files in `outDir` that the generator owns: any file ending
|
|
541
|
-
* in `.generated.ts`. Hand-written files are never touched.
|
|
542
|
-
*/
|
|
543
|
-
async function listOwnedGeneratedFiles(outDir) {
|
|
544
|
-
if (!(await dirExists(outDir)))
|
|
545
|
-
return [];
|
|
546
|
-
const entries = await fsp.readdir(outDir, { withFileTypes: true });
|
|
547
|
-
const owned = [];
|
|
548
|
-
for (const entry of entries) {
|
|
549
|
-
if (!entry.isFile())
|
|
550
|
-
continue;
|
|
551
|
-
if (entry.name.endsWith(GENERATED_FILE_SUFFIX)) {
|
|
552
|
-
owned.push(path.join(outDir, entry.name));
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
return owned;
|
|
556
|
-
}
|
|
557
|
-
async function dirExists(dir) {
|
|
558
|
-
try {
|
|
559
|
-
const stat = await fsp.stat(dir);
|
|
560
|
-
return stat.isDirectory();
|
|
561
|
-
}
|
|
562
|
-
catch (err) {
|
|
563
|
-
if (err && err.code === "ENOENT")
|
|
564
|
-
return false;
|
|
565
|
-
throw err;
|
|
566
|
-
}
|
|
620
|
+
return await writeOrCheckGeneratedFiles({
|
|
621
|
+
outputDir: outAbs,
|
|
622
|
+
filesToWrite,
|
|
623
|
+
check: options.check,
|
|
624
|
+
// A single-type filter run owns only a subset of the generated files, so
|
|
625
|
+
// orphan cleanup / stale detection must be scoped to the filtered file.
|
|
626
|
+
fullOwnership: options.singleType !== true,
|
|
627
|
+
generatedSuffix: GENERATED_FILE_SUFFIX,
|
|
628
|
+
});
|
|
567
629
|
}
|
|
568
630
|
//# sourceMappingURL=dbGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbGenerator.js","sourceRoot":"","sources":["../../../../src/lib/db-codegen/dbGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dbGenerator.js","sourceRoot":"","sources":["../../../../src/lib/db-codegen/dbGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ export interface RenderRecordInterfaceInput {
|
|
|
47
47
|
/** One declared param on an op-input interface (write shape). */
|
|
48
48
|
export interface ParamField {
|
|
49
49
|
name: string;
|
|
50
|
-
/** TOML param type (`string|number|boolean|object`). */
|
|
50
|
+
/** TOML param type (`string|number|boolean|object|array`). */
|
|
51
51
|
type: string;
|
|
52
52
|
required: boolean;
|
|
53
53
|
/**
|
|
@@ -56,6 +56,13 @@ export interface ParamField {
|
|
|
56
56
|
* renders the union when present and falls back to the base type otherwise.
|
|
57
57
|
*/
|
|
58
58
|
enum?: string[];
|
|
59
|
+
/**
|
|
60
|
+
* Scalar element type for an `array` param (#1488), either declared
|
|
61
|
+
* (`type = "array"` + `items = "..."`) or inferred from a `$in`/`$nin`
|
|
62
|
+
* binding. Undefined on a non-array param, or on an array whose element type
|
|
63
|
+
* could not be resolved (renders `unknown[]`).
|
|
64
|
+
*/
|
|
65
|
+
items?: string;
|
|
59
66
|
}
|
|
60
67
|
export interface RenderOpParamsInterfaceInput {
|
|
61
68
|
/** PascalCase params interface name (e.g. `SaveAccountParams`). */
|
|
@@ -83,19 +90,6 @@ export type ProjectionClassification = {
|
|
|
83
90
|
} | {
|
|
84
91
|
kind: "partial";
|
|
85
92
|
};
|
|
86
|
-
/**
|
|
87
|
-
* Which flat-vs-batch result shape a `mutation` op produces (#1438), resolved
|
|
88
|
-
* from the op definition's step kinds by the generator:
|
|
89
|
-
* - `batch` → `MutationResult` (any save/patch/delete step; the `/batch`
|
|
90
|
-
* response the runtime returns as `results[0]`).
|
|
91
|
-
* - `increment` → `IncrementMutationResult` (increment-only).
|
|
92
|
-
* - `stringset` → `StringSetMutationResult` (addToSet/removeFromSet-only).
|
|
93
|
-
* - `mixed` → `IncrementMutationResult | StringSetMutationResult` (a mix
|
|
94
|
-
* of only individual increment + stringset steps; no `/batch`
|
|
95
|
-
* is sent, so the runtime returns the first op's flat shape).
|
|
96
|
-
* - `opaque` → `MutationResult` fallback (empty / malformed / unresolvable).
|
|
97
|
-
*/
|
|
98
|
-
export type MutationResultCategory = "batch" | "increment" | "stringset" | "mixed" | "opaque";
|
|
99
93
|
/**
|
|
100
94
|
* A `pipeline` op's resolved `return` step (#1437). The runtime flattens a
|
|
101
95
|
* returning pipeline to the returned step's shape, so codegen types it as that
|
|
@@ -131,11 +125,6 @@ export interface RenderOpResultAliasInput {
|
|
|
131
125
|
* Absent → treated as `full`.
|
|
132
126
|
*/
|
|
133
127
|
projection?: ProjectionClassification;
|
|
134
|
-
/**
|
|
135
|
-
* For `mutation` ops (#1438), which flat-vs-batch result shape the op
|
|
136
|
-
* produces. Absent → the generic `MutationResult`.
|
|
137
|
-
*/
|
|
138
|
-
mutationCategory?: MutationResultCategory;
|
|
139
128
|
/**
|
|
140
129
|
* For `pipeline` ops (#1437), the resolved `return`-step descriptor. Absent
|
|
141
130
|
* or `opaque` → the generic `PipelineResult`.
|
|
@@ -148,7 +137,7 @@ export interface RenderOpResultAliasInput {
|
|
|
148
137
|
* controller; per-op aliases point at them (and, where the definition makes the
|
|
149
138
|
* shape derivable, at a narrowed form — see `renderOpResultAlias`).
|
|
150
139
|
*/
|
|
151
|
-
export declare const RESULT_ALIASES_BLOCK = "// Generic per-op result shapes. These mirror the runtime result shapes\n// produced by the database-operations controller; per-op aliases reference\n// them (or a narrowed form when the op definition makes the shape derivable).\n\n/** `query` ops return a page of records. */\nexport interface QueryResult<T = Record<string, unknown>> {\n data: T[];\n hasMore?: boolean;\n nextCursor?: string;\n}\n\n
|
|
140
|
+
export declare const RESULT_ALIASES_BLOCK = "// Generic per-op result shapes. These mirror the runtime result shapes\n// produced by the database-operations controller; per-op aliases reference\n// them (or a narrowed form when the op definition makes the shape derivable).\n\n/** `query` ops return a page of records. */\nexport interface QueryResult<T = Record<string, unknown>> {\n data: T[];\n hasMore?: boolean;\n nextCursor?: string;\n}\n\n/**\n * One step's result inside a `mutation` op's uniform response (#1458).\n * `op` is the step kind; `id` is the record id (the resolved canonical id for\n * `upsertOn` saves). `values` carries an `increment` step's post-increment\n * counters; `error` a per-step failure string.\n */\nexport interface MutationStepResult {\n op: \"save\" | \"patch\" | \"delete\" | \"increment\" | \"addToSet\" | \"removeFromSet\";\n success: boolean;\n id: string;\n values?: Record<string, number>;\n error?: string;\n}\n\n/**\n * Every `mutation` op returns a uniform `{ results: MutationStepResult[] }`\n * in DEFINITION-STEP order \u2014 one entry per step, tagged with its `op` kind and\n * record `id` (#1458). This is a SUCCESS-PATH guarantee: a step that fails at\n * the HTTP level surfaces as an error, and committed sibling writes in the same\n * op are not reported (the ops are not yet executed atomically \u2014 see #1478).\n */\nexport interface MutationResult {\n results: MutationStepResult[];\n}\n\n/** `count` ops return a single count. */\nexport interface CountResult {\n count: number;\n}\n\n/** `aggregate` ops return a single result object. */\nexport interface AggregateResult {\n result: Record<string, unknown>;\n}\n\n/** `applyToQuery` ops return match/affect/fail counts. */\nexport interface ApplyToQueryResult {\n matched: number;\n affected: number;\n failed: number;\n sample?: unknown[];\n}\n\n/** `pipeline` ops return per-step results keyed by step name. */\nexport interface PipelineResult {\n steps: Record<string, unknown>;\n}\n";
|
|
152
141
|
/**
|
|
153
142
|
* Render the header (banner + regen hint + fingerprint).
|
|
154
143
|
*/
|
|
@@ -169,9 +158,8 @@ export declare function renderOpParamsInterface(input: RenderOpParamsInterfaceIn
|
|
|
169
158
|
* Render a per-op result alias. The alias is derived from `op.type` and, where
|
|
170
159
|
* the shape is derivable from the parsed op definition, a narrowed form:
|
|
171
160
|
* - `query` → `QueryResult<M>`, narrowed by the op `projection` (#1439).
|
|
172
|
-
* - `mutation` → `MutationResult`
|
|
173
|
-
* `
|
|
174
|
-
* a mixed individual-only op) per the op's step kinds (#1438).
|
|
161
|
+
* - `mutation` → `MutationResult` — every mutation op returns the uniform
|
|
162
|
+
* `{ results: MutationStepResult[] }` in definition order (#1458).
|
|
175
163
|
* - `pipeline` → the returned step's result type (#1437); `return: "all"` /
|
|
176
164
|
* no-return / unresolvable keep the generic `PipelineResult`.
|
|
177
165
|
*/
|