@distilled.cloud/core 1.0.0-rc.7 → 1.0.0-rc.9

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 (57) hide show
  1. package/LICENSE +201 -0
  2. package/lib/codegen/cli.d.ts +8 -6
  3. package/lib/codegen/cli.d.ts.map +1 -1
  4. package/lib/codegen/cli.js +6 -62
  5. package/lib/codegen/cli.js.map +1 -1
  6. package/lib/codegen/graphql.d.ts +6 -0
  7. package/lib/codegen/graphql.d.ts.map +1 -1
  8. package/lib/codegen/graphql.js +14 -4
  9. package/lib/codegen/graphql.js.map +1 -1
  10. package/lib/codegen/openapi-cli.d.ts +17 -3
  11. package/lib/codegen/openapi-cli.d.ts.map +1 -1
  12. package/lib/codegen/openapi-cli.js +50 -48
  13. package/lib/codegen/openapi-cli.js.map +1 -1
  14. package/lib/codegen/openapi.d.ts +27 -1
  15. package/lib/codegen/openapi.d.ts.map +1 -1
  16. package/lib/codegen/openapi.js +81 -3
  17. package/lib/codegen/openapi.js.map +1 -1
  18. package/lib/codegen/patches.d.ts +65 -0
  19. package/lib/codegen/patches.d.ts.map +1 -0
  20. package/lib/codegen/patches.js +236 -0
  21. package/lib/codegen/patches.js.map +1 -0
  22. package/lib/codegen/patches.test.d.ts +2 -0
  23. package/lib/codegen/patches.test.d.ts.map +1 -0
  24. package/lib/codegen/patches.test.js +105 -0
  25. package/lib/codegen/patches.test.js.map +1 -0
  26. package/lib/codegen/proto.d.ts +121 -0
  27. package/lib/codegen/proto.d.ts.map +1 -0
  28. package/lib/codegen/proto.js +962 -0
  29. package/lib/codegen/proto.js.map +1 -0
  30. package/lib/codegen/rewrite-operation-ids.d.ts +131 -0
  31. package/lib/codegen/rewrite-operation-ids.d.ts.map +1 -0
  32. package/lib/codegen/rewrite-operation-ids.js +1079 -0
  33. package/lib/codegen/rewrite-operation-ids.js.map +1 -0
  34. package/lib/codegen/rewrite-operation-ids.test.d.ts +2 -0
  35. package/lib/codegen/rewrite-operation-ids.test.d.ts.map +1 -0
  36. package/lib/codegen/rewrite-operation-ids.test.js +533 -0
  37. package/lib/codegen/rewrite-operation-ids.test.js.map +1 -0
  38. package/lib/codegen/spec-path.d.ts +16 -0
  39. package/lib/codegen/spec-path.d.ts.map +1 -0
  40. package/lib/codegen/spec-path.js +101 -0
  41. package/lib/codegen/spec-path.js.map +1 -0
  42. package/lib/json-patch.d.ts +18 -11
  43. package/lib/json-patch.d.ts.map +1 -1
  44. package/lib/json-patch.js +63 -25
  45. package/lib/json-patch.js.map +1 -1
  46. package/package.json +4 -4
  47. package/src/codegen/cli.ts +14 -91
  48. package/src/codegen/graphql.ts +25 -3
  49. package/src/codegen/openapi-cli.ts +75 -59
  50. package/src/codegen/openapi.ts +118 -4
  51. package/src/codegen/patches.test.ts +130 -0
  52. package/src/codegen/patches.ts +291 -0
  53. package/src/codegen/proto.ts +1128 -0
  54. package/src/codegen/rewrite-operation-ids.test.ts +563 -0
  55. package/src/codegen/rewrite-operation-ids.ts +1206 -0
  56. package/src/codegen/spec-path.ts +115 -0
  57. package/src/json-patch.ts +82 -25
@@ -8,7 +8,7 @@ export interface OpenApiSpecEntry {
8
8
  * Hook between patching and conversion (e.g. path prefixing, server
9
9
  * rewrites). May mutate the spec in place or return a replacement.
10
10
  */
11
- readonly preprocess?: (spec: any) => unknown | void;
11
+ readonly preprocess?: (spec: any) => unknown | void | Promise<unknown | void>;
12
12
  /** Per-spec converter option overrides (merged over the shared options). */
13
13
  readonly options?: Partial<OpenApiConvertOptions>;
14
14
  }
@@ -18,9 +18,10 @@ export interface RunOpenApiConvertOptions {
18
18
  readonly specs: readonly OpenApiSpecEntry[];
19
19
  /**
20
20
  * RFC-6902 patch chain root, relative to `root`. Default `"patches"`;
21
- * `false` disables. Layout: `<patchesDir>/<name>/*.patch.json` when the
21
+ * `false` disables. Layout: `<patchesDir>/<name>/*.json` when the
22
22
  * per-spec directory exists; for single-spec providers a flat
23
- * `<patchesDir>/*.patch.json` also works.
23
+ * `<patchesDir>/*.json` also works. Ops under `/shapes` or `/metadata`
24
+ * apply to the Smithy model after conversion; the rest apply to OpenAPI.
24
25
  */
25
26
  readonly patchesDir?: string | false;
26
27
  /** Output directory, relative to `root`. Default `".generated-specs"`. */
@@ -32,6 +33,19 @@ export interface RunOpenApiConvertOptions {
32
33
  readonly parse?: (text: string, specPath: string) => unknown;
33
34
  /** Shared converter options (per-spec `options` merge over these). */
34
35
  readonly options: OpenApiConvertOptions;
36
+ /**
37
+ * What to do when a patch JSON pointer does not resolve. Default `"fail"`:
38
+ * silent skip is how a whole patch chain can vanish after an upstream path
39
+ * prefix change. `"warn"` restores the old skip-and-continue behaviour.
40
+ */
41
+ readonly onStalePatch?: "fail" | "warn";
42
+ /**
43
+ * Run {@link finalizeConvert} on the written models (reference check +
44
+ * finalized marker; naming already happened in the converter). Default
45
+ * true. Pass false when the caller finalizes once after several convert
46
+ * steps (Fly machines + sprites + addons).
47
+ */
48
+ readonly finalize?: boolean;
35
49
  }
36
50
  /** Run the OpenAPI→Smithy conversion pipeline (plain async — call from a script). */
37
51
  export declare const runOpenApiConvert: (o: RunOpenApiConvertOptions) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-cli.d.ts","sourceRoot":"","sources":["../../src/codegen/openapi-cli.ts"],"names":[],"mappings":"AAuBA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,GAAG,IAAI,CAAC;IACpD,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7D,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;CACzC;AAWD,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,MACzB,wBAAwB,KAC1B,OAAO,CAAC,IAAI,CAyFd,CAAC"}
1
+ {"version":3,"file":"openapi-cli.d.ts","sourceRoot":"","sources":["../../src/codegen/openapi-cli.ts"],"names":[],"mappings":"AAgBA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,cAAc,CAAC;AAStB,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC9E,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7D,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAWD,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,MACzB,wBAAwB,KAC1B,OAAO,CAAC,IAAI,CA2Fd,CAAC"}
@@ -2,22 +2,21 @@
2
2
  * OpenAPI → Smithy pipeline helper (dev-time only, provider-agnostic).
3
3
  *
4
4
  * Owns the spec-side pipeline every OpenAPI-sourced provider shares: read the
5
- * spec file, apply the RFC-6902 patch chain to the OpenAPI document (v0
6
- * semantics: `*.patch.json` files in sorted name order, `{ description,
7
- * patches }` shape; stale targets warn+skip, malformed patches fail the run),
8
- * run the optional preprocess hook, convert with
9
- * {@link convertOpenApiToSmithy}, and write `.generated-specs/<name>.json`.
5
+ * spec file, apply OpenAPI RFC-6902 ops to the document, convert with
6
+ * {@link convertOpenApiToSmithy} (which owns verbNoun naming), apply Smithy
7
+ * RFC-6902 ops (`/shapes`, `/metadata`) to the model, and write
8
+ * `.generated-specs/<name>.json`. Stale targets fail unless
9
+ * `onStalePatch: "warn"`.
10
10
  *
11
- * A provider's `scripts/convert.ts` is: a `runOpenApiConvert` call. The
12
- * separate `scripts/generate.ts` (an SdkSpec + `runGeneratorCli`) then
13
- * compiles the written models. Note: providers whose OpenAPI patches live in
14
- * `patches/` should pass `patchesDir: false` to `runGeneratorCli` — the
15
- * patch chain applies HERE, to the OpenAPI document, not to the Smithy model.
11
+ * A provider's `scripts/convert.ts` is: a `runOpenApiConvert` call.
12
+ * `scripts/generate.ts` compiles the already-patched models and does not
13
+ * apply patches.
16
14
  */
17
15
  import * as fs from "node:fs/promises";
18
16
  import * as path from "node:path";
19
- import { applyOperation, isStaleTargetError, } from "../json-patch.js";
20
17
  import { convertOpenApiToSmithy, } from "./openapi.js";
18
+ import { applyRfc6902Files, finalizeConvert, isSmithyPatchPath, listRfc6902PatchFiles, } from "./patches.js";
19
+ import { resolveSpecPath } from "./spec-path.js";
21
20
  const exists = async (p) => {
22
21
  try {
23
22
  await fs.access(p);
@@ -34,13 +33,15 @@ export const runOpenApiConvert = async (o) => {
34
33
  ? undefined
35
34
  : path.resolve(o.root, o.patchesDir ?? "patches");
36
35
  const parse = o.parse ?? ((text) => JSON.parse(text));
36
+ const onStalePatch = o.onStalePatch ?? "fail";
37
37
  await fs.mkdir(outDir, { recursive: true });
38
38
  console.log("🛠️ openapi → smithy");
39
39
  console.log(` Output: ${outDir}`);
40
40
  for (const entry of o.specs) {
41
- const specPath = path.resolve(o.root, entry.specPath);
41
+ // Production path by default; `specs/.local` under DISTILLED_SPECS_LOCAL.
42
+ const specPath = resolveSpecPath(o.root, entry.specPath);
42
43
  let spec = parse(await fs.readFile(specPath, "utf8"), specPath);
43
- // ---- RFC-6902 patch chain (applies to the OpenAPI document) ----
44
+ // ---- RFC-6902: OpenAPI ops before convert, Smithy ops after ----
44
45
  let patchDir;
45
46
  if (patchRoot && (await exists(patchRoot))) {
46
47
  const perSpec = path.join(patchRoot, entry.name);
@@ -51,57 +52,58 @@ export const runOpenApiConvert = async (o) => {
51
52
  patchDir = patchRoot;
52
53
  }
53
54
  }
54
- let patchFileCount = 0;
55
- let staleOps = 0;
56
- const badPatches = [];
57
- if (patchDir) {
58
- const files = (await fs.readdir(patchDir))
59
- .filter((f) => f.endsWith(".patch.json"))
60
- .sort((a, b) => a.localeCompare(b));
61
- for (const pf of files) {
62
- const parsed = JSON.parse(await fs.readFile(path.join(patchDir, pf), "utf8"));
63
- for (const patchOp of parsed.patches ?? []) {
64
- try {
65
- applyOperation(spec, patchOp);
66
- }
67
- catch (e) {
68
- const msg = e instanceof Error ? e.message : String(e);
69
- if (isStaleTargetError(msg)) {
70
- // Spec drift — the patch target no longer exists upstream.
71
- staleOps++;
72
- console.warn(` ⚠️ stale: ${entry.name}/${pf} [${patchOp.op} ${patchOp.path}]`);
73
- }
74
- else {
75
- badPatches.push(`${entry.name}/${pf} [${patchOp.op} ${patchOp.path}]: ${msg}`);
76
- }
77
- }
78
- }
79
- patchFileCount++;
80
- }
81
- }
82
- if (badPatches.length) {
83
- for (const b of badPatches)
55
+ const patchFiles = patchDir ? await listRfc6902PatchFiles(patchDir) : [];
56
+ const patchLabel = (file) => `${entry.name}/${path.basename(file)}`;
57
+ const openapiPatches = await applyRfc6902Files(spec, patchFiles, {
58
+ onStalePatch,
59
+ include: (op) => !isSmithyPatchPath(op.path),
60
+ label: patchLabel,
61
+ });
62
+ if (openapiPatches.errors.length) {
63
+ for (const b of openapiPatches.errors)
84
64
  console.error(`❌ bad patch: ${b}`);
85
- throw new Error(`${badPatches.length} malformed patch operation(s) — fix or remove them`);
65
+ throw new Error(`${openapiPatches.errors.length} patch operation(s) failed — fix the pointers or delete the patch`);
86
66
  }
87
67
  // ---- Preprocess hook ----
88
68
  if (entry.preprocess) {
89
- const replaced = entry.preprocess(spec);
69
+ const replaced = await entry.preprocess(spec);
90
70
  if (replaced !== undefined)
91
71
  spec = replaced;
92
72
  }
93
- // ---- Convert + write ----
73
+ // ---- Convert, Smithy patches, write ----
94
74
  const model = convertOpenApiToSmithy(spec, {
95
75
  ...o.options,
96
76
  ...entry.options,
97
77
  });
78
+ const smithyPatches = await applyRfc6902Files(model, patchFiles, {
79
+ onStalePatch,
80
+ include: (op) => isSmithyPatchPath(op.path),
81
+ label: patchLabel,
82
+ });
83
+ if (smithyPatches.errors.length) {
84
+ for (const b of smithyPatches.errors)
85
+ console.error(`❌ bad patch: ${b}`);
86
+ throw new Error(`${smithyPatches.errors.length} Smithy patch operation(s) failed — fix the pointers or delete the patch`);
87
+ }
98
88
  const opCount = Object.values(model.shapes).filter((s) => s.type === "operation").length;
99
89
  const outPath = path.join(outDir, `${entry.name}.json`);
100
90
  await fs.writeFile(outPath, JSON.stringify(model, null, 2) + "\n");
91
+ const staleOps = openapiPatches.stale + smithyPatches.stale;
101
92
  console.log(` ✅ ${entry.name}: ${opCount} operations, ${Object.keys(model.shapes).length} shapes` +
102
- (patchFileCount
103
- ? ` (${patchFileCount} patch file(s) applied${staleOps ? `, ${staleOps} stale op(s) skipped` : ""})`
93
+ (patchFiles.length
94
+ ? ` (${patchFiles.length} patch file(s) applied${staleOps ? `, ${staleOps} stale op(s) skipped` : ""})`
104
95
  : ""));
105
96
  }
97
+ if (o.finalize !== false) {
98
+ const written = new Set(o.specs.map((s) => s.name));
99
+ await finalizeConvert({
100
+ root: o.root,
101
+ outDir,
102
+ // Patches and naming already ran above.
103
+ patchesDir: false,
104
+ operationNaming: "as-is",
105
+ include: (resource) => written.has(resource),
106
+ });
107
+ }
106
108
  };
107
109
  //# sourceMappingURL=openapi-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-cli.js","sourceRoot":"","sources":["../../src/codegen/openapi-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi-cli.js","sourceRoot":"","sources":["../../src/codegen/openapi-cli.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,9 @@
9
9
  *
10
10
  * • one operation per (path × get/post/put/patch/delete — plus head/options
11
11
  * when a provider opts in via `extraHttpMethods`), deprecated skipped by
12
- * default; op shape name = PascalCase(operationId)
12
+ * default; op shape name = PascalCase(operationId), or verbNoun
13
+ * (`Apps_list` → `ListApps`) when {@link OpenApiConvertOptions.operationNaming}
14
+ * is `"verbNoun"`
13
15
  * • input `<Op>Request`: path params → `smithy.api#httpLabel` (+required),
14
16
  * query params → `smithy.api#httpQuery`, header params →
15
17
  * `smithy.api#httpHeader` when `headerParams` is on (dropped otherwise,
@@ -41,6 +43,7 @@
41
43
  * first top-level array property) → `smithy.api#paginated` on the op
42
44
  * (with the non-standard `mode` member the core runtime dispatches on)
43
45
  */
46
+ import { type OperationIdRewrite } from "./rewrite-operation-ids.ts";
44
47
  /** Member-level nullability (`S.NullOr` + `| null` via `SdkSpec.nullableTrait`). */
45
48
  export declare const NULLABLE_TRAIT = "com.distilled.openapi#nullable";
46
49
  /**
@@ -142,6 +145,29 @@ export interface OpenApiConvertOptions {
142
145
  * {@link ERROR_MATCHERS_TRAIT} traits; overrides are merged over it.
143
146
  */
144
147
  readonly errorShapes?: Readonly<Record<string, any>>;
148
+ /**
149
+ * How to turn an OpenAPI `operationId` into the Smithy/SDK operation name.
150
+ * This is a convert policy, not a spec patch — the OpenAPI document is
151
+ * left alone.
152
+ *
153
+ * - `"verbNoun"` (default): `Apps_list` / `ConfigsList` / `showContact` →
154
+ * `listApps` / `listConfigs` / `getApp`. Already verb-first ids stay.
155
+ * An operation with no `operationId`, or a mechanical one that only
156
+ * restates the method and path (`get-api-card`, `post_v1_users`), is
157
+ * named from the route instead: `GET /users` → `listUsers`,
158
+ * `GET /users/{id}` → `getUser`, `POST /users/{id}/reset` →
159
+ * `resetUser`.
160
+ * - `"as-is"`: `PascalCase(operationId)` (`Apps_list` → `AppsList`).
161
+ *
162
+ * {@link operationNames} overrides win (lookup by `"METHOD path"`, then
163
+ * operationId).
164
+ */
165
+ readonly operationNaming?: "as-is" | "verbNoun";
166
+ /**
167
+ * Per-operation name overrides for {@link operationNaming}. Use
168
+ * `"METHOD path"` keys when two methods share an `operationId`.
169
+ */
170
+ readonly operationNames?: OperationIdRewrite;
145
171
  }
146
172
  export interface SmithyModel {
147
173
  smithy: "2.0";
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/codegen/openapi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAMH,oFAAoF;AACpF,eAAO,MAAM,cAAc,mCAAmC,CAAC;AAC/D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,wCAAwC,CAAC;AAC1E;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,qCAAqC,CAAC;AAMpE,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAoBrD,CAAC;AAMF,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjD,+DAA+D;IAC/D,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;;OASG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5D;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAo+BD,eAAO,MAAM,sBAAsB,SAC3B,OAAO,WACJ,qBAAqB,KAC7B,WA4XF,CAAC"}
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/codegen/openapi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAMpC,oFAAoF;AACpF,eAAO,MAAM,cAAc,mCAAmC,CAAC;AAC/D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,wCAAwC,CAAC;AAC1E;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,qCAAqC,CAAC;AAMpE,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAoBrD,CAAC;AAMF,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjD,+DAA+D;IAC/D,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;;OASG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5D;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC;CAC9C;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAmgCD,eAAO,MAAM,sBAAsB,SAC3B,OAAO,WACJ,qBAAqB,KAC7B,WA6aF,CAAC"}
@@ -9,7 +9,9 @@
9
9
  *
10
10
  * • one operation per (path × get/post/put/patch/delete — plus head/options
11
11
  * when a provider opts in via `extraHttpMethods`), deprecated skipped by
12
- * default; op shape name = PascalCase(operationId)
12
+ * default; op shape name = PascalCase(operationId), or verbNoun
13
+ * (`Apps_list` → `ListApps`) when {@link OpenApiConvertOptions.operationNaming}
14
+ * is `"verbNoun"`
13
15
  * • input `<Op>Request`: path params → `smithy.api#httpLabel` (+required),
14
16
  * query params → `smithy.api#httpQuery`, header params →
15
17
  * `smithy.api#httpHeader` when `headerParams` is on (dropped otherwise,
@@ -41,6 +43,7 @@
41
43
  * first top-level array property) → `smithy.api#paginated` on the op
42
44
  * (with the non-standard `mode` member the core runtime dispatches on)
43
45
  */
46
+ import { isMechanicalOperationId, isVerbatimRouteId, pathToVerbNoun, resolveOperationName, toVerbNoun, } from "./rewrite-operation-ids.js";
44
47
  // ============================================================================
45
48
  // Trait ids (the `com.distilled.openapi` vocabulary)
46
49
  // ============================================================================
@@ -877,6 +880,38 @@ const successSchema = (ctx, responses, order) => {
877
880
  }
878
881
  return { schema: undefined };
879
882
  };
883
+ /**
884
+ * Whether the success body is a collection: an array, or an object whose
885
+ * array members outnumber its scalar ones (envelopes like `{ data: [] }`,
886
+ * `{ items: [], total }`). `undefined` when there is no body to judge.
887
+ */
888
+ const responseIsCollection = (ctx, responses, order) => {
889
+ const { schema } = successSchema(ctx, responses, order);
890
+ if (!schema)
891
+ return undefined;
892
+ const s = deref(ctx, schema);
893
+ if (!s || typeof s !== "object")
894
+ return undefined;
895
+ if (s.type === "array" || s.items)
896
+ return true;
897
+ const props = s.properties;
898
+ if (!props || typeof props !== "object") {
899
+ return s.allOf || s.oneOf || s.anyOf ? undefined : false;
900
+ }
901
+ let arrays = 0;
902
+ let others = 0;
903
+ for (const prop of Object.values(props)) {
904
+ const p = deref(ctx, prop);
905
+ if (p?.type === "array" || p?.items)
906
+ arrays++;
907
+ else
908
+ others++;
909
+ }
910
+ if (arrays === 0)
911
+ return false;
912
+ // `{ data: [...] }`, `{ items, next_cursor }`, `{ results, count, page }`
913
+ return arrays >= 1 && others <= 3;
914
+ };
880
915
  const PAGINATION_INPUT_ALIASES = {
881
916
  cursor: ["cursor", "page_token", "pageToken"],
882
917
  token: ["next_token", "NextToken", "nextToken"],
@@ -999,9 +1034,52 @@ export const convertOpenApiToSmithy = (spec, options) => {
999
1034
  continue;
1000
1035
  if (skipDeprecated && op.deprecated === true)
1001
1036
  continue;
1002
- const opName = pascal(typeof op.operationId === "string" && op.operationId
1037
+ const rawOperationId = typeof op.operationId === "string" && op.operationId
1003
1038
  ? op.operationId
1004
- : `${method}_${rawPath}`);
1039
+ : `${method}_${rawPath}`;
1040
+ const idCtx = { path: rawPath, method };
1041
+ const naming = options.operationNaming ?? "verbNoun";
1042
+ let named = options.operationNames !== undefined
1043
+ ? resolveOperationName(options.operationNames, rawOperationId, idCtx)
1044
+ : undefined;
1045
+ if (named === undefined && naming === "verbNoun") {
1046
+ // A mechanical id (`get-api-card`, or none at all) is named from
1047
+ // the route. A hand-chosen one that merely starts with the method
1048
+ // and reads the route in order (`get-feeds` on /feeds) keeps its
1049
+ // own nouns; only the HTTP-method verb is normalised.
1050
+ if (typeof op.operationId !== "string" || !op.operationId) {
1051
+ // No id: everything comes from the route, including whether a
1052
+ // GET on a collection route is `list` or `get`.
1053
+ named = pathToVerbNoun(idCtx, {
1054
+ returnsCollection: responseIsCollection(ctx, op.responses, successStatuses),
1055
+ });
1056
+ }
1057
+ else if (isMechanicalOperationId(op.operationId, idCtx)) {
1058
+ // Method-prefixed and reading the route (`get-feeds`,
1059
+ // `postV1AppsByAppIdPromote`, `deleteProjectJWKS`): keep the
1060
+ // author's tokens and casing; normalise `post`/`patch`, drop
1061
+ // parameter clauses (`ByAppId`, `ById`) and api/version roots.
1062
+ named = pathToVerbNoun(idCtx, {
1063
+ nouns: op.operationId,
1064
+ verbatim: isVerbatimRouteId(op.operationId, idCtx),
1065
+ });
1066
+ }
1067
+ else {
1068
+ named = toVerbNoun(rawOperationId);
1069
+ }
1070
+ }
1071
+ let resolved = named ?? rawOperationId;
1072
+ // Two routes can derive the same name (`/collections/{slug}` and
1073
+ // `/collections/{slug}-{id}`); suffix the trailing parameter rather
1074
+ // than a counter.
1075
+ if (naming === "verbNoun" &&
1076
+ ctx.names.has(pascal(resolved)) &&
1077
+ isMechanicalOperationId(typeof op.operationId === "string" ? op.operationId : undefined, idCtx)) {
1078
+ const lastParam = /\{([^}]+)\}[^/]*$/.exec(rawPath)?.[1];
1079
+ if (lastParam)
1080
+ resolved = `${resolved}By${pascal(lastParam)}`;
1081
+ }
1082
+ const opName = pascal(resolved);
1005
1083
  const params = collectParams(ctx, pathItem, op);
1006
1084
  // ---- URI + labels (sanitize placeholder names to member idents) ----
1007
1085
  let uri = rawPath.split(/[?#]/)[0];
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/codegen/openapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/codegen/openapi.ts"],"names":[],"mappings":"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"}