@camera.ui/cli 0.0.48 → 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.
- package/LICENSE.md +1 -1
- package/README.md +10 -1
- package/dist/commands/artifacts.d.ts +9 -0
- package/dist/commands/artifacts.js +107 -0
- package/dist/commands/artifacts.js.map +1 -0
- package/dist/commands/bundle.d.ts +19 -1
- package/dist/commands/bundle.js +368 -56
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/create.js +140 -93
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/publish.js +77 -36
- package/dist/commands/publish.js.map +1 -1
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +21 -5
- package/dist/utils/banners.d.ts +3 -1
- package/dist/utils/banners.js +15 -11
- package/dist/utils/banners.js.map +1 -1
- package/dist/utils/logger.d.ts +12 -24
- package/dist/utils/logger.js +57 -83
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/parser.d.ts +11 -4
- package/dist/utils/parser.js +27 -186
- package/dist/utils/parser.js.map +1 -1
- package/dist/utils/templates.d.ts +13 -1
- package/dist/utils/templates.js +148 -68
- package/dist/utils/templates.js.map +1 -1
- package/dist/utils/utils.js +13 -11
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/versions.js +1 -2
- package/dist/utils/versions.js.map +1 -1
- package/package.json +29 -43
- package/templates/base/README.md +2 -2
- package/templates/base/SECURITY.md +1 -1
- package/templates/base/package.json +2 -3
- package/templates/base/updates.config.js +1 -1
- package/templates/go/go.mod +5 -0
- package/templates/go/postinstall.js +35 -0
- package/templates/go/src/main.go +51 -0
- package/templates/python/requirements.txt +1 -1
- package/templates/python/ruff.toml +2 -2
- package/templates/python/src/main.py +299 -28
- package/templates/typescript/contract.ts +36 -0
- package/templates/typescript/eslint.config.js +13 -3
- package/templates/typescript/package.eslint.json +2 -2
- package/templates/typescript/package.json +4 -4
- package/templates/typescript/src/index.ts +96 -27
- package/templates/typescript/src/sensor.ts +207 -0
- package/CHANGELOG.md +0 -8
- package/CONTRIBUTING.md +0 -1
- package/scripts/chmod.js +0 -17
- package/templates/base/cameraui.config.js +0 -10
- package/templates/base/eslint.config.js +0 -64
- package/templates/base/src/index.js +0 -41
package/dist/commands/bundle.js
CHANGED
|
@@ -1,10 +1,99 @@
|
|
|
1
|
+
import { getContractValidationErrors, validateContractConsistency } from '@camera.ui/sdk';
|
|
1
2
|
import AdmZip from 'adm-zip';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
3
|
+
import * as esbuild from 'esbuild';
|
|
4
|
+
import { execFileSync } from 'node:child_process';
|
|
5
|
+
import { existsSync } from 'node:fs';
|
|
6
|
+
import { copyFile, cp, mkdir, readdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
|
|
7
|
+
import { arch, platform } from 'node:os';
|
|
8
|
+
import { dirname, resolve } from 'node:path';
|
|
9
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
10
|
+
import { showIntro, showOutro } from '../utils/banners.js';
|
|
11
|
+
import * as log from '../utils/logger.js';
|
|
6
12
|
import { parseConfig } from '../utils/parser.js';
|
|
7
13
|
import { copyPath, detectLanguage, ensureDir, findFile } from '../utils/utils.js';
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = dirname(__filename);
|
|
16
|
+
const DEFAULT_GO_TARGETS = [
|
|
17
|
+
{ goos: 'linux', goarch: 'amd64' },
|
|
18
|
+
{ goos: 'linux', goarch: 'arm64' },
|
|
19
|
+
{ goos: 'darwin', goarch: 'amd64' },
|
|
20
|
+
{ goos: 'darwin', goarch: 'arm64' },
|
|
21
|
+
{ goos: 'windows', goarch: 'amd64' },
|
|
22
|
+
{ goos: 'windows', goarch: 'arm64' },
|
|
23
|
+
];
|
|
24
|
+
function nodeOsToGoos(p) {
|
|
25
|
+
return p === 'win32' ? 'windows' : p;
|
|
26
|
+
}
|
|
27
|
+
function nodeArchToGoarch(a) {
|
|
28
|
+
return a === 'x64' ? 'amd64' : a;
|
|
29
|
+
}
|
|
30
|
+
function goosToNpmOs(g) {
|
|
31
|
+
return g === 'windows' ? 'win32' : g;
|
|
32
|
+
}
|
|
33
|
+
function goarchToNpmCpu(g) {
|
|
34
|
+
return g === 'amd64' ? 'x64' : g;
|
|
35
|
+
}
|
|
36
|
+
function resolveGoTargets(mode, goOpts) {
|
|
37
|
+
if (mode === 'development') {
|
|
38
|
+
const hostGoos = nodeOsToGoos(platform());
|
|
39
|
+
const hostGoarch = nodeArchToGoarch(arch());
|
|
40
|
+
// If the plugin explicitly configured targets, pick the host's settings
|
|
41
|
+
// (cgoEnabled / cc) from there — same iteration semantics as production.
|
|
42
|
+
const matched = goOpts?.targets?.find((t) => t.goos === hostGoos && t.goarch === hostGoarch);
|
|
43
|
+
return [matched ?? { goos: hostGoos, goarch: hostGoarch }];
|
|
44
|
+
}
|
|
45
|
+
if (goOpts?.targets?.length)
|
|
46
|
+
return goOpts.targets;
|
|
47
|
+
return DEFAULT_GO_TARGETS;
|
|
48
|
+
}
|
|
49
|
+
export async function stagePlatformPackages(args) {
|
|
50
|
+
log.info('Staging platform packages...');
|
|
51
|
+
const platformsDir = resolve(args.bundleDir, 'platforms');
|
|
52
|
+
await ensureDir(platformsDir);
|
|
53
|
+
const optionalDeps = {};
|
|
54
|
+
for (const { goos, goarch } of args.targets) {
|
|
55
|
+
const ext = goos === 'windows' ? '.exe' : '';
|
|
56
|
+
const platformDir = resolve(platformsDir, `${goos}-${goarch}`);
|
|
57
|
+
await ensureDir(platformDir);
|
|
58
|
+
const binaryName = `${args.pluginName}-${goos}-${goarch}${ext}`;
|
|
59
|
+
const sourcePath = resolve(args.binDir, binaryName);
|
|
60
|
+
const targetBinaryName = `${args.pluginName}${ext}`;
|
|
61
|
+
if (!existsSync(sourcePath)) {
|
|
62
|
+
log.error(` Missing binary for ${goos}-${goarch}: ${sourcePath}`);
|
|
63
|
+
throw new Error(`Binary not found: ${sourcePath}`);
|
|
64
|
+
}
|
|
65
|
+
await cp(sourcePath, resolve(platformDir, targetBinaryName));
|
|
66
|
+
await rm(sourcePath);
|
|
67
|
+
const platformPkgName = args.packageScope ? `${args.packageScope}/${args.pluginName}-${goos}-${goarch}` : `${args.pluginName}-${goos}-${goarch}`;
|
|
68
|
+
const platformPkg = {
|
|
69
|
+
name: platformPkgName,
|
|
70
|
+
version: args.packageJson.version ?? '0.0.1',
|
|
71
|
+
os: [goosToNpmOs(goos)],
|
|
72
|
+
cpu: [goarchToNpmCpu(goarch)],
|
|
73
|
+
main: targetBinaryName,
|
|
74
|
+
files: [targetBinaryName],
|
|
75
|
+
license: args.packageJson.license ?? 'MIT',
|
|
76
|
+
};
|
|
77
|
+
await writeFile(resolve(platformDir, 'package.json'), JSON.stringify(platformPkg, null, 2));
|
|
78
|
+
optionalDeps[platformPkgName] = platformPkg.version;
|
|
79
|
+
}
|
|
80
|
+
// Copy postinstall.js stub — resolves the right platform sub-package at
|
|
81
|
+
// install-time and copies its binary into dist/bin/plugin.
|
|
82
|
+
const postinstallTemplatePath = resolve(__dirname, '../../templates/go/postinstall.js');
|
|
83
|
+
await copyFile(postinstallTemplatePath, resolve(args.bundleDir, 'postinstall.js'));
|
|
84
|
+
// Update plugin root package.json with optionalDependencies pointing at
|
|
85
|
+
// each platform sub-package. npm picks the matching one based on os/cpu
|
|
86
|
+
// fields from the platform package's own package.json.
|
|
87
|
+
const rootPkgPath = resolve(args.rootDir, 'package.json');
|
|
88
|
+
const rootPkgRaw = await readFile(rootPkgPath, 'utf-8');
|
|
89
|
+
const rootPkg = JSON.parse(rootPkgRaw);
|
|
90
|
+
rootPkg.optionalDependencies = { ...(rootPkg.optionalDependencies ?? {}), ...optionalDeps };
|
|
91
|
+
rootPkg.scripts = { ...(rootPkg.scripts ?? {}), postinstall: 'node postinstall.js' };
|
|
92
|
+
await writeFile(rootPkgPath, `${JSON.stringify(rootPkg, null, 2)}\n`);
|
|
93
|
+
// Clean up the cross-compile staging dir; binaries now live in platforms/.
|
|
94
|
+
await rm(args.binDir, { recursive: true, force: true });
|
|
95
|
+
log.success(`Staged ${args.targets.length} platform package(s)`);
|
|
96
|
+
}
|
|
8
97
|
const REQUIRED_FILES = [
|
|
9
98
|
{
|
|
10
99
|
target: 'README.md',
|
|
@@ -29,19 +118,19 @@ const REQUIRED_FILES = [
|
|
|
29
118
|
},
|
|
30
119
|
];
|
|
31
120
|
async function copyStandardFiles(rootDir, outDir) {
|
|
32
|
-
|
|
121
|
+
log.info('Copying standard files...');
|
|
33
122
|
for (const file of REQUIRED_FILES) {
|
|
34
123
|
const foundFile = await findFile(rootDir, file);
|
|
35
124
|
if (foundFile) {
|
|
36
125
|
await copyPath(rootDir, foundFile, outDir, file.target);
|
|
37
126
|
}
|
|
38
127
|
else if (!file.optional) {
|
|
39
|
-
|
|
128
|
+
log.missingFile(file.target);
|
|
40
129
|
}
|
|
41
130
|
}
|
|
42
131
|
}
|
|
43
132
|
async function copyAdditionalFiles(rootDir, paths, outDir) {
|
|
44
|
-
|
|
133
|
+
log.info('Copying additional files...');
|
|
45
134
|
for (const path of paths) {
|
|
46
135
|
if (typeof path === 'string') {
|
|
47
136
|
await copyPath(rootDir, path, resolve(outDir, 'dist'), path.split('/').pop());
|
|
@@ -51,17 +140,24 @@ async function copyAdditionalFiles(rootDir, paths, outDir) {
|
|
|
51
140
|
}
|
|
52
141
|
}
|
|
53
142
|
}
|
|
54
|
-
async function processPackageJson(rootDir, outDir, external, pluginLanguage) {
|
|
143
|
+
async function processPackageJson({ rootDir, outDir, external, pluginLanguage, goTargets, isDev }) {
|
|
55
144
|
try {
|
|
56
|
-
|
|
145
|
+
log.info('Processing package.json...');
|
|
57
146
|
const packageJsonPath = resolve(rootDir, 'package.json');
|
|
58
147
|
const packageJsonContent = await readFile(packageJsonPath, 'utf-8');
|
|
59
148
|
const packageJson = JSON.parse(packageJsonContent);
|
|
60
|
-
const mainFile = pluginLanguage === 'python' ? 'main.py' : 'index.js';
|
|
61
|
-
packageJson.main = `./dist/${mainFile}`;
|
|
149
|
+
const mainFile = pluginLanguage === 'python' ? 'main.py' : pluginLanguage === 'go' ? 'main.go' : 'index.js';
|
|
150
|
+
packageJson.main = pluginLanguage === 'go' ? './main.go' : `./dist/${mainFile}`;
|
|
62
151
|
packageJson.type = 'commonjs';
|
|
152
|
+
// TODO: Uncomment when server-side compatibility check is implemented
|
|
153
|
+
// // Extract @camera.ui/sdk version from devDependencies before deleting
|
|
154
|
+
// // This will be added as peerDependency for runtime compatibility checking
|
|
155
|
+
// const cameraUiTypesVersion =
|
|
156
|
+
// packageJson.devDependencies?.['@camera.ui/sdk'] ?? packageJson.dependencies?.['@camera.ui/sdk'] ?? packageJson.peerDependencies?.['@camera.ui/sdk'];
|
|
157
|
+
//
|
|
158
|
+
// // For Python plugins, also extract camera-ui-sdk version from requirements.txt
|
|
159
|
+
// const pythonTypesVersion = pluginLanguage === 'python' ? await parsePythonTypesVersion(rootDir) : undefined;
|
|
63
160
|
delete packageJson.devDependencies;
|
|
64
|
-
// delete packageJson.scripts;
|
|
65
161
|
if (packageJson.dependencies) {
|
|
66
162
|
const newDependencies = {};
|
|
67
163
|
for (const [dep, version] of Object.entries(packageJson.dependencies)) {
|
|
@@ -82,23 +178,49 @@ async function processPackageJson(rootDir, outDir, external, pluginLanguage) {
|
|
|
82
178
|
delete packageJson.dependencies;
|
|
83
179
|
}
|
|
84
180
|
}
|
|
85
|
-
|
|
86
|
-
|
|
181
|
+
// TODO: Uncomment when server-side compatibility check is implemented
|
|
182
|
+
// // Add peerDependencies for server compatibility checking
|
|
183
|
+
// const peerDependencies: Record<string, string> = {};
|
|
184
|
+
//
|
|
185
|
+
// if (cameraUiTypesVersion) {
|
|
186
|
+
// peerDependencies['@camera.ui/sdk'] = cameraUiTypesVersion;
|
|
187
|
+
// }
|
|
188
|
+
//
|
|
189
|
+
// if (pythonTypesVersion) {
|
|
190
|
+
// peerDependencies['camera-ui-sdk'] = pythonTypesVersion;
|
|
191
|
+
// }
|
|
192
|
+
//
|
|
193
|
+
// if (Object.keys(peerDependencies).length > 0) {
|
|
194
|
+
// packageJson.peerDependencies = peerDependencies;
|
|
195
|
+
// }
|
|
196
|
+
// Go production: inject optionalDependencies and postinstall script
|
|
197
|
+
if (pluginLanguage === 'go' && goTargets?.length && !isDev) {
|
|
198
|
+
const pluginName = packageJson.name.replace(/^@[^/]+\//, '');
|
|
199
|
+
const packageScope = packageJson.name.includes('/') ? packageJson.name.split('/')[0] : undefined;
|
|
200
|
+
const version = packageJson.version ?? '0.0.1';
|
|
201
|
+
const optionalDeps = {};
|
|
202
|
+
for (const { goos, goarch } of goTargets) {
|
|
203
|
+
const platformPkgName = packageScope ? `${packageScope}/${pluginName}-${goos}-${goarch}` : `${pluginName}-${goos}-${goarch}`;
|
|
204
|
+
optionalDeps[platformPkgName] = version;
|
|
205
|
+
}
|
|
206
|
+
packageJson.optionalDependencies = optionalDeps;
|
|
207
|
+
packageJson.scripts = { ...packageJson.scripts, postinstall: 'node postinstall.js' };
|
|
208
|
+
}
|
|
87
209
|
const targetPath = resolve(outDir, 'package.json');
|
|
88
210
|
await writeFile(targetPath, JSON.stringify(packageJson, null, 2));
|
|
89
|
-
|
|
211
|
+
log.success('Package.json processed');
|
|
90
212
|
}
|
|
91
213
|
catch (error) {
|
|
92
|
-
|
|
214
|
+
log.error('Failed to process package.json');
|
|
93
215
|
throw error;
|
|
94
216
|
}
|
|
95
217
|
}
|
|
96
218
|
async function createBundleZip(bundleDir) {
|
|
97
219
|
try {
|
|
98
|
-
|
|
220
|
+
log.info('Creating bundle archive...');
|
|
99
221
|
const tempDir = resolve(bundleDir, '.temp');
|
|
100
222
|
await mkdir(tempDir, { recursive: true });
|
|
101
|
-
const staticFiles = ['bundle.zip', '.temp', 'package.json', 'CHANGELOG.md', 'LICENSE.md', 'README.md'];
|
|
223
|
+
const staticFiles = ['bundle.zip', '.temp', 'package.json', 'CHANGELOG.md', 'LICENSE.md', 'README.md', 'platforms'];
|
|
102
224
|
const files = await readdir(bundleDir);
|
|
103
225
|
for (const file of files) {
|
|
104
226
|
if (!staticFiles.slice(1).includes(file)) {
|
|
@@ -115,61 +237,251 @@ async function createBundleZip(bundleDir) {
|
|
|
115
237
|
}
|
|
116
238
|
await rm(tempDir, { recursive: true, force: true });
|
|
117
239
|
const stats = await stat(resolve(bundleDir, 'bundle.zip'));
|
|
118
|
-
const sizeInMB =
|
|
119
|
-
|
|
240
|
+
const sizeInMB = stats.size / (1024 * 1024);
|
|
241
|
+
log.bundleSize(sizeInMB);
|
|
120
242
|
}
|
|
121
243
|
catch (error) {
|
|
122
|
-
|
|
244
|
+
log.error('Failed to create bundle archive');
|
|
123
245
|
throw error;
|
|
124
246
|
}
|
|
125
247
|
}
|
|
126
|
-
async function
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
if (stats?.hasErrors()) {
|
|
134
|
-
const info = stats.toJson();
|
|
135
|
-
reject(new Error(info.errors?.map((error) => error.message).join('\n')));
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
resolve();
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
export async function buildProject() {
|
|
143
|
-
logger.startBuild();
|
|
144
|
-
const { webpackConfig, userConfig } = await parseConfig();
|
|
145
|
-
const outDir = resolve(webpackConfig.output.path, '..');
|
|
248
|
+
export async function buildProject(options = {}) {
|
|
249
|
+
const startTime = Date.now();
|
|
250
|
+
showIntro();
|
|
251
|
+
log.info('Starting build...');
|
|
252
|
+
const { userConfig, targetRootDir, entryPoint, outputFile } = await parseConfig();
|
|
253
|
+
const bundleDir = resolve(outputFile, '..', '..');
|
|
146
254
|
const rootDir = userConfig.rootDir ? resolve(process.cwd(), userConfig.rootDir) : process.cwd();
|
|
147
255
|
const pluginLanguage = userConfig.language ?? (await detectLanguage(rootDir));
|
|
148
|
-
await rm(
|
|
256
|
+
await rm(bundleDir, { recursive: true, force: true });
|
|
257
|
+
let goTargets;
|
|
149
258
|
try {
|
|
150
|
-
if (pluginLanguage === '
|
|
151
|
-
|
|
152
|
-
await
|
|
259
|
+
if (pluginLanguage === 'go') {
|
|
260
|
+
// Go: cross-compile binaries
|
|
261
|
+
await ensureDir(bundleDir);
|
|
262
|
+
const binDir = resolve(bundleDir, 'dist', 'bin');
|
|
263
|
+
await ensureDir(binDir);
|
|
264
|
+
log.info('Cross-compiling Go plugin...');
|
|
265
|
+
const packageJsonPath = resolve(rootDir, 'package.json');
|
|
266
|
+
const packageJsonContent = await readFile(packageJsonPath, 'utf-8');
|
|
267
|
+
const packageJson = JSON.parse(packageJsonContent);
|
|
268
|
+
const pluginName = packageJson.name.replace(/^@[^/]+\//, '');
|
|
269
|
+
const packageScope = packageJson.name.includes('/') ? packageJson.name.split('/')[0] : undefined;
|
|
270
|
+
const goOpts = userConfig.go;
|
|
271
|
+
let targets = resolveGoTargets(userConfig.mode, goOpts);
|
|
272
|
+
// --target restricts the build to a single configured platform. The
|
|
273
|
+
// per-platform packaging step (writing `bundle/platforms/...`) is also
|
|
274
|
+
// skipped — that's the `artifacts` command's job once all matrix jobs
|
|
275
|
+
// have uploaded their respective binaries.
|
|
276
|
+
if (options.target) {
|
|
277
|
+
const dashIdx = options.target.lastIndexOf('-');
|
|
278
|
+
if (dashIdx <= 0) {
|
|
279
|
+
throw new Error(`--target must be in the form <goos>-<goarch> (got "${options.target}")`);
|
|
280
|
+
}
|
|
281
|
+
const wantGoos = options.target.slice(0, dashIdx);
|
|
282
|
+
const wantGoarch = options.target.slice(dashIdx + 1);
|
|
283
|
+
const match = targets.find((t) => t.goos === wantGoos && t.goarch === wantGoarch);
|
|
284
|
+
if (!match) {
|
|
285
|
+
const available = targets.map((t) => `${t.goos}-${t.goarch}`).join(', ');
|
|
286
|
+
throw new Error(`--target ${options.target} not in plugin's configured targets [${available}]`);
|
|
287
|
+
}
|
|
288
|
+
targets = [match];
|
|
289
|
+
}
|
|
290
|
+
goTargets = targets;
|
|
291
|
+
const defaultLdflags = goOpts?.ldflags ?? '-s -w';
|
|
292
|
+
const defaultCgoEnabled = goOpts?.cgoEnabled ?? '0';
|
|
293
|
+
const extraEnv = goOpts?.env ?? {};
|
|
294
|
+
const isDev = userConfig.mode === 'development';
|
|
295
|
+
for (const target of targets) {
|
|
296
|
+
const { goos, goarch } = target;
|
|
297
|
+
const ext = goos === 'windows' ? '.exe' : '';
|
|
298
|
+
// Naming:
|
|
299
|
+
// - dev mode (no --target): unsuffixed `plugin` for direct local run
|
|
300
|
+
// - --target / production: `<pluginName>-<goos>-<goarch>[.exe]` so
|
|
301
|
+
// matrix runners can upload an artifact whose name encodes the
|
|
302
|
+
// target, and the `artifacts` command can match it back
|
|
303
|
+
const outputName = isDev && !options.target ? `plugin${ext}` : `${pluginName}-${goos}-${goarch}${ext}`;
|
|
304
|
+
const outputPath = resolve(binDir, outputName);
|
|
305
|
+
// Per-target CGo + CC overrides — `cameraui.config.ts` can opt in
|
|
306
|
+
// CGo only for the platforms that need it (e.g. darwin Foundation
|
|
307
|
+
// framework bindings) without dragging Linux/Windows builds into a
|
|
308
|
+
// C cross-compile setup.
|
|
309
|
+
const targetCgoEnabled = target.cgoEnabled ?? defaultCgoEnabled;
|
|
310
|
+
const targetLdflags = target.ldflags ?? defaultLdflags;
|
|
311
|
+
const targetEnv = {
|
|
312
|
+
...extraEnv,
|
|
313
|
+
CGO_ENABLED: targetCgoEnabled,
|
|
314
|
+
GOOS: goos,
|
|
315
|
+
GOARCH: goarch,
|
|
316
|
+
};
|
|
317
|
+
if (target.cc)
|
|
318
|
+
targetEnv.CC = target.cc;
|
|
319
|
+
const cgoLabel = targetCgoEnabled === '1' ? ' [CGO]' : '';
|
|
320
|
+
log.info(` Building ${pluginName}-${goos}-${goarch}${ext}${cgoLabel}...`);
|
|
321
|
+
try {
|
|
322
|
+
// execFileSync (no shell) avoids cross-platform quoting headaches —
|
|
323
|
+
// PowerShell on Windows doesn't strip single quotes, so a shell-style
|
|
324
|
+
// `-ldflags '-s -w …'` would land at `go build` with the quotes
|
|
325
|
+
// intact and fail. Passing args as an array side-steps shell parsing
|
|
326
|
+
// entirely.
|
|
327
|
+
execFileSync('go', ['build', '-ldflags', targetLdflags, '-o', outputPath, './src/'], {
|
|
328
|
+
cwd: rootDir,
|
|
329
|
+
stdio: 'pipe',
|
|
330
|
+
env: { ...process.env, ...targetEnv },
|
|
331
|
+
});
|
|
332
|
+
log.success(` Built ${pluginName}-${goos}-${goarch}${ext}`);
|
|
333
|
+
}
|
|
334
|
+
catch (err) {
|
|
335
|
+
log.error(` Failed to build ${pluginName}-${goos}-${goarch}${ext}: ${err.message}`);
|
|
336
|
+
throw err;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
// Production multi-target build: generate per-platform npm packages.
|
|
340
|
+
// Skipped in single-target (--target) mode — each matrix job just emits
|
|
341
|
+
// its binary into bundle/dist/bin/ for the `artifacts` command to pick
|
|
342
|
+
// up later in the publish stage.
|
|
343
|
+
if (!isDev && !options.target) {
|
|
344
|
+
await stagePlatformPackages({
|
|
345
|
+
targets,
|
|
346
|
+
binDir,
|
|
347
|
+
bundleDir,
|
|
348
|
+
pluginName,
|
|
349
|
+
packageScope,
|
|
350
|
+
packageJson,
|
|
351
|
+
rootDir,
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
log.success('Go plugin compiled');
|
|
355
|
+
// --target single-target mode (matrix CI): the only output we need
|
|
356
|
+
// is the platform-suffixed binary at `bundle/dist/bin/`. Skip the
|
|
357
|
+
// contract bundle, README copy, package.json rewrite, and zip — those
|
|
358
|
+
// are the publish-stage's job, where `cui artifacts` aggregates one
|
|
359
|
+
// binary per matrix runner into the final per-platform packages.
|
|
360
|
+
if (options.target) {
|
|
361
|
+
const duration = Date.now() - startTime;
|
|
362
|
+
log.buildSuccess(bundleDir, duration);
|
|
363
|
+
showOutro('Build complete!');
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
else if (pluginLanguage === 'python') {
|
|
368
|
+
// Python: copy source files to dist/
|
|
369
|
+
await ensureDir(bundleDir);
|
|
370
|
+
await copyPath(rootDir, 'src', bundleDir, 'dist');
|
|
153
371
|
}
|
|
154
372
|
else {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
373
|
+
// TypeScript/JavaScript: bundle with esbuild
|
|
374
|
+
// esbuild handles CJS/ESM interop much better than Rollup for export * re-exports
|
|
375
|
+
log.info('Bundling plugin...');
|
|
376
|
+
// Build external list: @camera.ui/sdk + user externals
|
|
377
|
+
const externals = ['@camera.ui/sdk'];
|
|
378
|
+
// Add user-defined externals (convert RegExp to string patterns for esbuild)
|
|
379
|
+
if (userConfig.external) {
|
|
380
|
+
for (const ext of userConfig.external) {
|
|
381
|
+
if (typeof ext === 'string') {
|
|
382
|
+
externals.push(ext);
|
|
383
|
+
}
|
|
384
|
+
// Note: esbuild doesn't support RegExp externals, skip them
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
await esbuild.build({
|
|
388
|
+
entryPoints: [entryPoint],
|
|
389
|
+
bundle: true,
|
|
390
|
+
platform: 'node',
|
|
391
|
+
target: 'node18',
|
|
392
|
+
format: 'cjs',
|
|
393
|
+
outfile: outputFile,
|
|
394
|
+
sourcemap: userConfig.mode === 'development',
|
|
395
|
+
minify: userConfig.mode !== 'development',
|
|
396
|
+
keepNames: true,
|
|
397
|
+
treeShaking: userConfig.mode !== 'development',
|
|
398
|
+
external: externals,
|
|
399
|
+
logLevel: 'warning',
|
|
400
|
+
// Handle native .node modules and packages with native bindings
|
|
401
|
+
plugins: [
|
|
402
|
+
{
|
|
403
|
+
name: 'native-node-modules',
|
|
404
|
+
setup(build) {
|
|
405
|
+
// Mark all .node files as external
|
|
406
|
+
build.onResolve({ filter: /\.node$/ }, (args) => ({
|
|
407
|
+
path: args.path,
|
|
408
|
+
external: true,
|
|
409
|
+
}));
|
|
410
|
+
// Mark common native module packages as external
|
|
411
|
+
// These patterns match packages that typically contain native bindings
|
|
412
|
+
const nativePackagePatterns = [/^@camera\.ui\/rust-/, /^@napi-rs\//, /-darwin-/, /-linux-/, /-win32-/, /-arm64$/, /-x64$/];
|
|
413
|
+
build.onResolve({ filter: /.*/ }, (args) => {
|
|
414
|
+
for (const pattern of nativePackagePatterns) {
|
|
415
|
+
if (pattern.test(args.path)) {
|
|
416
|
+
return { path: args.path, external: true };
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
return null;
|
|
420
|
+
});
|
|
421
|
+
},
|
|
422
|
+
},
|
|
423
|
+
],
|
|
424
|
+
});
|
|
425
|
+
log.success('Plugin bundled');
|
|
426
|
+
}
|
|
427
|
+
// Bundle contract.ts (always at root level, required for all plugins)
|
|
428
|
+
const contractInput = resolve(targetRootDir, 'contract.ts');
|
|
429
|
+
if (!existsSync(contractInput)) {
|
|
430
|
+
throw new Error(`Missing contract.ts at ${contractInput}. Every plugin requires a contract.ts file at the project root.`);
|
|
159
431
|
}
|
|
160
|
-
|
|
432
|
+
log.info('Bundling contract...');
|
|
433
|
+
const isDevelopment = userConfig.mode === 'development';
|
|
434
|
+
// Bundle contract with esbuild - no externals, enum values are inlined
|
|
435
|
+
// Use .cjs extension to ensure Node.js treats it as CommonJS regardless of package.json "type"
|
|
436
|
+
await esbuild.build({
|
|
437
|
+
entryPoints: [contractInput],
|
|
438
|
+
bundle: true,
|
|
439
|
+
platform: 'node',
|
|
440
|
+
target: 'node18',
|
|
441
|
+
format: 'cjs',
|
|
442
|
+
outfile: resolve(bundleDir, 'contract.cjs'),
|
|
443
|
+
sourcemap: isDevelopment,
|
|
444
|
+
minify: false, // Keep contract readable for debugging
|
|
445
|
+
logLevel: 'warning',
|
|
446
|
+
});
|
|
447
|
+
log.success('Contract bundled');
|
|
448
|
+
// Validate contract
|
|
449
|
+
log.info('Validating contract...');
|
|
450
|
+
const contractPath = resolve(bundleDir, 'contract.cjs');
|
|
451
|
+
const contractModule = await import(pathToFileURL(contractPath).href);
|
|
452
|
+
const contract = contractModule.contract ?? contractModule.default;
|
|
453
|
+
if (!contract) {
|
|
454
|
+
throw new Error('Contract not found. Ensure your contract.ts exports "contract" or uses a default export.');
|
|
455
|
+
}
|
|
456
|
+
const validationErrors = getContractValidationErrors(contract);
|
|
457
|
+
if (validationErrors.length > 0) {
|
|
458
|
+
const errorList = validationErrors.map((e) => ` - ${e}`).join('\n');
|
|
459
|
+
throw new Error(`Invalid contract structure:\n${errorList}`);
|
|
460
|
+
}
|
|
461
|
+
validateContractConsistency(contract);
|
|
462
|
+
log.success('Contract validated');
|
|
463
|
+
await copyStandardFiles(rootDir, bundleDir);
|
|
161
464
|
if (userConfig.additionalFiles?.length) {
|
|
162
|
-
await copyAdditionalFiles(rootDir, userConfig.additionalFiles,
|
|
465
|
+
await copyAdditionalFiles(rootDir, userConfig.additionalFiles, bundleDir);
|
|
163
466
|
}
|
|
164
467
|
const external = Array.isArray(userConfig.external) ? userConfig.external : [];
|
|
165
|
-
await processPackageJson(
|
|
166
|
-
|
|
167
|
-
|
|
468
|
+
await processPackageJson({
|
|
469
|
+
rootDir,
|
|
470
|
+
outDir: bundleDir,
|
|
471
|
+
external,
|
|
472
|
+
pluginLanguage,
|
|
473
|
+
goTargets,
|
|
474
|
+
isDev: userConfig.mode === 'development',
|
|
475
|
+
});
|
|
476
|
+
if (userConfig.mode !== 'development') {
|
|
477
|
+
await createBundleZip(bundleDir);
|
|
168
478
|
}
|
|
169
|
-
|
|
479
|
+
const duration = Date.now() - startTime;
|
|
480
|
+
log.buildSuccess(bundleDir, duration);
|
|
481
|
+
showOutro('Build complete!');
|
|
170
482
|
}
|
|
171
483
|
catch (error) {
|
|
172
|
-
|
|
484
|
+
log.buildError(error);
|
|
173
485
|
process.exit(1);
|
|
174
486
|
}
|
|
175
487
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"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"}
|