@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.
- package/README.md +4 -12
- package/dist/cli/index.d.mts +1 -1
- package/dist/cli/index.mjs +3003 -664
- package/dist/cli/index.mjs.map +1 -1
- package/dist/compat/index.d.mts +85 -36
- package/dist/compat/index.d.mts.map +1 -1
- package/dist/compat/index.mjs +33 -23
- package/dist/compat/index.mjs.map +1 -1
- package/dist/{diff-DMFiDAI6.mjs → diff-CAsypxXV.mjs} +109 -89
- package/dist/{diff-DMFiDAI6.mjs.map → diff-CAsypxXV.mjs.map} +1 -1
- package/dist/differ-B0DSuKUZ.d.mts +72 -0
- package/dist/differ-B0DSuKUZ.d.mts.map +1 -0
- package/dist/index.d.mts +129 -61
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2992 -563
- package/dist/index.mjs.map +1 -1
- package/dist/{overlay-BhXruu32.mjs → overlay-Dj3WWlNP.mjs} +45 -38
- package/dist/overlay-Dj3WWlNP.mjs.map +1 -0
- package/dist/scripts/smoke/baseline.d.mts +1 -1
- package/dist/scripts/smoke/baseline.mjs +2848 -537
- package/dist/scripts/smoke/baseline.mjs.map +1 -1
- package/dist/scripts/smoke/sdk-test.d.mts +1 -1
- package/dist/scripts/smoke/sdk-test.mjs +4 -2
- package/dist/scripts/smoke/sdk-test.mjs.map +1 -1
- package/dist/smoke.d.mts +259 -36
- package/dist/smoke.d.mts.map +1 -1
- package/dist/smoke.mjs +2848 -537
- package/dist/smoke.mjs.map +1 -1
- package/dist/{tree-sitter-C6HB4OrC.mjs → tree-sitter-C7Hk-NDu.mjs} +36 -7
- package/dist/tree-sitter-C7Hk-NDu.mjs.map +1 -0
- package/dist/{types-yrBidOg3.d.mts → types-I7W7CNl1.d.mts} +227 -9
- package/dist/types-I7W7CNl1.d.mts.map +1 -0
- package/dist/verify/index.d.mts +7 -8
- package/dist/verify/index.d.mts.map +1 -1
- package/dist/verify/index.mjs +24 -14
- package/dist/verify/index.mjs.map +1 -1
- package/docs/architecture/emitter-contract.md +1 -0
- package/docs/architecture/ir-types.md +175 -17
- package/docs/cli.md +13 -13
- package/package.json +3 -3
- package/skills/check-emitter-parity/SKILL.md +15 -1
- package/dist/differ-DHldxZMr.d.mts +0 -123
- package/dist/differ-DHldxZMr.d.mts.map +0 -1
- package/dist/overlay-BhXruu32.mjs.map +0 -1
- package/dist/tree-sitter-C6HB4OrC.mjs.map +0 -1
- 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
|
|
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
|
-
|
|
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>;
|
|
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>;
|
|
548
|
-
|
|
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
|
|
702
|
-
*
|
|
703
|
-
*
|
|
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?:
|
|
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
|
|
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
|
-
/**
|
|
779
|
-
|
|
780
|
-
|
|
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 {
|
|
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
|
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/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":"
|
|
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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"}
|