@kubb/react-fabric 0.2.14 → 0.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +5 -1
  2. package/dist/{Fabric-mFmfnVJp.d.ts → Fabric-C3xWWIb6.d.ts} +108 -63
  3. package/dist/{Fabric-B8W5_3xv.d.cts → Fabric-MsFHiZXy.d.cts} +108 -63
  4. package/dist/{devtools-D4p2T_2t.cjs → devtools-CLhxB1Hr.cjs} +3 -3
  5. package/dist/devtools-CLhxB1Hr.cjs.map +1 -0
  6. package/dist/{devtools-Cb1pMQYm.js → devtools-wdFpV122.js} +2 -2
  7. package/dist/devtools-wdFpV122.js.map +1 -0
  8. package/dist/devtools.cjs +1 -1
  9. package/dist/devtools.js +1 -1
  10. package/dist/globals.d.cts +2 -2
  11. package/dist/globals.d.ts +2 -2
  12. package/dist/index.cjs +5 -5
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.cts +34 -12
  15. package/dist/index.d.ts +34 -12
  16. package/dist/index.js +4 -4
  17. package/dist/index.js.map +1 -1
  18. package/dist/jsx-dev-runtime.d.cts +3 -3
  19. package/dist/jsx-dev-runtime.d.ts +3 -3
  20. package/dist/{jsx-namespace-Czey9R9N.d.ts → jsx-namespace-Cz6OfCDG.d.ts} +2 -2
  21. package/dist/{jsx-namespace-c3pSYEW1.d.cts → jsx-namespace-laCWw619.d.cts} +2 -2
  22. package/dist/{jsx-runtime-CVfJARUD.js → jsx-runtime-Dm0btT2y.js} +1 -1
  23. package/dist/jsx-runtime.cjs +1 -1
  24. package/dist/jsx-runtime.d.cts +3 -3
  25. package/dist/jsx-runtime.d.ts +4 -4
  26. package/dist/jsx-runtime.js +1 -1
  27. package/dist/parsers.d.cts +1 -1
  28. package/dist/parsers.d.ts +1 -1
  29. package/dist/plugins.cjs +2 -2
  30. package/dist/plugins.d.cts +31 -41
  31. package/dist/plugins.d.ts +31 -41
  32. package/dist/plugins.js +2 -2
  33. package/dist/{reactPlugin-DCuv3mQy.js → reactPlugin-BmBx9cO3.js} +36 -36
  34. package/dist/reactPlugin-BmBx9cO3.js.map +1 -0
  35. package/dist/{reactPlugin-DJqKlTY6.d.ts → reactPlugin-D8rqKtK0.d.cts} +2 -9
  36. package/dist/{reactPlugin-wV1eBuBU.d.cts → reactPlugin-DY-MH4LN.d.ts} +2 -9
  37. package/dist/{reactPlugin-DN7FaU4S.cjs → reactPlugin-Dj5m_pqf.cjs} +36 -36
  38. package/dist/reactPlugin-Dj5m_pqf.cjs.map +1 -0
  39. package/dist/{types-DAb8l-KJ.d.ts → types-CJRSKjOD.d.ts} +3 -8
  40. package/dist/{types-kzoLNjog.d.cts → types-g8BNi4jj.d.cts} +3 -8
  41. package/dist/types.d.cts +3 -3
  42. package/dist/types.d.ts +3 -3
  43. package/package.json +2 -2
  44. package/src/Renderer.ts +1 -2
  45. package/src/Runtime.tsx +2 -2
  46. package/src/components/File.tsx +1 -2
  47. package/src/components/Function.tsx +1 -1
  48. package/src/composables/useFile.ts +1 -3
  49. package/src/createReactFabric.ts +3 -4
  50. package/src/devtools.ts +1 -2
  51. package/src/globals.ts +1 -1
  52. package/src/index.ts +5 -9
  53. package/src/jsx-dev-runtime.ts +1 -2
  54. package/src/jsx-runtime.ts +2 -2
  55. package/src/plugins/reactPlugin.ts +6 -16
  56. package/src/types.ts +3 -3
  57. package/src/utils/processFiles.ts +5 -6
  58. package/src/utils/squashExportNodes.ts +1 -2
  59. package/src/utils/squashImportNodes.ts +1 -2
  60. package/src/utils/squashSourceNodes.ts +1 -2
  61. package/src/utils/squashTextNodes.ts +1 -1
  62. package/dist/devtools-Cb1pMQYm.js.map +0 -1
  63. package/dist/devtools-D4p2T_2t.cjs.map +0 -1
  64. package/dist/reactPlugin-DCuv3mQy.js.map +0 -1
  65. package/dist/reactPlugin-DN7FaU4S.cjs.map +0 -1
  66. package/dist/{jsx-runtime-CpPZNgzW.cjs → jsx-runtime-CywUjp4I.cjs} +2 -2
@@ -1,6 +1,29 @@
1
- import { d as UserPlugin, m as Extname, u as Plugin } from "./Fabric-B8W5_3xv.cjs";
2
- import { n as reactPlugin } from "./reactPlugin-wV1eBuBU.cjs";
1
+ import { m as Extname, o as Plugin, s as UserPlugin } from "./Fabric-MsFHiZXy.cjs";
2
+ import { n as reactPlugin } from "./reactPlugin-D8rqKtK0.cjs";
3
3
 
4
+ //#region ../fabric-core/src/plugins/barrelPlugin.d.ts
5
+ type Mode = 'all' | 'named' | 'propagate' | false;
6
+ type Options$2 = {
7
+ root: string;
8
+ mode: Mode;
9
+ dryRun?: boolean;
10
+ };
11
+ type WriteEntryOptions = {
12
+ root: string;
13
+ mode: Mode;
14
+ };
15
+ type ExtendOptions$1 = {
16
+ writeEntry(options: WriteEntryOptions): Promise<void>;
17
+ };
18
+ declare global {
19
+ namespace Kubb {
20
+ interface Fabric {
21
+ writeEntry(options: WriteEntryOptions): Promise<void>;
22
+ }
23
+ }
24
+ }
25
+ declare const barrelPlugin: Plugin<Options$2, ExtendOptions$1>;
26
+ //#endregion
4
27
  //#region ../fabric-core/src/plugins/createPlugin.d.ts
5
28
  declare function createPlugin<Options$3 = unknown, TAppExtension extends Record<string, any> = {}>(plugin: UserPlugin<Options$3, TAppExtension>): Plugin<Options$3, TAppExtension>;
6
29
  //#endregion
@@ -8,7 +31,7 @@ declare function createPlugin<Options$3 = unknown, TAppExtension extends Record<
8
31
  type WriteOptions = {
9
32
  extension?: Record<Extname, Extname | ''>;
10
33
  };
11
- type Options$2 = {
34
+ type Options$1 = {
12
35
  dryRun?: boolean;
13
36
  /**
14
37
  * Optional callback that is invoked whenever a file is written by the plugin.
@@ -19,14 +42,9 @@ type Options$2 = {
19
42
  path: string;
20
43
  };
21
44
  };
22
- type ExtendOptions$1 = {
45
+ type ExtendOptions = {
23
46
  write(options?: WriteOptions): Promise<void>;
24
47
  };
25
- declare module '@kubb/fabric-core' {
26
- interface Fabric {
27
- write(options?: WriteOptions): Promise<void>;
28
- }
29
- }
30
48
  declare global {
31
49
  namespace Kubb {
32
50
  interface Fabric {
@@ -34,38 +52,7 @@ declare global {
34
52
  }
35
53
  }
36
54
  }
37
- declare const fsPlugin: Plugin<Options$2, ExtendOptions$1>;
38
- //#endregion
39
- //#region ../fabric-core/src/plugins/barrelPlugin.d.ts
40
- type Mode = 'all' | 'named' | 'propagate' | false;
41
- type Options$1 = {
42
- root: string;
43
- mode: Mode;
44
- dryRun?: boolean;
45
- };
46
- type WriteEntryOptions = {
47
- root: string;
48
- mode: Mode;
49
- };
50
- type ExtendOptions = {
51
- writeEntry(options: WriteEntryOptions): Promise<void>;
52
- };
53
- declare module '@kubb/fabric-core' {
54
- interface Fabric {
55
- writeEntry(options: WriteEntryOptions): Promise<void>;
56
- }
57
- }
58
- declare global {
59
- namespace Kubb {
60
- interface Fabric {
61
- writeEntry(options: WriteEntryOptions): Promise<void>;
62
- }
63
- }
64
- }
65
- declare const barrelPlugin: Plugin<Options$1, ExtendOptions>;
66
- //#endregion
67
- //#region ../fabric-core/src/plugins/progressPlugin.d.ts
68
- declare const progressPlugin: Plugin<[], {}>;
55
+ declare const fsPlugin: Plugin<Options$1, ExtendOptions>;
69
56
  //#endregion
70
57
  //#region ../fabric-core/src/plugins/graphPlugin.d.ts
71
58
  type Options = {
@@ -77,5 +64,8 @@ type Options = {
77
64
  };
78
65
  declare const graphPlugin: Plugin<Options, {}>;
79
66
  //#endregion
67
+ //#region ../fabric-core/src/plugins/progressPlugin.d.ts
68
+ declare const progressPlugin: Plugin<[], {}>;
69
+ //#endregion
80
70
  export { barrelPlugin, createPlugin, fsPlugin, graphPlugin, progressPlugin, reactPlugin };
81
71
  //# sourceMappingURL=plugins.d.cts.map
package/dist/plugins.d.ts CHANGED
@@ -1,6 +1,29 @@
1
- import { d as UserPlugin, m as Extname, u as Plugin } from "./Fabric-mFmfnVJp.js";
2
- import { n as reactPlugin } from "./reactPlugin-DJqKlTY6.js";
1
+ import { m as Extname, o as Plugin, s as UserPlugin } from "./Fabric-C3xWWIb6.js";
2
+ import { n as reactPlugin } from "./reactPlugin-DY-MH4LN.js";
3
3
 
4
+ //#region ../fabric-core/src/plugins/barrelPlugin.d.ts
5
+ type Mode = 'all' | 'named' | 'propagate' | false;
6
+ type Options$2 = {
7
+ root: string;
8
+ mode: Mode;
9
+ dryRun?: boolean;
10
+ };
11
+ type WriteEntryOptions = {
12
+ root: string;
13
+ mode: Mode;
14
+ };
15
+ type ExtendOptions$1 = {
16
+ writeEntry(options: WriteEntryOptions): Promise<void>;
17
+ };
18
+ declare global {
19
+ namespace Kubb {
20
+ interface Fabric {
21
+ writeEntry(options: WriteEntryOptions): Promise<void>;
22
+ }
23
+ }
24
+ }
25
+ declare const barrelPlugin: Plugin<Options$2, ExtendOptions$1>;
26
+ //#endregion
4
27
  //#region ../fabric-core/src/plugins/createPlugin.d.ts
5
28
  declare function createPlugin<Options$3 = unknown, TAppExtension extends Record<string, any> = {}>(plugin: UserPlugin<Options$3, TAppExtension>): Plugin<Options$3, TAppExtension>;
6
29
  //#endregion
@@ -8,7 +31,7 @@ declare function createPlugin<Options$3 = unknown, TAppExtension extends Record<
8
31
  type WriteOptions = {
9
32
  extension?: Record<Extname, Extname | ''>;
10
33
  };
11
- type Options$2 = {
34
+ type Options$1 = {
12
35
  dryRun?: boolean;
13
36
  /**
14
37
  * Optional callback that is invoked whenever a file is written by the plugin.
@@ -19,14 +42,9 @@ type Options$2 = {
19
42
  path: string;
20
43
  };
21
44
  };
22
- type ExtendOptions$1 = {
45
+ type ExtendOptions = {
23
46
  write(options?: WriteOptions): Promise<void>;
24
47
  };
25
- declare module '@kubb/fabric-core' {
26
- interface Fabric {
27
- write(options?: WriteOptions): Promise<void>;
28
- }
29
- }
30
48
  declare global {
31
49
  namespace Kubb {
32
50
  interface Fabric {
@@ -34,38 +52,7 @@ declare global {
34
52
  }
35
53
  }
36
54
  }
37
- declare const fsPlugin: Plugin<Options$2, ExtendOptions$1>;
38
- //#endregion
39
- //#region ../fabric-core/src/plugins/barrelPlugin.d.ts
40
- type Mode = 'all' | 'named' | 'propagate' | false;
41
- type Options$1 = {
42
- root: string;
43
- mode: Mode;
44
- dryRun?: boolean;
45
- };
46
- type WriteEntryOptions = {
47
- root: string;
48
- mode: Mode;
49
- };
50
- type ExtendOptions = {
51
- writeEntry(options: WriteEntryOptions): Promise<void>;
52
- };
53
- declare module '@kubb/fabric-core' {
54
- interface Fabric {
55
- writeEntry(options: WriteEntryOptions): Promise<void>;
56
- }
57
- }
58
- declare global {
59
- namespace Kubb {
60
- interface Fabric {
61
- writeEntry(options: WriteEntryOptions): Promise<void>;
62
- }
63
- }
64
- }
65
- declare const barrelPlugin: Plugin<Options$1, ExtendOptions>;
66
- //#endregion
67
- //#region ../fabric-core/src/plugins/progressPlugin.d.ts
68
- declare const progressPlugin: Plugin<[], {}>;
55
+ declare const fsPlugin: Plugin<Options$1, ExtendOptions>;
69
56
  //#endregion
70
57
  //#region ../fabric-core/src/plugins/graphPlugin.d.ts
71
58
  type Options = {
@@ -77,5 +64,8 @@ type Options = {
77
64
  };
78
65
  declare const graphPlugin: Plugin<Options, {}>;
79
66
  //#endregion
67
+ //#region ../fabric-core/src/plugins/progressPlugin.d.ts
68
+ declare const progressPlugin: Plugin<[], {}>;
69
+ //#endregion
80
70
  export { barrelPlugin, createPlugin, fsPlugin, graphPlugin, progressPlugin, reactPlugin };
81
71
  //# sourceMappingURL=plugins.d.ts.map
package/dist/plugins.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as reactPlugin } from "./reactPlugin-DCuv3mQy.js";
2
- import "./jsx-runtime-CVfJARUD.js";
1
+ import { t as reactPlugin } from "./reactPlugin-BmBx9cO3.js";
2
+ import "./jsx-runtime-Dm0btT2y.js";
3
3
 
4
4
  export * from "@kubb/fabric-core/plugins"
5
5
 
@@ -1,9 +1,9 @@
1
- import { n as jsx } from "./jsx-runtime-CVfJARUD.js";
1
+ import { n as jsx } from "./jsx-runtime-Dm0btT2y.js";
2
2
  import { Component, createContext, createElement } from "react";
3
+ import { onExit } from "signal-exit";
3
4
  import { createPlugin } from "@kubb/fabric-core/plugins";
4
5
  import process from "node:process";
5
6
  import { ConcurrentRoot, DefaultEventPriority, NoEventPriority } from "react-reconciler/constants.js";
6
- import { onExit } from "signal-exit";
7
7
  import Reconciler from "react-reconciler";
8
8
  import { createExport, createImport, print } from "@kubb/fabric-core/parsers/typescript";
9
9
 
@@ -266,6 +266,34 @@ const Renderer = Reconciler({
266
266
  }
267
267
  });
268
268
 
269
+ //#endregion
270
+ //#region src/utils/squashExportNodes.ts
271
+ function squashExportNodes(node) {
272
+ let exports = /* @__PURE__ */ new Set();
273
+ node.childNodes.filter(Boolean).forEach((childNode) => {
274
+ if (childNode.nodeName !== "#text" && nodeNames.includes(childNode.nodeName)) exports = new Set([...exports, ...squashExportNodes(childNode)]);
275
+ if (childNode.nodeName === "kubb-export") {
276
+ const attributes = childNode.attributes;
277
+ exports.add(attributes);
278
+ }
279
+ });
280
+ return exports;
281
+ }
282
+
283
+ //#endregion
284
+ //#region src/utils/squashImportNodes.ts
285
+ function squashImportNodes(node) {
286
+ let imports = /* @__PURE__ */ new Set();
287
+ node.childNodes.filter(Boolean).forEach((childNode) => {
288
+ if (childNode.nodeName !== "#text" && nodeNames.includes(childNode.nodeName)) imports = new Set([...imports, ...squashImportNodes(childNode)]);
289
+ if (childNode.nodeName === "kubb-import") {
290
+ const attributes = childNode.attributes;
291
+ imports.add(attributes);
292
+ }
293
+ });
294
+ return imports;
295
+ }
296
+
269
297
  //#endregion
270
298
  //#region src/utils/squashTextNodes.ts
271
299
  function squashTextNodes(node) {
@@ -317,34 +345,6 @@ function squashTextNodes(node) {
317
345
  return text;
318
346
  }
319
347
 
320
- //#endregion
321
- //#region src/utils/squashExportNodes.ts
322
- function squashExportNodes(node) {
323
- let exports = /* @__PURE__ */ new Set();
324
- node.childNodes.filter(Boolean).forEach((childNode) => {
325
- if (childNode.nodeName !== "#text" && nodeNames.includes(childNode.nodeName)) exports = new Set([...exports, ...squashExportNodes(childNode)]);
326
- if (childNode.nodeName === "kubb-export") {
327
- const attributes = childNode.attributes;
328
- exports.add(attributes);
329
- }
330
- });
331
- return exports;
332
- }
333
-
334
- //#endregion
335
- //#region src/utils/squashImportNodes.ts
336
- function squashImportNodes(node) {
337
- let imports = /* @__PURE__ */ new Set();
338
- node.childNodes.filter(Boolean).forEach((childNode) => {
339
- if (childNode.nodeName !== "#text" && nodeNames.includes(childNode.nodeName)) imports = new Set([...imports, ...squashImportNodes(childNode)]);
340
- if (childNode.nodeName === "kubb-import") {
341
- const attributes = childNode.attributes;
342
- imports.add(attributes);
343
- }
344
- });
345
- return imports;
346
- }
347
-
348
348
  //#endregion
349
349
  //#region src/utils/squashSourceNodes.ts
350
350
  function squashSourceNodes(node, ignores) {
@@ -563,23 +563,23 @@ async function _getOutput(node) {
563
563
  const reactPlugin = createPlugin({
564
564
  name: "react",
565
565
  install() {},
566
- inject(app, options = {}) {
566
+ inject(ctx, options = {}) {
567
567
  const runtime = new Runtime({
568
- fileManager: app.context.fileManager,
568
+ fileManager: ctx.fileManager,
569
569
  ...options
570
570
  });
571
571
  return {
572
572
  async render(App) {
573
573
  runtime.render(createElement(App));
574
- await app.context.events.emit("start");
574
+ await ctx.emit("start");
575
575
  },
576
576
  async renderToString(App) {
577
- await app.context.events.emit("start");
577
+ await ctx.emit("start");
578
578
  return runtime.renderToString(createElement(App));
579
579
  },
580
580
  async waitUntilExit() {
581
581
  await runtime.waitUntilExit();
582
- await app.context.events.emit("end");
582
+ await ctx.emit("end");
583
583
  }
584
584
  };
585
585
  }
@@ -587,4 +587,4 @@ const reactPlugin = createPlugin({
587
587
 
588
588
  //#endregion
589
589
  export { _classPrivateFieldInitSpec as a, _classPrivateFieldGet2 as i, Runtime as n, Root as o, _classPrivateFieldSet2 as r, RootContext as s, reactPlugin as t };
590
- //# sourceMappingURL=reactPlugin-DCuv3mQy.js.map
590
+ //# sourceMappingURL=reactPlugin-BmBx9cO3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactPlugin-BmBx9cO3.js","names":["onExit","node: TextNode","nodeNames: Array<ElementNames>","text","file: KubbFile.File"],"sources":["../src/components/Root.tsx","../src/dom.ts","../src/Renderer.ts","../src/utils/squashExportNodes.ts","../src/utils/squashImportNodes.ts","../src/utils/squashTextNodes.ts","../src/utils/squashSourceNodes.ts","../src/utils/processFiles.ts","../src/Runtime.tsx","../src/plugins/reactPlugin.ts"],"sourcesContent":["import { Component, createContext } from 'react'\n\nimport type { KubbNode } from '../types.ts'\n\ntype ErrorBoundaryProps = {\n onError: (error: Error) => void\n children?: KubbNode\n}\n\nclass ErrorBoundary extends Component<{\n onError: ErrorBoundaryProps['onError']\n children?: KubbNode\n}> {\n state = { hasError: false }\n\n static displayName = 'KubbErrorBoundary'\n static getDerivedStateFromError(_error: Error) {\n return { hasError: true }\n }\n\n componentDidCatch(error: Error) {\n if (error) {\n this.props.onError(error)\n }\n }\n\n render() {\n if (this.state.hasError) {\n return null\n }\n return this.props.children\n }\n}\n\nexport type RootContextProps = {\n /**\n * Exit (unmount) the whole Ink app.\n */\n readonly exit: (error?: Error) => void\n}\n\nexport const RootContext = createContext<RootContextProps>({\n exit: () => {},\n})\n\ntype RootProps = {\n /**\n * Exit (unmount) hook\n */\n readonly onExit: (error?: Error) => void\n /**\n * Error hook\n */\n readonly onError: (error: Error) => void\n readonly children?: KubbNode\n}\n\nexport function Root({ onError, onExit, children }: RootProps) {\n try {\n return (\n <ErrorBoundary\n onError={(error) => {\n onError(error)\n }}\n >\n <RootContext.Provider value={{ exit: onExit }}>{children}</RootContext.Provider>\n </ErrorBoundary>\n )\n } catch (_e) {\n return null\n }\n}\n\nRoot.Context = RootContext\nRoot.displayName = 'KubbRoot'\n","import type { DOMElement, DOMNode, DOMNodeAttribute, ElementNames, TextNode } from './types.ts'\n\nexport const createNode = (nodeName: string): DOMElement => {\n const node: DOMElement = {\n nodeName: nodeName as DOMElement['nodeName'],\n attributes: {},\n childNodes: [],\n parentNode: undefined,\n }\n\n return node\n}\n\nexport const appendChildNode = (node: DOMNode, childNode: DOMElement | DOMNode): void => {\n if (childNode.parentNode) {\n removeChildNode(childNode.parentNode, childNode)\n }\n\n if (node.nodeName !== '#text') {\n childNode.parentNode = node\n node.childNodes.push(childNode)\n }\n}\n\nexport const insertBeforeNode = (node: DOMElement, newChildNode: DOMNode, beforeChildNode: DOMNode): void => {\n if (newChildNode.parentNode) {\n removeChildNode(newChildNode.parentNode, newChildNode)\n }\n\n newChildNode.parentNode = node\n\n const index = node.childNodes.indexOf(beforeChildNode)\n if (index >= 0) {\n node.childNodes.splice(index, 0, newChildNode)\n\n return\n }\n\n node.childNodes.push(newChildNode)\n}\n\nexport const removeChildNode = (node: DOMElement, removeNode: DOMNode): void => {\n removeNode.parentNode = undefined\n\n const index = node.childNodes.indexOf(removeNode)\n if (index >= 0) {\n node.childNodes.splice(index, 1)\n }\n}\n\nexport const setAttribute = (node: DOMElement, key: string, value: DOMNodeAttribute): void => {\n node.attributes[key] = value\n}\n\nexport const createTextNode = (text: string): TextNode => {\n const node: TextNode = {\n nodeName: '#text',\n nodeValue: text,\n parentNode: undefined,\n }\n\n setTextNodeValue(node, text)\n\n return node\n}\n\nexport const setTextNodeValue = (node: TextNode, text: string): void => {\n if (typeof text !== 'string') {\n text = String(text)\n }\n\n node.nodeValue = text\n}\n\nexport const nodeNames: Array<ElementNames> = ['kubb-export', 'kubb-file', 'kubb-source', 'kubb-import', 'kubb-text']\n","import { createContext } from 'react'\nimport Reconciler, { type ReactContext } from 'react-reconciler'\nimport { DefaultEventPriority, NoEventPriority } from 'react-reconciler/constants.js'\nimport { appendChildNode, createNode, createTextNode, insertBeforeNode, removeChildNode, setAttribute, setTextNodeValue } from './dom.ts'\nimport type { KubbNode } from './types'\nimport type { DOMElement, DOMNodeAttribute, ElementNames, TextNode } from './types.ts'\n\ndeclare module 'react-reconciler' {\n // @ts-expect-error custom override\n interface Reconciler {\n updateContainerSync(element: KubbNode, container: unknown, parentComponent: any, callback?: null | (() => void)): void\n flushSyncWork(): void\n createContainer(\n containerInfo: unknown,\n tag: Reconciler.RootTag,\n hydrationCallbacks: null | Reconciler.SuspenseHydrationCallbacks<any>,\n isStrictMode: boolean,\n concurrentUpdatesByDefaultOverride: null | boolean,\n identifierPrefix: string,\n onUncaughtError: (error: Error) => void,\n onCaughtError: (error: Error) => void,\n onRecoverableError: (error: Error) => void,\n transitionCallbacks: null | Reconciler.TransitionTracingCallbacks,\n ): Reconciler.OpaqueRoot\n }\n}\n\ntype Props = Record<string, unknown>\n\ntype HostContext = {\n type: ElementNames\n isFile: boolean\n isSource: boolean\n}\n\nlet currentUpdatePriority = NoEventPriority\n\n/**\n * @link https://www.npmjs.com/package/react-devtools-inline\n * @link https://github.com/nitin42/Making-a-custom-React-renderer/blob/master/part-one.md\n * @link https://github.com/facebook/react/tree/main/packages/react-reconciler#practical-examples\n * @link https://github.com/vadimdemedes/ink\n * @link https://github.com/pixijs/pixi-react/tree/main/packages\n * @link https://github.com/diegomura/react-pdf/blob/master/packages/reconciler/src/reconciler-31.ts\n */\nexport const Renderer = Reconciler({\n getRootHostContext: () => ({\n type: 'kubb-root',\n isFile: false,\n isSource: false,\n }),\n prepareForCommit: () => {\n return null\n },\n preparePortalMount: () => null,\n clearContainer: () => false,\n resetAfterCommit(rootNode: DOMElement) {\n if (typeof rootNode.onRender === 'function') {\n rootNode.onRender()\n }\n },\n getChildHostContext(parentHostContext: HostContext, type: ElementNames) {\n const isInsideText = type === 'kubb-text'\n const isFile = type === 'kubb-file' || parentHostContext.isFile\n const isSource = type === 'kubb-source' || parentHostContext.isSource\n\n return { isInsideText, isFile, isSource, type }\n },\n shouldSetTextContent: () => false,\n createInstance(originalType: ElementNames, newProps: Props, _root: DOMElement) {\n const node = createNode(originalType)\n\n for (const [key, value] of Object.entries(newProps)) {\n if (key === 'children') {\n continue\n }\n\n setAttribute(node, key, value as DOMNodeAttribute)\n }\n\n return node\n },\n createTextInstance(text: string, _root: DOMElement, hostContext: HostContext) {\n if (hostContext.isFile && !hostContext.isSource) {\n throw new Error(`[react] '${text}' should be part of <File.Source> component when using the <File/> component`)\n }\n\n return createTextNode(text)\n },\n resetTextContent() {},\n hideTextInstance(node: TextNode) {\n setTextNodeValue(node, '')\n },\n unhideTextInstance(node: TextNode, text: string) {\n setTextNodeValue(node, text)\n },\n getPublicInstance: (instance) => instance,\n appendInitialChild: appendChildNode,\n appendChild: appendChildNode,\n insertBefore: insertBeforeNode,\n finalizeInitialChildren(_node, _type, _props, _rootNode) {\n return false\n },\n supportsMutation: true,\n isPrimaryRenderer: true,\n supportsPersistence: false,\n supportsHydration: false,\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n beforeActiveInstanceBlur() {},\n afterActiveInstanceBlur() {},\n detachDeletedInstance() {},\n getInstanceFromNode: () => null,\n prepareScopeUpdate() {},\n getInstanceFromScope: () => null,\n appendChildToContainer: appendChildNode,\n insertInContainerBefore: insertBeforeNode,\n removeChildFromContainer(node: DOMElement, removeNode: TextNode) {\n removeChildNode(node, removeNode)\n },\n commitMount() {},\n commitUpdate(node: DOMElement, _payload, _type, _oldProps: Props, newProps: Props) {\n const { props } = newProps\n\n if (props) {\n for (const [key, value] of Object.entries(props)) {\n setAttribute(node, key, value as DOMNodeAttribute)\n }\n }\n },\n commitTextUpdate(node: TextNode, _oldText, newText) {\n setTextNodeValue(node, newText)\n },\n removeChild(node: DOMElement, removeNode: TextNode) {\n removeChildNode(node, removeNode)\n },\n setCurrentUpdatePriority: (newPriority: number) => {\n currentUpdatePriority = newPriority\n },\n getCurrentUpdatePriority: () => currentUpdatePriority,\n resolveUpdatePriority() {\n if (currentUpdatePriority !== NoEventPriority) {\n return currentUpdatePriority\n }\n\n return DefaultEventPriority\n },\n maySuspendCommit() {\n return false\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n NotPendingTransition: undefined,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n HostTransitionContext: createContext(null) as unknown as ReactContext<unknown>,\n resetFormInstance() {},\n requestPostPaintCallback() {},\n shouldAttemptEagerTransition() {\n return false\n },\n trackSchedulerEvent() {},\n resolveEventType() {\n return null\n },\n resolveEventTimeStamp() {\n return -1.1\n },\n preloadInstance() {\n return true\n },\n startSuspendingCommit() {},\n suspendInstance() {},\n waitForCommitToBeReady() {\n return null\n },\n})\n\nexport type { FiberRoot } from 'react-reconciler'\n","import type { KubbFile } from '@kubb/fabric-core/types'\nimport type React from 'react'\nimport type { File } from '../components/File.tsx'\nimport { nodeNames } from '../dom.ts'\nimport type { DOMElement } from '../types.ts'\n\nexport function squashExportNodes(node: DOMElement): Set<KubbFile.ResolvedExport> {\n let exports = new Set<KubbFile.Export>()\n\n node.childNodes.filter(Boolean).forEach((childNode) => {\n if (childNode.nodeName !== '#text' && nodeNames.includes(childNode.nodeName)) {\n exports = new Set([...exports, ...squashExportNodes(childNode)])\n }\n\n if (childNode.nodeName === 'kubb-export') {\n const attributes = childNode.attributes as React.ComponentProps<typeof File.Export>\n exports.add(attributes)\n }\n })\n\n return exports\n}\n","import type { KubbFile } from '@kubb/fabric-core/types'\nimport type React from 'react'\nimport type { File } from '../components/File.tsx'\nimport { nodeNames } from '../dom.ts'\nimport type { DOMElement } from '../types.ts'\n\nexport function squashImportNodes(node: DOMElement): Set<KubbFile.Import> {\n let imports = new Set<KubbFile.Import>()\n\n node.childNodes.filter(Boolean).forEach((childNode) => {\n if (childNode.nodeName !== '#text' && nodeNames.includes(childNode.nodeName)) {\n imports = new Set([...imports, ...squashImportNodes(childNode)])\n }\n\n if (childNode.nodeName === 'kubb-import') {\n const attributes = childNode.attributes as React.ComponentProps<typeof File.Import>\n imports.add(attributes)\n }\n })\n\n return imports\n}\n","import { createExport, createImport, print } from '@kubb/fabric-core/parsers/typescript'\n\nimport type { File } from '../components/File.tsx'\nimport { nodeNames } from '../dom.ts'\nimport type { DOMElement } from '../types.ts'\n\nexport function squashTextNodes(node: DOMElement): string {\n let text = ''\n\n for (const childNode of node.childNodes) {\n if (!childNode) {\n continue\n }\n\n let nodeText = ''\n\n const getPrintText = (text: string): string => {\n if (childNode.nodeName === 'kubb-import') {\n const attributes = childNode.attributes as React.ComponentProps<typeof File.Import>\n\n return print([\n createImport({\n name: attributes.name,\n path: attributes.path,\n root: attributes.root,\n isTypeOnly: attributes.isTypeOnly,\n }),\n ])\n }\n\n if (childNode.nodeName === 'kubb-export') {\n const attributes = childNode.attributes as React.ComponentProps<typeof File.Export>\n if (attributes.path) {\n return print([\n createExport({\n name: attributes.name,\n path: attributes.path,\n isTypeOnly: attributes.isTypeOnly,\n asAlias: attributes.asAlias,\n }),\n ])\n }\n }\n\n if (childNode.nodeName === 'kubb-source') {\n return text\n }\n\n return text\n }\n\n if (childNode.nodeName === '#text') {\n nodeText = childNode.nodeValue\n } else {\n if (['kubb-text', 'kubb-file', 'kubb-source'].includes(childNode.nodeName)) {\n nodeText = squashTextNodes(childNode)\n }\n\n nodeText = getPrintText(nodeText)\n\n if (childNode.nodeName === 'br') {\n nodeText = '\\n'\n }\n\n // no kubb element or br\n if (![...nodeNames, 'br'].includes(childNode.nodeName)) {\n const attributes = Object.entries(childNode.attributes).reduce((acc, [key, value]) => {\n if (typeof value === 'string') {\n return `${acc} ${key}=\"${value}\"`\n }\n\n return `${acc} ${key}={${value}}`\n }, '')\n nodeText = `<${childNode.nodeName}${attributes}>${squashTextNodes(childNode)}</${childNode.nodeName}>`\n }\n }\n\n text += nodeText\n }\n\n return text\n}\n","import type { KubbFile } from '@kubb/fabric-core/types'\nimport type React from 'react'\nimport type { File } from '../components/File.tsx'\nimport { nodeNames } from '../dom.ts'\nimport type { DOMElement, ElementNames } from '../types.ts'\nimport { squashTextNodes } from './squashTextNodes.ts'\n\nexport function squashSourceNodes(node: DOMElement, ignores: Array<ElementNames>): Set<KubbFile.Source> {\n let sources = new Set<KubbFile.Source>()\n\n for (const childNode of node.childNodes) {\n if (!childNode) {\n continue\n }\n\n if (childNode.nodeName !== '#text' && ignores.includes(childNode.nodeName)) {\n continue\n }\n\n if (childNode.nodeName === 'kubb-source') {\n const attributes = childNode.attributes as React.ComponentProps<typeof File.Source>\n const value = squashTextNodes(childNode)\n\n sources.add({\n ...attributes,\n // remove end enter\n value: value.trim().replace(/^\\s+|\\s+$/g, ''),\n })\n\n continue\n }\n\n if (childNode.nodeName !== '#text' && nodeNames.includes(childNode.nodeName)) {\n sources = new Set([...sources, ...squashSourceNodes(childNode, ignores)])\n }\n }\n\n return sources\n}\n","import type { FileManager } from '@kubb/fabric-core'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type React from 'react'\nimport type { File } from '../components/File.tsx'\nimport { nodeNames } from '../dom.ts'\nimport type { DOMElement } from '../types.ts'\nimport { squashExportNodes } from './squashExportNodes.ts'\nimport { squashImportNodes } from './squashImportNodes.ts'\nimport { squashSourceNodes } from './squashSourceNodes.ts'\n\nexport function processFiles(node: DOMElement, fileManager: FileManager) {\n for (let index = 0; index < node.childNodes.length; index++) {\n const childNode = node.childNodes[index]\n\n if (!childNode) {\n continue\n }\n\n if (childNode.nodeName !== '#text' && childNode.nodeName !== 'kubb-file' && nodeNames.includes(childNode.nodeName)) {\n processFiles(childNode, fileManager)\n }\n\n if (childNode.nodeName === 'kubb-file') {\n const attributes = childNode.attributes as React.ComponentProps<typeof File>\n\n if (attributes.baseName && attributes.path) {\n const sources = squashSourceNodes(childNode, ['kubb-export', 'kubb-import'])\n\n const file: KubbFile.File = {\n baseName: attributes.baseName,\n path: attributes.path,\n sources: [...sources],\n exports: [...squashExportNodes(childNode)],\n imports: [...squashImportNodes(childNode)],\n meta: attributes.meta || {},\n footer: attributes.footer,\n banner: attributes.banner,\n }\n\n fileManager.add(file)\n }\n }\n }\n}\n","import process from 'node:process'\nimport type { FileManager } from '@kubb/fabric-core'\nimport type { ReactNode } from 'react'\nimport { ConcurrentRoot } from 'react-reconciler/constants.js'\nimport { onExit } from 'signal-exit'\nimport { Root } from './components/Root.tsx'\nimport { createNode } from './dom.ts'\nimport type { FiberRoot } from './Renderer.ts'\nimport { Renderer } from './Renderer.ts'\nimport type { DOMElement } from './types.ts'\nimport { processFiles } from './utils/processFiles.ts'\nimport { squashTextNodes } from './utils/squashTextNodes.ts'\n\ntype Options = {\n fileManager: FileManager\n stdout?: NodeJS.WriteStream\n stdin?: NodeJS.ReadStream\n stderr?: NodeJS.WriteStream\n /**\n * Set this to true to always see the result of the render in the console(line per render)\n */\n debug?: boolean\n}\n\nexport class Runtime {\n readonly #options: Options\n // Ignore last render after unmounting a tree to prevent empty output before exit\n #isUnmounted: boolean\n\n exitPromise?: Promise<void>\n readonly #container: FiberRoot\n readonly #rootNode: DOMElement\n\n constructor(options: Options) {\n this.#options = options\n\n this.#rootNode = createNode('kubb-root')\n this.#rootNode.onRender = this.onRender\n this.#rootNode.onImmediateRender = this.onRender\n\n // Ignore last render after unmounting a tree to prevent empty output before exit\n this.#isUnmounted = false\n this.unmount.bind(this)\n\n const originalError = console.error\n console.error = (data: string | Error) => {\n const message = typeof data === 'string' ? data : data?.message\n\n if (message?.match(/Encountered two children with the same key/gi)) {\n return\n }\n if (message?.match(/React will try to recreat/gi)) {\n return\n }\n if (message?.match(/Each child in a list should have a unique/gi)) {\n return\n }\n if (message?.match(/The above error occurred in the <KubbErrorBoundary/gi)) {\n return\n }\n\n if (message?.match(/A React Element from an older version of React was render/gi)) {\n return\n }\n\n originalError(data)\n }\n\n // Report when an error was detected in a previous render\n // https://github.com/pmndrs/react-three-fiber/pull/2261\n const logRecoverableError =\n typeof reportError === 'function'\n ? // In modern browsers, reportError will dispatch an error event,\n // emulating an uncaught JavaScript error.\n reportError\n : // In older browsers and test environments, fallback to console.error.\n console.error\n\n const rootTag = ConcurrentRoot\n const hydrationCallbacks = null\n const isStrictMode = false\n const concurrentUpdatesByDefaultOverride = false\n const identifierPrefix = 'id'\n const onUncaughtError = logRecoverableError\n const onCaughtError = logRecoverableError\n const onRecoverableError = logRecoverableError\n const transitionCallbacks = null\n\n this.#container = Renderer.createContainer(\n this.#rootNode,\n rootTag,\n hydrationCallbacks,\n isStrictMode,\n concurrentUpdatesByDefaultOverride,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n transitionCallbacks,\n )\n\n // Unmount when process exits\n this.unsubscribeExit = onExit(\n (code) => {\n this.unmount(code)\n },\n { alwaysLast: false },\n ).bind(this)\n\n Renderer.injectIntoDevTools({\n bundleType: 1, // 0 for PROD, 1 for DEV\n version: '19.1.0', // should be React version and not Kubb's custom version\n rendererPackageName: 'kubb', // package name\n })\n }\n\n get fileManager() {\n return this.#options.fileManager\n }\n\n resolveExitPromise: () => void = () => {}\n rejectExitPromise: (reason?: Error) => void = () => {}\n unsubscribeExit: () => void = () => {}\n onRender: () => void = async () => {\n if (this.#isUnmounted) {\n return\n }\n\n // TODO remove to allow multiple renders\n this.fileManager.clear()\n\n processFiles(this.#rootNode, this.fileManager)\n\n if (!this.#options?.debug && !this.#options?.stdout) {\n return\n }\n\n const output = await this.#getOutput(this.#rootNode)\n\n if (this.#options?.debug) {\n console.log('Rendering: \\n')\n console.log(output)\n }\n\n if (this.#options?.stdout && process.env.NODE_ENV !== 'test') {\n this.#options.stdout.clearLine(0)\n this.#options.stdout.cursorTo(0)\n this.#options.stdout.write(output)\n }\n }\n onError(error: Error): void {\n if (process.env.NODE_ENV === 'test') {\n console.warn(error)\n }\n\n throw error\n }\n onExit(error?: Error): void {\n this.unmount(error)\n }\n\n async #getOutput(node: DOMElement): Promise<string> {\n const text = squashTextNodes(node)\n const files = this.fileManager.files\n\n return files.length\n ? [...files]\n .flatMap((file) => [...file.sources].map((item) => item.value))\n .filter(Boolean)\n .join('\\n\\n')\n : text\n }\n\n render(node: ReactNode): void {\n const element = (\n <Root onExit={this.onExit.bind(this)} onError={this.onError.bind(this)}>\n {node}\n </Root>\n )\n\n Renderer.updateContainerSync(element, this.#container, null, null)\n Renderer.flushSyncWork()\n }\n\n async renderToString(node: ReactNode): Promise<string> {\n const element = (\n <Root onExit={this.onExit.bind(this)} onError={this.onError.bind(this)}>\n {node}\n </Root>\n )\n\n Renderer.updateContainerSync(element, this.#container, null, null)\n Renderer.flushSyncWork()\n\n this.fileManager.clear()\n\n return this.#getOutput(this.#rootNode)\n }\n\n unmount(error?: Error | number | null): void {\n if (this.#isUnmounted) {\n return\n }\n\n if (this.#options?.debug) {\n console.log('Unmount', error)\n }\n\n this.onRender()\n this.unsubscribeExit()\n\n this.#isUnmounted = true\n\n Renderer.updateContainerSync(null, this.#container, null, null)\n\n if (error instanceof Error) {\n this.rejectExitPromise(error)\n\n return\n }\n\n this.resolveExitPromise()\n }\n\n async waitUntilExit(): Promise<void> {\n if (!this.exitPromise) {\n this.exitPromise = new Promise((resolve, reject) => {\n this.resolveExitPromise = resolve\n this.rejectExitPromise = reject\n })\n }\n\n return this.exitPromise\n }\n}\n","import { createPlugin } from '@kubb/fabric-core/plugins'\nimport { createElement, type ElementType } from 'react'\nimport { Runtime } from '../Runtime.tsx'\n\nexport type Options = {\n stdout?: NodeJS.WriteStream\n stdin?: NodeJS.ReadStream\n stderr?: NodeJS.WriteStream\n /**\n * Set this to true to always see the result of the render in the console(line per render)\n */\n debug?: boolean\n}\n\ntype ExtendOptions = {\n render(App: ElementType): Promise<void> | void\n renderToString(App: ElementType): Promise<string> | string\n waitUntilExit(): Promise<void>\n}\n\ndeclare global {\n namespace Kubb {\n interface Fabric {\n render(App: ElementType): Promise<void> | void\n renderToString(App: ElementType): Promise<string> | string\n waitUntilExit(): Promise<void>\n }\n }\n}\n\nexport const reactPlugin = createPlugin<Options, ExtendOptions>({\n name: 'react',\n install() {},\n inject(ctx, options = {}) {\n const runtime = new Runtime({ fileManager: ctx.fileManager, ...options })\n\n return {\n async render(App) {\n runtime.render(createElement(App))\n await ctx.emit('start')\n },\n async renderToString(App) {\n await ctx.emit('start')\n return runtime.renderToString(createElement(App))\n },\n async waitUntilExit() {\n await runtime.waitUntilExit()\n\n await ctx.emit('end')\n },\n }\n },\n})\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { u as Plugin } from "./Fabric-mFmfnVJp.js";
1
+ import { o as Plugin } from "./Fabric-MsFHiZXy.cjs";
2
2
  import { ElementType } from "react";
3
3
 
4
4
  //#region src/plugins/reactPlugin.d.ts
@@ -16,13 +16,6 @@ type ExtendOptions = {
16
16
  renderToString(App: ElementType): Promise<string> | string;
17
17
  waitUntilExit(): Promise<void>;
18
18
  };
19
- declare module '@kubb/fabric-core' {
20
- interface Fabric {
21
- render(App: ElementType): Promise<void> | void;
22
- renderToString(App: ElementType): Promise<string> | string;
23
- waitUntilExit(): Promise<void>;
24
- }
25
- }
26
19
  declare global {
27
20
  namespace Kubb {
28
21
  interface Fabric {
@@ -35,4 +28,4 @@ declare global {
35
28
  declare const reactPlugin: Plugin<Options, ExtendOptions>;
36
29
  //#endregion
37
30
  export { reactPlugin as n, Options as t };
38
- //# sourceMappingURL=reactPlugin-DJqKlTY6.d.ts.map
31
+ //# sourceMappingURL=reactPlugin-D8rqKtK0.d.cts.map
@@ -1,4 +1,4 @@
1
- import { u as Plugin } from "./Fabric-B8W5_3xv.cjs";
1
+ import { o as Plugin } from "./Fabric-C3xWWIb6.js";
2
2
  import { ElementType } from "react";
3
3
 
4
4
  //#region src/plugins/reactPlugin.d.ts
@@ -16,13 +16,6 @@ type ExtendOptions = {
16
16
  renderToString(App: ElementType): Promise<string> | string;
17
17
  waitUntilExit(): Promise<void>;
18
18
  };
19
- declare module '@kubb/fabric-core' {
20
- interface Fabric {
21
- render(App: ElementType): Promise<void> | void;
22
- renderToString(App: ElementType): Promise<string> | string;
23
- waitUntilExit(): Promise<void>;
24
- }
25
- }
26
19
  declare global {
27
20
  namespace Kubb {
28
21
  interface Fabric {
@@ -35,4 +28,4 @@ declare global {
35
28
  declare const reactPlugin: Plugin<Options, ExtendOptions>;
36
29
  //#endregion
37
30
  export { reactPlugin as n, Options as t };
38
- //# sourceMappingURL=reactPlugin-wV1eBuBU.d.cts.map
31
+ //# sourceMappingURL=reactPlugin-DY-MH4LN.d.ts.map
@@ -1,14 +1,14 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
2
  let react = require("react");
3
3
  react = require_chunk.__toESM(react);
4
+ let signal_exit = require("signal-exit");
5
+ signal_exit = require_chunk.__toESM(signal_exit);
4
6
  let __kubb_fabric_core_plugins = require("@kubb/fabric-core/plugins");
5
7
  __kubb_fabric_core_plugins = require_chunk.__toESM(__kubb_fabric_core_plugins);
6
8
  let node_process = require("node:process");
7
9
  node_process = require_chunk.__toESM(node_process);
8
10
  let react_reconciler_constants_js = require("react-reconciler/constants.js");
9
11
  react_reconciler_constants_js = require_chunk.__toESM(react_reconciler_constants_js);
10
- let signal_exit = require("signal-exit");
11
- signal_exit = require_chunk.__toESM(signal_exit);
12
12
  let react_reconciler = require("react-reconciler");
13
13
  react_reconciler = require_chunk.__toESM(react_reconciler);
14
14
  let __kubb_fabric_core_parsers_typescript = require("@kubb/fabric-core/parsers/typescript");
@@ -275,6 +275,34 @@ const Renderer = (0, react_reconciler.default)({
275
275
  }
276
276
  });
277
277
 
278
+ //#endregion
279
+ //#region src/utils/squashExportNodes.ts
280
+ function squashExportNodes(node) {
281
+ let exports$1 = /* @__PURE__ */ new Set();
282
+ node.childNodes.filter(Boolean).forEach((childNode) => {
283
+ if (childNode.nodeName !== "#text" && nodeNames.includes(childNode.nodeName)) exports$1 = new Set([...exports$1, ...squashExportNodes(childNode)]);
284
+ if (childNode.nodeName === "kubb-export") {
285
+ const attributes = childNode.attributes;
286
+ exports$1.add(attributes);
287
+ }
288
+ });
289
+ return exports$1;
290
+ }
291
+
292
+ //#endregion
293
+ //#region src/utils/squashImportNodes.ts
294
+ function squashImportNodes(node) {
295
+ let imports = /* @__PURE__ */ new Set();
296
+ node.childNodes.filter(Boolean).forEach((childNode) => {
297
+ if (childNode.nodeName !== "#text" && nodeNames.includes(childNode.nodeName)) imports = new Set([...imports, ...squashImportNodes(childNode)]);
298
+ if (childNode.nodeName === "kubb-import") {
299
+ const attributes = childNode.attributes;
300
+ imports.add(attributes);
301
+ }
302
+ });
303
+ return imports;
304
+ }
305
+
278
306
  //#endregion
279
307
  //#region src/utils/squashTextNodes.ts
280
308
  function squashTextNodes(node) {
@@ -326,34 +354,6 @@ function squashTextNodes(node) {
326
354
  return text;
327
355
  }
328
356
 
329
- //#endregion
330
- //#region src/utils/squashExportNodes.ts
331
- function squashExportNodes(node) {
332
- let exports$1 = /* @__PURE__ */ new Set();
333
- node.childNodes.filter(Boolean).forEach((childNode) => {
334
- if (childNode.nodeName !== "#text" && nodeNames.includes(childNode.nodeName)) exports$1 = new Set([...exports$1, ...squashExportNodes(childNode)]);
335
- if (childNode.nodeName === "kubb-export") {
336
- const attributes = childNode.attributes;
337
- exports$1.add(attributes);
338
- }
339
- });
340
- return exports$1;
341
- }
342
-
343
- //#endregion
344
- //#region src/utils/squashImportNodes.ts
345
- function squashImportNodes(node) {
346
- let imports = /* @__PURE__ */ new Set();
347
- node.childNodes.filter(Boolean).forEach((childNode) => {
348
- if (childNode.nodeName !== "#text" && nodeNames.includes(childNode.nodeName)) imports = new Set([...imports, ...squashImportNodes(childNode)]);
349
- if (childNode.nodeName === "kubb-import") {
350
- const attributes = childNode.attributes;
351
- imports.add(attributes);
352
- }
353
- });
354
- return imports;
355
- }
356
-
357
357
  //#endregion
358
358
  //#region src/utils/squashSourceNodes.ts
359
359
  function squashSourceNodes(node, ignores) {
@@ -572,23 +572,23 @@ async function _getOutput(node) {
572
572
  const reactPlugin = (0, __kubb_fabric_core_plugins.createPlugin)({
573
573
  name: "react",
574
574
  install() {},
575
- inject(app, options = {}) {
575
+ inject(ctx, options = {}) {
576
576
  const runtime = new Runtime({
577
- fileManager: app.context.fileManager,
577
+ fileManager: ctx.fileManager,
578
578
  ...options
579
579
  });
580
580
  return {
581
581
  async render(App) {
582
582
  runtime.render((0, react.createElement)(App));
583
- await app.context.events.emit("start");
583
+ await ctx.emit("start");
584
584
  },
585
585
  async renderToString(App) {
586
- await app.context.events.emit("start");
586
+ await ctx.emit("start");
587
587
  return runtime.renderToString((0, react.createElement)(App));
588
588
  },
589
589
  async waitUntilExit() {
590
590
  await runtime.waitUntilExit();
591
- await app.context.events.emit("end");
591
+ await ctx.emit("end");
592
592
  }
593
593
  };
594
594
  }
@@ -637,4 +637,4 @@ Object.defineProperty(exports, 'reactPlugin', {
637
637
  return reactPlugin;
638
638
  }
639
639
  });
640
- //# sourceMappingURL=reactPlugin-DN7FaU4S.cjs.map
640
+ //# sourceMappingURL=reactPlugin-Dj5m_pqf.cjs.map