@distilled.cloud/core 1.0.0-rc.2 → 1.0.0-rc.3

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.
@@ -1,3 +1,6 @@
1
+ import { Effect } from "effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
1
4
  import { type SdkSpec } from "./generator.ts";
2
5
  export interface GeneratorCliOptions {
3
6
  /** Command description shown in --help. */
@@ -10,6 +13,51 @@ export interface GeneratorCliOptions {
10
13
  readonly outDir?: string;
11
14
  /** Model files to skip (e.g. a shared protocols model). */
12
15
  readonly excludeModel?: (file: string) => boolean;
16
+ /**
17
+ * Where the models are, when they aren't a flat directory of `<resource>.json`.
18
+ * AWS vendors Amazon's own repo, whose models sit at
19
+ * `models/<service>/service/<version>/<service>-<version>.json`.
20
+ *
21
+ * Returns the model files to compile; manual specs are merged in after,
22
+ * as usual.
23
+ */
24
+ readonly discoverModels?: (ctx: {
25
+ readonly smithyDir: string;
26
+ }) => Effect.Effect<ReadonlyArray<{
27
+ readonly file: string;
28
+ readonly dir: string;
29
+ }>, never, FileSystem.FileSystem | Path.Path>;
30
+ /**
31
+ * Side effects to run before generating — e.g. AWS copies `partitions.json`
32
+ * out of the smithy submodule, runtime data its endpoint resolver reads.
33
+ */
34
+ readonly prepare?: (ctx: {
35
+ readonly root: string;
36
+ readonly outDir: string;
37
+ }) => Effect.Effect<void, never, FileSystem.FileSystem | Path.Path>;
38
+ /**
39
+ * The output module's name, when it isn't the model's filename. AWS names
40
+ * modules after the service's `aws.api#service` sdkId (`amazon-s3.json` →
41
+ * `s3.ts`), so the public surface reads `AWS.S3.getObject`.
42
+ */
43
+ readonly resourceName?: (ctx: {
44
+ readonly model: any;
45
+ readonly file: string;
46
+ }) => string;
47
+ /** Barrel export name for a resource. Default: the resource name itself. */
48
+ readonly barrelExportName?: (resource: string) => string;
49
+ /**
50
+ * The closing pass over the output directory. Defaults to formatting;
51
+ * AWS lint-fixes first (see `codegen/format.ts`).
52
+ */
53
+ readonly finalize?: (dir: string) => Effect.Effect<void>;
54
+ /**
55
+ * Keep generating after a model fails, instead of stopping at the first.
56
+ * AWS compiles 430 services in one run, and one broken model shouldn't
57
+ * hide the state of the other 429. The run still FAILS at the end — the
58
+ * failures are reported together rather than swallowed.
59
+ */
60
+ readonly continueOnModelError?: boolean;
13
61
  /** Directory of hand-authored models merged after the generated ones. */
14
62
  readonly manualSpecsDir?: string;
15
63
  /** RFC-6902 patch chain root. Default `patches`; `false` disables. */
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1E,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;CACxC;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,YAAa,mBAAmB,KAAG,IAoN9D,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"AAcA,OAAO,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAUpC,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE;QAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,KAAK,MAAM,CAAC,MAAM,CACjB,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,EAC9D,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAClC,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE;QAC5B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,KAAK,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1E,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;CACxC;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,YAAa,mBAAmB,KAAG,IAoQ9D,CAAC"}
@@ -36,12 +36,15 @@ export const runGeneratorCli = (options) => {
36
36
  yield* Console.log("⚙️ generate");
37
37
  yield* Console.log(` Smithy: ${smithyDir}`);
38
38
  yield* Console.log(` Output: ${outDir}`);
39
+ yield* options.prepare?.({ root, outDir }) ?? Effect.void;
39
40
  // Generated models plus optional manual-specs (hand-authored models
40
41
  // for APIs the provider's spec source doesn't cover). A manual model
41
42
  // must not shadow a generated one.
42
- const generated = (yield* fs.readDirectory(smithyDir))
43
- .filter((f) => f.endsWith(".json") && !(options.excludeModel?.(f) ?? false))
44
- .map((f) => ({ file: f, dir: smithyDir }));
43
+ const generated = options.discoverModels
44
+ ? yield* options.discoverModels({ smithyDir })
45
+ : (yield* fs.readDirectory(smithyDir))
46
+ .filter((f) => f.endsWith(".json") && !(options.excludeModel?.(f) ?? false))
47
+ .map((f) => ({ file: f, dir: smithyDir }));
45
48
  const manualDir = options.manualSpecsDir
46
49
  ? path.resolve(root, options.manualSpecsDir)
47
50
  : undefined;
@@ -58,6 +61,7 @@ export const runGeneratorCli = (options) => {
58
61
  const entries = [...generated, ...manual].sort((a, b) => a.file.localeCompare(b.file));
59
62
  yield* fs.makeDirectory(outDir, { recursive: true });
60
63
  const written = [];
64
+ const failedModels = [];
61
65
  let totalOps = 0;
62
66
  let totalPatches = 0;
63
67
  let staleOps = 0;
@@ -76,10 +80,13 @@ export const runGeneratorCli = (options) => {
76
80
  }
77
81
  }
78
82
  for (const { file, dir } of entries) {
79
- const resource = file.replace(/\.json$/, "");
83
+ const model = JSON.parse(yield* fs.readFileString(path.join(dir, file)));
84
+ // The module's name — the model's filename unless the provider
85
+ // derives it from the model itself (AWS: the service's sdkId).
86
+ const resource = options.resourceName?.({ model, file }) ??
87
+ file.replace(/\.json$/, "");
80
88
  if (config.resource && resource !== config.resource)
81
89
  continue;
82
- const model = JSON.parse(yield* fs.readFileString(path.join(dir, file)));
83
90
  // Apply the RFC-6902 patch chain before generating. Hand-written
84
91
  // *.manual.json patches apply after the generated ones — they
85
92
  // usually target post-rename shape names.
@@ -114,7 +121,22 @@ export const runGeneratorCli = (options) => {
114
121
  if (note)
115
122
  yield* Console.log(` ${note}`);
116
123
  }
117
- const { code, operations } = generateService(model, options.spec(model));
124
+ // `generateService` and the provider spec are synchronous and
125
+ // throw; with continueOnModelError the throw is recorded and the
126
+ // run moves on, so one broken model doesn't hide the state of
127
+ // every model after it. The run still fails at the end.
128
+ let generated;
129
+ try {
130
+ generated = generateService(model, options.spec(model));
131
+ }
132
+ catch (e) {
133
+ if (!options.continueOnModelError)
134
+ throw e;
135
+ failedModels.push(`${resource}: ${e instanceof Error ? e.message : String(e)}`);
136
+ yield* Console.error(`❌ ${resource}`);
137
+ continue;
138
+ }
139
+ const { code, operations } = generated;
118
140
  if (operations === 0)
119
141
  continue;
120
142
  yield* fs.writeFileString(path.join(outDir, `${resource}.ts`), code);
@@ -140,11 +162,17 @@ export const runGeneratorCli = (options) => {
140
162
  // resource without removing anything.
141
163
  const barrelPath = path.join(outDir, "index.ts");
142
164
  const filtered = config.resource !== "";
143
- let resources = written;
165
+ // Sorted, not in generation order: a provider that discovers models
166
+ // in some other order (AWS walks Amazon's directory tree) would
167
+ // otherwise reshuffle the barrel on every run.
168
+ let resources = [...written].sort((a, b) => `${a}.json`.localeCompare(`${b}.json`));
144
169
  if (filtered && (yield* fs.exists(barrelPath))) {
170
+ // Recover the RESOURCE from each export line's path, not its name:
171
+ // the two differ when barrelExportName renames (AWS exports
172
+ // `S3` from `./s3.ts`).
145
173
  const existing = (yield* fs.readFileString(barrelPath))
146
174
  .split("\n")
147
- .map((line) => /^export \* as (\S+) from/.exec(line)?.[1])
175
+ .map((line) => /^export \* as \S+ from "\.\/(.+)\.ts";/.exec(line)?.[1])
148
176
  .filter((name) => name !== undefined);
149
177
  // Ordered exactly as a full run orders it: by MODEL FILENAME, so
150
178
  // the `.json` takes part in the collation (`ai_gateway.json` sorts
@@ -152,13 +180,25 @@ export const runGeneratorCli = (options) => {
152
180
  // Otherwise a filtered run reshuffles the barrel into diff noise.
153
181
  resources = [...new Set([...existing, ...written])].sort((a, b) => `${a}.json`.localeCompare(`${b}.json`));
154
182
  }
155
- yield* fs.writeFileString(barrelPath, barrel(`// AUTO-GENERATED by scripts/generate.ts. Do not edit.\n`, resources.map((r) => ({ name: r, path: `./${r}.ts` }))));
156
- yield* formatGenerated(outDir);
183
+ yield* fs.writeFileString(barrelPath, barrel(`// AUTO-GENERATED by scripts/generate.ts. Do not edit.\n`, resources.map((r) => ({
184
+ name: options.barrelExportName?.(r) ?? r,
185
+ path: `./${r}.ts`,
186
+ }))));
187
+ yield* (options.finalize ?? formatGenerated)(outDir);
157
188
  yield* Console.log(`\n✅ Generated ${totalOps} operations across ${written.length} resource modules` +
158
189
  (totalPatches
159
190
  ? ` (${totalPatches} patch files applied${staleOps ? `, ${staleOps} stale op(s) skipped` : ""}).`
160
191
  : "."));
161
192
  yield* Console.log(` ${path.join(outDir, "index.ts")}`);
193
+ // Models that failed under continueOnModelError. Reported together,
194
+ // at the end, and the run FAILS — a generate that couldn't produce
195
+ // a module must not exit 0 with the failure buried in the log.
196
+ if (failedModels.length) {
197
+ yield* Console.error(`\n❌ ${failedModels.length} model(s) failed to generate:`);
198
+ for (const f of failedModels)
199
+ yield* Console.error(` ${f}`);
200
+ return yield* Effect.die(new Error(`${failedModels.length} model(s) failed to generate`));
201
+ }
162
202
  })).pipe(Command.withDescription(options.description));
163
203
  BunRuntime.runMain(Effect.provide(Command.run(command, { version: "1.0.0" }), BunServices.layer));
164
204
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AA4B/D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAA4B,EAAQ,EAAE;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAC1B,UAAU,EACV;QACE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAChC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC,EACzD,IAAI,CAAC,eAAe,CAAC,iCAAiC,CAAC,CACxD;QACD,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,EAClD,IAAI,CAAC,eAAe,CAAC,gDAAgD,CAAC,CACvE;QACD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CACpC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EACpB,IAAI,CAAC,eAAe,CAAC,uCAAuC,CAAC,CAC9D;KACF,EACD,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAE9C,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;QAC9C,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;QAE3C,oEAAoE;QACpE,qEAAqE;QACrE,mCAAmC;QACnC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aACnD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CACpE;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc;YACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,MAAM,GACV,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;iBACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CACP,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,kDAAkD,CACtF,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACtD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;QAEF,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,oEAAoE;QACpE,sCAAsC;QACtC,MAAM,SAAS,GACb,OAAO,CAAC,UAAU,KAAK,KAAK;YAC1B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;QACvD,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAClD,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CACjB,eAAe,GAAG,uCAAuC,CAC1D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ;gBAAE,SAAS;YAE9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAC/C,CAAC;YAEF,iEAAiE;YACjE,8DAA8D;YAC9D,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;qBACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;qBAClC,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;oBAChC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAC7D,CAAC;gBACJ,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CACrC,CAAC;oBACf,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;wBAC3C,IAAI,CAAC;4BACH,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;wBACjC,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACvD,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;gCAC5B,QAAQ,EAAE,CAAC;gCACX,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CACjB,iBAAiB,QAAQ,IAAI,EAAE,KAAK,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,GAAG,CAClE,CAAC;4BACJ,CAAC;iCAAM,CAAC;gCACN,UAAU,CAAC,IAAI,CACb,GAAG,QAAQ,IAAI,EAAE,KAAK,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,MAAM,GAAG,EAAE,CAC5D,CAAC;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACrD,IAAI,IAAI;oBAAE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,eAAe,CAC1C,KAAK,EACL,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CACpB,CAAC;YACF,IAAI,UAAU,KAAK,CAAC;gBAAE,SAAS;YAE/B,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,QAAQ,IAAI,UAAU,CAAC;QACzB,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CACP,GAAG,UAAU,CAAC,MAAM,oDAAoD,CACzE,CACF,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,EAAE;QACF,8DAA8D;QAC9D,kEAAkE;QAClE,EAAE;QACF,oEAAoE;QACpE,mEAAmE;QACnE,oEAAoE;QACpE,mEAAmE;QACnE,qEAAqE;QACrE,sCAAsC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC;QACxC,IAAI,SAAS,GAAG,OAAO,CAAC;QACxB,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;iBACpD,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACxD,iEAAiE;YACjE,mEAAmE;YACnE,8DAA8D;YAC9D,kEAAkE;YAClE,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAChE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CACvC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CACvB,UAAU,EACV,MAAM,CACJ,0DAA0D,EAC1D,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CACvD,CACF,CAAC;QAEF,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE/B,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAChB,iBAAiB,QAAQ,sBAAsB,OAAO,CAAC,MAAM,mBAAmB;YAC9E,CAAC,YAAY;gBACX,CAAC,CAAC,KAAK,YAAY,uBAAuB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI;gBACjG,CAAC,CAAC,GAAG,CAAC,CACX,CAAC;QACF,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CACL,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAErD,UAAU,CAAC,OAAO,CAChB,MAAM,CAAC,OAAO,CACZ,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAC1C,WAAW,CAAC,KAAK,CAClB,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAEL,KAAK,EAGL,CAAC,EACD,KAAK,EACL,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAGL,eAAe,EAGf,cAAc,EAGf,MAAM,WAAW,CAAC;AAOnB,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,WAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS;AACvC,+EAA+E;QACxE,SAAS,MAAM,EAAE,KACvB,MAAM,EAgCR,CAAC;AAMF,gFAAgF;AAChF,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,MAAM,GACN,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACtC,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,OAAO;IACtB,oFAAoF;IACpF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,uEAAuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,QAAQ,KACb,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEtB;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;QACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB;;;;;WAKG;QACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC,CAAC;IACH;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAClB,OAAO,EAAE,aAAa,KACnB,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C,kEAAkE;IAClE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,MAAM,EAAE,CAAC;IAC3D,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,MAAM,EAAE,CAAC;IACtD,sEAAsE;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,CAAC,EAAE,aAAa,EAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KAC9B,MAAM,GAAG,SAAS,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE;QAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;KACzC,KAAK,MAAM,EAAE,CAAC;IAEf;;;;;;;OAOG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC1E;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAC9B,KAAK,EAAE,GAAG,EACV,EAAE,EAAE,OAAO,KACR,MAAM,GAAG,SAAS,CAAC;IAExB;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE;QAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;QACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IAEH;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE;QAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;QAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;QAC1D,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;QAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,aAAa,EAAE,CAAC;KAC/C,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC;IAE3B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC,uCAAuC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;QAClD,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;KAC5C,KAAK,MAAM,EAAE,CAAC;IAEf;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB;;;;WAIG;QACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE;YACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;YAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SACvB,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B;;;;WAIG;QACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QACvE,wEAAwE;QACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;QAC1D,2EAA2E;QAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,CACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;KAC5C,CAAC;IAEF;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE;QACvB,2DAA2D;QAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,uEAAuE;QACvE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,iEAAiE;QACjE,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;QAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,qDAAqD;QACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB;;;WAGG;QACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,EAAE,CAAC;KACzD,CAAC;IACF,iDAAiD;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,CAAC;IAEpD;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE;QACtB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;KACrB,KAAK,MAAM,CAAC;IAEb,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAEhD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,KAAK,MAAM,EAAE,CAAC;CAC3E;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,eAAO,MAAM,eAAe,UACnB,GAAG,QACJ,OAAO,KACZ,gBA4rBF,CAAC;AAIF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
@@ -117,8 +117,25 @@ export const generateService = (model, spec) => {
117
117
  const reachable = reachableFrom(shapes, roots, shapeDeps);
118
118
  const order = topoOrder(shapes, reachable, shapeDeps);
119
119
  const indexOf = orderIndex(order);
120
- const ref = makeSchemaRef(prelude, indexOf);
121
- const tsRef = makeTsRef(tsPrelude);
120
+ /**
121
+ * Shape id → the id whose emitted body it shares.
122
+ *
123
+ * Structural aliasing (see the struct emission below) has to cascade: a
124
+ * parent only matches another parent if their MEMBERS render identically,
125
+ * and a member renders as its target's name. So every reference resolves
126
+ * through this map first — once `…ItemGroupRuleGroup` is aliased onto a
127
+ * canonical shape, the parents referencing it start rendering the same
128
+ * text and collapse in turn.
129
+ *
130
+ * Filled in topological order, so a canonical target is always a shape
131
+ * that was already emitted — a back-reference, never a forward one.
132
+ */
133
+ const canonicalId = new Map();
134
+ const canon = (target) => canonicalId.get(target) ?? target;
135
+ const rawRef = makeSchemaRef(prelude, indexOf);
136
+ const rawTsRef = makeTsRef(tsPrelude);
137
+ const ref = (target, selfIdx) => rawRef(canon(target), selfIdx);
138
+ const tsRef = (target) => rawTsRef(canon(target));
122
139
  // Direction classification for enum openness. Enum ALIASES are emitted
123
140
  // CLOSED (exhaustively matchable on reads); request-reachable shapes
124
141
  // re-open enum references inline (`X | (string & {})`) so consumers can
@@ -154,7 +171,8 @@ export const generateService = (model, spec) => {
154
171
  * pure response/error shapes stay the plain closed alias, and so do
155
172
  * union-arm discriminant literals.
156
173
  */
157
- const tsRefAt = (target, ownerId) => {
174
+ const tsRefAt = (rawTarget, ownerId) => {
175
+ const target = canon(rawTarget);
158
176
  const base = tsRef(target);
159
177
  if (!requestReachable.has(ownerId))
160
178
  return base;
@@ -325,6 +343,13 @@ export const generateService = (model, spec) => {
325
343
  }
326
344
  // 4. Error classes from the operations' errors lists.
327
345
  const out = [];
346
+ // Emitted struct body → the name that owns it, for structural aliasing.
347
+ // Keyed on the emitted TEXT, so two shapes collapse only when what they
348
+ // would emit is byte-identical — including member names, targets, docs and
349
+ // pipes. References are already resolved to names at this point, so a
350
+ // difference anywhere in the tree shows up as different text.
351
+ const structBodies = new Map();
352
+ let aliased = 0;
328
353
  // Set when any error carries CATEGORY_TRAIT, so the header only imports
329
354
  // the category module when something actually uses it.
330
355
  let usesCategories = false;
@@ -438,7 +463,6 @@ export const generateService = (model, spec) => {
438
463
  fields.push(...inject.interfaceLines);
439
464
  members.push(inject.structLine);
440
465
  }
441
- out.push(interfaceDecl(name, fields));
442
466
  const struct = members.length
443
467
  ? `S.Struct({\n${members.join("\n")}\n})`
444
468
  : `S.Struct({})`;
@@ -456,13 +480,42 @@ export const generateService = (model, spec) => {
456
480
  : []),
457
481
  ];
458
482
  const tail = pipes.map((p) => `.pipe(${p})`).join("");
459
- out.push(suspendConst({
460
- name,
461
- pure,
462
- multiline: true,
463
- annotateIdentifier: true,
464
- expr: `${struct}${tail}`,
465
- }));
483
+ // Shapes whose emitted body is byte-identical are one shape wearing
484
+ // many names. The docs pipelines generate a fresh copy of every nested
485
+ // shape per operation, so cloudflare's zero_trust carries 374 copies of
486
+ // `{ group?: unknown }` — one per operation x application type x
487
+ // include/exclude/require — and 72% of its 16,800 structures are
488
+ // redundant that way.
489
+ //
490
+ // Emit the body once and alias the rest to it. The public name is kept,
491
+ // so nothing about the surface changes; only the duplicate bodies go.
492
+ // Operation I/O is excluded: those carry the operation's Http trait and
493
+ // must never be merged onto one another.
494
+ const bodyKey = `${JSON.stringify(fields)}|${struct}${tail}`;
495
+ const canonical = structCtx.isOpIo
496
+ ? undefined
497
+ : structBodies.get(bodyKey);
498
+ if (canonical !== undefined) {
499
+ out.push(`export type ${name} = ${canonical.name};`);
500
+ out.push(`export const ${name} = ${canonical.name};\n`);
501
+ // Later shapes referencing this one now render the canonical name,
502
+ // which is what lets their bodies collapse too.
503
+ canonicalId.set(id, canonical.id);
504
+ aliased++;
505
+ }
506
+ else {
507
+ if (!structCtx.isOpIo) {
508
+ structBodies.set(bodyKey, { id, name });
509
+ }
510
+ out.push(interfaceDecl(name, fields));
511
+ out.push(suspendConst({
512
+ name,
513
+ pure,
514
+ multiline: true,
515
+ annotateIdentifier: true,
516
+ expr: `${struct}${tail}`,
517
+ }));
518
+ }
466
519
  }
467
520
  else if (d.type === "list") {
468
521
  out.push(`export type ${name} = Array<${tsRefAt(d.member.target, id)}>;`);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@distilled.cloud/core",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0-rc.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/alchemy-run/distilled",
@@ -37,6 +37,52 @@ export interface GeneratorCliOptions {
37
37
  readonly outDir?: string;
38
38
  /** Model files to skip (e.g. a shared protocols model). */
39
39
  readonly excludeModel?: (file: string) => boolean;
40
+ /**
41
+ * Where the models are, when they aren't a flat directory of `<resource>.json`.
42
+ * AWS vendors Amazon's own repo, whose models sit at
43
+ * `models/<service>/service/<version>/<service>-<version>.json`.
44
+ *
45
+ * Returns the model files to compile; manual specs are merged in after,
46
+ * as usual.
47
+ */
48
+ readonly discoverModels?: (ctx: {
49
+ readonly smithyDir: string;
50
+ }) => Effect.Effect<
51
+ ReadonlyArray<{ readonly file: string; readonly dir: string }>,
52
+ never,
53
+ FileSystem.FileSystem | Path.Path
54
+ >;
55
+ /**
56
+ * Side effects to run before generating — e.g. AWS copies `partitions.json`
57
+ * out of the smithy submodule, runtime data its endpoint resolver reads.
58
+ */
59
+ readonly prepare?: (ctx: {
60
+ readonly root: string;
61
+ readonly outDir: string;
62
+ }) => Effect.Effect<void, never, FileSystem.FileSystem | Path.Path>;
63
+ /**
64
+ * The output module's name, when it isn't the model's filename. AWS names
65
+ * modules after the service's `aws.api#service` sdkId (`amazon-s3.json` →
66
+ * `s3.ts`), so the public surface reads `AWS.S3.getObject`.
67
+ */
68
+ readonly resourceName?: (ctx: {
69
+ readonly model: any;
70
+ readonly file: string;
71
+ }) => string;
72
+ /** Barrel export name for a resource. Default: the resource name itself. */
73
+ readonly barrelExportName?: (resource: string) => string;
74
+ /**
75
+ * The closing pass over the output directory. Defaults to formatting;
76
+ * AWS lint-fixes first (see `codegen/format.ts`).
77
+ */
78
+ readonly finalize?: (dir: string) => Effect.Effect<void>;
79
+ /**
80
+ * Keep generating after a model fails, instead of stopping at the first.
81
+ * AWS compiles 430 services in one run, and one broken model shouldn't
82
+ * hide the state of the other 429. The run still FAILS at the end — the
83
+ * failures are reported together rather than swallowed.
84
+ */
85
+ readonly continueOnModelError?: boolean;
40
86
  /** Directory of hand-authored models merged after the generated ones. */
41
87
  readonly manualSpecsDir?: string;
42
88
  /** RFC-6902 patch chain root. Default `patches`; `false` disables. */
@@ -82,14 +128,19 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
82
128
  yield* Console.log(` Smithy: ${smithyDir}`);
83
129
  yield* Console.log(` Output: ${outDir}`);
84
130
 
131
+ yield* options.prepare?.({ root, outDir }) ?? Effect.void;
132
+
85
133
  // Generated models plus optional manual-specs (hand-authored models
86
134
  // for APIs the provider's spec source doesn't cover). A manual model
87
135
  // must not shadow a generated one.
88
- const generated = (yield* fs.readDirectory(smithyDir))
89
- .filter(
90
- (f) => f.endsWith(".json") && !(options.excludeModel?.(f) ?? false),
91
- )
92
- .map((f) => ({ file: f, dir: smithyDir }));
136
+ const generated = options.discoverModels
137
+ ? yield* options.discoverModels({ smithyDir })
138
+ : (yield* fs.readDirectory(smithyDir))
139
+ .filter(
140
+ (f) =>
141
+ f.endsWith(".json") && !(options.excludeModel?.(f) ?? false),
142
+ )
143
+ .map((f) => ({ file: f, dir: smithyDir }));
93
144
  const manualDir = options.manualSpecsDir
94
145
  ? path.resolve(root, options.manualSpecsDir)
95
146
  : undefined;
@@ -115,6 +166,7 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
115
166
  yield* fs.makeDirectory(outDir, { recursive: true });
116
167
 
117
168
  const written: string[] = [];
169
+ const failedModels: string[] = [];
118
170
  let totalOps = 0;
119
171
  let totalPatches = 0;
120
172
  let staleOps = 0;
@@ -140,12 +192,15 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
140
192
  }
141
193
 
142
194
  for (const { file, dir } of entries) {
143
- const resource = file.replace(/\.json$/, "");
144
- if (config.resource && resource !== config.resource) continue;
145
-
146
195
  const model = JSON.parse(
147
196
  yield* fs.readFileString(path.join(dir, file)),
148
197
  );
198
+ // The module's name — the model's filename unless the provider
199
+ // derives it from the model itself (AWS: the service's sdkId).
200
+ const resource =
201
+ options.resourceName?.({ model, file }) ??
202
+ file.replace(/\.json$/, "");
203
+ if (config.resource && resource !== config.resource) continue;
149
204
 
150
205
  // Apply the RFC-6902 patch chain before generating. Hand-written
151
206
  // *.manual.json patches apply after the generated ones — they
@@ -189,10 +244,22 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
189
244
  if (note) yield* Console.log(` ${note}`);
190
245
  }
191
246
 
192
- const { code, operations } = generateService(
193
- model,
194
- options.spec(model),
195
- );
247
+ // `generateService` and the provider spec are synchronous and
248
+ // throw; with continueOnModelError the throw is recorded and the
249
+ // run moves on, so one broken model doesn't hide the state of
250
+ // every model after it. The run still fails at the end.
251
+ let generated;
252
+ try {
253
+ generated = generateService(model, options.spec(model));
254
+ } catch (e) {
255
+ if (!options.continueOnModelError) throw e;
256
+ failedModels.push(
257
+ `${resource}: ${e instanceof Error ? e.message : String(e)}`,
258
+ );
259
+ yield* Console.error(`❌ ${resource}`);
260
+ continue;
261
+ }
262
+ const { code, operations } = generated;
196
263
  if (operations === 0) continue;
197
264
 
198
265
  yield* fs.writeFileString(path.join(outDir, `${resource}.ts`), code);
@@ -224,11 +291,22 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
224
291
  // resource without removing anything.
225
292
  const barrelPath = path.join(outDir, "index.ts");
226
293
  const filtered = config.resource !== "";
227
- let resources = written;
294
+ // Sorted, not in generation order: a provider that discovers models
295
+ // in some other order (AWS walks Amazon's directory tree) would
296
+ // otherwise reshuffle the barrel on every run.
297
+ let resources = [...written].sort((a, b) =>
298
+ `${a}.json`.localeCompare(`${b}.json`),
299
+ );
228
300
  if (filtered && (yield* fs.exists(barrelPath))) {
301
+ // Recover the RESOURCE from each export line's path, not its name:
302
+ // the two differ when barrelExportName renames (AWS exports
303
+ // `S3` from `./s3.ts`).
229
304
  const existing = (yield* fs.readFileString(barrelPath))
230
305
  .split("\n")
231
- .map((line) => /^export \* as (\S+) from/.exec(line)?.[1])
306
+ .map(
307
+ (line) =>
308
+ /^export \* as \S+ from "\.\/(.+)\.ts";/.exec(line)?.[1],
309
+ )
232
310
  .filter((name): name is string => name !== undefined);
233
311
  // Ordered exactly as a full run orders it: by MODEL FILENAME, so
234
312
  // the `.json` takes part in the collation (`ai_gateway.json` sorts
@@ -243,11 +321,14 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
243
321
  barrelPath,
244
322
  barrel(
245
323
  `// AUTO-GENERATED by scripts/generate.ts. Do not edit.\n`,
246
- resources.map((r) => ({ name: r, path: `./${r}.ts` })),
324
+ resources.map((r) => ({
325
+ name: options.barrelExportName?.(r) ?? r,
326
+ path: `./${r}.ts`,
327
+ })),
247
328
  ),
248
329
  );
249
330
 
250
- yield* formatGenerated(outDir);
331
+ yield* (options.finalize ?? formatGenerated)(outDir);
251
332
 
252
333
  yield* Console.log(
253
334
  `\n✅ Generated ${totalOps} operations across ${written.length} resource modules` +
@@ -256,6 +337,19 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
256
337
  : "."),
257
338
  );
258
339
  yield* Console.log(` ${path.join(outDir, "index.ts")}`);
340
+
341
+ // Models that failed under continueOnModelError. Reported together,
342
+ // at the end, and the run FAILS — a generate that couldn't produce
343
+ // a module must not exit 0 with the failure buried in the log.
344
+ if (failedModels.length) {
345
+ yield* Console.error(
346
+ `\n❌ ${failedModels.length} model(s) failed to generate:`,
347
+ );
348
+ for (const f of failedModels) yield* Console.error(` ${f}`);
349
+ return yield* Effect.die(
350
+ new Error(`${failedModels.length} model(s) failed to generate`),
351
+ );
352
+ }
259
353
  }),
260
354
  ).pipe(Command.withDescription(options.description));
261
355
 
@@ -487,8 +487,27 @@ export const generateService = (
487
487
  const order = topoOrder(shapes, reachable, shapeDeps);
488
488
  const indexOf = orderIndex(order);
489
489
 
490
- const ref = makeSchemaRef(prelude, indexOf);
491
- const tsRef = makeTsRef(tsPrelude);
490
+ /**
491
+ * Shape id → the id whose emitted body it shares.
492
+ *
493
+ * Structural aliasing (see the struct emission below) has to cascade: a
494
+ * parent only matches another parent if their MEMBERS render identically,
495
+ * and a member renders as its target's name. So every reference resolves
496
+ * through this map first — once `…ItemGroupRuleGroup` is aliased onto a
497
+ * canonical shape, the parents referencing it start rendering the same
498
+ * text and collapse in turn.
499
+ *
500
+ * Filled in topological order, so a canonical target is always a shape
501
+ * that was already emitted — a back-reference, never a forward one.
502
+ */
503
+ const canonicalId = new Map<string, string>();
504
+ const canon = (target: string): string => canonicalId.get(target) ?? target;
505
+
506
+ const rawRef = makeSchemaRef(prelude, indexOf);
507
+ const rawTsRef = makeTsRef(tsPrelude);
508
+ const ref = (target: string, selfIdx: number) =>
509
+ rawRef(canon(target), selfIdx);
510
+ const tsRef = (target: string) => rawTsRef(canon(target));
492
511
 
493
512
  // Direction classification for enum openness. Enum ALIASES are emitted
494
513
  // CLOSED (exhaustively matchable on reads); request-reachable shapes
@@ -529,7 +548,8 @@ export const generateService = (
529
548
  * pure response/error shapes stay the plain closed alias, and so do
530
549
  * union-arm discriminant literals.
531
550
  */
532
- const tsRefAt = (target: string, ownerId: string): string => {
551
+ const tsRefAt = (rawTarget: string, ownerId: string): string => {
552
+ const target = canon(rawTarget);
533
553
  const base = tsRef(target);
534
554
  if (!requestReachable.has(ownerId)) return base;
535
555
  if (discriminantEnums.has(target)) return base;
@@ -731,6 +751,13 @@ export const generateService = (
731
751
 
732
752
  // 4. Error classes from the operations' errors lists.
733
753
  const out: string[] = [];
754
+ // Emitted struct body → the name that owns it, for structural aliasing.
755
+ // Keyed on the emitted TEXT, so two shapes collapse only when what they
756
+ // would emit is byte-identical — including member names, targets, docs and
757
+ // pipes. References are already resolved to names at this point, so a
758
+ // difference anywhere in the tree shows up as different text.
759
+ const structBodies = new Map<string, { id: string; name: string }>();
760
+ let aliased = 0;
734
761
  // Set when any error carries CATEGORY_TRAIT, so the header only imports
735
762
  // the category module when something actually uses it.
736
763
  let usesCategories = false;
@@ -866,7 +893,6 @@ export const generateService = (
866
893
  fields.push(...inject.interfaceLines);
867
894
  members.push(inject.structLine);
868
895
  }
869
- out.push(interfaceDecl(name, fields));
870
896
  const struct = members.length
871
897
  ? `S.Struct({\n${members.join("\n")}\n})`
872
898
  : `S.Struct({})`;
@@ -884,15 +910,44 @@ export const generateService = (
884
910
  : []),
885
911
  ];
886
912
  const tail = pipes.map((p) => `.pipe(${p})`).join("");
887
- out.push(
888
- suspendConst({
889
- name,
890
- pure,
891
- multiline: true,
892
- annotateIdentifier: true,
893
- expr: `${struct}${tail}`,
894
- }),
895
- );
913
+
914
+ // Shapes whose emitted body is byte-identical are one shape wearing
915
+ // many names. The docs pipelines generate a fresh copy of every nested
916
+ // shape per operation, so cloudflare's zero_trust carries 374 copies of
917
+ // `{ group?: unknown }` — one per operation x application type x
918
+ // include/exclude/require — and 72% of its 16,800 structures are
919
+ // redundant that way.
920
+ //
921
+ // Emit the body once and alias the rest to it. The public name is kept,
922
+ // so nothing about the surface changes; only the duplicate bodies go.
923
+ // Operation I/O is excluded: those carry the operation's Http trait and
924
+ // must never be merged onto one another.
925
+ const bodyKey = `${JSON.stringify(fields)}|${struct}${tail}`;
926
+ const canonical = structCtx.isOpIo
927
+ ? undefined
928
+ : structBodies.get(bodyKey);
929
+ if (canonical !== undefined) {
930
+ out.push(`export type ${name} = ${canonical.name};`);
931
+ out.push(`export const ${name} = ${canonical.name};\n`);
932
+ // Later shapes referencing this one now render the canonical name,
933
+ // which is what lets their bodies collapse too.
934
+ canonicalId.set(id, canonical.id);
935
+ aliased++;
936
+ } else {
937
+ if (!structCtx.isOpIo) {
938
+ structBodies.set(bodyKey, { id, name });
939
+ }
940
+ out.push(interfaceDecl(name, fields));
941
+ out.push(
942
+ suspendConst({
943
+ name,
944
+ pure,
945
+ multiline: true,
946
+ annotateIdentifier: true,
947
+ expr: `${struct}${tail}`,
948
+ }),
949
+ );
950
+ }
896
951
  } else if (d.type === "list") {
897
952
  out.push(`export type ${name} = Array<${tsRefAt(d.member.target, id)}>;`);
898
953
  out.push(