@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
@@ -1,4 +1,4 @@
1
- import { f as toSnakeCase, j as walkTypeRef, o as splitWords, x as RegistryError } from "./tree-sitter-C6HB4OrC.mjs";
1
+ import { M as walkTypeRef, f as toSnakeCase, k as collectResponseHeaders, o as splitWords, x as RegistryError } from "./tree-sitter-C7Hk-NDu.mjs";
2
2
  //#region src/compat/policy.ts
3
3
  /** Built-in language defaults. */
4
4
  const LANGUAGE_DEFAULTS = {
@@ -289,7 +289,7 @@ function inferPassingStyle(language) {
289
289
  }
290
290
  //#endregion
291
291
  //#region src/compat/config.ts
292
- const BREAKING_CATEGORIES = new Set([
292
+ const BREAKING_CATEGORIES = /* @__PURE__ */ new Set([
293
293
  "symbol_removed",
294
294
  "symbol_renamed",
295
295
  "parameter_removed",
@@ -307,7 +307,7 @@ const BREAKING_CATEGORIES = new Set([
307
307
  "enum_member_value_changed",
308
308
  "staticness_changed"
309
309
  ]);
310
- const SOFT_RISK_CATEGORIES = new Set([
310
+ const SOFT_RISK_CATEGORIES = /* @__PURE__ */ new Set([
311
311
  "parameter_added_non_terminal_optional",
312
312
  "constructor_reordered_named_friendly",
313
313
  "default_value_changed",
@@ -590,37 +590,38 @@ function classifyParameterChanges(baseline, candidate, policy, specRef, language
590
590
  specRef
591
591
  }));
592
592
  if (baseParam.position !== candParam.position) {
593
- if (isConstructor) if (policy.constructorOrderMatters) changes.push(makeChange({
594
- category: "constructor_position_changed_order_sensitive",
595
- symbol: baseline.fqName,
596
- old: {
597
- parameter: baseParam.publicName,
598
- position: String(baseParam.position)
599
- },
600
- new: {
601
- parameter: candParam.publicName,
602
- position: String(candParam.position)
603
- },
604
- message: `Parameter "${baseParam.publicName}" moved from position ${baseParam.position} to ${candParam.position} on "${baseline.displayName}"`,
605
- policy,
606
- specRef
607
- }));
608
- else changes.push(makeChange({
609
- category: "constructor_reordered_named_friendly",
610
- symbol: baseline.fqName,
611
- old: {
612
- parameter: baseParam.publicName,
613
- position: String(baseParam.position)
614
- },
615
- new: {
616
- parameter: candParam.publicName,
617
- position: String(candParam.position)
618
- },
619
- message: `Parameter "${baseParam.publicName}" reordered on "${baseline.displayName}" (named-friendly language)`,
620
- policy,
621
- specRef
622
- }));
623
- else if (baseParam.passing === "positional") changes.push(makeChange({
593
+ if (isConstructor) {
594
+ if (policy.constructorOrderMatters) changes.push(makeChange({
595
+ category: "constructor_position_changed_order_sensitive",
596
+ symbol: baseline.fqName,
597
+ old: {
598
+ parameter: baseParam.publicName,
599
+ position: String(baseParam.position)
600
+ },
601
+ new: {
602
+ parameter: candParam.publicName,
603
+ position: String(candParam.position)
604
+ },
605
+ message: `Parameter "${baseParam.publicName}" moved from position ${baseParam.position} to ${candParam.position} on "${baseline.displayName}"`,
606
+ policy,
607
+ specRef
608
+ }));
609
+ else changes.push(makeChange({
610
+ category: "constructor_reordered_named_friendly",
611
+ symbol: baseline.fqName,
612
+ old: {
613
+ parameter: baseParam.publicName,
614
+ position: String(baseParam.position)
615
+ },
616
+ new: {
617
+ parameter: candParam.publicName,
618
+ position: String(candParam.position)
619
+ },
620
+ message: `Parameter "${baseParam.publicName}" reordered on "${baseline.displayName}" (named-friendly language)`,
621
+ policy,
622
+ specRef
623
+ }));
624
+ } else if (baseParam.passing === "positional") changes.push(makeChange({
624
625
  category: "parameter_position_changed_order_sensitive",
625
626
  symbol: baseline.fqName,
626
627
  old: {
@@ -751,7 +752,7 @@ function summarizeChanges(changes) {
751
752
  //#endregion
752
753
  //#region src/compat/language-hints.ts
753
754
  /** Untyped map patterns — hoisted to avoid allocation on every isTypeEquivalent call. */
754
- const UNTYPED_MAP_PATTERNS = new Set([
755
+ const UNTYPED_MAP_PATTERNS = /* @__PURE__ */ new Set([
755
756
  "Record<string, unknown>",
756
757
  "Record<string, any>",
757
758
  "{ [key: string]: any; }",
@@ -910,9 +911,12 @@ function specDerivedNames(spec, hints) {
910
911
  for (const op of service.operations) {
911
912
  collectTypeRefNames(op.response, names, hints, topLevelEnumNames);
912
913
  if (op.requestBody) collectTypeRefNames(op.requestBody, names, hints, topLevelEnumNames);
914
+ for (const field of op.pagination?.envelopeFields ?? []) collectTypeRefNames(field.type, names, hints, topLevelEnumNames);
915
+ for (const header of collectResponseHeaders(op)) collectTypeRefNames(header.type, names, hints, topLevelEnumNames);
913
916
  for (const p of [
914
917
  ...op.pathParams,
915
918
  ...op.queryParams,
919
+ ...op.bodyOwnedQueryParams ?? [],
916
920
  ...op.headerParams,
917
921
  ...op.cookieParams ?? []
918
922
  ]) collectTypeRefNames(p.type, names, hints, topLevelEnumNames);
@@ -1861,7 +1865,10 @@ function registerExtractor(extractor) {
1861
1865
  }
1862
1866
  function getExtractor(language) {
1863
1867
  const extractor = extractors.get(language);
1864
- if (!extractor) throw new RegistryError(`No extractor registered for language: ${language}. Available: ${[...extractors.keys()].join(", ") || "(none)"}`, `Register an extractor for "${language}" via registerExtractor() or add one in your oagen.config.ts plugin.`);
1868
+ if (!extractor) {
1869
+ const available = [...extractors.keys()].join(", ") || "(none)";
1870
+ throw new RegistryError(`No extractor registered for language: ${language}. Available: ${available}`, `Register an extractor for "${language}" via registerExtractor() or add one in your oagen.config.ts plugin.`);
1871
+ }
1865
1872
  return extractor;
1866
1873
  }
1867
1874
  //#endregion
@@ -2203,7 +2210,7 @@ function buildModelNameMap(surface, spec, lookup, hints, options) {
2203
2210
  }
2204
2211
  }
2205
2212
  /** Categories that can be patched by the overlay retry loop. */
2206
- const PATCHABLE_CATEGORIES = new Set(["symbol_removed", "symbol_renamed"]);
2213
+ const PATCHABLE_CATEGORIES = /* @__PURE__ */ new Set(["symbol_removed", "symbol_renamed"]);
2207
2214
  /** Check if a classified change is patchable by the overlay loop. */
2208
2215
  function isPatchableChange(change) {
2209
2216
  return PATCHABLE_CATEGORIES.has(change.category);
@@ -2258,4 +2265,4 @@ function patchOverlay(overlay, changes, baseline) {
2258
2265
  //#endregion
2259
2266
  export { getDefaultPolicy as A, defaultSeverityForCategory as C, isCompatibleSchemaVersion as D, COMPAT_SCHEMA_VERSION as E, validateSnapshot as O, summarizeChanges as S, apiSurfaceToSnapshot as T, nodeHints as _, registerExtractor as a, classifyAddedSymbol as b, filterSurface as c, specDerivedHttpKeys as d, specDerivedMethodPaths as f, namedTypeWordsOverlap as g, defaultIsNullableOnlyDifference as h, getExtractor as i, mergePolicy as j, ALL_LANGUAGE_IDS as k, specDerivedEnumValues as l, NAMED_TYPE_RE as m, isPatchableChange as n, diffSnapshots as o, specDerivedNames as p, patchOverlay as r, diffSurfaces as s, buildOverlayLookup as t, specDerivedFieldPaths as u, resolveHints as v, severityMeetsThreshold as w, classifySymbolChanges as x, typeExistsInSurface as y };
2260
2267
 
2261
- //# sourceMappingURL=overlay-BhXruu32.mjs.map
2268
+ //# sourceMappingURL=overlay-Dj3WWlNP.mjs.map