@tscomfy/codegen 0.0.0-stage → 0.1.0

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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -2
  3. package/dist/doc.d.ts +78 -0
  4. package/dist/doc.d.ts.map +1 -0
  5. package/dist/doc.js +335 -0
  6. package/dist/doc.js.map +1 -0
  7. package/dist/emit-schema-module.d.ts +11 -0
  8. package/dist/emit-schema-module.d.ts.map +1 -0
  9. package/dist/emit-schema-module.js +39 -0
  10. package/dist/emit-schema-module.js.map +1 -0
  11. package/dist/emit-types.d.ts +15 -0
  12. package/dist/emit-types.d.ts.map +1 -0
  13. package/dist/emit-types.js +718 -0
  14. package/dist/emit-types.js.map +1 -0
  15. package/dist/export-name.d.ts +16 -0
  16. package/dist/export-name.d.ts.map +1 -0
  17. package/dist/export-name.js +43 -0
  18. package/dist/export-name.js.map +1 -0
  19. package/dist/expressions.d.ts +51 -0
  20. package/dist/expressions.d.ts.map +1 -0
  21. package/dist/expressions.js +147 -0
  22. package/dist/expressions.js.map +1 -0
  23. package/dist/generate.d.ts +35 -0
  24. package/dist/generate.d.ts.map +1 -0
  25. package/dist/generate.js +30 -0
  26. package/dist/generate.js.map +1 -0
  27. package/dist/index.d.ts +11 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +11 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/names.d.ts +36 -0
  32. package/dist/names.d.ts.map +1 -0
  33. package/dist/names.js +81 -0
  34. package/dist/names.js.map +1 -0
  35. package/dist/rules.d.ts +23 -0
  36. package/dist/rules.d.ts.map +1 -0
  37. package/dist/rules.js +82 -0
  38. package/dist/rules.js.map +1 -0
  39. package/dist/transpile.d.ts +40 -0
  40. package/dist/transpile.d.ts.map +1 -0
  41. package/dist/transpile.js +531 -0
  42. package/dist/transpile.js.map +1 -0
  43. package/dist/typing.d.ts +18 -0
  44. package/dist/typing.d.ts.map +1 -0
  45. package/dist/typing.js +387 -0
  46. package/dist/typing.js.map +1 -0
  47. package/dist/values.d.ts +15 -0
  48. package/dist/values.d.ts.map +1 -0
  49. package/dist/values.js +22 -0
  50. package/dist/values.js.map +1 -0
  51. package/package.json +46 -4
  52. package/src/doc.ts +390 -0
  53. package/src/emit-schema-module.ts +47 -0
  54. package/src/emit-types.ts +880 -0
  55. package/src/export-name.ts +51 -0
  56. package/src/expressions.ts +201 -0
  57. package/src/generate.ts +59 -0
  58. package/src/index.ts +22 -0
  59. package/src/names.ts +89 -0
  60. package/src/rules.ts +86 -0
  61. package/src/transpile.ts +639 -0
  62. package/src/typing.ts +456 -0
  63. package/src/values.ts +28 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transpile.js","sourceRoot":"","sources":["../src/transpile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type GraphNode, type NodeDef, type NodeId, type Workflow } from "@tscomfy/core";
2
+ /** How a node is written: `typed` as `n.Class(…)`, `raw` as `raw(…)` with its wire keys. */
3
+ export type WriteMode = "typed" | "raw";
4
+ /**
5
+ * Whether the generated types can express a node's inputs, by the rules `emit-types.ts` types
6
+ * them with. Returns why not, or `undefined`.
7
+ */
8
+ export declare class Typing {
9
+ #private;
10
+ constructor(workflow: Workflow, mode: (id: NodeId) => WriteMode | undefined);
11
+ /**
12
+ * Why the types can't express a node, or `undefined` when they can. Nodes are asked in
13
+ * dependency order, so their sources are decided; a typed node's MatchType parameters are then
14
+ * resolved at once, so later nodes look them up rather than recurse through long chains.
15
+ */
16
+ problem(node: GraphNode, definition: NodeDef): string | undefined;
17
+ }
18
+ //# sourceMappingURL=typing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../src/typing.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,SAAS,EAId,KAAK,OAAO,EACZ,KAAK,MAAM,EAIX,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAIvB,4FAA4F;AAC5F,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;AAExC;;;GAGG;AACH,qBAAa,MAAM;;IAOjB,YAAY,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,EAG1E;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAWhE;CAmPF"}
package/dist/typing.js ADDED
@@ -0,0 +1,387 @@
1
+ // Whether the generated types can express a node (docs/plan.md §10), decided by the rules
2
+ // `emit-types.ts` types inputs with (§6.2, §6.3): link atoms per output, legacy combos taking `*`,
3
+ // socketless widgets, MatchType's inferring position and parameter defaults, Autogrow and
4
+ // DynamicGroup bounds, and the forced row field.
5
+ import { isOutputRef, sendsInputValue, } from "@tscomfy/core";
6
+ import { forcedRowField, isObjectMember, isRequired } from "./rules.js";
7
+ import { isList, isPlainObject } from "./values.js";
8
+ /**
9
+ * Whether the generated types can express a node's inputs, by the rules `emit-types.ts` types
10
+ * them with. Returns why not, or `undefined`.
11
+ */
12
+ export class Typing {
13
+ #workflow;
14
+ /** How each node is written: `undefined` while undecided, or for a node left out. */
15
+ #mode;
16
+ /** Resolved MatchType parameters by node and template. */
17
+ #parameters = new Map();
18
+ constructor(workflow, mode) {
19
+ this.#workflow = workflow;
20
+ this.#mode = mode;
21
+ }
22
+ /**
23
+ * Why the types can't express a node, or `undefined` when they can. Nodes are asked in
24
+ * dependency order, so their sources are decided; a typed node's MatchType parameters are then
25
+ * resolved at once, so later nodes look them up rather than recurse through long chains.
26
+ */
27
+ problem(node, definition) {
28
+ const scope = { node, definition };
29
+ const problem = this.#inputs(scope, definition.inputs, node.inputs, undefined, node.classType);
30
+ if (problem === undefined) {
31
+ for (const output of definition.outputs) {
32
+ if (output.matchTemplate !== undefined) {
33
+ this.#parameter(node, definition, output.matchTemplate);
34
+ }
35
+ }
36
+ }
37
+ return problem;
38
+ }
39
+ /**
40
+ * An inputs interface: no unknown keys, every required member, every value fitting. `forced`
41
+ * is a DynamicGroup row's extra required field.
42
+ */
43
+ #inputs(scope, definitions, values, forced, where) {
44
+ const members = definitions.filter(sendsInputValue);
45
+ const names = new Set(members.map((input) => input.name));
46
+ const excess = Object.keys(values).find((key) => !names.has(key));
47
+ if (excess !== undefined)
48
+ return `${where} has no input ${excess}`;
49
+ for (const input of members) {
50
+ const value = Object.hasOwn(values, input.name) ? values[input.name] : undefined;
51
+ if (value === undefined) {
52
+ if (isRequired(input) || input === forced)
53
+ return `${where} needs ${input.name}`;
54
+ continue;
55
+ }
56
+ const problem = this.#input(scope, input, value, `${where} › ${input.name}`);
57
+ if (problem !== undefined)
58
+ return problem;
59
+ }
60
+ return undefined;
61
+ }
62
+ /** One input's value; `slot` is the index within an Autogrow, for its template. */
63
+ #input(scope, input, value, where, slot) {
64
+ switch (input.kind) {
65
+ case "unknown":
66
+ return undefined;
67
+ case "socket":
68
+ return this.#link(value, linkAccepts(input.type), where);
69
+ case "int":
70
+ return typeof value === "number" || typeof value === "bigint"
71
+ ? undefined
72
+ : this.#widgetLink(input.type, input.socketless, value, where, "an integer");
73
+ case "float":
74
+ return typeof value === "number"
75
+ ? undefined
76
+ : this.#widgetLink(input.type, input.socketless, value, where, "a number");
77
+ case "string":
78
+ return typeof value === "string"
79
+ ? undefined
80
+ : this.#widgetLink(input.type, input.socketless, value, where, "a string");
81
+ case "boolean":
82
+ return typeof value === "boolean"
83
+ ? undefined
84
+ : this.#widgetLink(input.type, input.socketless, value, where, "a boolean");
85
+ case "value":
86
+ return isOutputRef(value)
87
+ ? this.#widgetLink(input.type, input.socketless, value, where, "JSON")
88
+ : undefined;
89
+ case "combo":
90
+ return this.#combo(input, value, where);
91
+ case "matchType":
92
+ return this.#match(scope, input, slot, value, where);
93
+ case "autogrow":
94
+ return this.#autogrow(scope, input, value, where);
95
+ case "dynamicCombo": {
96
+ if (typeof value === "string") {
97
+ const option = input.options.find((each) => each.key === value);
98
+ if (option === undefined)
99
+ return `${where} has no option ${value}`;
100
+ // An option whose inputs may all be left out can be given by its key alone.
101
+ return option.inputs.every((child) => !isRequired(child))
102
+ ? undefined
103
+ : `${where} option ${value} needs its inputs`;
104
+ }
105
+ if (!isPlainObject(value) || typeof value["option"] !== "string") {
106
+ return `${where} takes an option`;
107
+ }
108
+ const option = input.options.find((each) => each.key === value["option"]);
109
+ if (option === undefined || option.inputs.length === 0) {
110
+ return `${where} has no option ${value["option"]} with inputs`;
111
+ }
112
+ if (Object.keys(value).some((key) => key !== "option" && key !== "inputs")) {
113
+ return `${where} has keys besides option and inputs`;
114
+ }
115
+ const children = value["inputs"] ?? {};
116
+ if (!isPlainObject(children))
117
+ return `${where} inputs aren't an object`;
118
+ return this.#inputs(scope, option.inputs, children, undefined, where);
119
+ }
120
+ case "dynamicGroup": {
121
+ if (!isList(value))
122
+ return `${where} takes a list of rows`;
123
+ if (value.length < input.min || value.length > input.max) {
124
+ return `${where} has ${String(value.length)} rows, outside ${String(input.min)} to ${String(input.max)}`;
125
+ }
126
+ const forced = forcedRowField(input.fields);
127
+ for (const row of value) {
128
+ if (!isPlainObject(row))
129
+ return `${where} rows are objects`;
130
+ const problem = this.#inputs(scope, input.fields, row, forced, where);
131
+ if (problem !== undefined)
132
+ return problem;
133
+ }
134
+ return undefined;
135
+ }
136
+ }
137
+ }
138
+ #widgetLink(type, socketless, value, where, expected) {
139
+ if (!isOutputRef(value))
140
+ return `${where} takes ${expected}`;
141
+ if (socketless)
142
+ return `${where} has no socket`;
143
+ return this.#link(value, linkAccepts(type), where);
144
+ }
145
+ #link(value, accepts, where) {
146
+ if (!isOutputRef(value))
147
+ return `${where} takes a link`;
148
+ const atom = this.#atom(value.node, value.slot);
149
+ if (atom === undefined)
150
+ return `${where} links to an output that doesn't exist`;
151
+ return accepts(atom) ? undefined : `${where} can't take ${describe(atom)}`;
152
+ }
153
+ #combo(input, value, where) {
154
+ if (isOutputRef(value)) {
155
+ if (input.socketless)
156
+ return `${where} has no socket`;
157
+ // A legacy combo takes `*` links only (§5.2); the COMBO form takes its type or option lists.
158
+ return input.form === "legacy"
159
+ ? this.#link(value, (atom) => atom.kind === "star", where)
160
+ : this.#link(value, linkAccepts(input.type), where);
161
+ }
162
+ const open = input.upload || input.remote;
163
+ const fits = (option) => input.options.length === 0
164
+ ? typeof option === "string"
165
+ : (open && typeof option === "string") || input.options.some((each) => each === option);
166
+ if (input.multiselect) {
167
+ return isList(value) && value.every(fits)
168
+ ? undefined
169
+ : `${where} takes a list of its options`;
170
+ }
171
+ return fits(value) ? undefined : `${where} isn't one of its options`;
172
+ }
173
+ #autogrow(scope, input, value, where) {
174
+ const required = input.template.required ? Math.min(input.min, input.slots.length) : 0;
175
+ if (input.form === "prefix") {
176
+ if (!isList(value))
177
+ return `${where} takes a list`;
178
+ const items = value;
179
+ if (items.length < required || items.length > input.slots.length) {
180
+ return `${where} has ${String(items.length)} slots, outside ${String(required)} to ${String(input.slots.length)}`;
181
+ }
182
+ for (const [index, item] of items.entries()) {
183
+ const problem = this.#input(scope, input.template, item, where, index);
184
+ if (problem !== undefined)
185
+ return problem;
186
+ }
187
+ return undefined;
188
+ }
189
+ if (!isPlainObject(value))
190
+ return `${where} takes slots by name`;
191
+ const excess = Object.keys(value).find((key) => !input.slots.includes(key));
192
+ if (excess !== undefined)
193
+ return `${where} has no slot ${excess}`;
194
+ for (const [index, slot] of input.slots.entries()) {
195
+ const item = Object.hasOwn(value, slot) ? value[slot] : undefined;
196
+ if (item === undefined) {
197
+ if (index < required || isObjectMember(slot))
198
+ return `${where} needs ${slot}`;
199
+ continue;
200
+ }
201
+ const problem = this.#input(scope, input.template, item, where, index);
202
+ if (problem !== undefined)
203
+ return problem;
204
+ }
205
+ return undefined;
206
+ }
207
+ /**
208
+ * A MatchType position. The template's inferring position (the first one typed, §6.3) takes
209
+ * `Out<T | "*">` with `T` within its allowed types; the others `Match<NoInfer<T>>`.
210
+ */
211
+ #match(scope, input, slot, value, where) {
212
+ const { templateId } = input;
213
+ const position = inferringPosition(scope.definition, templateId);
214
+ if (position?.input === input && (slot === undefined || slot === 0)) {
215
+ const constraint = allowedAtom(input.allowed);
216
+ return this.#link(value, (atom) => atom.kind === "star" || within(atom, constraint), where);
217
+ }
218
+ const parameter = this.#parameter(scope.node, scope.definition, templateId);
219
+ return this.#link(value, (atom) => matchAccepts(parameter, atom), where);
220
+ }
221
+ /**
222
+ * What a link from (`node`, `slot`) is typed as in builder code (emit-types `#outputAtom`):
223
+ * `undefined` when the node or slot doesn't exist. A raw node's outputs are `Out<"*">`.
224
+ */
225
+ #atom(id, slot) {
226
+ const node = this.#workflow.graph.nodes.get(id);
227
+ const mode = this.#mode(id);
228
+ if (node === undefined || mode === undefined)
229
+ return undefined;
230
+ const definition = Object.hasOwn(this.#workflow.schema.nodes, node.classType)
231
+ ? this.#workflow.schema.nodes[node.classType]
232
+ : undefined;
233
+ // Whatever is written as raw(…), known class or not, has `Out<"*">` outputs.
234
+ if (mode === "raw" || definition === undefined)
235
+ return STAR;
236
+ const output = definition.outputs[slot];
237
+ if (output === undefined)
238
+ return undefined;
239
+ return outputAtom(output, (template) => this.#parameter(node, definition, template));
240
+ }
241
+ /**
242
+ * A typed node's MatchType parameter: what its inferring position is linked to, or the
243
+ * parameter's default (`"*"`, or the allowed types) when that position is empty or `*`.
244
+ */
245
+ #parameter(node, definition, templateId) {
246
+ const key = `${node.id}\u0000${templateId}`;
247
+ const cached = this.#parameters.get(key);
248
+ if (cached !== undefined)
249
+ return cached;
250
+ // Guard against cycles while resolving: they can't be written anyway.
251
+ this.#parameters.set(key, STAR);
252
+ const position = inferringPosition(definition, templateId);
253
+ const fallback = position === undefined ? STAR : allowedDefault(position.allowed);
254
+ const value = position === undefined ? undefined : position.read(node.inputs);
255
+ const linked = value !== undefined && isOutputRef(value) ? this.#atom(value.node, value.slot) : undefined;
256
+ const resolved = linked === undefined || linked.kind === "star" ? fallback : linked;
257
+ this.#parameters.set(key, resolved);
258
+ return resolved;
259
+ }
260
+ }
261
+ const STAR = { kind: "star" };
262
+ const STRING = { kind: "string" };
263
+ function outputAtom(output, parameter) {
264
+ if (output.matchTemplate !== undefined)
265
+ return parameter(output.matchTemplate);
266
+ const { type } = output;
267
+ switch (type.kind) {
268
+ case "combo":
269
+ return { kind: "optionList" };
270
+ case "any":
271
+ return STAR;
272
+ case "named":
273
+ return type.name === "*" ? STRING : { kind: "names", names: [type.name] };
274
+ case "union":
275
+ return { kind: "names", names: type.names.filter((name) => name !== "*") };
276
+ }
277
+ }
278
+ /** emit-types `#link`: what a socket of `type` takes. */
279
+ function linkAccepts(type) {
280
+ switch (type.kind) {
281
+ case "any":
282
+ return () => true;
283
+ case "named":
284
+ return (atom) => atom.kind === "star" ||
285
+ (atom.kind === "names" && atom.names.every((name) => name === type.name)) ||
286
+ (atom.kind === "optionList" && type.name === "COMBO");
287
+ case "union": {
288
+ const names = new Set(type.names.filter((name) => name !== "*"));
289
+ return (atom) => atom.kind === "star" ||
290
+ (atom.kind === "names" && atom.names.every((name) => names.has(name)));
291
+ }
292
+ }
293
+ }
294
+ /** A MatchType constraint (emit-types `#allowed`): `undefined` for `string`, else its names. */
295
+ function allowedAtom(type) {
296
+ switch (type.kind) {
297
+ case "any":
298
+ return undefined;
299
+ case "named":
300
+ return type.name === "*" ? undefined : [type.name];
301
+ case "union":
302
+ return type.names.includes("*") ? undefined : type.names;
303
+ }
304
+ }
305
+ /** A MatchType parameter's default: `"*"` when unconstrained, else the allowed types. */
306
+ function allowedDefault(type) {
307
+ const names = allowedAtom(type);
308
+ return names === undefined ? STAR : { kind: "names", names };
309
+ }
310
+ /** Whether a link typed `atom` infers a parameter within `constraint`. */
311
+ function within(atom, constraint) {
312
+ if (constraint === undefined)
313
+ return true;
314
+ return atom.kind === "names" && atom.names.every((name) => constraint.includes(name));
315
+ }
316
+ /** `Out<Match<T>>`: anything when `T` is `"*"` or `string`, else `T` or `*`. */
317
+ function matchAccepts(parameter, atom) {
318
+ if (parameter.kind === "star" || parameter.kind === "string" || atom.kind === "star")
319
+ return true;
320
+ if (parameter.kind === "optionList")
321
+ return atom.kind === "optionList";
322
+ return atom.kind === "names" && atom.names.every((name) => parameter.names.includes(name));
323
+ }
324
+ function describe(atom) {
325
+ switch (atom.kind) {
326
+ case "star":
327
+ return "*";
328
+ case "string":
329
+ return "a padded *";
330
+ case "optionList":
331
+ return "an option list";
332
+ case "names":
333
+ return atom.names.join(" | ") || "never";
334
+ }
335
+ }
336
+ /**
337
+ * The position a template is inferred at (emit-types `#matchAtom`): its first MatchType position
338
+ * in declaration order, depth-first through every dynamic-combo option, and slot 0 of an
339
+ * Autogrow. `read` finds its value in a node's structured inputs.
340
+ */
341
+ function inferringPosition(definition, templateId) {
342
+ const visit = (input, read) => {
343
+ if (input.kind === "matchType" && input.templateId === templateId) {
344
+ return { input, allowed: input.allowed, read };
345
+ }
346
+ if (input.kind === "autogrow" && input.template.kind === "matchType") {
347
+ if (input.template.templateId !== templateId)
348
+ return undefined;
349
+ const first = input.slots[0];
350
+ return {
351
+ input: input.template,
352
+ allowed: input.template.allowed,
353
+ read: (inputs) => {
354
+ const value = read(inputs);
355
+ if (isList(value))
356
+ return value[0];
357
+ return isPlainObject(value) && first !== undefined ? value[first] : undefined;
358
+ },
359
+ };
360
+ }
361
+ if (input.kind === "dynamicCombo") {
362
+ for (const option of input.options) {
363
+ for (const child of option.inputs) {
364
+ const found = visit(child, (inputs) => {
365
+ const value = read(inputs);
366
+ if (!isPlainObject(value) || value["option"] !== option.key)
367
+ return undefined;
368
+ const children = value["inputs"];
369
+ return isPlainObject(children) && Object.hasOwn(children, child.name)
370
+ ? children[child.name]
371
+ : undefined;
372
+ });
373
+ if (found !== undefined)
374
+ return found;
375
+ }
376
+ }
377
+ }
378
+ return undefined;
379
+ };
380
+ for (const input of definition.inputs) {
381
+ const found = visit(input, (inputs) => Object.hasOwn(inputs, input.name) ? inputs[input.name] : undefined);
382
+ if (found !== undefined)
383
+ return found;
384
+ }
385
+ return undefined;
386
+ }
387
+ //# sourceMappingURL=typing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing.js","sourceRoot":"","sources":["../src/typing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type InputValue, type JsonValue, type NodeId } from "@tscomfy/core";
2
+ /** Every output reference in a node's inputs, depth-first. */
3
+ export declare function references(value: InputValue | {
4
+ readonly [name: string]: InputValue;
5
+ }): {
6
+ readonly node: NodeId;
7
+ readonly slot: number;
8
+ }[];
9
+ /** Whether a value is a plain object: not a list and not an output reference. */
10
+ export declare function isPlainObject(value: InputValue | undefined): value is {
11
+ readonly [key: string]: InputValue;
12
+ };
13
+ /** Whether a value is a list. */
14
+ export declare function isList<T extends InputValue | JsonValue>(value: T | undefined): value is Extract<T, readonly unknown[]>;
15
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAe,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1F,8DAA8D;AAC9D,wBAAgB,UAAU,CACxB,KAAK,EAAE,UAAU,GAAG;IAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAKpD;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,KAAK,IAAI;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAEjD;AAED,iCAAiC;AACjC,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,GAAG,SAAS,EACrD,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC,CAEzC"}
package/dist/values.js ADDED
@@ -0,0 +1,22 @@
1
+ // Structured input values (the graph's `InputValue`): lists, plain objects and the output
2
+ // references inside them, as the transpiler and its typing walk them.
3
+ import { isOutputRef } from "@tscomfy/core";
4
+ /** Every output reference in a node's inputs, depth-first. */
5
+ export function references(value) {
6
+ if (isOutputRef(value))
7
+ return [{ node: value.node, slot: value.slot }];
8
+ if (isList(value))
9
+ return value.flatMap(references);
10
+ if (typeof value === "object" && value !== null)
11
+ return Object.values(value).flatMap(references);
12
+ return [];
13
+ }
14
+ /** Whether a value is a plain object: not a list and not an output reference. */
15
+ export function isPlainObject(value) {
16
+ return typeof value === "object" && value !== null && !isList(value) && !isOutputRef(value);
17
+ }
18
+ /** Whether a value is a list. */
19
+ export function isList(value) {
20
+ return Array.isArray(value);
21
+ }
22
+ //# sourceMappingURL=values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,sEAAsE;AAEtE,OAAO,EAAmB,WAAW,EAA+B,MAAM,eAAe,CAAC;AAE1F,8DAA8D;AAC9D,MAAM,UAAU,UAAU,CACxB,KAA2D;IAE3D,IAAI,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjG,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAC3B,KAA6B;IAE7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,MAAM,CACpB,KAAoB;IAEpB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,48 @@
1
1
  {
2
2
  "name": "@tscomfy/codegen",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "Generates TypeScript node types and the runtime schema module for tscomfy from a ComfyUI server's node definitions, and transpiles workflows to code.",
5
+ "keywords": [
6
+ "codegen",
7
+ "comfyui",
8
+ "types",
9
+ "typescript",
10
+ "workflow"
11
+ ],
12
+ "homepage": "https://github.com/TheeKia/tscomfy/tree/main/packages/codegen#readme",
13
+ "bugs": "https://github.com/TheeKia/tscomfy/issues",
14
+ "license": "MIT",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/TheeKia/tscomfy.git",
18
+ "directory": "packages/codegen"
19
+ },
20
+ "files": [
21
+ "dist",
22
+ "!dist/**/*.tsbuildinfo",
23
+ "src"
24
+ ],
25
+ "type": "module",
26
+ "sideEffects": false,
27
+ "exports": {
28
+ ".": {
29
+ "@tscomfy/source": "./src/index.ts",
30
+ "types": "./dist/index.d.ts",
31
+ "default": "./dist/index.js"
32
+ }
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
37
+ "devDependencies": {
38
+ "@tscomfy/core": "0.1.0",
39
+ "@tscomfy/fixtures": "0.0.0"
40
+ },
41
+ "peerDependencies": {
42
+ "@tscomfy/core": "^0.1.0"
43
+ },
44
+ "engines": {
45
+ "bun": ">=1.4",
46
+ "node": ">=24"
47
+ }
48
+ }