@workos/oagen 0.30.2 → 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 +2885 -651
  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-BO5FieX5.mjs → diff-CAsypxXV.mjs} +107 -89
  10. package/dist/{diff-BO5FieX5.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 +2877 -546
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/{overlay-DWAHPofk.mjs → overlay-Dj3WWlNP.mjs} +44 -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 +2740 -527
  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 +251 -36
  26. package/dist/smoke.d.mts.map +1 -1
  27. package/dist/smoke.mjs +2740 -527
  28. package/dist/smoke.mjs.map +1 -1
  29. package/dist/{tree-sitter-CDKm3n64.mjs → tree-sitter-C7Hk-NDu.mjs} +35 -7
  30. package/dist/tree-sitter-C7Hk-NDu.mjs.map +1 -0
  31. package/dist/{types-BcbGLNkh.d.mts → types-I7W7CNl1.d.mts} +219 -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 +170 -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-nZSxhCfC.d.mts +0 -123
  43. package/dist/differ-nZSxhCfC.d.mts.map +0 -1
  44. package/dist/overlay-DWAHPofk.mjs.map +0 -1
  45. package/dist/tree-sitter-CDKm3n64.mjs.map +0 -1
  46. package/dist/types-BcbGLNkh.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-CDKm3n64.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,6 +911,8 @@ 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,
@@ -1862,7 +1865,10 @@ function registerExtractor(extractor) {
1862
1865
  }
1863
1866
  function getExtractor(language) {
1864
1867
  const extractor = extractors.get(language);
1865
- 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
+ }
1866
1872
  return extractor;
1867
1873
  }
1868
1874
  //#endregion
@@ -2204,7 +2210,7 @@ function buildModelNameMap(surface, spec, lookup, hints, options) {
2204
2210
  }
2205
2211
  }
2206
2212
  /** Categories that can be patched by the overlay retry loop. */
2207
- const PATCHABLE_CATEGORIES = new Set(["symbol_removed", "symbol_renamed"]);
2213
+ const PATCHABLE_CATEGORIES = /* @__PURE__ */ new Set(["symbol_removed", "symbol_renamed"]);
2208
2214
  /** Check if a classified change is patchable by the overlay loop. */
2209
2215
  function isPatchableChange(change) {
2210
2216
  return PATCHABLE_CATEGORIES.has(change.category);
@@ -2259,4 +2265,4 @@ function patchOverlay(overlay, changes, baseline) {
2259
2265
  //#endregion
2260
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 };
2261
2267
 
2262
- //# sourceMappingURL=overlay-DWAHPofk.mjs.map
2268
+ //# sourceMappingURL=overlay-Dj3WWlNP.mjs.map