@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.
- 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 -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 +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/utils/templates.js
CHANGED
|
@@ -47,30 +47,25 @@ async function createVscodeSettings(targetDir, options) {
|
|
|
47
47
|
export async function createBaseFiles(targetDir, projectName, options) {
|
|
48
48
|
const baseFiles = ['README.md', 'LICENSE.md', 'CONTRIBUTING.md', 'CHANGELOG.md', 'SECURITY.md', 'updates.config.js'];
|
|
49
49
|
const baseDotFiles = ['gitignore', 'npmignore', 'editorconfig'];
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
const pythonFiles = ['
|
|
50
|
+
// cameraui.config.ts is always TypeScript (even for Python plugins)
|
|
51
|
+
const configFiles = ['cameraui.config.ts'];
|
|
52
|
+
const pythonFiles = ['cupdate.config.txt'];
|
|
53
53
|
for (const file of baseFiles) {
|
|
54
54
|
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, file);
|
|
55
55
|
}
|
|
56
56
|
for (const file of baseDotFiles) {
|
|
57
57
|
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, `.${file}`);
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
59
|
+
// Always copy TypeScript config file
|
|
60
|
+
for (const file of configFiles) {
|
|
61
|
+
await copyPath(__dirname, `../../templates/typescript/${file}`, targetDir, file);
|
|
63
62
|
}
|
|
63
|
+
// Python-specific files
|
|
64
64
|
if (options.language === 'python') {
|
|
65
65
|
for (const file of pythonFiles) {
|
|
66
66
|
await copyPath(__dirname, `../../templates/python/${file}`, targetDir, file);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
if (options.language === 'typescript') {
|
|
70
|
-
for (const file of typescriptFiles) {
|
|
71
|
-
await copyPath(__dirname, `../../templates/typescript/${file}`, targetDir, file);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
69
|
const readmePath = resolve(targetDir, 'README.md');
|
|
75
70
|
const readmeContent = readFileSync(readmePath, 'utf-8').replace(/{{projectName}}/g, projectName);
|
|
76
71
|
await writeFile(readmePath, readmeContent);
|
|
@@ -82,8 +77,8 @@ export async function createPackageJson(projectName, options) {
|
|
|
82
77
|
// general
|
|
83
78
|
pJson.displayName = options.displayName;
|
|
84
79
|
pJson.name = projectName;
|
|
85
|
-
const mainFile = options.language === 'python' ? 'main.py' : 'index.js';
|
|
86
|
-
pJson.main = `./bundle/dist/${mainFile}`;
|
|
80
|
+
const mainFile = options.language === 'python' ? 'main.py' : options.language === 'go' ? 'main.go' : 'index.js';
|
|
81
|
+
pJson.main = options.language === 'go' ? './bundle/main.go' : `./bundle/dist/${mainFile}`;
|
|
87
82
|
// scripts
|
|
88
83
|
pJson.scripts = {
|
|
89
84
|
bundle: 'cui bundle',
|
|
@@ -105,10 +100,25 @@ export async function createPackageJson(projectName, options) {
|
|
|
105
100
|
pJson.scripts.update = pJson.scripts.update + ' && cupdate';
|
|
106
101
|
pJson.scripts.build = 'mypy src';
|
|
107
102
|
}
|
|
103
|
+
else if (options.language === 'go') {
|
|
104
|
+
pJson.scripts.build = 'go build -o /dev/null ./src/';
|
|
105
|
+
}
|
|
108
106
|
if (options.quality) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
if (options.language === 'go') {
|
|
108
|
+
pJson.scripts.format = 'gofmt -w .';
|
|
109
|
+
pJson.scripts.lint = 'go vet ./...';
|
|
110
|
+
pJson.scripts['lint:fix'] = 'go vet ./...';
|
|
111
|
+
}
|
|
112
|
+
else if (options.language === 'python') {
|
|
113
|
+
pJson.scripts.format = 'ruff format';
|
|
114
|
+
pJson.scripts.lint = 'ruff check';
|
|
115
|
+
pJson.scripts['lint:fix'] = 'ruff check --fix';
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
pJson.scripts.format = 'prettier --write "src/" --ignore-unknown --no-error-on-unmatched-pattern';
|
|
119
|
+
pJson.scripts.lint = 'eslint .';
|
|
120
|
+
pJson.scripts['lint:fix'] = 'eslint --fix .';
|
|
121
|
+
}
|
|
112
122
|
}
|
|
113
123
|
if (pJson.scripts.build) {
|
|
114
124
|
pJson.scripts.bundle = 'npm run build && ' + pJson.scripts.bundle;
|
|
@@ -123,37 +133,28 @@ export async function createPackageJson(projectName, options) {
|
|
|
123
133
|
pJson.scripts['bundle:dev'] = 'npm run format && ' + pJson.scripts['bundle:dev'];
|
|
124
134
|
}
|
|
125
135
|
pJson.scripts = sortScripts(pJson);
|
|
126
|
-
// devDependencies
|
|
136
|
+
// devDependencies - always include TypeScript (needed for contract.ts)
|
|
137
|
+
const tsPJsonPath = resolve(join(__dirname, '../../templates/typescript/package.json'));
|
|
138
|
+
const tsPJson = JSON.parse(readFileSync(tsPJsonPath, 'utf-8'));
|
|
127
139
|
pJson.devDependencies = {
|
|
128
140
|
...pJson.devDependencies,
|
|
129
141
|
'@camera.ui/cli': `^${packageJson.version}`,
|
|
142
|
+
...tsPJson,
|
|
130
143
|
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const tsPJson = JSON.parse(readFileSync(tsPJsonPath, 'utf-8'));
|
|
134
|
-
pJson.devDependencies = {
|
|
135
|
-
...pJson.devDependencies,
|
|
136
|
-
...tsPJson,
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
if (options.quality && options.language !== 'python') {
|
|
144
|
+
// Code quality tools (ESLint + Prettier for TypeScript only)
|
|
145
|
+
if (options.quality && options.language === 'typescript') {
|
|
140
146
|
const formatterPJsonPath = resolve(join(__dirname, '../../templates/base/package.prettier.json'));
|
|
141
147
|
const formatterPJson = JSON.parse(readFileSync(formatterPJsonPath, 'utf-8'));
|
|
142
148
|
const baseLinterPjsonPath = resolve(join(__dirname, '../../templates/base/package.eslint.json'));
|
|
143
149
|
const baseLinterPjson = JSON.parse(readFileSync(baseLinterPjsonPath, 'utf-8'));
|
|
150
|
+
const linterPJsonPath = resolve(join(__dirname, '../../templates/typescript/package.eslint.json'));
|
|
151
|
+
const linterPJson = JSON.parse(readFileSync(linterPJsonPath, 'utf-8'));
|
|
144
152
|
pJson.devDependencies = {
|
|
145
153
|
...pJson.devDependencies,
|
|
146
154
|
...baseLinterPjson,
|
|
147
155
|
...formatterPJson,
|
|
156
|
+
...linterPJson,
|
|
148
157
|
};
|
|
149
|
-
if (options.language === 'typescript') {
|
|
150
|
-
const linterPJsonPath = resolve(join(__dirname, '../../templates/typescript/package.eslint.json'));
|
|
151
|
-
const linterPJson = JSON.parse(readFileSync(linterPJsonPath, 'utf-8'));
|
|
152
|
-
pJson.devDependencies = {
|
|
153
|
-
...pJson.devDependencies,
|
|
154
|
-
...linterPJson,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
158
|
}
|
|
158
159
|
// engines
|
|
159
160
|
const latestCameraUiVersion = await getLatestCameraUiVersion();
|
|
@@ -162,7 +163,8 @@ export async function createPackageJson(projectName, options) {
|
|
|
162
163
|
pJson.engines.node = `>=${latestNodeVersion.version}`;
|
|
163
164
|
// contract
|
|
164
165
|
pJson['camera.ui'] = {
|
|
165
|
-
|
|
166
|
+
provides: options.provides,
|
|
167
|
+
consumes: options.consumes,
|
|
166
168
|
dependencies: [],
|
|
167
169
|
pythonVersion: options.pythonVersion,
|
|
168
170
|
};
|
|
@@ -177,49 +179,127 @@ export async function createPythonRequirements(targetDir) {
|
|
|
177
179
|
export async function createMyPyConfig(targetDir) {
|
|
178
180
|
await copyPath(__dirname, '../../templates/python/mypy.ini', targetDir, 'mypy.ini');
|
|
179
181
|
}
|
|
180
|
-
export async function createTsConfig(targetDir) {
|
|
181
|
-
|
|
182
|
+
export async function createTsConfig(targetDir, options) {
|
|
183
|
+
if (options.language === 'typescript') {
|
|
184
|
+
// Full TypeScript config for TS projects
|
|
185
|
+
await copyPath(__dirname, '../../templates/typescript/tsconfig.json', targetDir, 'tsconfig.json');
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
// Minimal TypeScript config for Python projects (only needed for contract.ts)
|
|
189
|
+
const minimalTsConfig = {
|
|
190
|
+
compilerOptions: {
|
|
191
|
+
target: 'ES2022',
|
|
192
|
+
module: 'NodeNext',
|
|
193
|
+
moduleResolution: 'NodeNext',
|
|
194
|
+
strict: true,
|
|
195
|
+
esModuleInterop: true,
|
|
196
|
+
skipLibCheck: true,
|
|
197
|
+
declaration: false,
|
|
198
|
+
outDir: './dist',
|
|
199
|
+
},
|
|
200
|
+
include: ['contract.ts'],
|
|
201
|
+
exclude: ['node_modules', 'bundle', 'dist'],
|
|
202
|
+
};
|
|
203
|
+
await writeFile(resolve(targetDir, 'tsconfig.json'), JSON.stringify(minimalTsConfig, null, 2));
|
|
204
|
+
}
|
|
182
205
|
}
|
|
183
206
|
export async function createCodeQualityConfig(targetDir, options) {
|
|
184
|
-
const baseFiles = [];
|
|
185
|
-
const baseDotFiles = [];
|
|
186
|
-
const pythonFiles = [];
|
|
187
|
-
const typescriptFiles = [];
|
|
188
207
|
if (options.language === 'python') {
|
|
189
|
-
|
|
208
|
+
// Python: ruff for linting/formatting
|
|
209
|
+
await copyPath(__dirname, '../../templates/python/ruff.toml', targetDir, 'ruff.toml');
|
|
190
210
|
}
|
|
191
211
|
else {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
}
|
|
197
|
-
else if (options.language === 'typescript') {
|
|
198
|
-
typescriptFiles.push('eslint.config.js');
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
for (const file of baseFiles) {
|
|
202
|
-
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, file);
|
|
203
|
-
}
|
|
204
|
-
for (const file of baseDotFiles) {
|
|
205
|
-
await copyPath(__dirname, `../../templates/base/${file}`, targetDir, `.${file}`);
|
|
206
|
-
}
|
|
207
|
-
for (const file of pythonFiles) {
|
|
208
|
-
await copyPath(__dirname, `../../templates/python/${file}`, targetDir, file);
|
|
209
|
-
}
|
|
210
|
-
for (const file of typescriptFiles) {
|
|
211
|
-
await copyPath(__dirname, `../../templates/typescript/${file}`, targetDir, file);
|
|
212
|
+
// TypeScript: ESLint + Prettier
|
|
213
|
+
await copyPath(__dirname, '../../templates/base/prettierrc.json', targetDir, '.prettierrc.json');
|
|
214
|
+
await copyPath(__dirname, '../../templates/base/prettierignore', targetDir, '.prettierignore');
|
|
215
|
+
await copyPath(__dirname, '../../templates/typescript/eslint.config.js', targetDir, 'eslint.config.js');
|
|
212
216
|
}
|
|
213
217
|
}
|
|
218
|
+
function formatSensorTypesForTs(types) {
|
|
219
|
+
if (types.length === 0)
|
|
220
|
+
return '[]';
|
|
221
|
+
const sensorTypeMap = {
|
|
222
|
+
motion: 'Motion',
|
|
223
|
+
object: 'Object',
|
|
224
|
+
audio: 'Audio',
|
|
225
|
+
face: 'Face',
|
|
226
|
+
licensePlate: 'LicensePlate',
|
|
227
|
+
contact: 'Contact',
|
|
228
|
+
light: 'Light',
|
|
229
|
+
siren: 'Siren',
|
|
230
|
+
ptz: 'PTZ',
|
|
231
|
+
doorbell: 'Doorbell',
|
|
232
|
+
battery: 'Battery',
|
|
233
|
+
};
|
|
234
|
+
const formatted = types.map((t) => `SensorType.${sensorTypeMap[t] || t}`).join(', ');
|
|
235
|
+
return `[${formatted}]`;
|
|
236
|
+
}
|
|
237
|
+
function generateContractTs(options) {
|
|
238
|
+
const provides = formatSensorTypesForTs(options.provides);
|
|
239
|
+
const consumes = formatSensorTypesForTs(options.consumes);
|
|
240
|
+
return `import { SensorType } from '@camera.ui/sdk';
|
|
241
|
+
|
|
242
|
+
import type { PluginContract } from '@camera.ui/sdk';
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Plugin Contract
|
|
246
|
+
*
|
|
247
|
+
* This file defines what sensor types your plugin provides and consumes.
|
|
248
|
+
* It is bundled separately and read by camera.ui before loading the plugin.
|
|
249
|
+
*
|
|
250
|
+
* - provides: Sensor types this plugin creates and controls
|
|
251
|
+
* - consumes: Sensor types this plugin receives updates from (for hubs/integrations)
|
|
252
|
+
*/
|
|
253
|
+
export const contract: PluginContract = {
|
|
254
|
+
name: '${options.displayName}',
|
|
255
|
+
provides: ${provides},
|
|
256
|
+
consumes: ${consumes},
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
export default contract;
|
|
260
|
+
`;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Create contract.ts at project root (always TypeScript, even for Python plugins)
|
|
264
|
+
* This file is bundled to contract.js during the bundle process
|
|
265
|
+
*/
|
|
266
|
+
export async function createContractFile(targetDir, options) {
|
|
267
|
+
const contractContent = generateContractTs(options);
|
|
268
|
+
await writeFile(resolve(targetDir, 'contract.ts'), contractContent);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Create source files in src/ directory (no contract files here)
|
|
272
|
+
*/
|
|
214
273
|
export async function createSourceFiles(targetDir, options) {
|
|
274
|
+
const srcDir = resolve(targetDir, 'src');
|
|
275
|
+
await ensureDir(srcDir);
|
|
215
276
|
if (options.language === 'python') {
|
|
216
|
-
await copyPath(__dirname, '../../templates/python/src',
|
|
277
|
+
await copyPath(__dirname, '../../templates/python/src/main.py', srcDir, 'main.py');
|
|
217
278
|
}
|
|
218
|
-
if (options.language === '
|
|
219
|
-
|
|
279
|
+
else if (options.language === 'go') {
|
|
280
|
+
// Go source files are created separately by createGoFiles
|
|
220
281
|
}
|
|
221
|
-
|
|
222
|
-
|
|
282
|
+
else {
|
|
283
|
+
// TypeScript
|
|
284
|
+
await copyPath(__dirname, '../../templates/typescript/src/index.ts', srcDir, 'index.ts');
|
|
285
|
+
await copyPath(__dirname, '../../templates/typescript/src/sensor.ts', srcDir, 'sensor.ts');
|
|
223
286
|
}
|
|
224
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Create Go source files for a new Go plugin project
|
|
290
|
+
*/
|
|
291
|
+
export async function createGoFiles(targetDir, projectName) {
|
|
292
|
+
const srcDir = resolve(targetDir, 'src');
|
|
293
|
+
await ensureDir(srcDir);
|
|
294
|
+
const pluginName = projectName.replace(/^@[^/]+\//, '').replace(/-/g, '_');
|
|
295
|
+
const moduleName = `github.com/user/${projectName.replace(/^@[^/]+\//, '')}`;
|
|
296
|
+
// go.mod — read template, replace placeholder, write to project root
|
|
297
|
+
const goModTemplate = readFileSync(resolve(__dirname, '../../templates/go/go.mod'), 'utf-8');
|
|
298
|
+
const goMod = goModTemplate.replace(/\{\{moduleName\}\}/g, moduleName);
|
|
299
|
+
await writeFile(resolve(targetDir, 'go.mod'), goMod);
|
|
300
|
+
// main.go — read template, replace placeholder, write to src/
|
|
301
|
+
const mainGoTemplate = readFileSync(resolve(__dirname, '../../templates/go/src/main.go'), 'utf-8');
|
|
302
|
+
const mainGo = mainGoTemplate.replace(/\{\{pluginName\}\}/g, pluginName);
|
|
303
|
+
await writeFile(resolve(srcDir, 'main.go'), mainGo);
|
|
304
|
+
}
|
|
225
305
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAIlF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,OAAsB;IAC3E,MAAM,WAAW,GAAG,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,oBAAoB,GAAG;QAC3B,oBAAoB;QACpB,wCAAwC;QACxC,4BAA4B;QAC5B,mCAAmC;QACnC,mBAAmB;KACpB,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IAErF,MAAM,sBAAsB,GAAG;QAC7B,oBAAoB;QACpB,iBAAiB;QACjB,6BAA6B;QAC7B,0BAA0B;QAC1B,kBAAkB;QAClB,mBAAmB;QACnB,yCAAyC;QACzC,0BAA0B;KAC3B,CAAC;IAEF,MAAM,UAAU,GAAa,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAEvD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,CAAC,SAAS,EAAE,+BAA+B,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,SAAS,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,WAAmB,EAAE,OAAsB;IAClG,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;IACrH,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAEhE,MAAM,eAAe,GAAa,CAAC,oBAAoB,CAAC,CAAC;IACzD,MAAM,eAAe,GAAa,CAAC,oBAAoB,CAAC,CAAC;IACzD,MAAM,WAAW,GAAa,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IAE3E,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,CAAC,SAAS,EAAE,wBAAwB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,CAAC,SAAS,EAAE,wBAAwB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,QAAQ,CAAC,SAAS,EAAE,wBAAwB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,QAAQ,CAAC,SAAS,EAAE,0BAA0B,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,QAAQ,CAAC,SAAS,EAAE,8BAA8B,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAEjG,MAAM,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE3C,MAAM,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,OAAsB;IACjF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3D,UAAU;IACV,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;IAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IACxE,KAAK,CAAC,IAAI,GAAG,iBAAiB,QAAQ,EAAE,CAAC;IAEzC,UAAU;IACV,KAAK,CAAC,OAAO,GAAG;QACd,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,uCAAuC;QACrD,iBAAiB,EAAE,cAAc;QACjC,MAAM,EAAE,qBAAqB;QAC7B,cAAc;QACZ,kBAAkB;QAClB,8CAA8C;QAC9C,sNAAsN;QACxN,eAAe,EAAE,uDAAuD;QACxE,cAAc,EAAE,sDAAsD;QACtE,gBAAgB,EAAE,wDAAwD;KAC3E,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACtC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC;IAC7C,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;QAC5D,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,0EAA0E,CAAC;QAClJ,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/E,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACpG,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAClE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACrE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnC,kBAAkB;IAClB,KAAK,CAAC,eAAe,GAAG;QACtB,GAAG,KAAK,CAAC,eAAe;QACxB,gBAAgB,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE;KAC5C,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAE/D,KAAK,CAAC,eAAe,GAAG;YACtB,GAAG,KAAK,CAAC,eAAe;YACxB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrD,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,4CAA4C,CAAC,CAAC,CAAC;QAClG,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;QAE7E,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,0CAA0C,CAAC,CAAC,CAAC;QACjG,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;QAE/E,KAAK,CAAC,eAAe,GAAG;YACtB,GAAG,KAAK,CAAC,eAAe;YACxB,GAAG,eAAe;YAClB,GAAG,cAAc;SAClB,CAAC;QAEF,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,gDAAgD,CAAC,CAAC,CAAC;YACnG,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YAEvE,KAAK,CAAC,eAAe,GAAG;gBACtB,GAAG,KAAK,CAAC,eAAe;gBACxB,GAAG,WAAW;aACf,CAAC;QACJ,CAAC;IACH,CAAC;IAED,UAAU;IACV,MAAM,qBAAqB,GAAG,MAAM,wBAAwB,EAAE,CAAC;IAC/D,MAAM,iBAAiB,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAE1D,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,qBAAqB,CAAC,MAAM,EAAE,CAAC;IACjE,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAEtD,WAAW;IACX,KAAK,CAAC,WAAW,CAAC,GAAG;QACnB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IAEF,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,SAAiB;IAC9D,MAAM,KAAK,GAAG,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,CAAC,SAAS,EAAE,0BAA0B,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB;IACtD,MAAM,QAAQ,CAAC,SAAS,EAAE,iCAAiC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB;IACpD,MAAM,QAAQ,CAAC,SAAS,EAAE,0CAA0C,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,SAAiB,EAAE,OAAsB;IACrF,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpC,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC7C,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,CAAC,SAAS,EAAE,wBAAwB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,CAAC,SAAS,EAAE,wBAAwB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,CAAC,SAAS,EAAE,0BAA0B,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,QAAQ,CAAC,SAAS,EAAE,8BAA8B,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAiB,EAAE,OAAsB;IAC/E,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,QAAQ,CAAC,SAAS,EAAE,4BAA4B,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACtC,MAAM,QAAQ,CAAC,SAAS,EAAE,gCAAgC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACtC,MAAM,QAAQ,CAAC,SAAS,EAAE,0BAA0B,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { copyFile, cp, mkdir, readdir, stat } from 'node:fs/promises';
|
|
2
2
|
import { dirname, resolve } from 'node:path';
|
|
3
|
-
import
|
|
3
|
+
import * as log from '../utils/logger.js';
|
|
4
4
|
export async function ensureDir(dir) {
|
|
5
5
|
try {
|
|
6
6
|
await mkdir(dir, { recursive: true });
|
|
@@ -17,13 +17,18 @@ export async function findFile(targetDir, file) {
|
|
|
17
17
|
return files.find((f) => file.pattern.test(f)) ?? null;
|
|
18
18
|
}
|
|
19
19
|
catch {
|
|
20
|
-
|
|
20
|
+
log.warn(`Unable to read directory ${targetDir}`);
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
export async function detectLanguage(rootDir) {
|
|
25
25
|
try {
|
|
26
26
|
const srcDir = resolve(rootDir, 'src');
|
|
27
|
+
// Check for Go
|
|
28
|
+
const hasGoMod = await findFile(rootDir, { target: 'go.mod', pattern: /^go\.mod$/ });
|
|
29
|
+
const hasMainGo = await findFile(srcDir, { target: 'main.go', pattern: /^main\.go$/ });
|
|
30
|
+
if (hasGoMod || hasMainGo)
|
|
31
|
+
return 'go';
|
|
27
32
|
const hasPythonFiles = await findFile(srcDir, {
|
|
28
33
|
target: 'main.py',
|
|
29
34
|
pattern: /^main\.py$/i,
|
|
@@ -35,14 +40,11 @@ export async function detectLanguage(rootDir) {
|
|
|
35
40
|
if (hasPythonFiles || hasRequirements) {
|
|
36
41
|
return 'python';
|
|
37
42
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
pattern: /^tsconfig\.json$/i,
|
|
41
|
-
});
|
|
42
|
-
return hasTypeScript ? 'typescript' : 'javascript';
|
|
43
|
+
// Default to TypeScript (JavaScript is no longer supported)
|
|
44
|
+
return 'typescript';
|
|
43
45
|
}
|
|
44
46
|
catch {
|
|
45
|
-
return '
|
|
47
|
+
return 'typescript';
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
export async function copyPath(rootDir, source, dest, targetFilename) {
|
|
@@ -57,15 +59,15 @@ export async function copyPath(rootDir, source, dest, targetFilename) {
|
|
|
57
59
|
force: true,
|
|
58
60
|
preserveTimestamps: true,
|
|
59
61
|
});
|
|
60
|
-
|
|
62
|
+
log.fileOperation('dir', source, true);
|
|
61
63
|
}
|
|
62
64
|
else {
|
|
63
65
|
await copyFile(sourcePath, destPath);
|
|
64
|
-
|
|
66
|
+
log.fileOperation('file', source, true);
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
catch {
|
|
68
|
-
|
|
70
|
+
log.fileOperation('file', source, false);
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/versions.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { APP_SERVER_NAME } from '@camera.ui/common/utils';
|
|
2
1
|
import { exec } from 'node:child_process';
|
|
3
2
|
import https from 'node:https';
|
|
4
3
|
import { promisify } from 'node:util';
|
|
@@ -32,7 +31,7 @@ export function getLatestNodeLTSVersion() {
|
|
|
32
31
|
});
|
|
33
32
|
}
|
|
34
33
|
export async function getLatestCameraUiVersion() {
|
|
35
|
-
const { stdout } = await execAsync(
|
|
34
|
+
const { stdout } = await execAsync('npm view @camera.ui/server dist-tags --json');
|
|
36
35
|
const info = JSON.parse(stdout);
|
|
37
36
|
return info;
|
|
38
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/utils/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/utils/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AA4BlC,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK;aACF,GAAG,CAAC,oCAAoC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjD,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,IAAI,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAsB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjI,OAAO,CAAC;wBACN,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACxC,GAAG,EAAE,SAAS,CAAC,GAAG;wBAClB,WAAW,EAAE,SAAS,CAAC,IAAI;qBAC5B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,6CAA6C,CAAC,CAAC;IAClF,MAAM,IAAI,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camera.ui/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.50",
|
|
4
4
|
"description": "camera.ui cli",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -12,62 +12,48 @@
|
|
|
12
12
|
"format": "prettier --write 'src/' --ignore-unknown --no-error-on-unmatched-pattern",
|
|
13
13
|
"lint": "eslint .",
|
|
14
14
|
"lint:fix": "eslint --fix .",
|
|
15
|
+
"test": "vitest run",
|
|
16
|
+
"release": "bash scripts/release.sh",
|
|
15
17
|
"update": "updates --update ./",
|
|
16
18
|
"install-updates": "npm i --save",
|
|
17
19
|
"prepublishOnly": "npm i --package-lock-only && npm run lint:fix && npm run format && npm run build"
|
|
18
20
|
},
|
|
19
21
|
"dependencies": {
|
|
20
|
-
"@
|
|
21
|
-
"@
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"fs-extra": "^11.3.0",
|
|
30
|
-
"gradient-string": "^3.0.0",
|
|
31
|
-
"inquirer": "^12.6.1",
|
|
32
|
-
"json-loader": "^0.5.7",
|
|
33
|
-
"node-loader": "^2.1.0",
|
|
34
|
-
"ora": "^8.2.0",
|
|
35
|
-
"prompts": "^2.4.2",
|
|
36
|
-
"semver": "^7.7.1",
|
|
37
|
-
"swc-minify-webpack-plugin": "^2.1.3",
|
|
38
|
-
"ts-import": "^5.0.0-beta.1",
|
|
39
|
-
"ts-loader": "^9.5.2",
|
|
40
|
-
"webpack": "^5.99.8",
|
|
41
|
-
"webpack-bundle-analyzer": "^4.10.2",
|
|
42
|
-
"webpack-cli": "^6.0.1"
|
|
22
|
+
"@camera.ui/sdk": "^0.0.5",
|
|
23
|
+
"@clack/prompts": "^1.5.1",
|
|
24
|
+
"adm-zip": "^0.5.17",
|
|
25
|
+
"commander": "^15.0.0",
|
|
26
|
+
"esbuild": "^0.28.1",
|
|
27
|
+
"fs-extra": "^11.3.5",
|
|
28
|
+
"picocolors": "^1.1.1",
|
|
29
|
+
"semver": "^7.8.4",
|
|
30
|
+
"ts-import": "^5.0.0-beta.1"
|
|
43
31
|
},
|
|
44
32
|
"devDependencies": {
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"@types/adm-zip": "^0.5.7",
|
|
33
|
+
"@stylistic/eslint-plugin": "^5.10.0",
|
|
34
|
+
"@types/adm-zip": "^0.5.8",
|
|
48
35
|
"@types/fs-extra": "^11.0.4",
|
|
49
|
-
"@types/node": "
|
|
50
|
-
"@types/
|
|
51
|
-
"@
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"updates": "^16.4.2"
|
|
36
|
+
"@types/node": "25.9.3",
|
|
37
|
+
"@types/semver": "^7.7.1",
|
|
38
|
+
"@typescript-eslint/parser": "^8.61.0",
|
|
39
|
+
"eslint": "9.39.2",
|
|
40
|
+
"globals": "^17.6.0",
|
|
41
|
+
"prettier": "^3.8.4",
|
|
42
|
+
"rimraf": "^6.1.3",
|
|
43
|
+
"typescript": "5.9.3",
|
|
44
|
+
"typescript-eslint": "^8.61.0",
|
|
45
|
+
"updates": "^17.18.0",
|
|
46
|
+
"vitest": "^4.1.9"
|
|
61
47
|
},
|
|
62
|
-
"author": "seydx (https://github.com/
|
|
48
|
+
"author": "seydx (https://github.com/cameraui/cli)",
|
|
63
49
|
"bugs": {
|
|
64
|
-
"url": "https://github.com/
|
|
50
|
+
"url": "https://github.com/cameraui/cli/issues"
|
|
65
51
|
},
|
|
66
|
-
"homepage": "https://github.com/
|
|
52
|
+
"homepage": "https://github.com/cameraui/cli#readme",
|
|
67
53
|
"license": "MIT",
|
|
68
54
|
"repository": {
|
|
69
55
|
"type": "git",
|
|
70
|
-
"url": "git+https://github.com/
|
|
56
|
+
"url": "git+https://github.com/cameraui/cli.git"
|
|
71
57
|
},
|
|
72
58
|
"keywords": [
|
|
73
59
|
"camera.ui",
|
package/templates/base/README.md
CHANGED
|
@@ -110,7 +110,7 @@ The bundled plugin will be available in the `bundle` directory.
|
|
|
110
110
|
The main entry point is `src/index.ts` (or `src/index.js`). Here you can define your plugin's functionality:
|
|
111
111
|
|
|
112
112
|
```typescript
|
|
113
|
-
import type { BasePlugin, LoggerService, PluginAPI } from '@camera.ui/
|
|
113
|
+
import type { BasePlugin, LoggerService, PluginAPI } from '@camera.ui/sdk';
|
|
114
114
|
|
|
115
115
|
export default class SamplePlugin implements BasePlugin {
|
|
116
116
|
constructor(logger: LoggerService, api: PluginAPI) {
|
|
@@ -124,7 +124,7 @@ export default class SamplePlugin implements BasePlugin {
|
|
|
124
124
|
The main entry point is `src/main.py`. Example:
|
|
125
125
|
|
|
126
126
|
```python
|
|
127
|
-
from
|
|
127
|
+
from camera_ui_sdk import (
|
|
128
128
|
BasePlugin,
|
|
129
129
|
LoggerService,
|
|
130
130
|
PluginAPI,
|
|
@@ -6,7 +6,7 @@ We want to ensure camera.ui is secure for everyone. If you've discovered a secur
|
|
|
6
6
|
we appreciate your help in disclosing it to us in a [responsible manner][link-responsible-disclosure].
|
|
7
7
|
|
|
8
8
|
Publicly disclosing a vulnerability can put the entire community at risk. If you've discovered a security concern,
|
|
9
|
-
please send us a [mail](mailto:
|
|
9
|
+
please send us a [mail](mailto:hi@seydx.dev).
|
|
10
10
|
We'll work with you to make sure we understand the scope of the issue, and that we fully address your concern.
|
|
11
11
|
We consider correspondence sent to this email address our highest priority,
|
|
12
12
|
and work to address any issues that arise as quickly as possible.
|
|
@@ -10,12 +10,11 @@
|
|
|
10
10
|
"dependencies": {},
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"cross-env": "^7.0.3",
|
|
13
|
-
"updates": "^
|
|
13
|
+
"updates": "^17.4.0"
|
|
14
14
|
},
|
|
15
15
|
"engines": {},
|
|
16
16
|
"keywords": [
|
|
17
17
|
"camera-ui-plugin"
|
|
18
18
|
],
|
|
19
|
-
"license": "MIT"
|
|
20
|
-
"camera.ui": {}
|
|
19
|
+
"license": "MIT"
|
|
21
20
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// postinstall.js — generated by @camera.ui/cli
|
|
2
|
+
const { platform, arch } = require('os');
|
|
3
|
+
const { existsSync, copyFileSync, mkdirSync, chmodSync } = require('fs');
|
|
4
|
+
const { join, dirname } = require('path');
|
|
5
|
+
|
|
6
|
+
const os = platform();
|
|
7
|
+
const a = arch();
|
|
8
|
+
const goArch = a === 'x64' ? 'amd64' : a;
|
|
9
|
+
const goos = os === 'win32' ? 'windows' : os;
|
|
10
|
+
const ext = os === 'win32' ? '.exe' : '';
|
|
11
|
+
|
|
12
|
+
const pkg = require('./package.json');
|
|
13
|
+
const pluginName = pkg.name.replace(/^@[^/]+\//, '');
|
|
14
|
+
const scope = pkg.name.includes('/') ? pkg.name.split('/')[0] : undefined;
|
|
15
|
+
const platformPkgName = scope ? scope + '/' + pluginName + '-' + goos + '-' + goArch : pluginName + '-' + goos + '-' + goArch;
|
|
16
|
+
|
|
17
|
+
let binarySource;
|
|
18
|
+
try {
|
|
19
|
+
const pkgDir = dirname(require.resolve(platformPkgName + '/package.json'));
|
|
20
|
+
binarySource = join(pkgDir, pluginName + ext);
|
|
21
|
+
} catch {
|
|
22
|
+
process.exit(0); // Platform package not installed — skip silently
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (!existsSync(binarySource)) process.exit(0);
|
|
26
|
+
|
|
27
|
+
const binDir = join(__dirname, 'dist', 'bin');
|
|
28
|
+
mkdirSync(binDir, { recursive: true });
|
|
29
|
+
const target = join(binDir, 'plugin' + ext);
|
|
30
|
+
copyFileSync(binarySource, target);
|
|
31
|
+
try {
|
|
32
|
+
chmodSync(target, 0o755);
|
|
33
|
+
} catch {
|
|
34
|
+
// Ignore chmod errors on platforms that don't support it (e.g. Windows)
|
|
35
|
+
}
|