@kubb/react-fabric 0.12.5 → 0.12.6

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 (52) hide show
  1. package/dist/globals.d.cts +8 -8
  2. package/dist/globals.d.ts +8 -8
  3. package/dist/index.cjs +36 -39
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +24 -39
  6. package/dist/index.d.ts +24 -39
  7. package/dist/index.js +43 -64
  8. package/dist/index.js.map +1 -1
  9. package/dist/jsx-dev-runtime.cjs.map +1 -1
  10. package/dist/jsx-dev-runtime.d.cts +6 -6
  11. package/dist/jsx-dev-runtime.d.ts +6 -6
  12. package/dist/jsx-dev-runtime.js.map +1 -1
  13. package/dist/{jsx-namespace-fB1bxOIg.d.ts → jsx-namespace-BMpcDF6T.d.ts} +8 -8
  14. package/dist/{jsx-namespace-r-JXq_rp.d.cts → jsx-namespace-BdDNwAgO.d.cts} +8 -8
  15. package/dist/jsx-runtime-6sQc68DD.cjs.map +1 -1
  16. package/dist/jsx-runtime-CpElaHq6.js.map +1 -1
  17. package/dist/jsx-runtime.d.cts +6 -6
  18. package/dist/jsx-runtime.d.ts +6 -6
  19. package/dist/plugins.cjs +1 -1
  20. package/dist/plugins.d.cts +1 -1
  21. package/dist/plugins.d.ts +2 -2
  22. package/dist/plugins.js +1 -1
  23. package/dist/{reactPlugin-Dgs9o4KK.js → reactPlugin-C7_IY8_K.js} +5 -3
  24. package/dist/reactPlugin-C7_IY8_K.js.map +1 -0
  25. package/dist/{reactPlugin-ROpqWeoY.cjs → reactPlugin-DbTz9RKJ.cjs} +5 -3
  26. package/dist/reactPlugin-DbTz9RKJ.cjs.map +1 -0
  27. package/dist/{reactPlugin-B8VMf0BQ.d.ts → reactPlugin-Dl5F1rQk.d.ts} +6 -5
  28. package/dist/{reactPlugin-I53HUDXu.d.cts → reactPlugin-fdJaWnpd.d.cts} +6 -5
  29. package/dist/{types-XiObCuPy.d.ts → types-BKnc-nPE.d.ts} +15 -15
  30. package/dist/{types-J_S-h-Ae.d.cts → types-K0AHi-aU.d.cts} +15 -15
  31. package/dist/types.d.cts +2 -2
  32. package/dist/types.d.ts +2 -2
  33. package/package.json +3 -3
  34. package/src/Renderer.ts +2 -2
  35. package/src/Runtime.tsx +6 -4
  36. package/src/components/App.tsx +4 -4
  37. package/src/components/Const.tsx +4 -4
  38. package/src/components/File.tsx +11 -11
  39. package/src/components/Function.tsx +5 -5
  40. package/src/components/Root.tsx +7 -7
  41. package/src/components/Type.tsx +4 -4
  42. package/src/composables/useLifecycle.tsx +1 -19
  43. package/src/devtools.ts +2 -2
  44. package/src/globals.ts +17 -8
  45. package/src/index.ts +1 -6
  46. package/src/jsx-dev-runtime.ts +3 -3
  47. package/src/jsx-namespace.d.ts +8 -8
  48. package/src/jsx-runtime.ts +3 -3
  49. package/src/plugins/reactPlugin.ts +5 -5
  50. package/src/types.ts +24 -15
  51. package/dist/reactPlugin-Dgs9o4KK.js.map +0 -1
  52. package/dist/reactPlugin-ROpqWeoY.cjs.map +0 -1
@@ -1,19 +1,19 @@
1
- import { b as __name, c as KubbFileProps, d as KubbSourceProps, f as KubbTextProps, l as KubbImportProps, o as KubbElement, p as LineBreakProps, s as KubbExportProps, u as KubbNode } from "./types-J_S-h-Ae.cjs";
1
+ import { a as FabricExportProps, b as __name, c as FabricReactElement, d as FabricTextProps, l as FabricReactNode, o as FabricFileProps, p as LineBreakProps, s as FabricImportProps, u as FabricSourceProps } from "./types-K0AHi-aU.cjs";
2
2
  import React from "react";
3
3
 
4
4
  //#region src/globals.d.ts
5
5
  declare global {
6
6
  namespace JSX {
7
- type Element = KubbElement;
7
+ type Element = FabricReactElement;
8
8
  interface ElementClass extends React.ComponentClass<any> {
9
- render(): KubbNode;
9
+ render(): FabricReactNode;
10
10
  }
11
11
  interface IntrinsicElements {
12
- 'kubb-text': KubbTextProps;
13
- 'kubb-file': KubbFileProps;
14
- 'kubb-source': KubbSourceProps;
15
- 'kubb-import': KubbImportProps;
16
- 'kubb-export': KubbExportProps;
12
+ 'kubb-text': FabricTextProps;
13
+ 'kubb-file': FabricFileProps;
14
+ 'kubb-source': FabricSourceProps;
15
+ 'kubb-import': FabricImportProps;
16
+ 'kubb-export': FabricExportProps;
17
17
  br: LineBreakProps;
18
18
  indent: {};
19
19
  dedent: {};
package/dist/globals.d.ts CHANGED
@@ -1,20 +1,20 @@
1
1
  import { r as __name } from "./chunk-CrnDzoTS.js";
2
- import { c as KubbFileProps, d as KubbSourceProps, f as KubbTextProps, l as KubbImportProps, o as KubbElement, p as LineBreakProps, s as KubbExportProps, u as KubbNode } from "./types-XiObCuPy.js";
2
+ import { a as FabricExportProps, c as FabricReactElement, d as FabricTextProps, l as FabricReactNode, o as FabricFileProps, p as LineBreakProps, s as FabricImportProps, u as FabricSourceProps } from "./types-BKnc-nPE.js";
3
3
  import React from "react";
4
4
 
5
5
  //#region src/globals.d.ts
6
6
  declare global {
7
7
  namespace JSX {
8
- type Element = KubbElement;
8
+ type Element = FabricReactElement;
9
9
  interface ElementClass extends React.ComponentClass<any> {
10
- render(): KubbNode;
10
+ render(): FabricReactNode;
11
11
  }
12
12
  interface IntrinsicElements {
13
- 'kubb-text': KubbTextProps;
14
- 'kubb-file': KubbFileProps;
15
- 'kubb-source': KubbSourceProps;
16
- 'kubb-import': KubbImportProps;
17
- 'kubb-export': KubbExportProps;
13
+ 'kubb-text': FabricTextProps;
14
+ 'kubb-file': FabricFileProps;
15
+ 'kubb-source': FabricSourceProps;
16
+ 'kubb-import': FabricImportProps;
17
+ 'kubb-export': FabricExportProps;
18
18
  br: LineBreakProps;
19
19
  indent: {};
20
20
  dedent: {};
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  const require_react$1 = require('./react-DgrQzKJp.cjs');
2
2
  const require_jsx_runtime = require('./jsx-runtime-6sQc68DD.cjs');
3
- const require_reactPlugin = require('./reactPlugin-ROpqWeoY.cjs');
3
+ const require_reactPlugin = require('./reactPlugin-DbTz9RKJ.cjs');
4
4
  let _kubb_fabric_core = require("@kubb/fabric-core");
5
5
  let execa = require("execa");
6
6
  let signal_exit = require("signal-exit");
@@ -27,7 +27,7 @@ function App({ children, ...props }) {
27
27
  });
28
28
  return /* @__PURE__ */ require_jsx_runtime.jsx(require_jsx_runtime.Fragment, { children });
29
29
  }
30
- App.displayName = "KubbApp";
30
+ App.displayName = "App";
31
31
 
32
32
  //#endregion
33
33
  //#region src/components/Const.tsx
@@ -57,7 +57,7 @@ function Const({ children, ...props }) {
57
57
  asConst && /* @__PURE__ */ require_jsx_runtime.jsx(require_jsx_runtime.Fragment, { children: " as const" })
58
58
  ] });
59
59
  }
60
- Const.displayName = "KubbConst";
60
+ Const.displayName = "Const";
61
61
 
62
62
  //#endregion
63
63
  //#region src/components/File.tsx
@@ -90,7 +90,7 @@ function File({ children, ...props }) {
90
90
  children
91
91
  });
92
92
  }
93
- File.displayName = "KubbFile";
93
+ File.displayName = "File";
94
94
  /**
95
95
  * File.Source
96
96
  *
@@ -112,7 +112,7 @@ function FileSource({ children, ...props }) {
112
112
  children
113
113
  });
114
114
  }
115
- FileSource.displayName = "KubbFileSource";
115
+ FileSource.displayName = "FileSource";
116
116
  /**
117
117
  * File.Export
118
118
  *
@@ -140,7 +140,7 @@ function FileExport(props) {
140
140
  asAlias
141
141
  });
142
142
  }
143
- FileExport.displayName = "KubbFileExport";
143
+ FileExport.displayName = "FileExport";
144
144
  /**
145
145
  * File.Import
146
146
  *
@@ -169,7 +169,7 @@ function FileImport(props) {
169
169
  isTypeOnly
170
170
  });
171
171
  }
172
- FileImport.displayName = "KubbFileImport";
172
+ FileImport.displayName = "FileImport";
173
173
  File.Export = FileExport;
174
174
  File.Import = FileImport;
175
175
  File.Source = FileSource;
@@ -217,7 +217,7 @@ function Function({ children, ...props }) {
217
217
  "}"
218
218
  ] });
219
219
  }
220
- Function.displayName = "KubbFunction";
220
+ Function.displayName = "Function";
221
221
  /**
222
222
  * ArrowFunction
223
223
  *
@@ -271,7 +271,7 @@ function ArrowFunction({ children, ...props }) {
271
271
  ] })
272
272
  ] });
273
273
  }
274
- ArrowFunction.displayName = "KubbArrowFunction";
274
+ ArrowFunction.displayName = "ArrowFunction";
275
275
  Function.Arrow = ArrowFunction;
276
276
 
277
277
  //#endregion
@@ -296,23 +296,7 @@ function Type({ children, ...props }) {
296
296
  children
297
297
  ] });
298
298
  }
299
- Type.displayName = "KubbType";
300
-
301
- //#endregion
302
- //#region src/composables/useLifecycle.tsx
303
- /**
304
- * Provides lifecycle helpers that integrate with the Fabric runtime. The
305
- * `exit` helper schedules a call to the RootContext exit function on the
306
- * next tick to allow React to complete its render cycle first.
307
- */
308
- function useLifecycle() {
309
- const { exit } = (0, _kubb_fabric_core.useContext)(_kubb_fabric_core.RootContext);
310
- return { exit: () => {
311
- setTimeout(() => {
312
- exit();
313
- }, 0);
314
- } };
315
- }
299
+ Type.displayName = "Type";
316
300
 
317
301
  //#endregion
318
302
  //#region src/devtools.ts
@@ -333,13 +317,13 @@ function openDevtools() {
333
317
  },
334
318
  {
335
319
  type: 2,
336
- value: "KubbRoot",
320
+ value: "Root",
337
321
  isEnabled: true,
338
322
  isValid: true
339
323
  },
340
324
  {
341
325
  type: 2,
342
- value: "KubbErrorBoundary",
326
+ value: "ErrorBoundary",
343
327
  isEnabled: true,
344
328
  isValid: true
345
329
  },
@@ -543,11 +527,6 @@ var FunctionParams = class FunctionParams {
543
527
  //#endregion
544
528
  //#region src/index.ts
545
529
  const useState = import_react.useState;
546
- const createContext = import_react.createContext;
547
- const createElement = import_react.createElement;
548
- const Fragment = import_react.Fragment;
549
- const use = import_react.use;
550
- const useContext = import_react.useContext;
551
530
  const useEffect = import_react.useEffect;
552
531
  const useReducer = import_react.useReducer;
553
532
  const useRef = import_react.useRef;
@@ -568,14 +547,23 @@ Object.defineProperty(exports, 'FileProcessor', {
568
547
  return _kubb_fabric_core.FileProcessor;
569
548
  }
570
549
  });
571
- exports.Fragment = Fragment;
572
550
  exports.Function = Function;
573
551
  exports.FunctionParams = FunctionParams;
574
552
  exports.Root = require_reactPlugin.Root;
575
553
  exports.Runtime = require_reactPlugin.Runtime;
554
+ Object.defineProperty(exports, 'TreeNode', {
555
+ enumerable: true,
556
+ get: function () {
557
+ return _kubb_fabric_core.TreeNode;
558
+ }
559
+ });
576
560
  exports.Type = Type;
577
- exports.createContext = createContext;
578
- exports.createElement = createElement;
561
+ Object.defineProperty(exports, 'createContext', {
562
+ enumerable: true,
563
+ get: function () {
564
+ return _kubb_fabric_core.createContext;
565
+ }
566
+ });
579
567
  Object.defineProperty(exports, 'createFabric', {
580
568
  enumerable: true,
581
569
  get: function () {
@@ -591,14 +579,18 @@ Object.defineProperty(exports, 'createFile', {
591
579
  exports.createFunctionParams = createFunctionParams;
592
580
  exports.createReactFabric = createReactFabric;
593
581
  exports.openDevtools = openDevtools;
594
- exports.use = use;
595
582
  Object.defineProperty(exports, 'useApp', {
596
583
  enumerable: true,
597
584
  get: function () {
598
585
  return _kubb_fabric_core.useApp;
599
586
  }
600
587
  });
601
- exports.useContext = useContext;
588
+ Object.defineProperty(exports, 'useContext', {
589
+ enumerable: true,
590
+ get: function () {
591
+ return _kubb_fabric_core.useContext;
592
+ }
593
+ });
602
594
  exports.useEffect = useEffect;
603
595
  Object.defineProperty(exports, 'useFile', {
604
596
  enumerable: true,
@@ -606,7 +598,12 @@ Object.defineProperty(exports, 'useFile', {
606
598
  return _kubb_fabric_core.useFile;
607
599
  }
608
600
  });
609
- exports.useLifecycle = useLifecycle;
601
+ Object.defineProperty(exports, 'useLifecycle', {
602
+ enumerable: true,
603
+ get: function () {
604
+ return _kubb_fabric_core.useLifecycle;
605
+ }
606
+ });
610
607
  exports.useReducer = useReducer;
611
608
  exports.useRef = useRef;
612
609
  exports.useState = useState;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["RootContext","NodeTreeContext","AppContext","NodeTreeContext","NodeTreeContext","FileContext","NodeTreeContext","NodeTreeContext","RootContext","reactPlugin"],"sources":["../src/components/App.tsx","../src/components/Const.tsx","../src/components/File.tsx","../src/components/Function.tsx","../src/components/Type.tsx","../src/composables/useLifecycle.tsx","../src/devtools.ts","../src/createReactFabric.ts","../src/utils/getFunctionParams.ts","../src/index.ts"],"sourcesContent":["import { AppContext, NodeTreeContext, provide, RootContext, useContext, useNodeTree } from '@kubb/fabric-core'\nimport type { KubbElement, KubbNode } from '../types.ts'\n\nexport type AppProps<TMeta extends object = object> = {\n /**\n * Metadata associated with the App.\n */\n meta?: TMeta\n /**\n * Children nodes.\n */\n children?: KubbNode\n}\n\n/**\n * App container containing the AppContext carrying `meta` and an `exit` hook.\n */\nexport function App<TMeta extends object = object>({ children, ...props }: AppProps<TMeta>): KubbElement {\n const { meta = {} } = props\n\n const { exit } = useContext(RootContext)\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'App', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n provide(AppContext, { exit, meta })\n\n return <>{children}</>\n}\n\nApp.displayName = 'KubbApp'\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { JSDoc, Key, KubbElement, KubbNode } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\nexport type ConstProps = {\n key?: Key\n /**\n * Name of the const\n */\n name: string\n /**\n * Does this type need to be exported.\n */\n export?: boolean\n /**\n * Type to make the const being typed\n */\n type?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Use of `const` assertions\n */\n asConst?: boolean\n /**\n * Children nodes.\n */\n children?: KubbNode\n}\n\n/**\n * Generates a TypeScript constant declaration.\n */\nexport function Const({ children, ...props }: ConstProps): KubbElement {\n const { name, export: canExport, type, JSDoc, asConst } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Const', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n const {name}{' '}\n {type && (\n <>\n {':'}\n {type}{' '}\n </>\n )}\n = {children}\n {asConst && <> as const</>}\n </>\n )\n}\n\nConst.displayName = 'KubbConst'\n","import { FileContext, NodeTreeContext, provide, useFile, useFileManager, useNodeTree } from '@kubb/fabric-core'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Key, KubbElement, KubbNode } from '../types.ts'\n\ntype BasePropsWithBaseName = {\n /**\n * Name to be used to dynamicly create the baseName(based on input.path).\n * Based on UNIX basename\n * @link https://nodejs.org/api/path.html#pathbasenamepath-suffix\n */\n baseName: KubbFile.BaseName\n /**\n * Path will be full qualified path to a specified file.\n */\n path: KubbFile.Path\n}\n\ntype BasePropsWithoutBaseName = {\n baseName?: never\n /**\n * Path will be full qualified path to a specified file.\n */\n path?: KubbFile.Path\n}\n\ntype BaseProps = BasePropsWithBaseName | BasePropsWithoutBaseName\n\ntype Props<TMeta> = BaseProps & {\n key?: Key\n meta?: TMeta\n banner?: string\n footer?: string\n children?: KubbNode\n}\n\n/**\n * Adds files to the FileManager\n */\nexport function File<TMeta extends object = object>({ children, ...props }: Props<TMeta>): KubbElement {\n const { baseName, path, meta = {}, footer, banner } = props\n\n const fileManager = useFileManager()\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'File', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (!baseName || !path) {\n return <>{children}</>\n }\n\n const file: KubbFile.File = {\n baseName,\n path,\n meta,\n banner,\n footer,\n sources: [],\n imports: [],\n exports: [],\n }\n\n const [resolvedFile] = fileManager.add(file)\n provide(FileContext, resolvedFile)\n\n return <kubb-file {...props}>{children}</kubb-file>\n}\n\nFile.displayName = 'KubbFile'\n\ntype FileSourceProps = Omit<KubbFile.Source, 'value'> & {\n key?: Key\n children?: KubbNode\n}\n\n/**\n * File.Source\n *\n * Marks a block of source text to be associated with the current file when\n * rendering with the FileCollector. Children are treated as the source string.\n */\nfunction FileSource({ children, ...props }: FileSourceProps): KubbElement {\n const { name, isExportable, isIndexable, isTypeOnly } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileSource', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <kubb-source name={name} isTypeOnly={isTypeOnly} isExportable={isExportable} isIndexable={isIndexable}>\n {children}\n </kubb-source>\n )\n}\n\nFileSource.displayName = 'KubbFileSource'\n\nexport type FileExportProps = KubbFile.Export & { key?: Key }\n\n/**\n * File.Export\n *\n * Declares an export entry for the current file. This will be collected by\n * the FileCollector for later emission.\n */\nfunction FileExport(props: FileExportProps): KubbElement {\n const { name, path, isTypeOnly, asAlias } = props\n\n const nodeTree = useNodeTree()\n const file = useFile()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileExport', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (file) {\n file.exports.push({\n name,\n path,\n asAlias,\n isTypeOnly,\n })\n }\n\n return <kubb-export name={name} path={path} isTypeOnly={isTypeOnly} asAlias={asAlias} />\n}\n\nFileExport.displayName = 'KubbFileExport'\n\nexport type FileImportProps = KubbFile.Import & { key?: Key }\n\n/**\n * File.Import\n *\n * Declares an import entry for the current file.\n */\nfunction FileImport(props: FileImportProps): KubbElement {\n const { name, root, path, isTypeOnly, isNameSpace } = props\n\n const nodeTree = useNodeTree()\n const file = useFile()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileImport', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (file) {\n file.imports.push({\n name,\n path,\n root,\n isNameSpace,\n isTypeOnly,\n })\n }\n\n return <kubb-import name={name} root={root} path={path} isNameSpace={isNameSpace} isTypeOnly={isTypeOnly} />\n}\n\nFileImport.displayName = 'KubbFileImport'\n\nFile.Export = FileExport\nFile.Import = FileImport\nFile.Source = FileSource\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { JSDoc, Key, KubbElement, KubbNode } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\n key?: Key\n /**\n * Name of the function.\n */\n name: string\n /**\n * Add default when export is being used\n */\n default?: boolean\n /**\n * Parameters/options/props that need to be used.\n */\n params?: string\n /**\n * Does this function need to be exported.\n */\n export?: boolean\n /**\n * Does the function has async/promise behavior.\n * This will also add `Promise<returnType>` as the returnType.\n */\n async?: boolean\n /**\n * Generics that needs to be added for TypeScript.\n */\n generics?: string | string[]\n /**\n * ReturnType(see async for adding Promise type).\n */\n returnType?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Children nodes.\n */\n children?: KubbNode\n}\n\n/**\n * Generates a TypeScript function declaration.\n */\nexport function Function({ children, ...props }: Props): KubbElement {\n const { name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Function', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n {isDefault && <>default </>}\n {async && <>async </>}\n function {name}\n {generics && (\n <>\n {'<'}\n {Array.isArray(generics) ? generics.join(', ').trim() : generics}\n {'>'}\n </>\n )}\n ({params}){returnType && !async && <>: {returnType}</>}\n {returnType && async && (\n <>\n : Promise{'<'}\n {returnType}\n {'>'}\n </>\n )}\n {' {'}\n <br />\n <indent />\n {/* Indent component to handle indentation*/}\n {children}\n <br />\n <dedent />\n {/* Indent component to handle indentation*/}\n {'}'}\n </>\n )\n}\n\nFunction.displayName = 'KubbFunction'\n\ntype ArrowFunctionProps = Props & {\n /**\n * Create Arrow function in one line\n */\n singleLine?: boolean\n}\n\n/**\n * ArrowFunction\n *\n * Renders an arrow function definition. Supports the same flags as `Function`.\n * Use `singleLine` to render the body as a single-line expression.\n */\nfunction ArrowFunction({ children, ...props }: ArrowFunctionProps) {\n const { name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, singleLine } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'ArrowFunction', props })\n\n provide(NodeTreeContext, childTree)\n }\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n {isDefault && <>default </>}\n const {name} = {async && <>async </>}\n {generics && (\n <>\n {'<'}\n {Array.isArray(generics) ? generics.join(', ').trim() : generics}\n {'>'}\n </>\n )}\n ({params}){returnType && !async && <>: {returnType}</>}\n {returnType && async && (\n <>\n : Promise{'<'}\n {returnType}\n {'>'}\n </>\n )}\n {singleLine && (\n <>\n {' => '}\n {children}\n <br />\n </>\n )}\n {!singleLine && (\n <>\n {' => {'}\n <br />\n <indent />\n {/* Indent component to handle indentation*/}\n {children}\n <br />\n <dedent />\n {/* Indent component to handle indentation*/}\n {'}'}\n <br />\n </>\n )}\n </>\n )\n}\n\nArrowFunction.displayName = 'KubbArrowFunction'\nFunction.Arrow = ArrowFunction\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { JSDoc, Key, KubbElement, KubbNode } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\nexport type TypeProps = {\n key?: Key\n /**\n * Name of the type, this needs to start with a capital letter.\n */\n name: string\n /**\n * Does this type need to be exported.\n */\n export?: boolean\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Children nodes.\n */\n children?: KubbNode\n}\n\n/**\n * Generates a TypeScript type declaration.\n */\nexport function Type({ children, ...props }: TypeProps): KubbElement {\n const { name, export: canExport, JSDoc } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Type', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (name.charAt(0).toUpperCase() !== name.charAt(0)) {\n throw new Error('Name should start with a capital letter(see TypeScript types)')\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n type {name} = {children}\n </>\n )\n}\n\nType.displayName = 'KubbType'\n","import { RootContext, useContext } from '@kubb/fabric-core'\n\n/**\n * Provides lifecycle helpers that integrate with the Fabric runtime. The\n * `exit` helper schedules a call to the RootContext exit function on the\n * next tick to allow React to complete its render cycle first.\n */\nexport function useLifecycle() {\n const { exit } = useContext(RootContext)\n\n return {\n exit: () => {\n // need this to let React finish its current render cycle\n setTimeout(() => {\n exit()\n }, 0)\n },\n }\n}\n","import { execa } from 'execa'\nimport { onExit } from 'signal-exit'\nimport ws from 'ws'\n\nimport { Renderer } from './Renderer.ts'\n\ndeclare global {\n var WebSocket: typeof WebSocket\n var self: any\n var window: any\n var isDevtoolsEnabled: any\n}\n\nlet isOpen = false\n\nexport function openDevtools() {\n if (isOpen) {\n return undefined\n }\n // Set up global polyfills BEFORE importing react-devtools-core\n // This is required because react-devtools-core expects these to be available\n const customGlobal = global as any\n customGlobal.WebSocket ||= ws\n customGlobal.window ||= global\n customGlobal.self ||= global\n customGlobal.isDevtoolsEnabled = true\n\n // Filter out Kubb internal components from devtools for a cleaner view.\n // See https://github.com/facebook/react/blob/edf6eac8a181860fd8a2d076a43806f1237495a1/packages/react-devtools-shared/src/types.js#L24\n customGlobal.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'Context.Provider',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'KubbRoot',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'KubbErrorBoundary',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-file',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-text',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-import',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-export',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-source',\n isEnabled: true,\n isValid: true,\n },\n ]\n\n // biome-ignore lint/suspicious/noTsIgnore: cannot find types\n // @ts-ignore\n import('react-devtools-core').then(async (devtools) => {\n console.info('Opening devtools')\n const controller = new AbortController()\n if (!isOpen) {\n execa({\n stdio: 'pipe',\n preferLocal: true,\n cancelSignal: controller.signal,\n gracefulCancel: true,\n })`npx react-devtools@6.1.5`\n }\n\n isOpen = true\n\n // Destructure the functions from the module\n const { initialize, connectToDevTools } = devtools?.default || devtools\n\n // Initialize DevTools BEFORE importing Renderer (which imports React)\n initialize()\n console.info('Initializing devtools')\n\n // Inject the renderer BEFORE connecting to DevTools\n // This ensures DevTools can properly discover the custom renderer\n Renderer.injectIntoDevTools({\n bundleType: 1,\n version: '19.1.0',\n rendererPackageName: 'kubb',\n // findFiberByHostInstance is required for DevTools to map elements to fibers\n findFiberByHostInstance: () => null,\n })\n\n console.info('Connecting devtools')\n\n try {\n connectToDevTools({\n host: 'localhost',\n port: 8097,\n useHttps: false,\n isAppActive: () => true,\n })\n } catch (e) {\n console.error(e)\n console.info('Error when connecting the devtools')\n }\n\n onExit(\n () => {\n console.info('Disconnecting devtools')\n controller.abort()\n },\n { alwaysLast: false },\n )\n })\n}\n","import { createFabric } from '@kubb/fabric-core'\nimport type { Fabric, FabricConfig, FabricMode } from '@kubb/fabric-core/types'\nimport { openDevtools } from './devtools.ts'\nimport type { Options } from './plugins/reactPlugin.ts'\nimport { reactPlugin } from './plugins/reactPlugin.ts'\n\nexport function createReactFabric(\n config: FabricConfig<Options & { mode?: FabricMode; devtools?: boolean }> = {},\n): Fabric<Options & { mode?: FabricMode; devtools?: boolean }> {\n if (config.devtools) {\n openDevtools()\n }\n\n const fabric = createFabric({ mode: config.mode })\n\n fabric.use(reactPlugin, {\n stdout: config.stdout,\n stderr: config.stderr,\n debug: config.debug,\n stdin: config.stdin,\n })\n\n return fabric\n}\n","import { orderBy } from 'natural-orderby'\n\nexport type Param = {\n /**\n * `object` will return the pathParams as an object.\n *\n * `inline` will return the pathParams as comma separated params.\n * @default `'inline'`\n * @private\n */\n mode?: 'object' | 'inline' | 'inlineSpread'\n type?: 'string' | 'number' | (string & {})\n optional?: boolean\n /**\n * @example test = \"default\"\n */\n default?: string\n /**\n * Used for no TypeScript(with mode object)\n * @example test: \"default\"\n */\n value?: string\n children?: Params\n}\n\ntype ParamItem =\n | (Pick<Param, 'mode' | 'type' | 'value'> & {\n optional?: true\n default?: never\n children?: Params\n })\n | (Pick<Param, 'mode' | 'type' | 'value'> & {\n optional?: false\n default?: string\n children?: Params\n })\n\nexport type Params = Record<string, Param | undefined>\n\ntype Options = {\n type: 'constructor' | 'call' | 'object' | 'objectValue'\n transformName?: (name: string) => string\n transformType?: (type: string) => string\n}\n\nfunction order(items: Array<[key: string, item?: ParamItem]>) {\n return orderBy(\n items.filter(Boolean),\n [\n ([_key, item]) => {\n if (item?.children) {\n return 0 // Treat items with children as required (they'll get = {} if all children are optional)\n }\n // Priority order: required (0) → optional (1) → default-only (2)\n if (item?.optional) {\n return 1 // Optional parameters (with or without default)\n }\n if (item?.default) {\n // Parameters with default only (not marked as optional)\n // Note: While the ParamItem type suggests optional and default are mutually exclusive,\n // this handles the case where a parameter has a default value but isn't explicitly marked as optional\n return 2\n }\n return 0 // Required parameters\n },\n ],\n ['asc'],\n )\n}\n\nfunction parseChild(key: string, item: ParamItem, options: Options): string | null {\n // @ts-expect-error\n const entries = order(Object.entries(item.children))\n\n const types: string[] = []\n const names: string[] = []\n\n const optional = entries.every(([_key, item]) => item?.optional || !!item?.default)\n\n entries.forEach(([key, entryItem]) => {\n if (entryItem) {\n const name = parseItem(key, { ...entryItem, type: undefined }, options)\n if (entryItem.children) {\n const subTypes = Object.entries(entryItem.children)\n .map(([key]) => {\n return key\n })\n .join(', ')\n\n if (subTypes) {\n names.push(`${name}: { ${subTypes} }`)\n } else {\n names.push(name)\n }\n } else {\n if (options.type === 'call' && options.transformName) {\n names.push(`${key}: ${name}`)\n } else {\n names.push(name)\n }\n }\n\n if (entries.some(([_key, item]) => item?.type)) {\n types.push(parseItem(key, { ...entryItem, default: undefined }, options))\n }\n }\n })\n\n const name = item.mode === 'inline' ? key : names.length ? `{ ${names.join(', ')} }` : undefined\n const type = item.type ? item.type : types.length ? `{ ${types.join('; ')} }` : undefined\n\n if (!name) {\n return null\n }\n\n return parseItem(\n name,\n {\n type,\n default: item.default,\n optional: !item.default ? optional : undefined,\n } as ParamItem,\n options,\n )\n}\n\nfunction parseItem(name: string, item: ParamItem, options: Options): string {\n const acc: string[] = []\n const transformedName = options.transformName ? options.transformName(name) : name\n const transformedType = options.transformType && item.type ? options.transformType(item.type) : item.type\n\n if (options.type === 'object') {\n return transformedName\n }\n\n if (options.type === 'objectValue') {\n return item.value ? `${transformedName}: ${item.value}` : transformedName\n }\n\n //LEGACY\n if (item.type && options.type === 'constructor') {\n if (item.optional) {\n // Check if this is a destructured parameter (object mode)\n const isDestructured = transformedName.startsWith('{')\n if (isDestructured) {\n // For destructured parameters, use \": type = {}\" syntax to make it optional\n acc.push(`${transformedName}: ${transformedType} = {}`)\n } else {\n // For inline parameters, use \"?: type\" syntax\n acc.push(`${transformedName}?: ${transformedType}`)\n }\n } else {\n acc.push(`${transformedName}: ${transformedType}${item.default ? ` = ${item.default}` : ''}`)\n }\n } else if (item.default && options.type === 'constructor') {\n acc.push(`${transformedName} = ${item.default}`)\n } else if (item.value) {\n acc.push(`${transformedName} : ${item.value}`)\n } else if (item.mode === 'inlineSpread') {\n acc.push(`... ${transformedName}`)\n } else {\n acc.push(transformedName)\n }\n\n return acc[0] as string\n}\n\nexport function getFunctionParams(params: Params, options: Options): string {\n const entries = order(Object.entries(params as Record<string, ParamItem | undefined>))\n\n return entries\n .reduce((acc, [key, item]) => {\n if (!item) {\n return acc\n }\n\n if (item.children) {\n if (Object.keys(item.children).length === 0) {\n return acc\n }\n\n if (item.mode === 'inlineSpread') {\n return [...acc, getFunctionParams(item.children, options)]\n }\n\n const parsedItem = parseChild(key, item, options)\n if (!parsedItem) {\n return acc\n }\n\n return [...acc, parsedItem]\n }\n\n const parsedItem = parseItem(key, item, options)\n\n return [...acc, parsedItem]\n }, [] as string[])\n .join(', ')\n}\n\nexport function createFunctionParams(params: Params): Params {\n return params\n}\n// TODO use of zod\n//TODO use of string as `$name: $type` to create templates for functions instead of call/constructor\nexport class FunctionParams {\n #params: Params\n\n static factory(params: Params) {\n return new FunctionParams(params)\n }\n constructor(params: Params) {\n this.#params = params\n }\n\n get params(): Params {\n return this.#params\n }\n\n get flatParams(): Params {\n const flatter = (acc: Params, [key, item]: [key: string, item?: Param]): Params => {\n if (item?.children) {\n return Object.entries(item.children).reduce(flatter, acc)\n }\n if (item) {\n acc[key] = item\n }\n\n return acc\n }\n return Object.entries(this.#params).reduce(flatter, {} as Params)\n }\n\n toCall({ transformName, transformType }: Pick<Options, 'transformName' | 'transformType'> = {}): string {\n return getFunctionParams(this.#params, { type: 'call', transformName, transformType })\n }\n\n toObject(): string {\n return getFunctionParams(this.#params, { type: 'object' })\n }\n toObjectValue(): string {\n return getFunctionParams(this.#params, { type: 'objectValue' })\n }\n\n toConstructor(): string {\n return getFunctionParams(this.#params, { type: 'constructor' })\n }\n}\n","// import './globals.ts'\nimport * as React from 'react'\n\nexport type { Fabric } from '@kubb/fabric-core'\n// expose fabric core helpers\nexport { createFabric, createFile, FileManager, FileProcessor } from '@kubb/fabric-core'\n\n// react helpers\nexport const useState = React.useState\nexport const createContext = React.createContext\nexport const createElement = React.createElement\nexport const Fragment = React.Fragment\nexport const use = React.use\nexport const useContext = React.useContext\nexport const useEffect = React.useEffect\nexport const useReducer = React.useReducer\nexport const useRef = React.useRef\n\nexport { App } from './components/App.tsx'\nexport { Const } from './components/Const.tsx'\nexport { File } from './components/File.tsx'\nexport { Function } from './components/Function.tsx'\n// components\nexport { Root } from './components/Root.tsx'\nexport { Type } from './components/Type.tsx'\n\n// composables\nexport { useApp } from './composables/useApp.ts'\nexport { useFile } from './composables/useFile.ts'\nexport { useLifecycle } from './composables/useLifecycle.tsx'\n\n// factories\nexport { createReactFabric } from './createReactFabric.ts'\nexport { openDevtools } from './devtools.ts'\nexport { Runtime } from './Runtime.tsx'\n// utils\nexport { createFunctionParams, FunctionParams } from './utils/getFunctionParams.ts'\n"],"mappings":";;;;;;;;;;;;;;;AAiBA;;;;AAOE;;;;AAMA;;;;AAEA;;AAGF;;;;;;;ACAA,SAAgB,MAAM,EAAE,UAAU,GAAG,SAAkC;CACrE,MAAM,EAAE,MAAM,QAAQ,WAAW,MAAM,OAAO,YAAY;CAE1D,MAAM,+CAAwB;AAE9B,KAAI,SAGF,gCAAQG,mCAFU,SAAS,SAAS;EAAE,MAAM;EAAS;EAAO,CAAC,CAE1B;AAGrC,QACE;iDACG,MAAO,aACN,uHACe,EAAE,wDAAU,MAAO,UAAU,CAAC,EAC3C,wCAAC,SAAK,IACL;EAEJ,aAAa,kFAAE,YAAU;EAAC;EACpB;EAAM;EACZ,QACC;GACG;GACA;GAAM;MACN;EACH;EACC;EACF,WAAW,kFAAE,cAAY;KACzB;;AAIP,MAAM,cAAc;;;;;;;AC9BpB,SAAgB,KAAoC,EAAE,UAAU,GAAG,SAAoC;CACrG,MAAM,EAAE,UAAU,MAAM,OAAO,EAAE,EAAE,QAAQ,WAAW;CAEtD,MAAM,qDAA8B;CACpC,MAAM,+CAAwB;AAE9B,KAAI,SAGF,gCAAQC,mCAFU,SAAS,SAAS;EAAE,MAAM;EAAQ;EAAO,CAAC,CAEzB;AAGrC,KAAI,CAAC,YAAY,CAAC,KAChB,QAAO,wEAAG,WAAY;CAGxB,MAAM,OAAsB;EAC1B;EACA;EACA;EACA;EACA;EACA,SAAS,EAAE;EACX,SAAS,EAAE;EACX,SAAS,EAAE;EACZ;CAED,MAAM,CAAC,gBAAgB,YAAY,IAAI,KAAK;AAC5C,gCAAQC,+BAAa,aAAa;AAElC,QAAO,wCAAC;EAAU,GAAI;EAAQ;GAAqB;;AAGrD,KAAK,cAAc;;;;;;;AAanB,SAAS,WAAW,EAAE,UAAU,GAAG,SAAuC;CACxE,MAAM,EAAE,MAAM,cAAc,aAAa,eAAe;CAExD,MAAM,+CAAwB;AAE9B,KAAI,SAGF,gCAAQD,mCAFU,SAAS,SAAS;EAAE,MAAM;EAAc;EAAO,CAAC,CAE/B;AAGrC,QACE,wCAAC;EAAkB;EAAkB;EAA0B;EAA2B;EACvF;GACW;;AAIlB,WAAW,cAAc;;;;;;;AAUzB,SAAS,WAAW,OAAqC;CACvD,MAAM,EAAE,MAAM,MAAM,YAAY,YAAY;CAE5C,MAAM,+CAAwB;CAC9B,MAAM,uCAAgB;AAEtB,KAAI,SAGF,gCAAQA,mCAFU,SAAS,SAAS;EAAE,MAAM;EAAc;EAAO,CAAC,CAE/B;AAGrC,KAAI,KACF,MAAK,QAAQ,KAAK;EAChB;EACA;EACA;EACA;EACD,CAAC;AAGJ,QAAO,wCAAC;EAAkB;EAAY;EAAkB;EAAqB;GAAW;;AAG1F,WAAW,cAAc;;;;;;AASzB,SAAS,WAAW,OAAqC;CACvD,MAAM,EAAE,MAAM,MAAM,MAAM,YAAY,gBAAgB;CAEtD,MAAM,+CAAwB;CAC9B,MAAM,uCAAgB;AAEtB,KAAI,SAGF,gCAAQA,mCAFU,SAAS,SAAS;EAAE,MAAM;EAAc;EAAO,CAAC,CAE/B;AAGrC,KAAI,KACF,MAAK,QAAQ,KAAK;EAChB;EACA;EACA;EACA;EACA;EACD,CAAC;AAGJ,QAAO,wCAAC;EAAkB;EAAY;EAAY;EAAmB;EAAyB;GAAc;;AAG9G,WAAW,cAAc;AAEzB,KAAK,SAAS;AACd,KAAK,SAAS;AACd,KAAK,SAAS;;;;;;;AC9Hd,SAAgB,SAAS,EAAE,UAAU,GAAG,SAA6B;CACnE,MAAM,EAAE,MAAM,SAAS,WAAW,QAAQ,WAAW,OAAO,UAAU,QAAQ,YAAY,UAAU;CAEpG,MAAM,+CAAwB;AAE9B,KAAI,SAGF,gCAAQE,mCAFU,SAAS,SAAS;EAAE,MAAM;EAAY;EAAO,CAAC,CAE7B;AAGrC,QACE;iDACG,MAAO,aACN,uHACe,EAAE,wDAAU,MAAO,UAAU,CAAC,EAC3C,wCAAC,SAAK,IACL;EAEJ,aAAa,kFAAE,YAAU;EACzB,aAAa,kFAAE,aAAW;EAC1B,SAAS,kFAAE,WAAS;EAAC;EACZ;EACT,YACC;GACG;GACA,MAAM,QAAQ,SAAS,GAAG,SAAS,KAAK,KAAK,CAAC,MAAM,GAAG;GACvD;MACA;EACH;EACA;EAAO;EAAE,cAAc,CAAC,SAAS,oFAAE,MAAG,cAAc;EACrD,cAAc,SACb;GAAE;GACU;GACT;GACA;MACA;EAEJ;EACD,wCAAC,SAAK;EACN,wCAAC,aAAS;EAET;EACD,wCAAC,SAAK;EACN,wCAAC,aAAS;EAET;KACA;;AAIP,SAAS,cAAc;;;;;;;AAevB,SAAS,cAAc,EAAE,UAAU,GAAG,SAA6B;CACjE,MAAM,EAAE,MAAM,SAAS,WAAW,QAAQ,WAAW,OAAO,UAAU,QAAQ,YAAY,OAAO,eAAe;CAEhH,MAAM,+CAAwB;AAE9B,KAAI,SAGF,gCAAQA,mCAFU,SAAS,SAAS;EAAE,MAAM;EAAiB;EAAO,CAAC,CAElC;AAErC,QACE;iDACG,MAAO,aACN,uHACe,EAAE,wDAAU,MAAO,UAAU,CAAC,EAC3C,wCAAC,SAAK,IACL;EAEJ,aAAa,kFAAE,YAAU;EACzB,aAAa,kFAAE,aAAW;EAAC;EACrB;EAAK;EAAI,SAAS,kFAAE,WAAS;EACnC,YACC;GACG;GACA,MAAM,QAAQ,SAAS,GAAG,SAAS,KAAK,KAAK,CAAC,MAAM,GAAG;GACvD;MACA;EACH;EACA;EAAO;EAAE,cAAc,CAAC,SAAS,oFAAE,MAAG,cAAc;EACrD,cAAc,SACb;GAAE;GACU;GACT;GACA;MACA;EAEJ,cACC;GACG;GACA;GACD,wCAAC,SAAK;MACL;EAEJ,CAAC,cACA;GACG;GACD,wCAAC,SAAK;GACN,wCAAC,aAAS;GAET;GACD,wCAAC,SAAK;GACN,wCAAC,aAAS;GAET;GACD,wCAAC,SAAK;MACL;KAEJ;;AAIP,cAAc,cAAc;AAC5B,SAAS,QAAQ;;;;;;;ACrJjB,SAAgB,KAAK,EAAE,UAAU,GAAG,SAAiC;CACnE,MAAM,EAAE,MAAM,QAAQ,WAAW,UAAU;CAE3C,MAAM,+CAAwB;AAE9B,KAAI,SAGF,gCAAQC,mCAFU,SAAS,SAAS;EAAE,MAAM;EAAQ;EAAO,CAAC,CAEzB;AAGrC,KAAI,KAAK,OAAO,EAAE,CAAC,aAAa,KAAK,KAAK,OAAO,EAAE,CACjD,OAAM,IAAI,MAAM,gEAAgE;AAGlF,QACE;iDACG,MAAO,aACN,uHACe,EAAE,wDAAU,MAAO,UAAU,CAAC,EAC3C,wCAAC,SAAK,IACL;EAEJ,aAAa,kFAAE,YAAU;EAAC;EACrB;EAAK;EAAI;KACd;;AAIP,KAAK,cAAc;;;;;;;;;ACjDnB,SAAgB,eAAe;CAC7B,MAAM,EAAE,2CAAoBC,8BAAY;AAExC,QAAO,EACL,YAAY;AAEV,mBAAiB;AACf,SAAM;KACL,EAAE;IAER;;;;;ACJH,IAAI,SAAS;AAEb,SAAgB,eAAe;AAC7B,KAAI,OACF;CAIF,MAAM,eAAe;AACrB,cAAa,cAAb,aAAa,YAAc;AAC3B,cAAa,WAAb,aAAa,SAAW;AACxB,cAAa,SAAb,aAAa,OAAS;AACtB,cAAa,oBAAoB;AAIjC,cAAa,OAAO,uCAAuC;EACzD;GAEE,MAAM;GACN,OAAO;GACP,WAAW;GACX,SAAS;GACV;EACD;GAEE,MAAM;GACN,OAAO;GACP,WAAW;GACX,SAAS;GACV;EACD;GAEE,MAAM;GACN,OAAO;GACP,WAAW;GACX,SAAS;GACV;EACD;GAEE,MAAM;GACN,OAAO;GACP,WAAW;GACX,SAAS;GACV;EACD;GAEE,MAAM;GACN,OAAO;GACP,WAAW;GACX,SAAS;GACV;EACD;GAEE,MAAM;GACN,OAAO;GACP,WAAW;GACX,SAAS;GACV;EACD;GAEE,MAAM;GACN,OAAO;GACP,WAAW;GACX,SAAS;GACV;EACD;GAEE,MAAM;GACN,OAAO;GACP,WAAW;GACX,SAAS;GACV;EACF;AAID,QAAO,uBAAuB,KAAK,OAAO,aAAa;AACrD,UAAQ,KAAK,mBAAmB;EAChC,MAAM,aAAa,IAAI,iBAAiB;AACxC,MAAI,CAAC,OACH,kBAAM;GACJ,OAAO;GACP,aAAa;GACb,cAAc,WAAW;GACzB,gBAAgB;GACjB,CAAC;AAGJ,WAAS;EAGT,MAAM,EAAE,YAAY,2EAAsB,SAAU,YAAW;AAG/D,cAAY;AACZ,UAAQ,KAAK,wBAAwB;AAIrC,+BAAS,mBAAmB;GAC1B,YAAY;GACZ,SAAS;GACT,qBAAqB;GAErB,+BAA+B;GAChC,CAAC;AAEF,UAAQ,KAAK,sBAAsB;AAEnC,MAAI;AACF,qBAAkB;IAChB,MAAM;IACN,MAAM;IACN,UAAU;IACV,mBAAmB;IACpB,CAAC;WACK,GAAG;AACV,WAAQ,MAAM,EAAE;AAChB,WAAQ,KAAK,qCAAqC;;AAGpD,gCACQ;AACJ,WAAQ,KAAK,yBAAyB;AACtC,cAAW,OAAO;KAEpB,EAAE,YAAY,OAAO,CACtB;GACD;;;;;ACxIJ,SAAgB,kBACd,SAA4E,EAAE,EACjB;AAC7D,KAAI,OAAO,SACT,eAAc;CAGhB,MAAM,6CAAsB,EAAE,MAAM,OAAO,MAAM,CAAC;AAElD,QAAO,IAAIC,iCAAa;EACtB,QAAQ,OAAO;EACf,QAAQ,OAAO;EACf,OAAO,OAAO;EACd,OAAO,OAAO;EACf,CAAC;AAEF,QAAO;;;;;ACuBT,SAAS,MAAM,OAA+C;AAC5D,qCACE,MAAM,OAAO,QAAQ,EACrB,EACG,CAAC,MAAM,UAAU;AAChB,kDAAI,KAAM,SACR,QAAO;AAGT,kDAAI,KAAM,SACR,QAAO;AAET,kDAAI,KAAM,QAIR,QAAO;AAET,SAAO;GAEV,EACD,CAAC,MAAM,CACR;;AAGH,SAAS,WAAW,KAAa,MAAiB,SAAiC;CAEjF,MAAM,UAAU,MAAM,OAAO,QAAQ,KAAK,SAAS,CAAC;CAEpD,MAAM,QAAkB,EAAE;CAC1B,MAAM,QAAkB,EAAE;CAE1B,MAAM,WAAW,QAAQ,OAAO,CAAC,MAAM,uDAAU,KAAM,aAAY,CAAC,8CAAC,KAAM,SAAQ;AAEnF,SAAQ,SAAS,CAAC,KAAK,eAAe;AACpC,MAAI,WAAW;GACb,MAAM,OAAO,UAAU,KAAK;IAAE,GAAG;IAAW,MAAM;IAAW,EAAE,QAAQ;AACvE,OAAI,UAAU,UAAU;IACtB,MAAM,WAAW,OAAO,QAAQ,UAAU,SAAS,CAChD,KAAK,CAAC,SAAS;AACd,YAAO;MACP,CACD,KAAK,KAAK;AAEb,QAAI,SACF,OAAM,KAAK,GAAG,KAAK,MAAM,SAAS,IAAI;QAEtC,OAAM,KAAK,KAAK;cAGd,QAAQ,SAAS,UAAU,QAAQ,cACrC,OAAM,KAAK,GAAG,IAAI,IAAI,OAAO;OAE7B,OAAM,KAAK,KAAK;AAIpB,OAAI,QAAQ,MAAM,CAAC,MAAM,sDAAU,KAAM,KAAK,CAC5C,OAAM,KAAK,UAAU,KAAK;IAAE,GAAG;IAAW,SAAS;IAAW,EAAE,QAAQ,CAAC;;GAG7E;CAEF,MAAM,OAAO,KAAK,SAAS,WAAW,MAAM,MAAM,SAAS,KAAK,MAAM,KAAK,KAAK,CAAC,MAAM;CACvF,MAAM,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,SAAS,KAAK,MAAM,KAAK,KAAK,CAAC,MAAM;AAEhF,KAAI,CAAC,KACH,QAAO;AAGT,QAAO,UACL,MACA;EACE;EACA,SAAS,KAAK;EACd,UAAU,CAAC,KAAK,UAAU,WAAW;EACtC,EACD,QACD;;AAGH,SAAS,UAAU,MAAc,MAAiB,SAA0B;CAC1E,MAAM,MAAgB,EAAE;CACxB,MAAM,kBAAkB,QAAQ,gBAAgB,QAAQ,cAAc,KAAK,GAAG;CAC9E,MAAM,kBAAkB,QAAQ,iBAAiB,KAAK,OAAO,QAAQ,cAAc,KAAK,KAAK,GAAG,KAAK;AAErG,KAAI,QAAQ,SAAS,SACnB,QAAO;AAGT,KAAI,QAAQ,SAAS,cACnB,QAAO,KAAK,QAAQ,GAAG,gBAAgB,IAAI,KAAK,UAAU;AAI5D,KAAI,KAAK,QAAQ,QAAQ,SAAS,cAChC,KAAI,KAAK,SAGP,KADuB,gBAAgB,WAAW,IAAI,CAGpD,KAAI,KAAK,GAAG,gBAAgB,IAAI,gBAAgB,OAAO;KAGvD,KAAI,KAAK,GAAG,gBAAgB,KAAK,kBAAkB;KAGrD,KAAI,KAAK,GAAG,gBAAgB,IAAI,kBAAkB,KAAK,UAAU,MAAM,KAAK,YAAY,KAAK;UAEtF,KAAK,WAAW,QAAQ,SAAS,cAC1C,KAAI,KAAK,GAAG,gBAAgB,KAAK,KAAK,UAAU;UACvC,KAAK,MACd,KAAI,KAAK,GAAG,gBAAgB,KAAK,KAAK,QAAQ;UACrC,KAAK,SAAS,eACvB,KAAI,KAAK,OAAO,kBAAkB;KAElC,KAAI,KAAK,gBAAgB;AAG3B,QAAO,IAAI;;AAGb,SAAgB,kBAAkB,QAAgB,SAA0B;AAG1E,QAFgB,MAAM,OAAO,QAAQ,OAAgD,CAAC,CAGnF,QAAQ,KAAK,CAAC,KAAK,UAAU;AAC5B,MAAI,CAAC,KACH,QAAO;AAGT,MAAI,KAAK,UAAU;AACjB,OAAI,OAAO,KAAK,KAAK,SAAS,CAAC,WAAW,EACxC,QAAO;AAGT,OAAI,KAAK,SAAS,eAChB,QAAO,CAAC,GAAG,KAAK,kBAAkB,KAAK,UAAU,QAAQ,CAAC;GAG5D,MAAM,aAAa,WAAW,KAAK,MAAM,QAAQ;AACjD,OAAI,CAAC,WACH,QAAO;AAGT,UAAO,CAAC,GAAG,KAAK,WAAW;;EAG7B,MAAM,aAAa,UAAU,KAAK,MAAM,QAAQ;AAEhD,SAAO,CAAC,GAAG,KAAK,WAAW;IAC1B,EAAE,CAAa,CACjB,KAAK,KAAK;;AAGf,SAAgB,qBAAqB,QAAwB;AAC3D,QAAO;;;AAIT,IAAa,iBAAb,MAAa,eAAe;CAG1B,OAAO,QAAQ,QAAgB;AAC7B,SAAO,IAAI,eAAe,OAAO;;CAEnC,YAAY,QAAgB;;AAC1B,4DAAe,OAAM;;CAGvB,IAAI,SAAiB;AACnB,6DAAO,KAAY;;CAGrB,IAAI,aAAqB;EACvB,MAAM,WAAW,KAAa,CAAC,KAAK,UAA+C;AACjF,mDAAI,KAAM,SACR,QAAO,OAAO,QAAQ,KAAK,SAAS,CAAC,OAAO,SAAS,IAAI;AAE3D,OAAI,KACF,KAAI,OAAO;AAGb,UAAO;;AAET,SAAO,OAAO,4DAAQ,KAAY,CAAC,CAAC,OAAO,SAAS,EAAE,CAAW;;CAGnE,OAAO,EAAE,eAAe,kBAAoE,EAAE,EAAU;AACtG,SAAO,sEAAkB,KAAY,EAAE;GAAE,MAAM;GAAQ;GAAe;GAAe,CAAC;;CAGxF,WAAmB;AACjB,SAAO,sEAAkB,KAAY,EAAE,EAAE,MAAM,UAAU,CAAC;;CAE5D,gBAAwB;AACtB,SAAO,sEAAkB,KAAY,EAAE,EAAE,MAAM,eAAe,CAAC;;CAGjE,gBAAwB;AACtB,SAAO,sEAAkB,KAAY,EAAE,EAAE,MAAM,eAAe,CAAC;;;;;;AC7OnE,MAAa,wBAAiB;AAC9B,MAAa,6BAAsB;AACnC,MAAa,6BAAsB;AACnC,MAAa,wBAAiB;AAC9B,MAAa,mBAAY;AACzB,MAAa,0BAAmB;AAChC,MAAa,yBAAkB;AAC/B,MAAa,0BAAmB;AAChC,MAAa,sBAAe"}
1
+ {"version":3,"file":"index.cjs","names":["RootContext","NodeTreeContext","AppContext","NodeTreeContext","NodeTreeContext","FileContext","NodeTreeContext","NodeTreeContext","reactPlugin"],"sources":["../src/components/App.tsx","../src/components/Const.tsx","../src/components/File.tsx","../src/components/Function.tsx","../src/components/Type.tsx","../src/devtools.ts","../src/createReactFabric.ts","../src/utils/getFunctionParams.ts","../src/index.ts"],"sourcesContent":["import { AppContext, NodeTreeContext, provide, RootContext, useContext, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode } from '../types.ts'\n\nexport type AppProps<TMeta extends object = object> = {\n /**\n * Metadata associated with the App.\n */\n meta?: TMeta\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * App container containing the AppContext carrying `meta` and an `exit` hook.\n */\nexport function App<TMeta extends object = object>({ children, ...props }: AppProps<TMeta>): FabricReactElement {\n const { meta = {} } = props\n\n const { exit } = useContext(RootContext)\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'App', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n provide(AppContext, { exit, meta })\n\n return <>{children}</>\n}\n\nApp.displayName = 'App'\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\nexport type ConstProps = {\n key?: Key\n /**\n * Name of the const\n */\n name: string\n /**\n * Does this type need to be exported.\n */\n export?: boolean\n /**\n * Type to make the const being typed\n */\n type?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Use of `const` assertions\n */\n asConst?: boolean\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript constant declaration.\n */\nexport function Const({ children, ...props }: ConstProps): FabricReactElement {\n const { name, export: canExport, type, JSDoc, asConst } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Const', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n const {name}{' '}\n {type && (\n <>\n {':'}\n {type}{' '}\n </>\n )}\n = {children}\n {asConst && <> as const</>}\n </>\n )\n}\n\nConst.displayName = 'Const'\n","import { FileContext, NodeTreeContext, provide, useFile, useFileManager, useNodeTree } from '@kubb/fabric-core'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { FabricReactElement, FabricReactNode, Key } from '../types.ts'\n\ntype BasePropsWithBaseName = {\n /**\n * Name to be used to dynamicly create the baseName(based on input.path).\n * Based on UNIX basename\n * @link https://nodejs.org/api/path.html#pathbasenamepath-suffix\n */\n baseName: KubbFile.BaseName\n /**\n * Path will be full qualified path to a specified file.\n */\n path: KubbFile.Path\n}\n\ntype BasePropsWithoutBaseName = {\n baseName?: never\n /**\n * Path will be full qualified path to a specified file.\n */\n path?: KubbFile.Path\n}\n\ntype BaseProps = BasePropsWithBaseName | BasePropsWithoutBaseName\n\ntype Props<TMeta> = BaseProps & {\n key?: Key\n meta?: TMeta\n banner?: string\n footer?: string\n children?: FabricReactNode\n}\n\n/**\n * Adds files to the FileManager\n */\nexport function File<TMeta extends object = object>({ children, ...props }: Props<TMeta>): FabricReactElement {\n const { baseName, path, meta = {}, footer, banner } = props\n\n const fileManager = useFileManager()\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'File', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (!baseName || !path) {\n return <>{children}</>\n }\n\n const file: KubbFile.File = {\n baseName,\n path,\n meta,\n banner,\n footer,\n sources: [],\n imports: [],\n exports: [],\n }\n\n const [resolvedFile] = fileManager.add(file)\n provide(FileContext, resolvedFile)\n\n return <kubb-file {...props}>{children}</kubb-file>\n}\n\nFile.displayName = 'File'\n\ntype FileSourceProps = Omit<KubbFile.Source, 'value'> & {\n key?: Key\n children?: FabricReactNode\n}\n\n/**\n * File.Source\n *\n * Marks a block of source text to be associated with the current file when\n * rendering with the FileCollector. Children are treated as the source string.\n */\nfunction FileSource({ children, ...props }: FileSourceProps): FabricReactElement {\n const { name, isExportable, isIndexable, isTypeOnly } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileSource', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <kubb-source name={name} isTypeOnly={isTypeOnly} isExportable={isExportable} isIndexable={isIndexable}>\n {children}\n </kubb-source>\n )\n}\n\nFileSource.displayName = 'FileSource'\n\nexport type FileExportProps = KubbFile.Export & { key?: Key }\n\n/**\n * File.Export\n *\n * Declares an export entry for the current file. This will be collected by\n * the FileCollector for later emission.\n */\nfunction FileExport(props: FileExportProps): FabricReactElement {\n const { name, path, isTypeOnly, asAlias } = props\n\n const nodeTree = useNodeTree()\n const file = useFile()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileExport', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (file) {\n file.exports.push({\n name,\n path,\n asAlias,\n isTypeOnly,\n })\n }\n\n return <kubb-export name={name} path={path} isTypeOnly={isTypeOnly} asAlias={asAlias} />\n}\n\nFileExport.displayName = 'FileExport'\n\nexport type FileImportProps = KubbFile.Import & { key?: Key }\n\n/**\n * File.Import\n *\n * Declares an import entry for the current file.\n */\nfunction FileImport(props: FileImportProps): FabricReactElement {\n const { name, root, path, isTypeOnly, isNameSpace } = props\n\n const nodeTree = useNodeTree()\n const file = useFile()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'FileImport', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (file) {\n file.imports.push({\n name,\n path,\n root,\n isNameSpace,\n isTypeOnly,\n })\n }\n\n return <kubb-import name={name} root={root} path={path} isNameSpace={isNameSpace} isTypeOnly={isTypeOnly} />\n}\n\nFileImport.displayName = 'FileImport'\n\nFile.Export = FileExport\nFile.Import = FileImport\nFile.Source = FileSource\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\ntype Props = {\n key?: Key\n /**\n * Name of the function.\n */\n name: string\n /**\n * Add default when export is being used\n */\n default?: boolean\n /**\n * Parameters/options/props that need to be used.\n */\n params?: string\n /**\n * Does this function need to be exported.\n */\n export?: boolean\n /**\n * Does the function has async/promise behavior.\n * This will also add `Promise<returnType>` as the returnType.\n */\n async?: boolean\n /**\n * Generics that needs to be added for TypeScript.\n */\n generics?: string | string[]\n /**\n * ReturnType(see async for adding Promise type).\n */\n returnType?: string\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript function declaration.\n */\nexport function Function({ children, ...props }: Props): FabricReactElement {\n const { name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Function', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n {isDefault && <>default </>}\n {async && <>async </>}\n function {name}\n {generics && (\n <>\n {'<'}\n {Array.isArray(generics) ? generics.join(', ').trim() : generics}\n {'>'}\n </>\n )}\n ({params}){returnType && !async && <>: {returnType}</>}\n {returnType && async && (\n <>\n : Promise{'<'}\n {returnType}\n {'>'}\n </>\n )}\n {' {'}\n <br />\n <indent />\n {/* Indent component to handle indentation*/}\n {children}\n <br />\n <dedent />\n {/* Indent component to handle indentation*/}\n {'}'}\n </>\n )\n}\n\nFunction.displayName = 'Function'\n\ntype ArrowFunctionProps = Props & {\n /**\n * Create Arrow function in one line\n */\n singleLine?: boolean\n}\n\n/**\n * ArrowFunction\n *\n * Renders an arrow function definition. Supports the same flags as `Function`.\n * Use `singleLine` to render the body as a single-line expression.\n */\nfunction ArrowFunction({ children, ...props }: ArrowFunctionProps) {\n const { name, default: isDefault, export: canExport, async, generics, params, returnType, JSDoc, singleLine } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'ArrowFunction', props })\n\n provide(NodeTreeContext, childTree)\n }\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n {isDefault && <>default </>}\n const {name} = {async && <>async </>}\n {generics && (\n <>\n {'<'}\n {Array.isArray(generics) ? generics.join(', ').trim() : generics}\n {'>'}\n </>\n )}\n ({params}){returnType && !async && <>: {returnType}</>}\n {returnType && async && (\n <>\n : Promise{'<'}\n {returnType}\n {'>'}\n </>\n )}\n {singleLine && (\n <>\n {' => '}\n {children}\n <br />\n </>\n )}\n {!singleLine && (\n <>\n {' => {'}\n <br />\n <indent />\n {/* Indent component to handle indentation*/}\n {children}\n <br />\n <dedent />\n {/* Indent component to handle indentation*/}\n {'}'}\n <br />\n </>\n )}\n </>\n )\n}\n\nArrowFunction.displayName = 'ArrowFunction'\nFunction.Arrow = ArrowFunction\n","import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core'\nimport type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts'\nimport { createJSDoc } from '../utils/createJSDoc.ts'\n\nexport type TypeProps = {\n key?: Key\n /**\n * Name of the type, this needs to start with a capital letter.\n */\n name: string\n /**\n * Does this type need to be exported.\n */\n export?: boolean\n /**\n * Options for JSdocs.\n */\n JSDoc?: JSDoc\n /**\n * Children nodes.\n */\n children?: FabricReactNode\n}\n\n/**\n * Generates a TypeScript type declaration.\n */\nexport function Type({ children, ...props }: TypeProps): FabricReactElement {\n const { name, export: canExport, JSDoc } = props\n\n const nodeTree = useNodeTree()\n\n if (nodeTree) {\n const childTree = nodeTree.addChild({ type: 'Type', props })\n\n provide(NodeTreeContext, childTree)\n }\n\n if (name.charAt(0).toUpperCase() !== name.charAt(0)) {\n throw new Error('Name should start with a capital letter(see TypeScript types)')\n }\n\n return (\n <>\n {JSDoc?.comments && (\n <>\n {createJSDoc({ comments: JSDoc?.comments })}\n <br />\n </>\n )}\n {canExport && <>export </>}\n type {name} = {children}\n </>\n )\n}\n\nType.displayName = 'Type'\n","import { execa } from 'execa'\nimport { onExit } from 'signal-exit'\nimport ws from 'ws'\n\nimport { Renderer } from './Renderer.ts'\n\ndeclare global {\n var WebSocket: typeof WebSocket\n var self: any\n var window: any\n var isDevtoolsEnabled: any\n}\n\nlet isOpen = false\n\nexport function openDevtools() {\n if (isOpen) {\n return undefined\n }\n // Set up global polyfills BEFORE importing react-devtools-core\n // This is required because react-devtools-core expects these to be available\n const customGlobal = global as any\n customGlobal.WebSocket ||= ws\n customGlobal.window ||= global\n customGlobal.self ||= global\n customGlobal.isDevtoolsEnabled = true\n\n // Filter out Kubb internal components from devtools for a cleaner view.\n // See https://github.com/facebook/react/blob/edf6eac8a181860fd8a2d076a43806f1237495a1/packages/react-devtools-shared/src/types.js#L24\n customGlobal.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'Context.Provider',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'Root',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'ErrorBoundary',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-file',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-text',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-import',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-export',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-source',\n isEnabled: true,\n isValid: true,\n },\n ]\n\n // biome-ignore lint/suspicious/noTsIgnore: cannot find types\n // @ts-ignore\n import('react-devtools-core').then(async (devtools) => {\n console.info('Opening devtools')\n const controller = new AbortController()\n if (!isOpen) {\n execa({\n stdio: 'pipe',\n preferLocal: true,\n cancelSignal: controller.signal,\n gracefulCancel: true,\n })`npx react-devtools@6.1.5`\n }\n\n isOpen = true\n\n // Destructure the functions from the module\n const { initialize, connectToDevTools } = devtools?.default || devtools\n\n // Initialize DevTools BEFORE importing Renderer (which imports React)\n initialize()\n console.info('Initializing devtools')\n\n // Inject the renderer BEFORE connecting to DevTools\n // This ensures DevTools can properly discover the custom renderer\n Renderer.injectIntoDevTools({\n bundleType: 1,\n version: '19.1.0',\n rendererPackageName: 'kubb',\n // findFiberByHostInstance is required for DevTools to map elements to fibers\n findFiberByHostInstance: () => null,\n })\n\n console.info('Connecting devtools')\n\n try {\n connectToDevTools({\n host: 'localhost',\n port: 8097,\n useHttps: false,\n isAppActive: () => true,\n })\n } catch (e) {\n console.error(e)\n console.info('Error when connecting the devtools')\n }\n\n onExit(\n () => {\n console.info('Disconnecting devtools')\n controller.abort()\n },\n { alwaysLast: false },\n )\n })\n}\n","import { createFabric } from '@kubb/fabric-core'\nimport type { Fabric, FabricConfig, FabricMode } from '@kubb/fabric-core/types'\nimport { openDevtools } from './devtools.ts'\nimport type { Options } from './plugins/reactPlugin.ts'\nimport { reactPlugin } from './plugins/reactPlugin.ts'\n\nexport function createReactFabric(\n config: FabricConfig<Options & { mode?: FabricMode; devtools?: boolean }> = {},\n): Fabric<Options & { mode?: FabricMode; devtools?: boolean }> {\n if (config.devtools) {\n openDevtools()\n }\n\n const fabric = createFabric({ mode: config.mode })\n\n fabric.use(reactPlugin, {\n stdout: config.stdout,\n stderr: config.stderr,\n debug: config.debug,\n stdin: config.stdin,\n })\n\n return fabric\n}\n","import { orderBy } from 'natural-orderby'\n\nexport type Param = {\n /**\n * `object` will return the pathParams as an object.\n *\n * `inline` will return the pathParams as comma separated params.\n * @default `'inline'`\n * @private\n */\n mode?: 'object' | 'inline' | 'inlineSpread'\n type?: 'string' | 'number' | (string & {})\n optional?: boolean\n /**\n * @example test = \"default\"\n */\n default?: string\n /**\n * Used for no TypeScript(with mode object)\n * @example test: \"default\"\n */\n value?: string\n children?: Params\n}\n\ntype ParamItem =\n | (Pick<Param, 'mode' | 'type' | 'value'> & {\n optional?: true\n default?: never\n children?: Params\n })\n | (Pick<Param, 'mode' | 'type' | 'value'> & {\n optional?: false\n default?: string\n children?: Params\n })\n\nexport type Params = Record<string, Param | undefined>\n\ntype Options = {\n type: 'constructor' | 'call' | 'object' | 'objectValue'\n transformName?: (name: string) => string\n transformType?: (type: string) => string\n}\n\nfunction order(items: Array<[key: string, item?: ParamItem]>) {\n return orderBy(\n items.filter(Boolean),\n [\n ([_key, item]) => {\n if (item?.children) {\n return 0 // Treat items with children as required (they'll get = {} if all children are optional)\n }\n // Priority order: required (0) → optional (1) → default-only (2)\n if (item?.optional) {\n return 1 // Optional parameters (with or without default)\n }\n if (item?.default) {\n // Parameters with default only (not marked as optional)\n // Note: While the ParamItem type suggests optional and default are mutually exclusive,\n // this handles the case where a parameter has a default value but isn't explicitly marked as optional\n return 2\n }\n return 0 // Required parameters\n },\n ],\n ['asc'],\n )\n}\n\nfunction parseChild(key: string, item: ParamItem, options: Options): string | null {\n // @ts-expect-error\n const entries = order(Object.entries(item.children))\n\n const types: string[] = []\n const names: string[] = []\n\n const optional = entries.every(([_key, item]) => item?.optional || !!item?.default)\n\n entries.forEach(([key, entryItem]) => {\n if (entryItem) {\n const name = parseItem(key, { ...entryItem, type: undefined }, options)\n if (entryItem.children) {\n const subTypes = Object.entries(entryItem.children)\n .map(([key]) => {\n return key\n })\n .join(', ')\n\n if (subTypes) {\n names.push(`${name}: { ${subTypes} }`)\n } else {\n names.push(name)\n }\n } else {\n if (options.type === 'call' && options.transformName) {\n names.push(`${key}: ${name}`)\n } else {\n names.push(name)\n }\n }\n\n if (entries.some(([_key, item]) => item?.type)) {\n types.push(parseItem(key, { ...entryItem, default: undefined }, options))\n }\n }\n })\n\n const name = item.mode === 'inline' ? key : names.length ? `{ ${names.join(', ')} }` : undefined\n const type = item.type ? item.type : types.length ? `{ ${types.join('; ')} }` : undefined\n\n if (!name) {\n return null\n }\n\n return parseItem(\n name,\n {\n type,\n default: item.default,\n optional: !item.default ? optional : undefined,\n } as ParamItem,\n options,\n )\n}\n\nfunction parseItem(name: string, item: ParamItem, options: Options): string {\n const acc: string[] = []\n const transformedName = options.transformName ? options.transformName(name) : name\n const transformedType = options.transformType && item.type ? options.transformType(item.type) : item.type\n\n if (options.type === 'object') {\n return transformedName\n }\n\n if (options.type === 'objectValue') {\n return item.value ? `${transformedName}: ${item.value}` : transformedName\n }\n\n //LEGACY\n if (item.type && options.type === 'constructor') {\n if (item.optional) {\n // Check if this is a destructured parameter (object mode)\n const isDestructured = transformedName.startsWith('{')\n if (isDestructured) {\n // For destructured parameters, use \": type = {}\" syntax to make it optional\n acc.push(`${transformedName}: ${transformedType} = {}`)\n } else {\n // For inline parameters, use \"?: type\" syntax\n acc.push(`${transformedName}?: ${transformedType}`)\n }\n } else {\n acc.push(`${transformedName}: ${transformedType}${item.default ? ` = ${item.default}` : ''}`)\n }\n } else if (item.default && options.type === 'constructor') {\n acc.push(`${transformedName} = ${item.default}`)\n } else if (item.value) {\n acc.push(`${transformedName} : ${item.value}`)\n } else if (item.mode === 'inlineSpread') {\n acc.push(`... ${transformedName}`)\n } else {\n acc.push(transformedName)\n }\n\n return acc[0] as string\n}\n\nexport function getFunctionParams(params: Params, options: Options): string {\n const entries = order(Object.entries(params as Record<string, ParamItem | undefined>))\n\n return entries\n .reduce((acc, [key, item]) => {\n if (!item) {\n return acc\n }\n\n if (item.children) {\n if (Object.keys(item.children).length === 0) {\n return acc\n }\n\n if (item.mode === 'inlineSpread') {\n return [...acc, getFunctionParams(item.children, options)]\n }\n\n const parsedItem = parseChild(key, item, options)\n if (!parsedItem) {\n return acc\n }\n\n return [...acc, parsedItem]\n }\n\n const parsedItem = parseItem(key, item, options)\n\n return [...acc, parsedItem]\n }, [] as string[])\n .join(', ')\n}\n\nexport function createFunctionParams(params: Params): Params {\n return params\n}\n// TODO use of zod\n//TODO use of string as `$name: $type` to create templates for functions instead of call/constructor\nexport class FunctionParams {\n #params: Params\n\n static factory(params: Params) {\n return new FunctionParams(params)\n }\n constructor(params: Params) {\n this.#params = params\n }\n\n get params(): Params {\n return this.#params\n }\n\n get flatParams(): Params {\n const flatter = (acc: Params, [key, item]: [key: string, item?: Param]): Params => {\n if (item?.children) {\n return Object.entries(item.children).reduce(flatter, acc)\n }\n if (item) {\n acc[key] = item\n }\n\n return acc\n }\n return Object.entries(this.#params).reduce(flatter, {} as Params)\n }\n\n toCall({ transformName, transformType }: Pick<Options, 'transformName' | 'transformType'> = {}): string {\n return getFunctionParams(this.#params, { type: 'call', transformName, transformType })\n }\n\n toObject(): string {\n return getFunctionParams(this.#params, { type: 'object' })\n }\n toObjectValue(): string {\n return getFunctionParams(this.#params, { type: 'objectValue' })\n }\n\n toConstructor(): string {\n return getFunctionParams(this.#params, { type: 'constructor' })\n }\n}\n","// import './globals.ts'\nimport * as React from 'react'\n\nexport type { Fabric } from '@kubb/fabric-core'\n// expose fabric core helpers\nexport { createContext, createFabric, createFile, FileManager, FileProcessor, TreeNode, useContext } from '@kubb/fabric-core'\n\n// react helpers\nexport const useState = React.useState\nexport const useEffect = React.useEffect\nexport const useReducer = React.useReducer\nexport const useRef = React.useRef\n\nexport { App } from './components/App.tsx'\nexport { Const } from './components/Const.tsx'\nexport { File } from './components/File.tsx'\nexport { Function } from './components/Function.tsx'\n// components\nexport { Root } from './components/Root.tsx'\nexport { Type } from './components/Type.tsx'\n\n// composables\nexport { useApp } from './composables/useApp.ts'\nexport { useFile } from './composables/useFile.ts'\nexport { useLifecycle } from './composables/useLifecycle.tsx'\n\n// factories\nexport { createReactFabric } from './createReactFabric.ts'\nexport { openDevtools } from './devtools.ts'\nexport { Runtime } from './Runtime.tsx'\n// utils\nexport { createFunctionParams, FunctionParams } from './utils/getFunctionParams.ts'\n"],"mappings":"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"}
package/dist/index.d.cts CHANGED
@@ -1,8 +1,8 @@
1
- import { a as Key, b as __name, g as FunctionParams, h as types_d_exports, o as KubbElement, u as KubbNode, y as createFunctionParams } from "./types-J_S-h-Ae.cjs";
2
- import { t as Options$1 } from "./reactPlugin-I53HUDXu.cjs";
1
+ import { b as __name, c as FabricReactElement, f as Key, g as FunctionParams, h as types_d_exports, l as FabricReactNode, y as createFunctionParams } from "./types-K0AHi-aU.cjs";
2
+ import { t as Options$1 } from "./reactPlugin-fdJaWnpd.cjs";
3
3
  import * as react3 from "react";
4
4
  import { Fabric as Fabric$1, FabricConfig, FabricMode, KubbFile } from "@kubb/fabric-core/types";
5
- import { Fabric, FileManager, FileManager as FileManager$1, FileProcessor, TreeNode, createFabric, createFile, useApp, useFile } from "@kubb/fabric-core";
5
+ import { Fabric, FileManager, FileManager as FileManager$1, FileProcessor, TreeNode, TreeNode as TreeNode$1, createContext, createFabric, createFile, useApp, useContext, useFile, useLifecycle } from "@kubb/fabric-core";
6
6
 
7
7
  //#region src/components/App.d.ts
8
8
  type AppProps<TMeta extends object = object> = {
@@ -13,7 +13,7 @@ type AppProps<TMeta extends object = object> = {
13
13
  /**
14
14
  * Children nodes.
15
15
  */
16
- children?: KubbNode;
16
+ children?: FabricReactNode;
17
17
  };
18
18
  /**
19
19
  * App container containing the AppContext carrying `meta` and an `exit` hook.
@@ -21,7 +21,7 @@ type AppProps<TMeta extends object = object> = {
21
21
  declare function App<TMeta extends object = object>({
22
22
  children,
23
23
  ...props
24
- }: AppProps<TMeta>): KubbElement;
24
+ }: AppProps<TMeta>): FabricReactElement;
25
25
  declare namespace App {
26
26
  var displayName: string;
27
27
  }
@@ -52,7 +52,7 @@ type ConstProps = {
52
52
  /**
53
53
  * Children nodes.
54
54
  */
55
- children?: KubbNode;
55
+ children?: FabricReactNode;
56
56
  };
57
57
  /**
58
58
  * Generates a TypeScript constant declaration.
@@ -60,7 +60,7 @@ type ConstProps = {
60
60
  declare function Const({
61
61
  children,
62
62
  ...props
63
- }: ConstProps): KubbElement;
63
+ }: ConstProps): FabricReactElement;
64
64
  declare namespace Const {
65
65
  var displayName: string;
66
66
  }
@@ -91,7 +91,7 @@ type Props$1<TMeta> = BaseProps & {
91
91
  meta?: TMeta;
92
92
  banner?: string;
93
93
  footer?: string;
94
- children?: KubbNode;
94
+ children?: FabricReactNode;
95
95
  };
96
96
  /**
97
97
  * Adds files to the FileManager
@@ -99,7 +99,7 @@ type Props$1<TMeta> = BaseProps & {
99
99
  declare function File<TMeta extends object = object>({
100
100
  children,
101
101
  ...props
102
- }: Props$1<TMeta>): KubbElement;
102
+ }: Props$1<TMeta>): FabricReactElement;
103
103
  declare namespace File {
104
104
  var displayName: string;
105
105
  var Export: typeof FileExport;
@@ -108,7 +108,7 @@ declare namespace File {
108
108
  }
109
109
  type FileSourceProps = Omit<KubbFile.Source, 'value'> & {
110
110
  key?: Key;
111
- children?: KubbNode;
111
+ children?: FabricReactNode;
112
112
  };
113
113
  /**
114
114
  * File.Source
@@ -119,7 +119,7 @@ type FileSourceProps = Omit<KubbFile.Source, 'value'> & {
119
119
  declare function FileSource({
120
120
  children,
121
121
  ...props
122
- }: FileSourceProps): KubbElement;
122
+ }: FileSourceProps): FabricReactElement;
123
123
  declare namespace FileSource {
124
124
  var displayName: string;
125
125
  }
@@ -132,7 +132,7 @@ type FileExportProps = KubbFile.Export & {
132
132
  * Declares an export entry for the current file. This will be collected by
133
133
  * the FileCollector for later emission.
134
134
  */
135
- declare function FileExport(props: FileExportProps): KubbElement;
135
+ declare function FileExport(props: FileExportProps): FabricReactElement;
136
136
  declare namespace FileExport {
137
137
  var displayName: string;
138
138
  }
@@ -144,7 +144,7 @@ type FileImportProps = KubbFile.Import & {
144
144
  *
145
145
  * Declares an import entry for the current file.
146
146
  */
147
- declare function FileImport(props: FileImportProps): KubbElement;
147
+ declare function FileImport(props: FileImportProps): FabricReactElement;
148
148
  declare namespace FileImport {
149
149
  var displayName: string;
150
150
  }
@@ -188,7 +188,7 @@ type Props = {
188
188
  /**
189
189
  * Children nodes.
190
190
  */
191
- children?: KubbNode;
191
+ children?: FabricReactNode;
192
192
  };
193
193
  /**
194
194
  * Generates a TypeScript function declaration.
@@ -196,7 +196,7 @@ type Props = {
196
196
  declare function Function({
197
197
  children,
198
198
  ...props
199
- }: Props): KubbElement;
199
+ }: Props): FabricReactElement;
200
200
  declare namespace Function {
201
201
  var displayName: string;
202
202
  var Arrow: typeof ArrowFunction;
@@ -234,7 +234,7 @@ type RootProps = {
234
234
  /**
235
235
  * TreeNode representing the tree structure of the app.
236
236
  */
237
- treeNode: TreeNode<types_d_exports.ComponentNode>;
237
+ treeNode: TreeNode$1<types_d_exports.ComponentNode>;
238
238
  /**
239
239
  * FileManager instance for managing files within the app.
240
240
  */
@@ -242,7 +242,7 @@ type RootProps = {
242
242
  /**
243
243
  * Children nodes.
244
244
  */
245
- children?: KubbNode;
245
+ children?: FabricReactNode;
246
246
  };
247
247
  /**
248
248
  * This component provides the root behavior for the Fabric runtime.
@@ -253,7 +253,7 @@ declare function Root({
253
253
  treeNode,
254
254
  fileManager,
255
255
  children
256
- }: RootProps): KubbElement;
256
+ }: RootProps): FabricReactElement;
257
257
  declare namespace Root {
258
258
  var displayName: string;
259
259
  }
@@ -276,7 +276,7 @@ type TypeProps = {
276
276
  /**
277
277
  * Children nodes.
278
278
  */
279
- children?: KubbNode;
279
+ children?: FabricReactNode;
280
280
  };
281
281
  /**
282
282
  * Generates a TypeScript type declaration.
@@ -284,21 +284,11 @@ type TypeProps = {
284
284
  declare function Type({
285
285
  children,
286
286
  ...props
287
- }: TypeProps): KubbElement;
287
+ }: TypeProps): FabricReactElement;
288
288
  declare namespace Type {
289
289
  var displayName: string;
290
290
  }
291
291
  //#endregion
292
- //#region src/composables/useLifecycle.d.ts
293
- /**
294
- * Provides lifecycle helpers that integrate with the Fabric runtime. The
295
- * `exit` helper schedules a call to the RootContext exit function on the
296
- * next tick to allow React to complete its render cycle first.
297
- */
298
- declare function useLifecycle(): {
299
- exit: () => void;
300
- };
301
- //#endregion
302
292
  //#region src/createReactFabric.d.ts
303
293
  declare function createReactFabric(config?: FabricConfig<Options$1 & {
304
294
  mode?: FabricMode;
@@ -320,7 +310,7 @@ declare function openDevtools(): undefined;
320
310
  //#region src/Runtime.d.ts
321
311
  type Options = {
322
312
  fileManager: FileManager$1;
323
- treeNode?: TreeNode<types_d_exports.ComponentNode>;
313
+ treeNode?: TreeNode$1<types_d_exports.ComponentNode>;
324
314
  stdout?: NodeJS.WriteStream;
325
315
  stdin?: NodeJS.ReadStream;
326
316
  stderr?: NodeJS.WriteStream;
@@ -340,21 +330,16 @@ declare class Runtime {
340
330
  onRender: () => Promise<void>;
341
331
  onError(error: Error): void;
342
332
  onExit(error?: Error): void;
343
- render(node: KubbElement): Promise<void>;
344
- renderToString(node: KubbElement): Promise<string>;
333
+ render(node: FabricReactElement): Promise<void>;
334
+ renderToString(node: FabricReactElement): Promise<string>;
345
335
  unmount(error?: Error | number | null): void;
346
336
  waitUntilExit(): Promise<void>;
347
337
  }
348
338
  //#endregion
349
339
  //#region src/index.d.ts
350
340
  declare const useState: typeof react3.useState;
351
- declare const createContext: typeof react3.createContext;
352
- declare const createElement: typeof react3.createElement;
353
- declare const Fragment: react3.ExoticComponent<react3.FragmentProps>;
354
- declare const use: typeof react3.use;
355
- declare const useContext: typeof react3.useContext;
356
341
  declare const useEffect: typeof react3.useEffect;
357
342
  declare const useReducer: typeof react3.useReducer;
358
343
  declare const useRef: typeof react3.useRef;
359
344
  //#endregion
360
- export { App, Const, type Fabric, File, FileManager, FileProcessor, Fragment, Function, FunctionParams, Root, Runtime, Type, createContext, createElement, createFabric, createFile, createFunctionParams, createReactFabric, openDevtools, use, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };
345
+ export { App, Const, type Fabric, File, FileManager, FileProcessor, Function, FunctionParams, Root, Runtime, TreeNode, Type, createContext, createFabric, createFile, createFunctionParams, createReactFabric, openDevtools, useApp, useContext, useEffect, useFile, useLifecycle, useReducer, useRef, useState };