primitive-admin 1.1.0-alpha.45 → 1.1.0-alpha.46
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 +2 -0
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/collections.js +11 -0
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/databases.js +34 -49
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/sync.js +3 -0
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/vars.d.ts +8 -0
- package/dist/src/commands/vars.js +110 -0
- package/dist/src/commands/vars.js.map +1 -0
- package/dist/src/commands/workflows.js +23 -82
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +9 -0
- package/dist/src/lib/api-client.js +15 -0
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +68 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +168 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
- package/dist/src/lib/generated-allowlist.js +2 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/toml-metadata-config.d.ts +10 -2
- package/dist/src/lib/toml-metadata-config.js +51 -15
- package/dist/src/lib/toml-metadata-config.js.map +1 -1
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +33 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +158 -1
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -1
- package/dist/src/lib/workflow-codegen/generator.d.ts +6 -2
- package/dist/src/lib/workflow-codegen/generator.js +35 -6
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +13 -4
- package/dist/src/lib/workflow-codegen/schemaToTs.js +49 -4
- package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -1
- package/package.json +1 -1
|
@@ -39,6 +39,12 @@ export interface MetadataCategoryConfigInput {
|
|
|
39
39
|
readRule: string | null;
|
|
40
40
|
writeRule: string | null;
|
|
41
41
|
description: string | null;
|
|
42
|
+
/**
|
|
43
|
+
* Declared-access manifest (#1420 Phase 2) — the top-level `[metadata]` /
|
|
44
|
+
* `secrets` block that lets the category's `readRule`/`writeRule` reach
|
|
45
|
+
* `md.self.*` / `secrets.*`. Null when the config declares none.
|
|
46
|
+
*/
|
|
47
|
+
metadataManifest: DeclaredAccessManifest | null;
|
|
42
48
|
}
|
|
43
49
|
/**
|
|
44
50
|
* Normalize a parsed `[metadataCategoryConfig]` TOML section into the REST
|
|
@@ -112,11 +118,12 @@ export interface DeclaredAccessManifest {
|
|
|
112
118
|
categories: string[];
|
|
113
119
|
}>;
|
|
114
120
|
secrets?: string[];
|
|
121
|
+
vars?: string[];
|
|
115
122
|
}
|
|
116
123
|
/**
|
|
117
124
|
* Read the declared-access manifest out of a parsed config TOML: the top-level
|
|
118
|
-
* `[metadata]` table (self + paths) and the `secrets`
|
|
119
|
-
* when
|
|
125
|
+
* `[metadata]` table (self + paths) and the `secrets` / `vars` arrays. Returns
|
|
126
|
+
* `null` when none is present (the config declares no metadata/scalar access).
|
|
120
127
|
*/
|
|
121
128
|
export declare function parseDeclaredAccessManifestToml(tomlData: any): DeclaredAccessManifest | null;
|
|
122
129
|
/**
|
|
@@ -136,4 +143,5 @@ export declare function validateDeclaredAccessManifest(manifest: DeclaredAccessM
|
|
|
136
143
|
export declare function serializeDeclaredAccessManifest(manifest: DeclaredAccessManifest | null | undefined): {
|
|
137
144
|
metadata?: any;
|
|
138
145
|
secrets?: string[];
|
|
146
|
+
vars?: string[];
|
|
139
147
|
};
|
|
@@ -32,6 +32,12 @@ import { stringifyConfigToml } from "./config-toml.js";
|
|
|
32
32
|
/** Identifier-safe name: letters, digits, underscore; not starting with a digit.
|
|
33
33
|
* Matches the server's `METADATA_KEY_PATTERN`. */
|
|
34
34
|
const IDENTIFIER_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
35
|
+
/** The key format the `secrets` / `vars` services accept when a value is created
|
|
36
|
+
* (server's `SCALAR_KEY_RE`, secrets/vars service `KEY_REGEX`). A declared
|
|
37
|
+
* scalar-root key that is identifier-safe but does not match this (e.g.
|
|
38
|
+
* lowercase) can never be created via the API, so reject it at manifest-parse
|
|
39
|
+
* time on both ends (issue #1364). */
|
|
40
|
+
const SCALAR_KEY_PATTERN = /^[A-Z][A-Z0-9_]{0,63}$/;
|
|
35
41
|
/** The reserved projected category (computed live from a resource's columns).
|
|
36
42
|
* Matches the server's `RESERVED_PROJECTED_CATEGORY`. */
|
|
37
43
|
export const RESERVED_CATEGORY = "attrs";
|
|
@@ -67,6 +73,9 @@ export function parseMetadataCategoryToml(tomlData) {
|
|
|
67
73
|
readRule: section.readRule ?? null,
|
|
68
74
|
writeRule: section.writeRule ?? null,
|
|
69
75
|
description: section.description ?? null,
|
|
76
|
+
// #1420 Phase 2: the manifest lives in the top-level `[metadata]`/`secrets`
|
|
77
|
+
// block (sibling to `[metadataCategoryConfig]`), reusing the shared parser.
|
|
78
|
+
metadataManifest: parseDeclaredAccessManifestToml(tomlData),
|
|
70
79
|
};
|
|
71
80
|
}
|
|
72
81
|
/**
|
|
@@ -106,7 +115,12 @@ export function validateMetadataCategoryConfig(input) {
|
|
|
106
115
|
typeof input.description !== "string") {
|
|
107
116
|
return "metadataCategoryConfig.description must be a string";
|
|
108
117
|
}
|
|
109
|
-
|
|
118
|
+
const schemaError = validateCategorySchema(input.schema);
|
|
119
|
+
if (schemaError)
|
|
120
|
+
return schemaError;
|
|
121
|
+
// #1420 Phase 2: local surface-level check on the declared-access manifest;
|
|
122
|
+
// the server re-validates the deep path graph at persist time.
|
|
123
|
+
return validateDeclaredAccessManifest(input.metadataManifest);
|
|
110
124
|
}
|
|
111
125
|
/**
|
|
112
126
|
* Validate the `schema` block is a well-formed js-bao `FieldOptions` map:
|
|
@@ -197,15 +211,22 @@ export function serializeMetadataCategoryConfig(config) {
|
|
|
197
211
|
}
|
|
198
212
|
}
|
|
199
213
|
section.schema = schema ?? { fields: {} };
|
|
200
|
-
|
|
214
|
+
// #1420 Phase 2: emit the declared-access manifest as a top-level
|
|
215
|
+
// `[metadata]`/`secrets` block (sibling to `[metadataCategoryConfig]`),
|
|
216
|
+
// reusing the shared serializer so it round-trips byte-stable.
|
|
217
|
+
return stringifyConfigToml({
|
|
218
|
+
metadataCategoryConfig: section,
|
|
219
|
+
...serializeDeclaredAccessManifest(config.metadataManifest),
|
|
220
|
+
});
|
|
201
221
|
}
|
|
202
|
-
// --- Declared-access manifest (`[metadata]` + `secrets`)
|
|
222
|
+
// --- Declared-access manifest (`[metadata]` + `secrets` + `vars`) ----------
|
|
203
223
|
//
|
|
204
224
|
// The manifest that lives on an owning config surface. Shape mirrors the
|
|
205
225
|
// server's `MetadataDeclaration` (`src/app-api/helpers/metadata-cel-access.ts`):
|
|
206
226
|
// metadata.self.categories = ["profile"]
|
|
207
227
|
// [metadata.paths.<name>] from|rootFrom, via, type, categories
|
|
208
228
|
// secrets = ["STRIPE_KEY"]
|
|
229
|
+
// vars = ["ADMIN_GROUP_ID"] # non-secret twin of secrets (issue #1364)
|
|
209
230
|
/** Root contexts a `rootFrom` path may start at (caller-supplied subjectless
|
|
210
231
|
* contexts). Mirrors the server's `ROOT_CONTEXT_PREFIXES`
|
|
211
232
|
* (`src/app-api/helpers/metadata-cel-access.ts`). */
|
|
@@ -260,19 +281,26 @@ export function validateRootFromPath(root, type) {
|
|
|
260
281
|
}
|
|
261
282
|
return null;
|
|
262
283
|
}
|
|
263
|
-
const MANIFEST_KEYS = new Set(["self", "paths", "secrets"]);
|
|
284
|
+
const MANIFEST_KEYS = new Set(["self", "paths", "secrets", "vars"]);
|
|
264
285
|
const SELF_KEYS = new Set(["categories"]);
|
|
265
286
|
const PATH_KEYS = new Set(["from", "rootFrom", "via", "type", "categories"]);
|
|
287
|
+
/** The declared scalar roots: `secrets` (masked) and `vars` (non-secret). */
|
|
288
|
+
const SCALAR_ROOT_KEYS = [
|
|
289
|
+
{ key: "secrets", singular: "secret" },
|
|
290
|
+
{ key: "vars", singular: "var" },
|
|
291
|
+
];
|
|
266
292
|
/**
|
|
267
293
|
* Read the declared-access manifest out of a parsed config TOML: the top-level
|
|
268
|
-
* `[metadata]` table (self + paths) and the `secrets`
|
|
269
|
-
* when
|
|
294
|
+
* `[metadata]` table (self + paths) and the `secrets` / `vars` arrays. Returns
|
|
295
|
+
* `null` when none is present (the config declares no metadata/scalar access).
|
|
270
296
|
*/
|
|
271
297
|
export function parseDeclaredAccessManifestToml(tomlData) {
|
|
272
298
|
const metadata = tomlData?.metadata;
|
|
273
299
|
const secrets = tomlData?.secrets;
|
|
274
|
-
|
|
300
|
+
const vars = tomlData?.vars;
|
|
301
|
+
if (metadata === undefined && secrets === undefined && vars === undefined) {
|
|
275
302
|
return null;
|
|
303
|
+
}
|
|
276
304
|
const manifest = {};
|
|
277
305
|
if (metadata && typeof metadata === "object") {
|
|
278
306
|
if (metadata.self !== undefined) {
|
|
@@ -285,6 +313,9 @@ export function parseDeclaredAccessManifestToml(tomlData) {
|
|
|
285
313
|
if (secrets !== undefined) {
|
|
286
314
|
manifest.secrets = secrets;
|
|
287
315
|
}
|
|
316
|
+
if (vars !== undefined) {
|
|
317
|
+
manifest.vars = vars;
|
|
318
|
+
}
|
|
288
319
|
return manifest;
|
|
289
320
|
}
|
|
290
321
|
/**
|
|
@@ -373,15 +404,17 @@ export function validateDeclaredAccessManifest(manifest) {
|
|
|
373
404
|
return catError;
|
|
374
405
|
}
|
|
375
406
|
}
|
|
376
|
-
// `secrets`
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
407
|
+
// `secrets` / `vars` — the declared scalar roots share one key-list shape.
|
|
408
|
+
for (const { key: rootKey, singular } of SCALAR_ROOT_KEYS) {
|
|
409
|
+
const keys = manifest[rootKey];
|
|
410
|
+
if (keys === undefined)
|
|
411
|
+
continue;
|
|
412
|
+
if (!Array.isArray(keys) || keys.some((s) => typeof s !== "string")) {
|
|
413
|
+
return `${rootKey} must be an array of ${singular} key names (strings)`;
|
|
381
414
|
}
|
|
382
|
-
for (const key of
|
|
383
|
-
if (!
|
|
384
|
-
return
|
|
415
|
+
for (const key of keys) {
|
|
416
|
+
if (!SCALAR_KEY_PATTERN.test(key)) {
|
|
417
|
+
return `${rootKey} key "${key}" must match ^[A-Z][A-Z0-9_]{0,63}$ (uppercase letters, digits, underscores; must start with a letter; max 64 chars)`;
|
|
385
418
|
}
|
|
386
419
|
}
|
|
387
420
|
}
|
|
@@ -422,6 +455,9 @@ export function serializeDeclaredAccessManifest(manifest) {
|
|
|
422
455
|
if (Array.isArray(manifest.secrets) && manifest.secrets.length > 0) {
|
|
423
456
|
out.secrets = manifest.secrets;
|
|
424
457
|
}
|
|
458
|
+
if (Array.isArray(manifest.vars) && manifest.vars.length > 0) {
|
|
459
|
+
out.vars = manifest.vars;
|
|
460
|
+
}
|
|
425
461
|
return out;
|
|
426
462
|
}
|
|
427
463
|
//# sourceMappingURL=toml-metadata-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toml-metadata-config.js","sourceRoot":"","sources":["../../../src/lib/toml-metadata-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toml-metadata-config.js","sourceRoot":"","sources":["../../../src/lib/toml-metadata-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,6 +88,39 @@ export interface SchemaDescriptor {
|
|
|
88
88
|
/** The raw `items` schema (may be a tuple array the validator no-ops on). */
|
|
89
89
|
items: any;
|
|
90
90
|
} | null;
|
|
91
|
+
/**
|
|
92
|
+
* Discriminated-union (tagged-union) interpretation of a `oneOf` node (#1511).
|
|
93
|
+
*
|
|
94
|
+
* Populated ONLY when the node carries a `oneOf` (or `anyOf`) array whose
|
|
95
|
+
* members are ALL `type: "object"` — a clearly-intended tagged union. A
|
|
96
|
+
* `oneOf`/`anyOf` with any non-object member is NOT a tagged union: `oneOf`
|
|
97
|
+
* stays `null` here and is ignored (renders `unknown` / validates
|
|
98
|
+
* permissively) exactly as before, preserving backward compatibility.
|
|
99
|
+
*
|
|
100
|
+
* - `kind: "valid"` — a clean discriminated union: ≥2 object members sharing
|
|
101
|
+
* exactly one discriminator property declared as a single-literal `enum`
|
|
102
|
+
* in every member with distinct literals across members. The validator
|
|
103
|
+
* branch-selects by `discriminant` and validates only the matched member;
|
|
104
|
+
* the type converter renders the `|`-union of member object types.
|
|
105
|
+
* - `kind: "invalid"` — an all-object-member union that LOOKS like a tagged
|
|
106
|
+
* union but is defective (fewer than 2 members, no/ambiguous discriminator,
|
|
107
|
+
* or `anyOf` — unsupported in v1). `reason` is the codegen error message.
|
|
108
|
+
* The runtime validator ignores this (stays permissive); the codegen
|
|
109
|
+
* converter throws `reason` (Fork 3 = strict, resolved by the maintainer).
|
|
110
|
+
*/
|
|
111
|
+
oneOf: {
|
|
112
|
+
kind: "valid";
|
|
113
|
+
/** The auto-detected discriminator property name. */
|
|
114
|
+
discriminant: string;
|
|
115
|
+
/** One entry per member: its discriminant literal + raw member schema. */
|
|
116
|
+
members: Array<{
|
|
117
|
+
discriminantValue: any;
|
|
118
|
+
schema: any;
|
|
119
|
+
}>;
|
|
120
|
+
} | {
|
|
121
|
+
kind: "invalid";
|
|
122
|
+
reason: string;
|
|
123
|
+
} | null;
|
|
91
124
|
}
|
|
92
125
|
/**
|
|
93
126
|
* Interpret a parsed schema node. A non-object schema (null, array, scalar)
|
|
@@ -73,7 +73,163 @@ const EMPTY_DESCRIPTOR = {
|
|
|
73
73
|
enumValues: null,
|
|
74
74
|
object: null,
|
|
75
75
|
array: null,
|
|
76
|
+
oneOf: null,
|
|
76
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* Sibling constraint keywords that make a `oneOf` node a MIXED schema rather
|
|
80
|
+
* than a clean tagged union (#1511). A clean discriminated union carries only
|
|
81
|
+
* the `oneOf` keyword (plus annotations like `description`/`title`); it never
|
|
82
|
+
* combines with a top-level `type`/`properties`/`required`/`additionalProperties`/
|
|
83
|
+
* `items`/`enum`. When any of these co-occur with `oneOf`, the validator's
|
|
84
|
+
* branch-select would early-return and skip those sibling constraints, silently
|
|
85
|
+
* loosening validation. So a mixed node is NOT treated as a clean tagged union.
|
|
86
|
+
*/
|
|
87
|
+
const ONEOF_SIBLING_CONSTRAINT_KEYS = [
|
|
88
|
+
"type",
|
|
89
|
+
"properties",
|
|
90
|
+
"required",
|
|
91
|
+
"additionalProperties",
|
|
92
|
+
"items",
|
|
93
|
+
"enum",
|
|
94
|
+
];
|
|
95
|
+
function hasOneOfSiblingConstraints(schema) {
|
|
96
|
+
return ONEOF_SIBLING_CONSTRAINT_KEYS.some((k) => Object.prototype.hasOwnProperty.call(schema, k));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* A discriminator tag must be a comparable scalar (string/number/boolean) so
|
|
100
|
+
* the validator's strict-`===` branch-select can match it against a JSON-parsed
|
|
101
|
+
* value (#1511). An object/array literal is structurally identical after a JSON
|
|
102
|
+
* round-trip but never the same reference, so it would always "match no case".
|
|
103
|
+
* Restricting the auto-detected discriminator to scalars keeps a non-scalar tag
|
|
104
|
+
* from being treated as a (never-matchable) discriminator.
|
|
105
|
+
*/
|
|
106
|
+
function isScalarDiscriminatorLiteral(value) {
|
|
107
|
+
return (typeof value === "string" ||
|
|
108
|
+
typeof value === "number" ||
|
|
109
|
+
typeof value === "boolean");
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Interpret a `oneOf`/`anyOf` node as a discriminated (tagged) union (#1511).
|
|
113
|
+
*
|
|
114
|
+
* The tagged-union interpretation is scoped to a clearly-intended tagged union:
|
|
115
|
+
* EVERY member must be `type: "object"`. Anything else (a mixed/scalar `oneOf`)
|
|
116
|
+
* returns `null` and is ignored downstream, exactly as before.
|
|
117
|
+
*
|
|
118
|
+
* Within that scope:
|
|
119
|
+
* - `anyOf` is not supported in v1 → `invalid` (codegen error suggests `oneOf`);
|
|
120
|
+
* - a `oneOf` with fewer than 2 members → `invalid`;
|
|
121
|
+
* - the discriminator is auto-detected: the single property present in EVERY
|
|
122
|
+
* member as a single-literal `enum` whose literal is a comparable scalar
|
|
123
|
+
* (string/number/boolean), with distinct literals across members (a
|
|
124
|
+
* non-scalar literal is not a candidate — see `isScalarDiscriminatorLiteral`);
|
|
125
|
+
* - zero or more-than-one candidate discriminator → `invalid` (ambiguity).
|
|
126
|
+
*
|
|
127
|
+
* Pure and dependency-free so the CLI can vendor a byte-for-byte copy.
|
|
128
|
+
*/
|
|
129
|
+
function describeOneOf(schema) {
|
|
130
|
+
const rawOneOf = Array.isArray(schema.oneOf) ? schema.oneOf : null;
|
|
131
|
+
const rawAnyOf = Array.isArray(schema.anyOf) ? schema.anyOf : null;
|
|
132
|
+
// `oneOf` takes precedence; only one keyword is interpreted per node.
|
|
133
|
+
const keyword = rawOneOf
|
|
134
|
+
? "oneOf"
|
|
135
|
+
: rawAnyOf
|
|
136
|
+
? "anyOf"
|
|
137
|
+
: null;
|
|
138
|
+
const members = rawOneOf ?? rawAnyOf;
|
|
139
|
+
if (!keyword || !members)
|
|
140
|
+
return null;
|
|
141
|
+
// Scope to a clearly-intended tagged union: every member is `type: "object"`.
|
|
142
|
+
// A member that is not a plain object type means this is NOT a tagged union;
|
|
143
|
+
// leave it to the existing ignore-and-render-`unknown` path (backward compat).
|
|
144
|
+
const allObjects = members.length >= 1 &&
|
|
145
|
+
members.every((m) => !!m &&
|
|
146
|
+
typeof m === "object" &&
|
|
147
|
+
!Array.isArray(m) &&
|
|
148
|
+
m.type === "object");
|
|
149
|
+
if (!allObjects)
|
|
150
|
+
return null;
|
|
151
|
+
// `anyOf` is not supported in v1 (resolved Fork 1 = oneOf only). An all-object
|
|
152
|
+
// `anyOf` that looks like a tagged union gets a clear error suggesting oneOf.
|
|
153
|
+
if (keyword === "anyOf") {
|
|
154
|
+
return {
|
|
155
|
+
kind: "invalid",
|
|
156
|
+
reason: "anyOf is not supported for discriminated unions (issue #1511). Use oneOf instead.",
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (members.length < 2) {
|
|
160
|
+
return {
|
|
161
|
+
kind: "invalid",
|
|
162
|
+
reason: "A discriminated-union oneOf needs at least 2 object members (issue #1511).",
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
// For each member, collect its single-literal-enum properties → { name: literal }.
|
|
166
|
+
// The literal must be a comparable scalar (string/number/boolean): the
|
|
167
|
+
// validator branch-selects with strict `===`, so a non-scalar tag (object or
|
|
168
|
+
// array) on a JSON-parsed value is never the same reference as the schema
|
|
169
|
+
// literal and would always "match no case". Restricting the auto-detected
|
|
170
|
+
// discriminator to scalars means a non-scalar tag is not a candidate, so the
|
|
171
|
+
// union routes through the normal not-a-tagged-union path (below) instead of
|
|
172
|
+
// being accepted as a union that can never validate.
|
|
173
|
+
const memberLiteralProps = members.map((m) => {
|
|
174
|
+
const map = new Map();
|
|
175
|
+
const props = m.properties;
|
|
176
|
+
if (props && typeof props === "object" && !Array.isArray(props)) {
|
|
177
|
+
for (const [name, sub] of Object.entries(props)) {
|
|
178
|
+
if (sub &&
|
|
179
|
+
typeof sub === "object" &&
|
|
180
|
+
Array.isArray(sub.enum) &&
|
|
181
|
+
sub.enum.length === 1 &&
|
|
182
|
+
isScalarDiscriminatorLiteral(sub.enum[0])) {
|
|
183
|
+
map.set(name, sub.enum[0]);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return map;
|
|
188
|
+
});
|
|
189
|
+
// A candidate discriminator is present as a single-literal enum in EVERY
|
|
190
|
+
// member, with distinct literals across members (so a value's tag selects
|
|
191
|
+
// exactly one branch).
|
|
192
|
+
const candidates = [];
|
|
193
|
+
for (const name of memberLiteralProps[0].keys()) {
|
|
194
|
+
if (!memberLiteralProps.every((mp) => mp.has(name)))
|
|
195
|
+
continue;
|
|
196
|
+
const literals = memberLiteralProps.map((mp) => mp.get(name));
|
|
197
|
+
const distinct = new Set(literals.map((l) => JSON.stringify(l)));
|
|
198
|
+
if (distinct.size === literals.length)
|
|
199
|
+
candidates.push(name);
|
|
200
|
+
}
|
|
201
|
+
if (candidates.length !== 1) {
|
|
202
|
+
return {
|
|
203
|
+
kind: "invalid",
|
|
204
|
+
reason: candidates.length === 0
|
|
205
|
+
? "No discriminator found for the oneOf tagged union (issue #1511): every member must share exactly one property declared as a distinct single-literal enum."
|
|
206
|
+
: `Ambiguous discriminator for the oneOf tagged union (issue #1511): multiple candidate properties (${candidates.join(", ")}). Exactly one is required.`,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
// A clean tagged union carries ONLY `oneOf`. If it co-occurs with sibling
|
|
210
|
+
// top-level constraints (`type`, `properties`, `required`,
|
|
211
|
+
// `additionalProperties`, `items`, `enum`), it is a MIXED schema, not a clean
|
|
212
|
+
// tagged union: the validator's branch-select would early-return and skip
|
|
213
|
+
// those siblings, loosening validation. Reject-mixed keeps all three
|
|
214
|
+
// consumers fail-closed — the validator falls through to the normal
|
|
215
|
+
// type/object gates (still enforcing the siblings, exactly as before #1511),
|
|
216
|
+
// codegen throws this `reason`, and the request guard flags `unsupported-oneof`.
|
|
217
|
+
if (hasOneOfSiblingConstraints(schema)) {
|
|
218
|
+
return {
|
|
219
|
+
kind: "invalid",
|
|
220
|
+
reason: "A discriminated-union oneOf must be the only top-level constraint (issue #1511): it cannot be combined with sibling type/properties/required/additionalProperties/items/enum. Move the shared constraints into each member instead.",
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
const discriminant = candidates[0];
|
|
224
|
+
return {
|
|
225
|
+
kind: "valid",
|
|
226
|
+
discriminant,
|
|
227
|
+
members: members.map((m, i) => ({
|
|
228
|
+
discriminantValue: memberLiteralProps[i].get(discriminant),
|
|
229
|
+
schema: m,
|
|
230
|
+
})),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
77
233
|
/**
|
|
78
234
|
* Interpret a parsed schema node. A non-object schema (null, array, scalar)
|
|
79
235
|
* enforces nothing → the empty descriptor.
|
|
@@ -107,6 +263,7 @@ export function describeSchema(schema) {
|
|
|
107
263
|
const array = singularType === "array" && schema.items
|
|
108
264
|
? { items: schema.items }
|
|
109
265
|
: null;
|
|
110
|
-
|
|
266
|
+
const oneOf = describeOneOf(schema);
|
|
267
|
+
return { isUnion, singularType, types, enumValues, object, array, oneOf };
|
|
111
268
|
}
|
|
112
269
|
//# sourceMappingURL=generated-schema-descriptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated-schema-descriptor.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/generated-schema-descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,sFAAsF;AACtF,MAAM,UAAU,MAAM,CAAC,KAAU,EAAE,IAAY;IAC7C,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,QAAQ;QACnB,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACxD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;IAC1D,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,KAAK,IAAI,CAAC;IAC3C,4EAA4E;IAC5E,gEAAgE;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;
|
|
1
|
+
{"version":3,"file":"generated-schema-descriptor.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/generated-schema-descriptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and emits ONE generated file per workflow —
|
|
6
6
|
* `workflows/generated/<key>.generated.ts` — each containing the workflow's
|
|
7
7
|
* `<Key>Input`/`<Key>Output` types plus a typed `<key>(client)` invoker factory
|
|
8
|
-
* returning `{ runSync?, start }`. This mirrors `databases codegen`'s per-type
|
|
8
|
+
* returning `{ runSync?, start, getStatus }`. This mirrors `databases codegen`'s per-type
|
|
9
9
|
* `<Type>.generated.ts` layout (#1441's `<type>Ops`): per-file artifacts keep
|
|
10
10
|
* team merges conflict-free and let a `[workflow-key]` filter regenerate exactly
|
|
11
11
|
* one file.
|
|
@@ -16,7 +16,11 @@
|
|
|
16
16
|
* `schema-validation` descriptor) so the generated types match runtime
|
|
17
17
|
* validation exactly. A malformed schema throws (fail-and-exit).
|
|
18
18
|
* - `.runSync` is emitted only for `syncCallable: true` workflows (the server
|
|
19
|
-
* rejects run-sync otherwise); `.start` for every
|
|
19
|
+
* rejects run-sync otherwise); `.start` and `.getStatus` for every
|
|
20
|
+
* non-reserved workflow (the typed async path, issue #1512 — async-only
|
|
21
|
+
* workflows are exactly the ones that need a typed `getStatus`). No
|
|
22
|
+
* `.terminate` member is emitted (the factory stays a start/status helper;
|
|
23
|
+
* typed termination is available via the client's explicit `terminate<O>`).
|
|
20
24
|
* - `input` is a REQUIRED option iff the schema rejects `{}` (the client's
|
|
21
25
|
* `input ?? {}` fallback would fail validation); otherwise `input?`.
|
|
22
26
|
* - The runtime call always passes the ORIGINAL key string; only identifiers
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and emits ONE generated file per workflow —
|
|
6
6
|
* `workflows/generated/<key>.generated.ts` — each containing the workflow's
|
|
7
7
|
* `<Key>Input`/`<Key>Output` types plus a typed `<key>(client)` invoker factory
|
|
8
|
-
* returning `{ runSync?, start }`. This mirrors `databases codegen`'s per-type
|
|
8
|
+
* returning `{ runSync?, start, getStatus }`. This mirrors `databases codegen`'s per-type
|
|
9
9
|
* `<Type>.generated.ts` layout (#1441's `<type>Ops`): per-file artifacts keep
|
|
10
10
|
* team merges conflict-free and let a `[workflow-key]` filter regenerate exactly
|
|
11
11
|
* one file.
|
|
@@ -16,7 +16,11 @@
|
|
|
16
16
|
* `schema-validation` descriptor) so the generated types match runtime
|
|
17
17
|
* validation exactly. A malformed schema throws (fail-and-exit).
|
|
18
18
|
* - `.runSync` is emitted only for `syncCallable: true` workflows (the server
|
|
19
|
-
* rejects run-sync otherwise); `.start` for every
|
|
19
|
+
* rejects run-sync otherwise); `.start` and `.getStatus` for every
|
|
20
|
+
* non-reserved workflow (the typed async path, issue #1512 — async-only
|
|
21
|
+
* workflows are exactly the ones that need a typed `getStatus`). No
|
|
22
|
+
* `.terminate` member is emitted (the factory stays a start/status helper;
|
|
23
|
+
* typed termination is available via the client's explicit `terminate<O>`).
|
|
20
24
|
* - `input` is a REQUIRED option iff the schema rejects `{}` (the client's
|
|
21
25
|
* `input ?? {}` fallback would fail validation); otherwise `input?`.
|
|
22
26
|
* - The runtime call always passes the ORIGINAL key string; only identifiers
|
|
@@ -31,6 +35,7 @@ import { safeJsonParse } from "../workflow-payload.js";
|
|
|
31
35
|
import { writeOrCheckGeneratedFiles, } from "../codegen-shared/generatedFiles.js";
|
|
32
36
|
import { fingerprintToml } from "../db-codegen/dbFingerprint.js";
|
|
33
37
|
import { schemaToTsType, schemaRejectsEmptyObject } from "./schemaToTs.js";
|
|
38
|
+
import { describeSchema } from "./generated-schema-descriptor.js";
|
|
34
39
|
import { workflowInputTypeName, workflowOutputTypeName, workflowFactoryName, } from "./naming.js";
|
|
35
40
|
/** Prefix marking a platform-owned workflow key (mirrors the server's
|
|
36
41
|
* `INTERNAL_WORKFLOW_KEY_PREFIX`; inlined because the CLI cannot import from
|
|
@@ -47,14 +52,20 @@ function isReservedKey(key) {
|
|
|
47
52
|
}
|
|
48
53
|
/**
|
|
49
54
|
* Render a top-level `<Name>Input`/`<Name>Output` declaration. An absent schema
|
|
50
|
-
* → `unknown`.
|
|
55
|
+
* → `unknown`. A plain object type → an `interface`; anything else → a `type`
|
|
56
|
+
* alias.
|
|
57
|
+
*
|
|
58
|
+
* A discriminated-union (`oneOf`) output renders as `{…} | {…}`, which begins
|
|
59
|
+
* with `{` too — but it must be a `type` alias, not `interface Foo {…} | {…}`
|
|
60
|
+
* (invalid TS). Decide via the shared descriptor (`describeSchema(...).oneOf`),
|
|
61
|
+
* not the `startsWith("{")` heuristic (#1511).
|
|
51
62
|
*/
|
|
52
63
|
function renderTypeDecl(name, schema) {
|
|
53
64
|
if (schema === undefined) {
|
|
54
65
|
return `export type ${name} = unknown;`;
|
|
55
66
|
}
|
|
56
67
|
const expr = schemaToTsType(schema, 0);
|
|
57
|
-
if (expr.startsWith("{")) {
|
|
68
|
+
if (expr.startsWith("{") && !describeSchema(schema).oneOf) {
|
|
58
69
|
return `export interface ${name} ${expr}`;
|
|
59
70
|
}
|
|
60
71
|
return `export type ${name} = ${expr};`;
|
|
@@ -125,6 +136,19 @@ function renderFactory(wf) {
|
|
|
125
136
|
` ...opts,\n` +
|
|
126
137
|
` workflowKey: ${keyLiteral},\n` +
|
|
127
138
|
` }),`);
|
|
139
|
+
// Typed status fetch (#1512), emitted for EVERY non-reserved workflow — not
|
|
140
|
+
// gated on `syncCallable`, since async-only workflows are exactly the ones
|
|
141
|
+
// that need a typed `status.output`. `output` is bound to `<Key>Output` from
|
|
142
|
+
// the workflow's `outputSchema` (schema-less → `unknown`, same as the sync
|
|
143
|
+
// path). `runKey` stays required (unlike start/runSync, which auto-generate
|
|
144
|
+
// it — you cannot fetch a run's status without knowing which run). Same
|
|
145
|
+
// spread-first / key-last ordering so an untyped caller cannot override the
|
|
146
|
+
// key and read the wrong workflow's status.
|
|
147
|
+
lines.push(` getStatus: (opts: Omit<GetWorkflowStatusOptions, "workflowKey">) =>\n` +
|
|
148
|
+
` client.workflows.getStatus<${wf.outputTypeName}>({\n` +
|
|
149
|
+
` ...opts,\n` +
|
|
150
|
+
` workflowKey: ${keyLiteral},\n` +
|
|
151
|
+
` }),`);
|
|
128
152
|
lines.push(` };`, `}`);
|
|
129
153
|
return lines.join("\n");
|
|
130
154
|
}
|
|
@@ -139,8 +163,13 @@ export function renderWorkflowFile(input) {
|
|
|
139
163
|
return null;
|
|
140
164
|
const fingerprint = fingerprintToml(input.tomlContent);
|
|
141
165
|
// Only import the option types actually referenced, so the generated file
|
|
142
|
-
// compiles under a consumer's `noUnusedLocals`.
|
|
143
|
-
|
|
166
|
+
// compiles under a consumer's `noUnusedLocals`. `GetWorkflowStatusOptions` is
|
|
167
|
+
// always referenced now — every factory emits a `getStatus` member (#1512).
|
|
168
|
+
const imports = [
|
|
169
|
+
"GetWorkflowStatusOptions",
|
|
170
|
+
"JsBaoClient",
|
|
171
|
+
"StartWorkflowOptions",
|
|
172
|
+
];
|
|
144
173
|
if (wf.syncCallable)
|
|
145
174
|
imports.push("RunSyncWorkflowOptions");
|
|
146
175
|
imports.sort();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/generator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,13 +24,20 @@
|
|
|
24
24
|
* validator accepts don't hit TS excess-property errors; a CLOSED object
|
|
25
25
|
* (`additionalProperties: false`) omits the index signature.
|
|
26
26
|
* - `type: "array"` with `items` → `T[]`.
|
|
27
|
+
* - `oneOf` whose members are ALL `type: "object"` → a discriminated
|
|
28
|
+
* (tagged) union: the `|`-union of member object types, keyed by an
|
|
29
|
+
* auto-detected single-literal-`enum` discriminator (#1511). A defective
|
|
30
|
+
* all-object tagged union (no/ambiguous discriminator, <2 members) or an
|
|
31
|
+
* all-object `anyOf` (unsupported in v1) is a STRICT codegen error, not a
|
|
32
|
+
* silent `unknown` (Fork 3, resolved by the maintainer).
|
|
27
33
|
*
|
|
28
|
-
* Everything the server ignores (`$ref`, `
|
|
29
|
-
* `patternProperties`, numeric constraints, tuple `items
|
|
34
|
+
* Everything else the server ignores (`$ref`, `allOf`, `format`,
|
|
35
|
+
* `patternProperties`, numeric constraints, tuple `items`, and a `oneOf`/`anyOf`
|
|
36
|
+
* whose members are NOT all objects) renders `unknown`.
|
|
30
37
|
*
|
|
31
38
|
* Errors are NOT swallowed here — a malformed schema fails upstream at parse
|
|
32
|
-
* time
|
|
33
|
-
* for anything it does not recognize.
|
|
39
|
+
* time, and a defective tagged union throws — this walker otherwise returns
|
|
40
|
+
* `unknown` for anything it does not recognize.
|
|
34
41
|
*/
|
|
35
42
|
/**
|
|
36
43
|
* Convert a parsed JSON Schema node to a TypeScript type expression. Object
|
|
@@ -44,6 +51,8 @@ export declare function schemaToTsType(schema: any, indent?: number): string;
|
|
|
44
51
|
* must be a compile-time-required option (issue #1442, P4). Derived from the
|
|
45
52
|
* shared descriptor so it matches the server validator exactly:
|
|
46
53
|
*
|
|
54
|
+
* - a valid top-level discriminated-union (`oneOf`): the runtime always
|
|
55
|
+
* requires the discriminator present, so `{}` matches no case;
|
|
47
56
|
* - a declared top-level `type` that `{}` does not satisfy (anything but
|
|
48
57
|
* `object`, e.g. `string`/`array`, or a union with no `object` arm);
|
|
49
58
|
* - a top-level `enum` (a fresh `{}` is never an enum member);
|