@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":"emit-types.js","sourceRoot":"","sources":["../src/emit-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /** What the schema module (`index.ts`) imports. */
2
+ export declare const SCHEMA_MODULE_NAMES: readonly string[];
3
+ /** What a transpiled module imports or binds itself. */
4
+ export declare const TRANSPILED_MODULE_NAMES: readonly string[];
5
+ /**
6
+ * Why `name` can't be the exported constant of a generated module, or `undefined` when it can.
7
+ * One rule for both kinds: a schema module's export (`generate`) and a transpiled workflow's
8
+ * (`transpile`), which imports the schema's, so a schema named `raw` is refused when it is
9
+ * generated rather than when a workflow is first transpiled over it. The name must be an ASCII
10
+ * identifier, not a reserved word, and none of the names either module declares itself
11
+ * (`defineSchema`, `TypedSchema`, `Nodes`, `workflow`, `Workflow`, `NodesOf`, `n`, `raw`).
12
+ */
13
+ export declare function exportNameProblem(name: string): string | undefined;
14
+ /** Whether {@link exportNameProblem} finds nothing wrong with `name`. */
15
+ export declare function isExportName(name: string): boolean;
16
+ //# sourceMappingURL=export-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-name.d.ts","sourceRoot":"","sources":["../src/export-name.ts"],"names":[],"mappings":"AAeA,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAA6C,CAAC;AAE/F,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAMpD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUlE;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD"}
@@ -0,0 +1,43 @@
1
+ // The one rule for the names generated modules export (docs/plan.md §9, §10): `generate`'s
2
+ // schema constant and `transpile`'s workflow constant.
3
+ const ASCII_IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
4
+ /**
5
+ * Words an ES module can't declare as a constant (reserved words, `arguments` and `eval` in
6
+ * strict code) or must not shadow (`undefined`, `NaN`, `Infinity`).
7
+ */
8
+ const RESERVED = new Set("break case catch class const continue debugger default delete do else enum export extends false finally for function if import in instanceof new null return super switch this throw true try typeof var void while with yield await let static implements interface package private protected public arguments eval undefined NaN Infinity".split(" "));
9
+ /** What the schema module (`index.ts`) imports. */
10
+ export const SCHEMA_MODULE_NAMES = ["defineSchema", "TypedSchema", "Nodes"];
11
+ /** What a transpiled module imports or binds itself. */
12
+ export const TRANSPILED_MODULE_NAMES = [
13
+ "workflow",
14
+ "Workflow",
15
+ "NodesOf",
16
+ "n",
17
+ "raw",
18
+ ];
19
+ /**
20
+ * Why `name` can't be the exported constant of a generated module, or `undefined` when it can.
21
+ * One rule for both kinds: a schema module's export (`generate`) and a transpiled workflow's
22
+ * (`transpile`), which imports the schema's, so a schema named `raw` is refused when it is
23
+ * generated rather than when a workflow is first transpiled over it. The name must be an ASCII
24
+ * identifier, not a reserved word, and none of the names either module declares itself
25
+ * (`defineSchema`, `TypedSchema`, `Nodes`, `workflow`, `Workflow`, `NodesOf`, `n`, `raw`).
26
+ */
27
+ export function exportNameProblem(name) {
28
+ if (!ASCII_IDENTIFIER.test(name)) {
29
+ return "it isn't an identifier (ASCII letters, digits, _ and $, not starting with a digit)";
30
+ }
31
+ if (RESERVED.has(name))
32
+ return "JavaScript reserves it";
33
+ if (SCHEMA_MODULE_NAMES.includes(name) || TRANSPILED_MODULE_NAMES.includes(name)) {
34
+ const names = [...SCHEMA_MODULE_NAMES, ...TRANSPILED_MODULE_NAMES].join(", ");
35
+ return `the generated modules declare it themselves (${names})`;
36
+ }
37
+ return undefined;
38
+ }
39
+ /** Whether {@link exportNameProblem} finds nothing wrong with `name`. */
40
+ export function isExportName(name) {
41
+ return exportNameProblem(name) === undefined;
42
+ }
43
+ //# sourceMappingURL=export-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-name.js","sourceRoot":"","sources":["../src/export-name.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,uDAAuD;AAEvD,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAEtD;;;GAGG;AACH,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAC3C,6UAA6U,CAAC,KAAK,CACjV,GAAG,CACJ,CACF,CAAC;AAEF,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAsB,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAE/F,wDAAwD;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,UAAU;IACV,UAAU;IACV,SAAS;IACT,GAAG;IACH,KAAK;CACN,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,oFAAoF,CAAC;IAC9F,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,wBAAwB,CAAC;IACxD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjF,MAAM,KAAK,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO,gDAAgD,KAAK,GAAG,CAAC;IAClE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type InputValue, type JsonValue } from "@tscomfy/core";
2
+ import { type Doc } from "./doc.ts";
3
+ /** The names a transpiled module's declaration is written with. */
4
+ export interface DeclarationNames {
5
+ /** The exported constant. */
6
+ readonly name: string;
7
+ /** The schema module's export. */
8
+ readonly schemaName: string;
9
+ }
10
+ /**
11
+ * How `export const <name>: Workflow<…> = workflow(<schema>, <build> <block>);` is laid out, as
12
+ * Prettier lays out an assignment whose right side is a call with a function last: the function
13
+ * hugs the call while the line up to its `{` fits (with `});` for an empty block), else each
14
+ * argument takes a line of its own; the right side moves below `=` when that makes the call's
15
+ * first line fit.
16
+ */
17
+ export type Layout = "hug" | "expand" | "belowHug" | "belowExpand";
18
+ /** The column the build function's statements start at, per layout. */
19
+ export declare const STATEMENT_INDENT: Record<Layout, number>;
20
+ export declare function declarationLayout(options: DeclarationNames, build: string, empty: boolean): Layout;
21
+ export declare function declarationLeft(options: DeclarationNames): string;
22
+ export declare function declarationDoc(options: DeclarationNames, build: string, block: Doc, layout: Layout): Doc;
23
+ /** A call: arguments on one line, or one per line. */
24
+ export declare function callDoc(callee: string, args: readonly Doc[]): Doc;
25
+ /** `const x = …;`, breaking inside the call rather than after `=`. */
26
+ export declare function statementDoc(left: string, call: Doc): Doc;
27
+ export declare function objectDoc(properties: readonly Doc[]): Doc;
28
+ /**
29
+ * An array. Prettier always breaks an array of two or more objects or arrays that each have
30
+ * more than one element.
31
+ */
32
+ export declare function arrayDoc(items: readonly Doc[], breaks?: boolean): Doc;
33
+ /** `key: value`; a scalar stays on the key's line, anything else may move below it. */
34
+ export declare function propertyDoc(key: string, value: Doc): Doc;
35
+ export declare function scalarDoc(value: string | number | bigint | boolean | null): Doc;
36
+ /**
37
+ * Whether Prettier breaks an array whatever its width: two or more elements, all objects with
38
+ * more than one key or all arrays with more than one element.
39
+ */
40
+ export declare function breaksArray(items: readonly (InputValue | JsonValue)[]): boolean;
41
+ /** A JSON value as an expression. */
42
+ export declare function jsonDoc(value: JsonValue): Doc;
43
+ /** A list of two or more numbers, which Prettier prints concisely, as many per line as fit. */
44
+ export declare function isNumberList(value: readonly (InputValue | JsonValue)[]): value is readonly number[];
45
+ export declare function numbersDoc(values: readonly number[]): Doc;
46
+ /**
47
+ * A key for an object literal. `__proto__` is computed, since a plain `__proto__:` would set
48
+ * the prototype rather than make a property.
49
+ */
50
+ export declare function objectKey(name: string): string;
51
+ //# sourceMappingURL=expressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAe,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,KAAK,GAAG,EAaT,MAAM,UAAU,CAAC;AAIlB,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;AAEnE,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKnD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CAMR;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,MAAM,GACb,GAAG,CAoBL;AAED,sDAAsD;AACtD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,GAAG,CASjE;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,CAGzD;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,SAAS,GAAG,EAAE,GAAG,GAAG,CAGzD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,UAAQ,GAAG,GAAG,CAInE;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAQxD;AAOD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAK/E;AAWD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAG/E;AAED,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAY7C;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,GACzC,KAAK,IAAI,SAAS,MAAM,EAAE,CAE5B;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAMzD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C"}
@@ -0,0 +1,147 @@
1
+ // Expression layout, as oxfmt prints it (Prettier's rules for calls, objects and arrays), and
2
+ // the layout of the transpiled module's declaration.
3
+ import { isOutputRef } from "@tscomfy/core";
4
+ import { fill, group, groupId, hardline, ifBreak, indent, indentIfBreak, join, line, PRINT_WIDTH, softline, textWidth, } from "./doc.js";
5
+ import { propertyKey, quote } from "./names.js";
6
+ import { isList } from "./values.js";
7
+ /** The column the build function's statements start at, per layout. */
8
+ export const STATEMENT_INDENT = {
9
+ hug: 2,
10
+ expand: 4,
11
+ belowHug: 4,
12
+ belowExpand: 6,
13
+ };
14
+ export function declarationLayout(options, build, empty) {
15
+ const left = declarationLeft(options);
16
+ const hug = `workflow(${options.schemaName}, ${build} ${empty ? "{});" : "{"}`;
17
+ if (textWidth(`${left} ${hug}`) <= PRINT_WIDTH)
18
+ return "hug";
19
+ if (textWidth(`${left} workflow(`) <= PRINT_WIDTH)
20
+ return "expand";
21
+ return textWidth(` ${hug}`) <= PRINT_WIDTH ? "belowHug" : "belowExpand";
22
+ }
23
+ export function declarationLeft(options) {
24
+ return `export const ${options.name}: Workflow<NodesOf<typeof ${options.schemaName}>> =`;
25
+ }
26
+ export function declarationDoc(options, build, block, layout) {
27
+ const { schemaName } = options;
28
+ const left = declarationLeft(options);
29
+ const hugged = [`workflow(${schemaName}, `, build, " ", block, ");"];
30
+ const expanded = [
31
+ "workflow(",
32
+ indent([hardline, schemaName, ",", hardline, build, " ", block, ","]),
33
+ hardline,
34
+ ");",
35
+ ];
36
+ switch (layout) {
37
+ case "hug":
38
+ return [left, " ", hugged];
39
+ case "expand":
40
+ return [left, " ", expanded];
41
+ case "belowHug":
42
+ return [left, indent([hardline, hugged])];
43
+ case "belowExpand":
44
+ return [left, indent([hardline, expanded])];
45
+ }
46
+ }
47
+ /** A call: arguments on one line, or one per line. */
48
+ export function callDoc(callee, args) {
49
+ return group([
50
+ callee,
51
+ "(",
52
+ indent([softline, join([",", line], args)]),
53
+ ifBreak(","),
54
+ softline,
55
+ ")",
56
+ ]);
57
+ }
58
+ /** `const x = …;`, breaking inside the call rather than after `=`. */
59
+ export function statementDoc(left, call) {
60
+ const id = groupId("statement");
61
+ return group([left, " =", group(indent(line), id), indentIfBreak([call, ";"], id)]);
62
+ }
63
+ export function objectDoc(properties) {
64
+ if (properties.length === 0)
65
+ return "{}";
66
+ return group(["{", indent([line, join([",", line], properties)]), ifBreak(","), line, "}"]);
67
+ }
68
+ /**
69
+ * An array. Prettier always breaks an array of two or more objects or arrays that each have
70
+ * more than one element.
71
+ */
72
+ export function arrayDoc(items, breaks = false) {
73
+ if (items.length === 0)
74
+ return "[]";
75
+ if (breaks)
76
+ return ["[", indent([hardline, join([",", hardline], items)]), ",", hardline, "]"];
77
+ return group(["[", indent([softline, join([",", line], items)]), ifBreak(","), softline, "]"]);
78
+ }
79
+ /** `key: value`; a scalar stays on the key's line, anything else may move below it. */
80
+ export function propertyDoc(key, value) {
81
+ // Prettier never breaks after a key narrower than five columns (tab width plus three).
82
+ const short = textWidth(key) < 5;
83
+ if (short || (typeof value === "string" && !value.startsWith('"') && !value.startsWith("'"))) {
84
+ return [key, ": ", value];
85
+ }
86
+ const id = groupId("property");
87
+ return group([key, ":", group(indent(line), id), indentIfBreak(value, id)]);
88
+ }
89
+ /** A number literal as Prettier writes it: exponents without `+` (`1e21`, not `1e+21`). */
90
+ function numberText(value) {
91
+ return Object.is(value, -0) ? "-0" : String(value).replace("e+", "e");
92
+ }
93
+ export function scalarDoc(value) {
94
+ if (typeof value === "string")
95
+ return quote(value);
96
+ if (typeof value === "bigint")
97
+ return `${String(value)}n`;
98
+ if (typeof value === "number")
99
+ return numberText(value);
100
+ return String(value);
101
+ }
102
+ /** "object" or "array" for an element with more than one entry. */
103
+ function many(item) {
104
+ if (isList(item))
105
+ return item.length > 1 ? "array" : undefined;
106
+ if (typeof item === "object" && item !== null && !isOutputRef(item)) {
107
+ return Object.keys(item).length > 1 ? "object" : undefined;
108
+ }
109
+ return undefined;
110
+ }
111
+ /**
112
+ * Whether Prettier breaks an array whatever its width: two or more elements, all objects with
113
+ * more than one key or all arrays with more than one element.
114
+ */
115
+ export function breaksArray(items) {
116
+ const first = items[0] === undefined ? undefined : many(items[0]);
117
+ return items.length > 1 && first !== undefined && items.every((item) => many(item) === first);
118
+ }
119
+ /** A JSON value as an expression. */
120
+ export function jsonDoc(value) {
121
+ if (isList(value)) {
122
+ return isNumberList(value)
123
+ ? numbersDoc(value)
124
+ : arrayDoc(value.map(jsonDoc), breaksArray(value));
125
+ }
126
+ if (typeof value === "object" && value !== null) {
127
+ return objectDoc(Object.entries(value).map(([key, item]) => propertyDoc(objectKey(key), jsonDoc(item))));
128
+ }
129
+ return scalarDoc(value);
130
+ }
131
+ /** A list of two or more numbers, which Prettier prints concisely, as many per line as fit. */
132
+ export function isNumberList(value) {
133
+ return value.length > 1 && value.every((item) => typeof item === "number");
134
+ }
135
+ export function numbersDoc(values) {
136
+ const items = values.map((value, index) => index < values.length - 1 ? `${numberText(value)},` : numberText(value));
137
+ // The trailing comma belongs to the last item, so the last line's fit counts it.
138
+ return group(["[", indent([softline, fill(items, ",")]), softline, "]"]);
139
+ }
140
+ /**
141
+ * A key for an object literal. `__proto__` is computed, since a plain `__proto__:` would set
142
+ * the prototype rather than make a property.
143
+ */
144
+ export function objectKey(name) {
145
+ return name === "__proto__" ? '["__proto__"]' : propertyKey(name);
146
+ }
147
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { type Diagnostic, type Schema } from "@tscomfy/core";
2
+ /** The version written into generated headers. A test keeps it equal to package.json. */
3
+ export declare const CODEGEN_VERSION = "0.1.0";
4
+ /** A file to write, as data: codegen never touches the filesystem. */
5
+ export interface GeneratedFile {
6
+ /** Relative to the output directory. */
7
+ readonly path: string;
8
+ readonly contents: string;
9
+ }
10
+ /** Options for {@link generate}. */
11
+ export interface GenerateOptions {
12
+ /** The exported schema constant, e.g. `local`: one `exportNameProblem` finds nothing wrong with. */
13
+ readonly exportName: string;
14
+ /**
15
+ * The extension `index.ts` uses to import `nodes.ts`: `.js` (the default) works under
16
+ * `nodenext` and `bundler` resolution; `.ts` needs `allowImportingTsExtensions` or
17
+ * `rewriteRelativeImportExtensions`.
18
+ */
19
+ readonly importExtension?: ".js" | ".ts";
20
+ /** The command that regenerates the files, recorded in their headers. */
21
+ readonly command?: string;
22
+ }
23
+ /** The result of {@link generate}. */
24
+ export interface GenerateResult {
25
+ /** `nodes.ts` and `index.ts`. */
26
+ readonly files: readonly GeneratedFile[];
27
+ readonly diagnostics: readonly Diagnostic[];
28
+ }
29
+ /**
30
+ * Generates the files for one schema: `nodes.ts` (types only) and
31
+ * `index.ts` (the typed runtime schema). Pure and deterministic. Throws a `TypeError` for an
32
+ * export name `exportNameProblem` refuses.
33
+ */
34
+ export declare function generate(schema: Schema, options: GenerateOptions): GenerateResult;
35
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAc,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAIzE,yFAAyF;AACzF,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,oGAAoG;IACpG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACzC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAkBjF"}
@@ -0,0 +1,30 @@
1
+ import { hashSchema } from "@tscomfy/core";
2
+ import { emitSchemaModule } from "./emit-schema-module.js";
3
+ import { emitTypes } from "./emit-types.js";
4
+ /** The version written into generated headers. A test keeps it equal to package.json. */
5
+ export const CODEGEN_VERSION = "0.1.0";
6
+ /**
7
+ * Generates the files for one schema: `nodes.ts` (types only) and
8
+ * `index.ts` (the typed runtime schema). Pure and deterministic. Throws a `TypeError` for an
9
+ * export name `exportNameProblem` refuses.
10
+ */
11
+ export function generate(schema, options) {
12
+ const header = [
13
+ `Generated by @tscomfy/codegen ${CODEGEN_VERSION}. Do not edit: regenerate instead.`,
14
+ `Schema ${hashSchema(schema)}${schema.comfyVersion === undefined ? "" : `, ComfyUI ${schema.comfyVersion}`}.`,
15
+ ...(options.command === undefined ? [] : [`Regenerate with: ${options.command}`]),
16
+ ];
17
+ const types = emitTypes(schema, header);
18
+ const nodesModule = `./nodes${options.importExtension ?? ".js"}`;
19
+ return {
20
+ files: [
21
+ { path: "nodes.ts", contents: types.contents },
22
+ {
23
+ path: "index.ts",
24
+ contents: emitSchemaModule(schema, options.exportName, nodesModule, header),
25
+ },
26
+ ],
27
+ diagnostics: types.diagnostics,
28
+ };
29
+ }
30
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAe,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AA8BvC;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,OAAwB;IAC/D,MAAM,MAAM,GAAG;QACb,iCAAiC,eAAe,oCAAoC;QACpF,UAAU,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,YAAY,EAAE,GAAG;QAC7G,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KAClF,CAAC;IACF,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,UAAU,OAAO,CAAC,eAAe,IAAI,KAAK,EAAE,CAAC;IACjE,OAAO;QACL,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;YAC9C;gBACE,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC;aAC5E;SACF;QACD,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @module @tscomfy/codegen
3
+ *
4
+ * Turns a normalized tscomfy schema into generated TypeScript (node types and
5
+ * the runtime schema module) and transpiles workflows to code. Pure: returns
6
+ * files as data and never touches the filesystem.
7
+ */
8
+ export { CODEGEN_VERSION, generate, type GeneratedFile, type GenerateOptions, type GenerateResult, } from "./generate.ts";
9
+ export { exportNameProblem } from "./export-name.ts";
10
+ export { transpile, transpileNameProblem, type TranspileOptions, type TranspileResult, } from "./transpile.ts";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,eAAe,EACf,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @module @tscomfy/codegen
3
+ *
4
+ * Turns a normalized tscomfy schema into generated TypeScript (node types and
5
+ * the runtime schema module) and transpiles workflows to code. Pure: returns
6
+ * files as data and never touches the filesystem.
7
+ */
8
+ export { CODEGEN_VERSION, generate, } from "./generate.js";
9
+ export { exportNameProblem } from "./export-name.js";
10
+ export { transpile, transpileNameProblem, } from "./transpile.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,eAAe,EACf,QAAQ,GAIT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,SAAS,EACT,oBAAoB,GAGrB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /** A property key: the name itself when it is an identifier, else a string literal. */
2
+ export declare function propertyKey(name: string): string;
3
+ /**
4
+ * A string literal as oxfmt writes it: double quotes, unless the text holds more double quotes
5
+ * than single ones, then single quotes. Other escapes are `JSON.stringify`'s.
6
+ */
7
+ export declare function quote(text: string): string;
8
+ /**
9
+ * Lines of server text for a comment: split at every line terminator (which a comment can't
10
+ * hold raw without oxfmt rewriting it) and with `*\/` escaped, so no name or tooltip can close
11
+ * the comment and inject code.
12
+ */
13
+ export declare function commentLines(text: string): string[];
14
+ /** Server text for a one-line comment. */
15
+ export declare function commentText(text: string): string;
16
+ /** `//` comment lines; line terminators in the text can't end the comment early. */
17
+ export declare function headerLines(header: readonly string[]): string[];
18
+ /**
19
+ * A PascalCase identifier part from an arbitrary name: the runs of letters and digits, each
20
+ * capitalized (`sampler_name` → `SamplerName`, `easy kSampler` → `EasyKSampler`). Never empty
21
+ * and never starts with a digit.
22
+ */
23
+ export declare function pascal(name: string, fallback: string): string;
24
+ /**
25
+ * Hands out unique names in one namespace, in call order. A taken base gets the first free
26
+ * numeric suffix (`Mode`, `Mode2`, …), so names are stable for a given schema.
27
+ */
28
+ export declare class NameRegistry {
29
+ #private;
30
+ constructor(reserved?: readonly string[]);
31
+ /** A fresh name based on `base`, now taken. */
32
+ claim(base: string): string;
33
+ /** Whether `name` is taken. */
34
+ has(name: string): boolean;
35
+ }
36
+ //# sourceMappingURL=names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"AAOA,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1C;AAID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED;;;GAGG;AACH,qBAAa,YAAY;;IAKvB,YAAY,QAAQ,GAAE,SAAS,MAAM,EAAO,EAE3C;IAED,+CAA+C;IAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU1B;IAED,+BAA+B;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;CACF"}
package/dist/names.js ADDED
@@ -0,0 +1,81 @@
1
+ // Identifiers and literal text for generated code. ComfyUI names (class types, input names,
2
+ // option keys) are arbitrary strings: 328 class names in a real dump are not identifiers. They
3
+ // stay exact as property keys and are sanitized only where TypeScript needs an identifier.
4
+ // ECMAScript IdentifierName, which oxfmt leaves unquoted as a key (`café`, `日本`).
5
+ const IDENTIFIER = /^[\p{ID_Start}$_][\p{ID_Continue}$\u200c\u200d]*$/u;
6
+ /** A property key: the name itself when it is an identifier, else a string literal. */
7
+ export function propertyKey(name) {
8
+ return IDENTIFIER.test(name) ? name : quote(name);
9
+ }
10
+ /**
11
+ * A string literal as oxfmt writes it: double quotes, unless the text holds more double quotes
12
+ * than single ones, then single quotes. Other escapes are `JSON.stringify`'s.
13
+ */
14
+ export function quote(text) {
15
+ const doubled = JSON.stringify(text);
16
+ const doubles = text.split('"').length - 1;
17
+ const singles = text.split("'").length - 1;
18
+ if (doubles <= singles)
19
+ return doubled;
20
+ const inner = doubled.slice(1, -1).replaceAll('\\"', '"').replaceAll("'", "\\'");
21
+ return `'${inner}'`;
22
+ }
23
+ const LINE_TERMINATOR = /\r\n|[\r\n\u2028\u2029]/;
24
+ /**
25
+ * Lines of server text for a comment: split at every line terminator (which a comment can't
26
+ * hold raw without oxfmt rewriting it) and with `*\/` escaped, so no name or tooltip can close
27
+ * the comment and inject code.
28
+ */
29
+ export function commentLines(text) {
30
+ return text.split(LINE_TERMINATOR).map((each) => each.replaceAll("*/", "*\\/").trimEnd());
31
+ }
32
+ /** Server text for a one-line comment. */
33
+ export function commentText(text) {
34
+ return commentLines(text).join(" ");
35
+ }
36
+ /** `//` comment lines; line terminators in the text can't end the comment early. */
37
+ export function headerLines(header) {
38
+ return header.map((text) => `// ${commentText(text)}`);
39
+ }
40
+ /**
41
+ * A PascalCase identifier part from an arbitrary name: the runs of letters and digits, each
42
+ * capitalized (`sampler_name` → `SamplerName`, `easy kSampler` → `EasyKSampler`). Never empty
43
+ * and never starts with a digit.
44
+ */
45
+ export function pascal(name, fallback) {
46
+ const words = name.match(/[A-Za-z0-9]+/g) ?? [];
47
+ const joined = words.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
48
+ if (joined === "")
49
+ return fallback;
50
+ return /^[0-9]/.test(joined) ? `${fallback}${joined}` : joined;
51
+ }
52
+ /**
53
+ * Hands out unique names in one namespace, in call order. A taken base gets the first free
54
+ * numeric suffix (`Mode`, `Mode2`, …), so names are stable for a given schema.
55
+ */
56
+ export class NameRegistry {
57
+ #taken = new Set();
58
+ /** Per base, the first suffix not yet tried: names are never given back, so none below is free. */
59
+ #next = new Map();
60
+ constructor(reserved = []) {
61
+ for (const name of reserved)
62
+ this.#taken.add(name);
63
+ }
64
+ /** A fresh name based on `base`, now taken. */
65
+ claim(base) {
66
+ let suffix = this.#next.get(base) ?? 1;
67
+ let name = suffix === 1 ? base : `${base}${String(suffix)}`;
68
+ while (this.#taken.has(name)) {
69
+ suffix++;
70
+ name = `${base}${String(suffix)}`;
71
+ }
72
+ this.#next.set(base, suffix + 1);
73
+ this.#taken.add(name);
74
+ return name;
75
+ }
76
+ /** Whether `name` is taken. */
77
+ has(name) {
78
+ return this.#taken.has(name);
79
+ }
80
+ }
81
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type InputDef } from "@tscomfy/core";
2
+ /**
3
+ * Whether a property named `name` must be required: TypeScript checks an optional property
4
+ * against the `Object` member of that name, which every object literal has.
5
+ */
6
+ export declare function isObjectMember(name: string): boolean;
7
+ /**
8
+ * The field a DynamicGroup row's type requires beyond the required ones (§7.2): a row is counted
9
+ * only when one of its keys is sent, so when no field is required or has a default, the first
10
+ * one must be given, or `{}` would send no row at all.
11
+ */
12
+ export declare function forcedRowField(fields: readonly InputDef[]): InputDef | undefined;
13
+ /**
14
+ * Whether an input must be given: the backend requires it and no default fills it in.
15
+ * Autogrow and DynamicGroup are required by their minimum alone: the backend enforces it even
16
+ * when the input itself is optional. An input named after a member of `Object` is always
17
+ * required: TypeScript checks an optional property against the member every object literal
18
+ * has (`constructor: Function`), so leaving it out would fail to compile.
19
+ */
20
+ export declare function isRequired(input: InputDef): boolean;
21
+ /** Whether the exporter sends a value for the input when none is given. */
22
+ export declare function hasDefault(input: InputDef): boolean;
23
+ //# sourceMappingURL=rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAaD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,GAAG,SAAS,CAGhF;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAsBnD;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAkBnD"}