@kubb/fabric-core 0.1.5 → 0.1.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 (75) hide show
  1. package/dist/{App-9ie0H1SF.d.ts → App-Cplfh8QA.d.cts} +12 -12
  2. package/dist/{App-KqAHuAyU.d.cts → App-Dvetv2V_.d.ts} +12 -12
  3. package/dist/createParser-17uGjfu3.js +11 -0
  4. package/dist/createParser-17uGjfu3.js.map +1 -0
  5. package/dist/createParser-C4IkyTs5.cjs +17 -0
  6. package/dist/createParser-C4IkyTs5.cjs.map +1 -0
  7. package/dist/{defaultParser-vwyTb1XT.js → defaultParser--HzU9LPa.js} +2 -2
  8. package/dist/{defaultParser-vwyTb1XT.js.map → defaultParser--HzU9LPa.js.map} +1 -1
  9. package/dist/{defaultParser-Dl-OrbH1.cjs → defaultParser-n9VW2iVf.cjs} +2 -2
  10. package/dist/{defaultParser-Dl-OrbH1.cjs.map → defaultParser-n9VW2iVf.cjs.map} +1 -1
  11. package/dist/defineProperty-3OJdpith.js +168 -0
  12. package/dist/defineProperty-3OJdpith.js.map +1 -0
  13. package/dist/defineProperty-CjCLDutJ.cjs +201 -0
  14. package/dist/defineProperty-CjCLDutJ.cjs.map +1 -0
  15. package/dist/getRelativePath-C6lvNCs7.cjs +26 -0
  16. package/dist/getRelativePath-C6lvNCs7.cjs.map +1 -0
  17. package/dist/getRelativePath-CERJmYkp.js +19 -0
  18. package/dist/getRelativePath-CERJmYkp.js.map +1 -0
  19. package/dist/{index-BpPNNyhl.d.ts → index-Agz-2M75.d.ts} +2 -2
  20. package/dist/{index-DLITiDO5.d.cts → index-C3GyFwE1.d.cts} +2 -2
  21. package/dist/index.cjs +54 -204
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +2 -2
  24. package/dist/index.d.ts +2 -2
  25. package/dist/index.js +26 -173
  26. package/dist/index.js.map +1 -1
  27. package/dist/parsers/typescript.cjs +4 -2
  28. package/dist/parsers/typescript.d.cts +2 -2
  29. package/dist/parsers/typescript.d.ts +2 -2
  30. package/dist/parsers/typescript.js +4 -2
  31. package/dist/parsers.cjs +5 -3
  32. package/dist/parsers.cjs.map +1 -1
  33. package/dist/parsers.d.cts +3 -3
  34. package/dist/parsers.d.ts +3 -3
  35. package/dist/parsers.js +5 -3
  36. package/dist/parsers.js.map +1 -1
  37. package/dist/plugins.cjs +207 -19
  38. package/dist/plugins.cjs.map +1 -1
  39. package/dist/plugins.d.cts +29 -6
  40. package/dist/plugins.d.ts +29 -6
  41. package/dist/plugins.js +194 -6
  42. package/dist/plugins.js.map +1 -1
  43. package/dist/{chunk-CUT6urMc.cjs → trimExtName-Bb4zGVF1.cjs} +14 -1
  44. package/dist/trimExtName-Bb4zGVF1.cjs.map +1 -0
  45. package/dist/trimExtName-CeOVQVbu.js +8 -0
  46. package/dist/trimExtName-CeOVQVbu.js.map +1 -0
  47. package/dist/types.d.cts +2 -2
  48. package/dist/types.d.ts +2 -2
  49. package/dist/{typescriptParser-Dk1rwKyJ.d.ts → typescriptParser-B49WHoGL.d.ts} +2 -2
  50. package/dist/{typescriptParser-JawJ8wET.cjs → typescriptParser-CNHO6H2_.cjs} +10 -24
  51. package/dist/typescriptParser-CNHO6H2_.cjs.map +1 -0
  52. package/dist/{typescriptParser-CrzOv_Aw.js → typescriptParser-CWT7zCJy.js} +5 -18
  53. package/dist/typescriptParser-CWT7zCJy.js.map +1 -0
  54. package/dist/{typescriptParser-Du4RIToQ.d.cts → typescriptParser-CxGhFQXh.d.cts} +2 -2
  55. package/package.json +1 -1
  56. package/src/App.ts +19 -25
  57. package/src/FileManager.ts +8 -1
  58. package/src/FileProcessor.ts +7 -1
  59. package/src/defineApp.ts +2 -7
  60. package/src/parsers/createParser.ts +1 -1
  61. package/src/parsers/types.ts +2 -2
  62. package/src/plugins/barrelPlugin.ts +189 -0
  63. package/src/plugins/createPlugin.ts +1 -1
  64. package/src/plugins/fsPlugin.ts +5 -7
  65. package/src/plugins/index.ts +1 -0
  66. package/src/plugins/types.ts +3 -3
  67. package/src/utils/AsyncEventEmitter.ts +8 -0
  68. package/src/utils/EventEmitter.ts +8 -0
  69. package/src/utils/TreeNode.ts +118 -0
  70. package/dist/createParser-B_RpW6sx.js +0 -17
  71. package/dist/createParser-B_RpW6sx.js.map +0 -1
  72. package/dist/createParser-DZB5qExa.cjs +0 -29
  73. package/dist/createParser-DZB5qExa.cjs.map +0 -1
  74. package/dist/typescriptParser-CrzOv_Aw.js.map +0 -1
  75. package/dist/typescriptParser-JawJ8wET.cjs.map +0 -1
@@ -116,10 +116,10 @@ type ResolvedFile<TMeta$1 extends object = object> = File<TMeta$1> & {
116
116
  };
117
117
  //#endregion
118
118
  //#region src/plugins/types.d.ts
119
- type Plugin<TOptions = any[], TAppExtension$1 extends Record<string, any> = {}> = {
119
+ type Plugin<TOptions = unknown, TAppExtension$1 extends Record<string, any> = {}> = {
120
120
  name: string;
121
121
  type: 'plugin';
122
- install: Install<TOptions> | Promise<Install<TOptions>>;
122
+ install: Install<TOptions>;
123
123
  /**
124
124
  * Runtime app overrides or extensions.
125
125
  * Merged into the app instance after install.
@@ -127,13 +127,13 @@ type Plugin<TOptions = any[], TAppExtension$1 extends Record<string, any> = {}>
127
127
  */
128
128
  inject?: Inject<TOptions, TAppExtension$1>;
129
129
  };
130
- type UserPlugin<TOptions = any[], TAppExtension$1 extends Record<string, any> = {}> = Omit<Plugin<TOptions, TAppExtension$1>, 'type'>;
130
+ type UserPlugin<TOptions = unknown, TAppExtension$1 extends Record<string, any> = {}> = Omit<Plugin<TOptions, TAppExtension$1>, 'type'>;
131
131
  //#endregion
132
132
  //#region src/parsers/types.d.ts
133
133
  type PrintOptions = {
134
134
  extname?: Extname;
135
135
  };
136
- type Parser<TOptions = any[], TMeta$1 extends object = any> = {
136
+ type Parser<TOptions = unknown, TMeta$1 extends object = any> = {
137
137
  name: string;
138
138
  type: 'parser';
139
139
  /**
@@ -146,7 +146,7 @@ type Parser<TOptions = any[], TMeta$1 extends object = any> = {
146
146
  */
147
147
  parse(file: ResolvedFile<TMeta$1>, options: PrintOptions): Promise<string>;
148
148
  };
149
- type UserParser<TOptions = any[], TMeta$1 extends object = any> = Omit<Parser<TOptions, TMeta$1>, 'type'>;
149
+ type UserParser<TOptions = unknown, TMeta$1 extends object = any> = Omit<Parser<TOptions, TMeta$1>, 'type'>;
150
150
  //#endregion
151
151
  //#region src/utils/AsyncEventEmitter.d.ts
152
152
  declare class AsyncEventEmitter<TEvents extends Record<string, any>> {
@@ -154,6 +154,7 @@ declare class AsyncEventEmitter<TEvents extends Record<string, any>> {
154
154
  constructor(maxListener?: number);
155
155
  emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArgs: TEvents[TEventName]): Promise<void>;
156
156
  on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
157
+ onOnce<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArgs: TEvents[TEventName]) => void): void;
157
158
  off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
158
159
  removeAll(): void;
159
160
  }
@@ -194,6 +195,7 @@ type Options = {
194
195
  };
195
196
  declare class FileManager {
196
197
  #private;
198
+ events: AsyncEventEmitter<AppEvents>;
197
199
  processor: FileProcessor;
198
200
  constructor({
199
201
  events
@@ -276,17 +278,15 @@ type AppContext<TOptions = unknown> = {
276
278
  installedPlugins: Set<Plugin>;
277
279
  installedParsers: Set<Parser>;
278
280
  };
279
- type Install<TOptions = any[] | object | undefined> = TOptions extends any[] ? (app: App, ...options: TOptions) => void : TOptions extends object ? (app: App, options?: TOptions) => void : (app: App) => void;
280
- type Inject<TOptions = any[] | object | undefined, TAppExtension$1 extends Record<string, any> = {}> = TOptions extends any[] ? (app: App, ...options: TOptions) => Partial<TAppExtension$1> : TOptions extends object ? (app: App, options?: TOptions) => Partial<TAppExtension$1> : (app: App) => Partial<TAppExtension$1>;
281
+ type AllOptional<T> = {} extends T ? true : false;
282
+ type Install<TOptions = unknown> = TOptions extends any[] ? (app: App, ...options: TOptions) => void | Promise<void> : AllOptional<TOptions> extends true ? (app: App, options: TOptions | undefined) => void | Promise<void> : (app: App, options: TOptions) => void | Promise<void>;
283
+ type Inject<TOptions = unknown, TAppExtension$1 extends Record<string, any> = {}> = TOptions extends any[] ? (app: App, ...options: TOptions) => Partial<TAppExtension$1> : AllOptional<TOptions> extends true ? (app: App, options: TOptions | undefined) => Partial<TAppExtension$1> : (app: App, options: TOptions) => Partial<TAppExtension$1>;
281
284
  interface App<TOptions = unknown> extends Kubb.App {
282
285
  context: AppContext<TOptions>;
283
286
  files: Array<ResolvedFile>;
284
- use<TOptions extends any[] | object = any, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TOptions, TAppExtension> | Parser<TOptions, TMeta>, ...options: TOptions extends any[] ? NoInfer<TOptions> : [NoInfer<TOptions>]): this & TAppExtension;
285
- use<TOptions extends any[] | object = any, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TOptions, TAppExtension> | Parser<TOptions, TMeta>): this & TAppExtension;
286
- use<TOptions extends any[] | object = any, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TOptions, TAppExtension> | Parser<TOptions, TMeta>, ...options: TOptions extends any[] ? NoInfer<TOptions> : [NoInfer<TOptions>]): Promise<this & TAppExtension>;
287
- use<TOptions extends any[] | object = any, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TOptions, TAppExtension> | Parser<TOptions, TMeta>): Promise<this & TAppExtension>;
287
+ use<TPluginOptions = unknown, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TPluginOptions, TAppExtension> | Parser<TPluginOptions, TMeta>, ...options: TPluginOptions extends any[] ? NoInfer<TPluginOptions> : AllOptional<TPluginOptions> extends true ? [NoInfer<TPluginOptions>?] : [NoInfer<TPluginOptions>]): (this & TAppExtension) | Promise<this & TAppExtension>;
288
288
  addFile(...files: Array<File>): Promise<void>;
289
289
  }
290
290
  //#endregion
291
291
  export { FileProcessor as a, Plugin as c, File as d, KubbFile_d_exports as f, FileManager as i, UserPlugin as l, AppContext as n, Parser as o, ResolvedFile as p, Component as r, UserParser as s, App as t, Extname as u };
292
- //# sourceMappingURL=App-9ie0H1SF.d.ts.map
292
+ //# sourceMappingURL=App-Cplfh8QA.d.cts.map
@@ -116,10 +116,10 @@ type ResolvedFile<TMeta$1 extends object = object> = File<TMeta$1> & {
116
116
  };
117
117
  //#endregion
118
118
  //#region src/plugins/types.d.ts
119
- type Plugin<TOptions = any[], TAppExtension$1 extends Record<string, any> = {}> = {
119
+ type Plugin<TOptions = unknown, TAppExtension$1 extends Record<string, any> = {}> = {
120
120
  name: string;
121
121
  type: 'plugin';
122
- install: Install<TOptions> | Promise<Install<TOptions>>;
122
+ install: Install<TOptions>;
123
123
  /**
124
124
  * Runtime app overrides or extensions.
125
125
  * Merged into the app instance after install.
@@ -127,13 +127,13 @@ type Plugin<TOptions = any[], TAppExtension$1 extends Record<string, any> = {}>
127
127
  */
128
128
  inject?: Inject<TOptions, TAppExtension$1>;
129
129
  };
130
- type UserPlugin<TOptions = any[], TAppExtension$1 extends Record<string, any> = {}> = Omit<Plugin<TOptions, TAppExtension$1>, 'type'>;
130
+ type UserPlugin<TOptions = unknown, TAppExtension$1 extends Record<string, any> = {}> = Omit<Plugin<TOptions, TAppExtension$1>, 'type'>;
131
131
  //#endregion
132
132
  //#region src/parsers/types.d.ts
133
133
  type PrintOptions = {
134
134
  extname?: Extname;
135
135
  };
136
- type Parser<TOptions = any[], TMeta$1 extends object = any> = {
136
+ type Parser<TOptions = unknown, TMeta$1 extends object = any> = {
137
137
  name: string;
138
138
  type: 'parser';
139
139
  /**
@@ -146,7 +146,7 @@ type Parser<TOptions = any[], TMeta$1 extends object = any> = {
146
146
  */
147
147
  parse(file: ResolvedFile<TMeta$1>, options: PrintOptions): Promise<string>;
148
148
  };
149
- type UserParser<TOptions = any[], TMeta$1 extends object = any> = Omit<Parser<TOptions, TMeta$1>, 'type'>;
149
+ type UserParser<TOptions = unknown, TMeta$1 extends object = any> = Omit<Parser<TOptions, TMeta$1>, 'type'>;
150
150
  //#endregion
151
151
  //#region src/utils/AsyncEventEmitter.d.ts
152
152
  declare class AsyncEventEmitter<TEvents extends Record<string, any>> {
@@ -154,6 +154,7 @@ declare class AsyncEventEmitter<TEvents extends Record<string, any>> {
154
154
  constructor(maxListener?: number);
155
155
  emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArgs: TEvents[TEventName]): Promise<void>;
156
156
  on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
157
+ onOnce<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArgs: TEvents[TEventName]) => void): void;
157
158
  off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
158
159
  removeAll(): void;
159
160
  }
@@ -194,6 +195,7 @@ type Options = {
194
195
  };
195
196
  declare class FileManager {
196
197
  #private;
198
+ events: AsyncEventEmitter<AppEvents>;
197
199
  processor: FileProcessor;
198
200
  constructor({
199
201
  events
@@ -276,17 +278,15 @@ type AppContext<TOptions = unknown> = {
276
278
  installedPlugins: Set<Plugin>;
277
279
  installedParsers: Set<Parser>;
278
280
  };
279
- type Install<TOptions = any[] | object | undefined> = TOptions extends any[] ? (app: App, ...options: TOptions) => void : TOptions extends object ? (app: App, options?: TOptions) => void : (app: App) => void;
280
- type Inject<TOptions = any[] | object | undefined, TAppExtension$1 extends Record<string, any> = {}> = TOptions extends any[] ? (app: App, ...options: TOptions) => Partial<TAppExtension$1> : TOptions extends object ? (app: App, options?: TOptions) => Partial<TAppExtension$1> : (app: App) => Partial<TAppExtension$1>;
281
+ type AllOptional<T> = {} extends T ? true : false;
282
+ type Install<TOptions = unknown> = TOptions extends any[] ? (app: App, ...options: TOptions) => void | Promise<void> : AllOptional<TOptions> extends true ? (app: App, options: TOptions | undefined) => void | Promise<void> : (app: App, options: TOptions) => void | Promise<void>;
283
+ type Inject<TOptions = unknown, TAppExtension$1 extends Record<string, any> = {}> = TOptions extends any[] ? (app: App, ...options: TOptions) => Partial<TAppExtension$1> : AllOptional<TOptions> extends true ? (app: App, options: TOptions | undefined) => Partial<TAppExtension$1> : (app: App, options: TOptions) => Partial<TAppExtension$1>;
281
284
  interface App<TOptions = unknown> extends Kubb.App {
282
285
  context: AppContext<TOptions>;
283
286
  files: Array<ResolvedFile>;
284
- use<TOptions extends any[] | object = any, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TOptions, TAppExtension> | Parser<TOptions, TMeta>, ...options: TOptions extends any[] ? NoInfer<TOptions> : [NoInfer<TOptions>]): this & TAppExtension;
285
- use<TOptions extends any[] | object = any, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TOptions, TAppExtension> | Parser<TOptions, TMeta>): this & TAppExtension;
286
- use<TOptions extends any[] | object = any, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TOptions, TAppExtension> | Parser<TOptions, TMeta>, ...options: TOptions extends any[] ? NoInfer<TOptions> : [NoInfer<TOptions>]): Promise<this & TAppExtension>;
287
- use<TOptions extends any[] | object = any, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TOptions, TAppExtension> | Parser<TOptions, TMeta>): Promise<this & TAppExtension>;
287
+ use<TPluginOptions = unknown, TMeta extends object = object, TAppExtension extends Record<string, any> = {}>(pluginOrParser: Plugin<TPluginOptions, TAppExtension> | Parser<TPluginOptions, TMeta>, ...options: TPluginOptions extends any[] ? NoInfer<TPluginOptions> : AllOptional<TPluginOptions> extends true ? [NoInfer<TPluginOptions>?] : [NoInfer<TPluginOptions>]): (this & TAppExtension) | Promise<this & TAppExtension>;
288
288
  addFile(...files: Array<File>): Promise<void>;
289
289
  }
290
290
  //#endregion
291
291
  export { FileProcessor as a, Plugin as c, File as d, KubbFile_d_exports as f, FileManager as i, UserPlugin as l, AppContext as n, Parser as o, ResolvedFile as p, Component as r, UserParser as s, App as t, Extname as u };
292
- //# sourceMappingURL=App-KqAHuAyU.d.cts.map
292
+ //# sourceMappingURL=App-Dvetv2V_.d.ts.map
@@ -0,0 +1,11 @@
1
+ //#region src/parsers/createParser.ts
2
+ function createParser(parser) {
3
+ return {
4
+ type: "parser",
5
+ ...parser
6
+ };
7
+ }
8
+
9
+ //#endregion
10
+ export { createParser as t };
11
+ //# sourceMappingURL=createParser-17uGjfu3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createParser-17uGjfu3.js","names":[],"sources":["../src/parsers/createParser.ts"],"sourcesContent":["import type { Parser, UserParser } from './types.ts'\n\nexport function createParser<TOptions = unknown, TMeta extends object = any>(parser: UserParser<TOptions, TMeta>): Parser<TOptions, TMeta> {\n return {\n type: 'parser',\n ...parser,\n }\n}\n"],"mappings":";AAEA,SAAgB,aAA6D,QAA8D;AACzI,QAAO;EACL,MAAM;EACN,GAAG;EACJ"}
@@ -0,0 +1,17 @@
1
+
2
+ //#region src/parsers/createParser.ts
3
+ function createParser(parser) {
4
+ return {
5
+ type: "parser",
6
+ ...parser
7
+ };
8
+ }
9
+
10
+ //#endregion
11
+ Object.defineProperty(exports, 'createParser', {
12
+ enumerable: true,
13
+ get: function () {
14
+ return createParser;
15
+ }
16
+ });
17
+ //# sourceMappingURL=createParser-C4IkyTs5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createParser-C4IkyTs5.cjs","names":[],"sources":["../src/parsers/createParser.ts"],"sourcesContent":["import type { Parser, UserParser } from './types.ts'\n\nexport function createParser<TOptions = unknown, TMeta extends object = any>(parser: UserParser<TOptions, TMeta>): Parser<TOptions, TMeta> {\n return {\n type: 'parser',\n ...parser,\n }\n}\n"],"mappings":";;AAEA,SAAgB,aAA6D,QAA8D;AACzI,QAAO;EACL,MAAM;EACN,GAAG;EACJ"}
@@ -1,4 +1,4 @@
1
- import { t as createParser } from "./createParser-B_RpW6sx.js";
1
+ import { t as createParser } from "./createParser-17uGjfu3.js";
2
2
 
3
3
  //#region src/parsers/defaultParser.ts
4
4
  const defaultParser = createParser({
@@ -12,4 +12,4 @@ const defaultParser = createParser({
12
12
 
13
13
  //#endregion
14
14
  export { defaultParser as t };
15
- //# sourceMappingURL=defaultParser-vwyTb1XT.js.map
15
+ //# sourceMappingURL=defaultParser--HzU9LPa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultParser-vwyTb1XT.js","names":[],"sources":["../src/parsers/defaultParser.ts"],"sourcesContent":["import { createParser } from './createParser.ts'\n\nexport const defaultParser = createParser({\n name: 'default',\n extNames: ['.json'],\n install() {},\n async parse(file) {\n return file.sources.map((item) => item.value).join('\\n\\n')\n },\n})\n"],"mappings":";;;AAEA,MAAa,gBAAgB,aAAa;CACxC,MAAM;CACN,UAAU,CAAC,QAAQ;CACnB,UAAU;CACV,MAAM,MAAM,MAAM;AAChB,SAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,MAAM,CAAC,KAAK,OAAO;;CAE7D,CAAC"}
1
+ {"version":3,"file":"defaultParser--HzU9LPa.js","names":[],"sources":["../src/parsers/defaultParser.ts"],"sourcesContent":["import { createParser } from './createParser.ts'\n\nexport const defaultParser = createParser({\n name: 'default',\n extNames: ['.json'],\n install() {},\n async parse(file) {\n return file.sources.map((item) => item.value).join('\\n\\n')\n },\n})\n"],"mappings":";;;AAEA,MAAa,gBAAgB,aAAa;CACxC,MAAM;CACN,UAAU,CAAC,QAAQ;CACnB,UAAU;CACV,MAAM,MAAM,MAAM;AAChB,SAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,MAAM,CAAC,KAAK,OAAO;;CAE7D,CAAC"}
@@ -1,4 +1,4 @@
1
- const require_createParser = require('./createParser-DZB5qExa.cjs');
1
+ const require_createParser = require('./createParser-C4IkyTs5.cjs');
2
2
 
3
3
  //#region src/parsers/defaultParser.ts
4
4
  const defaultParser = require_createParser.createParser({
@@ -17,4 +17,4 @@ Object.defineProperty(exports, 'defaultParser', {
17
17
  return defaultParser;
18
18
  }
19
19
  });
20
- //# sourceMappingURL=defaultParser-Dl-OrbH1.cjs.map
20
+ //# sourceMappingURL=defaultParser-n9VW2iVf.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultParser-Dl-OrbH1.cjs","names":["createParser"],"sources":["../src/parsers/defaultParser.ts"],"sourcesContent":["import { createParser } from './createParser.ts'\n\nexport const defaultParser = createParser({\n name: 'default',\n extNames: ['.json'],\n install() {},\n async parse(file) {\n return file.sources.map((item) => item.value).join('\\n\\n')\n },\n})\n"],"mappings":";;;AAEA,MAAa,gBAAgBA,kCAAa;CACxC,MAAM;CACN,UAAU,CAAC,QAAQ;CACnB,UAAU;CACV,MAAM,MAAM,MAAM;AAChB,SAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,MAAM,CAAC,KAAK,OAAO;;CAE7D,CAAC"}
1
+ {"version":3,"file":"defaultParser-n9VW2iVf.cjs","names":["createParser"],"sources":["../src/parsers/defaultParser.ts"],"sourcesContent":["import { createParser } from './createParser.ts'\n\nexport const defaultParser = createParser({\n name: 'default',\n extNames: ['.json'],\n install() {},\n async parse(file) {\n return file.sources.map((item) => item.value).join('\\n\\n')\n },\n})\n"],"mappings":";;;AAEA,MAAa,gBAAgBA,kCAAa;CACxC,MAAM;CACN,UAAU,CAAC,QAAQ;CACnB,UAAU;CACV,MAAM,MAAM,MAAM;AAChB,SAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,MAAM,CAAC,KAAK,OAAO;;CAE7D,CAAC"}
@@ -0,0 +1,168 @@
1
+ import { t as trimExtName } from "./trimExtName-CeOVQVbu.js";
2
+ import { orderBy } from "natural-orderby";
3
+ import { createHash } from "node:crypto";
4
+ import path from "node:path";
5
+ import { isDeepEqual, uniqueBy } from "remeda";
6
+
7
+ //#region \0@oxc-project+runtime@0.95.0/helpers/checkPrivateRedeclaration.js
8
+ function _checkPrivateRedeclaration(e, t) {
9
+ if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object");
10
+ }
11
+
12
+ //#endregion
13
+ //#region \0@oxc-project+runtime@0.95.0/helpers/classPrivateFieldInitSpec.js
14
+ function _classPrivateFieldInitSpec(e, t, a) {
15
+ _checkPrivateRedeclaration(e, t), t.set(e, a);
16
+ }
17
+
18
+ //#endregion
19
+ //#region \0@oxc-project+runtime@0.95.0/helpers/assertClassBrand.js
20
+ function _assertClassBrand(e, t, n) {
21
+ if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
22
+ throw new TypeError("Private element is not present on this object");
23
+ }
24
+
25
+ //#endregion
26
+ //#region \0@oxc-project+runtime@0.95.0/helpers/classPrivateFieldGet2.js
27
+ function _classPrivateFieldGet2(s, a) {
28
+ return s.get(_assertClassBrand(s, a));
29
+ }
30
+
31
+ //#endregion
32
+ //#region src/createFile.ts
33
+ function hashObject(obj) {
34
+ const str = JSON.stringify(obj, Object.keys(obj).sort());
35
+ return createHash("sha256").update(str).digest("hex");
36
+ }
37
+ function combineSources(sources) {
38
+ return uniqueBy(sources, (obj) => [
39
+ obj.name,
40
+ obj.isExportable,
41
+ obj.isTypeOnly
42
+ ]);
43
+ }
44
+ function combineExports(exports) {
45
+ return orderBy(exports, [
46
+ (v) => !!Array.isArray(v.name),
47
+ (v) => !v.isTypeOnly,
48
+ (v) => v.path,
49
+ (v) => !!v.name,
50
+ (v) => Array.isArray(v.name) ? orderBy(v.name) : v.name
51
+ ]).reduce((prev, curr) => {
52
+ const name = curr.name;
53
+ const prevByPath = prev.findLast((imp) => imp.path === curr.path);
54
+ if (prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)) return prev;
55
+ if (prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias) || Array.isArray(name) && !name.length || (prevByPath === null || prevByPath === void 0 ? void 0 : prevByPath.asAlias) && !curr.asAlias) return prev;
56
+ if (!prevByPath) return [...prev, {
57
+ ...curr,
58
+ name: Array.isArray(name) ? [...new Set(name)] : name
59
+ }];
60
+ if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {
61
+ prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])];
62
+ return prev;
63
+ }
64
+ return [...prev, curr];
65
+ }, []);
66
+ }
67
+ function combineImports(imports, exports, source) {
68
+ return orderBy(imports, [
69
+ (v) => !!Array.isArray(v.name),
70
+ (v) => !v.isTypeOnly,
71
+ (v) => v.path,
72
+ (v) => !!v.name,
73
+ (v) => Array.isArray(v.name) ? orderBy(v.name) : v.name
74
+ ]).reduce((prev, curr) => {
75
+ let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name;
76
+ const hasImportInSource = (importName) => {
77
+ if (!source) return true;
78
+ const checker = (name$1) => {
79
+ return name$1 && source.includes(name$1);
80
+ };
81
+ return checker(importName) || exports.some(({ name: name$1 }) => Array.isArray(name$1) ? name$1.some(checker) : checker(name$1));
82
+ };
83
+ if (curr.path === curr.root) return prev;
84
+ if (Array.isArray(name)) name = name.filter((item) => typeof item === "string" ? hasImportInSource(item) : hasImportInSource(item.propertyName));
85
+ const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly);
86
+ const uniquePrev = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly);
87
+ if (prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)) return prev;
88
+ if (uniquePrev || Array.isArray(name) && !name.length) return prev;
89
+ if (!prevByPath) return [...prev, {
90
+ ...curr,
91
+ name
92
+ }];
93
+ if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {
94
+ prevByPath.name = [...new Set([...prevByPath.name, ...name])];
95
+ return prev;
96
+ }
97
+ if (!Array.isArray(name) && name && !hasImportInSource(name)) return prev;
98
+ return [...prev, curr];
99
+ }, []);
100
+ }
101
+ /**
102
+ * Helper to create a file with name and id set
103
+ */
104
+ function createFile(file) {
105
+ var _file$exports, _file$imports, _file$sources;
106
+ const extname = path.extname(file.baseName);
107
+ if (!extname) throw new Error(`No extname found for ${file.baseName}`);
108
+ const source = file.sources.map((item) => item.value).join("\n\n");
109
+ const exports = ((_file$exports = file.exports) === null || _file$exports === void 0 ? void 0 : _file$exports.length) ? combineExports(file.exports) : [];
110
+ const imports = ((_file$imports = file.imports) === null || _file$imports === void 0 ? void 0 : _file$imports.length) && source ? combineImports(file.imports, exports, source) : [];
111
+ const sources = ((_file$sources = file.sources) === null || _file$sources === void 0 ? void 0 : _file$sources.length) ? combineSources(file.sources) : [];
112
+ return {
113
+ ...file,
114
+ id: hashObject({ path: file.path }),
115
+ name: trimExtName(file.baseName),
116
+ extname,
117
+ imports,
118
+ exports,
119
+ sources,
120
+ meta: file.meta || {}
121
+ };
122
+ }
123
+
124
+ //#endregion
125
+ //#region \0@oxc-project+runtime@0.95.0/helpers/typeof.js
126
+ function _typeof(o) {
127
+ "@babel/helpers - typeof";
128
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
129
+ return typeof o$1;
130
+ } : function(o$1) {
131
+ return o$1 && "function" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? "symbol" : typeof o$1;
132
+ }, _typeof(o);
133
+ }
134
+
135
+ //#endregion
136
+ //#region \0@oxc-project+runtime@0.95.0/helpers/toPrimitive.js
137
+ function toPrimitive(t, r) {
138
+ if ("object" != _typeof(t) || !t) return t;
139
+ var e = t[Symbol.toPrimitive];
140
+ if (void 0 !== e) {
141
+ var i = e.call(t, r || "default");
142
+ if ("object" != _typeof(i)) return i;
143
+ throw new TypeError("@@toPrimitive must return a primitive value.");
144
+ }
145
+ return ("string" === r ? String : Number)(t);
146
+ }
147
+
148
+ //#endregion
149
+ //#region \0@oxc-project+runtime@0.95.0/helpers/toPropertyKey.js
150
+ function toPropertyKey(t) {
151
+ var i = toPrimitive(t, "string");
152
+ return "symbol" == _typeof(i) ? i : i + "";
153
+ }
154
+
155
+ //#endregion
156
+ //#region \0@oxc-project+runtime@0.95.0/helpers/defineProperty.js
157
+ function _defineProperty(e, r, t) {
158
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
159
+ value: t,
160
+ enumerable: !0,
161
+ configurable: !0,
162
+ writable: !0
163
+ }) : e[r] = t, e;
164
+ }
165
+
166
+ //#endregion
167
+ export { _classPrivateFieldInitSpec as a, _assertClassBrand as i, createFile as n, _classPrivateFieldGet2 as r, _defineProperty as t };
168
+ //# sourceMappingURL=defineProperty-3OJdpith.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineProperty-3OJdpith.js","names":["name"],"sources":["../src/createFile.ts"],"sourcesContent":["import type * as KubbFile from './KubbFile.ts'\nimport { trimExtName } from './utils/trimExtName.ts'\nimport { createHash } from 'node:crypto'\nimport path from 'node:path'\nimport { isDeepEqual, uniqueBy } from 'remeda'\nimport { orderBy } from 'natural-orderby'\n\nfunction hashObject(obj: Record<string, unknown>): string {\n const str = JSON.stringify(obj, Object.keys(obj).sort())\n return createHash('sha256').update(str).digest('hex')\n}\n\nexport function combineSources(sources: Array<KubbFile.Source>): Array<KubbFile.Source> {\n return uniqueBy(sources, (obj) => [obj.name, obj.isExportable, obj.isTypeOnly] as const)\n}\n\nexport function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {\n return orderBy(exports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).reduce(\n (prev, curr) => {\n const name = curr.name\n const prevByPath = prev.findLast((imp) => imp.path === curr.path)\n const prevByPathAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (export type ...)\n return prev\n }\n\n const uniquePrev = prev.findLast(\n (imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias,\n )\n\n // we already have an item that was unique enough or name field is empty or prev asAlias is set but current has no changes\n if (uniquePrev || (Array.isArray(name) && !name.length) || (prevByPath?.asAlias && !curr.asAlias)) {\n return prev\n }\n\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name: Array.isArray(name) ? [...new Set(name)] : name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])]\n\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Export>,\n )\n}\n\nexport function combineImports(imports: Array<KubbFile.Import>, exports: Array<KubbFile.Export>, source?: string): Array<KubbFile.Import> {\n return orderBy(imports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).reduce(\n (prev, curr) => {\n let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name\n\n const hasImportInSource = (importName: string) => {\n if (!source) {\n return true\n }\n\n const checker = (name?: string) => {\n return name && source.includes(name)\n }\n\n return checker(importName) || exports.some(({ name }) => (Array.isArray(name) ? name.some(checker) : checker(name)))\n }\n\n if (curr.path === curr.root) {\n // root and path are the same file, remove the \"./\" import\n return prev\n }\n\n // merge all names and check if the importName is being used in the generated source and if not filter those imports out\n if (Array.isArray(name)) {\n name = name.filter((item) => (typeof item === 'string' ? hasImportInSource(item) : hasImportInSource(item.propertyName)))\n }\n\n const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly)\n const uniquePrev = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly)\n const prevByPathNameAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathNameAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (import type ...)\n return prev\n }\n\n // already unique enough or name is empty\n if (uniquePrev || (Array.isArray(name) && !name.length)) {\n return prev\n }\n\n // new item, append name\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...name])]\n\n return prev\n }\n\n // no import was found in the source, ignore import\n if (!Array.isArray(name) && name && !hasImportInSource(name)) {\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Import>,\n )\n}\n\n/**\n * Helper to create a file with name and id set\n */\nexport function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta> {\n const extname = path.extname(file.baseName) as KubbFile.Extname\n if (!extname) {\n throw new Error(`No extname found for ${file.baseName}`)\n }\n\n const source = file.sources.map((item) => item.value).join('\\n\\n')\n const exports = file.exports?.length ? combineExports(file.exports) : []\n const imports = file.imports?.length && source ? combineImports(file.imports, exports, source) : []\n const sources = file.sources?.length ? combineSources(file.sources) : []\n\n return {\n ...file,\n id: hashObject({ path: file.path }),\n name: trimExtName(file.baseName),\n extname,\n imports: imports,\n exports: exports,\n sources: sources,\n meta: file.meta || ({} as TMeta),\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ const require_trimExtName = require('./trimExtName-Bb4zGVF1.cjs');
2
+ let natural_orderby = require("natural-orderby");
3
+ natural_orderby = require_trimExtName.__toESM(natural_orderby);
4
+ let node_crypto = require("node:crypto");
5
+ node_crypto = require_trimExtName.__toESM(node_crypto);
6
+ let node_path = require("node:path");
7
+ node_path = require_trimExtName.__toESM(node_path);
8
+ let remeda = require("remeda");
9
+ remeda = require_trimExtName.__toESM(remeda);
10
+
11
+ //#region \0@oxc-project+runtime@0.95.0/helpers/checkPrivateRedeclaration.js
12
+ function _checkPrivateRedeclaration(e, t) {
13
+ if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object");
14
+ }
15
+
16
+ //#endregion
17
+ //#region \0@oxc-project+runtime@0.95.0/helpers/classPrivateFieldInitSpec.js
18
+ function _classPrivateFieldInitSpec(e, t, a) {
19
+ _checkPrivateRedeclaration(e, t), t.set(e, a);
20
+ }
21
+
22
+ //#endregion
23
+ //#region \0@oxc-project+runtime@0.95.0/helpers/assertClassBrand.js
24
+ function _assertClassBrand(e, t, n) {
25
+ if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
26
+ throw new TypeError("Private element is not present on this object");
27
+ }
28
+
29
+ //#endregion
30
+ //#region \0@oxc-project+runtime@0.95.0/helpers/classPrivateFieldGet2.js
31
+ function _classPrivateFieldGet2(s, a) {
32
+ return s.get(_assertClassBrand(s, a));
33
+ }
34
+
35
+ //#endregion
36
+ //#region src/createFile.ts
37
+ function hashObject(obj) {
38
+ const str = JSON.stringify(obj, Object.keys(obj).sort());
39
+ return (0, node_crypto.createHash)("sha256").update(str).digest("hex");
40
+ }
41
+ function combineSources(sources) {
42
+ return (0, remeda.uniqueBy)(sources, (obj) => [
43
+ obj.name,
44
+ obj.isExportable,
45
+ obj.isTypeOnly
46
+ ]);
47
+ }
48
+ function combineExports(exports$1) {
49
+ return (0, natural_orderby.orderBy)(exports$1, [
50
+ (v) => !!Array.isArray(v.name),
51
+ (v) => !v.isTypeOnly,
52
+ (v) => v.path,
53
+ (v) => !!v.name,
54
+ (v) => Array.isArray(v.name) ? (0, natural_orderby.orderBy)(v.name) : v.name
55
+ ]).reduce((prev, curr) => {
56
+ const name = curr.name;
57
+ const prevByPath = prev.findLast((imp) => imp.path === curr.path);
58
+ if (prev.findLast((imp) => imp.path === curr.path && (0, remeda.isDeepEqual)(imp.name, name) && imp.isTypeOnly)) return prev;
59
+ if (prev.findLast((imp) => imp.path === curr.path && (0, remeda.isDeepEqual)(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias) || Array.isArray(name) && !name.length || (prevByPath === null || prevByPath === void 0 ? void 0 : prevByPath.asAlias) && !curr.asAlias) return prev;
60
+ if (!prevByPath) return [...prev, {
61
+ ...curr,
62
+ name: Array.isArray(name) ? [...new Set(name)] : name
63
+ }];
64
+ if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {
65
+ prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])];
66
+ return prev;
67
+ }
68
+ return [...prev, curr];
69
+ }, []);
70
+ }
71
+ function combineImports(imports, exports$1, source) {
72
+ return (0, natural_orderby.orderBy)(imports, [
73
+ (v) => !!Array.isArray(v.name),
74
+ (v) => !v.isTypeOnly,
75
+ (v) => v.path,
76
+ (v) => !!v.name,
77
+ (v) => Array.isArray(v.name) ? (0, natural_orderby.orderBy)(v.name) : v.name
78
+ ]).reduce((prev, curr) => {
79
+ let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name;
80
+ const hasImportInSource = (importName) => {
81
+ if (!source) return true;
82
+ const checker = (name$1) => {
83
+ return name$1 && source.includes(name$1);
84
+ };
85
+ return checker(importName) || exports$1.some(({ name: name$1 }) => Array.isArray(name$1) ? name$1.some(checker) : checker(name$1));
86
+ };
87
+ if (curr.path === curr.root) return prev;
88
+ if (Array.isArray(name)) name = name.filter((item) => typeof item === "string" ? hasImportInSource(item) : hasImportInSource(item.propertyName));
89
+ const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly);
90
+ const uniquePrev = prev.findLast((imp) => imp.path === curr.path && (0, remeda.isDeepEqual)(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly);
91
+ if (prev.findLast((imp) => imp.path === curr.path && (0, remeda.isDeepEqual)(imp.name, name) && imp.isTypeOnly)) return prev;
92
+ if (uniquePrev || Array.isArray(name) && !name.length) return prev;
93
+ if (!prevByPath) return [...prev, {
94
+ ...curr,
95
+ name
96
+ }];
97
+ if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {
98
+ prevByPath.name = [...new Set([...prevByPath.name, ...name])];
99
+ return prev;
100
+ }
101
+ if (!Array.isArray(name) && name && !hasImportInSource(name)) return prev;
102
+ return [...prev, curr];
103
+ }, []);
104
+ }
105
+ /**
106
+ * Helper to create a file with name and id set
107
+ */
108
+ function createFile(file) {
109
+ var _file$exports, _file$imports, _file$sources;
110
+ const extname = node_path.default.extname(file.baseName);
111
+ if (!extname) throw new Error(`No extname found for ${file.baseName}`);
112
+ const source = file.sources.map((item) => item.value).join("\n\n");
113
+ const exports$1 = ((_file$exports = file.exports) === null || _file$exports === void 0 ? void 0 : _file$exports.length) ? combineExports(file.exports) : [];
114
+ const imports = ((_file$imports = file.imports) === null || _file$imports === void 0 ? void 0 : _file$imports.length) && source ? combineImports(file.imports, exports$1, source) : [];
115
+ const sources = ((_file$sources = file.sources) === null || _file$sources === void 0 ? void 0 : _file$sources.length) ? combineSources(file.sources) : [];
116
+ return {
117
+ ...file,
118
+ id: hashObject({ path: file.path }),
119
+ name: require_trimExtName.trimExtName(file.baseName),
120
+ extname,
121
+ imports,
122
+ exports: exports$1,
123
+ sources,
124
+ meta: file.meta || {}
125
+ };
126
+ }
127
+
128
+ //#endregion
129
+ //#region \0@oxc-project+runtime@0.95.0/helpers/typeof.js
130
+ function _typeof(o) {
131
+ "@babel/helpers - typeof";
132
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
133
+ return typeof o$1;
134
+ } : function(o$1) {
135
+ return o$1 && "function" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? "symbol" : typeof o$1;
136
+ }, _typeof(o);
137
+ }
138
+
139
+ //#endregion
140
+ //#region \0@oxc-project+runtime@0.95.0/helpers/toPrimitive.js
141
+ function toPrimitive(t, r) {
142
+ if ("object" != _typeof(t) || !t) return t;
143
+ var e = t[Symbol.toPrimitive];
144
+ if (void 0 !== e) {
145
+ var i = e.call(t, r || "default");
146
+ if ("object" != _typeof(i)) return i;
147
+ throw new TypeError("@@toPrimitive must return a primitive value.");
148
+ }
149
+ return ("string" === r ? String : Number)(t);
150
+ }
151
+
152
+ //#endregion
153
+ //#region \0@oxc-project+runtime@0.95.0/helpers/toPropertyKey.js
154
+ function toPropertyKey(t) {
155
+ var i = toPrimitive(t, "string");
156
+ return "symbol" == _typeof(i) ? i : i + "";
157
+ }
158
+
159
+ //#endregion
160
+ //#region \0@oxc-project+runtime@0.95.0/helpers/defineProperty.js
161
+ function _defineProperty(e, r, t) {
162
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
163
+ value: t,
164
+ enumerable: !0,
165
+ configurable: !0,
166
+ writable: !0
167
+ }) : e[r] = t, e;
168
+ }
169
+
170
+ //#endregion
171
+ Object.defineProperty(exports, '_assertClassBrand', {
172
+ enumerable: true,
173
+ get: function () {
174
+ return _assertClassBrand;
175
+ }
176
+ });
177
+ Object.defineProperty(exports, '_classPrivateFieldGet2', {
178
+ enumerable: true,
179
+ get: function () {
180
+ return _classPrivateFieldGet2;
181
+ }
182
+ });
183
+ Object.defineProperty(exports, '_classPrivateFieldInitSpec', {
184
+ enumerable: true,
185
+ get: function () {
186
+ return _classPrivateFieldInitSpec;
187
+ }
188
+ });
189
+ Object.defineProperty(exports, '_defineProperty', {
190
+ enumerable: true,
191
+ get: function () {
192
+ return _defineProperty;
193
+ }
194
+ });
195
+ Object.defineProperty(exports, 'createFile', {
196
+ enumerable: true,
197
+ get: function () {
198
+ return createFile;
199
+ }
200
+ });
201
+ //# sourceMappingURL=defineProperty-CjCLDutJ.cjs.map