@readme/oas-to-snippet 28.0.4 → 29.0.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.
@@ -287,4 +287,4 @@ export {
287
287
  getLanguageConfig,
288
288
  getClientInstallationInstructions
289
289
  };
290
- //# sourceMappingURL=chunk-WG7B3EVC.js.map
290
+ //# sourceMappingURL=chunk-EWVPFH2Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/languages.ts"],"sourcesContent":["import type { ClientId, ClientPlugin, TargetId } from '@readme/httpsnippet/targets';\n\nimport { targets } from '@readme/httpsnippet/targets';\n\nexport type Language = keyof typeof DEFAULT_LANGUAGES | [keyof typeof DEFAULT_LANGUAGES, ClientId];\n\nexport interface LanguageConfig {\n highlight: string;\n httpsnippet: {\n default: ClientId;\n lang: TargetId;\n targets: Record<\n ClientId,\n {\n install?: string;\n name: string;\n opts?: Record<string, unknown>;\n }\n >;\n };\n}\n\nexport type SupportedTargets = Exclude<TargetId, 'objc'> | 'cplusplus' | 'objectivec';\nexport type SupportedLanguages = Record<SupportedTargets, LanguageConfig>;\n\nconst DEFAULT_LANGUAGES: SupportedLanguages = {\n c: {\n highlight: 'text/x-csrc',\n httpsnippet: {\n lang: 'c',\n default: 'libcurl',\n targets: {\n libcurl: { name: 'libcurl' },\n },\n },\n },\n clojure: {\n highlight: 'clojure',\n httpsnippet: {\n lang: 'clojure',\n default: 'clj_http',\n targets: {\n clj_http: { name: 'clj-http' },\n },\n },\n },\n cplusplus: {\n highlight: 'text/x-c++src',\n httpsnippet: {\n lang: 'c',\n default: 'libcurl',\n targets: {\n libcurl: { name: 'libcurl' },\n },\n },\n },\n csharp: {\n highlight: 'text/x-csharp',\n httpsnippet: {\n lang: 'csharp',\n default: 'restsharp',\n targets: {\n httpclient: { name: 'HttpClient' },\n restsharp: { name: 'RestSharp' },\n },\n },\n },\n http: {\n highlight: 'http',\n httpsnippet: {\n lang: 'http',\n default: 'http1.1',\n targets: {\n 'http1.1': { name: 'HTTP 1.1' },\n },\n },\n },\n go: {\n highlight: 'go',\n httpsnippet: {\n lang: 'go',\n default: 'native',\n targets: {\n native: { name: 'http.NewRequest' },\n },\n },\n },\n java: {\n highlight: 'java',\n httpsnippet: {\n lang: 'java',\n default: 'okhttp',\n targets: {\n asynchttp: { name: 'AsyncHttp' },\n nethttp: { name: 'java.net.http' },\n okhttp: { name: 'OkHttp' },\n unirest: { name: 'Unirest' },\n },\n },\n },\n javascript: {\n highlight: 'javascript',\n httpsnippet: {\n lang: 'javascript',\n default: 'fetch',\n targets: {\n axios: { name: 'Axios' },\n fetch: { name: 'fetch' },\n jquery: { name: 'jQuery' },\n xhr: { name: 'XMLHttpRequest' },\n },\n },\n },\n json: {\n highlight: 'json',\n httpsnippet: {\n lang: 'json',\n default: 'native',\n targets: {\n native: { name: 'JSON' },\n },\n },\n },\n kotlin: {\n highlight: 'java',\n httpsnippet: {\n lang: 'kotlin',\n default: 'okhttp',\n targets: {\n okhttp: { name: 'OkHttp' },\n },\n },\n },\n node: {\n highlight: 'javascript',\n httpsnippet: {\n lang: 'node',\n default: 'fetch',\n targets: {\n axios: { name: 'Axios' },\n fetch: { name: 'fetch' },\n native: { name: 'http' },\n },\n },\n },\n objectivec: {\n highlight: 'objectivec',\n httpsnippet: {\n lang: 'objc',\n default: 'nsurlsession',\n targets: {\n nsurlsession: { name: 'NSURLSession' },\n },\n },\n },\n ocaml: {\n highlight: 'ocaml',\n httpsnippet: {\n lang: 'ocaml',\n default: 'cohttp',\n targets: {\n cohttp: { name: 'CoHTTP' },\n },\n },\n },\n php: {\n highlight: 'php',\n httpsnippet: {\n lang: 'php',\n default: 'guzzle',\n targets: {\n curl: { name: 'cURL' },\n guzzle: { name: 'Guzzle' },\n },\n },\n },\n powershell: {\n highlight: 'powershell',\n httpsnippet: {\n lang: 'powershell',\n default: 'webrequest',\n targets: {\n restmethod: { name: 'Invoke-RestMethod' },\n webrequest: { name: 'Invoke-WebRequest' },\n },\n },\n },\n python: {\n highlight: 'python',\n httpsnippet: {\n lang: 'python',\n default: 'requests',\n targets: {\n requests: { name: 'Requests' },\n },\n },\n },\n r: {\n highlight: 'r',\n httpsnippet: {\n lang: 'r',\n default: 'httr',\n targets: {\n httr: { name: 'httr' },\n },\n },\n },\n ruby: {\n highlight: 'ruby',\n httpsnippet: {\n lang: 'ruby',\n default: 'native',\n targets: {\n native: { name: 'net::http' },\n },\n },\n },\n shell: {\n highlight: 'shell',\n httpsnippet: {\n lang: 'shell',\n default: 'curl',\n targets: {\n curl: {\n name: 'cURL',\n opts: {\n escapeBrackets: true,\n indent: ' ',\n },\n },\n httpie: { name: 'HTTPie' },\n },\n },\n },\n swift: {\n highlight: 'swift',\n httpsnippet: {\n lang: 'swift',\n default: 'urlsession',\n targets: {\n urlsession: { name: 'URLSession' },\n },\n },\n },\n};\n\n/**\n * Retrieve all supported supported languages by this library. You can also optionally supply an\n * array of `httpsnippet` plugins to extend this list.\n *\n */\nexport function getSupportedLanguages(\n {\n plugins,\n }: {\n // biome-ignore lint/suspicious/noExplicitAny: Intentionally loose because this supports different plugin types.\n plugins?: ClientPlugin<any>[];\n } = { plugins: [] },\n): SupportedLanguages {\n const languages: SupportedLanguages = JSON.parse(JSON.stringify(DEFAULT_LANGUAGES));\n\n Object.entries(targets).forEach(([target, { clientsById }]) => {\n if (!(target in languages)) {\n return;\n }\n\n Object.entries(clientsById).forEach(([client, data]) => {\n if (!(client in languages[target as SupportedTargets].httpsnippet.targets)) {\n return;\n }\n\n if ('installation' in data.info) {\n languages[target as SupportedTargets].httpsnippet.targets[client].install = data.info.installation;\n }\n });\n });\n\n (plugins || []).forEach(({ target, client: { info: clientInfo } }) => {\n const clientKey = clientInfo.key;\n\n languages[target as SupportedTargets].httpsnippet.targets[clientKey] = {\n name: clientInfo.title,\n };\n\n if (clientInfo.installation) {\n languages[target as SupportedTargets].httpsnippet.targets[clientKey].install = clientInfo.installation;\n }\n });\n\n return languages;\n}\n\nexport function getLanguageConfig(\n languages: SupportedLanguages,\n lang: Language,\n): {\n config: LanguageConfig | undefined;\n language: TargetId | undefined;\n target: ClientId | undefined;\n} {\n let config: LanguageConfig | undefined;\n let language: TargetId | undefined;\n let target: ClientId | undefined;\n\n // If `lang` is an array, then it's a mixture of language and targets like `[php, guzzle]` or\n // `[javascript, axios]` so we need to a bit of work to pull out the necessary information\n // needed to build the snippet.\n if (Array.isArray(lang)) {\n if (lang[0] in languages) {\n if (lang[1] in languages[lang[0] as SupportedTargets].httpsnippet.targets) {\n config = languages[lang[0] as SupportedTargets];\n language = config.httpsnippet.lang;\n target = lang[1];\n }\n }\n } else if (lang in languages) {\n config = languages[lang];\n language = config.httpsnippet.lang;\n target = config.httpsnippet.default;\n } else {\n throw new Error('An unknown language was supplied.');\n }\n\n return {\n config,\n language,\n target,\n };\n}\n\nexport function getClientInstallationInstructions(\n languages: SupportedLanguages,\n lang: Language,\n /**\n * For `api` snippet generation we need supply a ReadMe API Registry identifier that'll be used\n * to retrieve the OpenAPI definition to generate their SDK through the `npx api install` command.\n * These users won't be installing the `api` package itself to run the snippets we generate for\n * them.\n *\n * @example @developers/v2.0#17273l2glm9fq4l5\n */\n registryIdentifier?: string,\n): string | undefined {\n const { config, target } = getLanguageConfig(languages, lang);\n\n const install = config?.httpsnippet.targets[target || '']?.install;\n if (!install) {\n return undefined;\n }\n\n return registryIdentifier ? install.replace('{packageName}', registryIdentifier) : install;\n}\n"],"mappings":"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","names":[]}
@@ -287,4 +287,4 @@ function getClientInstallationInstructions(languages, lang, registryIdentifier)
287
287
 
288
288
 
289
289
  exports.getSupportedLanguages = getSupportedLanguages; exports.getLanguageConfig = getLanguageConfig; exports.getClientInstallationInstructions = getClientInstallationInstructions;
290
- //# sourceMappingURL=chunk-B7DK75O3.cjs.map
290
+ //# sourceMappingURL=chunk-IGRKQZNE.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/erunion/code/readme/oas/packages/oas-to-snippet/dist/chunk-B7DK75O3.cjs","../src/languages.ts"],"names":[],"mappings":"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","file":"/Users/erunion/code/readme/oas/packages/oas-to-snippet/dist/chunk-B7DK75O3.cjs","sourcesContent":[null,"import type { ClientId, ClientPlugin, TargetId } from '@readme/httpsnippet/targets';\n\nimport { targets } from '@readme/httpsnippet/targets';\n\nexport type Language = keyof typeof DEFAULT_LANGUAGES | [keyof typeof DEFAULT_LANGUAGES, ClientId];\n\nexport interface LanguageConfig {\n highlight: string;\n httpsnippet: {\n default: ClientId;\n lang: TargetId;\n targets: Record<\n ClientId,\n {\n install?: string;\n name: string;\n opts?: Record<string, unknown>;\n }\n >;\n };\n}\n\nexport type SupportedTargets = Exclude<TargetId, 'objc'> | 'cplusplus' | 'objectivec';\nexport type SupportedLanguages = Record<SupportedTargets, LanguageConfig>;\n\nconst DEFAULT_LANGUAGES: SupportedLanguages = {\n c: {\n highlight: 'text/x-csrc',\n httpsnippet: {\n lang: 'c',\n default: 'libcurl',\n targets: {\n libcurl: { name: 'libcurl' },\n },\n },\n },\n clojure: {\n highlight: 'clojure',\n httpsnippet: {\n lang: 'clojure',\n default: 'clj_http',\n targets: {\n clj_http: { name: 'clj-http' },\n },\n },\n },\n cplusplus: {\n highlight: 'text/x-c++src',\n httpsnippet: {\n lang: 'c',\n default: 'libcurl',\n targets: {\n libcurl: { name: 'libcurl' },\n },\n },\n },\n csharp: {\n highlight: 'text/x-csharp',\n httpsnippet: {\n lang: 'csharp',\n default: 'restsharp',\n targets: {\n httpclient: { name: 'HttpClient' },\n restsharp: { name: 'RestSharp' },\n },\n },\n },\n http: {\n highlight: 'http',\n httpsnippet: {\n lang: 'http',\n default: 'http1.1',\n targets: {\n 'http1.1': { name: 'HTTP 1.1' },\n },\n },\n },\n go: {\n highlight: 'go',\n httpsnippet: {\n lang: 'go',\n default: 'native',\n targets: {\n native: { name: 'http.NewRequest' },\n },\n },\n },\n java: {\n highlight: 'java',\n httpsnippet: {\n lang: 'java',\n default: 'okhttp',\n targets: {\n asynchttp: { name: 'AsyncHttp' },\n nethttp: { name: 'java.net.http' },\n okhttp: { name: 'OkHttp' },\n unirest: { name: 'Unirest' },\n },\n },\n },\n javascript: {\n highlight: 'javascript',\n httpsnippet: {\n lang: 'javascript',\n default: 'fetch',\n targets: {\n axios: { name: 'Axios' },\n fetch: { name: 'fetch' },\n jquery: { name: 'jQuery' },\n xhr: { name: 'XMLHttpRequest' },\n },\n },\n },\n json: {\n highlight: 'json',\n httpsnippet: {\n lang: 'json',\n default: 'native',\n targets: {\n native: { name: 'JSON' },\n },\n },\n },\n kotlin: {\n highlight: 'java',\n httpsnippet: {\n lang: 'kotlin',\n default: 'okhttp',\n targets: {\n okhttp: { name: 'OkHttp' },\n },\n },\n },\n node: {\n highlight: 'javascript',\n httpsnippet: {\n lang: 'node',\n default: 'fetch',\n targets: {\n axios: { name: 'Axios' },\n fetch: { name: 'fetch' },\n native: { name: 'http' },\n },\n },\n },\n objectivec: {\n highlight: 'objectivec',\n httpsnippet: {\n lang: 'objc',\n default: 'nsurlsession',\n targets: {\n nsurlsession: { name: 'NSURLSession' },\n },\n },\n },\n ocaml: {\n highlight: 'ocaml',\n httpsnippet: {\n lang: 'ocaml',\n default: 'cohttp',\n targets: {\n cohttp: { name: 'CoHTTP' },\n },\n },\n },\n php: {\n highlight: 'php',\n httpsnippet: {\n lang: 'php',\n default: 'guzzle',\n targets: {\n curl: { name: 'cURL' },\n guzzle: { name: 'Guzzle' },\n },\n },\n },\n powershell: {\n highlight: 'powershell',\n httpsnippet: {\n lang: 'powershell',\n default: 'webrequest',\n targets: {\n restmethod: { name: 'Invoke-RestMethod' },\n webrequest: { name: 'Invoke-WebRequest' },\n },\n },\n },\n python: {\n highlight: 'python',\n httpsnippet: {\n lang: 'python',\n default: 'requests',\n targets: {\n requests: { name: 'Requests' },\n },\n },\n },\n r: {\n highlight: 'r',\n httpsnippet: {\n lang: 'r',\n default: 'httr',\n targets: {\n httr: { name: 'httr' },\n },\n },\n },\n ruby: {\n highlight: 'ruby',\n httpsnippet: {\n lang: 'ruby',\n default: 'native',\n targets: {\n native: { name: 'net::http' },\n },\n },\n },\n shell: {\n highlight: 'shell',\n httpsnippet: {\n lang: 'shell',\n default: 'curl',\n targets: {\n curl: {\n name: 'cURL',\n opts: {\n escapeBrackets: true,\n indent: ' ',\n },\n },\n httpie: { name: 'HTTPie' },\n },\n },\n },\n swift: {\n highlight: 'swift',\n httpsnippet: {\n lang: 'swift',\n default: 'urlsession',\n targets: {\n urlsession: { name: 'URLSession' },\n },\n },\n },\n};\n\n/**\n * Retrieve all supported supported languages by this library. You can also optionally supply an\n * array of `httpsnippet` plugins to extend this list.\n *\n */\nexport function getSupportedLanguages(\n {\n plugins,\n }: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plugins?: ClientPlugin<any>[];\n } = { plugins: [] },\n): SupportedLanguages {\n // eslint-disable-next-line try-catch-failsafe/json-parse\n const languages: SupportedLanguages = JSON.parse(JSON.stringify(DEFAULT_LANGUAGES));\n\n Object.entries(targets).forEach(([target, { clientsById }]) => {\n if (!(target in languages)) {\n return;\n }\n\n Object.entries(clientsById).forEach(([client, data]) => {\n if (!(client in languages[target as SupportedTargets].httpsnippet.targets)) {\n return;\n }\n\n if ('installation' in data.info) {\n languages[target as SupportedTargets].httpsnippet.targets[client].install = data.info.installation;\n }\n });\n });\n\n (plugins || []).forEach(({ target, client: { info: clientInfo } }) => {\n const clientKey = clientInfo.key;\n\n languages[target as SupportedTargets].httpsnippet.targets[clientKey] = {\n name: clientInfo.title,\n };\n\n if (clientInfo.installation) {\n languages[target as SupportedTargets].httpsnippet.targets[clientKey].install = clientInfo.installation;\n }\n });\n\n return languages;\n}\n\nexport function getLanguageConfig(\n languages: SupportedLanguages,\n lang: Language,\n): {\n config: LanguageConfig | undefined;\n language: TargetId | undefined;\n target: ClientId | undefined;\n} {\n let config: LanguageConfig | undefined;\n let language: TargetId | undefined;\n let target: ClientId | undefined;\n\n // If `lang` is an array, then it's a mixture of language and targets like `[php, guzzle]` or\n // `[javascript, axios]` so we need to a bit of work to pull out the necessary information\n // needed to build the snippet.\n if (Array.isArray(lang)) {\n if (lang[0] in languages) {\n if (lang[1] in languages[lang[0] as SupportedTargets].httpsnippet.targets) {\n config = languages[lang[0] as SupportedTargets];\n language = config.httpsnippet.lang;\n target = lang[1];\n }\n }\n } else if (lang in languages) {\n config = languages[lang];\n language = config.httpsnippet.lang;\n target = config.httpsnippet.default;\n } else {\n throw new Error('An unknown language was supplied.');\n }\n\n return {\n config,\n language,\n target,\n };\n}\n\nexport function getClientInstallationInstructions(\n languages: SupportedLanguages,\n lang: Language,\n /**\n * For `api` snippet generation we need supply a ReadMe API Registry identifier that'll be used\n * to retrieve the OpenAPI definition to generate their SDK through the `npx api install` command.\n * These users won't be installing the `api` package itself to run the snippets we generate for\n * them.\n *\n * @example @developers/v2.0#17273l2glm9fq4l5\n */\n registryIdentifier?: string,\n): string | undefined {\n const { config, target } = getLanguageConfig(languages, lang);\n\n const install = config?.httpsnippet.targets[target || '']?.install;\n if (!install) {\n return undefined;\n }\n\n return registryIdentifier ? install.replace('{packageName}', registryIdentifier) : install;\n}\n"]}
1
+ {"version":3,"sources":["/Users/erunion/code/readme/oas/packages/oas-to-snippet/dist/chunk-IGRKQZNE.cjs","../src/languages.ts"],"names":[],"mappings":"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","file":"/Users/erunion/code/readme/oas/packages/oas-to-snippet/dist/chunk-IGRKQZNE.cjs","sourcesContent":[null,"import type { ClientId, ClientPlugin, TargetId } from '@readme/httpsnippet/targets';\n\nimport { targets } from '@readme/httpsnippet/targets';\n\nexport type Language = keyof typeof DEFAULT_LANGUAGES | [keyof typeof DEFAULT_LANGUAGES, ClientId];\n\nexport interface LanguageConfig {\n highlight: string;\n httpsnippet: {\n default: ClientId;\n lang: TargetId;\n targets: Record<\n ClientId,\n {\n install?: string;\n name: string;\n opts?: Record<string, unknown>;\n }\n >;\n };\n}\n\nexport type SupportedTargets = Exclude<TargetId, 'objc'> | 'cplusplus' | 'objectivec';\nexport type SupportedLanguages = Record<SupportedTargets, LanguageConfig>;\n\nconst DEFAULT_LANGUAGES: SupportedLanguages = {\n c: {\n highlight: 'text/x-csrc',\n httpsnippet: {\n lang: 'c',\n default: 'libcurl',\n targets: {\n libcurl: { name: 'libcurl' },\n },\n },\n },\n clojure: {\n highlight: 'clojure',\n httpsnippet: {\n lang: 'clojure',\n default: 'clj_http',\n targets: {\n clj_http: { name: 'clj-http' },\n },\n },\n },\n cplusplus: {\n highlight: 'text/x-c++src',\n httpsnippet: {\n lang: 'c',\n default: 'libcurl',\n targets: {\n libcurl: { name: 'libcurl' },\n },\n },\n },\n csharp: {\n highlight: 'text/x-csharp',\n httpsnippet: {\n lang: 'csharp',\n default: 'restsharp',\n targets: {\n httpclient: { name: 'HttpClient' },\n restsharp: { name: 'RestSharp' },\n },\n },\n },\n http: {\n highlight: 'http',\n httpsnippet: {\n lang: 'http',\n default: 'http1.1',\n targets: {\n 'http1.1': { name: 'HTTP 1.1' },\n },\n },\n },\n go: {\n highlight: 'go',\n httpsnippet: {\n lang: 'go',\n default: 'native',\n targets: {\n native: { name: 'http.NewRequest' },\n },\n },\n },\n java: {\n highlight: 'java',\n httpsnippet: {\n lang: 'java',\n default: 'okhttp',\n targets: {\n asynchttp: { name: 'AsyncHttp' },\n nethttp: { name: 'java.net.http' },\n okhttp: { name: 'OkHttp' },\n unirest: { name: 'Unirest' },\n },\n },\n },\n javascript: {\n highlight: 'javascript',\n httpsnippet: {\n lang: 'javascript',\n default: 'fetch',\n targets: {\n axios: { name: 'Axios' },\n fetch: { name: 'fetch' },\n jquery: { name: 'jQuery' },\n xhr: { name: 'XMLHttpRequest' },\n },\n },\n },\n json: {\n highlight: 'json',\n httpsnippet: {\n lang: 'json',\n default: 'native',\n targets: {\n native: { name: 'JSON' },\n },\n },\n },\n kotlin: {\n highlight: 'java',\n httpsnippet: {\n lang: 'kotlin',\n default: 'okhttp',\n targets: {\n okhttp: { name: 'OkHttp' },\n },\n },\n },\n node: {\n highlight: 'javascript',\n httpsnippet: {\n lang: 'node',\n default: 'fetch',\n targets: {\n axios: { name: 'Axios' },\n fetch: { name: 'fetch' },\n native: { name: 'http' },\n },\n },\n },\n objectivec: {\n highlight: 'objectivec',\n httpsnippet: {\n lang: 'objc',\n default: 'nsurlsession',\n targets: {\n nsurlsession: { name: 'NSURLSession' },\n },\n },\n },\n ocaml: {\n highlight: 'ocaml',\n httpsnippet: {\n lang: 'ocaml',\n default: 'cohttp',\n targets: {\n cohttp: { name: 'CoHTTP' },\n },\n },\n },\n php: {\n highlight: 'php',\n httpsnippet: {\n lang: 'php',\n default: 'guzzle',\n targets: {\n curl: { name: 'cURL' },\n guzzle: { name: 'Guzzle' },\n },\n },\n },\n powershell: {\n highlight: 'powershell',\n httpsnippet: {\n lang: 'powershell',\n default: 'webrequest',\n targets: {\n restmethod: { name: 'Invoke-RestMethod' },\n webrequest: { name: 'Invoke-WebRequest' },\n },\n },\n },\n python: {\n highlight: 'python',\n httpsnippet: {\n lang: 'python',\n default: 'requests',\n targets: {\n requests: { name: 'Requests' },\n },\n },\n },\n r: {\n highlight: 'r',\n httpsnippet: {\n lang: 'r',\n default: 'httr',\n targets: {\n httr: { name: 'httr' },\n },\n },\n },\n ruby: {\n highlight: 'ruby',\n httpsnippet: {\n lang: 'ruby',\n default: 'native',\n targets: {\n native: { name: 'net::http' },\n },\n },\n },\n shell: {\n highlight: 'shell',\n httpsnippet: {\n lang: 'shell',\n default: 'curl',\n targets: {\n curl: {\n name: 'cURL',\n opts: {\n escapeBrackets: true,\n indent: ' ',\n },\n },\n httpie: { name: 'HTTPie' },\n },\n },\n },\n swift: {\n highlight: 'swift',\n httpsnippet: {\n lang: 'swift',\n default: 'urlsession',\n targets: {\n urlsession: { name: 'URLSession' },\n },\n },\n },\n};\n\n/**\n * Retrieve all supported supported languages by this library. You can also optionally supply an\n * array of `httpsnippet` plugins to extend this list.\n *\n */\nexport function getSupportedLanguages(\n {\n plugins,\n }: {\n // biome-ignore lint/suspicious/noExplicitAny: Intentionally loose because this supports different plugin types.\n plugins?: ClientPlugin<any>[];\n } = { plugins: [] },\n): SupportedLanguages {\n const languages: SupportedLanguages = JSON.parse(JSON.stringify(DEFAULT_LANGUAGES));\n\n Object.entries(targets).forEach(([target, { clientsById }]) => {\n if (!(target in languages)) {\n return;\n }\n\n Object.entries(clientsById).forEach(([client, data]) => {\n if (!(client in languages[target as SupportedTargets].httpsnippet.targets)) {\n return;\n }\n\n if ('installation' in data.info) {\n languages[target as SupportedTargets].httpsnippet.targets[client].install = data.info.installation;\n }\n });\n });\n\n (plugins || []).forEach(({ target, client: { info: clientInfo } }) => {\n const clientKey = clientInfo.key;\n\n languages[target as SupportedTargets].httpsnippet.targets[clientKey] = {\n name: clientInfo.title,\n };\n\n if (clientInfo.installation) {\n languages[target as SupportedTargets].httpsnippet.targets[clientKey].install = clientInfo.installation;\n }\n });\n\n return languages;\n}\n\nexport function getLanguageConfig(\n languages: SupportedLanguages,\n lang: Language,\n): {\n config: LanguageConfig | undefined;\n language: TargetId | undefined;\n target: ClientId | undefined;\n} {\n let config: LanguageConfig | undefined;\n let language: TargetId | undefined;\n let target: ClientId | undefined;\n\n // If `lang` is an array, then it's a mixture of language and targets like `[php, guzzle]` or\n // `[javascript, axios]` so we need to a bit of work to pull out the necessary information\n // needed to build the snippet.\n if (Array.isArray(lang)) {\n if (lang[0] in languages) {\n if (lang[1] in languages[lang[0] as SupportedTargets].httpsnippet.targets) {\n config = languages[lang[0] as SupportedTargets];\n language = config.httpsnippet.lang;\n target = lang[1];\n }\n }\n } else if (lang in languages) {\n config = languages[lang];\n language = config.httpsnippet.lang;\n target = config.httpsnippet.default;\n } else {\n throw new Error('An unknown language was supplied.');\n }\n\n return {\n config,\n language,\n target,\n };\n}\n\nexport function getClientInstallationInstructions(\n languages: SupportedLanguages,\n lang: Language,\n /**\n * For `api` snippet generation we need supply a ReadMe API Registry identifier that'll be used\n * to retrieve the OpenAPI definition to generate their SDK through the `npx api install` command.\n * These users won't be installing the `api` package itself to run the snippets we generate for\n * them.\n *\n * @example @developers/v2.0#17273l2glm9fq4l5\n */\n registryIdentifier?: string,\n): string | undefined {\n const { config, target } = getLanguageConfig(languages, lang);\n\n const install = config?.httpsnippet.targets[target || '']?.install;\n if (!install) {\n return undefined;\n }\n\n return registryIdentifier ? install.replace('{packageName}', registryIdentifier) : install;\n}\n"]}
package/dist/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkB7DK75O3cjs = require('./chunk-B7DK75O3.cjs');
5
+ var _chunkIGRKQZNEcjs = require('./chunk-IGRKQZNE.cjs');
6
6
 
7
7
  // src/index.ts
8
8
  var _httpsnippet = require('@readme/httpsnippet');
@@ -12,11 +12,11 @@ function oasToSnippet(oas, operation, values, auth, lang, opts = {}) {
12
12
  let language;
13
13
  let target;
14
14
  const plugins = opts.plugins || [];
15
- const languages = _chunkB7DK75O3cjs.getSupportedLanguages.call(void 0, {
15
+ const languages = _chunkIGRKQZNEcjs.getSupportedLanguages.call(void 0, {
16
16
  plugins
17
17
  });
18
18
  try {
19
- ({ config, language, target } = _chunkB7DK75O3cjs.getLanguageConfig.call(void 0, languages, lang));
19
+ ({ config, language, target } = _chunkIGRKQZNEcjs.getLanguageConfig.call(void 0, languages, lang));
20
20
  } catch (err) {
21
21
  if (!language || !target) {
22
22
  return { code: "", highlightMode: false, install: false };
@@ -47,7 +47,7 @@ function oasToSnippet(oas, operation, values, auth, lang, opts = {}) {
47
47
  };
48
48
  }
49
49
  });
50
- const install = _chunkB7DK75O3cjs.getClientInstallationInstructions.call(void 0, languages, lang, _optionalChain([opts, 'optionalAccess', _5 => _5.openapi, 'optionalAccess', _6 => _6.registryIdentifier])) || false;
50
+ const install = _chunkIGRKQZNEcjs.getClientInstallationInstructions.call(void 0, languages, lang, _optionalChain([opts, 'optionalAccess', _5 => _5.openapi, 'optionalAccess', _6 => _6.registryIdentifier])) || false;
51
51
  try {
52
52
  const code = snippet.convert(language, target, targetOpts);
53
53
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/erunion/code/readme/oas/packages/oas-to-snippet/dist/index.cjs","../src/index.ts"],"names":[],"mappings":"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","file":"/Users/erunion/code/readme/oas/packages/oas-to-snippet/dist/index.cjs","sourcesContent":[null,"import type { Language, LanguageConfig } from './languages.js';\nimport type { HarRequest } from './types.js';\nimport type { ClientId, ClientPlugin, TargetId } from '@readme/httpsnippet/targets';\nimport type { AuthForHAR, DataForHAR } from '@readme/oas-to-har/lib/types';\nimport type Oas from 'oas';\nimport type { Operation } from 'oas/operation';\n\nimport { HTTPSnippet, addClientPlugin } from '@readme/httpsnippet';\nimport generateHar from '@readme/oas-to-har';\n\nimport { getSupportedLanguages, getLanguageConfig, getClientInstallationInstructions } from './languages.js';\n\nexport default function oasToSnippet(\n oas: Oas,\n operation: Operation,\n values: DataForHAR,\n auth: AuthForHAR,\n lang: Language,\n opts: {\n /**\n * If you already have a HAR and you just want to generate a code snippet for it then you should\n * supply that HAR to this option.\n *\n */\n harOverride?: HarRequest;\n\n /**\n * Various options that are required for generating `[node, api]` code snippets.\n *\n * @see {@link https://npm.im/httpsnippet-client-api}\n */\n openapi?: {\n /**\n * The ReadMe API Registry identifier for this OpenAPI definition.\n *\n * @example @developers/v2.0#17273l2glm9fq4l5\n */\n registryIdentifier?: string;\n\n /**\n * This is the primary variable name that will be used in the code snippet. If supplied this\n * will take precedence over any supplied `registryIdentifier`.\n *\n * @example developers\n */\n variableName?: string;\n };\n\n /**\n * `httpsnippet` plugins to extend snippet generation to.\n *\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plugins?: ClientPlugin<any>[];\n } = {},\n): {\n /**\n * The resulting code snippet. Returns `false` if a snippet could not be generated.\n *\n * @example ```sh\n * curl --request DELETE --url http://petstore.swagger.io/v2/pet/petId\n * ```\n */\n code: string | false;\n /**\n * The programming language (used for syntax highlighting).\n * Returns `false` if a language could not be determined.\n *\n * @example shell\n */\n highlightMode: string | false;\n /**\n * Installation instructions for using the snippet.\n * Returns `false` if the snippet does not have an installation step.\n *\n * @example ```sh\n * npm install node-fetch@2 --save\n * ```\n */\n install: string | false;\n} {\n let config: LanguageConfig | undefined;\n let language: TargetId | undefined;\n let target: ClientId | undefined;\n\n const plugins = opts.plugins || [];\n\n const languages = getSupportedLanguages({\n plugins,\n });\n\n try {\n ({ config, language, target } = getLanguageConfig(languages, lang));\n } catch (err) {\n if (!language || !target) {\n return { code: '', highlightMode: false, install: false };\n }\n }\n\n if (!config) {\n throw new Error(\n `The supplied language \\`${lang.toString()}\\` is not supported. If a plugin powers this language please initialize that plugin with the \\`plugins\\` option.`,\n );\n }\n\n if (!language || !target) {\n return { code: '', highlightMode: false, install: false };\n }\n\n const har = opts.harOverride || generateHar(oas, operation, values, auth);\n const snippet = new HTTPSnippet(har as HarRequest, {\n // We should only expect HAR's generated with `@readme/oas-to-har` to already be encoded.\n harIsAlreadyEncoded: !opts.harOverride,\n });\n\n let targetOpts = config.httpsnippet.targets[target].opts || {};\n const highlightMode = config.highlight;\n\n plugins.forEach(plugin => {\n addClientPlugin(plugin);\n\n // Our `httpsnippet-client-api` plugin uses these options so we need to pass them along.\n if (plugin.target === 'node' && plugin.client.info.key === 'api') {\n targetOpts.api = {\n definition: oas ? oas.getDefinition() : null,\n identifier: opts?.openapi?.variableName,\n registryURI: opts?.openapi?.registryIdentifier,\n };\n }\n });\n\n const install = getClientInstallationInstructions(languages, lang, opts?.openapi?.registryIdentifier) || false;\n\n try {\n const code = snippet.convert(language, target, targetOpts);\n\n return {\n code: code ? code[0] : false,\n highlightMode,\n install,\n };\n } catch (err) {\n if (language !== 'node' && target !== 'api') {\n throw err;\n }\n\n /**\n * Since `api` depends upon the API definition it's more subject to breakage than other snippet\n * targets, so if we failed when attempting to generate one for that let's instead render out a\n * `fetch` snippet.\n */\n targetOpts = config.httpsnippet.targets.fetch.opts || {};\n\n const code = snippet.convert(language, 'fetch', targetOpts);\n\n return {\n code: code ? code[0] : false,\n highlightMode,\n install: false,\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["/Users/erunion/code/readme/oas/packages/oas-to-snippet/dist/index.cjs","../src/index.ts"],"names":[],"mappings":"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","file":"/Users/erunion/code/readme/oas/packages/oas-to-snippet/dist/index.cjs","sourcesContent":[null,"import type { ClientId, ClientPlugin, TargetId } from '@readme/httpsnippet/targets';\nimport type { AuthForHAR, DataForHAR } from '@readme/oas-to-har/lib/types';\nimport type Oas from 'oas';\nimport type { Operation } from 'oas/operation';\nimport type { Language, LanguageConfig } from './languages.js';\nimport type { HarRequest } from './types.js';\n\nimport { addClientPlugin, HTTPSnippet } from '@readme/httpsnippet';\nimport generateHar from '@readme/oas-to-har';\n\nimport { getClientInstallationInstructions, getLanguageConfig, getSupportedLanguages } from './languages.js';\n\nexport default function oasToSnippet(\n oas: Oas,\n operation: Operation,\n values: DataForHAR,\n auth: AuthForHAR,\n lang: Language,\n opts: {\n /**\n * If you already have a HAR and you just want to generate a code snippet for it then you should\n * supply that HAR to this option.\n *\n */\n harOverride?: HarRequest;\n\n /**\n * Various options that are required for generating `[node, api]` code snippets.\n *\n * @see {@link https://npm.im/httpsnippet-client-api}\n */\n openapi?: {\n /**\n * The ReadMe API Registry identifier for this OpenAPI definition.\n *\n * @example @developers/v2.0#17273l2glm9fq4l5\n */\n registryIdentifier?: string;\n\n /**\n * This is the primary variable name that will be used in the code snippet. If supplied this\n * will take precedence over any supplied `registryIdentifier`.\n *\n * @example developers\n */\n variableName?: string;\n };\n\n /**\n * `httpsnippet` plugins to extend snippet generation to.\n *\n */\n // biome-ignore lint/suspicious/noExplicitAny: Intentionally loose because this supports different plugin types.\n plugins?: ClientPlugin<any>[];\n } = {},\n): {\n /**\n * The resulting code snippet. Returns `false` if a snippet could not be generated.\n *\n * @example ```sh\n * curl --request DELETE --url http://petstore.swagger.io/v2/pet/petId\n * ```\n */\n code: string | false;\n /**\n * The programming language (used for syntax highlighting).\n * Returns `false` if a language could not be determined.\n *\n * @example shell\n */\n highlightMode: string | false;\n /**\n * Installation instructions for using the snippet.\n * Returns `false` if the snippet does not have an installation step.\n *\n * @example ```sh\n * npm install node-fetch@2 --save\n * ```\n */\n install: string | false;\n} {\n let config: LanguageConfig | undefined;\n let language: TargetId | undefined;\n let target: ClientId | undefined;\n\n const plugins = opts.plugins || [];\n\n const languages = getSupportedLanguages({\n plugins,\n });\n\n try {\n ({ config, language, target } = getLanguageConfig(languages, lang));\n } catch (err) {\n if (!language || !target) {\n return { code: '', highlightMode: false, install: false };\n }\n }\n\n if (!config) {\n throw new Error(\n `The supplied language \\`${lang.toString()}\\` is not supported. If a plugin powers this language please initialize that plugin with the \\`plugins\\` option.`,\n );\n }\n\n if (!language || !target) {\n return { code: '', highlightMode: false, install: false };\n }\n\n const har = opts.harOverride || generateHar(oas, operation, values, auth);\n const snippet = new HTTPSnippet(har as HarRequest, {\n // We should only expect HAR's generated with `@readme/oas-to-har` to already be encoded.\n harIsAlreadyEncoded: !opts.harOverride,\n });\n\n let targetOpts = config.httpsnippet.targets[target].opts || {};\n const highlightMode = config.highlight;\n\n plugins.forEach(plugin => {\n addClientPlugin(plugin);\n\n // Our `httpsnippet-client-api` plugin uses these options so we need to pass them along.\n if (plugin.target === 'node' && plugin.client.info.key === 'api') {\n targetOpts.api = {\n definition: oas ? oas.getDefinition() : null,\n identifier: opts?.openapi?.variableName,\n registryURI: opts?.openapi?.registryIdentifier,\n };\n }\n });\n\n const install = getClientInstallationInstructions(languages, lang, opts?.openapi?.registryIdentifier) || false;\n\n try {\n const code = snippet.convert(language, target, targetOpts);\n\n return {\n code: code ? code[0] : false,\n highlightMode,\n install,\n };\n } catch (err) {\n if (language !== 'node' && target !== 'api') {\n throw err;\n }\n\n /**\n * Since `api` depends upon the API definition it's more subject to breakage than other snippet\n * targets, so if we failed when attempting to generate one for that let's instead render out a\n * `fetch` snippet.\n */\n targetOpts = config.httpsnippet.targets.fetch.opts || {};\n\n const code = snippet.convert(language, 'fetch', targetOpts);\n\n return {\n code: code ? code[0] : false,\n highlightMode,\n install: false,\n };\n }\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- import { Language } from './languages.cjs';
2
- import { HarRequest } from '@readme/httpsnippet';
3
1
  import { ClientPlugin } from '@readme/httpsnippet/targets';
4
2
  import { DataForHAR, AuthForHAR } from '@readme/oas-to-har/lib/types';
5
3
  import Oas from 'oas';
6
4
  import { Operation } from 'oas/operation';
5
+ import { Language } from './languages.cjs';
6
+ import { HarRequest } from '@readme/httpsnippet';
7
7
 
8
8
  declare function oasToSnippet(oas: Oas, operation: Operation, values: DataForHAR, auth: AuthForHAR, lang: Language, opts?: {
9
9
  /**
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { Language } from './languages.js';
2
- import { HarRequest } from '@readme/httpsnippet';
3
1
  import { ClientPlugin } from '@readme/httpsnippet/targets';
4
2
  import { DataForHAR, AuthForHAR } from '@readme/oas-to-har/lib/types';
5
3
  import Oas from 'oas';
6
4
  import { Operation } from 'oas/operation';
5
+ import { Language } from './languages.js';
6
+ import { HarRequest } from '@readme/httpsnippet';
7
7
 
8
8
  declare function oasToSnippet(oas: Oas, operation: Operation, values: DataForHAR, auth: AuthForHAR, lang: Language, opts?: {
9
9
  /**
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@ import {
2
2
  getClientInstallationInstructions,
3
3
  getLanguageConfig,
4
4
  getSupportedLanguages
5
- } from "./chunk-WG7B3EVC.js";
5
+ } from "./chunk-EWVPFH2Q.js";
6
6
 
7
7
  // src/index.ts
8
- import { HTTPSnippet, addClientPlugin } from "@readme/httpsnippet";
8
+ import { addClientPlugin, HTTPSnippet } from "@readme/httpsnippet";
9
9
  import generateHar from "@readme/oas-to-har";
10
10
  function oasToSnippet(oas, operation, values, auth, lang, opts = {}) {
11
11
  let config;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Language, LanguageConfig } from './languages.js';\nimport type { HarRequest } from './types.js';\nimport type { ClientId, ClientPlugin, TargetId } from '@readme/httpsnippet/targets';\nimport type { AuthForHAR, DataForHAR } from '@readme/oas-to-har/lib/types';\nimport type Oas from 'oas';\nimport type { Operation } from 'oas/operation';\n\nimport { HTTPSnippet, addClientPlugin } from '@readme/httpsnippet';\nimport generateHar from '@readme/oas-to-har';\n\nimport { getSupportedLanguages, getLanguageConfig, getClientInstallationInstructions } from './languages.js';\n\nexport default function oasToSnippet(\n oas: Oas,\n operation: Operation,\n values: DataForHAR,\n auth: AuthForHAR,\n lang: Language,\n opts: {\n /**\n * If you already have a HAR and you just want to generate a code snippet for it then you should\n * supply that HAR to this option.\n *\n */\n harOverride?: HarRequest;\n\n /**\n * Various options that are required for generating `[node, api]` code snippets.\n *\n * @see {@link https://npm.im/httpsnippet-client-api}\n */\n openapi?: {\n /**\n * The ReadMe API Registry identifier for this OpenAPI definition.\n *\n * @example @developers/v2.0#17273l2glm9fq4l5\n */\n registryIdentifier?: string;\n\n /**\n * This is the primary variable name that will be used in the code snippet. If supplied this\n * will take precedence over any supplied `registryIdentifier`.\n *\n * @example developers\n */\n variableName?: string;\n };\n\n /**\n * `httpsnippet` plugins to extend snippet generation to.\n *\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plugins?: ClientPlugin<any>[];\n } = {},\n): {\n /**\n * The resulting code snippet. Returns `false` if a snippet could not be generated.\n *\n * @example ```sh\n * curl --request DELETE --url http://petstore.swagger.io/v2/pet/petId\n * ```\n */\n code: string | false;\n /**\n * The programming language (used for syntax highlighting).\n * Returns `false` if a language could not be determined.\n *\n * @example shell\n */\n highlightMode: string | false;\n /**\n * Installation instructions for using the snippet.\n * Returns `false` if the snippet does not have an installation step.\n *\n * @example ```sh\n * npm install node-fetch@2 --save\n * ```\n */\n install: string | false;\n} {\n let config: LanguageConfig | undefined;\n let language: TargetId | undefined;\n let target: ClientId | undefined;\n\n const plugins = opts.plugins || [];\n\n const languages = getSupportedLanguages({\n plugins,\n });\n\n try {\n ({ config, language, target } = getLanguageConfig(languages, lang));\n } catch (err) {\n if (!language || !target) {\n return { code: '', highlightMode: false, install: false };\n }\n }\n\n if (!config) {\n throw new Error(\n `The supplied language \\`${lang.toString()}\\` is not supported. If a plugin powers this language please initialize that plugin with the \\`plugins\\` option.`,\n );\n }\n\n if (!language || !target) {\n return { code: '', highlightMode: false, install: false };\n }\n\n const har = opts.harOverride || generateHar(oas, operation, values, auth);\n const snippet = new HTTPSnippet(har as HarRequest, {\n // We should only expect HAR's generated with `@readme/oas-to-har` to already be encoded.\n harIsAlreadyEncoded: !opts.harOverride,\n });\n\n let targetOpts = config.httpsnippet.targets[target].opts || {};\n const highlightMode = config.highlight;\n\n plugins.forEach(plugin => {\n addClientPlugin(plugin);\n\n // Our `httpsnippet-client-api` plugin uses these options so we need to pass them along.\n if (plugin.target === 'node' && plugin.client.info.key === 'api') {\n targetOpts.api = {\n definition: oas ? oas.getDefinition() : null,\n identifier: opts?.openapi?.variableName,\n registryURI: opts?.openapi?.registryIdentifier,\n };\n }\n });\n\n const install = getClientInstallationInstructions(languages, lang, opts?.openapi?.registryIdentifier) || false;\n\n try {\n const code = snippet.convert(language, target, targetOpts);\n\n return {\n code: code ? code[0] : false,\n highlightMode,\n install,\n };\n } catch (err) {\n if (language !== 'node' && target !== 'api') {\n throw err;\n }\n\n /**\n * Since `api` depends upon the API definition it's more subject to breakage than other snippet\n * targets, so if we failed when attempting to generate one for that let's instead render out a\n * `fetch` snippet.\n */\n targetOpts = config.httpsnippet.targets.fetch.opts || {};\n\n const code = snippet.convert(language, 'fetch', targetOpts);\n\n return {\n code: code ? code[0] : false,\n highlightMode,\n install: false,\n };\n }\n}\n"],"mappings":";;;;;;;AAOA,SAAS,aAAa,uBAAuB;AAC7C,OAAO,iBAAiB;AAIT,SAAR,aACL,KACA,WACA,QACA,MACA,MACA,OAoCI,CAAC,GA0BL;AACA,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,QAAM,UAAU,KAAK,WAAW,CAAC;AAEjC,QAAM,YAAY,sBAAsB;AAAA,IACtC;AAAA,EACF,CAAC;AAED,MAAI;AACF,KAAC,EAAE,QAAQ,UAAU,OAAO,IAAI,kBAAkB,WAAW,IAAI;AAAA,EACnE,SAAS,KAAK;AACZ,QAAI,CAAC,YAAY,CAAC,QAAQ;AACxB,aAAO,EAAE,MAAM,IAAI,eAAe,OAAO,SAAS,MAAM;AAAA,IAC1D;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI;AAAA,MACR,2BAA2B,KAAK,SAAS,CAAC;AAAA,IAC5C;AAAA,EACF;AAEA,MAAI,CAAC,YAAY,CAAC,QAAQ;AACxB,WAAO,EAAE,MAAM,IAAI,eAAe,OAAO,SAAS,MAAM;AAAA,EAC1D;AAEA,QAAM,MAAM,KAAK,eAAe,YAAY,KAAK,WAAW,QAAQ,IAAI;AACxE,QAAM,UAAU,IAAI,YAAY,KAAmB;AAAA;AAAA,IAEjD,qBAAqB,CAAC,KAAK;AAAA,EAC7B,CAAC;AAED,MAAI,aAAa,OAAO,YAAY,QAAQ,MAAM,EAAE,QAAQ,CAAC;AAC7D,QAAM,gBAAgB,OAAO;AAE7B,UAAQ,QAAQ,YAAU;AACxB,oBAAgB,MAAM;AAGtB,QAAI,OAAO,WAAW,UAAU,OAAO,OAAO,KAAK,QAAQ,OAAO;AAChE,iBAAW,MAAM;AAAA,QACf,YAAY,MAAM,IAAI,cAAc,IAAI;AAAA,QACxC,YAAY,MAAM,SAAS;AAAA,QAC3B,aAAa,MAAM,SAAS;AAAA,MAC9B;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,UAAU,kCAAkC,WAAW,MAAM,MAAM,SAAS,kBAAkB,KAAK;AAEzG,MAAI;AACF,UAAM,OAAO,QAAQ,QAAQ,UAAU,QAAQ,UAAU;AAEzD,WAAO;AAAA,MACL,MAAM,OAAO,KAAK,CAAC,IAAI;AAAA,MACvB;AAAA,MACA;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AACZ,QAAI,aAAa,UAAU,WAAW,OAAO;AAC3C,YAAM;AAAA,IACR;AAOA,iBAAa,OAAO,YAAY,QAAQ,MAAM,QAAQ,CAAC;AAEvD,UAAM,OAAO,QAAQ,QAAQ,UAAU,SAAS,UAAU;AAE1D,WAAO;AAAA,MACL,MAAM,OAAO,KAAK,CAAC,IAAI;AAAA,MACvB;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { ClientId, ClientPlugin, TargetId } from '@readme/httpsnippet/targets';\nimport type { AuthForHAR, DataForHAR } from '@readme/oas-to-har/lib/types';\nimport type Oas from 'oas';\nimport type { Operation } from 'oas/operation';\nimport type { Language, LanguageConfig } from './languages.js';\nimport type { HarRequest } from './types.js';\n\nimport { addClientPlugin, HTTPSnippet } from '@readme/httpsnippet';\nimport generateHar from '@readme/oas-to-har';\n\nimport { getClientInstallationInstructions, getLanguageConfig, getSupportedLanguages } from './languages.js';\n\nexport default function oasToSnippet(\n oas: Oas,\n operation: Operation,\n values: DataForHAR,\n auth: AuthForHAR,\n lang: Language,\n opts: {\n /**\n * If you already have a HAR and you just want to generate a code snippet for it then you should\n * supply that HAR to this option.\n *\n */\n harOverride?: HarRequest;\n\n /**\n * Various options that are required for generating `[node, api]` code snippets.\n *\n * @see {@link https://npm.im/httpsnippet-client-api}\n */\n openapi?: {\n /**\n * The ReadMe API Registry identifier for this OpenAPI definition.\n *\n * @example @developers/v2.0#17273l2glm9fq4l5\n */\n registryIdentifier?: string;\n\n /**\n * This is the primary variable name that will be used in the code snippet. If supplied this\n * will take precedence over any supplied `registryIdentifier`.\n *\n * @example developers\n */\n variableName?: string;\n };\n\n /**\n * `httpsnippet` plugins to extend snippet generation to.\n *\n */\n // biome-ignore lint/suspicious/noExplicitAny: Intentionally loose because this supports different plugin types.\n plugins?: ClientPlugin<any>[];\n } = {},\n): {\n /**\n * The resulting code snippet. Returns `false` if a snippet could not be generated.\n *\n * @example ```sh\n * curl --request DELETE --url http://petstore.swagger.io/v2/pet/petId\n * ```\n */\n code: string | false;\n /**\n * The programming language (used for syntax highlighting).\n * Returns `false` if a language could not be determined.\n *\n * @example shell\n */\n highlightMode: string | false;\n /**\n * Installation instructions for using the snippet.\n * Returns `false` if the snippet does not have an installation step.\n *\n * @example ```sh\n * npm install node-fetch@2 --save\n * ```\n */\n install: string | false;\n} {\n let config: LanguageConfig | undefined;\n let language: TargetId | undefined;\n let target: ClientId | undefined;\n\n const plugins = opts.plugins || [];\n\n const languages = getSupportedLanguages({\n plugins,\n });\n\n try {\n ({ config, language, target } = getLanguageConfig(languages, lang));\n } catch (err) {\n if (!language || !target) {\n return { code: '', highlightMode: false, install: false };\n }\n }\n\n if (!config) {\n throw new Error(\n `The supplied language \\`${lang.toString()}\\` is not supported. If a plugin powers this language please initialize that plugin with the \\`plugins\\` option.`,\n );\n }\n\n if (!language || !target) {\n return { code: '', highlightMode: false, install: false };\n }\n\n const har = opts.harOverride || generateHar(oas, operation, values, auth);\n const snippet = new HTTPSnippet(har as HarRequest, {\n // We should only expect HAR's generated with `@readme/oas-to-har` to already be encoded.\n harIsAlreadyEncoded: !opts.harOverride,\n });\n\n let targetOpts = config.httpsnippet.targets[target].opts || {};\n const highlightMode = config.highlight;\n\n plugins.forEach(plugin => {\n addClientPlugin(plugin);\n\n // Our `httpsnippet-client-api` plugin uses these options so we need to pass them along.\n if (plugin.target === 'node' && plugin.client.info.key === 'api') {\n targetOpts.api = {\n definition: oas ? oas.getDefinition() : null,\n identifier: opts?.openapi?.variableName,\n registryURI: opts?.openapi?.registryIdentifier,\n };\n }\n });\n\n const install = getClientInstallationInstructions(languages, lang, opts?.openapi?.registryIdentifier) || false;\n\n try {\n const code = snippet.convert(language, target, targetOpts);\n\n return {\n code: code ? code[0] : false,\n highlightMode,\n install,\n };\n } catch (err) {\n if (language !== 'node' && target !== 'api') {\n throw err;\n }\n\n /**\n * Since `api` depends upon the API definition it's more subject to breakage than other snippet\n * targets, so if we failed when attempting to generate one for that let's instead render out a\n * `fetch` snippet.\n */\n targetOpts = config.httpsnippet.targets.fetch.opts || {};\n\n const code = snippet.convert(language, 'fetch', targetOpts);\n\n return {\n code: code ? code[0] : false,\n highlightMode,\n install: false,\n };\n }\n}\n"],"mappings":";;;;;;;AAOA,SAAS,iBAAiB,mBAAmB;AAC7C,OAAO,iBAAiB;AAIT,SAAR,aACL,KACA,WACA,QACA,MACA,MACA,OAoCI,CAAC,GA0BL;AACA,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,QAAM,UAAU,KAAK,WAAW,CAAC;AAEjC,QAAM,YAAY,sBAAsB;AAAA,IACtC;AAAA,EACF,CAAC;AAED,MAAI;AACF,KAAC,EAAE,QAAQ,UAAU,OAAO,IAAI,kBAAkB,WAAW,IAAI;AAAA,EACnE,SAAS,KAAK;AACZ,QAAI,CAAC,YAAY,CAAC,QAAQ;AACxB,aAAO,EAAE,MAAM,IAAI,eAAe,OAAO,SAAS,MAAM;AAAA,IAC1D;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI;AAAA,MACR,2BAA2B,KAAK,SAAS,CAAC;AAAA,IAC5C;AAAA,EACF;AAEA,MAAI,CAAC,YAAY,CAAC,QAAQ;AACxB,WAAO,EAAE,MAAM,IAAI,eAAe,OAAO,SAAS,MAAM;AAAA,EAC1D;AAEA,QAAM,MAAM,KAAK,eAAe,YAAY,KAAK,WAAW,QAAQ,IAAI;AACxE,QAAM,UAAU,IAAI,YAAY,KAAmB;AAAA;AAAA,IAEjD,qBAAqB,CAAC,KAAK;AAAA,EAC7B,CAAC;AAED,MAAI,aAAa,OAAO,YAAY,QAAQ,MAAM,EAAE,QAAQ,CAAC;AAC7D,QAAM,gBAAgB,OAAO;AAE7B,UAAQ,QAAQ,YAAU;AACxB,oBAAgB,MAAM;AAGtB,QAAI,OAAO,WAAW,UAAU,OAAO,OAAO,KAAK,QAAQ,OAAO;AAChE,iBAAW,MAAM;AAAA,QACf,YAAY,MAAM,IAAI,cAAc,IAAI;AAAA,QACxC,YAAY,MAAM,SAAS;AAAA,QAC3B,aAAa,MAAM,SAAS;AAAA,MAC9B;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,UAAU,kCAAkC,WAAW,MAAM,MAAM,SAAS,kBAAkB,KAAK;AAEzG,MAAI;AACF,UAAM,OAAO,QAAQ,QAAQ,UAAU,QAAQ,UAAU;AAEzD,WAAO;AAAA,MACL,MAAM,OAAO,KAAK,CAAC,IAAI;AAAA,MACvB;AAAA,MACA;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AACZ,QAAI,aAAa,UAAU,WAAW,OAAO;AAC3C,YAAM;AAAA,IACR;AAOA,iBAAa,OAAO,YAAY,QAAQ,MAAM,QAAQ,CAAC;AAEvD,UAAM,OAAO,QAAQ,QAAQ,UAAU,SAAS,UAAU;AAE1D,WAAO;AAAA,MACL,MAAM,OAAO,KAAK,CAAC,IAAI;AAAA,MACvB;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF;","names":[]}
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkB7DK75O3cjs = require('./chunk-B7DK75O3.cjs');
5
+ var _chunkIGRKQZNEcjs = require('./chunk-IGRKQZNE.cjs');
6
6
 
7
7
 
8
8
 
9
9
 
10
- exports.getClientInstallationInstructions = _chunkB7DK75O3cjs.getClientInstallationInstructions; exports.getLanguageConfig = _chunkB7DK75O3cjs.getLanguageConfig; exports.getSupportedLanguages = _chunkB7DK75O3cjs.getSupportedLanguages;
10
+ exports.getClientInstallationInstructions = _chunkIGRKQZNEcjs.getClientInstallationInstructions; exports.getLanguageConfig = _chunkIGRKQZNEcjs.getLanguageConfig; exports.getSupportedLanguages = _chunkIGRKQZNEcjs.getSupportedLanguages;
11
11
  //# sourceMappingURL=languages.cjs.map
package/dist/languages.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  getClientInstallationInstructions,
3
3
  getLanguageConfig,
4
4
  getSupportedLanguages
5
- } from "./chunk-WG7B3EVC.js";
5
+ } from "./chunk-EWVPFH2Q.js";
6
6
  export {
7
7
  getClientInstallationInstructions,
8
8
  getLanguageConfig,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@readme/oas-to-snippet",
3
3
  "description": "Transform an OpenAPI operation into a code snippet",
4
- "version": "28.0.4",
4
+ "version": "29.0.1",
5
5
  "author": "Jon Ursenbach <jon@readme.io>",
6
6
  "license": "MIT",
7
7
  "sideEffects": false,
@@ -42,8 +42,7 @@
42
42
  "attw": "attw --pack --format ascii --profile node16",
43
43
  "build": "tsup",
44
44
  "build:docs": "npm run build && node bin/generate-target-markdown-table.js",
45
- "lint": "npm run lint:types && npm run lint:js",
46
- "lint:js": "eslint . --ext .js,.ts --ignore-path ../../.gitignore",
45
+ "lint": "npm run lint:types",
47
46
  "lint:types": "tsc --noEmit",
48
47
  "prebuild": "rm -rf dist/",
49
48
  "prepack": "npm run build",
@@ -51,17 +50,18 @@
51
50
  },
52
51
  "dependencies": {
53
52
  "@readme/httpsnippet": "^11.0.0",
54
- "@readme/oas-to-har": "^26.0.4"
53
+ "@readme/oas-to-har": "^27.0.1"
55
54
  },
56
55
  "devDependencies": {
57
- "@readme/oas-examples": "^6.1.3",
56
+ "@readme/oas-examples": "^7.0.0",
58
57
  "@types/har-format": "^1.2.14",
59
58
  "@types/node": "^22.7.6",
60
- "har-examples": "^4.0.5",
61
- "oas": "^27.2.1",
59
+ "har-examples": "^4.0.7",
60
+ "oas": "^28.1.0",
61
+ "tsup": "^8.5.0",
62
62
  "typescript": "^5.2.2",
63
63
  "vitest": "^3.2.1"
64
64
  },
65
- "prettier": "@readme/eslint-config/prettier",
66
- "gitHead": "b036a753c9eb6305d5b38efb408413b64f897700"
65
+ "prettier": "@readme/standards/prettier",
66
+ "gitHead": "4bccb292663cb3945062633cb48f66aa57a8dedd"
67
67
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/languages.ts"],"sourcesContent":["import type { ClientId, ClientPlugin, TargetId } from '@readme/httpsnippet/targets';\n\nimport { targets } from '@readme/httpsnippet/targets';\n\nexport type Language = keyof typeof DEFAULT_LANGUAGES | [keyof typeof DEFAULT_LANGUAGES, ClientId];\n\nexport interface LanguageConfig {\n highlight: string;\n httpsnippet: {\n default: ClientId;\n lang: TargetId;\n targets: Record<\n ClientId,\n {\n install?: string;\n name: string;\n opts?: Record<string, unknown>;\n }\n >;\n };\n}\n\nexport type SupportedTargets = Exclude<TargetId, 'objc'> | 'cplusplus' | 'objectivec';\nexport type SupportedLanguages = Record<SupportedTargets, LanguageConfig>;\n\nconst DEFAULT_LANGUAGES: SupportedLanguages = {\n c: {\n highlight: 'text/x-csrc',\n httpsnippet: {\n lang: 'c',\n default: 'libcurl',\n targets: {\n libcurl: { name: 'libcurl' },\n },\n },\n },\n clojure: {\n highlight: 'clojure',\n httpsnippet: {\n lang: 'clojure',\n default: 'clj_http',\n targets: {\n clj_http: { name: 'clj-http' },\n },\n },\n },\n cplusplus: {\n highlight: 'text/x-c++src',\n httpsnippet: {\n lang: 'c',\n default: 'libcurl',\n targets: {\n libcurl: { name: 'libcurl' },\n },\n },\n },\n csharp: {\n highlight: 'text/x-csharp',\n httpsnippet: {\n lang: 'csharp',\n default: 'restsharp',\n targets: {\n httpclient: { name: 'HttpClient' },\n restsharp: { name: 'RestSharp' },\n },\n },\n },\n http: {\n highlight: 'http',\n httpsnippet: {\n lang: 'http',\n default: 'http1.1',\n targets: {\n 'http1.1': { name: 'HTTP 1.1' },\n },\n },\n },\n go: {\n highlight: 'go',\n httpsnippet: {\n lang: 'go',\n default: 'native',\n targets: {\n native: { name: 'http.NewRequest' },\n },\n },\n },\n java: {\n highlight: 'java',\n httpsnippet: {\n lang: 'java',\n default: 'okhttp',\n targets: {\n asynchttp: { name: 'AsyncHttp' },\n nethttp: { name: 'java.net.http' },\n okhttp: { name: 'OkHttp' },\n unirest: { name: 'Unirest' },\n },\n },\n },\n javascript: {\n highlight: 'javascript',\n httpsnippet: {\n lang: 'javascript',\n default: 'fetch',\n targets: {\n axios: { name: 'Axios' },\n fetch: { name: 'fetch' },\n jquery: { name: 'jQuery' },\n xhr: { name: 'XMLHttpRequest' },\n },\n },\n },\n json: {\n highlight: 'json',\n httpsnippet: {\n lang: 'json',\n default: 'native',\n targets: {\n native: { name: 'JSON' },\n },\n },\n },\n kotlin: {\n highlight: 'java',\n httpsnippet: {\n lang: 'kotlin',\n default: 'okhttp',\n targets: {\n okhttp: { name: 'OkHttp' },\n },\n },\n },\n node: {\n highlight: 'javascript',\n httpsnippet: {\n lang: 'node',\n default: 'fetch',\n targets: {\n axios: { name: 'Axios' },\n fetch: { name: 'fetch' },\n native: { name: 'http' },\n },\n },\n },\n objectivec: {\n highlight: 'objectivec',\n httpsnippet: {\n lang: 'objc',\n default: 'nsurlsession',\n targets: {\n nsurlsession: { name: 'NSURLSession' },\n },\n },\n },\n ocaml: {\n highlight: 'ocaml',\n httpsnippet: {\n lang: 'ocaml',\n default: 'cohttp',\n targets: {\n cohttp: { name: 'CoHTTP' },\n },\n },\n },\n php: {\n highlight: 'php',\n httpsnippet: {\n lang: 'php',\n default: 'guzzle',\n targets: {\n curl: { name: 'cURL' },\n guzzle: { name: 'Guzzle' },\n },\n },\n },\n powershell: {\n highlight: 'powershell',\n httpsnippet: {\n lang: 'powershell',\n default: 'webrequest',\n targets: {\n restmethod: { name: 'Invoke-RestMethod' },\n webrequest: { name: 'Invoke-WebRequest' },\n },\n },\n },\n python: {\n highlight: 'python',\n httpsnippet: {\n lang: 'python',\n default: 'requests',\n targets: {\n requests: { name: 'Requests' },\n },\n },\n },\n r: {\n highlight: 'r',\n httpsnippet: {\n lang: 'r',\n default: 'httr',\n targets: {\n httr: { name: 'httr' },\n },\n },\n },\n ruby: {\n highlight: 'ruby',\n httpsnippet: {\n lang: 'ruby',\n default: 'native',\n targets: {\n native: { name: 'net::http' },\n },\n },\n },\n shell: {\n highlight: 'shell',\n httpsnippet: {\n lang: 'shell',\n default: 'curl',\n targets: {\n curl: {\n name: 'cURL',\n opts: {\n escapeBrackets: true,\n indent: ' ',\n },\n },\n httpie: { name: 'HTTPie' },\n },\n },\n },\n swift: {\n highlight: 'swift',\n httpsnippet: {\n lang: 'swift',\n default: 'urlsession',\n targets: {\n urlsession: { name: 'URLSession' },\n },\n },\n },\n};\n\n/**\n * Retrieve all supported supported languages by this library. You can also optionally supply an\n * array of `httpsnippet` plugins to extend this list.\n *\n */\nexport function getSupportedLanguages(\n {\n plugins,\n }: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plugins?: ClientPlugin<any>[];\n } = { plugins: [] },\n): SupportedLanguages {\n // eslint-disable-next-line try-catch-failsafe/json-parse\n const languages: SupportedLanguages = JSON.parse(JSON.stringify(DEFAULT_LANGUAGES));\n\n Object.entries(targets).forEach(([target, { clientsById }]) => {\n if (!(target in languages)) {\n return;\n }\n\n Object.entries(clientsById).forEach(([client, data]) => {\n if (!(client in languages[target as SupportedTargets].httpsnippet.targets)) {\n return;\n }\n\n if ('installation' in data.info) {\n languages[target as SupportedTargets].httpsnippet.targets[client].install = data.info.installation;\n }\n });\n });\n\n (plugins || []).forEach(({ target, client: { info: clientInfo } }) => {\n const clientKey = clientInfo.key;\n\n languages[target as SupportedTargets].httpsnippet.targets[clientKey] = {\n name: clientInfo.title,\n };\n\n if (clientInfo.installation) {\n languages[target as SupportedTargets].httpsnippet.targets[clientKey].install = clientInfo.installation;\n }\n });\n\n return languages;\n}\n\nexport function getLanguageConfig(\n languages: SupportedLanguages,\n lang: Language,\n): {\n config: LanguageConfig | undefined;\n language: TargetId | undefined;\n target: ClientId | undefined;\n} {\n let config: LanguageConfig | undefined;\n let language: TargetId | undefined;\n let target: ClientId | undefined;\n\n // If `lang` is an array, then it's a mixture of language and targets like `[php, guzzle]` or\n // `[javascript, axios]` so we need to a bit of work to pull out the necessary information\n // needed to build the snippet.\n if (Array.isArray(lang)) {\n if (lang[0] in languages) {\n if (lang[1] in languages[lang[0] as SupportedTargets].httpsnippet.targets) {\n config = languages[lang[0] as SupportedTargets];\n language = config.httpsnippet.lang;\n target = lang[1];\n }\n }\n } else if (lang in languages) {\n config = languages[lang];\n language = config.httpsnippet.lang;\n target = config.httpsnippet.default;\n } else {\n throw new Error('An unknown language was supplied.');\n }\n\n return {\n config,\n language,\n target,\n };\n}\n\nexport function getClientInstallationInstructions(\n languages: SupportedLanguages,\n lang: Language,\n /**\n * For `api` snippet generation we need supply a ReadMe API Registry identifier that'll be used\n * to retrieve the OpenAPI definition to generate their SDK through the `npx api install` command.\n * These users won't be installing the `api` package itself to run the snippets we generate for\n * them.\n *\n * @example @developers/v2.0#17273l2glm9fq4l5\n */\n registryIdentifier?: string,\n): string | undefined {\n const { config, target } = getLanguageConfig(languages, lang);\n\n const install = config?.httpsnippet.targets[target || '']?.install;\n if (!install) {\n return undefined;\n }\n\n return registryIdentifier ? install.replace('{packageName}', registryIdentifier) : install;\n}\n"],"mappings":"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","names":[]}