@workos/oagen-emitters 0.15.2 → 0.16.1
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/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +19 -0
- package/README.md +48 -1
- package/dist/index.d.mts +51 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +852 -2
- package/dist/index.mjs.map +1 -0
- package/dist/{plugin-Xkr83G9A.mjs → plugin-CpO8rePT.mjs} +1219 -493
- package/dist/plugin-CpO8rePT.mjs.map +1 -0
- package/dist/plugin.mjs +1 -1
- package/package.json +7 -7
- package/src/dotnet/naming.ts +1 -1
- package/src/go/naming.ts +1 -1
- package/src/index.ts +15 -0
- package/src/node/enums.ts +17 -4
- package/src/node/index.ts +264 -4
- package/src/node/live-surface.ts +309 -0
- package/src/node/models.ts +69 -3
- package/src/node/naming.ts +204 -23
- package/src/node/resources.ts +39 -3
- package/src/node/tests.ts +29 -3
- package/src/node/utils.ts +140 -22
- package/src/snippets/dotnet.ts +159 -0
- package/src/snippets/go.ts +148 -0
- package/src/snippets/index.ts +8 -0
- package/src/snippets/kotlin.ts +144 -0
- package/src/snippets/php.ts +149 -0
- package/src/snippets/plugin.ts +36 -0
- package/src/snippets/python.ts +135 -0
- package/src/snippets/ruby.ts +152 -0
- package/src/snippets/rust.ts +189 -0
- package/test/node/enums.test.ts +239 -2
- package/test/node/live-surface.test.ts +771 -1
- package/test/node/models.test.ts +738 -3
- package/test/node/naming.test.ts +159 -0
- package/test/node/resources.test.ts +464 -0
- package/test/node/utils.test.ts +157 -2
- package/test/snippets/_helpers.ts +67 -0
- package/test/snippets/dotnet.test.ts +49 -0
- package/test/snippets/go.test.ts +94 -0
- package/test/snippets/kotlin.test.ts +53 -0
- package/test/snippets/php.test.ts +48 -0
- package/test/snippets/python.test.ts +73 -0
- package/test/snippets/ruby.test.ts +339 -0
- package/test/snippets/rust.test.ts +76 -0
- package/dist/plugin-Xkr83G9A.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["INDENT","renderCall","renderValue","indentContinuationLines","renderArray","INDENT","renderCall","renderValue","fieldName","safeParamName","indentContinuationLines","renderArray","renderDict","INDENT","fieldName","renderCall","renderValue","indentContinuationLines","renderArray","INDENT","renderCall","renderValue","fieldName","indentContinuationLines","INDENT","renderCall","trimMountedResourceFromMethod","methodName","className","renderValue","indentContinuationLines","fieldName","INDENT","renderCall","methodName","renderValue","indentContinuationLines","methodName","fieldName"],"sources":["../src/snippets/ruby.ts","../src/snippets/python.ts","../src/snippets/php.ts","../src/snippets/go.ts","../src/snippets/dotnet.ts","../src/snippets/kotlin.ts","../src/snippets/rust.ts","../src/snippets/plugin.ts"],"sourcesContent":["import type { EmitterContext, SnippetArg, SnippetEmitter } from '@workos/oagen';\nimport { collectSnippetArgs, collectWrapperArgs, toSnakeCase } from '@workos/oagen';\nimport { buildExportedClassNameSet, fieldName, resolveServiceTarget, safeParamName } from '../ruby/naming.js';\n\nconst INDENT = ' ';\n\nexport const rubySnippetEmitter: SnippetEmitter = {\n language: 'ruby',\n fileExtension: 'rb',\n\n renderOperation(resolved, ctx, examples) {\n if (resolved.urlBuilder) return null;\n\n const accessor = serviceAccessor(resolved.mountOn, ctx);\n\n if (resolved.wrappers && resolved.wrappers.length > 0) {\n const wrapper = resolved.wrappers[0]!;\n const args = collectWrapperArgs(wrapper, ctx, examples);\n return renderCall(accessor, wrapper.name, toRubyArgs(args, new Set()));\n }\n\n const { args, collisionNames } = collectSnippetArgs(resolved, ctx, examples);\n return renderCall(accessor, resolved.methodName, toRubyArgs(args, collisionNames));\n },\n};\n\ninterface RubyArg {\n keyword: string;\n value: string;\n}\n\nfunction toRubyArgs(args: SnippetArg[], collisionNames: Set<string>): RubyArg[] {\n const seen = new Set<string>();\n const out: RubyArg[] = [];\n for (const a of args) {\n const keyword = rubyKeyword(a, collisionNames);\n if (seen.has(keyword)) continue;\n seen.add(keyword);\n out.push({ keyword, value: renderValue(a.value) });\n }\n return out;\n}\n\nfunction rubyKeyword(arg: SnippetArg, collisions: Set<string>): string {\n if (arg.source === 'body') {\n const base = fieldName(arg.wireName);\n return collisions.has(arg.wireName) ? `body_${base}` : base;\n }\n // path / query\n return safeParamName(arg.wireName);\n}\n\nfunction renderCall(accessor: string, method: string, args: RubyArg[]): string {\n const lines: string[] = [];\n lines.push('require \"workos\"');\n lines.push('');\n lines.push('WorkOS.configure do |config|');\n lines.push(`${INDENT}config.api_key = \"sk_example_123456789\"`);\n lines.push('end');\n lines.push('');\n\n const target = `WorkOS.client.${accessor}.${method}`;\n if (args.length === 0) {\n lines.push(target);\n return lines.join('\\n');\n }\n\n if (args.length === 1 && !args[0]!.value.includes('\\n')) {\n const a = args[0]!;\n lines.push(`${target}(${a.keyword}: ${a.value})`);\n return lines.join('\\n');\n }\n\n lines.push(`${target}(`);\n for (let i = 0; i < args.length; i++) {\n const a = args[i]!;\n const trailing = i < args.length - 1 ? ',' : '';\n const valueIndented = indentContinuationLines(a.value, INDENT);\n lines.push(`${INDENT}${a.keyword}: ${valueIndented}${trailing}`);\n }\n lines.push(')');\n\n return lines.join('\\n');\n}\n\nfunction serviceAccessor(mountOn: string, ctx: EmitterContext): string {\n // The accessor uses the raw mount target (no `Service` suffix) to match\n // the `client.organization_membership` style documented in workos-ruby.\n void resolveServiceTarget(mountOn, buildExportedClassNameSet(ctx));\n return toSnakeCase(mountOn);\n}\n\n// ---------------------------------------------------------------------------\n// Ruby literal rendering\n// ---------------------------------------------------------------------------\n\nfunction renderValue(value: unknown): string {\n if (value === null || value === undefined) return 'nil';\n if (typeof value === 'boolean') return value ? 'true' : 'false';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'string') return rubyString(value);\n if (Array.isArray(value)) return renderArray(value);\n if (typeof value === 'object') return renderHash(value as Record<string, unknown>);\n return 'nil';\n}\n\nfunction rubyString(s: string): string {\n return `\"${s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n}\n\nfunction renderArray(items: unknown[]): string {\n if (items.length === 0) return '[]';\n const rendered = items.map((v) => renderValue(v));\n const oneline = `[${rendered.join(', ')}]`;\n if (oneline.length <= 80 && rendered.every((r) => !r.includes('\\n'))) return oneline;\n const lines: string[] = ['['];\n for (let i = 0; i < rendered.length; i++) {\n const trailing = i < rendered.length - 1 ? ',' : '';\n lines.push(`${INDENT}${indentContinuationLines(rendered[i]!, INDENT)}${trailing}`);\n }\n lines.push(']');\n return lines.join('\\n');\n}\n\nfunction renderHash(obj: Record<string, unknown>): string {\n const entries = Object.entries(obj);\n if (entries.length === 0) return '{}';\n const rendered = entries.map(([k, v]) => ({ key: k, value: renderValue(v) }));\n const oneLineParts = rendered.map((e) => `${formatInlineKey(e.key)} ${e.value}`);\n const oneline = `{ ${oneLineParts.join(', ')} }`;\n if (oneline.length <= 80 && rendered.every((e) => !e.value.includes('\\n'))) return oneline;\n\n const lines: string[] = ['{'];\n for (let i = 0; i < rendered.length; i++) {\n const e = rendered[i]!;\n const trailing = i < rendered.length - 1 ? ',' : '';\n lines.push(`${INDENT}${formatInlineKey(e.key)} ${indentContinuationLines(e.value, INDENT)}${trailing}`);\n }\n lines.push('}');\n return lines.join('\\n');\n}\n\nfunction formatInlineKey(name: string): string {\n if (/^[a-z_][a-zA-Z0-9_]*$/.test(name)) return `${name}:`;\n return `\"${name.replace(/\"/g, '\\\\\"')}\" =>`;\n}\n\nfunction indentContinuationLines(s: string, indent: string): string {\n if (!s.includes('\\n')) return s;\n const lines = s.split('\\n');\n return lines.map((line, i) => (i === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n","import type { SnippetArg, SnippetEmitter } from '@workos/oagen';\nimport { collectSnippetArgs, collectWrapperArgs, toSnakeCase } from '@workos/oagen';\nimport { fieldName, safeParamName } from '../python/naming.js';\n\nconst INDENT = ' ';\n\nexport const pythonSnippetEmitter: SnippetEmitter = {\n language: 'python',\n fileExtension: 'py',\n\n renderOperation(resolved, ctx, examples) {\n if (resolved.urlBuilder) return null;\n\n const accessor = toSnakeCase(resolved.mountOn);\n\n if (resolved.wrappers && resolved.wrappers.length > 0) {\n const wrapper = resolved.wrappers[0]!;\n const args = collectWrapperArgs(wrapper, ctx, examples);\n return renderCall(accessor, wrapper.name, toPyArgs(args, new Set()));\n }\n\n const { args, collisionNames } = collectSnippetArgs(resolved, ctx, examples);\n return renderCall(accessor, resolved.methodName, toPyArgs(args, collisionNames));\n },\n};\n\ninterface PyArg {\n keyword: string;\n value: string;\n}\n\nfunction toPyArgs(args: SnippetArg[], collisionNames: Set<string>): PyArg[] {\n const seen = new Set<string>();\n const out: PyArg[] = [];\n for (const a of args) {\n const keyword = pythonKeyword(a, collisionNames);\n if (seen.has(keyword)) continue;\n seen.add(keyword);\n out.push({ keyword, value: renderValue(a.value) });\n }\n return out;\n}\n\nfunction pythonKeyword(arg: SnippetArg, collisions: Set<string>): string {\n if (arg.source === 'body') {\n const base = fieldName(arg.wireName);\n return collisions.has(arg.wireName) ? `body_${base}` : base;\n }\n return safeParamName(arg.wireName);\n}\n\nfunction renderCall(accessor: string, method: string, args: PyArg[]): string {\n const lines: string[] = [];\n lines.push('from workos import WorkOSClient');\n lines.push('');\n lines.push('client = WorkOSClient(api_key=\"sk_example_123456789\", client_id=\"client_123456789\")');\n lines.push('');\n\n const target = `client.${accessor}.${method}`;\n if (args.length === 0) {\n lines.push(`${target}()`);\n return lines.join('\\n');\n }\n\n if (args.length === 1 && !args[0]!.value.includes('\\n')) {\n const a = args[0]!;\n lines.push(`${target}(${a.keyword}=${a.value})`);\n return lines.join('\\n');\n }\n\n lines.push(`${target}(`);\n for (let i = 0; i < args.length; i++) {\n const a = args[i]!;\n const trailing = i < args.length - 1 ? ',' : '';\n const valueIndented = indentContinuationLines(a.value, INDENT);\n lines.push(`${INDENT}${a.keyword}=${valueIndented}${trailing}`);\n }\n lines.push(')');\n return lines.join('\\n');\n}\n\n// ---------------------------------------------------------------------------\n// Python literal rendering\n// ---------------------------------------------------------------------------\n\nfunction renderValue(value: unknown): string {\n if (value === null || value === undefined) return 'None';\n if (typeof value === 'boolean') return value ? 'True' : 'False';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'string') return pythonString(value);\n if (Array.isArray(value)) return renderArray(value);\n if (typeof value === 'object') return renderDict(value as Record<string, unknown>);\n return 'None';\n}\n\nfunction pythonString(s: string): string {\n return `\"${s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n}\n\nfunction renderArray(items: unknown[]): string {\n if (items.length === 0) return '[]';\n const rendered = items.map((v) => renderValue(v));\n const oneline = `[${rendered.join(', ')}]`;\n if (oneline.length <= 80 && rendered.every((r) => !r.includes('\\n'))) return oneline;\n const lines: string[] = ['['];\n for (let i = 0; i < rendered.length; i++) {\n const trailing = i < rendered.length - 1 ? ',' : '';\n lines.push(`${INDENT}${indentContinuationLines(rendered[i]!, INDENT)}${trailing}`);\n }\n lines.push(']');\n return lines.join('\\n');\n}\n\nfunction renderDict(obj: Record<string, unknown>): string {\n const entries = Object.entries(obj);\n if (entries.length === 0) return '{}';\n const rendered = entries.map(([k, v]) => ({ key: k, value: renderValue(v) }));\n const oneline = `{${rendered.map((e) => `\"${e.key}\": ${e.value}`).join(', ')}}`;\n if (oneline.length <= 80 && rendered.every((e) => !e.value.includes('\\n'))) return oneline;\n\n const lines: string[] = ['{'];\n for (let i = 0; i < rendered.length; i++) {\n const e = rendered[i]!;\n const trailing = i < rendered.length - 1 ? ',' : '';\n lines.push(`${INDENT}\"${e.key}\": ${indentContinuationLines(e.value, INDENT)}${trailing}`);\n }\n lines.push('}');\n return lines.join('\\n');\n}\n\nfunction indentContinuationLines(s: string, indent: string): string {\n if (!s.includes('\\n')) return s;\n const lines = s.split('\\n');\n return lines.map((line, i) => (i === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n","import type { SnippetArg, SnippetEmitter } from '@workos/oagen';\nimport { collectSnippetArgs, collectWrapperArgs } from '@workos/oagen';\nimport { fieldName, servicePropertyName } from '../php/naming.js';\n\nconst INDENT = ' ';\n\nexport const phpSnippetEmitter: SnippetEmitter = {\n language: 'php',\n fileExtension: 'php',\n\n renderOperation(resolved, ctx, examples) {\n if (resolved.urlBuilder) return null;\n\n const accessor = servicePropertyName(resolved.mountOn);\n const method = fieldName(\n resolved.wrappers && resolved.wrappers.length > 0 ? resolved.wrappers[0]!.name : resolved.methodName,\n );\n\n let args: SnippetArg[];\n let collisionNames: Set<string>;\n if (resolved.wrappers && resolved.wrappers.length > 0) {\n args = collectWrapperArgs(resolved.wrappers[0]!, ctx, examples);\n collisionNames = new Set();\n } else {\n const collected = collectSnippetArgs(resolved, ctx, examples);\n args = collected.args;\n collisionNames = collected.collisionNames;\n }\n\n return renderCall(accessor, method, toPhpArgs(args, collisionNames));\n },\n};\n\ninterface PhpArg {\n keyword: string;\n value: string;\n}\n\nfunction toPhpArgs(args: SnippetArg[], collisions: Set<string>): PhpArg[] {\n const seen = new Set<string>();\n const out: PhpArg[] = [];\n for (const a of args) {\n const keyword = phpKeyword(a, collisions);\n if (seen.has(keyword)) continue;\n seen.add(keyword);\n out.push({ keyword, value: renderValue(a.value) });\n }\n return out;\n}\n\nfunction phpKeyword(arg: SnippetArg, collisions: Set<string>): string {\n const base = fieldName(arg.wireName);\n if (arg.source === 'body' && collisions.has(arg.wireName)) return `body${capitalize(base)}`;\n return base;\n}\n\nfunction capitalize(s: string): string {\n return s.length === 0 ? s : s[0]!.toUpperCase() + s.slice(1);\n}\n\nfunction renderCall(accessor: string, method: string, args: PhpArg[]): string {\n const lines: string[] = [];\n lines.push('<?php');\n lines.push('');\n lines.push('use WorkOS\\\\WorkOS;');\n lines.push('');\n lines.push('$workos = new WorkOS(');\n lines.push(`${INDENT}apiKey: 'sk_example_123456789',`);\n lines.push(`${INDENT}clientId: 'client_123456789',`);\n lines.push(');');\n lines.push('');\n\n const target = `$workos->${accessor}()->${method}`;\n if (args.length === 0) {\n lines.push(`${target}();`);\n return lines.join('\\n');\n }\n\n if (args.length === 1 && !args[0]!.value.includes('\\n')) {\n const a = args[0]!;\n lines.push(`${target}(${a.keyword}: ${a.value});`);\n return lines.join('\\n');\n }\n\n lines.push(`${target}(`);\n for (let i = 0; i < args.length; i++) {\n const a = args[i]!;\n const trailing = i < args.length - 1 ? ',' : ',';\n const valueIndented = indentContinuationLines(a.value, INDENT);\n lines.push(`${INDENT}${a.keyword}: ${valueIndented}${trailing}`);\n }\n lines.push(');');\n\n return lines.join('\\n');\n}\n\n// ---------------------------------------------------------------------------\n// PHP literal rendering\n// ---------------------------------------------------------------------------\n\nfunction renderValue(value: unknown): string {\n if (value === null || value === undefined) return 'null';\n if (typeof value === 'boolean') return value ? 'true' : 'false';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'string') return phpString(value);\n if (Array.isArray(value)) return renderArray(value);\n if (typeof value === 'object') return renderAssoc(value as Record<string, unknown>);\n return 'null';\n}\n\nfunction phpString(s: string): string {\n return `'${s.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\")}'`;\n}\n\nfunction renderArray(items: unknown[]): string {\n if (items.length === 0) return '[]';\n const rendered = items.map((v) => renderValue(v));\n const oneline = `[${rendered.join(', ')}]`;\n if (oneline.length <= 80 && rendered.every((r) => !r.includes('\\n'))) return oneline;\n const lines: string[] = ['['];\n for (let i = 0; i < rendered.length; i++) {\n const trailing = i < rendered.length - 1 ? ',' : ',';\n lines.push(`${INDENT}${indentContinuationLines(rendered[i]!, INDENT)}${trailing}`);\n }\n lines.push(']');\n return lines.join('\\n');\n}\n\nfunction renderAssoc(obj: Record<string, unknown>): string {\n const entries = Object.entries(obj);\n if (entries.length === 0) return '[]';\n const rendered = entries.map(([k, v]) => ({ key: k, value: renderValue(v) }));\n const oneline = `[${rendered.map((e) => `'${e.key}' => ${e.value}`).join(', ')}]`;\n if (oneline.length <= 80 && rendered.every((e) => !e.value.includes('\\n'))) return oneline;\n const lines: string[] = ['['];\n for (let i = 0; i < rendered.length; i++) {\n const e = rendered[i]!;\n const trailing = i < rendered.length - 1 ? ',' : ',';\n lines.push(`${INDENT}'${e.key}' => ${indentContinuationLines(e.value, INDENT)}${trailing}`);\n }\n lines.push(']');\n return lines.join('\\n');\n}\n\nfunction indentContinuationLines(s: string, indent: string): string {\n if (!s.includes('\\n')) return s;\n const lines = s.split('\\n');\n return lines.map((line, i) => (i === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n","import type { EmitterContext, ExampleBuilder, ResolvedOperation, SnippetArg, SnippetEmitter } from '@workos/oagen';\nimport { collectSnippetArgs, collectWrapperArgs } from '@workos/oagen';\nimport { className, fieldName, methodName, trimMountedResourceFromMethod } from '../go/naming.js';\n\nconst INDENT = '\\t';\n\nexport const goSnippetEmitter: SnippetEmitter = {\n language: 'go',\n fileExtension: 'go',\n\n renderOperation(resolved, ctx, examples) {\n if (resolved.urlBuilder) return null;\n\n // Mirror the Go SDK's naming pipeline: PascalCase the resolved method\n // name (or the wrapper name for split ops), then trim any mount-target\n // resource words from the end so `CreateOrganization` on `Organizations`\n // becomes `Create`. We compute these directly from the resolved op so\n // the snippet emitter does not depend on a fresh `buildResolvedLookup`\n // (which would re-validate the entire spec for uniqueness).\n const rawMethodName =\n resolved.wrappers && resolved.wrappers.length > 0 ? resolved.wrappers[0]!.name : resolved.methodName;\n const method = trimMountedResourceFromMethod(methodName(rawMethodName), resolved.mountOn);\n\n return renderCall(resolved, ctx, examples, method);\n },\n};\n\nfunction renderCall(\n resolved: ResolvedOperation,\n ctx: EmitterContext,\n examples: ExampleBuilder,\n method: string,\n): string {\n const accessorMethod = className(resolved.mountOn);\n const optsTypeName = `${accessorMethod}${method}Params`;\n\n let args: SnippetArg[];\n let pathArgs: SnippetArg[];\n let bodyAndQueryArgs: SnippetArg[];\n\n if (resolved.wrappers && resolved.wrappers.length > 0) {\n args = collectWrapperArgs(resolved.wrappers[0]!, ctx, examples);\n pathArgs = [];\n bodyAndQueryArgs = args;\n } else {\n const collected = collectSnippetArgs(resolved, ctx, examples);\n args = collected.args;\n pathArgs = args.filter((a) => a.source === 'path');\n bodyAndQueryArgs = args.filter((a) => a.source !== 'path');\n }\n\n const lines: string[] = [];\n lines.push('package main');\n lines.push('');\n lines.push('import (');\n lines.push(`${INDENT}\"context\"`);\n lines.push('');\n lines.push(`${INDENT}\"github.com/workos/workos-go/v9\"`);\n lines.push(')');\n lines.push('');\n lines.push('func main() {');\n lines.push(`${INDENT}client := workos.NewClient(\"sk_example_123456789\")`);\n lines.push('');\n\n // Build the method call. Go SDK methods take (ctx, positional path params..., *OptsStruct).\n const callParts: string[] = ['context.Background()'];\n for (const p of pathArgs) {\n callParts.push(renderValue(p.value));\n }\n\n if (bodyAndQueryArgs.length === 0) {\n lines.push(`${INDENT}_, err := client.${accessorMethod}().${method}(${callParts.join(', ')})`);\n } else {\n const optsLines = buildOptsStruct(optsTypeName, bodyAndQueryArgs);\n callParts.push(optsLines);\n const joined = callParts.length === 2 ? callParts.join(', ') : callParts.join(', ');\n lines.push(`${INDENT}_, err := client.${accessorMethod}().${method}(${joined})`);\n }\n lines.push(`${INDENT}if err != nil {`);\n lines.push(`${INDENT}${INDENT}panic(err)`);\n lines.push(`${INDENT}}`);\n lines.push('}');\n\n return lines.join('\\n');\n}\n\nfunction buildOptsStruct(typeName: string, args: SnippetArg[]): string {\n const lines: string[] = [`&workos.${typeName}{`];\n for (const a of args) {\n const field = fieldName(a.wireName);\n const value = renderValue(a.value);\n const indentedValue = indentContinuationLines(value, `${INDENT}${INDENT}`);\n lines.push(`${INDENT}${INDENT}${field}: ${indentedValue},`);\n }\n lines.push(`${INDENT}}`);\n return lines.join('\\n');\n}\n\n// ---------------------------------------------------------------------------\n// Go literal rendering\n// ---------------------------------------------------------------------------\n\nfunction renderValue(value: unknown): string {\n if (value === null || value === undefined) return 'nil';\n if (typeof value === 'boolean') return value ? 'true' : 'false';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'string') return goString(value);\n if (Array.isArray(value)) return renderSlice(value);\n if (typeof value === 'object') return renderStruct(value as Record<string, unknown>);\n return 'nil';\n}\n\nfunction goString(s: string): string {\n return `\"${s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n}\n\nfunction renderSlice(items: unknown[]): string {\n if (items.length === 0) return '[]any{}';\n const rendered = items.map((v) => renderValue(v));\n const oneline = `[]any{${rendered.join(', ')}}`;\n if (oneline.length <= 80 && rendered.every((r) => !r.includes('\\n'))) return oneline;\n const lines: string[] = ['[]any{'];\n for (const r of rendered) {\n lines.push(`${INDENT}${indentContinuationLines(r, INDENT)},`);\n }\n lines.push('}');\n return lines.join('\\n');\n}\n\nfunction renderStruct(obj: Record<string, unknown>): string {\n const entries = Object.entries(obj);\n if (entries.length === 0) return 'map[string]any{}';\n const rendered = entries.map(([k, v]) => ({ key: k, value: renderValue(v) }));\n const oneline = `map[string]any{${rendered.map((e) => `\"${e.key}\": ${e.value}`).join(', ')}}`;\n if (oneline.length <= 80 && rendered.every((e) => !e.value.includes('\\n'))) return oneline;\n const lines: string[] = ['map[string]any{'];\n for (const e of rendered) {\n lines.push(`${INDENT}\"${e.key}\": ${indentContinuationLines(e.value, INDENT)},`);\n }\n lines.push('}');\n return lines.join('\\n');\n}\n\nfunction indentContinuationLines(s: string, indent: string): string {\n if (!s.includes('\\n')) return s;\n const lines = s.split('\\n');\n return lines.map((line, i) => (i === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n","import type { EmitterContext, ExampleBuilder, ResolvedOperation, SnippetArg, SnippetEmitter } from '@workos/oagen';\nimport { collectSnippetArgs, collectWrapperArgs } from '@workos/oagen';\nimport {\n appendAsyncSuffix,\n className,\n fieldName,\n methodName,\n trimMountedResourceFromMethod,\n} from '../dotnet/naming.js';\n\nconst INDENT = ' ';\n\nexport const dotnetSnippetEmitter: SnippetEmitter = {\n language: 'dotnet',\n fileExtension: 'cs',\n\n renderOperation(resolved, ctx, examples) {\n if (resolved.urlBuilder) return null;\n\n // Mirror the .NET SDK's naming pipeline directly from the resolved op:\n // PascalCase → trim mount-target resource → append Async. We avoid\n // calling back into resolveMethodName so the snippet emitter does not\n // re-validate the whole resolved-ops set on every invocation.\n const rawMethodName =\n resolved.wrappers && resolved.wrappers.length > 0 ? resolved.wrappers[0]!.name : resolved.methodName;\n const stem = trimMountedResourceFromMethod(methodName(rawMethodName), resolved.mountOn);\n const method = appendAsyncSuffix(stem);\n\n return renderCall(resolved, ctx, examples, method);\n },\n};\n\nfunction renderCall(\n resolved: ResolvedOperation,\n ctx: EmitterContext,\n examples: ExampleBuilder,\n method: string,\n): string {\n const accessor = className(resolved.mountOn);\n // Options class follows the `{Resource}{Method}Options` convention used by\n // the SDK (e.g. OrganizationsCreateOptions). The method here already had its\n // resource prefix trimmed and Async suffix appended, so reconstruct.\n const stem = method.replace(/Async$/, '');\n const optsType = `${accessor}${stem}Options`;\n\n let args: SnippetArg[];\n let pathArgs: SnippetArg[];\n let optionsArgs: SnippetArg[];\n\n if (resolved.wrappers && resolved.wrappers.length > 0) {\n args = collectWrapperArgs(resolved.wrappers[0]!, ctx, examples);\n pathArgs = [];\n optionsArgs = args;\n } else {\n const collected = collectSnippetArgs(resolved, ctx, examples);\n args = collected.args;\n pathArgs = args.filter((a) => a.source === 'path');\n optionsArgs = args.filter((a) => a.source !== 'path');\n }\n\n const lines: string[] = [];\n lines.push('using WorkOS;');\n lines.push('');\n lines.push('var client = new WorkOSClient(new WorkOSOptions');\n lines.push('{');\n lines.push(`${INDENT}ApiKey = \"sk_example_123456789\",`);\n lines.push(`${INDENT}ClientId = \"client_123456789\",`);\n lines.push('});');\n lines.push('');\n\n const callParts: string[] = [];\n for (const p of pathArgs) callParts.push(renderValue(p.value));\n if (optionsArgs.length > 0) callParts.push(renderOptions(optsType, optionsArgs));\n\n const lhs = `await client.${accessor}.${method}`;\n if (callParts.length === 0) {\n lines.push(`${lhs}();`);\n } else if (callParts.length === 1) {\n lines.push(`${lhs}(${indentContinuationLines(callParts[0]!, INDENT)});`);\n } else {\n lines.push(`${lhs}(`);\n for (let i = 0; i < callParts.length; i++) {\n const trailing = i < callParts.length - 1 ? ',' : '';\n lines.push(`${INDENT}${indentContinuationLines(callParts[i]!, INDENT)}${trailing}`);\n }\n lines.push(');');\n }\n\n return lines.join('\\n');\n}\n\nfunction renderOptions(typeName: string, args: SnippetArg[]): string {\n const lines: string[] = [`new ${typeName}`, '{'];\n for (let i = 0; i < args.length; i++) {\n const a = args[i]!;\n const field = fieldName(a.wireName);\n const value = renderValue(a.value);\n const trailing = i < args.length - 1 ? ',' : ',';\n lines.push(`${INDENT}${field} = ${indentContinuationLines(value, INDENT)}${trailing}`);\n }\n lines.push('}');\n return lines.join('\\n');\n}\n\n// ---------------------------------------------------------------------------\n// C# literal rendering\n// ---------------------------------------------------------------------------\n\nfunction renderValue(value: unknown): string {\n if (value === null || value === undefined) return 'null';\n if (typeof value === 'boolean') return value ? 'true' : 'false';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'string') return csharpString(value);\n if (Array.isArray(value)) return renderArray(value);\n if (typeof value === 'object') return renderDict(value as Record<string, unknown>);\n return 'null';\n}\n\nfunction csharpString(s: string): string {\n return `\"${s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n}\n\nfunction renderArray(items: unknown[]): string {\n if (items.length === 0) return 'new[] { }';\n const rendered = items.map((v) => renderValue(v));\n const oneline = `new[] { ${rendered.join(', ')} }`;\n if (oneline.length <= 80 && rendered.every((r) => !r.includes('\\n'))) return oneline;\n const lines: string[] = ['new[]', '{'];\n for (let i = 0; i < rendered.length; i++) {\n const trailing = i < rendered.length - 1 ? ',' : ',';\n lines.push(`${INDENT}${indentContinuationLines(rendered[i]!, INDENT)}${trailing}`);\n }\n lines.push('}');\n return lines.join('\\n');\n}\n\nfunction renderDict(obj: Record<string, unknown>): string {\n // Plain dictionary literal — the dotnet SDK exposes models, but the snippet\n // doesn't know which model class corresponds to each nested object. Emit a\n // Dictionary<string, object> initializer that the SDK serializer can handle\n // or a developer can replace with the typed model.\n const entries = Object.entries(obj);\n if (entries.length === 0) return 'new Dictionary<string, object>()';\n const rendered = entries.map(([k, v]) => ({ key: k, value: renderValue(v) }));\n const lines: string[] = ['new Dictionary<string, object>', '{'];\n for (let i = 0; i < rendered.length; i++) {\n const e = rendered[i]!;\n const trailing = i < rendered.length - 1 ? ',' : ',';\n lines.push(`${INDENT}{ \"${e.key}\", ${indentContinuationLines(e.value, INDENT)} }${trailing}`);\n }\n lines.push('}');\n return lines.join('\\n');\n}\n\nfunction indentContinuationLines(s: string, indent: string): string {\n if (!s.includes('\\n')) return s;\n const lines = s.split('\\n');\n return lines.map((line, i) => (i === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n","import type { EmitterContext, ExampleBuilder, ResolvedOperation, SnippetArg, SnippetEmitter } from '@workos/oagen';\nimport { collectSnippetArgs, collectWrapperArgs } from '@workos/oagen';\nimport { apiClassName, methodName, packageSegment, propertyName } from '../kotlin/naming.js';\n\nconst INDENT = ' ';\n\n/**\n * Emits Java-syntax snippets (rendered as `.java`) backed by the Kotlin SDK's\n * naming so JVM callers see the same method and options names whether they\n * write Kotlin or Java. The WorkOS docs render the `.java` extension because\n * Java is the most common JVM consumer; Kotlin call sites would look almost\n * identical apart from `var`/`val` and named-argument syntax.\n */\nexport const kotlinSnippetEmitter: SnippetEmitter = {\n language: 'java',\n fileExtension: 'java',\n\n renderOperation(resolved, ctx, examples) {\n if (resolved.urlBuilder) return null;\n\n const method =\n resolved.wrappers && resolved.wrappers.length > 0\n ? methodName(resolved.wrappers[0]!.name)\n : methodName(resolved.methodName);\n\n return renderCall(resolved, ctx, examples, method);\n },\n};\n\nfunction renderCall(\n resolved: ResolvedOperation,\n ctx: EmitterContext,\n examples: ExampleBuilder,\n method: string,\n): string {\n const apiClass = apiClassName(resolved.mountOn);\n const accessor = propertyName(resolved.mountOn);\n const optionsType = `${methodName(\n resolved.wrappers && resolved.wrappers.length > 0 ? resolved.wrappers[0]!.name : resolved.methodName,\n )}Options`;\n const optionsTypeCapitalized = optionsType[0]!.toUpperCase() + optionsType.slice(1);\n const apiSubPackage = packageSegment(resolved.mountOn);\n\n let args: SnippetArg[];\n let pathArgs: SnippetArg[];\n let optionsArgs: SnippetArg[];\n\n if (resolved.wrappers && resolved.wrappers.length > 0) {\n args = collectWrapperArgs(resolved.wrappers[0]!, ctx, examples);\n pathArgs = [];\n optionsArgs = args;\n } else {\n const collected = collectSnippetArgs(resolved, ctx, examples);\n args = collected.args;\n pathArgs = args.filter((a) => a.source === 'path');\n optionsArgs = args.filter((a) => a.source !== 'path');\n }\n\n const lines: string[] = [];\n lines.push('import com.workos.WorkOS;');\n if (optionsArgs.length > 0) {\n lines.push(`import com.workos.${apiSubPackage}.${apiClass}Api.${optionsTypeCapitalized};`);\n }\n lines.push('');\n lines.push('WorkOS workos = new WorkOS(\"sk_example_123456789\");');\n lines.push('');\n\n const callParts: string[] = pathArgs.map((p) => renderValue(p.value));\n\n if (optionsArgs.length > 0) {\n lines.push(`${optionsTypeCapitalized} options = ${optionsTypeCapitalized}.builder()`);\n for (const a of optionsArgs) {\n const prop = propertyName(a.wireName);\n const value = renderValue(a.value);\n const indentedValue = indentContinuationLines(value, INDENT);\n lines.push(`${INDENT}.${prop}(${indentedValue})`);\n }\n lines.push(`${INDENT}.build();`);\n lines.push('');\n callParts.push('options');\n }\n\n if (callParts.length === 0) {\n lines.push(`workos.${accessor}.${method}();`);\n } else {\n lines.push(`workos.${accessor}.${method}(${callParts.join(', ')});`);\n }\n\n return lines.join('\\n');\n}\n\n// ---------------------------------------------------------------------------\n// Java literal rendering\n// ---------------------------------------------------------------------------\n\nfunction renderValue(value: unknown): string {\n if (value === null || value === undefined) return 'null';\n if (typeof value === 'boolean') return value ? 'true' : 'false';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'string') return javaString(value);\n if (Array.isArray(value)) return renderList(value);\n if (typeof value === 'object') return renderMap(value as Record<string, unknown>);\n return 'null';\n}\n\nfunction javaString(s: string): string {\n return `\"${s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n}\n\nfunction renderList(items: unknown[]): string {\n if (items.length === 0) return 'List.of()';\n const rendered = items.map((v) => renderValue(v));\n const oneline = `List.of(${rendered.join(', ')})`;\n if (oneline.length <= 80 && rendered.every((r) => !r.includes('\\n'))) return oneline;\n const lines: string[] = ['List.of('];\n for (let i = 0; i < rendered.length; i++) {\n const trailing = i < rendered.length - 1 ? ',' : '';\n lines.push(`${INDENT}${indentContinuationLines(rendered[i]!, INDENT)}${trailing}`);\n }\n lines.push(')');\n return lines.join('\\n');\n}\n\nfunction renderMap(obj: Record<string, unknown>): string {\n const entries = Object.entries(obj);\n if (entries.length === 0) return 'Map.of()';\n const rendered = entries.map(([k, v]) => ({ key: k, value: renderValue(v) }));\n const oneline = `Map.of(${rendered.map((e) => `\"${e.key}\", ${e.value}`).join(', ')})`;\n if (oneline.length <= 80 && rendered.every((e) => !e.value.includes('\\n'))) return oneline;\n const lines: string[] = ['Map.of('];\n for (let i = 0; i < rendered.length; i++) {\n const e = rendered[i]!;\n const trailing = i < rendered.length - 1 ? ',' : '';\n lines.push(`${INDENT}\"${e.key}\", ${indentContinuationLines(e.value, INDENT)}${trailing}`);\n }\n lines.push(')');\n return lines.join('\\n');\n}\n\nfunction indentContinuationLines(s: string, indent: string): string {\n if (!s.includes('\\n')) return s;\n const lines = s.split('\\n');\n return lines.map((line, i) => (i === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n","import type { EmitterContext, ExampleBuilder, ResolvedOperation, SnippetArg, SnippetEmitter } from '@workos/oagen';\nimport { collectSnippetArgs, collectWrapperArgs } from '@workos/oagen';\nimport { fieldName, methodName, moduleName, resourceAccessorName, typeName } from '../rust/naming.js';\n\nconst INDENT = ' ';\n\nexport const rustSnippetEmitter: SnippetEmitter = {\n language: 'rust',\n fileExtension: 'rs',\n\n renderOperation(resolved, ctx, examples) {\n if (resolved.urlBuilder) return null;\n\n const method = methodName(\n resolved.wrappers && resolved.wrappers.length > 0 ? resolved.wrappers[0]!.name : resolved.methodName,\n );\n\n return renderCall(resolved, ctx, examples, method);\n },\n};\n\nfunction renderCall(\n resolved: ResolvedOperation,\n ctx: EmitterContext,\n examples: ExampleBuilder,\n method: string,\n): string {\n const accessor = resourceAccessorName(resolved.mountOn);\n const modulePath = moduleName(resolved.mountOn);\n const paramsStructName = `${typeName(\n resolved.wrappers && resolved.wrappers.length > 0 ? resolved.wrappers[0]!.name : resolved.methodName,\n )}Params`;\n\n let args: SnippetArg[];\n let pathArgs: SnippetArg[];\n let structArgs: SnippetArg[];\n\n if (resolved.wrappers && resolved.wrappers.length > 0) {\n args = collectWrapperArgs(resolved.wrappers[0]!, ctx, examples);\n pathArgs = [];\n structArgs = args;\n } else {\n const collected = collectSnippetArgs(resolved, ctx, examples);\n args = collected.args;\n pathArgs = args.filter((a) => a.source === 'path');\n structArgs = args.filter((a) => a.source !== 'path');\n }\n\n const imports: string[] = ['use workos::Client;'];\n if (structArgs.length > 0) {\n imports.push(`use workos::${modulePath}::${paramsStructName};`);\n }\n\n const lines: string[] = [];\n lines.push(...imports);\n lines.push('');\n lines.push('#[tokio::main]');\n lines.push('async fn main() -> Result<(), workos::Error> {');\n lines.push(`${INDENT}let client = Client::builder()`);\n lines.push(`${INDENT}${INDENT}.api_key(\"sk_example_123456789\")`);\n lines.push(`${INDENT}${INDENT}.client_id(\"client_123456789\")`);\n lines.push(`${INDENT}${INDENT}.build();`);\n lines.push('');\n\n const callParts: string[] = [];\n for (const p of pathArgs) {\n const v = p.value;\n if (typeof v === 'string') callParts.push(rustString(v));\n else callParts.push(renderValue(v));\n }\n if (structArgs.length > 0) {\n callParts.push(renderStructLiteral(paramsStructName, structArgs));\n }\n\n const callLines: string[] = [`${INDENT}let _result = client`, `${INDENT}${INDENT}.${accessor}()`];\n if (callParts.length === 0) {\n callLines.push(`${INDENT}${INDENT}.${method}()`);\n } else if (callParts.length === 1 && !callParts[0]!.includes('\\n')) {\n callLines.push(`${INDENT}${INDENT}.${method}(${callParts[0]})`);\n } else {\n callLines.push(`${INDENT}${INDENT}.${method}(`);\n for (let i = 0; i < callParts.length; i++) {\n const trailing = i < callParts.length - 1 ? ',' : '';\n const indented = indentContinuationLines(callParts[i]!, `${INDENT}${INDENT}${INDENT}`);\n callLines.push(`${INDENT}${INDENT}${INDENT}${indented}${trailing}`);\n }\n callLines.push(`${INDENT}${INDENT})`);\n }\n callLines.push(`${INDENT}${INDENT}.await?;`);\n lines.push(...callLines);\n\n lines.push('');\n lines.push(`${INDENT}Ok(())`);\n lines.push('}');\n\n return lines.join('\\n');\n}\n\nfunction renderStructLiteral(structName: string, args: SnippetArg[]): string {\n const lines: string[] = [`${structName} {`];\n for (const a of args) {\n const field = fieldName(a.wireName);\n const value = renderStructValue(a.value);\n lines.push(`${INDENT}${field}: ${indentContinuationLines(value, INDENT)},`);\n }\n lines.push(`${INDENT}..Default::default()`);\n lines.push('}');\n return lines.join('\\n');\n}\n\n// ---------------------------------------------------------------------------\n// Rust literal rendering\n// ---------------------------------------------------------------------------\n\n/** Top-level value rendering (no `.into()` wrap — used for path params etc.). */\nfunction renderValue(value: unknown): string {\n if (value === null || value === undefined) return 'None';\n if (typeof value === 'boolean') return value ? 'true' : 'false';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'string') return rustString(value);\n if (Array.isArray(value)) return renderVec(value);\n if (typeof value === 'object') return renderInlineObject(value as Record<string, unknown>);\n return 'None';\n}\n\n/** Struct-field rendering: wraps strings with `.into()` so `String` fields accept &str. */\nfunction renderStructValue(value: unknown): string {\n if (typeof value === 'string') return `${rustString(value)}.into()`;\n if (Array.isArray(value)) return renderVecStructValues(value);\n return renderValue(value);\n}\n\nfunction rustString(s: string): string {\n return `\"${s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n}\n\nfunction renderVec(items: unknown[]): string {\n if (items.length === 0) return 'vec![]';\n const rendered = items.map((v) => renderValue(v));\n const oneline = `vec![${rendered.join(', ')}]`;\n if (oneline.length <= 80 && rendered.every((r) => !r.includes('\\n'))) return oneline;\n const lines: string[] = ['vec!['];\n for (let i = 0; i < rendered.length; i++) {\n const trailing = i < rendered.length - 1 ? ',' : ',';\n lines.push(`${INDENT}${indentContinuationLines(rendered[i]!, INDENT)}${trailing}`);\n }\n lines.push(']');\n return lines.join('\\n');\n}\n\nfunction renderVecStructValues(items: unknown[]): string {\n if (items.length === 0) return 'vec![]';\n const rendered = items.map((v) => renderStructValue(v));\n const oneline = `vec![${rendered.join(', ')}]`;\n if (oneline.length <= 80 && rendered.every((r) => !r.includes('\\n'))) return oneline;\n const lines: string[] = ['vec!['];\n for (let i = 0; i < rendered.length; i++) {\n const trailing = i < rendered.length - 1 ? ',' : ',';\n lines.push(`${INDENT}${indentContinuationLines(rendered[i]!, INDENT)}${trailing}`);\n }\n lines.push(']');\n return lines.join('\\n');\n}\n\n/** Render a plain object as a generic `serde_json::json!({...})` literal. The\n * snippet doesn't know the exact Rust struct corresponding to each nested\n * object, so we fall back to a serde-friendly literal a developer can swap\n * for the concrete struct (e.g. `OrganizationDomainData { ... }`). */\nfunction renderInlineObject(obj: Record<string, unknown>): string {\n const entries = Object.entries(obj);\n if (entries.length === 0) return 'serde_json::json!({})';\n const rendered = entries.map(([k, v]) => ({ key: k, value: renderValue(v) }));\n const oneline = `serde_json::json!({ ${rendered.map((e) => `\"${e.key}\": ${e.value}`).join(', ')} })`;\n if (oneline.length <= 80 && rendered.every((e) => !e.value.includes('\\n'))) return oneline;\n const lines: string[] = ['serde_json::json!({'];\n for (let i = 0; i < rendered.length; i++) {\n const e = rendered[i]!;\n const trailing = i < rendered.length - 1 ? ',' : ',';\n lines.push(`${INDENT}\"${e.key}\": ${indentContinuationLines(e.value, INDENT)}${trailing}`);\n }\n lines.push('})');\n return lines.join('\\n');\n}\n\nfunction indentContinuationLines(s: string, indent: string): string {\n if (!s.includes('\\n')) return s;\n const lines = s.split('\\n');\n return lines.map((line, i) => (i === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n","import type { SnippetEmitter } from '@workos/oagen';\nimport { dotnetSnippetEmitter } from './dotnet.js';\nimport { goSnippetEmitter } from './go.js';\nimport { kotlinSnippetEmitter } from './kotlin.js';\nimport { phpSnippetEmitter } from './php.js';\nimport { pythonSnippetEmitter } from './python.js';\nimport { rubySnippetEmitter } from './ruby.js';\nimport { rustSnippetEmitter } from './rust.js';\n\n/**\n * Bundle of snippet emitters for every WorkOS SDK language we currently\n * generate call-site samples for. Node is intentionally absent — the docs\n * pipeline still owns hand-authored TypeScript samples there.\n *\n * ```ts\n * import { runSnippetEmitters, workosSnippetsPlugin } from '@workos/oagen-emitters';\n *\n * const snippets = runSnippetEmitters(workosSnippetsPlugin.snippets, ctx);\n * ```\n *\n * Each entry mirrors a published WorkOS SDK and reuses that emitter's naming\n * helpers (`src/<lang>/naming.ts`), so generated samples stay in lockstep\n * with the SDK they document — method names, mount-target casing, parameter\n * names, and reserved-word handling all match what the real SDK exposes.\n */\nexport const workosSnippetsPlugin: { snippets: SnippetEmitter[] } = {\n snippets: [\n rubySnippetEmitter,\n pythonSnippetEmitter,\n phpSnippetEmitter,\n goSnippetEmitter,\n dotnetSnippetEmitter,\n kotlinSnippetEmitter,\n rustSnippetEmitter,\n ],\n};\n"],"mappings":"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"}
|