primitive-admin 1.1.0-alpha.49 → 1.1.0-alpha.50
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 +1 -1
- package/dist/src/commands/database-types.js +4 -4
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.js +5 -5
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.js +2 -2
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/metadata.js +48 -3
- package/dist/src/commands/metadata.js.map +1 -1
- package/dist/src/commands/scripts.d.ts +18 -0
- package/dist/src/commands/scripts.js +59 -5
- package/dist/src/commands/scripts.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +14 -4
- package/dist/src/commands/sync-app-settings.js +48 -8
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +98 -0
- package/dist/src/commands/sync.js +1576 -400
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/workflows.js +23 -6
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +27 -1
- package/dist/src/lib/api-client.js +25 -2
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.js +4 -0
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +21 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js +40 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
- package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
- package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +8 -5
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/db-codegen/dbNaming.d.ts +5 -0
- package/dist/src/lib/db-codegen/dbNaming.js +8 -2
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +17 -2
- package/dist/src/lib/db-codegen/dbTemplates.js +84 -39
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +13 -22
- package/dist/src/lib/db-codegen/dbTsTypes.js +33 -28
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -1
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +11 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +11 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -1
- package/dist/src/lib/generated-allowlist.js +5 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/platform-owned.d.ts +37 -0
- package/dist/src/lib/platform-owned.js +46 -0
- package/dist/src/lib/platform-owned.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +32 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js +338 -36
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +1 -1
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js +1 -1
- package/dist/src/lib/swift-codegen/generator.d.ts +1 -0
- package/dist/src/lib/swift-codegen/generator.js +91 -3
- package/dist/src/lib/swift-codegen/generator.js.map +1 -1
- package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +90 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js +152 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
- package/dist/src/lib/sync-resource-types.d.ts +222 -10
- package/dist/src/lib/sync-resource-types.js +407 -20
- package/dist/src/lib/sync-resource-types.js.map +1 -1
- package/dist/src/lib/toml-metadata-config.js +18 -0
- package/dist/src/lib/toml-metadata-config.js.map +1 -1
- package/dist/src/lib/workflow-apply.js +12 -2
- package/dist/src/lib/workflow-apply.js.map +1 -1
- package/dist/src/lib/workflow-codegen/generator.d.ts +9 -0
- package/dist/src/lib/workflow-codegen/generator.js +126 -55
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +6 -8
- package/dist/src/lib/workflow-codegen/invokerIR.js +8 -8
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
- package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +17 -1
- package/dist/src/lib/workflow-codegen/schemaToTs.js +59 -38
- package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -1
- package/dist/src/lib/workflow-payload.d.ts +19 -0
- package/dist/src/lib/workflow-payload.js +21 -0
- package/dist/src/lib/workflow-payload.js.map +1 -1
- package/dist/src/lib/workflow-toml-validator.d.ts +30 -0
- package/dist/src/lib/workflow-toml-validator.js +206 -0
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -0
- package/package.json +2 -1
|
@@ -52,14 +52,24 @@ export async function applyWorkflowBody(client, appId, workflowId, workflow, ste
|
|
|
52
52
|
// it again. The config/step update does NOT touch the workflow definition's
|
|
53
53
|
// `modifiedAt`.
|
|
54
54
|
let latestModifiedAt = updated?.workflow?.modifiedAt;
|
|
55
|
-
// 2. Body write — active config (config-model) or legacy draft slot.
|
|
55
|
+
// 2. Body write — active config (config-model) or legacy draft slot. #1614 —
|
|
56
|
+
// the named `expr.*` definitions live on the same R2 steps payload as the
|
|
57
|
+
// steps, so they travel with the steps write here (not the metadata PATCH
|
|
58
|
+
// above). Attached by the caller onto `workflow.expressions` (structural,
|
|
59
|
+
// like `metadataManifest`); absent → undefined so a workflow without
|
|
60
|
+
// definitions round-trips a clean drop.
|
|
61
|
+
const expressions = workflow.expressions ?? undefined;
|
|
56
62
|
let updateSlotLabel = "active config";
|
|
57
63
|
if (activeConfigId) {
|
|
58
|
-
await client.updateWorkflowConfig(appId, workflowId, activeConfigId, {
|
|
64
|
+
await client.updateWorkflowConfig(appId, workflowId, activeConfigId, {
|
|
65
|
+
steps,
|
|
66
|
+
expressions,
|
|
67
|
+
});
|
|
59
68
|
}
|
|
60
69
|
else {
|
|
61
70
|
await client.updateWorkflowDraft(appId, workflowId, {
|
|
62
71
|
steps,
|
|
72
|
+
expressions,
|
|
63
73
|
inputSchema: workflow.inputSchema ? safeJsonParse(workflow.inputSchema) : null,
|
|
64
74
|
});
|
|
65
75
|
updateSlotLabel = "draft (legacy)";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-apply.js","sourceRoot":"","sources":["../../../src/lib/workflow-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpF,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,OAAO,EAAE,aAAa,EAAE,CAAC;AAwBzB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAiB,EACjB,KAAa,EACb,UAAkB,EAClB,QAAa,EACb,KAAY,EACZ,OAAiC,EAAE;IAEnC,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAE3D,6EAA6E;IAC7E,+EAA+E;IAC/E,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,+EAA+E;IAC/E,0DAA0D;IAC1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,CACzC,KAAK,EACL,UAAU,EACV;QACE,GAAG,4BAA4B,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7D,0EAA0E;QAC1E,oEAAoE;QACpE,uEAAuE;QACvE,oEAAoE;QACpE,gEAAgE;QAChE,gBAAgB,EACd,QAAQ,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;KAClF,EACD,kBAAkB,CACnB,CAAC;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,gBAAgB;IAChB,IAAI,gBAAgB,GAAuB,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;IAEzE,
|
|
1
|
+
{"version":3,"file":"workflow-apply.js","sourceRoot":"","sources":["../../../src/lib/workflow-apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,15 @@
|
|
|
41
41
|
* cannot override it.
|
|
42
42
|
* - Disk lifecycle (write / `--check` / suffix-based cleanup) delegates to the
|
|
43
43
|
* shared `writeOrCheckGeneratedFiles`, exactly like `databases codegen`.
|
|
44
|
+
*
|
|
45
|
+
* FORMATTING CONTRACT (#1565): the emitted TypeScript must be a fixed point of
|
|
46
|
+
* Prettier's DEFAULT config — `prettier --write` over a generated file must
|
|
47
|
+
* leave it byte-for-byte unchanged, because `--check` byte-compares. There is
|
|
48
|
+
* no Prettier dependency and no automated round-trip test to catch a
|
|
49
|
+
* regression, so any edit here that changes line shapes must be verified by
|
|
50
|
+
* hand (regenerate a representative output, run Prettier over it, confirm no
|
|
51
|
+
* diff). Wrap long constructs through `codegen-shared/prettierStable.ts` rather
|
|
52
|
+
* than hand-joining strings — see that file's header for the full contract.
|
|
44
53
|
*/
|
|
45
54
|
import { type WriteOrCheckResult } from "../codegen-shared/generatedFiles.js";
|
|
46
55
|
/** Suffix identifying a generated file (shared with `databases codegen`). */
|
|
@@ -41,11 +41,21 @@
|
|
|
41
41
|
* cannot override it.
|
|
42
42
|
* - Disk lifecycle (write / `--check` / suffix-based cleanup) delegates to the
|
|
43
43
|
* shared `writeOrCheckGeneratedFiles`, exactly like `databases codegen`.
|
|
44
|
+
*
|
|
45
|
+
* FORMATTING CONTRACT (#1565): the emitted TypeScript must be a fixed point of
|
|
46
|
+
* Prettier's DEFAULT config — `prettier --write` over a generated file must
|
|
47
|
+
* leave it byte-for-byte unchanged, because `--check` byte-compares. There is
|
|
48
|
+
* no Prettier dependency and no automated round-trip test to catch a
|
|
49
|
+
* regression, so any edit here that changes line shapes must be verified by
|
|
50
|
+
* hand (regenerate a representative output, run Prettier over it, confirm no
|
|
51
|
+
* diff). Wrap long constructs through `codegen-shared/prettierStable.ts` rather
|
|
52
|
+
* than hand-joining strings — see that file's header for the full contract.
|
|
44
53
|
*/
|
|
45
54
|
import * as path from "path";
|
|
46
55
|
import { writeOrCheckGeneratedFiles, } from "../codegen-shared/generatedFiles.js";
|
|
47
56
|
import { fingerprintToml } from "../db-codegen/dbFingerprint.js";
|
|
48
|
-
import {
|
|
57
|
+
import { atom, generic, indent, intersection, objectType, printType, renderArrowCall, renderArrowProperty, renderParenList, renderTypeAlias, tsStringLiteral, union, } from "../codegen-shared/prettierStable.js";
|
|
58
|
+
import { schemaToTypeNode } from "./schemaToTs.js";
|
|
49
59
|
import { describeSchema } from "./generated-schema-descriptor.js";
|
|
50
60
|
import { describeWorkflowInvoker } from "./invokerIR.js";
|
|
51
61
|
import { workflowInputTypeName, workflowOutputTypeName, workflowFactoryName, } from "./naming.js";
|
|
@@ -65,13 +75,16 @@ const CLIENT_PACKAGE = "js-bao-wss-client";
|
|
|
65
75
|
*/
|
|
66
76
|
function renderTypeDecl(name, schema) {
|
|
67
77
|
if (schema === undefined) {
|
|
68
|
-
|
|
78
|
+
// Through `renderTypeAlias`, not hand-joined: a long enough workflow key
|
|
79
|
+
// pushes `export type <Key>Output = unknown;` past the print width, and
|
|
80
|
+
// Prettier then moves the `unknown` below the `=` (#1565).
|
|
81
|
+
return renderTypeAlias(name, atom("unknown"));
|
|
69
82
|
}
|
|
70
|
-
const
|
|
71
|
-
if (
|
|
72
|
-
return `export interface ${name} ${
|
|
83
|
+
const node = schemaToTypeNode(schema);
|
|
84
|
+
if (node.kind === "block" && !describeSchema(schema).oneOf) {
|
|
85
|
+
return `export interface ${name} ${printType(node, 0, 0)}`;
|
|
73
86
|
}
|
|
74
|
-
return
|
|
87
|
+
return renderTypeAlias(name, node);
|
|
75
88
|
}
|
|
76
89
|
/**
|
|
77
90
|
* Parse a single workflow TOML into the data the emitter needs. Throws on
|
|
@@ -112,37 +125,58 @@ function parseWorkflow(input) {
|
|
|
112
125
|
requiresClientApply: ir.requiresClientApply,
|
|
113
126
|
};
|
|
114
127
|
}
|
|
115
|
-
/**
|
|
128
|
+
/**
|
|
129
|
+
* Render the typed invoker factory for one workflow.
|
|
130
|
+
*
|
|
131
|
+
* Every line shape here is emitted the way Prettier's default config would
|
|
132
|
+
* print it (#1565) — see `codegen-shared/prettierStable.ts`. `runSync`/`start`
|
|
133
|
+
* always break their parameter list: the shortest possible
|
|
134
|
+
* `opts: {…} & Omit<…>` parameter is already wider than the 80-column budget,
|
|
135
|
+
* so there is no width decision to make there.
|
|
136
|
+
*/
|
|
116
137
|
function renderFactory(wf) {
|
|
117
|
-
const keyLiteral =
|
|
138
|
+
const keyLiteral = tsStringLiteral(wf.key);
|
|
118
139
|
const inputMember = wf.inputRequired
|
|
119
140
|
? `input: ${wf.inputTypeName}`
|
|
120
141
|
: `input?: ${wf.inputTypeName}`;
|
|
121
142
|
const lines = [
|
|
122
|
-
`export function ${wf.factoryName}
|
|
143
|
+
renderParenList(`export function ${wf.factoryName}`, ["client: JsBaoClient"], " {", 0),
|
|
123
144
|
` return {`,
|
|
124
145
|
];
|
|
146
|
+
// `opts: { input: X } & Omit<<Options>, "workflowKey" | "input">` — the
|
|
147
|
+
// intersection breaks inside the `Omit<...>` when it overflows.
|
|
148
|
+
const optsParam = (optionsTypeName) => {
|
|
149
|
+
const node = intersection([
|
|
150
|
+
objectType([inputMember]),
|
|
151
|
+
generic("Omit", [
|
|
152
|
+
atom(optionsTypeName),
|
|
153
|
+
union([atom(`"workflowKey"`), atom(`"input"`)]),
|
|
154
|
+
]),
|
|
155
|
+
]);
|
|
156
|
+
const head = `${indent(3)}opts: `;
|
|
157
|
+
return `${head}${printType(node, head.length, 3, 1)},`;
|
|
158
|
+
};
|
|
125
159
|
// Spread `opts` FIRST, then set `workflowKey` LAST, so the factory's intended
|
|
126
160
|
// key always wins. `Omit<..., "workflowKey">` only rejects an excess
|
|
127
161
|
// `workflowKey` on object literals; a caller passing an options *variable*
|
|
128
162
|
// carrying an extra `workflowKey` (or any untyped JS caller) would otherwise
|
|
129
163
|
// override the key and invoke the wrong workflow if the spread came last.
|
|
164
|
+
const invocation = (method, typeArgs, optionsTypeName) => renderArrowCall({
|
|
165
|
+
head: [
|
|
166
|
+
`${indent(2)}${method}: (`,
|
|
167
|
+
optsParam(optionsTypeName),
|
|
168
|
+
`${indent(2)}) =>`,
|
|
169
|
+
].join("\n"),
|
|
170
|
+
callee: generic(`client.workflows.${method}`, typeArgs.map(atom)),
|
|
171
|
+
leadingArgs: [],
|
|
172
|
+
objectMembers: ["...opts", { key: "workflowKey", value: keyLiteral }],
|
|
173
|
+
level: 3,
|
|
174
|
+
tail: ",",
|
|
175
|
+
});
|
|
130
176
|
if (wf.syncCallable) {
|
|
131
|
-
lines.push(
|
|
132
|
-
` opts: { ${inputMember} } & Omit<RunSyncWorkflowOptions, "workflowKey" | "input">\n` +
|
|
133
|
-
` ) =>\n` +
|
|
134
|
-
` client.workflows.runSync<${wf.inputTypeName}, ${wf.outputTypeName}>({\n` +
|
|
135
|
-
` ...opts,\n` +
|
|
136
|
-
` workflowKey: ${keyLiteral},\n` +
|
|
137
|
-
` }),`);
|
|
177
|
+
lines.push(invocation("runSync", [wf.inputTypeName, wf.outputTypeName], "RunSyncWorkflowOptions"));
|
|
138
178
|
}
|
|
139
|
-
lines.push(
|
|
140
|
-
` opts: { ${inputMember} } & Omit<StartWorkflowOptions, "workflowKey" | "input">\n` +
|
|
141
|
-
` ) =>\n` +
|
|
142
|
-
` client.workflows.start<${wf.inputTypeName}>({\n` +
|
|
143
|
-
` ...opts,\n` +
|
|
144
|
-
` workflowKey: ${keyLiteral},\n` +
|
|
145
|
-
` }),`);
|
|
179
|
+
lines.push(invocation("start", [wf.inputTypeName], "StartWorkflowOptions"));
|
|
146
180
|
// Typed status fetch (#1512), emitted for EVERY non-reserved workflow — not
|
|
147
181
|
// gated on `syncCallable`, since async-only workflows are exactly the ones
|
|
148
182
|
// that need a typed `status.output`. `output` is bound to `<Key>Output` from
|
|
@@ -151,22 +185,33 @@ function renderFactory(wf) {
|
|
|
151
185
|
// it — you cannot fetch a run's status without knowing which run). Same
|
|
152
186
|
// spread-first / key-last ordering so an untyped caller cannot override the
|
|
153
187
|
// key and read the wrong workflow's status.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
188
|
+
//
|
|
189
|
+
// Its `opts` parameter carries no generated names, so it always fits on one
|
|
190
|
+
// line — unlike start/runSync above.
|
|
191
|
+
lines.push(renderArrowCall({
|
|
192
|
+
head: `${indent(2)}getStatus: (opts: Omit<GetWorkflowStatusOptions, "workflowKey">) =>`,
|
|
193
|
+
callee: generic("client.workflows.getStatus", [atom(wf.outputTypeName)]),
|
|
194
|
+
leadingArgs: [],
|
|
195
|
+
objectMembers: ["...opts", { key: "workflowKey", value: keyLiteral }],
|
|
196
|
+
level: 3,
|
|
197
|
+
tail: ",",
|
|
198
|
+
}));
|
|
159
199
|
// Typed termination (#1543), emitted for EVERY non-reserved workflow — any
|
|
160
200
|
// run can be terminated. `output` is bound to `<Key>Output` (a terminated run
|
|
161
201
|
// can carry partial output), same schema-less → `unknown` rule as getStatus.
|
|
162
202
|
// `runKey` stays required. Same spread-first / key-last ordering so an untyped
|
|
163
203
|
// caller cannot override the key and terminate the wrong workflow's run. This
|
|
164
204
|
// member reverses #1512's start/status-only decision.
|
|
165
|
-
lines.push(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
205
|
+
lines.push(renderArrowProperty({
|
|
206
|
+
level: 2,
|
|
207
|
+
key: "terminate",
|
|
208
|
+
params: [`opts: Omit<TerminateWorkflowOptions, "workflowKey">`],
|
|
209
|
+
signatureTail: " =>",
|
|
210
|
+
callee: generic("client.workflows.terminate", [atom(wf.outputTypeName)]),
|
|
211
|
+
leadingArgs: [],
|
|
212
|
+
objectMembers: ["...opts", { key: "workflowKey", value: keyLiteral }],
|
|
213
|
+
tail: ",",
|
|
214
|
+
}));
|
|
170
215
|
// Typed apply handler (#1543 Phase 2), emitted ONLY for an apply-mode
|
|
171
216
|
// workflow (`requiresClientApply !== false` — the same default the server
|
|
172
217
|
// uses to decide a completed run needs a client apply). `WorkflowDefineOptions<O>`
|
|
@@ -181,8 +226,15 @@ function renderFactory(wf) {
|
|
|
181
226
|
// a workflow — a per-workflow member would bind nothing and would wrongly
|
|
182
227
|
// suggest the result only covers this workflow.
|
|
183
228
|
if (wf.requiresClientApply) {
|
|
184
|
-
lines.push(
|
|
185
|
-
|
|
229
|
+
lines.push(renderArrowProperty({
|
|
230
|
+
level: 2,
|
|
231
|
+
key: "define",
|
|
232
|
+
params: [`options: WorkflowDefineOptions<${wf.outputTypeName}>`],
|
|
233
|
+
signatureTail: " =>",
|
|
234
|
+
callee: generic("client.workflows.define", [atom(wf.outputTypeName)]),
|
|
235
|
+
leadingArgs: [keyLiteral, "options"],
|
|
236
|
+
tail: ",",
|
|
237
|
+
}));
|
|
186
238
|
}
|
|
187
239
|
// Typed cron-trigger create/update (#1543), folded INTO the factory (not a
|
|
188
240
|
// separate export). The client's own `rootInput` generic (#1542) is bound to
|
|
@@ -195,26 +247,45 @@ function renderFactory(wf) {
|
|
|
195
247
|
// pinned LAST so a caller can't redirect the trigger at another workflow.
|
|
196
248
|
// Nothing is spread after `workflowKey` — `rootInput` rides in via `...params`
|
|
197
249
|
// — preserving the key-last convention.
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
`
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
250
|
+
// `rootInput` is `Partial<<Key>Input>` for an object-shaped schema (an
|
|
251
|
+
// `inputMapping` may supply the rest) and the full `<Key>Input` otherwise.
|
|
252
|
+
// Built as a `TypeNode` so `printType` can break the nested type-argument
|
|
253
|
+
// lists Prettier opens up at long key lengths (e.g.
|
|
254
|
+
// `Omit<CreateCronTriggerParams<Partial<...>>, "workflowKey">`).
|
|
255
|
+
const rootInputNode = wf.inputIsObjectShaped
|
|
256
|
+
? generic("Partial", [atom(wf.inputTypeName)])
|
|
257
|
+
: atom(wf.inputTypeName);
|
|
258
|
+
const cronParam = (paramsGeneric) => ({
|
|
259
|
+
name: "params",
|
|
260
|
+
type: generic("Omit", [
|
|
261
|
+
generic(paramsGeneric, [rootInputNode]),
|
|
262
|
+
atom(`"workflowKey"`),
|
|
263
|
+
]),
|
|
264
|
+
});
|
|
265
|
+
lines.push([
|
|
266
|
+
` cronTriggers: {`,
|
|
267
|
+
renderArrowProperty({
|
|
268
|
+
level: 3,
|
|
269
|
+
key: "create",
|
|
270
|
+
params: [cronParam("CreateCronTriggerParams")],
|
|
271
|
+
signatureTail: " =>",
|
|
272
|
+
callee: generic("client.cronTriggers.create", [rootInputNode]),
|
|
273
|
+
leadingArgs: [],
|
|
274
|
+
objectMembers: ["...params", { key: "workflowKey", value: keyLiteral }],
|
|
275
|
+
tail: ",",
|
|
276
|
+
}),
|
|
277
|
+
renderArrowProperty({
|
|
278
|
+
level: 3,
|
|
279
|
+
key: "update",
|
|
280
|
+
params: ["triggerId: string", cronParam("UpdateCronTriggerParams")],
|
|
281
|
+
signatureTail: " =>",
|
|
282
|
+
callee: generic("client.cronTriggers.update", [rootInputNode]),
|
|
283
|
+
leadingArgs: ["triggerId"],
|
|
284
|
+
objectMembers: ["...params", { key: "workflowKey", value: keyLiteral }],
|
|
285
|
+
tail: ",",
|
|
286
|
+
}),
|
|
287
|
+
` },`,
|
|
288
|
+
].join("\n"));
|
|
218
289
|
lines.push(` };`, `}`);
|
|
219
290
|
return lines.join("\n");
|
|
220
291
|
}
|
|
@@ -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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"}
|
|
@@ -19,13 +19,8 @@
|
|
|
19
19
|
* the neutral operation flags; each renderer turns the schemas into its own
|
|
20
20
|
* syntax.
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
* `INTERNAL_WORKFLOW_KEY_PREFIX`; inlined because the CLI cannot import from
|
|
25
|
-
* `src/`). Such workflows are never client-invocable and are skipped. This is
|
|
26
|
-
* the single copy the TS and Swift generators now share.
|
|
27
|
-
*/
|
|
28
|
-
export declare const INTERNAL_WORKFLOW_KEY_PREFIX = "__internal.";
|
|
22
|
+
import { INTERNAL_WORKFLOW_KEY_PREFIX } from "../platform-owned.js";
|
|
23
|
+
export { INTERNAL_WORKFLOW_KEY_PREFIX };
|
|
29
24
|
/** Raw inputs a renderer already has on hand for one workflow TOML. */
|
|
30
25
|
export interface WorkflowInvokerSource {
|
|
31
26
|
/** Source `.toml` filename stem (fallback key when `[workflow].key` is absent). */
|
|
@@ -71,7 +66,10 @@ export interface WorkflowInvokerIR {
|
|
|
71
66
|
/** Parsed output schema, or `undefined` when absent. */
|
|
72
67
|
outputSchema: unknown;
|
|
73
68
|
}
|
|
74
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* True for a platform-owned (reserved) workflow key. Thin alias over the shared
|
|
71
|
+
* `isPlatformOwnedWorkflowKey` (#1660) kept for existing callers of this name.
|
|
72
|
+
*/
|
|
75
73
|
export declare function isReservedWorkflowKey(key: string): boolean;
|
|
76
74
|
/**
|
|
77
75
|
* Parse one workflow TOML into the shared invoker IR. Returns `null` for a
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
import { parseConfigToml } from "../config-toml.js";
|
|
23
23
|
import { safeJsonParse } from "../workflow-payload.js";
|
|
24
24
|
import { schemaRejectsEmptyObject } from "./schemaToTs.js";
|
|
25
|
+
import { INTERNAL_WORKFLOW_KEY_PREFIX, isPlatformOwnedWorkflowKey, } from "../platform-owned.js";
|
|
26
|
+
// Re-export so existing importers of these codegen symbols keep working; the
|
|
27
|
+
// single source of truth is now `../platform-owned.js` (#1660), shared with the
|
|
28
|
+
// `sync` pull/diff/push filters so codegen and sync can never drift.
|
|
29
|
+
export { INTERNAL_WORKFLOW_KEY_PREFIX };
|
|
25
30
|
/**
|
|
26
|
-
*
|
|
27
|
-
* `
|
|
28
|
-
* `src/`). Such workflows are never client-invocable and are skipped. This is
|
|
29
|
-
* the single copy the TS and Swift generators now share.
|
|
31
|
+
* True for a platform-owned (reserved) workflow key. Thin alias over the shared
|
|
32
|
+
* `isPlatformOwnedWorkflowKey` (#1660) kept for existing callers of this name.
|
|
30
33
|
*/
|
|
31
|
-
export const INTERNAL_WORKFLOW_KEY_PREFIX = "__internal.";
|
|
32
|
-
/** True for a platform-owned (reserved) workflow key. */
|
|
33
34
|
export function isReservedWorkflowKey(key) {
|
|
34
|
-
return (
|
|
35
|
-
key.trim().toLowerCase().startsWith(INTERNAL_WORKFLOW_KEY_PREFIX));
|
|
35
|
+
return isPlatformOwnedWorkflowKey(key);
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* Parse one workflow TOML into the shared invoker IR. Returns `null` for a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokerIR.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/invokerIR.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"invokerIR.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/invokerIR.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,6EAA6E;AAC7E,gFAAgF;AAChF,qEAAqE;AACrE,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAiDxC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA6B;IAE7B,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAQ,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,GAAG,GACP,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;QACzD,CAAC,CAAC,QAAQ,CAAC,GAAG;QACd,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAEtB,IAAI,qBAAqB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,2EAA2E;IAC3E,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE1D,OAAO;QACL,GAAG;QACH,YAAY,EAAE,QAAQ,CAAC,YAAY,KAAK,IAAI;QAC5C,yEAAyE;QACzE,oEAAoE;QACpE,aAAa,EACX,WAAW,KAAK,SAAS,IAAI,wBAAwB,CAAC,WAAW,CAAC;QACpE,2EAA2E;QAC3E,wEAAwE;QACxE,yCAAyC;QACzC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,KAAK,KAAK;QAC3D,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -38,13 +38,29 @@
|
|
|
38
38
|
* Errors are NOT swallowed here — a malformed schema fails upstream at parse
|
|
39
39
|
* time, and a defective tagged union throws — this walker otherwise returns
|
|
40
40
|
* `unknown` for anything it does not recognize.
|
|
41
|
+
*
|
|
42
|
+
* FORMATTING CONTRACT (#1565): the types emitted here must be a fixed point of
|
|
43
|
+
* Prettier's DEFAULT config, since `workflows codegen --check` byte-compares
|
|
44
|
+
* the emission against disk. Long unions therefore render through
|
|
45
|
+
* `codegen-shared/prettierStable.ts` (which reproduces Prettier's width
|
|
46
|
+
* decision) instead of being joined with `" | "`. There is no Prettier
|
|
47
|
+
* dependency and no automated round-trip test, so verify any change to these
|
|
48
|
+
* shapes by hand — see that module's header.
|
|
41
49
|
*/
|
|
50
|
+
import { type TypeNode } from "../codegen-shared/prettierStable.js";
|
|
42
51
|
/**
|
|
43
52
|
* Convert a parsed JSON Schema node to a TypeScript type expression. Object
|
|
44
53
|
* types render multi-line (2-space indent per level); everything else renders
|
|
45
|
-
* on a single line
|
|
54
|
+
* on a single line unless it is too wide for Prettier's default print width
|
|
55
|
+
* (#1565). `indent` is the current indentation depth.
|
|
46
56
|
*/
|
|
47
57
|
export declare function schemaToTsType(schema: any, indent?: number): string;
|
|
58
|
+
/**
|
|
59
|
+
* `schemaToTsType` as a wrappable node — the emitters print it at the position
|
|
60
|
+
* it actually occupies so long unions/objects wrap exactly as Prettier would
|
|
61
|
+
* (#1565). See `codegen-shared/prettierStable.ts`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function schemaToTypeNode(schema: any): TypeNode;
|
|
48
64
|
/**
|
|
49
65
|
* True when the schema REJECTS an empty object `{}` — i.e. the client's
|
|
50
66
|
* `rootInput: options.input ?? {}` fallback would fail validation, so `input`
|