@workos/oagen 0.30.1 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +4 -12
  2. package/dist/cli/index.d.mts +1 -1
  3. package/dist/cli/index.mjs +3003 -664
  4. package/dist/cli/index.mjs.map +1 -1
  5. package/dist/compat/index.d.mts +85 -36
  6. package/dist/compat/index.d.mts.map +1 -1
  7. package/dist/compat/index.mjs +33 -23
  8. package/dist/compat/index.mjs.map +1 -1
  9. package/dist/{diff-DMFiDAI6.mjs → diff-CAsypxXV.mjs} +109 -89
  10. package/dist/{diff-DMFiDAI6.mjs.map → diff-CAsypxXV.mjs.map} +1 -1
  11. package/dist/differ-B0DSuKUZ.d.mts +72 -0
  12. package/dist/differ-B0DSuKUZ.d.mts.map +1 -0
  13. package/dist/index.d.mts +129 -61
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs +2992 -563
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/{overlay-BhXruu32.mjs → overlay-Dj3WWlNP.mjs} +45 -38
  18. package/dist/overlay-Dj3WWlNP.mjs.map +1 -0
  19. package/dist/scripts/smoke/baseline.d.mts +1 -1
  20. package/dist/scripts/smoke/baseline.mjs +2848 -537
  21. package/dist/scripts/smoke/baseline.mjs.map +1 -1
  22. package/dist/scripts/smoke/sdk-test.d.mts +1 -1
  23. package/dist/scripts/smoke/sdk-test.mjs +4 -2
  24. package/dist/scripts/smoke/sdk-test.mjs.map +1 -1
  25. package/dist/smoke.d.mts +259 -36
  26. package/dist/smoke.d.mts.map +1 -1
  27. package/dist/smoke.mjs +2848 -537
  28. package/dist/smoke.mjs.map +1 -1
  29. package/dist/{tree-sitter-C6HB4OrC.mjs → tree-sitter-C7Hk-NDu.mjs} +36 -7
  30. package/dist/tree-sitter-C7Hk-NDu.mjs.map +1 -0
  31. package/dist/{types-yrBidOg3.d.mts → types-I7W7CNl1.d.mts} +227 -9
  32. package/dist/types-I7W7CNl1.d.mts.map +1 -0
  33. package/dist/verify/index.d.mts +7 -8
  34. package/dist/verify/index.d.mts.map +1 -1
  35. package/dist/verify/index.mjs +24 -14
  36. package/dist/verify/index.mjs.map +1 -1
  37. package/docs/architecture/emitter-contract.md +1 -0
  38. package/docs/architecture/ir-types.md +175 -17
  39. package/docs/cli.md +13 -13
  40. package/package.json +3 -3
  41. package/skills/check-emitter-parity/SKILL.md +15 -1
  42. package/dist/differ-DHldxZMr.d.mts +0 -123
  43. package/dist/differ-DHldxZMr.d.mts.map +0 -1
  44. package/dist/overlay-BhXruu32.mjs.map +0 -1
  45. package/dist/tree-sitter-C6HB4OrC.mjs.map +0 -1
  46. package/dist/types-yrBidOg3.d.mts.map +0 -1
@@ -0,0 +1,72 @@
1
+ import { Et as LanguageHints, Gt as CompatPolicyHints, Lt as CompatSymbol, Pt as CompatSnapshot, St as ApiSurface, Vt as LanguageId, ot as CompatChangeCategory, st as CompatChangeSeverity, ut as CompatProvenance, wt as DiffResult } from "./types-I7W7CNl1.mjs";
2
+ //#region src/compat/classify.d.ts
3
+ /** A single classified compatibility change. */
4
+ interface ClassifiedChange {
5
+ /** Specific change category. */
6
+ category: CompatChangeCategory;
7
+ /** Policy-aware severity (may differ from defaultSeverityForCategory). */
8
+ severity: CompatChangeSeverity;
9
+ /** Fully-qualified symbol path. */
10
+ symbol: string;
11
+ /** Deterministic ID for grouping related changes across languages. */
12
+ conceptualChangeId: string;
13
+ /** Where the drift originated. */
14
+ provenance: CompatProvenance;
15
+ /** Description of the old state. */
16
+ old: Record<string, string>;
17
+ /** Description of the new state. */
18
+ new: Record<string, string>;
19
+ /** Human-readable explanation. */
20
+ message: string;
21
+ /**
22
+ * Optional spec-level remediation hint. Set by post-classification rules
23
+ * (see `detectForkedSchemas` in differ.ts) when a change has a recognized
24
+ * upstream root cause that the spec author can fix. Surfaces in both the
25
+ * machine-readable report and the human-readable summary.
26
+ */
27
+ remediation?: string;
28
+ }
29
+ /** Result of classifying all changes between two snapshots. */
30
+ interface ClassificationResult {
31
+ changes: ClassifiedChange[];
32
+ summary: {
33
+ breaking: number;
34
+ softRisk: number;
35
+ additive: number;
36
+ };
37
+ }
38
+ /**
39
+ * Classify changes between a baseline and candidate symbol.
40
+ * Returns one or more classified changes for the diff.
41
+ */
42
+ declare function classifySymbolChanges(baseline: CompatSymbol, candidate: CompatSymbol | undefined, policy: CompatPolicyHints, language?: LanguageId): ClassifiedChange[];
43
+ /**
44
+ * Classify a new symbol as additive.
45
+ */
46
+ declare function classifyAddedSymbol(symbol: CompatSymbol): ClassifiedChange;
47
+ /** Summarize a list of classified changes by severity. */
48
+ declare function summarizeChanges(changes: ClassifiedChange[]): ClassificationResult['summary'];
49
+ //#endregion
50
+ //#region src/compat/differ.d.ts
51
+ /** Result of diffing two compat snapshots. */
52
+ interface CompatDiffResult {
53
+ changes: ClassifiedChange[];
54
+ summary: ClassificationResult['summary'];
55
+ }
56
+ /**
57
+ * Diff two compat snapshots, producing classified changes with
58
+ * policy-aware severity.
59
+ */
60
+ declare function diffSnapshots(baseline: CompatSnapshot, candidate: CompatSnapshot, policy?: CompatPolicyHints): CompatDiffResult;
61
+ /**
62
+ * Compare two ApiSurface objects and return a DiffResult.
63
+ *
64
+ * This preserves the existing diffing behavior used by the overlay retry loop,
65
+ * compat check, and all existing tests. The internal implementation uses the
66
+ * same algorithms as before to maintain full backward compatibility with
67
+ * overlay patching and verification workflows.
68
+ */
69
+ declare function diffSurfaces(baseline: ApiSurface, candidate: ApiSurface, hints: LanguageHints): DiffResult;
70
+ //#endregion
71
+ export { ClassifiedChange as a, summarizeChanges as c, ClassificationResult as i, diffSnapshots as n, classifyAddedSymbol as o, diffSurfaces as r, classifySymbolChanges as s, CompatDiffResult as t };
72
+ //# sourceMappingURL=differ-B0DSuKUZ.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"differ-B0DSuKUZ.d.mts","names":[],"sources":["../src/compat/classify.ts","../src/compat/differ.ts"],"mappings":";;;UAaiB;;EAEf,UAAU;;EAEV,UAAU;;EAEV;;EAEA;;EAEA,YAAY;;EAEZ,KAAK;;EAEL,KAAK;;EAEL;;;;;;;EAOA;;;UAIe;EACf,SAAS;EACT;IACE;IACA;IACA;;;;;;;iBAmMY,sBACd,UAAU,cACV,WAAW,0BACX,QAAQ,mBACR,WAAW,aACV;;;;iBAgYa,oBAAoB,QAAQ,eAAe;;iBAc3C,iBAAiB,SAAS,qBAAqB;;;;UCpmB9C;EACf,SAAS;EACT,SAAS;;;;;;iBAOK,cACd,UAAU,gBACV,WAAW,gBACX,SAAS,oBACR;;;;;;;;;iBAkqBa,aAAa,UAAU,YAAY,WAAW,YAAY,OAAO,gBAAgB"}
package/dist/index.d.mts CHANGED
@@ -1,5 +1,4 @@
1
- import { A as collectEnumRefs, B as ErrorPolicy, C as Service, D as UnionType, E as TypeRef, F as validateModelHints, G as RequestGuardPolicy, H as LogEvent, I as walkTypeRef, J as TelemetryPolicy, K as RetryPolicy, L as AiAgentEnvVar, M as collectModelRefs, N as collectRequestBodyModels, O as assertNever, P as mapTypeRef, Q as mergeSdkBehavior, R as BackoffStrategy, S as ServerEntry, T as TypeParam, U as LoggingPolicy, V as IdempotencyPolicy, W as PaginationPolicy, X as UserAgentPolicy, Y as TimeoutPolicy, Z as defaultSdkBehavior, _ as Parameter, a as EnumRef, b as PrimitiveType, c as Field, d as MapType, f as Model, g as PaginationMeta, h as Operation, i as Enum, it as CompatConfig, j as collectFieldDependencies, k as assignModelsToServices, l as HttpMethod, m as NullableType, n as ArrayType, o as EnumValue, p as ModelRef, q as SdkBehavior, r as AuthScheme, s as ErrorResponse, t as ApiSpec, u as LiteralType, v as ParameterGroup, vt as ApiSurface, w as SuccessResponse, wt as OverlayLookup, x as SecurityRequirement, xt as Extractor, y as ParameterGroupVariant, z as DeepPartial } from "./types-yrBidOg3.mjs";
2
-
1
+ import { $ as TimeoutPolicy, A as UnionType, B as walkTypeRef, C as SecurityRequirement, D as SuccessResponse, E as Service, F as collectModelRefs, G as IdempotencyPolicy, H as BackoffStrategy, I as collectRequestBodyModels, J as PaginationPolicy, K as LogEvent, L as collectResponseHeaders, M as assignModelsToServices, N as collectEnumRefs, O as TypeParam, Ot as OverlayLookup, P as collectFieldDependencies, Q as TelemetryPolicy, R as mapTypeRef, S as ResponseHeader, St as ApiSurface, T as ServerEntry, Tt as Extractor, U as DeepPartial, V as AiAgentEnvVar, W as ErrorPolicy, X as RetryPolicy, Y as RequestGuardPolicy, Z as SdkBehavior, _ as PaginationMeta, a as Enum, b as ParameterGroupVariant, c as ErrorResponse, ct as CompatConfig, d as LiteralType, et as UserAgentPolicy, f as MapType, g as Operation, h as NullableType, i as Constraints, j as assertNever, k as TypeRef, l as Field, m as ModelRef, n as ArrayType, nt as mergeSdkBehavior, o as EnumRef, p as Model, q as LoggingPolicy, r as AuthScheme, s as EnumValue, t as ApiSpec, tt as defaultSdkBehavior, u as HttpMethod, v as Parameter, w as SecurityRequirementSet, x as PrimitiveType, y as ParameterGroup, z as validateModelHints } from "./types-I7W7CNl1.mjs";
3
2
  //#region src/ir/operation-hints.d.ts
4
3
  /** Per-operation override keyed by "METHOD /path" (e.g. "POST /auth/token"). */
5
4
  interface OperationHint {
@@ -84,7 +83,7 @@ interface ResolvedWrapper {
84
83
  * 5. For POST on a resource path, if only one path param, use "create" singular
85
84
  * 6. Singularize the resource noun for single-resource operations
86
85
  */
87
- declare function deriveMethodName(op: Operation, _service: Service): string;
86
+ export declare function deriveMethodName(op: Operation, _service: Service): string;
88
87
  /**
89
88
  * Resolve a service name to its mount target.
90
89
  *
@@ -102,7 +101,7 @@ declare function deriveMethodName(op: Operation, _service: Service): string;
102
101
  * @param mounts - Exact-name or trailing-`*` pattern → target service mappings.
103
102
  * @returns The mount target, or `name` unchanged when no rule matches.
104
103
  */
105
- declare function resolveMountTarget(name: string, mounts: Record<string, string>): string;
104
+ export declare function resolveMountTarget(name: string, mounts: Record<string, string>): string;
106
105
  /**
107
106
  * Resolve all operations in the spec, applying hints and mount rules.
108
107
  *
@@ -112,7 +111,7 @@ declare function resolveMountTarget(name: string, mounts: Record<string, string>
112
111
  * exact names or trailing-`*` prefix patterns (see {@link resolveMountTarget})
113
112
  * @returns Resolved operations ready for emitter consumption
114
113
  */
115
- declare function resolveOperations(spec: ApiSpec, hints?: Record<string, OperationHint>, mountRules?: Record<string, string>): ResolvedOperation[];
114
+ export declare function resolveOperations(spec: ApiSpec, hints?: Record<string, OperationHint>, mountRules?: Record<string, string>): ResolvedOperation[];
116
115
  /** One pair of distinct paths that resolved to the same `mountOn.methodName`. */
117
116
  interface ResolvedMethodCollision {
118
117
  /** The shared `Service.method_name` key both paths resolved to. */
@@ -141,7 +140,7 @@ interface ResolvedMethodCollision {
141
140
  * will actually emit before calling this: a collision between two out-of-scope
142
141
  * paths is not that run's problem.
143
142
  */
144
- declare function findResolvedMethodCollisions(resolved: ResolvedOperation[]): ResolvedMethodCollision[];
143
+ export declare function findResolvedMethodCollisions(resolved: ResolvedOperation[]): ResolvedMethodCollision[];
145
144
  //#endregion
146
145
  //#region src/errors.d.ts
147
146
  /**
@@ -151,41 +150,41 @@ declare function findResolvedMethodCollisions(resolved: ResolvedOperation[]): Re
151
150
  * The hint is appended to the `message` so it appears in stack traces and logs.
152
151
  */
153
152
  /** Base class for all oagen errors. */
154
- declare class OagenError extends Error {
153
+ export declare class OagenError extends Error {
155
154
  readonly hint: string;
156
155
  constructor(message: string, hint: string);
157
156
  }
158
157
  /** Thrown when a command should terminate with a specific exit code. */
159
- declare class CommandError extends OagenError {
158
+ export declare class CommandError extends OagenError {
160
159
  readonly exitCode: number;
161
160
  constructor(message: string, hint: string, exitCode: number);
162
161
  }
163
162
  /** Thrown when an OpenAPI spec cannot be parsed or has an unsupported version. */
164
- declare class SpecParseError extends OagenError {
163
+ export declare class SpecParseError extends OagenError {
165
164
  constructor(message: string, hint: string);
166
165
  }
167
166
  /** Thrown when configuration files (manifests, API surfaces, overlays) are missing or malformed. */
168
- declare class ConfigError extends OagenError {
167
+ export declare class ConfigError extends OagenError {
169
168
  constructor(message: string, hint: string);
170
169
  }
171
170
  /** Thrown when a config file exists but cannot be loaded or evaluated. */
172
- declare class ConfigLoadError extends ConfigError {
171
+ export declare class ConfigLoadError extends ConfigError {
173
172
  constructor(message: string, hint: string);
174
173
  }
175
174
  /** Thrown when a config targets a different IR version than the installed package. */
176
- declare class ConfigVersionMismatchError extends ConfigError {
175
+ export declare class ConfigVersionMismatchError extends ConfigError {
177
176
  constructor(message: string, hint: string);
178
177
  }
179
178
  /** Thrown when an API surface extractor encounters a problem. */
180
- declare class ExtractorError extends OagenError {
179
+ export declare class ExtractorError extends OagenError {
181
180
  constructor(message: string, hint: string);
182
181
  }
183
182
  /** Thrown when a requested language or extractor is not found in a registry. */
184
- declare class RegistryError extends OagenError {
183
+ export declare class RegistryError extends OagenError {
185
184
  constructor(message: string, hint: string);
186
185
  }
187
186
  /** Thrown for internal invariant violations that indicate a bug. */
188
- declare class InternalError extends OagenError {
187
+ export declare class InternalError extends OagenError {
189
188
  constructor(message: string, hint: string);
190
189
  }
191
190
  //#endregion
@@ -428,6 +427,15 @@ interface ParamChange {
428
427
  details?: string;
429
428
  }
430
429
  //#endregion
430
+ //#region src/parser/schemas.d.ts
431
+ /**
432
+ * Signature of the `schemaNameTransform` hook. `name` is the cleaned
433
+ * PascalCase name; `originalName` is the `components.schemas` key exactly
434
+ * as spelled in the document, or `undefined` for names oagen synthesises.
435
+ * See `SchemaExtractionOptions.schemaNameTransform`.
436
+ */
437
+ type SchemaNameTransform = (name: string, originalName?: string) => string;
438
+ //#endregion
431
439
  //#region src/parser/parse.d.ts
432
440
  /**
433
441
  * A bundled OpenAPI document, post-`$ref` resolution but pre-IR extraction.
@@ -440,7 +448,13 @@ interface ParamChange {
440
448
  type OpenApiDocument = Record<string, unknown>;
441
449
  interface ParseOptions {
442
450
  operationIdTransform?: (id: string) => string;
443
- schemaNameTransform?: (name: string) => string;
451
+ /**
452
+ * Custom transform for schema (model/enum) names. Receives the cleaned
453
+ * PascalCase name and, for component schemas, the original name as spelled
454
+ * in the document. Returning `originalName` opts out of normalization.
455
+ * See `SchemaExtractionOptions.schemaNameTransform`.
456
+ */
457
+ schemaNameTransform?: SchemaNameTransform;
444
458
  /**
445
459
  * Domain-facing field-name overrides, keyed by IR model name then wire field
446
460
  * name: `{ Connection: { connection_type: 'type' } }`. Sets `Field.domainName`
@@ -464,10 +478,10 @@ interface ParseOptions {
464
478
  */
465
479
  transformSpec?: (spec: OpenApiDocument) => OpenApiDocument;
466
480
  }
467
- declare function parseSpec(specPath: string, options?: ParseOptions): Promise<ApiSpec>;
481
+ export declare function parseSpec(specPath: string, options?: ParseOptions): Promise<ApiSpec>;
468
482
  //#endregion
469
483
  //#region src/engine/orchestrator.d.ts
470
- declare function generate(spec: ApiSpec, emitter: Emitter, options: {
484
+ export declare function generate(spec: ApiSpec, emitter: Emitter, options: {
471
485
  namespace: string;
472
486
  dryRun?: boolean;
473
487
  outputDir: string;
@@ -477,7 +491,8 @@ declare function generate(spec: ApiSpec, emitter: Emitter, options: {
477
491
  operationHints?: Record<string, OperationHint>;
478
492
  mountRules?: Record<string, string>;
479
493
  modelHints?: Record<string, string>;
480
- emitterOptions?: Record<string, unknown>; /** When true, skip deletion of files recorded in the previous manifest but not in the current emission. */
494
+ emitterOptions?: Record<string, unknown>;
495
+ /** When true, skip deletion of files recorded in the previous manifest but not in the current emission. */
481
496
  noPrune?: boolean;
482
497
  /**
483
498
  * Post-mount service names to generate (a `--services` run). When non-empty,
@@ -491,7 +506,7 @@ declare function generate(spec: ApiSpec, emitter: Emitter, options: {
491
506
  }): Promise<GeneratedFile[]>;
492
507
  //#endregion
493
508
  //#region src/engine/generate-files.d.ts
494
- declare function buildEmitterContext(spec: ApiSpec, options: {
509
+ export declare function buildEmitterContext(spec: ApiSpec, options: {
495
510
  namespace: string;
496
511
  outputDir: string;
497
512
  apiSurface?: ApiSurface;
@@ -508,9 +523,9 @@ declare function buildEmitterContext(spec: ApiSpec, options: {
508
523
  /**
509
524
  * Collect model and enum names transitively referenced by service operations.
510
525
  * Walks operation parameters, request bodies, responses, and pagination item
511
- * types, then chases model field references until the set stabilizes.
526
+ * and envelope types, then chases model field references until the set stabilizes.
512
527
  */
513
- declare function collectReferencedNames(services: Service[], models: Model[], opts?: {
528
+ export declare function collectReferencedNames(services: Service[], models: Model[], opts?: {
514
529
  preserveAllDiscriminated?: boolean;
515
530
  }): {
516
531
  models: Set<string>;
@@ -531,10 +546,10 @@ declare function collectReferencedNames(services: Service[], models: Model[], op
531
546
  * consult `ctx.scopedServices` to emit only the selected services' per-service
532
547
  * resource/test files.
533
548
  */
534
- declare function generateAllFiles(spec: ApiSpec, emitter: Emitter, ctx: EmitterContext): GeneratedFile[];
549
+ export declare function generateAllFiles(spec: ApiSpec, emitter: Emitter, ctx: EmitterContext): GeneratedFile[];
535
550
  /** Apply file header to generated files, respecting headerPlacement and JSON files. */
536
- declare function applyFileHeaders(files: GeneratedFile[], header: string): GeneratedFile[];
537
- declare function generateFiles(spec: ApiSpec, emitter: Emitter, options: {
551
+ export declare function applyFileHeaders(files: GeneratedFile[], header: string): GeneratedFile[];
552
+ export declare function generateFiles(spec: ApiSpec, emitter: Emitter, options: {
538
553
  namespace: string;
539
554
  outputDir: string;
540
555
  apiSurface?: ApiSurface;
@@ -544,8 +559,10 @@ declare function generateFiles(spec: ApiSpec, emitter: Emitter, options: {
544
559
  modelHints?: Record<string, string>;
545
560
  emitterOptions?: Record<string, unknown>;
546
561
  target?: string;
547
- priorTargetManifestPaths?: Set<string>; /** Scoped-generation signal (POST-MOUNT names); set on ctx for emitters to gate per-service emission. */
548
- scopedServices?: Set<string>; /** Canonical keys of services already on disk (prior manifest); narrows the scoped aggregate surface. */
562
+ priorTargetManifestPaths?: Set<string>;
563
+ /** Scoped-generation signal (POST-MOUNT names); set on ctx for emitters to gate per-service emission. */
564
+ scopedServices?: Set<string>;
565
+ /** Canonical keys of services already on disk (prior manifest); narrows the scoped aggregate surface. */
549
566
  presentServiceKeys?: Set<string>;
550
567
  }): {
551
568
  files: GeneratedFile[];
@@ -568,13 +585,13 @@ interface WriteResult {
568
585
  * Build a file-level dependency graph from generated files and return only
569
586
  * files reachable from root entry points. Uses tree-sitter to parse imports.
570
587
  */
571
- declare function treeShakeFiles(files: GeneratedFile[], language: string): Promise<GeneratedFile[]>;
572
- declare function mapFilesForTargetIntegration(files: GeneratedFile[], language: string): GeneratedFile[];
588
+ export declare function treeShakeFiles(files: GeneratedFile[], language: string): Promise<GeneratedFile[]>;
589
+ export declare function mapFilesForTargetIntegration(files: GeneratedFile[], language: string): GeneratedFile[];
573
590
  interface IntegrateResult extends WriteResult {
574
591
  /** Final set of paths this run claims ownership of in the target (post tree-shake + conflict resolution). */
575
592
  emittedPaths: string[];
576
593
  }
577
- declare function integrateGeneratedFiles(opts: {
594
+ export declare function integrateGeneratedFiles(opts: {
578
595
  files: GeneratedFile[];
579
596
  language: string;
580
597
  targetDir: string;
@@ -582,11 +599,11 @@ declare function integrateGeneratedFiles(opts: {
582
599
  }): Promise<IntegrateResult>;
583
600
  //#endregion
584
601
  //#region src/engine/registry.d.ts
585
- declare function registerEmitter(emitter: Emitter): void;
586
- declare function getEmitter(language: string): Emitter;
602
+ export declare function registerEmitter(emitter: Emitter): void;
603
+ export declare function getEmitter(language: string): Emitter;
587
604
  //#endregion
588
605
  //#region src/differ/diff.d.ts
589
- declare function diffSpecs(oldSpec: ApiSpec, newSpec: ApiSpec): DiffReport;
606
+ export declare function diffSpecs(oldSpec: ApiSpec, newSpec: ApiSpec): DiffReport;
590
607
  //#endregion
591
608
  //#region src/differ/direction.d.ts
592
609
  /**
@@ -611,18 +628,18 @@ type DirectionIndex = ReadonlyMap<string, ModelDirection>;
611
628
  * operations weren't supplied) stay `unknown`, which preserves the conservative
612
629
  * pre-direction classification.
613
630
  */
614
- declare function buildDirectionIndex(...specs: ApiSpec[]): DirectionIndex;
615
- declare function directionOf(index: DirectionIndex | undefined, modelName: string): ModelDirection;
631
+ export declare function buildDirectionIndex(...specs: ApiSpec[]): DirectionIndex;
632
+ export declare function directionOf(index: DirectionIndex | undefined, modelName: string): ModelDirection;
616
633
  //#endregion
617
634
  //#region src/utils/naming.d.ts
618
- declare const ACRONYM_SET: Set<string>;
619
- declare function toPascalCase(s: string, acronyms?: Set<string>): string;
620
- declare function toCamelCase(s: string, acronyms?: Set<string>): string;
621
- declare function toSnakeCase(s: string): string;
622
- declare function toKebabCase(s: string): string;
623
- declare function toUpperSnakeCase(s: string): string;
624
- declare function stripBackendPrefixes(name: string): string;
625
- declare function cleanSchemaName(name: string): string;
635
+ export declare const ACRONYM_SET: Set<string>;
636
+ export declare function toPascalCase(s: string, acronyms?: Set<string>): string;
637
+ export declare function toCamelCase(s: string, acronyms?: Set<string>): string;
638
+ export declare function toSnakeCase(s: string): string;
639
+ export declare function toKebabCase(s: string): string;
640
+ export declare function toUpperSnakeCase(s: string): string;
641
+ export declare function stripBackendPrefixes(name: string): string;
642
+ export declare function cleanSchemaName(name: string): string;
626
643
  //#endregion
627
644
  //#region src/engine/operation-plan.d.ts
628
645
  interface OperationPlan {
@@ -644,7 +661,7 @@ interface OperationPlan {
644
661
  hasQueryParams: boolean;
645
662
  isAsync: boolean;
646
663
  }
647
- declare function planOperation(op: Operation): OperationPlan;
664
+ export declare function planOperation(op: Operation): OperationPlan;
648
665
  //#endregion
649
666
  //#region src/utils/escape.d.ts
650
667
  /**
@@ -661,7 +678,7 @@ declare function planOperation(op: Operation): OperationPlan;
661
678
  * `"""`, Ruby `=begin`/`#`, ...) must apply language-appropriate escaping
662
679
  * instead of, or in addition to, this helper.
663
680
  */
664
- declare function escapeBlockComment(text: string): string;
681
+ export declare function escapeBlockComment(text: string): string;
665
682
  /**
666
683
  * Sanitize a string for safe interpolation into a JS/TS identifier position
667
684
  * (class name, variable, property, ...).
@@ -677,7 +694,7 @@ declare function escapeBlockComment(text: string): string;
677
694
  * this does not disturb legitimate output. A leading digit is prefixed with `_`
678
695
  * so the result is always a usable identifier.
679
696
  */
680
- declare function sanitizeIdentifier(text: string): string;
697
+ export declare function sanitizeIdentifier(text: string): string;
681
698
  //#endregion
682
699
  //#region src/cli/config-loader.d.ts
683
700
  interface OagenConfig {
@@ -698,11 +715,18 @@ interface OagenConfig {
698
715
  operationIdTransform?: (id: string) => string;
699
716
  /**
700
717
  * Custom transform for schema (model/enum) names. Applied after the built-in
701
- * cleanSchemaName normalization. Receives the cleaned PascalCase name; return
702
- * the desired name. Collisions are detected automatically -- if a transform
703
- * would produce a duplicate name, the original is kept.
718
+ * cleanSchemaName normalization. Receives the cleaned PascalCase name and,
719
+ * for component schemas, the original name exactly as spelled in the
720
+ * document (`originalName`); return the desired name. Returning
721
+ * `originalName` opts that schema out of normalization (e.g. keeps
722
+ * `HTTPConfig` instead of `HttpConfig`); only do so when it is a valid
723
+ * identifier, since keys like `user-profile` are otherwise fixed by
724
+ * cleanSchemaName. `originalName` is undefined for
725
+ * any name oagen synthesises (inline enums, request-body variant models,
726
+ * title-derived names). Collisions are detected automatically -- if a
727
+ * transform would produce a duplicate name, the cleaned name is kept.
704
728
  */
705
- schemaNameTransform?: (name: string) => string;
729
+ schemaNameTransform?: SchemaNameTransform;
706
730
  /** Base URL for documentation links. When set, relative paths in descriptions
707
731
  * (e.g. `/reference/users/user`) are expanded to full URLs. */
708
732
  docUrl?: string;
@@ -769,20 +793,64 @@ interface OagenConfig {
769
793
  * 1. An explicit `example` carried on the field/param.
770
794
  * 2. The `default` from the schema.
771
795
  * 3. The first enum value, when the type is an enum.
772
- * 4. A type-driven default (e.g. `"string_example"`, `1`, `true`).
796
+ * 4. A type-driven value (e.g. `"string_example"`, `1`, `true`), generated
797
+ * inside the field's/param's `constraints` when it carries any.
798
+ *
799
+ * A document-given `example` or `default` is returned verbatim, never
800
+ * adjusted, even when it violates a limit the same document declares: the
801
+ * author's value is the better illustration, and a snippet is not a
802
+ * validator. Only generated values are shaped by `constraints`:
803
+ *
804
+ * - Numbers are chosen to satisfy every declared bound and `multipleOf`:
805
+ * with only a lower bound, the smallest value at or just past it (rounded
806
+ * up to the next multiple); with only an upper bound, the largest value
807
+ * at or just below it (rounded down); with both, the smallest integer
808
+ * inside for `integer` and the midpoint for `number`, snapped to a
809
+ * multiple inside the range; with none, `1` (or the first multiple).
810
+ * Only when no value can satisfy the limits together (contradictory
811
+ * bounds, or no multiple between them) is the lower bound returned as
812
+ * is.
813
+ * - Plain strings are padded (by repeating the sample) to `minLength` and
814
+ * truncated to `maxLength`; format-driven values (`date-time`, `email`,
815
+ * `uuid`, ...) are never touched. A `pattern` is not synthesized: the
816
+ * sample is kept even when it does not match, since generating a string
817
+ * from an arbitrary regex is out of scope.
818
+ * - Arrays emit `max(1, minItems)` items capped at `maxItems` (an explicit
819
+ * `maxItems: 0` gives `[]`). Under `uniqueItems`, generated primitives
820
+ * vary by index (strings get the index appended, numbers get it added,
821
+ * booleans alternate — so a unique boolean array holds at most two
822
+ * items); enum, literal and model items are not varied.
823
+ * - Maps emit `max(1, minProperties)` entries capped at `maxProperties`:
824
+ * one entry keeps the `key` name, more are `key1`, `key2`, ...
825
+ * - Model-level `minProperties` / `maxProperties` are ignored: every
826
+ * non-deprecated, non-readOnly field is emitted anyway.
827
+ *
828
+ * Snippets are illustrative, so generation has a size budget: at most
829
+ * {@link MAX_GENERATED_LENGTH} characters per string and
830
+ * {@link MAX_GENERATED_ITEMS} items per array or entries per map. A
831
+ * `minLength`, `minItems` or `minProperties` above the budget yields the
832
+ * capped size — a readable sample rather than a conforming one.
833
+ *
834
+ * Limits nested inside array items or map values are not carried by the
835
+ * IR, so items and values are generated unconstrained.
773
836
  *
774
837
  * Recursion through models/arrays/maps is depth-limited; cyclic models
775
838
  * collapse to a placeholder object rather than blowing the stack.
776
839
  */
777
840
  interface ExampleBuilder {
778
- /** Build an example value for a single type reference (no field metadata). */
779
- forType(type: TypeRef): unknown;
780
- /** Build an example value for a field, honoring its `example`/`default`. */
841
+ /**
842
+ * Build an example value for a single type reference (no field metadata),
843
+ * generated inside `constraints` when given.
844
+ */
845
+ forType(type: TypeRef, constraints?: Constraints): unknown;
846
+ /** Build an example value for a field, honoring its `example`/`default` and `constraints`. */
781
847
  forField(field: Field): unknown;
848
+ /** Build an example value for a parameter, honoring its `example`/`default` and `constraints`. */
849
+ forParameter(param: Parameter): unknown;
782
850
  /** Build an example object from a model, keyed by field wire name. */
783
851
  forModel(model: Model | string): Record<string, unknown>;
784
852
  }
785
- declare function createExampleBuilder(spec: ApiSpec): ExampleBuilder;
853
+ export declare function createExampleBuilder(spec: ApiSpec): ExampleBuilder;
786
854
  //#endregion
787
855
  //#region src/snippets/types.d.ts
788
856
  /**
@@ -847,7 +915,7 @@ interface SnippetEmitter {
847
915
  * {@link snippetResultsToFiles} for a convenience that writes
848
916
  * `<outputDir>/<language>/<methodName>-request.<ext>`.
849
917
  */
850
- declare function runSnippetEmitters(emitters: SnippetEmitter[], ctx: EmitterContext): SnippetResult[];
918
+ export declare function runSnippetEmitters(emitters: SnippetEmitter[], ctx: EmitterContext): SnippetResult[];
851
919
  /**
852
920
  * Convenience: turn snippet results into oagen-style {@link GeneratedFile}s
853
921
  * under `<outputDir>/<language>/<methodName>-request.<extension>`.
@@ -857,7 +925,7 @@ declare function runSnippetEmitters(emitters: SnippetEmitter[], ctx: EmitterCont
857
925
  * `content/reference/{tag}/_code/...`) typically skip this helper and route
858
926
  * `SnippetResult.operationId` / `mountTarget` through their own mapping.
859
927
  */
860
- declare function snippetResultsToFiles(results: SnippetResult[], outputDir?: string): GeneratedFile[];
928
+ export declare function snippetResultsToFiles(results: SnippetResult[], outputDir?: string): GeneratedFile[];
861
929
  //#endregion
862
930
  //#region src/snippets/shared.d.ts
863
931
  /**
@@ -897,15 +965,15 @@ interface CollectedArgs {
897
965
  /** Body field wire names that also appear as path params. */
898
966
  collisionNames: Set<string>;
899
967
  }
900
- declare function collectSnippetArgs(resolved: ResolvedOperation, ctx: EmitterContext, examples: ExampleBuilder): CollectedArgs;
968
+ export declare function collectSnippetArgs(resolved: ResolvedOperation, ctx: EmitterContext, examples: ExampleBuilder): CollectedArgs;
901
969
  /**
902
970
  * Build the arg list for a single split (wrapper) variant. The wrapper's
903
971
  * `exposedParams` is the contract; fields are looked up on the variant model
904
972
  * by exact name and then snake-case-normalized name. Optional status comes
905
973
  * from `wrapper.optionalParams` first, then from the field's `required` flag.
906
974
  */
907
- declare function collectWrapperArgs(wrapper: ResolvedWrapper, ctx: EmitterContext, examples: ExampleBuilder): SnippetArg[];
908
- declare function hiddenParamSet(resolved: ResolvedOperation): Set<string>;
975
+ export declare function collectWrapperArgs(wrapper: ResolvedWrapper, ctx: EmitterContext, examples: ExampleBuilder): SnippetArg[];
976
+ export declare function hiddenParamSet(resolved: ResolvedOperation): Set<string>;
909
977
  //#endregion
910
- export { ACRONYM_SET, type AiAgentEnvVar, type ApiSpec, type ArrayType, type AuthScheme, type BackoffStrategy, type Change, type CollectedArgs, CommandError, ConfigError, ConfigLoadError, ConfigVersionMismatchError, type DeepPartial, type DiffReport, type DirectionIndex, type Emitter, type EmitterContext, type Enum, type EnumAdded, type EnumModified, type EnumRef, type EnumRemoved, type EnumValue, type EnumValueChange, type ErrorPolicy, type ErrorResponse, type ExampleBuilder, ExtractorError, type Field, type FieldChange, type FormatCommand, type GeneratedFile, type HttpMethod, type IdempotencyPolicy, InternalError, type LiteralType, type LogEvent, type LoggingPolicy, type MapType, type Model, type ModelAdded, type ModelDirection, type ModelModified, type ModelRef, type ModelRemoved, type NullableType, type OagenConfig, OagenError, type OpenApiDocument, type Operation, type OperationAdded, type OperationHint, type OperationModified, type OperationPlan, type OperationRemoved, type OperationsMap, type OperationsMapEntry, type PaginationMeta, type PaginationPolicy, type ParamChange, type Parameter, type ParameterGroup, type ParameterGroupVariant, type ParseOptions, type PrimitiveType, RegistryError, type RequestGuardPolicy, type ResolvedMethodCollision, type ResolvedOperation, type ResolvedWrapper, type RetryPolicy, type SdkBehavior, type SecurityRequirement, type ServerEntry, type Service, type ServiceAdded, type ServiceRemoved, type SnippetArg, type SnippetEmitter, type SnippetResult, SpecParseError, type SplitHint, type SuccessResponse, type TelemetryPolicy, type TimeoutPolicy, type TypeParam, type TypeRef, type UnionType, type UserAgentPolicy, applyFileHeaders, assertNever, assignModelsToServices, buildDirectionIndex, buildEmitterContext, cleanSchemaName, collectEnumRefs, collectFieldDependencies, collectModelRefs, collectReferencedNames, collectRequestBodyModels, collectSnippetArgs, collectWrapperArgs, createExampleBuilder, defaultSdkBehavior, deriveMethodName, diffSpecs, directionOf, escapeBlockComment, findResolvedMethodCollisions, generate, generateAllFiles, generateFiles, getEmitter, hiddenParamSet, integrateGeneratedFiles, mapFilesForTargetIntegration, mapTypeRef, mergeSdkBehavior, parseSpec, planOperation, registerEmitter, resolveMountTarget, resolveOperations, runSnippetEmitters, sanitizeIdentifier, snippetResultsToFiles, stripBackendPrefixes, toCamelCase, toKebabCase, toPascalCase, toSnakeCase, toUpperSnakeCase, treeShakeFiles, validateModelHints, walkTypeRef };
978
+ export { type AiAgentEnvVar, type ApiSpec, type ArrayType, type AuthScheme, type BackoffStrategy, type Change, type CollectedArgs, type Constraints, type DeepPartial, type DiffReport, type DirectionIndex, type Emitter, type EmitterContext, type Enum, type EnumAdded, type EnumModified, type EnumRef, type EnumRemoved, type EnumValue, type EnumValueChange, type ErrorPolicy, type ErrorResponse, type ExampleBuilder, type Field, type FieldChange, type FormatCommand, type GeneratedFile, type HttpMethod, type IdempotencyPolicy, type LiteralType, type LogEvent, type LoggingPolicy, type MapType, type Model, type ModelAdded, type ModelDirection, type ModelModified, type ModelRef, type ModelRemoved, type NullableType, type OagenConfig, type OpenApiDocument, type Operation, type OperationAdded, type OperationHint, type OperationModified, type OperationPlan, type OperationRemoved, type OperationsMap, type OperationsMapEntry, type PaginationMeta, type PaginationPolicy, type ParamChange, type Parameter, type ParameterGroup, type ParameterGroupVariant, type ParseOptions, type PrimitiveType, type RequestGuardPolicy, type ResolvedMethodCollision, type ResolvedOperation, type ResolvedWrapper, type ResponseHeader, type RetryPolicy, type SchemaNameTransform, type SdkBehavior, type SecurityRequirement, type SecurityRequirementSet, type ServerEntry, type Service, type ServiceAdded, type ServiceRemoved, type SnippetArg, type SnippetEmitter, type SnippetResult, type SplitHint, type SuccessResponse, type TelemetryPolicy, type TimeoutPolicy, type TypeParam, type TypeRef, type UnionType, type UserAgentPolicy, assertNever, assignModelsToServices, collectEnumRefs, collectFieldDependencies, collectModelRefs, collectRequestBodyModels, collectResponseHeaders, defaultSdkBehavior, mapTypeRef, mergeSdkBehavior, validateModelHints, walkTypeRef };
911
979
  //# sourceMappingURL=index.d.mts.map
@@ -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/differ/direction.ts","../src/utils/naming.ts","../src/engine/operation-plan.ts","../src/utils/escape.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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"}
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/schemas.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/differ/direction.ts","../src/utils/naming.ts","../src/engine/operation-plan.ts","../src/utils/escape.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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"}