@ts-for-gir/cli 4.0.0-beta.4 → 4.0.0-beta.40

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 (63) hide show
  1. package/README.md +185 -174
  2. package/bin/ts-for-gir +20593 -0
  3. package/bin/ts-for-gir-dev +43 -0
  4. package/package.json +37 -38
  5. package/src/commands/analyze.ts +344 -0
  6. package/src/commands/command-builder.ts +30 -0
  7. package/src/commands/copy.ts +71 -76
  8. package/src/commands/doc.ts +58 -46
  9. package/src/commands/generate.ts +97 -78
  10. package/src/commands/index.ts +6 -4
  11. package/src/commands/json.ts +104 -0
  12. package/src/commands/list.ts +71 -90
  13. package/src/config/config-loader.ts +203 -0
  14. package/src/config/config-writer.ts +52 -0
  15. package/src/config/defaults.ts +61 -0
  16. package/src/config/index.ts +8 -0
  17. package/src/config/options.ts +292 -0
  18. package/src/config.ts +3 -450
  19. package/src/formatters/typescript-formatter.ts +24 -0
  20. package/src/generation-handler.ts +122 -67
  21. package/src/index.ts +4 -4
  22. package/src/module-loader/dependency-resolver.ts +100 -0
  23. package/src/module-loader/file-finder.ts +65 -0
  24. package/src/module-loader/index.ts +8 -0
  25. package/src/module-loader/module-grouper.ts +77 -0
  26. package/src/module-loader/prompt-handler.ts +111 -0
  27. package/src/module-loader.ts +289 -578
  28. package/src/start.ts +17 -14
  29. package/src/types/command-args.ts +110 -0
  30. package/src/types/command-definition.ts +17 -0
  31. package/src/types/commands.ts +30 -0
  32. package/src/types/index.ts +15 -0
  33. package/src/types/report-types.ts +34 -0
  34. package/lib/commands/copy.d.ts +0 -12
  35. package/lib/commands/copy.js +0 -80
  36. package/lib/commands/copy.js.map +0 -1
  37. package/lib/commands/doc.d.ts +0 -12
  38. package/lib/commands/doc.js +0 -40
  39. package/lib/commands/doc.js.map +0 -1
  40. package/lib/commands/generate.d.ts +0 -12
  41. package/lib/commands/generate.js +0 -73
  42. package/lib/commands/generate.js.map +0 -1
  43. package/lib/commands/index.d.ts +0 -4
  44. package/lib/commands/index.js +0 -5
  45. package/lib/commands/index.js.map +0 -1
  46. package/lib/commands/list.d.ts +0 -12
  47. package/lib/commands/list.js +0 -81
  48. package/lib/commands/list.js.map +0 -1
  49. package/lib/config.d.ts +0 -104
  50. package/lib/config.js +0 -408
  51. package/lib/config.js.map +0 -1
  52. package/lib/generation-handler.d.ts +0 -10
  53. package/lib/generation-handler.js +0 -47
  54. package/lib/generation-handler.js.map +0 -1
  55. package/lib/index.d.ts +0 -4
  56. package/lib/index.js +0 -5
  57. package/lib/index.js.map +0 -1
  58. package/lib/module-loader.d.ts +0 -148
  59. package/lib/module-loader.js +0 -468
  60. package/lib/module-loader.js.map +0 -1
  61. package/lib/start.d.ts +0 -2
  62. package/lib/start.js +0 -16
  63. package/lib/start.js.map +0 -1
package/lib/config.d.ts DELETED
@@ -1,104 +0,0 @@
1
- /**
2
- * Default values, parse the config file and handle CLI flags
3
- */
4
- import { Options } from 'yargs';
5
- import type { UserConfig, ConfigFlags, OptionsGeneration } from '@ts-for-gir/lib';
6
- export declare class Config {
7
- static appName: string;
8
- static usage: string;
9
- /**
10
- * Default cli flag and argument values
11
- */
12
- static defaults: {
13
- print: boolean;
14
- configName: string;
15
- root: string;
16
- outdir: string;
17
- girDirectories: string[];
18
- modules: string[];
19
- ignore: never[];
20
- verbose: boolean;
21
- ignoreVersionConflicts: boolean;
22
- noNamespace: boolean;
23
- noComments: boolean;
24
- noDebugComments: boolean;
25
- fixConflicts: boolean;
26
- promisify: boolean;
27
- npmScope: string;
28
- packageYarn: boolean;
29
- };
30
- static configFilePath: string;
31
- /**
32
- * CLI options used in commands/generate.ts and commands/list.ts
33
- */
34
- static options: {
35
- [name: string]: Options;
36
- };
37
- /**
38
- * CLI flags used in commands/generate.ts
39
- */
40
- static generateOptions: {
41
- modules: Options;
42
- girDirectories: Options;
43
- root: Options;
44
- outdir: Options;
45
- ignore: Options;
46
- verbose: Options;
47
- ignoreVersionConflicts: Options;
48
- print: Options;
49
- configName: Options;
50
- noNamespace: Options;
51
- noComments: Options;
52
- noDebugComments: Options;
53
- fixConflicts: Options;
54
- promisify: Options;
55
- npmScope: Options;
56
- packageYarn: Options;
57
- };
58
- static listOptions: {
59
- modules: Options;
60
- girDirectories: Options;
61
- root: Options;
62
- ignore: Options;
63
- configName: Options;
64
- verbose: Options;
65
- };
66
- static copyOptions: {
67
- modules: Options;
68
- girDirectories: Options;
69
- root: Options;
70
- outdir: Options;
71
- ignore: Options;
72
- configName: Options;
73
- verbose: Options;
74
- };
75
- static docOptions: {
76
- modules: Options;
77
- girDirectories: Options;
78
- root: Options;
79
- outdir: Options;
80
- ignore: Options;
81
- verbose: Options;
82
- ignoreVersionConflicts: Options;
83
- configName: Options;
84
- };
85
- /**
86
- * Overwrites values in the user config file
87
- * @param configsToAdd
88
- */
89
- static addToConfig(configsToAdd: Partial<UserConfig>, configName?: string): Promise<void>;
90
- /**
91
- * The user can create a `.ts-for-girrc` file for his default configs,
92
- * this method load this config file an returns the user configuration
93
- * @param configName If the user uses a custom config file name
94
- */
95
- private static loadConfigFile;
96
- static getOptionsGeneration(config: UserConfig): OptionsGeneration;
97
- static validate(config: UserConfig): UserConfig;
98
- /**
99
- * Loads the values of the config file and concatenate them with passed cli flags / arguments.
100
- * The values from config file are preferred if the cli flag value is the default (and so not set / overwritten)
101
- * @param options
102
- */
103
- static load(options: ConfigFlags): Promise<UserConfig>;
104
- }
package/lib/config.js DELETED
@@ -1,408 +0,0 @@
1
- import { cosmiconfig } from 'cosmiconfig';
2
- import { join, extname, dirname, resolve } from 'path';
3
- import { writeFile } from 'fs/promises';
4
- import { existsSync } from 'fs';
5
- import { merge, isEqual, Logger, APP_NAME, APP_USAGE, ERROR_CONFIG_EXTENSION_UNSUPPORTED } from '@ts-for-gir/lib';
6
- export class Config {
7
- static appName = APP_NAME;
8
- static usage = APP_USAGE;
9
- /**
10
- * Default cli flag and argument values
11
- */
12
- static defaults = {
13
- print: false,
14
- configName: '.ts-for-girrc.js',
15
- root: process.cwd(),
16
- outdir: './@types',
17
- girDirectories: getDefaultGirDirectories(),
18
- modules: ['*'],
19
- ignore: [],
20
- verbose: false,
21
- ignoreVersionConflicts: false,
22
- noNamespace: false,
23
- noComments: false,
24
- noDebugComments: false,
25
- fixConflicts: true,
26
- promisify: true,
27
- npmScope: '@girs',
28
- packageYarn: false,
29
- };
30
- static configFilePath = join(process.cwd(), Config.defaults.configName);
31
- /**
32
- * CLI options used in commands/generate.ts and commands/list.ts
33
- */
34
- static options = {
35
- modules: {
36
- description: "GIR modules to load, e.g. 'Gio-2.0'. Accepts multiple modules",
37
- array: true,
38
- default: Config.defaults.modules,
39
- normalize: true,
40
- },
41
- girDirectories: {
42
- type: 'string',
43
- alias: 'g',
44
- description: 'GIR directories',
45
- array: true,
46
- default: Config.defaults.girDirectories,
47
- normalize: true,
48
- },
49
- root: {
50
- type: 'string',
51
- description: 'Root directory of your project',
52
- default: Config.defaults.root,
53
- normalize: true,
54
- },
55
- outdir: {
56
- type: 'string',
57
- alias: 'o',
58
- description: 'Directory to output to',
59
- default: Config.defaults.outdir,
60
- normalize: true,
61
- },
62
- ignore: {
63
- type: 'string',
64
- alias: 'i',
65
- description: 'Modules that should be ignored',
66
- array: true,
67
- default: Config.defaults.ignore,
68
- normalize: true,
69
- },
70
- verbose: {
71
- type: 'boolean',
72
- alias: 'v',
73
- description: 'Switch on/off the verbose mode',
74
- default: Config.defaults.verbose,
75
- normalize: true,
76
- },
77
- ignoreVersionConflicts: {
78
- type: 'boolean',
79
- description: 'Do not ask for package versions if multiple versions are found',
80
- default: Config.defaults.ignoreVersionConflicts,
81
- normalize: true,
82
- },
83
- print: {
84
- type: 'boolean',
85
- alias: 'p',
86
- description: 'Print the output to console and create no files',
87
- default: Config.defaults.print,
88
- normalize: true,
89
- },
90
- configName: {
91
- type: 'string',
92
- description: 'Name of the config if you want to use a different name',
93
- default: Config.defaults.configName,
94
- normalize: true,
95
- },
96
- noNamespace: {
97
- type: 'boolean',
98
- alias: 'd',
99
- description: 'Do not export all symbols for each module as a namespace',
100
- default: Config.defaults.noNamespace,
101
- normalize: true,
102
- },
103
- noComments: {
104
- type: 'boolean',
105
- alias: 'n',
106
- description: 'Do not generate documentation comments',
107
- default: Config.defaults.noComments,
108
- normalize: true,
109
- },
110
- noDebugComments: {
111
- type: 'boolean',
112
- description: 'Do not generate debugging inline comments',
113
- default: Config.defaults.noDebugComments,
114
- normalize: true,
115
- },
116
- fixConflicts: {
117
- type: 'boolean',
118
- description: 'Fix Inheritance and implementation type conflicts',
119
- default: Config.defaults.fixConflicts,
120
- normalize: true,
121
- },
122
- promisify: {
123
- type: 'boolean',
124
- description: 'Generate promisified functions for async/finish calls',
125
- default: Config.defaults.promisify,
126
- normalize: true,
127
- },
128
- npmScope: {
129
- type: 'string',
130
- description: 'Scope of the generated NPM packages',
131
- default: Config.defaults.npmScope,
132
- normalize: true,
133
- },
134
- packageYarn: {
135
- type: 'boolean',
136
- description: 'Adds Yarn workspace support to the NPM packages',
137
- default: Config.defaults.packageYarn,
138
- normalize: true,
139
- },
140
- };
141
- /**
142
- * CLI flags used in commands/generate.ts
143
- */
144
- static generateOptions = {
145
- modules: this.options.modules,
146
- girDirectories: this.options.girDirectories,
147
- root: this.options.root,
148
- outdir: this.options.outdir,
149
- ignore: this.options.ignore,
150
- verbose: this.options.verbose,
151
- ignoreVersionConflicts: this.options.ignoreVersionConflicts,
152
- print: this.options.print,
153
- configName: this.options.configName,
154
- noNamespace: this.options.noNamespace,
155
- noComments: this.options.noComments,
156
- noDebugComments: this.options.noDebugComments,
157
- fixConflicts: this.options.fixConflicts,
158
- promisify: this.options.promisify,
159
- npmScope: this.options.npmScope,
160
- packageYarn: this.options.packageYarn,
161
- };
162
- static listOptions = {
163
- modules: this.options.modules,
164
- girDirectories: Config.options.girDirectories,
165
- root: this.options.root,
166
- ignore: Config.options.ignore,
167
- configName: Config.options.configName,
168
- verbose: Config.options.verbose,
169
- };
170
- static copyOptions = {
171
- modules: this.options.modules,
172
- girDirectories: Config.options.girDirectories,
173
- root: this.options.root,
174
- outdir: Config.options.outdir,
175
- ignore: Config.options.ignore,
176
- configName: Config.options.configName,
177
- verbose: Config.options.verbose,
178
- };
179
- static docOptions = {
180
- modules: this.options.modules,
181
- girDirectories: Config.options.girDirectories,
182
- root: this.options.root,
183
- outdir: Config.options.outdir,
184
- ignore: Config.options.ignore,
185
- verbose: Config.options.verbose,
186
- ignoreVersionConflicts: Config.options.ignoreVersionConflicts,
187
- configName: Config.options.configName,
188
- };
189
- /**
190
- * Overwrites values in the user config file
191
- * @param configsToAdd
192
- */
193
- static async addToConfig(configsToAdd, configName) {
194
- const userConfig = await this.loadConfigFile(configName);
195
- const path = userConfig?.filepath || this.configFilePath;
196
- const configToStore = {};
197
- merge(configToStore, userConfig?.config || {}, configsToAdd);
198
- const fileExtension = extname(path);
199
- let writeConfigString = '';
200
- switch (fileExtension) {
201
- case '.js':
202
- writeConfigString = `export default ${JSON.stringify(configToStore, null, 4)}`;
203
- break;
204
- case '.json':
205
- writeConfigString = `${JSON.stringify(configToStore, null, 4)}`;
206
- break;
207
- default:
208
- Logger.error(ERROR_CONFIG_EXTENSION_UNSUPPORTED);
209
- break;
210
- }
211
- if (writeConfigString && path) {
212
- return writeFile(path, writeConfigString);
213
- }
214
- }
215
- /**
216
- * The user can create a `.ts-for-girrc` file for his default configs,
217
- * this method load this config file an returns the user configuration
218
- * @param configName If the user uses a custom config file name
219
- */
220
- static async loadConfigFile(configName) {
221
- const configSearchOptions = {
222
- loaders: {
223
- // ESM loader
224
- '.js': async (filepath) => {
225
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
226
- const file = await import(filepath);
227
- // Files with `exports.default = { ... }`
228
- if (file?.default?.default) {
229
- return file.default.default;
230
- }
231
- // Files with `export default { ... }`
232
- if (file?.default) {
233
- return file.default;
234
- }
235
- // Files with `export { ... }`
236
- return file;
237
- },
238
- },
239
- };
240
- if (configName) {
241
- configSearchOptions.searchPlaces = [configName];
242
- }
243
- const configFile = await cosmiconfig(Config.appName, configSearchOptions).search();
244
- if (configFile?.filepath) {
245
- Config.configFilePath = configFile.filepath;
246
- }
247
- return configFile;
248
- }
249
- static getOptionsGeneration(config) {
250
- const generateConfig = {
251
- girDirectories: config.girDirectories,
252
- root: config.root,
253
- outdir: config.outdir,
254
- verbose: config.verbose,
255
- noNamespace: config.noNamespace,
256
- noComments: config.noComments,
257
- noDebugComments: config.noDebugComments,
258
- fixConflicts: config.fixConflicts,
259
- promisify: config.promisify,
260
- npmScope: config.npmScope,
261
- packageYarn: config.packageYarn,
262
- noPrettyPrint: false,
263
- noAdvancedVariants: true,
264
- };
265
- return generateConfig;
266
- }
267
- static validate(config) {
268
- return config;
269
- }
270
- /**
271
- * Loads the values of the config file and concatenate them with passed cli flags / arguments.
272
- * The values from config file are preferred if the cli flag value is the default (and so not set / overwritten)
273
- * @param options
274
- */
275
- static async load(options) {
276
- const configFile = await this.loadConfigFile(options.configName);
277
- const configFileData = configFile?.config || {};
278
- const config = {
279
- verbose: options.verbose,
280
- ignoreVersionConflicts: options.ignoreVersionConflicts,
281
- print: options.print,
282
- root: options.root,
283
- outdir: options.outdir,
284
- girDirectories: options.girDirectories,
285
- ignore: options.ignore,
286
- modules: options.modules,
287
- noNamespace: options.noNamespace,
288
- noComments: options.noComments,
289
- noDebugComments: options.noDebugComments,
290
- fixConflicts: options.fixConflicts,
291
- promisify: options.promisify,
292
- npmScope: options.npmScope,
293
- packageYarn: options.packageYarn,
294
- };
295
- if (configFileData) {
296
- // verbose
297
- if (config.verbose === Config.options.verbose.default && typeof configFileData.verbose === 'boolean') {
298
- config.verbose = configFileData.verbose;
299
- }
300
- // ignoreVersionConflicts
301
- if (config.ignoreVersionConflicts === Config.options.ignoreVersionConflicts.default &&
302
- typeof configFileData.ignoreVersionConflicts === 'boolean') {
303
- config.ignoreVersionConflicts = configFileData.ignoreVersionConflicts;
304
- }
305
- // print
306
- if (config.print === Config.options.print.default && typeof configFileData.print === 'boolean') {
307
- config.print = configFileData.print;
308
- }
309
- // root
310
- if (config.root === Config.options.root.default && (configFileData.root || configFile?.filepath)) {
311
- // Use the config file path as the root path if no root path is set
312
- config.root =
313
- configFileData.root ||
314
- (configFile?.filepath ? dirname(configFile.filepath) : Config.options.root.default);
315
- }
316
- // outdir
317
- if (config.outdir === Config.options.outdir.default && configFileData.outdir) {
318
- config.outdir = config.print ? null : configFileData.outdir;
319
- }
320
- // girDirectories
321
- if (config.girDirectories === Config.options.girDirectories.default && configFileData.girDirectories) {
322
- config.girDirectories = configFileData.girDirectories;
323
- }
324
- // ignore
325
- if ((!config.ignore || config.ignore.length <= 0 || isEqual(config.ignore, Config.defaults.ignore)) &&
326
- configFileData.ignore) {
327
- config.ignore = configFileData.ignore;
328
- }
329
- // modules
330
- if ((config.modules.length <= 0 || isEqual(config.modules, Config.defaults.modules)) &&
331
- configFileData.modules) {
332
- config.modules = configFileData.modules;
333
- }
334
- // noNamespace
335
- if (config.noNamespace === Config.options.noNamespace.default &&
336
- typeof configFileData.noNamespace === 'boolean') {
337
- config.noNamespace = configFileData.noNamespace;
338
- }
339
- // noComments
340
- if (config.noComments === Config.options.noComments.default &&
341
- typeof configFileData.noComments === 'boolean') {
342
- config.noComments = configFileData.noComments;
343
- }
344
- // noDebugComments
345
- if (config.noDebugComments === Config.options.noDebugComments.default &&
346
- typeof configFileData.noDebugComments === 'boolean') {
347
- config.noDebugComments = configFileData.noDebugComments;
348
- }
349
- // fixConflicts
350
- if (config.fixConflicts === Config.options.fixConflicts.default &&
351
- typeof configFileData.fixConflicts === 'boolean') {
352
- config.fixConflicts = configFileData.fixConflicts;
353
- }
354
- // promisify
355
- if (config.promisify === Config.options.promisify.default &&
356
- typeof configFileData.promisify === 'boolean') {
357
- config.promisify = configFileData.promisify;
358
- }
359
- // npmScope
360
- if (config.npmScope === Config.options.npmScope.default && configFileData.npmScope) {
361
- config.npmScope = configFileData.npmScope;
362
- }
363
- // packageYarn
364
- if (config.packageYarn === Config.options.packageYarn.default &&
365
- typeof configFileData.packageYarn === 'boolean') {
366
- config.packageYarn = configFileData.packageYarn;
367
- }
368
- }
369
- // If outdir is not absolute, make it absolute to the root path
370
- if (config.outdir && !config.outdir?.startsWith('/')) {
371
- config.outdir = resolve(config.root, config.outdir);
372
- }
373
- // Same for girDirectories
374
- if (config.girDirectories) {
375
- config.girDirectories = config.girDirectories.map((dir) => {
376
- if (!dir.startsWith('/')) {
377
- return resolve(config.root, dir);
378
- }
379
- return dir;
380
- });
381
- }
382
- return this.validate(config);
383
- }
384
- }
385
- function getDefaultGirDirectories() {
386
- const girDirectories = [
387
- '/usr/local/share/gir-1.0',
388
- '/usr/share/gir-1.0',
389
- '/usr/share/*/gir-1.0',
390
- '/usr/share/gnome-shell',
391
- '/usr/share/gnome-shell/gir-1.0',
392
- '/usr/lib64/mutter-*',
393
- '/usr/lib/mutter-*',
394
- '/usr/lib/x86_64-linux-gnu/mutter-*',
395
- ];
396
- // NixOS and other distributions does not have a /usr/local/share directory.
397
- // Instead, the nix store paths with Gir files are set as XDG_DATA_DIRS.
398
- // See https://github.com/NixOS/nixpkgs/blob/96e18717904dfedcd884541e5a92bf9ff632cf39/pkgs/development/libraries/gobject-introspection/setup-hook.sh#L7-L10
399
- const dataDirs = process.env['XDG_DATA_DIRS']?.split(':') || [];
400
- for (let dataDir of dataDirs) {
401
- dataDir = join(dataDir, 'gir-1.0');
402
- if (!girDirectories.includes(dataDir) && existsSync(dataDir)) {
403
- girDirectories.push(dataDir);
404
- }
405
- }
406
- return girDirectories;
407
- }
408
- //# sourceMappingURL=config.js.map
package/lib/config.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { GirModule, Logger } from '@ts-for-gir/lib';
2
- import { GeneratorType, Generator } from '@ts-for-gir/generator-base';
3
- import type { OptionsGeneration, NSRegistry } from '@ts-for-gir/lib';
4
- export declare class GenerationHandler {
5
- private readonly config;
6
- log: Logger;
7
- generator: Generator;
8
- constructor(config: OptionsGeneration, type: GeneratorType);
9
- start(girModules: GirModule[], registry: NSRegistry): Promise<void>;
10
- }
@@ -1,47 +0,0 @@
1
- import { mkdir } from 'fs/promises';
2
- import { Logger, START_MODULE, FILE_PARSING_DONE, TSDATA_PARSING_DONE, GENERATING_TYPES_DONE, ERROR_NO_MODULE_SPECIFIED, } from '@ts-for-gir/lib';
3
- import { GeneratorType } from '@ts-for-gir/generator-base';
4
- import { TypeDefinitionGenerator } from '@ts-for-gir/generator-typescript';
5
- export class GenerationHandler {
6
- config;
7
- log;
8
- generator;
9
- constructor(config, type) {
10
- this.config = config;
11
- this.log = new Logger(config.verbose, 'GenerationHandler');
12
- switch (type) {
13
- case GeneratorType.TYPES:
14
- this.generator = new TypeDefinitionGenerator(config);
15
- break;
16
- // case GeneratorType.HTML_DOC:
17
- // this.generator = new HtmlDocGenerator(config)
18
- // break
19
- default:
20
- throw new Error('Unknown Generator');
21
- }
22
- }
23
- async start(girModules, registry) {
24
- this.log.info(START_MODULE);
25
- if (girModules.length == 0) {
26
- this.log.error(ERROR_NO_MODULE_SPECIFIED);
27
- }
28
- this.log.info(FILE_PARSING_DONE);
29
- this.log.info(TSDATA_PARSING_DONE);
30
- if (this.config.outdir) {
31
- await mkdir(this.config.outdir, { recursive: true });
32
- }
33
- // TODO: Put this somewhere that makes sense
34
- registry.transform({
35
- inferGenerics: true,
36
- verbose: this.config.verbose,
37
- });
38
- await this.generator.start(registry);
39
- for (const girModule of girModules) {
40
- this.log.log(` - ${girModule.packageName} ...`);
41
- await this.generator.generate(registry, girModule);
42
- }
43
- await this.generator.finish(registry);
44
- this.log.success(GENERATING_TYPES_DONE);
45
- }
46
- }
47
- //# sourceMappingURL=generation-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generation-handler.js","sourceRoot":"","sources":["../src/generation-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAEH,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,GAC5B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAK1E,MAAM,OAAO,iBAAiB;IAKL;IAJrB,GAAG,CAAQ;IACX,SAAS,CAAW;IAEpB,YACqB,MAAyB,EAC1C,IAAmB;QADF,WAAM,GAAN,MAAM,CAAmB;QAG1C,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;QAE1D,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,aAAa,CAAC,KAAK;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAA;gBACpD,MAAK;YACT,+BAA+B;YAC/B,oDAAoD;YACpD,YAAY;YACZ;gBACI,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAC5C,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,UAAuB,EAAE,QAAoB;QAC5D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAE3B,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAEhC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAElC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,CAAC;QAED,4CAA4C;QAC5C,QAAQ,CAAC,SAAS,CAAC;YACf,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC/B,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,WAAW,MAAM,CAAC,CAAA;YAC/C,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAErC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC3C,CAAC;CACJ"}
package/lib/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './commands/index.js';
2
- export * from './config.js';
3
- export * from './generation-handler.js';
4
- export * from './module-loader.js';
package/lib/index.js DELETED
@@ -1,5 +0,0 @@
1
- export * from './commands/index.js';
2
- export * from './config.js';
3
- export * from './generation-handler.js';
4
- export * from './module-loader.js';
5
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA"}