@camera.ui/cli 0.0.49 → 0.0.50

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 (54) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +10 -1
  3. package/dist/commands/artifacts.d.ts +9 -0
  4. package/dist/commands/artifacts.js +107 -0
  5. package/dist/commands/artifacts.js.map +1 -0
  6. package/dist/commands/bundle.d.ts +19 -1
  7. package/dist/commands/bundle.js +368 -56
  8. package/dist/commands/bundle.js.map +1 -1
  9. package/dist/commands/create.js +140 -93
  10. package/dist/commands/create.js.map +1 -1
  11. package/dist/commands/publish.js +77 -36
  12. package/dist/commands/publish.js.map +1 -1
  13. package/dist/index.js +11 -4
  14. package/dist/index.js.map +1 -1
  15. package/dist/types.d.ts +21 -5
  16. package/dist/utils/banners.d.ts +3 -1
  17. package/dist/utils/banners.js +15 -11
  18. package/dist/utils/banners.js.map +1 -1
  19. package/dist/utils/logger.d.ts +12 -24
  20. package/dist/utils/logger.js +57 -83
  21. package/dist/utils/logger.js.map +1 -1
  22. package/dist/utils/parser.d.ts +11 -4
  23. package/dist/utils/parser.js +27 -185
  24. package/dist/utils/parser.js.map +1 -1
  25. package/dist/utils/templates.d.ts +13 -1
  26. package/dist/utils/templates.js +148 -68
  27. package/dist/utils/templates.js.map +1 -1
  28. package/dist/utils/utils.js +13 -11
  29. package/dist/utils/utils.js.map +1 -1
  30. package/dist/utils/versions.js +1 -2
  31. package/dist/utils/versions.js.map +1 -1
  32. package/package.json +29 -43
  33. package/templates/base/README.md +2 -2
  34. package/templates/base/SECURITY.md +1 -1
  35. package/templates/base/package.json +2 -3
  36. package/templates/base/updates.config.js +1 -1
  37. package/templates/go/go.mod +5 -0
  38. package/templates/go/postinstall.js +35 -0
  39. package/templates/go/src/main.go +51 -0
  40. package/templates/python/requirements.txt +1 -1
  41. package/templates/python/ruff.toml +2 -2
  42. package/templates/python/src/main.py +299 -28
  43. package/templates/typescript/contract.ts +36 -0
  44. package/templates/typescript/eslint.config.js +13 -3
  45. package/templates/typescript/package.eslint.json +2 -2
  46. package/templates/typescript/package.json +4 -4
  47. package/templates/typescript/src/index.ts +96 -27
  48. package/templates/typescript/src/sensor.ts +207 -0
  49. package/CHANGELOG.md +0 -8
  50. package/CONTRIBUTING.md +0 -1
  51. package/scripts/chmod.js +0 -17
  52. package/templates/base/cameraui.config.js +0 -10
  53. package/templates/base/eslint.config.js +0 -64
  54. package/templates/base/src/index.js +0 -41
@@ -1,17 +1,21 @@
1
- import gradient from 'gradient-string';
2
- const defaultBanner = 'camera.ui - CLI to create and manage camera.ui plugins';
3
- const gradientBanner = gradient([
4
- { color: '#df2a4c', pos: 0 },
5
- { color: '#df2a4c', pos: 0.1 },
6
- { color: '#e890a4', pos: 1 },
7
- ])(defaultBanner);
1
+ import { cancel, intro, outro } from '@clack/prompts';
2
+ import pc from 'picocolors';
3
+ const defaultBanner = 'camera.ui - Plugin Development CLI';
4
+ const gradientBanner =
5
+ // eslint-disable-next-line @stylistic/max-len
6
+ '\x1B[38;2;223;42;76mc\x1B[39m\x1B[38;2;223;42;76ma\x1B[39m\x1B[38;2;223;42;76mm\x1B[39m\x1B[38;2;223;42;76me\x1B[39m\x1B[38;2;223;48;82mr\x1B[39m\x1B[38;2;224;54;87ma\x1B[39m\x1B[38;2;224;59;92m.\x1B[39m\x1B[38;2;225;65;97mu\x1B[39m\x1B[38;2;225;71;102mi\x1B[39m \x1B[38;2;226;77;107m-\x1B[39m \x1B[38;2;226;82;112mP\x1B[39m\x1B[38;2;227;88;117ml\x1B[39m\x1B[38;2;227;94;122mu\x1B[39m\x1B[38;2;228;100;127mg\x1B[39m\x1B[38;2;228;105;132mi\x1B[39m\x1B[38;2;229;111;137mn\x1B[39m \x1B[38;2;229;117;142mD\x1B[39m\x1B[38;2;230;123;147me\x1B[39m\x1B[38;2;230;128;152mv\x1B[39m\x1B[38;2;231;134;157me\x1B[39m\x1B[38;2;231;140;162ml\x1B[39m\x1B[38;2;232;144;164mo\x1B[39m\x1B[38;2;232;144;164mp\x1B[39m\x1B[38;2;232;144;164mm\x1B[39m\x1B[38;2;232;144;164me\x1B[39m\x1B[38;2;232;144;164mn\x1B[39m\x1B[38;2;232;144;164mt\x1B[39m \x1B[38;2;232;144;164mC\x1B[39m\x1B[38;2;232;144;164mL\x1B[39m\x1B[38;2;232;144;164mI\x1B[39m';
8
7
  function useGradient() {
9
8
  return process.stdout.isTTY && process.stdout.getColorDepth() > 8;
10
9
  }
11
- export function initBanner() {
12
- console.log();
13
- console.log(useGradient() ? gradientBanner : defaultBanner);
14
- console.log();
10
+ export function showIntro() {
11
+ const banner = useGradient() ? gradientBanner : defaultBanner;
12
+ intro(banner);
13
+ }
14
+ export function showOutro(message) {
15
+ outro(message);
16
+ }
17
+ export function showCancel(message) {
18
+ cancel(pc.red('✖') + (message ? ` ${message}` : ' Operation cancelled'));
15
19
  }
16
20
  export function getBanner() {
17
21
  return useGradient() ? gradientBanner : defaultBanner;
@@ -1 +1 @@
1
- {"version":3,"file":"banners.js","sourceRoot":"","sources":["../../src/utils/banners.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,MAAM,aAAa,GAAG,wDAAwD,CAAC;AAE/E,MAAM,cAAc,GAAG,QAAQ,CAAC;IAC9B,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;IAC5B,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE;IAC9B,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;CAC7B,CAAC,CAAC,aAAa,CAAC,CAAC;AAElB,SAAS,WAAW;IAClB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,WAAW,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"banners.js","sourceRoot":"","sources":["../../src/utils/banners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAE3D,MAAM,cAAc;AAClB,8CAA8C;AAC9C,m5BAAm5B,CAAC;AAEt5B,SAAS,WAAW;IAClB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAC9D,KAAK,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,KAAK,CAAC,OAAO,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,WAAW,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;AACxD,CAAC"}
@@ -1,24 +1,12 @@
1
- declare class Logger {
2
- private spinner;
3
- private isSpinning;
4
- info(message: string): void;
5
- success(message: string): void;
6
- warn(message: string): void;
7
- error(message: string): void;
8
- debug(message: string): void;
9
- startBuild(): void;
10
- configLoaded(): void;
11
- startBundle(): void;
12
- bundleCreated(): void;
13
- startWrite(): void;
14
- writeSuccess(): void;
15
- fileOperation(type: 'file' | 'dir', path: string, success: boolean): void;
16
- missingFile(file: string): void;
17
- outputFiles(files: string[]): void;
18
- buildSuccess(outDir: string): void;
19
- buildError(error: Error): void;
20
- private stopSpinner;
21
- private startSpinner;
22
- }
23
- export declare const logger: Logger;
24
- export {};
1
+ export declare function info(message: string): void;
2
+ export declare function success(message: string): void;
3
+ export declare function warn(message: string): void;
4
+ export declare function error(message: string): void;
5
+ export declare function debug(message: string): void;
6
+ export declare function step(current: number, total: number, message: string): void;
7
+ export declare function fileOperation(type: 'file' | 'dir', path: string, copied: boolean): void;
8
+ export declare function missingFile(file: string): void;
9
+ export declare function outputFiles(files: string[]): void;
10
+ export declare function buildSuccess(outDir: string, durationMs?: number): void;
11
+ export declare function buildError(err: Error | unknown): void;
12
+ export declare function bundleSize(sizeMb: number): void;
@@ -1,91 +1,65 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- class Logger {
4
- spinner = ora();
5
- isSpinning = false;
6
- info(message) {
7
- this.stopSpinner();
8
- ora().info(chalk.blue(message));
9
- }
10
- success(message) {
11
- this.stopSpinner();
12
- ora().succeed(chalk.green(message));
13
- }
14
- warn(message) {
15
- this.stopSpinner();
16
- ora().warn(chalk.yellow(message));
17
- }
18
- error(message) {
19
- this.stopSpinner();
20
- ora().fail(chalk.red(message));
21
- }
22
- debug(message) {
23
- this.stopSpinner();
24
- console.log(chalk.gray(message));
25
- }
26
- startBuild() {
27
- this.info('Starting build process...');
28
- }
29
- configLoaded() {
30
- this.stopSpinner();
31
- }
32
- startBundle() {
33
- this.startSpinner('Creating bundle...');
34
- }
35
- bundleCreated() {
36
- this.success('Bundle created successfully');
37
- }
38
- startWrite() {
39
- this.startSpinner('Writing files...');
40
- }
41
- writeSuccess() {
42
- this.success('Files written successfully');
43
- }
44
- fileOperation(type, path, success) {
45
- if (success) {
46
- const icon = type === 'file' ? '📄' : '📁';
47
- console.log(` ${icon} ${chalk.dim(`Copied ${type}: ${path}`)}`);
48
- }
49
- else {
50
- console.log(` ${chalk.red('❌')} ${chalk.dim(`Failed to copy ${path}`)}`);
51
- }
52
- }
53
- missingFile(file) {
54
- console.log(` ${chalk.yellow('⚠️')} ${chalk.dim(`Missing file: ${file}`)}`);
55
- }
56
- outputFiles(files) {
57
- console.log(chalk.dim('\nGenerated files:'));
58
- files.forEach((file) => {
59
- console.log(` ${chalk.cyan('•')} ${file}`);
60
- });
1
+ import pc from 'picocolors';
2
+ export function info(message) {
3
+ console.log(pc.blue('ℹ') + ' ' + message);
4
+ }
5
+ export function success(message) {
6
+ console.log(pc.green('✔') + ' ' + message);
7
+ }
8
+ export function warn(message) {
9
+ console.log(pc.yellow('⚠') + ' ' + message);
10
+ }
11
+ export function error(message) {
12
+ console.log(pc.red('✖') + ' ' + message);
13
+ }
14
+ export function debug(message) {
15
+ console.log(pc.dim(message));
16
+ }
17
+ export function step(current, total, message) {
18
+ const prefix = pc.dim(`[${current}/${total}]`);
19
+ console.log(`${prefix} ${message}`);
20
+ }
21
+ export function fileOperation(type, path, copied) {
22
+ if (copied) {
23
+ const icon = type === 'file' ? '📄' : '📁';
24
+ console.log(` ${icon} ${pc.dim(`Copied ${type}: ${path}`)}`);
61
25
  }
62
- buildSuccess(outDir) {
63
- console.log('\n' + chalk.green('✨ Build completed successfully!'));
64
- console.log(chalk.dim(`Output directory: ${outDir}\n`));
26
+ else {
27
+ console.log(` ${pc.red('')} ${pc.dim(`Failed to copy ${path}`)}`);
65
28
  }
66
- buildError(error) {
67
- this.error('Build failed');
68
- console.error(chalk.dim('\nError details:'));
69
- console.error(chalk.red(error.message));
70
- if ('frame' in error) {
71
- console.error('\n' + chalk.yellow('Error location:'));
72
- console.error(chalk.dim(error.frame));
73
- }
29
+ }
30
+ export function missingFile(file) {
31
+ console.log(` ${pc.yellow('⚠')} ${pc.dim(`Missing file: ${file}`)}`);
32
+ }
33
+ export function outputFiles(files) {
34
+ console.log(pc.dim('\nGenerated files:'));
35
+ for (const file of files) {
36
+ console.log(` ${pc.cyan('•')} ${file}`);
74
37
  }
75
- stopSpinner() {
76
- if (this.isSpinning) {
77
- this.spinner.stop();
78
- this.isSpinning = false;
38
+ }
39
+ export function buildSuccess(outDir, durationMs) {
40
+ console.log();
41
+ console.log(pc.green('✨ Build completed successfully!'));
42
+ console.log(pc.dim(`Output directory: ${outDir}`));
43
+ if (durationMs !== undefined) {
44
+ console.log(pc.dim(`Duration: ${durationMs}ms`));
45
+ }
46
+ console.log();
47
+ }
48
+ export function buildError(err) {
49
+ error('Build failed');
50
+ console.error(pc.dim('\nError details:'));
51
+ if (err instanceof Error) {
52
+ console.error(pc.red(err.message));
53
+ if ('frame' in err) {
54
+ console.error('\n' + pc.yellow('Error location:'));
55
+ console.error(pc.dim(err.frame));
79
56
  }
80
57
  }
81
- startSpinner(message) {
82
- this.stopSpinner();
83
- this.spinner = ora({
84
- text: message,
85
- color: 'blue',
86
- }).start();
87
- this.isSpinning = true;
58
+ else {
59
+ console.error(pc.red(String(err)));
88
60
  }
89
61
  }
90
- export const logger = new Logger();
62
+ export function bundleSize(sizeMb) {
63
+ console.log(pc.dim(`Bundle size: ${sizeMb.toFixed(2)} MB`));
64
+ }
91
65
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
- import type { Configuration } from 'webpack';
2
1
  import type { CameraUiBuildOptions } from '../types.js';
3
- export declare function parseConfig(): Promise<{
4
- webpackConfig: Configuration;
2
+ type ProjectType = 'javascript-cjs' | 'javascript-esm' | 'typescript-cjs' | 'typescript-esm';
3
+ export declare function detectJsProjectType(rootDir: string): Promise<ProjectType>;
4
+ export declare function loadConfig(): Promise<CameraUiBuildOptions>;
5
+ export interface ParsedConfig {
5
6
  userConfig: CameraUiBuildOptions;
6
- }>;
7
+ projectType: ProjectType;
8
+ targetRootDir: string;
9
+ entryPoint: string;
10
+ outputFile: string;
11
+ }
12
+ export declare function parseConfig(): Promise<ParsedConfig>;
13
+ export {};
@@ -1,14 +1,19 @@
1
1
  import { pathExists } from 'fs-extra/esm';
2
2
  import { readFile, rm } from 'node:fs/promises';
3
3
  import { isAbsolute, resolve } from 'node:path';
4
- import { SwcMinifyWebpackPlugin } from 'swc-minify-webpack-plugin';
5
4
  import * as tsImport from 'ts-import';
6
- import webpack from 'webpack';
7
- import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
8
- import { logger } from './logger.js';
9
- import { moduleResolver } from './moduleResolve.js';
5
+ import { error } from './logger.js';
10
6
  import { detectLanguage } from './utils.js';
11
- async function detectJsProjectType(rootDir) {
7
+ async function fileExists(path) {
8
+ try {
9
+ await readFile(path);
10
+ return true;
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ }
16
+ export async function detectJsProjectType(rootDir) {
12
17
  try {
13
18
  const pluginLanguage = await detectLanguage(rootDir);
14
19
  if (pluginLanguage === 'python') {
@@ -23,16 +28,7 @@ async function detectJsProjectType(rootDir) {
23
28
  return 'javascript-cjs';
24
29
  }
25
30
  }
26
- async function fileExists(path) {
27
- try {
28
- await readFile(path);
29
- return true;
30
- }
31
- catch {
32
- return false;
33
- }
34
- }
35
- async function loadConfig() {
31
+ export async function loadConfig() {
36
32
  const tsConfigPath = resolve(process.cwd(), 'cameraui.config.ts');
37
33
  const jsConfigPath = resolve(process.cwd(), 'cameraui.config.js');
38
34
  try {
@@ -48,189 +44,35 @@ async function loadConfig() {
48
44
  }
49
45
  return {};
50
46
  }
51
- catch (error) {
52
- logger.buildError(error);
47
+ catch (err) {
48
+ error(`Failed to load config: ${err instanceof Error ? err.message : String(err)}`);
53
49
  return {};
54
50
  }
55
51
  }
56
- async function getModuleRules(projectType, targetRootDir) {
57
- const rules = [];
58
- const isTypeScript = projectType.startsWith('typescript');
59
- if (isTypeScript) {
60
- rules.push({
61
- test: /\.ts$/,
62
- exclude: /node_modules/,
63
- use: [
64
- {
65
- loader: await moduleResolver.resolveModule('ts-loader'),
66
- options: {
67
- configFile: resolve(targetRootDir, 'tsconfig.json'),
68
- transpileOnly: true,
69
- compilerOptions: {
70
- module: 'esnext',
71
- moduleResolution: 'node',
72
- },
73
- },
74
- },
75
- {
76
- loader: await moduleResolver.resolveModule('babel-loader'),
77
- options: {
78
- presets: [
79
- await moduleResolver.resolveBabelModule('@babel/preset-env', {
80
- config: {
81
- targets: { node: '22' },
82
- modules: false,
83
- },
84
- }),
85
- await moduleResolver.resolveBabelModule('@babel/preset-typescript'),
86
- ],
87
- plugins: [
88
- await moduleResolver.resolveBabelModule('@babel/plugin-transform-typescript', {
89
- config: { allowDeclareFields: true },
90
- }),
91
- ],
92
- },
93
- },
94
- ],
95
- });
96
- }
97
- rules.push({
98
- test: /\.js$/,
99
- exclude: /node_modules/,
100
- type: 'javascript/esm',
101
- use: {
102
- loader: await moduleResolver.resolveModule('babel-loader'),
103
- options: {
104
- presets: [
105
- await moduleResolver.resolveBabelModule('@babel/preset-env', {
106
- config: {
107
- targets: { node: '22' },
108
- modules: false,
109
- },
110
- }),
111
- ],
112
- },
113
- },
114
- });
115
- rules.push({
116
- test: /\.node$/,
117
- loader: await moduleResolver.resolveModule('node-loader'),
118
- });
119
- rules.push({
120
- test: /\.json$/,
121
- type: 'json',
122
- });
123
- return rules;
124
- }
125
52
  export async function parseConfig() {
126
53
  const userConfig = await loadConfig();
127
54
  const cliRootDir = process.cwd();
128
55
  const targetRootDir = userConfig.rootDir ? (isAbsolute(userConfig.rootDir) ? userConfig.rootDir : resolve(cliRootDir, userConfig.rootDir)) : cliRootDir;
129
56
  const projectType = await detectJsProjectType(targetRootDir);
130
57
  const outputDir = resolve(targetRootDir, 'bundle', 'dist');
58
+ const isTypeScript = projectType.startsWith('typescript');
131
59
  // Determine entry point
132
- let entry;
60
+ let entryPoint;
133
61
  if (typeof userConfig.input === 'string') {
134
- entry = resolve(targetRootDir, userConfig.input);
62
+ entryPoint = resolve(targetRootDir, userConfig.input);
135
63
  }
136
- else {
137
- entry = resolve(targetRootDir, projectType.startsWith('typescript') ? 'src/index.ts' : 'src/index.js');
64
+ else if (Array.isArray(userConfig.input) && userConfig.input.length > 0) {
65
+ entryPoint = resolve(targetRootDir, userConfig.input[0]);
138
66
  }
139
- // Configure plugins
140
- const plugins = [
141
- new webpack.ProgressPlugin(),
142
- new webpack.optimize.LimitChunkCountPlugin({
143
- maxChunks: 1,
144
- }),
145
- new webpack.DefinePlugin({
146
- 'process.env.NODE_ENV': JSON.stringify(userConfig.mode === 'development' ? 'development' : 'production'),
147
- }),
148
- ];
149
- if (userConfig.mode === 'development' && process.env.ANALYZE) {
150
- plugins.push(new BundleAnalyzerPlugin({
151
- generateStatsFile: true,
152
- }));
67
+ else {
68
+ entryPoint = resolve(targetRootDir, isTypeScript ? 'src/index.ts' : 'src/index.js');
153
69
  }
154
- // Get module rules
155
- const moduleRules = await getModuleRules(projectType, targetRootDir);
156
- const webpackConfig = {
157
- mode: userConfig.mode === 'development' ? 'development' : 'production',
158
- target: 'node',
159
- entry,
160
- output: {
161
- path: outputDir,
162
- filename: 'index.js',
163
- libraryTarget: 'commonjs2',
164
- assetModuleFilename: '[path][name][ext]',
165
- },
166
- resolve: {
167
- extensions: ['.ts', '.js', '.mjs', '.json'],
168
- symlinks: true,
169
- mainFields: ['node', 'module', 'main'],
170
- extensionAlias: {
171
- '.js': projectType.startsWith('typescript') ? ['.ts', '.js'] : ['.js'],
172
- '.mjs': projectType.startsWith('typescript') ? ['.mts', '.mjs'] : ['.mjs'],
173
- },
174
- },
175
- resolveLoader: {
176
- modules: moduleResolver.getWebpackResolveConfig({
177
- includeGlobalModules: false,
178
- includeCliModules: false,
179
- }).resolve.modules,
180
- },
181
- module: {
182
- rules: moduleRules,
183
- },
184
- experiments: {
185
- topLevelAwait: true,
186
- },
187
- externals: [
188
- ({ request }, callback) => {
189
- if (!request) {
190
- return callback();
191
- }
192
- if (request.endsWith('.node')) {
193
- return callback(null, `commonjs ${request}`);
194
- }
195
- // Check user-defined externals if they exist
196
- if (userConfig.external && userConfig.external?.length > 0) {
197
- const isExternal = userConfig.external.some((ext) => {
198
- if (typeof ext === 'string') {
199
- return request === ext || request.startsWith(`${ext}/`);
200
- }
201
- return ext.test(request);
202
- });
203
- if (isExternal) {
204
- return callback(null, `commonjs ${request}`);
205
- }
206
- }
207
- callback();
208
- },
209
- ],
210
- devtool: userConfig.mode === 'development' ? 'source-map' : false,
211
- optimization: {
212
- minimize: userConfig.mode !== 'development',
213
- minimizer: [
214
- new SwcMinifyWebpackPlugin({
215
- compress: {
216
- typeofs: false,
217
- },
218
- module: true,
219
- keep_classnames: true,
220
- keep_fnames: true,
221
- }),
222
- ],
223
- },
224
- plugins,
225
- stats: {
226
- colors: true,
227
- errorDetails: true,
228
- },
229
- node: {
230
- __dirname: false,
231
- __filename: false,
232
- },
70
+ return {
71
+ userConfig,
72
+ projectType,
73
+ targetRootDir,
74
+ entryPoint,
75
+ outputFile: resolve(outputDir, 'index.js'),
233
76
  };
234
- return { webpackConfig, userConfig };
235
77
  }
236
78
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/utils/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAO5C,KAAK,UAAU,mBAAmB,CAAC,OAAe;IAChD,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1F,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC;QAE5C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACrH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,gBAAgB,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,IAAI,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YAClD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,OAAO,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1C,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;QAClC,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,WAAwB,EAAE,aAAqB;IAC3E,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,cAAc;YACvB,GAAG,EAAE;gBACH;oBACE,MAAM,EAAE,MAAM,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC;oBACvD,OAAO,EAAE;wBACP,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC;wBACnD,aAAa,EAAE,IAAI;wBACnB,eAAe,EAAE;4BACf,MAAM,EAAE,QAAQ;4BAChB,gBAAgB,EAAE,MAAM;yBACzB;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,MAAM,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC;oBAC1D,OAAO,EAAE;wBACP,OAAO,EAAE;4BACP,MAAM,cAAc,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;gCAC3D,MAAM,EAAE;oCACN,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;oCACvB,OAAO,EAAE,KAAK;iCACf;6BACF,CAAC;4BACF,MAAM,cAAc,CAAC,kBAAkB,CAAC,0BAA0B,CAAC;yBACpE;wBACD,OAAO,EAAE;4BACP,MAAM,cAAc,CAAC,kBAAkB,CAAC,oCAAoC,EAAE;gCAC5E,MAAM,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;6BACrC,CAAC;yBACH;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE;YACH,MAAM,EAAE,MAAM,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC;YAC1D,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,MAAM,cAAc,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;wBAC3D,MAAM,EAAE;4BACN,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;4BACvB,OAAO,EAAE,KAAK;yBACf;qBACF,CAAC;iBACH;aACF;SACF;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,MAAM,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC;KAC1D,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAI/B,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAExJ,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE3D,wBAAwB;IACxB,IAAI,KAAa,CAAC;IAClB,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACzG,CAAC;IAED,oBAAoB;IACpB,MAAM,OAAO,GAA6B;QACxC,IAAI,OAAO,CAAC,cAAc,EAAE;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACzC,SAAS,EAAE,CAAC;SACb,CAAC;QACF,IAAI,OAAO,CAAC,YAAY,CAAC;YACvB,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;SACzG,CAAC;KACH,CAAC;IAEF,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7D,OAAO,CAAC,IAAI,CACV,IAAI,oBAAoB,CAAC;YACvB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAErE,MAAM,aAAa,GAAkB;QACnC,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;QACtE,MAAM,EAAE,MAAM;QACd,KAAK;QACL,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,WAAW;YAC1B,mBAAmB,EAAE,mBAAmB;SACzC;QACD,OAAO,EAAE;YACP,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;YAC3C,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;YACtC,cAAc,EAAE;gBACd,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACtE,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC3E;SACF;QACD,aAAa,EAAE;YACb,OAAO,EAAE,cAAc,CAAC,uBAAuB,CAAC;gBAC9C,oBAAoB,EAAE,KAAK;gBAC3B,iBAAiB,EAAE,KAAK;aACzB,CAAC,CAAC,OAAO,CAAC,OAAO;SACnB;QACD,MAAM,EAAE;YACN,KAAK,EAAE,WAAW;SACnB;QACD,WAAW,EAAE;YACX,aAAa,EAAE,IAAI;SACpB;QACD,SAAS,EAAE;YACT,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE;gBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,QAAQ,EAAE,CAAC;gBACpB,CAAC;gBAED,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9B,OAAO,QAAQ,CAAC,IAAI,EAAE,YAAY,OAAO,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBAED,6CAA6C;gBAC7C,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;wBAClD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;4BAC5B,OAAO,OAAO,KAAK,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;wBAC1D,CAAC;wBACD,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3B,CAAC,CAAC,CAAC;oBAEH,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,QAAQ,CAAC,IAAI,EAAE,YAAY,OAAO,EAAE,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAED,QAAQ,EAAE,CAAC;YACb,CAAC;SACF;QACD,OAAO,EAAE,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK;QACjE,YAAY,EAAE;YACZ,QAAQ,EAAE,UAAU,CAAC,IAAI,KAAK,aAAa;YAC3C,SAAS,EAAE;gBACT,IAAI,sBAAsB,CAAC;oBACzB,QAAQ,EAAE;wBACR,OAAO,EAAE,KAAK;qBACf;oBACD,MAAM,EAAE,IAAI;oBACZ,eAAe,EAAE,IAAI;oBACrB,WAAW,EAAE,IAAI;iBAClB,CAAC;aACH;SACF;QACD,OAAO;QACP,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;SACnB;QACD,IAAI,EAAE;YACJ,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,KAAK;SAClB;KACF,CAAC;IAEF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/utils/parser.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,18 @@ export declare function createBaseFiles(targetDir: string, projectName: string,
3
3
  export declare function createPackageJson(projectName: string, options: CreateOptions): Promise<any>;
4
4
  export declare function createPythonRequirements(targetDir: string): Promise<void>;
5
5
  export declare function createMyPyConfig(targetDir: string): Promise<void>;
6
- export declare function createTsConfig(targetDir: string): Promise<void>;
6
+ export declare function createTsConfig(targetDir: string, options: CreateOptions): Promise<void>;
7
7
  export declare function createCodeQualityConfig(targetDir: string, options: CreateOptions): Promise<void>;
8
+ /**
9
+ * Create contract.ts at project root (always TypeScript, even for Python plugins)
10
+ * This file is bundled to contract.js during the bundle process
11
+ */
12
+ export declare function createContractFile(targetDir: string, options: CreateOptions): Promise<void>;
13
+ /**
14
+ * Create source files in src/ directory (no contract files here)
15
+ */
8
16
  export declare function createSourceFiles(targetDir: string, options: CreateOptions): Promise<void>;
17
+ /**
18
+ * Create Go source files for a new Go plugin project
19
+ */
20
+ export declare function createGoFiles(targetDir: string, projectName: string): Promise<void>;