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