@workos/oagen 0.22.7 → 0.24.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 (43) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/index.mjs +207 -33
  3. package/dist/cli/index.mjs.map +1 -1
  4. package/dist/compat/index.d.mts +2 -2
  5. package/dist/compat/index.mjs +7 -7
  6. package/dist/compat/index.mjs.map +1 -1
  7. package/dist/{diff-D4XaiPeA.mjs → diff-B7dMUCoJ.mjs} +128 -19
  8. package/dist/diff-B7dMUCoJ.mjs.map +1 -0
  9. package/dist/{differ-Q13KY9Rd.d.mts → differ-DMmw0tbA.d.mts} +5 -5
  10. package/dist/{differ-Q13KY9Rd.d.mts.map → differ-DMmw0tbA.d.mts.map} +1 -1
  11. package/dist/index.d.mts +50 -9
  12. package/dist/index.d.mts.map +1 -1
  13. package/dist/index.mjs +74 -11
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/{overlay-cb32jDBS.mjs → overlay-sQHQoN0I.mjs} +4 -4
  16. package/dist/overlay-sQHQoN0I.mjs.map +1 -0
  17. package/dist/scripts/smoke/baseline.mjs +73 -10
  18. package/dist/scripts/smoke/baseline.mjs.map +1 -1
  19. package/dist/scripts/smoke/sdk-test.mjs +3 -3
  20. package/dist/scripts/smoke/sdk-test.mjs.map +1 -1
  21. package/dist/smoke.d.mts +3 -4
  22. package/dist/smoke.d.mts.map +1 -1
  23. package/dist/smoke.mjs +73 -10
  24. package/dist/smoke.mjs.map +1 -1
  25. package/dist/{types-DZrKFHis.d.mts → types-nM5Kp7UP.d.mts} +7 -9
  26. package/dist/types-nM5Kp7UP.d.mts.map +1 -0
  27. package/dist/verify/index.d.mts +2 -2
  28. package/dist/verify/index.mjs +2 -2
  29. package/docs/architecture/extractor-contract.md +2 -2
  30. package/docs/architecture/pipeline.md +2 -2
  31. package/docs/cli.md +19 -19
  32. package/docs/core/compatibility-policy.md +1 -1
  33. package/docs/core/manifest-schema.md +2 -2
  34. package/package.json +1 -1
  35. package/skills/generate-emitter/SKILL.md +2 -2
  36. package/skills/generate-emitter/references/common-pitfalls.md +1 -1
  37. package/skills/generate-emitter/references/project-scaffold.md +3 -3
  38. package/skills/generate-extractor/SKILL.md +2 -2
  39. package/skills/generate-smoke-test/SKILL.md +1 -1
  40. package/skills/verify-smoke-test/SKILL.md +1 -1
  41. package/dist/diff-D4XaiPeA.mjs.map +0 -1
  42. package/dist/overlay-cb32jDBS.mjs.map +0 -1
  43. package/dist/types-DZrKFHis.d.mts.map +0 -1
@@ -7,9 +7,9 @@ import { execFileSync } from "node:child_process";
7
7
  * Runs an SDK smoke test + diff against an existing raw baseline.
8
8
  *
9
9
  * Usage:
10
- * npm run smoke -- --lang node --sdk-path path/to/workos-node
11
- * npm run smoke -- --lang ruby --sdk-path path/to/workos-ruby
12
- * npm run smoke -- --lang node --sdk-path path/to/workos-node --raw-results custom-baseline.json
10
+ * npm run smoke -- --lang node --sdk-path path/to/acme-node
11
+ * npm run smoke -- --lang ruby --sdk-path path/to/acme-ruby
12
+ * npm run smoke -- --lang node --sdk-path path/to/acme-node --raw-results custom-baseline.json
13
13
  *
14
14
  * Requires OPENAPI_SPEC_PATH env var (or --spec <path>) pointing to the OpenAPI spec.
15
15
  * The --lang flag is required and selects which SDK runner to use
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-test.mjs","names":[],"sources":["../../../scripts/smoke/sdk-test.ts"],"sourcesContent":["/**\n * Runs an SDK smoke test + diff against an existing raw baseline.\n *\n * Usage:\n * npm run smoke -- --lang node --sdk-path path/to/workos-node\n * npm run smoke -- --lang ruby --sdk-path path/to/workos-ruby\n * npm run smoke -- --lang node --sdk-path path/to/workos-node --raw-results custom-baseline.json\n *\n * Requires OPENAPI_SPEC_PATH env var (or --spec <path>) pointing to the OpenAPI spec.\n * The --lang flag is required and selects which SDK runner to use\n * (e.g. \"node\" → scripts/smoke/sdk-node.ts).\n */\n\nimport { existsSync, writeFileSync } from 'node:fs';\nimport { execFileSync } from 'node:child_process';\nimport { resolve, dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst args = process.argv.slice(2);\n\n// Extract --lang <name> (required)\nconst langIdx = args.indexOf('--lang');\nconst forwardedArgs = [...args];\n\nif (langIdx === -1 || !args[langIdx + 1]) {\n console.error('--lang is required (e.g. --lang node, --lang ruby)');\n process.exit(1);\n}\n\nconst lang = args[langIdx + 1];\nforwardedArgs.splice(langIdx, 2);\n\n// Extract --raw-results <path>\nconst rawResultsIdx = forwardedArgs.indexOf('--raw-results');\nlet rawResultsPath = 'smoke-results-raw.json';\n\nif (rawResultsIdx !== -1 && forwardedArgs[rawResultsIdx + 1]) {\n rawResultsPath = forwardedArgs[rawResultsIdx + 1];\n forwardedArgs.splice(rawResultsIdx, 2);\n}\n\n// Resolve the SDK runner script relative to this file's directory\nconst sdkScript = resolve(__dirname, `sdk-${lang}.ts`);\nif (!existsSync(sdkScript)) {\n console.error(`No smoke runner found for language \"${lang}\" (expected ${sdkScript})`);\n console.error(`Available runners:`);\n const { readdirSync } = await import('node:fs');\n for (const f of readdirSync(__dirname)) {\n const match = f.match(/^sdk-(.+)\\.ts$/);\n if (match && match[1] !== 'test') {\n console.error(` --lang ${match[1]}`);\n }\n }\n process.exit(1);\n}\n\nconst sdkResultsPath = `smoke-results-sdk-${lang}.json`;\n\nconst diffArgs = ['--raw', rawResultsPath, '--sdk', sdkResultsPath];\n\n// Pre-flight: tsc compile check on SDK if tsconfig.json exists\nconst sdkPathIdx = forwardedArgs.indexOf('--sdk-path');\nconst sdkPathValue = sdkPathIdx !== -1 && forwardedArgs[sdkPathIdx + 1] ? forwardedArgs[sdkPathIdx + 1] : undefined;\n\nif (sdkPathValue) {\n const tsconfigPath = resolve(sdkPathValue, 'tsconfig.json');\n if (existsSync(tsconfigPath)) {\n console.log(`\\n${'='.repeat(60)}`);\n console.log(`Type-checking SDK at ${sdkPathValue}`);\n console.log('='.repeat(60));\n\n try {\n execFileSync('npx', ['tsc', '--noEmit', '--project', sdkPathValue], {\n stdio: 'pipe',\n env: process.env,\n });\n console.log(' Type check passed');\n } catch (err) {\n const output = (err as { stdout?: Buffer; stderr?: Buffer }).stdout?.toString() ?? '';\n const findings = parseTscOutput(output);\n writeFileSync('smoke-compile-errors.json', JSON.stringify(findings, null, 2));\n console.error(` Type check failed (${findings.length} errors). See smoke-compile-errors.json`);\n process.exit(2);\n }\n }\n}\n\nconst steps: [string, string[]][] = [\n [sdkScript, forwardedArgs],\n [resolve(__dirname, 'diff.ts'), diffArgs],\n];\n\nfor (const [script, scriptArgs] of steps) {\n console.log(`\\n${'='.repeat(60)}`);\n console.log(`Running ${script}`);\n console.log('='.repeat(60));\n\n try {\n execFileSync('npx', ['tsx', script, ...scriptArgs], {\n stdio: 'inherit',\n env: process.env,\n });\n } catch {\n process.exit(1);\n }\n}\n\nfunction parseTscOutput(output: string): Array<{ file: string; line: number; code: string; message: string }> {\n const errors: Array<{ file: string; line: number; code: string; message: string }> = [];\n const re = /^(.+)\\((\\d+),\\d+\\): error (TS\\d+): (.+)$/gm;\n let match;\n while ((match = re.exec(output)) !== null) {\n errors.push({\n file: match[1],\n line: Number(match[2]),\n code: match[3],\n message: match[4],\n });\n }\n return errors;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,MAAM,YAAY,QADC,cAAc,OAAO,KAAK,IAAI,CACZ;AAErC,MAAM,OAAO,QAAQ,KAAK,MAAM,EAAE;AAGlC,MAAM,UAAU,KAAK,QAAQ,SAAS;AACtC,MAAM,gBAAgB,CAAC,GAAG,KAAK;AAE/B,IAAI,YAAY,MAAM,CAAC,KAAK,UAAU,IAAI;AACxC,SAAQ,MAAM,qDAAqD;AACnE,SAAQ,KAAK,EAAE;;AAGjB,MAAM,OAAO,KAAK,UAAU;AAC5B,cAAc,OAAO,SAAS,EAAE;AAGhC,MAAM,gBAAgB,cAAc,QAAQ,gBAAgB;AAC5D,IAAI,iBAAiB;AAErB,IAAI,kBAAkB,MAAM,cAAc,gBAAgB,IAAI;AAC5D,kBAAiB,cAAc,gBAAgB;AAC/C,eAAc,OAAO,eAAe,EAAE;;AAIxC,MAAM,YAAY,QAAQ,WAAW,OAAO,KAAK,KAAK;AACtD,IAAI,CAAC,WAAW,UAAU,EAAE;AAC1B,SAAQ,MAAM,uCAAuC,KAAK,cAAc,UAAU,GAAG;AACrF,SAAQ,MAAM,qBAAqB;CACnC,MAAM,EAAE,gBAAgB,MAAM,OAAO;AACrC,MAAK,MAAM,KAAK,YAAY,UAAU,EAAE;EACtC,MAAM,QAAQ,EAAE,MAAM,iBAAiB;AACvC,MAAI,SAAS,MAAM,OAAO,OACxB,SAAQ,MAAM,YAAY,MAAM,KAAK;;AAGzC,SAAQ,KAAK,EAAE;;AAGjB,MAAM,iBAAiB,qBAAqB,KAAK;AAEjD,MAAM,WAAW;CAAC;CAAS;CAAgB;CAAS;CAAe;AAGnE,MAAM,aAAa,cAAc,QAAQ,aAAa;AACtD,MAAM,eAAe,eAAe,MAAM,cAAc,aAAa,KAAK,cAAc,aAAa,KAAK,KAAA;AAE1G,IAAI;KAEE,WADiB,QAAQ,cAAc,gBAAgB,CAC/B,EAAE;AAC5B,UAAQ,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG;AAClC,UAAQ,IAAI,wBAAwB,eAAe;AACnD,UAAQ,IAAI,IAAI,OAAO,GAAG,CAAC;AAE3B,MAAI;AACF,gBAAa,OAAO;IAAC;IAAO;IAAY;IAAa;IAAa,EAAE;IAClE,OAAO;IACP,KAAK,QAAQ;IACd,CAAC;AACF,WAAQ,IAAI,sBAAsB;WAC3B,KAAK;GAEZ,MAAM,WAAW,eADD,IAA6C,QAAQ,UAAU,IAAI,GAC5C;AACvC,iBAAc,6BAA6B,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;AAC7E,WAAQ,MAAM,wBAAwB,SAAS,OAAO,yCAAyC;AAC/F,WAAQ,KAAK,EAAE;;;;AAKrB,MAAM,QAA8B,CAClC,CAAC,WAAW,cAAc,EAC1B,CAAC,QAAQ,WAAW,UAAU,EAAE,SAAS,CAC1C;AAED,KAAK,MAAM,CAAC,QAAQ,eAAe,OAAO;AACxC,SAAQ,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG;AAClC,SAAQ,IAAI,WAAW,SAAS;AAChC,SAAQ,IAAI,IAAI,OAAO,GAAG,CAAC;AAE3B,KAAI;AACF,eAAa,OAAO;GAAC;GAAO;GAAQ,GAAG;GAAW,EAAE;GAClD,OAAO;GACP,KAAK,QAAQ;GACd,CAAC;SACI;AACN,UAAQ,KAAK,EAAE;;;AAInB,SAAS,eAAe,QAAsF;CAC5G,MAAM,SAA+E,EAAE;CACvF,MAAM,KAAK;CACX,IAAI;AACJ,SAAQ,QAAQ,GAAG,KAAK,OAAO,MAAM,KACnC,QAAO,KAAK;EACV,MAAM,MAAM;EACZ,MAAM,OAAO,MAAM,GAAG;EACtB,MAAM,MAAM;EACZ,SAAS,MAAM;EAChB,CAAC;AAEJ,QAAO"}
1
+ {"version":3,"file":"sdk-test.mjs","names":[],"sources":["../../../scripts/smoke/sdk-test.ts"],"sourcesContent":["/**\n * Runs an SDK smoke test + diff against an existing raw baseline.\n *\n * Usage:\n * npm run smoke -- --lang node --sdk-path path/to/acme-node\n * npm run smoke -- --lang ruby --sdk-path path/to/acme-ruby\n * npm run smoke -- --lang node --sdk-path path/to/acme-node --raw-results custom-baseline.json\n *\n * Requires OPENAPI_SPEC_PATH env var (or --spec <path>) pointing to the OpenAPI spec.\n * The --lang flag is required and selects which SDK runner to use\n * (e.g. \"node\" → scripts/smoke/sdk-node.ts).\n */\n\nimport { existsSync, writeFileSync } from 'node:fs';\nimport { execFileSync } from 'node:child_process';\nimport { resolve, dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst args = process.argv.slice(2);\n\n// Extract --lang <name> (required)\nconst langIdx = args.indexOf('--lang');\nconst forwardedArgs = [...args];\n\nif (langIdx === -1 || !args[langIdx + 1]) {\n console.error('--lang is required (e.g. --lang node, --lang ruby)');\n process.exit(1);\n}\n\nconst lang = args[langIdx + 1];\nforwardedArgs.splice(langIdx, 2);\n\n// Extract --raw-results <path>\nconst rawResultsIdx = forwardedArgs.indexOf('--raw-results');\nlet rawResultsPath = 'smoke-results-raw.json';\n\nif (rawResultsIdx !== -1 && forwardedArgs[rawResultsIdx + 1]) {\n rawResultsPath = forwardedArgs[rawResultsIdx + 1];\n forwardedArgs.splice(rawResultsIdx, 2);\n}\n\n// Resolve the SDK runner script relative to this file's directory\nconst sdkScript = resolve(__dirname, `sdk-${lang}.ts`);\nif (!existsSync(sdkScript)) {\n console.error(`No smoke runner found for language \"${lang}\" (expected ${sdkScript})`);\n console.error(`Available runners:`);\n const { readdirSync } = await import('node:fs');\n for (const f of readdirSync(__dirname)) {\n const match = f.match(/^sdk-(.+)\\.ts$/);\n if (match && match[1] !== 'test') {\n console.error(` --lang ${match[1]}`);\n }\n }\n process.exit(1);\n}\n\nconst sdkResultsPath = `smoke-results-sdk-${lang}.json`;\n\nconst diffArgs = ['--raw', rawResultsPath, '--sdk', sdkResultsPath];\n\n// Pre-flight: tsc compile check on SDK if tsconfig.json exists\nconst sdkPathIdx = forwardedArgs.indexOf('--sdk-path');\nconst sdkPathValue = sdkPathIdx !== -1 && forwardedArgs[sdkPathIdx + 1] ? forwardedArgs[sdkPathIdx + 1] : undefined;\n\nif (sdkPathValue) {\n const tsconfigPath = resolve(sdkPathValue, 'tsconfig.json');\n if (existsSync(tsconfigPath)) {\n console.log(`\\n${'='.repeat(60)}`);\n console.log(`Type-checking SDK at ${sdkPathValue}`);\n console.log('='.repeat(60));\n\n try {\n execFileSync('npx', ['tsc', '--noEmit', '--project', sdkPathValue], {\n stdio: 'pipe',\n env: process.env,\n });\n console.log(' Type check passed');\n } catch (err) {\n const output = (err as { stdout?: Buffer; stderr?: Buffer }).stdout?.toString() ?? '';\n const findings = parseTscOutput(output);\n writeFileSync('smoke-compile-errors.json', JSON.stringify(findings, null, 2));\n console.error(` Type check failed (${findings.length} errors). See smoke-compile-errors.json`);\n process.exit(2);\n }\n }\n}\n\nconst steps: [string, string[]][] = [\n [sdkScript, forwardedArgs],\n [resolve(__dirname, 'diff.ts'), diffArgs],\n];\n\nfor (const [script, scriptArgs] of steps) {\n console.log(`\\n${'='.repeat(60)}`);\n console.log(`Running ${script}`);\n console.log('='.repeat(60));\n\n try {\n execFileSync('npx', ['tsx', script, ...scriptArgs], {\n stdio: 'inherit',\n env: process.env,\n });\n } catch {\n process.exit(1);\n }\n}\n\nfunction parseTscOutput(output: string): Array<{ file: string; line: number; code: string; message: string }> {\n const errors: Array<{ file: string; line: number; code: string; message: string }> = [];\n const re = /^(.+)\\((\\d+),\\d+\\): error (TS\\d+): (.+)$/gm;\n let match;\n while ((match = re.exec(output)) !== null) {\n errors.push({\n file: match[1],\n line: Number(match[2]),\n code: match[3],\n message: match[4],\n });\n }\n return errors;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,MAAM,YAAY,QADC,cAAc,OAAO,KAAK,IAAI,CACZ;AAErC,MAAM,OAAO,QAAQ,KAAK,MAAM,EAAE;AAGlC,MAAM,UAAU,KAAK,QAAQ,SAAS;AACtC,MAAM,gBAAgB,CAAC,GAAG,KAAK;AAE/B,IAAI,YAAY,MAAM,CAAC,KAAK,UAAU,IAAI;AACxC,SAAQ,MAAM,qDAAqD;AACnE,SAAQ,KAAK,EAAE;;AAGjB,MAAM,OAAO,KAAK,UAAU;AAC5B,cAAc,OAAO,SAAS,EAAE;AAGhC,MAAM,gBAAgB,cAAc,QAAQ,gBAAgB;AAC5D,IAAI,iBAAiB;AAErB,IAAI,kBAAkB,MAAM,cAAc,gBAAgB,IAAI;AAC5D,kBAAiB,cAAc,gBAAgB;AAC/C,eAAc,OAAO,eAAe,EAAE;;AAIxC,MAAM,YAAY,QAAQ,WAAW,OAAO,KAAK,KAAK;AACtD,IAAI,CAAC,WAAW,UAAU,EAAE;AAC1B,SAAQ,MAAM,uCAAuC,KAAK,cAAc,UAAU,GAAG;AACrF,SAAQ,MAAM,qBAAqB;CACnC,MAAM,EAAE,gBAAgB,MAAM,OAAO;AACrC,MAAK,MAAM,KAAK,YAAY,UAAU,EAAE;EACtC,MAAM,QAAQ,EAAE,MAAM,iBAAiB;AACvC,MAAI,SAAS,MAAM,OAAO,OACxB,SAAQ,MAAM,YAAY,MAAM,KAAK;;AAGzC,SAAQ,KAAK,EAAE;;AAGjB,MAAM,iBAAiB,qBAAqB,KAAK;AAEjD,MAAM,WAAW;CAAC;CAAS;CAAgB;CAAS;CAAe;AAGnE,MAAM,aAAa,cAAc,QAAQ,aAAa;AACtD,MAAM,eAAe,eAAe,MAAM,cAAc,aAAa,KAAK,cAAc,aAAa,KAAK,KAAA;AAE1G,IAAI;KAEE,WADiB,QAAQ,cAAc,gBAAgB,CAC/B,EAAE;AAC5B,UAAQ,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG;AAClC,UAAQ,IAAI,wBAAwB,eAAe;AACnD,UAAQ,IAAI,IAAI,OAAO,GAAG,CAAC;AAE3B,MAAI;AACF,gBAAa,OAAO;IAAC;IAAO;IAAY;IAAa;IAAa,EAAE;IAClE,OAAO;IACP,KAAK,QAAQ;IACd,CAAC;AACF,WAAQ,IAAI,sBAAsB;WAC3B,KAAK;GAEZ,MAAM,WAAW,eADD,IAA6C,QAAQ,UAAU,IAAI,GAC5C;AACvC,iBAAc,6BAA6B,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;AAC7E,WAAQ,MAAM,wBAAwB,SAAS,OAAO,yCAAyC;AAC/F,WAAQ,KAAK,EAAE;;;;AAKrB,MAAM,QAA8B,CAClC,CAAC,WAAW,cAAc,EAC1B,CAAC,QAAQ,WAAW,UAAU,EAAE,SAAS,CAC1C;AAED,KAAK,MAAM,CAAC,QAAQ,eAAe,OAAO;AACxC,SAAQ,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG;AAClC,SAAQ,IAAI,WAAW,SAAS;AAChC,SAAQ,IAAI,IAAI,OAAO,GAAG,CAAC;AAE3B,KAAI;AACF,eAAa,OAAO;GAAC;GAAO;GAAQ,GAAG;GAAW,EAAE;GAClD,OAAO;GACP,KAAK,QAAQ;GACd,CAAC;SACI;AACN,UAAQ,KAAK,EAAE;;;AAInB,SAAS,eAAe,QAAsF;CAC5G,MAAM,SAA+E,EAAE;CACvF,MAAM,KAAK;CACX,IAAI;AACJ,SAAQ,QAAQ,GAAG,KAAK,OAAO,MAAM,KACnC,QAAO,KAAK;EACV,MAAM,MAAM;EACZ,MAAM,OAAO,MAAM,GAAG;EACtB,MAAM,MAAM;EACZ,SAAS,MAAM;EAChB,CAAC;AAEJ,QAAO"}
package/dist/smoke.d.mts CHANGED
@@ -44,8 +44,7 @@ interface ErrorPolicy {
44
44
  serverErrorKind: string;
45
45
  /** Catch-all error kind for unrecognized status codes. */
46
46
  clientErrorKind: string;
47
- /** URL template for error documentation. Use {code} as placeholder for the API error code.
48
- * Example: 'https://workos.com/docs/errors/{code}' */
47
+ /** URL template for error documentation. Use {code} as placeholder for the API error code. */
49
48
  errorDocUrlTemplate?: string;
50
49
  }
51
50
  /** Telemetry — what request metrics to track and send. */
@@ -83,7 +82,7 @@ interface UserAgentPolicy {
83
82
  /** Template for the SDK identifier string.
84
83
  * Placeholders: {name} = spec name, {lang} = emitter language, {version} = SDK version.
85
84
  * Each emitter interpolates with its own language string and casing conventions.
86
- * Example: '{name} {lang}/{version}' → 'WorkOS PHP/4.32.0' */
85
+ * Example: '{name} {lang}/{version}' → 'Acme PHP/4.32.0' */
87
86
  sdkIdentifierTemplate: string;
88
87
  /** Whether to append the runtime/language version (e.g. PHP 8.2, Python 3.12). */
89
88
  includeRuntimeVersion: boolean;
@@ -109,7 +108,7 @@ interface RequestGuardPolicy {
109
108
  interface TimeoutPolicy {
110
109
  /** Default HTTP request timeout in seconds. */
111
110
  defaultTimeoutSeconds: number;
112
- /** Environment variable name to override the timeout (e.g. 'WORKOS_REQUEST_TIMEOUT'). */
111
+ /** Environment variable name to override the timeout (e.g. 'SDK_REQUEST_TIMEOUT'). */
113
112
  timeoutEnvVar?: string;
114
113
  }
115
114
  /** Language-agnostic runtime policies for generated SDKs.
@@ -1 +1 @@
1
- {"version":3,"file":"smoke.d.mts","names":[],"sources":["../src/ir/sdk-behavior.ts","../src/ir/types.ts","../src/parser/parse.ts","../src/utils/naming.ts","../scripts/smoke/shared.ts"],"mappings":"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"}
1
+ {"version":3,"file":"smoke.d.mts","names":[],"sources":["../src/ir/sdk-behavior.ts","../src/ir/types.ts","../src/parser/parse.ts","../src/utils/naming.ts","../scripts/smoke/shared.ts"],"mappings":"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"}
package/dist/smoke.mjs CHANGED
@@ -145,9 +145,8 @@ function cleanSchemaName(name) {
145
145
  //#endregion
146
146
  //#region src/ir/sdk-behavior.ts
147
147
  /**
148
- * Canonical SDK behavior defaults. These match the PHP emitter's current
149
- * implementation (the most complete). Per-language overrides can be applied
150
- * via `mergeSdkBehavior()` in each SDK's `oagen.config.ts`.
148
+ * Canonical SDK behavior defaults. Per-language or per-project overrides can
149
+ * be applied via `mergeSdkBehavior()` in each SDK's `oagen.config.ts`.
151
150
  *
152
151
  * - Retry: exponential backoff with jitter, retries on 429/5xx
153
152
  * - Errors: standard HTTP status → exception kind mapping
@@ -190,12 +189,11 @@ function defaultSdkBehavior() {
190
189
  429: "RateLimitExceeded"
191
190
  },
192
191
  serverErrorKind: "Server",
193
- clientErrorKind: "Api",
194
- errorDocUrlTemplate: "https://workos.com/docs/errors/{code}"
192
+ clientErrorKind: "Api"
195
193
  },
196
194
  telemetry: {
197
195
  enabledByDefault: true,
198
- headerName: "X-WorkOS-Client-Telemetry",
196
+ headerName: "X-Client-Telemetry",
199
197
  requestIdHeader: "X-Request-ID"
200
198
  },
201
199
  pagination: { autoPageDelayMs: 0 },
@@ -1993,11 +1991,11 @@ function inferVerb(method, path) {
1993
1991
  * Uses the last non-param segment (the resource being operated on).
1994
1992
  *
1995
1993
  * Examples:
1996
- * /user_management/users → "Users"
1997
- * /user_management/users/{id} → "User" (singular for item operations)
1998
- * /user_management/users/{id}/auth_factors → "AuthFactors"
1994
+ * /accounts/users → "Users"
1995
+ * /accounts/users/{id} → "User" (singular for item operations)
1996
+ * /accounts/users/{id}/auth_factors → "AuthFactors"
1999
1997
  * /organizations/{id}/api_keys → "ApiKeys"
2000
- * /sso/authorize → "Authorize" (action endpoint)
1998
+ * /auth/authorize → "Authorize" (action endpoint)
2001
1999
  */
2002
2000
  function inferResourceFromPath(path) {
2003
2001
  const segments = path.split("/").filter(Boolean);
@@ -2304,6 +2302,10 @@ function extractRequestBody(body, op, inlineModels) {
2304
2302
  return {};
2305
2303
  }
2306
2304
  const contextName = cleanSchemaName(op?.operationId ? toPascalCase(normalizeOperationIdForNaming(op.operationId)) + "Request" : "RequestBody");
2305
+ if (schema.oneOf && schema.discriminator) {
2306
+ const merged = flattenDiscriminatedUnionBody(schema);
2307
+ if (merged) schema = merged;
2308
+ }
2307
2309
  if (schema.properties && (schema.type === "object" || !schema.type)) {
2308
2310
  const requiredSet = new Set(schema.required ?? []);
2309
2311
  const fields = [];
@@ -2369,6 +2371,67 @@ function extractRequestBody(body, op, inlineModels) {
2369
2371
  encoding
2370
2372
  };
2371
2373
  }
2374
+ /**
2375
+ * Fold a discriminated-union request body into the equivalent single object so
2376
+ * its fields can be spread into method arguments instead of forcing callers to
2377
+ * construct an opaque union.
2378
+ *
2379
+ * The result is the union of every variant's properties: the discriminator is
2380
+ * collapsed to an enum of the pinned const values, and any field that isn't
2381
+ * present-and-required in *every* variant becomes optional (it varies by
2382
+ * branch, so it can't be unconditionally required). The discriminator itself is
2383
+ * always required. This mirrors what a spec author would write by hand to model
2384
+ * the same shape as a flat object.
2385
+ *
2386
+ * Returns null — leaving the union intact — unless the body is a clean
2387
+ * inline-object discriminated union: a variant that is a `$ref`, a non-object,
2388
+ * or that doesn't pin the discriminator to a string const can't be safely
2389
+ * merged. Gating on an *explicit* `discriminator` keeps undiscriminated `oneOf`
2390
+ * bodies untouched.
2391
+ */
2392
+ function flattenDiscriminatedUnionBody(schema) {
2393
+ const discProp = schema.discriminator?.propertyName;
2394
+ if (!discProp || !Array.isArray(schema.oneOf) || schema.oneOf.length === 0) return null;
2395
+ const variants = schema.oneOf;
2396
+ const discValues = [];
2397
+ let discPropSchema;
2398
+ for (const variant of variants) {
2399
+ if (variant.$ref || !variant.properties || !(variant.type === "object" || variant.type === void 0)) return null;
2400
+ const dp = variant.properties[discProp];
2401
+ const constVal = typeof dp?.const === "string" ? dp.const : Array.isArray(dp?.enum) && dp.enum.length === 1 && typeof dp.enum[0] === "string" ? dp.enum[0] : void 0;
2402
+ if (constVal === void 0) return null;
2403
+ if (!discValues.includes(constVal)) discValues.push(constVal);
2404
+ if (!discPropSchema) discPropSchema = dp;
2405
+ }
2406
+ const variantCount = variants.length;
2407
+ const mergedProps = {};
2408
+ const requiredCounts = {};
2409
+ const order = [discProp];
2410
+ for (const variant of variants) {
2411
+ const required = new Set(variant.required ?? []);
2412
+ for (const [name, propSchema] of Object.entries(variant.properties)) {
2413
+ if (name === discProp || !propSchema) continue;
2414
+ if (!(name in mergedProps)) {
2415
+ mergedProps[name] = propSchema;
2416
+ order.push(name);
2417
+ }
2418
+ if (required.has(name)) requiredCounts[name] = (requiredCounts[name] ?? 0) + 1;
2419
+ }
2420
+ }
2421
+ mergedProps[discProp] = {
2422
+ type: "string",
2423
+ enum: discValues,
2424
+ ...discPropSchema?.description ? { description: discPropSchema.description } : {}
2425
+ };
2426
+ const properties = {};
2427
+ for (const name of order) properties[name] = mergedProps[name];
2428
+ return {
2429
+ type: "object",
2430
+ properties,
2431
+ required: order.filter((name) => name === discProp || requiredCounts[name] === variantCount),
2432
+ ...schema.description ? { description: schema.description } : {}
2433
+ };
2434
+ }
2372
2435
  /** Derive a unique variant name for a oneOf inline model. */
2373
2436
  function deriveOneOfVariantName(variant, baseName, existingModels) {
2374
2437
  if (variant.properties) {