@workos/oagen 0.22.6 → 0.23.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.
- package/README.md +1 -1
- package/dist/cli/index.mjs +271 -42
- package/dist/cli/index.mjs.map +1 -1
- package/dist/compat/index.d.mts +2 -2
- package/dist/compat/index.mjs +9 -8
- package/dist/compat/index.mjs.map +1 -1
- package/dist/{diff-CQzcGuFJ.mjs → diff-B7dMUCoJ.mjs} +235 -27
- package/dist/diff-B7dMUCoJ.mjs.map +1 -0
- package/dist/{differ-CC65Efzt.d.mts → differ-DMmw0tbA.d.mts} +5 -5
- package/dist/{differ-CC65Efzt.d.mts.map → differ-DMmw0tbA.d.mts.map} +1 -1
- package/dist/index.d.mts +64 -9
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +26 -11
- package/dist/index.mjs.map +1 -1
- package/dist/{overlay-cb32jDBS.mjs → overlay-sQHQoN0I.mjs} +4 -4
- package/dist/overlay-sQHQoN0I.mjs.map +1 -0
- package/dist/scripts/smoke/baseline.mjs +25 -10
- package/dist/scripts/smoke/baseline.mjs.map +1 -1
- package/dist/scripts/smoke/sdk-test.mjs +3 -3
- package/dist/scripts/smoke/sdk-test.mjs.map +1 -1
- package/dist/smoke.d.mts +19 -4
- package/dist/smoke.d.mts.map +1 -1
- package/dist/smoke.mjs +25 -10
- package/dist/smoke.mjs.map +1 -1
- package/dist/tree-sitter-DcUvm0KA.mjs.map +1 -1
- package/dist/{types-Cjh39AGQ.d.mts → types-nM5Kp7UP.d.mts} +16 -9
- package/dist/types-nM5Kp7UP.d.mts.map +1 -0
- package/dist/verify/index.d.mts +2 -2
- package/dist/verify/index.mjs +2 -2
- package/docs/architecture/extractor-contract.md +2 -2
- package/docs/architecture/pipeline.md +2 -2
- package/docs/cli.md +19 -19
- package/docs/core/compatibility-policy.md +1 -1
- package/docs/core/manifest-schema.md +2 -2
- package/package.json +1 -1
- package/skills/generate-emitter/SKILL.md +2 -2
- package/skills/generate-emitter/references/common-pitfalls.md +1 -1
- package/skills/generate-emitter/references/project-scaffold.md +3 -3
- package/skills/generate-extractor/SKILL.md +2 -2
- package/skills/generate-smoke-test/SKILL.md +1 -1
- package/skills/verify-smoke-test/SKILL.md +1 -1
- package/dist/diff-CQzcGuFJ.mjs.map +0 -1
- package/dist/overlay-cb32jDBS.mjs.map +0 -1
- package/dist/types-Cjh39AGQ.d.mts.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as CompatPolicyHints, Mt as CompatSymbol, _t as ApiSurface, at as CompatProvenance, kt as CompatSnapshot, nt as CompatChangeSeverity, t as ApiSpec, tt as CompatChangeCategory, xt as LanguageHints, yt as DiffResult } from "./types-
|
|
1
|
+
import { Bt as CompatPolicyHints, Mt as CompatSymbol, _t as ApiSurface, at as CompatProvenance, kt as CompatSnapshot, nt as CompatChangeSeverity, t as ApiSpec, tt as CompatChangeCategory, xt as LanguageHints, yt as DiffResult } from "./types-nM5Kp7UP.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/compat/classify.d.ts
|
|
4
4
|
/** A single classified compatibility change. */
|
|
@@ -67,13 +67,13 @@ declare function specDerivedEnumValues(spec: ApiSpec): Map<string, Set<string |
|
|
|
67
67
|
*/
|
|
68
68
|
declare function specDerivedFieldPaths(spec: ApiSpec, hints: LanguageHints): Set<string>;
|
|
69
69
|
/**
|
|
70
|
-
* Compute the set of method paths (e.g., "
|
|
70
|
+
* Compute the set of method paths (e.g., "Auth.authorize") that are defined
|
|
71
71
|
* as operations in the OpenAPI spec's services. Used by filterSurface to
|
|
72
72
|
* exclude hand-written SDK methods that don't correspond to spec operations.
|
|
73
73
|
*/
|
|
74
74
|
declare function specDerivedMethodPaths(spec: ApiSpec): Set<string>;
|
|
75
75
|
/**
|
|
76
|
-
* Compute the set of HTTP operation keys (e.g., "GET /
|
|
76
|
+
* Compute the set of HTTP operation keys (e.g., "GET /auth/authorize") that
|
|
77
77
|
* exist in the spec. Used for overlay-based method matching.
|
|
78
78
|
*/
|
|
79
79
|
declare function specDerivedHttpKeys(spec: ApiSpec): Set<string>;
|
|
@@ -88,7 +88,7 @@ declare function specDerivedHttpKeys(spec: ApiSpec): Set<string>;
|
|
|
88
88
|
*
|
|
89
89
|
* For classes: when methodPaths is provided, only keeps methods whose names
|
|
90
90
|
* appear in the spec-derived method paths. This prevents false positives from
|
|
91
|
-
* hand-written SDK methods (e.g.,
|
|
91
|
+
* hand-written SDK methods (e.g., Auth.authorization_url, Webhooks.construct_event)
|
|
92
92
|
* that don't correspond to spec operations. Properties on service classes are
|
|
93
93
|
* also filtered: only UPPER_CASE constants that are spec-derivable are kept.
|
|
94
94
|
*/
|
|
@@ -120,4 +120,4 @@ declare function diffSnapshots(baseline: CompatSnapshot, candidate: CompatSnapsh
|
|
|
120
120
|
declare function diffSurfaces(baseline: ApiSurface, candidate: ApiSurface, hints: LanguageHints): DiffResult;
|
|
121
121
|
//#endregion
|
|
122
122
|
export { specDerivedEnumValues as a, specDerivedMethodPaths as c, ClassifiedChange as d, classifyAddedSymbol as f, filterSurface as i, specDerivedNames as l, summarizeChanges as m, diffSnapshots as n, specDerivedFieldPaths as o, classifySymbolChanges as p, diffSurfaces as r, specDerivedHttpKeys as s, CompatDiffResult as t, ClassificationResult as u };
|
|
123
|
-
//# sourceMappingURL=differ-
|
|
123
|
+
//# sourceMappingURL=differ-DMmw0tbA.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"differ-
|
|
1
|
+
{"version":3,"file":"differ-DMmw0tbA.d.mts","names":[],"sources":["../src/compat/classify.ts","../src/compat/spec-filter.ts","../src/compat/differ.ts"],"mappings":";;;;UAaiB,gBAAA;EAcJ;EAZX,QAAA,EAAU,oBAAA;EAAV;EAEA,QAAA,EAAU,oBAAA;EAAV;EAEA,MAAA;EAAA;EAEA,kBAAA;EAEA;EAAA,UAAA,EAAY,gBAAA;EAEZ;EAAA,GAAA,EAAK,MAAA;EAEL;EAAA,GAAA,EAAK,MAAA;EAEL;EAAA,OAAA;EAOW;;AAIb;;;;EAJE,WAAA;AAAA;;UAIe,oBAAA;EACf,OAAA,EAAS,gBAAA;EACT,OAAA;IACE,QAAA;IACA,QAAA;IACA,QAAA;EAAA;AAAA;;;;;iBAYY,qBAAA,CACd,QAAA,EAAU,YAAA,EACV,SAAA,EAAW,YAAA,cACX,MAAA,EAAQ,iBAAA,GACP,gBAAA;;;;iBAiWa,mBAAA,CAAoB,MAAA,EAAQ,YAAA,GAAe,gBAAA;;iBAc3C,gBAAA,CAAiB,OAAA,EAAS,gBAAA,KAAqB,oBAAA;;;;AA/Z/D;;;;iBCJgB,gBAAA,CAAiB,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,aAAA,GAAgB,GAAA;;;;;iBA0CvD,qBAAA,CAAsB,IAAA,EAAM,OAAA,GAAU,GAAA,SAAY,GAAA;;;;;;iBAalD,qBAAA,CAAsB,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,aAAA,GAAgB,GAAA;;;;;;iBAqB5D,sBAAA,CAAuB,IAAA,EAAM,OAAA,GAAU,GAAA;;;;;iBAcvC,mBAAA,CAAoB,IAAA,EAAM,OAAA,GAAU,GAAA;;;;;;;;;;;;AD1CpD;;;;iBC8FgB,aAAA,CACd,OAAA,EAAS,UAAA,EACT,YAAA,EAAc,GAAA,UACd,IAAA;EACE,UAAA,GAAa,GAAA;EACb,WAAA,GAAc,GAAA;EACd,UAAA,GAAa,GAAA,SAAY,GAAA;AAAA,IAE1B,UAAA;;;;UChIc,gBAAA;EACf,OAAA,EAAS,gBAAA;EACT,OAAA,EAAS,oBAAA;AAAA;;;;;iBAOK,aAAA,CACd,QAAA,EAAU,cAAA,EACV,SAAA,EAAW,cAAA,EACX,MAAA,GAAS,iBAAA,GACR,gBAAA;;;;;;AFJH;;;iBEsqBgB,YAAA,CAAa,QAAA,EAAU,UAAA,EAAY,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,aAAA,GAAgB,UAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A as collectEnumRefs, B as IdempotencyPolicy, C as Service, Ct as OverlayLookup, D as UnionType, E as TypeRef, F as walkTypeRef, G as RetryPolicy, H as LoggingPolicy, I as AiAgentEnvVar, J as TimeoutPolicy, K as SdkBehavior, L as BackoffStrategy, M as collectModelRefs, N as collectRequestBodyModels, O as assertNever, P as mapTypeRef, R as DeepPartial, S as ServerEntry, T as TypeParam, U as PaginationPolicy, V as LogEvent, W as RequestGuardPolicy, X as defaultSdkBehavior, Y as UserAgentPolicy, Z as mergeSdkBehavior, _ as Parameter, _t as ApiSurface, a as EnumRef, b as PrimitiveType, bt as Extractor, c as Field, d as MapType, f as Model, g as PaginationMeta, h as Operation, i as Enum, j as collectFieldDependencies, k as assignModelsToServices, l as HttpMethod, m as NullableType, n as ArrayType, o as EnumValue, p as ModelRef, q as TelemetryPolicy, r as AuthScheme, rt as CompatConfig, s as ErrorResponse, t as ApiSpec, u as LiteralType, v as ParameterGroup, w as SuccessResponse, x as SecurityRequirement, y as ParameterGroupVariant, z as ErrorPolicy } from "./types-
|
|
1
|
+
import { A as collectEnumRefs, B as IdempotencyPolicy, C as Service, Ct as OverlayLookup, D as UnionType, E as TypeRef, F as walkTypeRef, G as RetryPolicy, H as LoggingPolicy, I as AiAgentEnvVar, J as TimeoutPolicy, K as SdkBehavior, L as BackoffStrategy, M as collectModelRefs, N as collectRequestBodyModels, O as assertNever, P as mapTypeRef, R as DeepPartial, S as ServerEntry, T as TypeParam, U as PaginationPolicy, V as LogEvent, W as RequestGuardPolicy, X as defaultSdkBehavior, Y as UserAgentPolicy, Z as mergeSdkBehavior, _ as Parameter, _t as ApiSurface, a as EnumRef, b as PrimitiveType, bt as Extractor, c as Field, d as MapType, f as Model, g as PaginationMeta, h as Operation, i as Enum, j as collectFieldDependencies, k as assignModelsToServices, l as HttpMethod, m as NullableType, n as ArrayType, o as EnumValue, p as ModelRef, q as TelemetryPolicy, r as AuthScheme, rt as CompatConfig, s as ErrorResponse, t as ApiSpec, u as LiteralType, v as ParameterGroup, w as SuccessResponse, x as SecurityRequirement, y as ParameterGroupVariant, z as ErrorPolicy } from "./types-nM5Kp7UP.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/ir/operation-hints.d.ts
|
|
4
|
-
/** Per-operation override keyed by "METHOD /path" (e.g. "POST /
|
|
4
|
+
/** Per-operation override keyed by "METHOD /path" (e.g. "POST /auth/token"). */
|
|
5
5
|
interface OperationHint {
|
|
6
6
|
/** Override the algorithm-derived method name. */
|
|
7
7
|
name?: string;
|
|
@@ -17,7 +17,7 @@ interface OperationHint {
|
|
|
17
17
|
* Marks this operation as a URL builder rather than a real HTTP call. Emitters
|
|
18
18
|
* should generate a method that returns the constructed URL (typically as a
|
|
19
19
|
* string) without performing any I/O. Used for OAuth-style redirect endpoints
|
|
20
|
-
* such as /
|
|
20
|
+
* such as /auth/authorize and /accounts/sessions/logout.
|
|
21
21
|
*/
|
|
22
22
|
urlBuilder?: boolean;
|
|
23
23
|
}
|
|
@@ -171,6 +171,25 @@ interface EmitterContext {
|
|
|
171
171
|
emitterOptions?: Record<string, unknown>;
|
|
172
172
|
/** Absolute path to the integration target directory (when --target is used). */
|
|
173
173
|
targetDir?: string;
|
|
174
|
+
/**
|
|
175
|
+
* Scoped-generation signal: the set of POST-MOUNT service names a `--services`
|
|
176
|
+
* run selected. When present and non-empty, emitters must emit ONLY these
|
|
177
|
+
* services' per-service resource/test files, while still emitting models,
|
|
178
|
+
* enums, the root client, and all aggregate/barrel files from the FULL spec
|
|
179
|
+
* (so shared files stay byte-identical and a brand-new selected service is
|
|
180
|
+
* wired into the client automatically). Absent/empty ⇒ full generation.
|
|
181
|
+
*/
|
|
182
|
+
scopedServices?: Set<string>;
|
|
183
|
+
/**
|
|
184
|
+
* Scoped-generation model/enum allow-lists: names of models/enums reachable
|
|
185
|
+
* from the selected services. When `scopedServices` is active,
|
|
186
|
+
* emitters must write a per-model/per-enum FILE only when its name is in these
|
|
187
|
+
* sets — but must still include EVERY model/enum (the full set passed to
|
|
188
|
+
* generateModels/generateEnums) in barrels/indexes, so on-disk files for
|
|
189
|
+
* out-of-scope models (left untouched) stay importable. Absent ⇒ write all.
|
|
190
|
+
*/
|
|
191
|
+
scopedModelNames?: Set<string>;
|
|
192
|
+
scopedEnumNames?: Set<string>;
|
|
174
193
|
/**
|
|
175
194
|
* Paths (relative to the output/target dir) that the previous run wrote,
|
|
176
195
|
* loaded from that directory's `.oagen-manifest.json`. Emitters can use this
|
|
@@ -238,7 +257,7 @@ interface DiffReport {
|
|
|
238
257
|
}
|
|
239
258
|
interface BehaviorChange {
|
|
240
259
|
kind: 'param-default-changed';
|
|
241
|
-
/** Service name (e.g. 'authorization', '
|
|
260
|
+
/** Service name (e.g. 'authorization', 'accounts'). */
|
|
242
261
|
serviceName: string;
|
|
243
262
|
/** Operation name within the service. */
|
|
244
263
|
operationName: string;
|
|
@@ -359,6 +378,13 @@ type OpenApiDocument = Record<string, unknown>;
|
|
|
359
378
|
interface ParseOptions {
|
|
360
379
|
operationIdTransform?: (id: string) => string;
|
|
361
380
|
schemaNameTransform?: (name: string) => string;
|
|
381
|
+
/**
|
|
382
|
+
* Domain-facing field-name overrides, keyed by IR model name then wire field
|
|
383
|
+
* name: `{ Connection: { connection_type: 'type' } }`. Sets `Field.domainName`
|
|
384
|
+
* so emitters expose the field under the friendlier name while keeping the
|
|
385
|
+
* wire key. Language-agnostic — honored by any emitter that reads `domainName`.
|
|
386
|
+
*/
|
|
387
|
+
fieldHints?: Record<string, Record<string, string>>;
|
|
362
388
|
/**
|
|
363
389
|
* Pre-IR overlay applied to the bundled OpenAPI document before any IR
|
|
364
390
|
* extraction runs. Use this when the upstream spec can't be changed but you
|
|
@@ -390,6 +416,15 @@ declare function generate(spec: ApiSpec, emitter: Emitter, options: {
|
|
|
390
416
|
modelHints?: Record<string, string>;
|
|
391
417
|
emitterOptions?: Record<string, unknown>; /** When true, skip deletion of files recorded in the previous manifest but not in the current emission. */
|
|
392
418
|
noPrune?: boolean;
|
|
419
|
+
/**
|
|
420
|
+
* Post-mount service names to generate (a `--services` run). When non-empty,
|
|
421
|
+
* the FULL spec is still emitted for models/enums/client/barrels (so shared
|
|
422
|
+
* files stay byte-identical and a brand-new selected service is wired into the
|
|
423
|
+
* client automatically); only per-service resource/test emission is gated to
|
|
424
|
+
* the selection (via `ctx.scopedServices`). Pruning is disabled and the
|
|
425
|
+
* manifest is merged so unselected services' records survive.
|
|
426
|
+
*/
|
|
427
|
+
services?: string[];
|
|
393
428
|
}): Promise<GeneratedFile[]>;
|
|
394
429
|
//#endregion
|
|
395
430
|
//#region src/engine/generate-files.d.ts
|
|
@@ -404,17 +439,29 @@ declare function buildEmitterContext(spec: ApiSpec, options: {
|
|
|
404
439
|
emitterOptions?: Record<string, unknown>;
|
|
405
440
|
target?: string;
|
|
406
441
|
priorTargetManifestPaths?: Set<string>;
|
|
442
|
+
scopedServices?: Set<string>;
|
|
407
443
|
}): EmitterContext;
|
|
408
444
|
/**
|
|
409
445
|
* Collect model and enum names transitively referenced by service operations.
|
|
410
446
|
* Walks operation parameters, request bodies, responses, and pagination item
|
|
411
447
|
* types, then chases model field references until the set stabilizes.
|
|
412
448
|
*/
|
|
413
|
-
declare function collectReferencedNames(services: Service[], models: Model[]
|
|
449
|
+
declare function collectReferencedNames(services: Service[], models: Model[], opts?: {
|
|
450
|
+
preserveAllDiscriminated?: boolean;
|
|
451
|
+
}): {
|
|
414
452
|
models: Set<string>;
|
|
415
453
|
enums: Set<string>;
|
|
416
454
|
};
|
|
417
|
-
/**
|
|
455
|
+
/**
|
|
456
|
+
* Collect all generated files from an emitter (no headers, no path prefixes).
|
|
457
|
+
*
|
|
458
|
+
* In a scoped (`--services`) run the spec is NOT filtered: every generator runs
|
|
459
|
+
* over the full spec so model placement, dedup, the root client, and all
|
|
460
|
+
* aggregate/barrel files are byte-identical to a full run (and a brand-new
|
|
461
|
+
* selected service is wired into the client automatically). The emitters
|
|
462
|
+
* themselves consult `ctx.scopedServices` to emit only the selected services'
|
|
463
|
+
* per-service resource/test files.
|
|
464
|
+
*/
|
|
418
465
|
declare function generateAllFiles(spec: ApiSpec, emitter: Emitter, ctx: EmitterContext): GeneratedFile[];
|
|
419
466
|
/** Apply file header to generated files, respecting headerPlacement and JSON files. */
|
|
420
467
|
declare function applyFileHeaders(files: GeneratedFile[], header: string): GeneratedFile[];
|
|
@@ -428,7 +475,8 @@ declare function generateFiles(spec: ApiSpec, emitter: Emitter, options: {
|
|
|
428
475
|
modelHints?: Record<string, string>;
|
|
429
476
|
emitterOptions?: Record<string, unknown>;
|
|
430
477
|
target?: string;
|
|
431
|
-
priorTargetManifestPaths?: Set<string>;
|
|
478
|
+
priorTargetManifestPaths?: Set<string>; /** Scoped-generation signal (POST-MOUNT names); set on ctx for emitters to gate per-service emission. */
|
|
479
|
+
scopedServices?: Set<string>;
|
|
432
480
|
}): {
|
|
433
481
|
files: GeneratedFile[];
|
|
434
482
|
ctx: EmitterContext;
|
|
@@ -527,7 +575,7 @@ interface OagenConfig {
|
|
|
527
575
|
*/
|
|
528
576
|
schemaNameTransform?: (name: string) => string;
|
|
529
577
|
/** Base URL for documentation links. When set, relative paths in descriptions
|
|
530
|
-
* (e.g. `/reference/
|
|
578
|
+
* (e.g. `/reference/users/user`) are expanded to full URLs. */
|
|
531
579
|
docUrl?: string;
|
|
532
580
|
/**
|
|
533
581
|
* Pre-IR overlay applied to the bundled OpenAPI document before any IR
|
|
@@ -542,7 +590,7 @@ interface OagenConfig {
|
|
|
542
590
|
*/
|
|
543
591
|
transformSpec?: (spec: OpenApiDocument) => OpenApiDocument;
|
|
544
592
|
/**
|
|
545
|
-
* Per-operation overrides keyed by "METHOD /path" (e.g. "POST /
|
|
593
|
+
* Per-operation overrides keyed by "METHOD /path" (e.g. "POST /auth/token").
|
|
546
594
|
* Used by the operation resolver to override derived method names, mount
|
|
547
595
|
* targets, and to split union-body operations into typed wrappers.
|
|
548
596
|
*/
|
|
@@ -567,6 +615,13 @@ interface OagenConfig {
|
|
|
567
615
|
* post-schemaNameTransform model names (e.g. `User`, not `UserlandUser`).
|
|
568
616
|
*/
|
|
569
617
|
modelHints?: Record<string, string>;
|
|
618
|
+
/**
|
|
619
|
+
* Domain-facing field-name overrides, keyed by IR model name then wire field
|
|
620
|
+
* name: `{ Connection: { connection_type: 'type' } }`. Sets `Field.domainName`
|
|
621
|
+
* so every emitter can expose the field under a friendlier domain name while
|
|
622
|
+
* keeping the wire key unchanged.
|
|
623
|
+
*/
|
|
624
|
+
fieldHints?: Record<string, Record<string, string>>;
|
|
570
625
|
/**
|
|
571
626
|
* Language-specific emitter options. The CLI passes only the active
|
|
572
627
|
* language's option bag to that emitter.
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/ir/operation-hints.ts","../src/errors.ts","../src/engine/types.ts","../src/differ/types.ts","../src/parser/parse.ts","../src/engine/orchestrator.ts","../src/engine/generate-files.ts","../src/engine/writer.ts","../src/engine/integrate.ts","../src/engine/registry.ts","../src/differ/diff.ts","../src/utils/naming.ts","../src/engine/operation-plan.ts","../src/cli/config-loader.ts","../src/snippets/example-builder.ts","../src/snippets/types.ts","../src/snippets/runner.ts","../src/snippets/shared.ts"],"mappings":";;;;UAeiB,aAAA;EAAA;EAEf,IAAA;;EAEA,OAAA;EAFA;EAIA,KAAA,GAAQ,SAAA;EAAR;EAEA,QAAA,GAAW,MAAA;EAAX;EAEA,eAAA;EAAA;;;;AAUF;;EAHE,UAAA;AAAA;AAAA,UAGe,SAAA;EAIf;EAFA,IAAA;EAIW;EAFX,aAAA;EAMA;EAJA,QAAA,GAAW,MAAA;EAUG;EARd,eAAA;EAee;EAbf,aAAA;;;;;;EAMA,cAAA;AAAA;AAAA,UAOe,iBAAA;EAEJ;EAAX,SAAA,EAAW,SAAA;EAEF;EAAT,OAAA,EAAS,OAAA;EAIT;EAFA,UAAA;EAIW;EAFX,OAAA;EAIU;EAFV,QAAA,GAAW,eAAA;EAMX;EAJA,QAAA,EAAU,MAAA;EAIA;EAFV,eAAA;EAK8B;EAH9B,UAAA;AAAA;AAAA,UAGe,eAAA;EAIf;EAFA,IAAA;EAIU;EAFV,aAAA;EAMA;EAJA,QAAA,EAAU,MAAA;EAQV;EANA,eAAA;EAMiB;EAJjB,aAAA;EAgF8B;EA9E9B,cAAA;EA8E+D;EA5E/D,iBAAA;AAAA;;;;;AA2JF;;;;;;;iBA/EgB,gBAAA,CAAiB,EAAA,EAAI,SAAA,EAAW,QAAA,EAAU,OAAA;;;;;;;;;iBA+E1C,iBAAA,CACd,IAAA,EAAM,OAAA,EACN,KAAA,GAAQ,MAAA,SAAe,aAAA,GACvB,UAAA,GAAa,MAAA,mBACZ,iBAAA;;;;;;AA3OH;;;;cCPa,UAAA,SAAmB,KAAA;EAAA,SACrB,IAAA;cAEG,OAAA,UAAiB,IAAA;AAAA;;cASlB,YAAA,SAAqB,UAAA;EAAA,SACvB,QAAA;cAEG,OAAA,UAAiB,IAAA,UAAc,QAAA;AAAA;;cAQhC,cAAA,SAAuB,UAAA;cACtB,OAAA,UAAiB,IAAA;AAAA;;cAOlB,WAAA,SAAoB,UAAA;cACnB,OAAA,UAAiB,IAAA;AAAA;;cAOlB,eAAA,SAAwB,WAAA;cACvB,OAAA,UAAiB,IAAA;AAAA;;cAOlB,0BAAA,SAAmC,WAAA;cAClC,OAAA,UAAiB,IAAA;AAAA;;cAOlB,cAAA,SAAuB,UAAA;cACtB,OAAA,UAAiB,IAAA;AAAA;;cAOlB,aAAA,SAAsB,UAAA;cACrB,OAAA,UAAiB,IAAA;AAAA;;cAOlB,aAAA,SAAsB,UAAA;cACrB,OAAA,UAAiB,IAAA;AAAA;;;UC5Ed,aAAA;EACf,IAAA;EACA,OAAA;EACA,YAAA;EACA,eAAA;EFWA;EETA,eAAA;EFWQ;EETR,iBAAA;AAAA;AAAA,UAGe,cAAA;EACf,SAAA;EACA,eAAA;EACA,IAAA,EAAM,OAAA;EACN,SAAA;EACA,UAAA,GAAa,UAAA;EACb,aAAA,GAAgB,aAAA;EFoBC;EElBjB,kBAAA,GAAqB,iBAAA;EFgBrB;;;;;EEVA,UAAA,GAAa,MAAA;EFsBC;EEpBd,cAAA,GAAiB,MAAA;EF2BF;EEzBf,SAAA;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/ir/operation-hints.ts","../src/errors.ts","../src/engine/types.ts","../src/differ/types.ts","../src/parser/parse.ts","../src/engine/orchestrator.ts","../src/engine/generate-files.ts","../src/engine/writer.ts","../src/engine/integrate.ts","../src/engine/registry.ts","../src/differ/diff.ts","../src/utils/naming.ts","../src/engine/operation-plan.ts","../src/cli/config-loader.ts","../src/snippets/example-builder.ts","../src/snippets/types.ts","../src/snippets/runner.ts","../src/snippets/shared.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { A as walkTypeRef, C as assertNever, D as collectModelRefs, E as collectFieldDependencies, O as collectRequestBodyModels, S as SpecParseError, T as collectEnumRefs, _ as ConfigVersionMismatchError, a as singularize, b as OagenError, c as stripListItemMarkers, d as toPascalCase, f as toSnakeCase, g as ConfigLoadError, h as ConfigError, k as mapTypeRef, l as toCamelCase, m as CommandError, n as ACRONYM_SET, o as splitWords, p as toUpperSnakeCase, r as cleanSchemaName, s as stripBackendPrefixes, u as toKebabCase, v as ExtractorError, w as assignModelsToServices, x as RegistryError, y as InternalError } from "./tree-sitter-DcUvm0KA.mjs";
|
|
2
|
-
import { c as treeShakeFiles, d as collectReferencedNames, f as generateAllFiles, h as resolveOperations, i as generate, l as applyFileHeaders, m as deriveMethodName, n as getEmitter, o as integrateGeneratedFiles, p as generateFiles, r as registerEmitter, s as mapFilesForTargetIntegration, t as diffSpecs, u as buildEmitterContext } from "./diff-
|
|
2
|
+
import { c as treeShakeFiles, d as collectReferencedNames, f as generateAllFiles, h as resolveOperations, i as generate, l as applyFileHeaders, m as deriveMethodName, n as getEmitter, o as integrateGeneratedFiles, p as generateFiles, r as registerEmitter, s as mapFilesForTargetIntegration, t as diffSpecs, u as buildEmitterContext } from "./diff-B7dMUCoJ.mjs";
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
import { resolve } from "node:path";
|
|
5
5
|
import { pathToFileURL } from "node:url";
|
|
6
6
|
import { BaseResolver, Oas3_1Types, bundleDocument, createConfig, makeDocumentFromString } from "@redocly/openapi-core";
|
|
7
7
|
//#region src/ir/sdk-behavior.ts
|
|
8
8
|
/**
|
|
9
|
-
* Canonical SDK behavior defaults.
|
|
10
|
-
*
|
|
11
|
-
* via `mergeSdkBehavior()` in each SDK's `oagen.config.ts`.
|
|
9
|
+
* Canonical SDK behavior defaults. Per-language or per-project overrides can
|
|
10
|
+
* be applied via `mergeSdkBehavior()` in each SDK's `oagen.config.ts`.
|
|
12
11
|
*
|
|
13
12
|
* - Retry: exponential backoff with jitter, retries on 429/5xx
|
|
14
13
|
* - Errors: standard HTTP status → exception kind mapping
|
|
@@ -51,12 +50,11 @@ function defaultSdkBehavior() {
|
|
|
51
50
|
429: "RateLimitExceeded"
|
|
52
51
|
},
|
|
53
52
|
serverErrorKind: "Server",
|
|
54
|
-
clientErrorKind: "Api"
|
|
55
|
-
errorDocUrlTemplate: "https://workos.com/docs/errors/{code}"
|
|
53
|
+
clientErrorKind: "Api"
|
|
56
54
|
},
|
|
57
55
|
telemetry: {
|
|
58
56
|
enabledByDefault: true,
|
|
59
|
-
headerName: "X-
|
|
57
|
+
headerName: "X-Client-Telemetry",
|
|
60
58
|
requestIdHeader: "X-Request-ID"
|
|
61
59
|
},
|
|
62
60
|
pagination: { autoPageDelayMs: 0 },
|
|
@@ -1796,11 +1794,11 @@ function inferVerb(method, path) {
|
|
|
1796
1794
|
* Uses the last non-param segment (the resource being operated on).
|
|
1797
1795
|
*
|
|
1798
1796
|
* Examples:
|
|
1799
|
-
* /
|
|
1800
|
-
* /
|
|
1801
|
-
* /
|
|
1797
|
+
* /accounts/users → "Users"
|
|
1798
|
+
* /accounts/users/{id} → "User" (singular for item operations)
|
|
1799
|
+
* /accounts/users/{id}/auth_factors → "AuthFactors"
|
|
1802
1800
|
* /organizations/{id}/api_keys → "ApiKeys"
|
|
1803
|
-
* /
|
|
1801
|
+
* /auth/authorize → "Authorize" (action endpoint)
|
|
1804
1802
|
*/
|
|
1805
1803
|
function inferResourceFromPath(path) {
|
|
1806
1804
|
const segments = path.split("/").filter(Boolean);
|
|
@@ -2446,6 +2444,7 @@ async function parseSpec(specPath, options) {
|
|
|
2446
2444
|
const fieldInlineModels = extractInlineModelsFromSchemas(spec.components?.schemas);
|
|
2447
2445
|
clearSchemaNameTransform();
|
|
2448
2446
|
const finalModels = collapseJsonSuffixModels(mergeFieldInlineModels(responseNormalizedModels, fieldInlineModels), services);
|
|
2447
|
+
applyFieldHints(finalModels, options?.fieldHints);
|
|
2449
2448
|
collectInlineEnumsFromModels(finalModels, enums);
|
|
2450
2449
|
collectInlineEnumsFromOperations(services, enums);
|
|
2451
2450
|
const auth = extractAuthSchemes(spec.components?.securitySchemes);
|
|
@@ -2468,6 +2467,22 @@ async function parseSpec(specPath, options) {
|
|
|
2468
2467
|
validateModelRefs(result);
|
|
2469
2468
|
return result;
|
|
2470
2469
|
}
|
|
2470
|
+
/**
|
|
2471
|
+
* Apply `fieldHints` onto the built models, setting `Field.domainName` for each
|
|
2472
|
+
* matching (model name, wire field name) pair. Serialization still uses
|
|
2473
|
+
* `Field.name`; only the domain-facing identifier changes.
|
|
2474
|
+
*/
|
|
2475
|
+
function applyFieldHints(models, fieldHints) {
|
|
2476
|
+
if (!fieldHints) return;
|
|
2477
|
+
for (const model of models) {
|
|
2478
|
+
const hints = fieldHints[model.name];
|
|
2479
|
+
if (!hints) continue;
|
|
2480
|
+
for (const field of model.fields) {
|
|
2481
|
+
const domainName = hints[field.name];
|
|
2482
|
+
if (domainName) field.domainName = domainName;
|
|
2483
|
+
}
|
|
2484
|
+
}
|
|
2485
|
+
}
|
|
2471
2486
|
/** Extract authentication schemes from OpenAPI securitySchemes. */
|
|
2472
2487
|
function extractAuthSchemes(securitySchemes) {
|
|
2473
2488
|
if (!securitySchemes) return void 0;
|