@kubb/plugin-redoc 3.0.0-alpha.9 → 3.0.0-beta.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/README.md CHANGED
@@ -13,12 +13,8 @@
13
13
  [![Coverage][coverage-src]][coverage-href]
14
14
  [![License][license-src]][license-href]
15
15
 
16
- <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
17
- <!-- ALL-CONTRIBUTORS-BADGE:END -->
18
- </p>
19
-
20
16
  <h4>
21
- <a href="https://codesandbox.io/s/github/kubb-labs/kubb/tree/alpha/examples/typescript" target="_blank">View Demo</a>
17
+ <a href="https://codesandbox.io/s/github/kubb-labs/kubb/tree/main//examples/typescript" target="_blank">View Demo</a>
22
18
  <span> · </span>
23
19
  <a href="https://kubb.dev/" target="_blank">Documentation</a>
24
20
  <span> · </span>
@@ -28,6 +24,19 @@
28
24
  </h4>
29
25
  </div>
30
26
 
27
+ ## Supporting Kubb
28
+
29
+ Kubb uses an MIT-licensed open source project with its ongoing development made possible entirely by the support of Sponsors. If you would like to become a sponsor, please consider:
30
+
31
+ - [Become a Sponsor on GitHub](https://github.com/sponsors/stijnvanhulle)
32
+
33
+ <p align="center">
34
+ <a href="https://github.com/sponsors/stijnvanhulle">
35
+ <img src="https://raw.githubusercontent.com/stijnvanhulle/sponsors/main/sponsors.svg" alt="My sponsors" />
36
+ </a>
37
+ </p>
38
+
39
+
31
40
  <!-- Badges -->
32
41
 
33
42
  [npm-version-src]: https://img.shields.io/npm/v/@kubb/plugin-redoc?flat&colorA=18181B&colorB=f58517
package/dist/index.cjs CHANGED
@@ -1,4 +1,23 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var __getOwnPropNames = Object.getOwnPropertyNames;
1
+ 'use strict';
2
+
3
+ var path2 = require('path');
4
+ var core = require('@kubb/core');
5
+ var pluginOas = require('@kubb/plugin-oas');
6
+ var fs = require('fs');
7
+ var pkg = require('handlebars');
8
+ var server = require('react-dom/server');
9
+ var styledComponents = require('styled-components');
10
+ var redoc = require('redoc');
11
+ var jsxRuntime = require('react/jsx-runtime');
12
+
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var path2__default = /*#__PURE__*/_interopDefault(path2);
16
+ var fs__default = /*#__PURE__*/_interopDefault(fs);
17
+ var pkg__default = /*#__PURE__*/_interopDefault(pkg);
18
+ var redoc__default = /*#__PURE__*/_interopDefault(redoc);
19
+
20
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
21
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
3
22
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
4
23
  }) : x)(function(x) {
@@ -9,10 +28,9 @@ var __esm = (fn, res) => function __init() {
9
28
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
29
  };
11
30
 
12
- // ../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.47.7_@types+node@20.16.2__jiti@1.21.6_postcss@8.4.41_typescript@5.5.4_yaml@2.4.5/node_modules/tsup/assets/cjs_shims.js
31
+ // ../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.10__@swc+core@1.7.22_jiti@2.1.0__obkdyxrevtpud2s6cj2lfmzsum/node_modules/tsup/assets/cjs_shims.js
13
32
  var init_cjs_shims = __esm({
14
- "../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.47.7_@types+node@20.16.2__jiti@1.21.6_postcss@8.4.41_typescript@5.5.4_yaml@2.4.5/node_modules/tsup/assets/cjs_shims.js"() {
15
- "use strict";
33
+ "../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.10__@swc+core@1.7.22_jiti@2.1.0__obkdyxrevtpud2s6cj2lfmzsum/node_modules/tsup/assets/cjs_shims.js"() {
16
34
  }
17
35
  });
18
36
 
@@ -21,10 +39,6 @@ init_cjs_shims();
21
39
 
22
40
  // src/plugin.ts
23
41
  init_cjs_shims();
24
- var _path = require('path'); var _path2 = _interopRequireDefault(_path);
25
- var _core = require('@kubb/core');
26
- require('@kubb/core/transformers');
27
- var _pluginoas = require('@kubb/plugin-oas');
28
42
 
29
43
  // ../fs/src/index.ts
30
44
  init_cjs_shims();
@@ -34,13 +48,6 @@ function trimExtName(text) {
34
48
 
35
49
  // src/redoc.tsx
36
50
  init_cjs_shims();
37
- var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);
38
-
39
- var _handlebars = require('handlebars'); var _handlebars2 = _interopRequireDefault(_handlebars);
40
- var _server = require('react-dom/server');
41
- var _styledcomponents = require('styled-components');
42
- var _redoc = require('redoc'); var _redoc2 = _interopRequireDefault(_redoc);
43
- var _jsxruntime = require('react/jsx-runtime');
44
51
  function escapeClosingScriptTag(str) {
45
52
  return str.replace(/<\/script>/g, "<\\/script>");
46
53
  }
@@ -52,19 +59,19 @@ function sanitizeJSONString(str) {
52
59
  }
53
60
  async function getPageHTML(api, { title, disableGoogleFont, templateOptions, redocOptions = {} } = {}) {
54
61
  const apiUrl = redocOptions.specUrl;
55
- const { Redoc, createStore } = _redoc2.default || __require("redoc");
62
+ const { Redoc, createStore } = redoc__default.default || __require("redoc");
56
63
  const store = await createStore(api, apiUrl, redocOptions);
57
- const sheet = new (0, _styledcomponents.ServerStyleSheet)();
64
+ const sheet = new styledComponents.ServerStyleSheet();
58
65
  const error = console.error;
59
66
  console.error = (...args) => {
60
67
  if (/defaultProps/.test(args[0])) return;
61
68
  error(...args);
62
69
  };
63
- const html = _server.renderToString.call(void 0, sheet.collectStyles(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Redoc, { store })));
70
+ const html = server.renderToString(sheet.collectStyles(/* @__PURE__ */ jsxRuntime.jsx(Redoc, { store })));
64
71
  const state = await store.toJS();
65
72
  const css = sheet.getStyleTags();
66
- const templateFileName = _path2.default.join(__dirname, "../static/redoc.hbs");
67
- const template = _handlebars2.default.compile(_fs2.default.readFileSync(templateFileName).toString());
73
+ const templateFileName = path2__default.default.join(__dirname, "../static/redoc.hbs");
74
+ const template = pkg__default.default.compile(fs__default.default.readFileSync(templateFileName).toString());
68
75
  return template({
69
76
  redocHTML: `
70
77
  <div id="redoc">${html || ""}</div>
@@ -87,31 +94,28 @@ async function getPageHTML(api, { title, disableGoogleFont, templateOptions, red
87
94
 
88
95
  // src/plugin.ts
89
96
  var pluginRedocName = "plugin-redoc";
90
- var pluginRedoc = _core.createPlugin.call(void 0, (options) => {
97
+ var pluginRedoc = core.createPlugin((options) => {
91
98
  const { output = { path: "docs.html" } } = options;
92
99
  return {
93
100
  name: pluginRedocName,
94
- output: {
95
- exportType: "barrelNamed",
96
- ...output
97
- },
98
101
  options: {
102
+ output,
99
103
  name: trimExtName(output.path),
100
104
  baseURL: void 0
101
105
  },
102
- pre: [_pluginoas.pluginOasName],
106
+ pre: [pluginOas.pluginOasName],
103
107
  async buildStart() {
104
- const [swaggerPlugin] = _core.PluginManager.getDependedPlugins(this.plugins, [_pluginoas.pluginOasName]);
108
+ const [swaggerPlugin] = core.PluginManager.getDependedPlugins(this.plugins, [pluginOas.pluginOasName]);
105
109
  const oas = await swaggerPlugin.context.getOas();
106
110
  await oas.dereference();
107
- const root = _path2.default.resolve(this.config.root, this.config.output.path);
111
+ const root = path2__default.default.resolve(this.config.root, this.config.output.path);
108
112
  const pageHTML = await getPageHTML(oas.api);
109
- await this.fileManager.write(_path2.default.resolve(root, output.path || "./docs.html"), pageHTML);
113
+ await this.fileManager.write(path2__default.default.resolve(root, output.path || "./docs.html"), pageHTML);
110
114
  }
111
115
  };
112
116
  });
113
117
 
114
-
115
-
116
- exports.pluginRedoc = pluginRedoc; exports.pluginRedocName = pluginRedocName;
118
+ exports.pluginRedoc = pluginRedoc;
119
+ exports.pluginRedocName = pluginRedocName;
120
+ //# sourceMappingURL=index.cjs.map
117
121
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-redoc/dist/index.cjs","../../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.47.7_@types+node@20.16.2__jiti@1.21.6_postcss@8.4.41_typescript@5.5.4_yaml@2.4.5/node_modules/tsup/assets/cjs_shims.js","../src/index.ts","../src/plugin.ts","../../fs/src/index.ts","../src/redoc.tsx"],"names":["path"],"mappings":"AAAA,6KAAI,kBAAkB,EAAE,MAAM,CAAC,mBAAmB;AAClD,IAAI,UAAU,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,QAAQ,IAAI,YAAY,EAAE,QAAQ,EAAE,OAAO,MAAM,IAAI,YAAY,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE;AAC/H,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,QAAQ,IAAI,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE;AACpB,EAAE,GAAG,CAAC,OAAO,QAAQ,IAAI,WAAW,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAC3E,EAAE,MAAM,KAAK,CAAC,uBAAuB,EAAE,EAAE,EAAE,oBAAoB,CAAC;AAChE,CAAC,CAAC;AACF,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS,MAAM,CAAC,EAAE;AAC3C,EAAE,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;AACrE,CAAC;AACD;AACA;ACXA,IAAA,eAAA,EAAA,KAAA,CAAA;AAAA,EAAA,uLAAA,CAAA,EAAA;AAAA,IAAA,YAAA;AAAA,EAAA;AAAA,CAAA,CAAA;ADiBA;AACA;AElBA,cAAA,CAAA,CAAA;AFoBA;AACA;AGrBA,cAAA,CAAA,CAAA;AAAA,wEAAiB;AAEjB,kCAA4C;AAC5C,mCAA0B;AAC1B,6CAA8B;AHuB9B;AACA;AI5BA,cAAA,CAAA,CAAA;AAIO,SAAS,WAAA,CAAY,IAAA,EAAsB;AAChD,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAA;AACrC;AJ2BA;AACA;AKlCA,cAAA,CAAA,CAAA;AAAA,gEAAe;AACf;AAEA,gGAAgB;AAChB,0CAA+B;AAC/B,qDAAiC;AACjC,4EAAkB;AAoCgC,+CAAA;AA1BlD,SAAS,sBAAA,CAAuB,GAAA,EAAqB;AACnD,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,aAAA,EAAe,aAAa,CAAA;AACjD;AAGA,SAAS,aAAA,CAAc,GAAA,EAAqB;AAE1C,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,gBAAA,EAAkB,CAAC,CAAA,EAAA,GAAM,SAAA,EAAA,CAAY,EAAA,IAAM,SAAA,EAAW,IAAA,EAAM,GAAA,CAAI,CAAA;AACrF;AAEA,SAAS,kBAAA,CAAmB,GAAA,EAAqB;AAC/C,EAAA,OAAO,sBAAA,CAAuB,aAAA,CAAc,GAAG,CAAC,CAAA;AAClD;AAEA,MAAA,SAAsB,WAAA,CAAY,GAAA,EAA2B,EAAE,KAAA,EAAO,iBAAA,EAAmB,eAAA,EAAiB,aAAA,EAAe,CAAC,EAAE,EAAA,EAAsB,CAAC,CAAA,EAAG;AACpJ,EAAA,MAAM,OAAA,EAAS,YAAA,CAAa,OAAA;AAC5B,EAAA,MAAM,EAAE,KAAA,EAAO,YAAY,EAAA,EAAI,gBAAA,GAAS,SAAA,CAAQ,OAAO,CAAA;AACvD,EAAA,MAAM,MAAA,EAAQ,MAAM,WAAA,CAAY,GAAA,EAAK,MAAA,EAAQ,YAAY,CAAA;AACzD,EAAA,MAAM,MAAA,EAAQ,IAAI,uCAAA,CAAiB,CAAA;AAEnC,EAAA,MAAM,MAAA,EAAQ,OAAA,CAAQ,KAAA;AACtB,EAAA,OAAA,CAAQ,MAAA,EAAQ,CAAA,GAAI,IAAA,EAAA,GAAc;AAChC,IAAA,GAAA,CAAI,cAAA,CAAe,IAAA,CAAK,IAAA,CAAK,CAAC,CAAC,CAAA,EAAG,MAAA;AAClC,IAAA,KAAA,CAAM,GAAG,IAAI,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,MAAM,KAAA,EAAO,oCAAA,KAAe,CAAM,aAAA,iBAAc,6BAAA,KAAC,EAAA,EAAM,MAAA,CAAc,CAAE,CAAC,CAAA;AACxE,EAAA,MAAM,MAAA,EAAQ,MAAM,KAAA,CAAM,IAAA,CAAK,CAAA;AAC/B,EAAA,MAAM,IAAA,EAAM,KAAA,CAAM,YAAA,CAAa,CAAA;AAE/B,EAAA,MAAM,iBAAA,EAAmB,cAAA,CAAK,IAAA,CAAK,SAAA,EAAW,qBAAqB,CAAA;AACnE,EAAA,MAAM,SAAA,EAAW,oBAAA,CAAI,OAAA,CAAQ,YAAA,CAAG,YAAA,CAAa,gBAAgB,CAAA,CAAE,QAAA,CAAS,CAAC,CAAA;AACzE,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,SAAA,EAAW,CAAA;AAAA,sBAAA,EACS,KAAA,GAAQ,EAAE,CAAA;AAAA;AAAA,MAAA,EAE1B,CAAA,sBAAA,EAAyB,kBAAA,CAAmB,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAC,CAAA,CAAA,EAAA,GAAO,EAAE,CAAA;AAAA;AAAA;AAAA,YAAA,EAGrE,mCAAmC,CAAA;AAAA;AAAA,eAAA,CAAA;AAAA,IAG7C,SAAA,EAAA;AAAA;AAAA,MAEE,CAAA,qFAAA,EAAA,EAA0F;AAAA,IAAA,CAAA;AAAA,IAC5F,KAAA,EAAO,MAAA,GAAS,GAAA,CAAI,IAAA,CAAK,MAAA,GAAS,qBAAA;AAAA,IAClC,iBAAA;AAAA,IACA;AAAA,EACF,CAAC,CAAA;AACH;ALqBA;AACA;AG3EO,IAAM,gBAAA,EAAkB,cAAA;AAExB,IAAM,YAAA,EAAc,gCAAA,CAA2B,OAAA,EAAA,GAAY;AAChE,EAAA,MAAM,EAAE,OAAA,EAAS,EAAE,IAAA,EAAM,YAAY,EAAE,EAAA,EAAI,OAAA;AAE3C,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,eAAA;AAAA,IACN,MAAA,EAAQ;AAAA,MACN,UAAA,EAAY,aAAA;AAAA,MACZ,GAAG;AAAA,IACL,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,WAAA,CAAY,MAAA,CAAO,IAAI,CAAA;AAAA,MAC7B,OAAA,EAAS,KAAA;AAAA,IACX,CAAA;AAAA,IACA,GAAA,EAAK,CAAC,wBAAa,CAAA;AAAA,IACnB,MAAM,UAAA,CAAA,EAAa;AACjB,MAAA,MAAM,CAAC,aAAa,EAAA,EAAyB,mBAAA,CAAc,kBAAA,CAA8B,IAAA,CAAK,OAAA,EAAS,CAAC,wBAAa,CAAC,CAAA;AACtH,MAAA,MAAM,IAAA,EAAM,MAAM,aAAA,CAAc,OAAA,CAAQ,MAAA,CAAO,CAAA;AAE/C,MAAA,MAAM,GAAA,CAAI,WAAA,CAAY,CAAA;AAEtB,MAAA,MAAM,KAAA,EAAOA,cAAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,MAAA,CAAO,IAAA,EAAM,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AACnE,MAAA,MAAM,SAAA,EAAW,MAAM,WAAA,CAAY,GAAA,CAAI,GAAG,CAAA;AAE1C,MAAA,MAAM,IAAA,CAAK,WAAA,CAAY,KAAA,CAAMA,cAAAA,CAAK,OAAA,CAAQ,IAAA,EAAM,MAAA,CAAO,KAAA,GAAQ,aAAa,CAAA,EAAG,QAAQ,CAAA;AAAA,IACzF;AAAA,EACF,CAAA;AACF,CAAC,CAAA;AHwED;AACE;AACA;AACF,6EAAC","file":"/home/runner/work/kubb/kubb/packages/plugin-redoc/dist/index.cjs","sourcesContent":[null,"// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","export { pluginRedoc, pluginRedocName } from './plugin.ts'\nexport type { PluginRedoc } from './types.ts'\n","import path from 'node:path'\n\nimport { PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { pluginOasName } from '@kubb/plugin-oas'\n\nimport type { Plugin } from '@kubb/core'\nimport { trimExtName } from '@kubb/fs'\nimport type { PluginOas } from '@kubb/plugin-oas'\nimport { getPageHTML } from './redoc.tsx'\nimport type { PluginRedoc } from './types.ts'\n\nexport const pluginRedocName = 'plugin-redoc' satisfies PluginRedoc['name']\n\nexport const pluginRedoc = createPlugin<PluginRedoc>((options) => {\n const { output = { path: 'docs.html' } } = options\n\n return {\n name: pluginRedocName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {\n name: trimExtName(output.path),\n baseURL: undefined,\n },\n pre: [pluginOasName],\n async buildStart() {\n const [swaggerPlugin]: [Plugin<PluginOas>] = PluginManager.getDependedPlugins<PluginOas>(this.plugins, [pluginOasName])\n const oas = await swaggerPlugin.context.getOas()\n\n await oas.dereference()\n\n const root = path.resolve(this.config.root, this.config.output.path)\n const pageHTML = await getPageHTML(oas.api)\n\n await this.fileManager.write(path.resolve(root, output.path || './docs.html'), pageHTML)\n },\n }\n})\n","export { clean } from './clean.ts'\nexport { getRelativePath, read, readSync } from './read.ts'\nexport { write } from './write.ts'\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\nimport type { OasTypes } from '@kubb/oas'\nimport pkg from 'handlebars'\nimport { renderToString } from 'react-dom/server'\nimport { ServerStyleSheet } from 'styled-components'\nimport redoc from 'redoc'\n\ntype BuildDocsOptions = {\n title?: string\n disableGoogleFont?: boolean\n templateOptions?: any\n redocOptions?: any\n}\n\n// see http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/\nfunction escapeClosingScriptTag(str: string): string {\n return str.replace(/<\\/script>/g, '<\\\\/script>')\n}\n\n// see http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/\nfunction escapeUnicode(str: string): string {\n // biome-ignore lint/style/useTemplate: <explanation>\n return str.replace(/\\u2028|\\u2029/g, (m) => '\\\\u202' + (m === '\\u2028' ? '8' : '9'))\n}\n\nfunction sanitizeJSONString(str: string): string {\n return escapeClosingScriptTag(escapeUnicode(str))\n}\n\nexport async function getPageHTML(api: OasTypes.OASDocument, { title, disableGoogleFont, templateOptions, redocOptions = {} }: BuildDocsOptions = {}) {\n const apiUrl = redocOptions.specUrl\n const { Redoc, createStore } = redoc || require('redoc')\n const store = await createStore(api, apiUrl, redocOptions)\n const sheet = new ServerStyleSheet()\n\n const error = console.error\n console.error = (...args: any) => {\n if (/defaultProps/.test(args[0])) return\n error(...args)\n }\n\n const html = renderToString(sheet.collectStyles(<Redoc store={store} />))\n const state = await store.toJS()\n const css = sheet.getStyleTags()\n\n const templateFileName = path.join(__dirname, '../static/redoc.hbs')\n const template = pkg.compile(fs.readFileSync(templateFileName).toString())\n return template({\n redocHTML: `\n <div id=\"redoc\">${html || ''}</div>\n <script>\n ${`const __redoc_state = ${sanitizeJSONString(JSON.stringify(state))};` || ''}\n\n var container = document.getElementById('redoc');\n Redoc.${'hydrate(__redoc_state, container)'};\n\n </script>`,\n redocHead:\n // biome-ignore lint/style/useTemplate: <explanation>\n `<script src=\"https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js\"></script>` + css,\n title: title || api.info.title || 'ReDoc documentation',\n disableGoogleFont,\n templateOptions,\n })\n}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.10__@swc+core@1.7.22_jiti@2.1.0__obkdyxrevtpud2s6cj2lfmzsum/node_modules/tsup/assets/cjs_shims.js","../src/index.ts","../src/plugin.ts","../../fs/src/index.ts","../src/redoc.tsx"],"names":["redoc","ServerStyleSheet","renderToString","path","pkg","fs","createPlugin","pluginOasName","PluginManager"],"mappings":"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","file":"index.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","export { pluginRedoc, pluginRedocName } from './plugin.ts'\nexport type { PluginRedoc } from './types.ts'\n","import path from 'node:path'\n\nimport { PluginManager, createPlugin } from '@kubb/core'\nimport { pluginOasName } from '@kubb/plugin-oas'\n\nimport type { Plugin } from '@kubb/core'\nimport { trimExtName } from '@kubb/fs'\nimport type { PluginOas } from '@kubb/plugin-oas'\nimport { getPageHTML } from './redoc.tsx'\nimport type { PluginRedoc } from './types.ts'\n\nexport const pluginRedocName = 'plugin-redoc' satisfies PluginRedoc['name']\n\nexport const pluginRedoc = createPlugin<PluginRedoc>((options) => {\n const { output = { path: 'docs.html' } } = options\n\n return {\n name: pluginRedocName,\n options: {\n output,\n name: trimExtName(output.path),\n baseURL: undefined,\n },\n pre: [pluginOasName],\n async buildStart() {\n const [swaggerPlugin]: [Plugin<PluginOas>] = PluginManager.getDependedPlugins<PluginOas>(this.plugins, [pluginOasName])\n const oas = await swaggerPlugin.context.getOas()\n\n await oas.dereference()\n\n const root = path.resolve(this.config.root, this.config.output.path)\n const pageHTML = await getPageHTML(oas.api)\n\n await this.fileManager.write(path.resolve(root, output.path || './docs.html'), pageHTML)\n },\n }\n})\n","export { clean } from './clean.ts'\nexport { getRelativePath, read, readSync } from './read.ts'\nexport { write } from './write.ts'\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\nimport type { OasTypes } from '@kubb/oas'\nimport pkg from 'handlebars'\nimport { renderToString } from 'react-dom/server'\nimport { ServerStyleSheet } from 'styled-components'\nimport redoc from 'redoc'\n\ntype BuildDocsOptions = {\n title?: string\n disableGoogleFont?: boolean\n templateOptions?: any\n redocOptions?: any\n}\n\n// see http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/\nfunction escapeClosingScriptTag(str: string): string {\n return str.replace(/<\\/script>/g, '<\\\\/script>')\n}\n\n// see http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/\nfunction escapeUnicode(str: string): string {\n // biome-ignore lint/style/useTemplate: <explanation>\n return str.replace(/\\u2028|\\u2029/g, (m) => '\\\\u202' + (m === '\\u2028' ? '8' : '9'))\n}\n\nfunction sanitizeJSONString(str: string): string {\n return escapeClosingScriptTag(escapeUnicode(str))\n}\n\nexport async function getPageHTML(api: OasTypes.OASDocument, { title, disableGoogleFont, templateOptions, redocOptions = {} }: BuildDocsOptions = {}) {\n const apiUrl = redocOptions.specUrl\n const { Redoc, createStore } = redoc || require('redoc')\n const store = await createStore(api, apiUrl, redocOptions)\n const sheet = new ServerStyleSheet()\n\n const error = console.error\n console.error = (...args: any) => {\n if (/defaultProps/.test(args[0])) return\n error(...args)\n }\n\n const html = renderToString(sheet.collectStyles(<Redoc store={store} />))\n const state = await store.toJS()\n const css = sheet.getStyleTags()\n\n const templateFileName = path.join(__dirname, '../static/redoc.hbs')\n const template = pkg.compile(fs.readFileSync(templateFileName).toString())\n return template({\n redocHTML: `\n <div id=\"redoc\">${html || ''}</div>\n <script>\n ${`const __redoc_state = ${sanitizeJSONString(JSON.stringify(state))};` || ''}\n\n var container = document.getElementById('redoc');\n Redoc.${'hydrate(__redoc_state, container)'};\n\n </script>`,\n redocHead:\n // biome-ignore lint/style/useTemplate: <explanation>\n `<script src=\"https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js\"></script>` + css,\n title: title || api.info.title || 'ReDoc documentation',\n disableGoogleFont,\n templateOptions,\n })\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _kubb_core from '@kubb/core';
2
- import { PluginFactoryOptions } from '@kubb/core';
2
+ import { PluginFactoryOptions, Output } from '@kubb/core';
3
3
 
4
4
  type Options = {
5
5
  output?: {
@@ -10,7 +10,9 @@ type Options = {
10
10
  path: string;
11
11
  };
12
12
  };
13
- type ResolveOptions = {};
13
+ type ResolveOptions = {
14
+ output: Output;
15
+ };
14
16
  type PluginRedoc = PluginFactoryOptions<'plugin-redoc', Options, ResolveOptions, never>;
15
17
 
16
18
  declare const pluginRedocName = "plugin-redoc";
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _kubb_core from '@kubb/core';
2
- import { PluginFactoryOptions } from '@kubb/core';
2
+ import { PluginFactoryOptions, Output } from '@kubb/core';
3
3
 
4
4
  type Options = {
5
5
  output?: {
@@ -10,7 +10,9 @@ type Options = {
10
10
  path: string;
11
11
  };
12
12
  };
13
- type ResolveOptions = {};
13
+ type ResolveOptions = {
14
+ output: Output;
15
+ };
14
16
  type PluginRedoc = PluginFactoryOptions<'plugin-redoc', Options, ResolveOptions, never>;
15
17
 
16
18
  declare const pluginRedocName = "plugin-redoc";
package/dist/index.js CHANGED
@@ -1,3 +1,15 @@
1
+ import { fileURLToPath } from 'url';
2
+ import path from 'path';
3
+ import path3 from 'node:path';
4
+ import { createPlugin, PluginManager } from '@kubb/core';
5
+ import { pluginOasName } from '@kubb/plugin-oas';
6
+ import fs from 'node:fs';
7
+ import pkg from 'handlebars';
8
+ import { renderToString } from 'react-dom/server';
9
+ import { ServerStyleSheet } from 'styled-components';
10
+ import redoc from 'redoc';
11
+ import { jsx } from 'react/jsx-runtime';
12
+
1
13
  var __getOwnPropNames = Object.getOwnPropertyNames;
2
14
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
3
15
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
@@ -8,14 +20,9 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
8
20
  var __esm = (fn, res) => function __init() {
9
21
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
22
  };
11
-
12
- // ../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.47.7_@types+node@20.16.2__jiti@1.21.6_postcss@8.4.41_typescript@5.5.4_yaml@2.4.5/node_modules/tsup/assets/esm_shims.js
13
- import { fileURLToPath } from "url";
14
- import path from "path";
15
23
  var getFilename, getDirname, __dirname;
16
24
  var init_esm_shims = __esm({
17
- "../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.47.7_@types+node@20.16.2__jiti@1.21.6_postcss@8.4.41_typescript@5.5.4_yaml@2.4.5/node_modules/tsup/assets/esm_shims.js"() {
18
- "use strict";
25
+ "../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.10__@swc+core@1.7.22_jiti@2.1.0__obkdyxrevtpud2s6cj2lfmzsum/node_modules/tsup/assets/esm_shims.js"() {
19
26
  getFilename = () => fileURLToPath(import.meta.url);
20
27
  getDirname = () => path.dirname(getFilename());
21
28
  __dirname = /* @__PURE__ */ getDirname();
@@ -27,10 +34,6 @@ init_esm_shims();
27
34
 
28
35
  // src/plugin.ts
29
36
  init_esm_shims();
30
- import path3 from "node:path";
31
- import { PluginManager, createPlugin } from "@kubb/core";
32
- import "@kubb/core/transformers";
33
- import { pluginOasName } from "@kubb/plugin-oas";
34
37
 
35
38
  // ../fs/src/index.ts
36
39
  init_esm_shims();
@@ -40,13 +43,6 @@ function trimExtName(text) {
40
43
 
41
44
  // src/redoc.tsx
42
45
  init_esm_shims();
43
- import fs from "node:fs";
44
- import path2 from "node:path";
45
- import pkg from "handlebars";
46
- import { renderToString } from "react-dom/server";
47
- import { ServerStyleSheet } from "styled-components";
48
- import redoc from "redoc";
49
- import { jsx } from "react/jsx-runtime";
50
46
  function escapeClosingScriptTag(str) {
51
47
  return str.replace(/<\/script>/g, "<\\/script>");
52
48
  }
@@ -69,7 +65,7 @@ async function getPageHTML(api, { title, disableGoogleFont, templateOptions, red
69
65
  const html = renderToString(sheet.collectStyles(/* @__PURE__ */ jsx(Redoc, { store })));
70
66
  const state = await store.toJS();
71
67
  const css = sheet.getStyleTags();
72
- const templateFileName = path2.join(__dirname, "../static/redoc.hbs");
68
+ const templateFileName = path3.join(__dirname, "../static/redoc.hbs");
73
69
  const template = pkg.compile(fs.readFileSync(templateFileName).toString());
74
70
  return template({
75
71
  redocHTML: `
@@ -97,11 +93,8 @@ var pluginRedoc = createPlugin((options) => {
97
93
  const { output = { path: "docs.html" } } = options;
98
94
  return {
99
95
  name: pluginRedocName,
100
- output: {
101
- exportType: "barrelNamed",
102
- ...output
103
- },
104
96
  options: {
97
+ output,
105
98
  name: trimExtName(output.path),
106
99
  baseURL: void 0
107
100
  },
@@ -116,8 +109,7 @@ var pluginRedoc = createPlugin((options) => {
116
109
  }
117
110
  };
118
111
  });
119
- export {
120
- pluginRedoc,
121
- pluginRedocName
122
- };
112
+
113
+ export { pluginRedoc, pluginRedocName };
114
+ //# sourceMappingURL=index.js.map
123
115
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.47.7_@types+node@20.16.2__jiti@1.21.6_postcss@8.4.41_typescript@5.5.4_yaml@2.4.5/node_modules/tsup/assets/esm_shims.js","../src/index.ts","../src/plugin.ts","../../fs/src/index.ts","../src/redoc.tsx"],"sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","export { pluginRedoc, pluginRedocName } from './plugin.ts'\nexport type { PluginRedoc } from './types.ts'\n","import path from 'node:path'\n\nimport { PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { pluginOasName } from '@kubb/plugin-oas'\n\nimport type { Plugin } from '@kubb/core'\nimport { trimExtName } from '@kubb/fs'\nimport type { PluginOas } from '@kubb/plugin-oas'\nimport { getPageHTML } from './redoc.tsx'\nimport type { PluginRedoc } from './types.ts'\n\nexport const pluginRedocName = 'plugin-redoc' satisfies PluginRedoc['name']\n\nexport const pluginRedoc = createPlugin<PluginRedoc>((options) => {\n const { output = { path: 'docs.html' } } = options\n\n return {\n name: pluginRedocName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {\n name: trimExtName(output.path),\n baseURL: undefined,\n },\n pre: [pluginOasName],\n async buildStart() {\n const [swaggerPlugin]: [Plugin<PluginOas>] = PluginManager.getDependedPlugins<PluginOas>(this.plugins, [pluginOasName])\n const oas = await swaggerPlugin.context.getOas()\n\n await oas.dereference()\n\n const root = path.resolve(this.config.root, this.config.output.path)\n const pageHTML = await getPageHTML(oas.api)\n\n await this.fileManager.write(path.resolve(root, output.path || './docs.html'), pageHTML)\n },\n }\n})\n","export { clean } from './clean.ts'\nexport { getRelativePath, read, readSync } from './read.ts'\nexport { write } from './write.ts'\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\nimport type { OasTypes } from '@kubb/oas'\nimport pkg from 'handlebars'\nimport { renderToString } from 'react-dom/server'\nimport { ServerStyleSheet } from 'styled-components'\nimport redoc from 'redoc'\n\ntype BuildDocsOptions = {\n title?: string\n disableGoogleFont?: boolean\n templateOptions?: any\n redocOptions?: any\n}\n\n// see http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/\nfunction escapeClosingScriptTag(str: string): string {\n return str.replace(/<\\/script>/g, '<\\\\/script>')\n}\n\n// see http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/\nfunction escapeUnicode(str: string): string {\n // biome-ignore lint/style/useTemplate: <explanation>\n return str.replace(/\\u2028|\\u2029/g, (m) => '\\\\u202' + (m === '\\u2028' ? '8' : '9'))\n}\n\nfunction sanitizeJSONString(str: string): string {\n return escapeClosingScriptTag(escapeUnicode(str))\n}\n\nexport async function getPageHTML(api: OasTypes.OASDocument, { title, disableGoogleFont, templateOptions, redocOptions = {} }: BuildDocsOptions = {}) {\n const apiUrl = redocOptions.specUrl\n const { Redoc, createStore } = redoc || require('redoc')\n const store = await createStore(api, apiUrl, redocOptions)\n const sheet = new ServerStyleSheet()\n\n const error = console.error\n console.error = (...args: any) => {\n if (/defaultProps/.test(args[0])) return\n error(...args)\n }\n\n const html = renderToString(sheet.collectStyles(<Redoc store={store} />))\n const state = await store.toJS()\n const css = sheet.getStyleTags()\n\n const templateFileName = path.join(__dirname, '../static/redoc.hbs')\n const template = pkg.compile(fs.readFileSync(templateFileName).toString())\n return template({\n redocHTML: `\n <div id=\"redoc\">${html || ''}</div>\n <script>\n ${`const __redoc_state = ${sanitizeJSONString(JSON.stringify(state))};` || ''}\n\n var container = document.getElementById('redoc');\n Redoc.${'hydrate(__redoc_state, container)'};\n\n </script>`,\n redocHead:\n // biome-ignore lint/style/useTemplate: <explanation>\n `<script src=\"https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js\"></script>` + css,\n title: title || api.info.title || 'ReDoc documentation',\n disableGoogleFont,\n templateOptions,\n })\n}\n"],"mappings":";;;;;;;;;;;;AACA,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AAFjB,IAIM,aACA,YAEO;AAPb;AAAA;AAAA;AAIA,IAAM,cAAc,MAAM,cAAc,YAAY,GAAG;AACvD,IAAM,aAAa,MAAM,KAAK,QAAQ,YAAY,CAAC;AAE5C,IAAM,YAA4B,2BAAW;AAAA;AAAA;;;ACPpD;;;ACAA;AAAA,OAAOA,WAAU;AAEjB,SAAS,eAAe,oBAAoB;AAC5C,OAA0B;AAC1B,SAAS,qBAAqB;;;ACJ9B;AAIO,SAAS,YAAY,MAAsB;AAChD,SAAO,KAAK,QAAQ,aAAa,EAAE;AACrC;;;ACNA;AAAA,OAAO,QAAQ;AACf,OAAOC,WAAU;AAEjB,OAAO,SAAS;AAChB,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,OAAO,WAAW;AAoCgC;AA1BlD,SAAS,uBAAuB,KAAqB;AACnD,SAAO,IAAI,QAAQ,eAAe,aAAa;AACjD;AAGA,SAAS,cAAc,KAAqB;AAE1C,SAAO,IAAI,QAAQ,kBAAkB,CAAC,MAAM,YAAY,MAAM,WAAW,MAAM,IAAI;AACrF;AAEA,SAAS,mBAAmB,KAAqB;AAC/C,SAAO,uBAAuB,cAAc,GAAG,CAAC;AAClD;AAEA,eAAsB,YAAY,KAA2B,EAAE,OAAO,mBAAmB,iBAAiB,eAAe,CAAC,EAAE,IAAsB,CAAC,GAAG;AACpJ,QAAM,SAAS,aAAa;AAC5B,QAAM,EAAE,OAAO,YAAY,IAAI,SAAS,UAAQ,OAAO;AACvD,QAAM,QAAQ,MAAM,YAAY,KAAK,QAAQ,YAAY;AACzD,QAAM,QAAQ,IAAI,iBAAiB;AAEnC,QAAM,QAAQ,QAAQ;AACtB,UAAQ,QAAQ,IAAI,SAAc;AAChC,QAAI,eAAe,KAAK,KAAK,CAAC,CAAC,EAAG;AAClC,UAAM,GAAG,IAAI;AAAA,EACf;AAEA,QAAM,OAAO,eAAe,MAAM,cAAc,oBAAC,SAAM,OAAc,CAAE,CAAC;AACxE,QAAM,QAAQ,MAAM,MAAM,KAAK;AAC/B,QAAM,MAAM,MAAM,aAAa;AAE/B,QAAM,mBAAmBA,MAAK,KAAK,WAAW,qBAAqB;AACnE,QAAM,WAAW,IAAI,QAAQ,GAAG,aAAa,gBAAgB,EAAE,SAAS,CAAC;AACzE,SAAO,SAAS;AAAA,IACd,WAAW;AAAA,wBACS,QAAQ,EAAE;AAAA;AAAA,QAE1B,yBAAyB,mBAAmB,KAAK,UAAU,KAAK,CAAC,CAAC,OAAO,EAAE;AAAA;AAAA;AAAA,cAGrE,mCAAmC;AAAA;AAAA;AAAA,IAG7C;AAAA;AAAA,MAEE,0FAA0F;AAAA;AAAA,IAC5F,OAAO,SAAS,IAAI,KAAK,SAAS;AAAA,IAClC;AAAA,IACA;AAAA,EACF,CAAC;AACH;;;AFrDO,IAAM,kBAAkB;AAExB,IAAM,cAAc,aAA0B,CAAC,YAAY;AAChE,QAAM,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,IAAI;AAE3C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,GAAG;AAAA,IACL;AAAA,IACA,SAAS;AAAA,MACP,MAAM,YAAY,OAAO,IAAI;AAAA,MAC7B,SAAS;AAAA,IACX;AAAA,IACA,KAAK,CAAC,aAAa;AAAA,IACnB,MAAM,aAAa;AACjB,YAAM,CAAC,aAAa,IAAyB,cAAc,mBAA8B,KAAK,SAAS,CAAC,aAAa,CAAC;AACtH,YAAM,MAAM,MAAM,cAAc,QAAQ,OAAO;AAE/C,YAAM,IAAI,YAAY;AAEtB,YAAM,OAAOC,MAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,IAAI;AACnE,YAAM,WAAW,MAAM,YAAY,IAAI,GAAG;AAE1C,YAAM,KAAK,YAAY,MAAMA,MAAK,QAAQ,MAAM,OAAO,QAAQ,aAAa,GAAG,QAAQ;AAAA,IACzF;AAAA,EACF;AACF,CAAC;","names":["path","path","path"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.10__@swc+core@1.7.22_jiti@2.1.0__obkdyxrevtpud2s6cj2lfmzsum/node_modules/tsup/assets/esm_shims.js","../src/index.ts","../src/plugin.ts","../../fs/src/index.ts","../src/redoc.tsx"],"names":["path"],"mappings":"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","file":"index.js","sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","export { pluginRedoc, pluginRedocName } from './plugin.ts'\nexport type { PluginRedoc } from './types.ts'\n","import path from 'node:path'\n\nimport { PluginManager, createPlugin } from '@kubb/core'\nimport { pluginOasName } from '@kubb/plugin-oas'\n\nimport type { Plugin } from '@kubb/core'\nimport { trimExtName } from '@kubb/fs'\nimport type { PluginOas } from '@kubb/plugin-oas'\nimport { getPageHTML } from './redoc.tsx'\nimport type { PluginRedoc } from './types.ts'\n\nexport const pluginRedocName = 'plugin-redoc' satisfies PluginRedoc['name']\n\nexport const pluginRedoc = createPlugin<PluginRedoc>((options) => {\n const { output = { path: 'docs.html' } } = options\n\n return {\n name: pluginRedocName,\n options: {\n output,\n name: trimExtName(output.path),\n baseURL: undefined,\n },\n pre: [pluginOasName],\n async buildStart() {\n const [swaggerPlugin]: [Plugin<PluginOas>] = PluginManager.getDependedPlugins<PluginOas>(this.plugins, [pluginOasName])\n const oas = await swaggerPlugin.context.getOas()\n\n await oas.dereference()\n\n const root = path.resolve(this.config.root, this.config.output.path)\n const pageHTML = await getPageHTML(oas.api)\n\n await this.fileManager.write(path.resolve(root, output.path || './docs.html'), pageHTML)\n },\n }\n})\n","export { clean } from './clean.ts'\nexport { getRelativePath, read, readSync } from './read.ts'\nexport { write } from './write.ts'\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\nimport type { OasTypes } from '@kubb/oas'\nimport pkg from 'handlebars'\nimport { renderToString } from 'react-dom/server'\nimport { ServerStyleSheet } from 'styled-components'\nimport redoc from 'redoc'\n\ntype BuildDocsOptions = {\n title?: string\n disableGoogleFont?: boolean\n templateOptions?: any\n redocOptions?: any\n}\n\n// see http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/\nfunction escapeClosingScriptTag(str: string): string {\n return str.replace(/<\\/script>/g, '<\\\\/script>')\n}\n\n// see http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/\nfunction escapeUnicode(str: string): string {\n // biome-ignore lint/style/useTemplate: <explanation>\n return str.replace(/\\u2028|\\u2029/g, (m) => '\\\\u202' + (m === '\\u2028' ? '8' : '9'))\n}\n\nfunction sanitizeJSONString(str: string): string {\n return escapeClosingScriptTag(escapeUnicode(str))\n}\n\nexport async function getPageHTML(api: OasTypes.OASDocument, { title, disableGoogleFont, templateOptions, redocOptions = {} }: BuildDocsOptions = {}) {\n const apiUrl = redocOptions.specUrl\n const { Redoc, createStore } = redoc || require('redoc')\n const store = await createStore(api, apiUrl, redocOptions)\n const sheet = new ServerStyleSheet()\n\n const error = console.error\n console.error = (...args: any) => {\n if (/defaultProps/.test(args[0])) return\n error(...args)\n }\n\n const html = renderToString(sheet.collectStyles(<Redoc store={store} />))\n const state = await store.toJS()\n const css = sheet.getStyleTags()\n\n const templateFileName = path.join(__dirname, '../static/redoc.hbs')\n const template = pkg.compile(fs.readFileSync(templateFileName).toString())\n return template({\n redocHTML: `\n <div id=\"redoc\">${html || ''}</div>\n <script>\n ${`const __redoc_state = ${sanitizeJSONString(JSON.stringify(state))};` || ''}\n\n var container = document.getElementById('redoc');\n Redoc.${'hydrate(__redoc_state, container)'};\n\n </script>`,\n redocHead:\n // biome-ignore lint/style/useTemplate: <explanation>\n `<script src=\"https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js\"></script>` + css,\n title: title || api.info.title || 'ReDoc documentation',\n disableGoogleFont,\n templateOptions,\n })\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-redoc",
3
- "version": "3.0.0-alpha.9",
3
+ "version": "3.0.0-beta.1",
4
4
  "description": "Beautiful docs with Redoc",
5
5
  "keywords": [
6
6
  "typescript",
@@ -42,26 +42,25 @@
42
42
  ],
43
43
  "dependencies": {
44
44
  "handlebars": "^4.7.8",
45
- "mobx": "^6.13.1",
45
+ "mobx": "^6.13.3",
46
46
  "react": "^18.3.1",
47
47
  "react-dom": "^18.3.1",
48
48
  "redoc": "^2.1.5",
49
- "styled-components": "^6.1.12",
50
- "@kubb/core": "3.0.0-alpha.9",
51
- "@kubb/oas": "3.0.0-alpha.9",
52
- "@kubb/plugin-oas": "3.0.0-alpha.9"
49
+ "styled-components": "^6.1.13",
50
+ "@kubb/core": "3.0.0-beta.1",
51
+ "@kubb/oas": "3.0.0-beta.1",
52
+ "@kubb/plugin-oas": "3.0.0-beta.1"
53
53
  },
54
54
  "devDependencies": {
55
- "@types/react": "^18.3.4",
55
+ "@types/react": "^18.3.11",
56
56
  "@types/react-dom": "^18.3.0",
57
- "tsup": "^8.2.4",
58
- "typescript": "^5.5.4",
59
- "@kubb/config-biome": "3.0.0-alpha.9",
60
- "@kubb/config-ts": "3.0.0-alpha.9",
61
- "@kubb/config-tsup": "3.0.0-alpha.9"
57
+ "tsup": "^8.3.0",
58
+ "typescript": "^5.6.2",
59
+ "@kubb/config-ts": "3.0.0-beta.1",
60
+ "@kubb/config-tsup": "3.0.0-beta.1"
62
61
  },
63
62
  "peerDependencies": {
64
- "@kubb/react": "3.0.0-alpha.9"
63
+ "@kubb/react": "3.0.0-beta.1"
65
64
  },
66
65
  "engines": {
67
66
  "node": ">=20"
package/src/plugin.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import path from 'node:path'
2
2
 
3
3
  import { PluginManager, createPlugin } from '@kubb/core'
4
- import { camelCase } from '@kubb/core/transformers'
5
4
  import { pluginOasName } from '@kubb/plugin-oas'
6
5
 
7
6
  import type { Plugin } from '@kubb/core'
@@ -17,11 +16,8 @@ export const pluginRedoc = createPlugin<PluginRedoc>((options) => {
17
16
 
18
17
  return {
19
18
  name: pluginRedocName,
20
- output: {
21
- exportType: 'barrelNamed',
22
- ...output,
23
- },
24
19
  options: {
20
+ output,
25
21
  name: trimExtName(output.path),
26
22
  baseURL: undefined,
27
23
  },
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Plugin, PluginFactoryOptions } from '@kubb/core'
1
+ import type { Output, PluginFactoryOptions } from '@kubb/core'
2
2
 
3
3
  export type Options = {
4
4
  output?: {
@@ -10,11 +10,8 @@ export type Options = {
10
10
  }
11
11
  }
12
12
 
13
- type ResolveOptions = {}
14
-
15
- export type FileMeta = {
16
- pluginKey?: Plugin['key']
17
- tag?: string
13
+ type ResolveOptions = {
14
+ output: Output
18
15
  }
19
16
 
20
17
  export type PluginRedoc = PluginFactoryOptions<'plugin-redoc', Options, ResolveOptions, never>