@caliobase/cli 0.0.0 → 0.0.2

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/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # @caliobase/cli
2
+
3
+ Generic CLI wrapper for a Caliobase-generated content client.
4
+
5
+ Use it through the package (`npx @caliobase/cli ...`) or the installed `caliobase` bin.
6
+
7
+ ```bash
8
+ npx @caliobase/cli <path-to-content-client> methods
9
+ npx @caliobase/cli <path-to-content-client> <namespace.method> [json-arg ...]
10
+ npx @caliobase/cli <path-to-content-client> login --email joe@example.com --password '...' --save
11
+ npx @caliobase/cli <path-to-content-client> exchange-machine-token --token '...' --save
12
+ ```
13
+
14
+ The first positional argument is the generated content client module. It can be a compiled JavaScript module or TypeScript source such as `./libs/content-client/src`.
15
+
16
+ Environment is loaded from `.env` by default. Useful variables:
17
+
18
+ - `CALIOBASE_API_BASE_URL`
19
+ - `CALIOBASE_ACCESS_TOKEN`
20
+ - `CALIOBASE_MACHINE_TOKEN`
21
+ - `CALIOBASE_EMAIL`
22
+ - `CALIOBASE_PASSWORD`
23
+ - `CALIOBASE_ORGANIZATION_ID`
24
+
25
+ Global options:
26
+
27
+ - `--env <path>`: env file path (default: `.env`)
28
+ - `--base-url <url>`: API origin (default: `CALIOBASE_API_BASE_URL` or `http://localhost:4202`)
29
+ - `--no-auth`: do not attach `CALIOBASE_ACCESS_TOKEN`
30
+
31
+ Generated client arguments are JSON-decoded when possible, so object bodies can be passed as strings:
32
+
33
+ ```bash
34
+ npx @caliobase/cli ./libs/content-client/src notes.createNote '{"date":"2026-05-20","body":"hello"}'
35
+ ```
package/package.json CHANGED
@@ -1,12 +1,21 @@
1
1
  {
2
2
  "name": "@caliobase/cli",
3
- "private": false,
4
- "version": "0.0.0",
5
- "main": "index.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
3
+ "version": "0.0.2",
4
+ "type": "commonjs",
5
+ "main": "src/index.js",
6
+ "bin": {
7
+ "caliobase": "src/bin.js"
8
8
  },
9
- "author": "Joe Flateau",
10
- "license": "ISC",
11
- "description": ""
12
- }
9
+ "dependencies": {
10
+ "commander": "^9.4.0",
11
+ "dotenv": "^16.4.5",
12
+ "tslib": "^2.0.0",
13
+ "tsx": "^4.21.0"
14
+ },
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/justicointeractive/caliobase",
18
+ "directory": "packages/caliobase-cli"
19
+ },
20
+ "types": "./src/index.d.ts"
21
+ }
package/src/bin.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/src/bin.js ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const index_js_1 = require("./index.js");
5
+ void (0, index_js_1.runCli)(process.argv.slice(2)).then((exitCode) => {
6
+ process.exitCode = exitCode;
7
+ });
8
+ //# sourceMappingURL=bin.js.map
package/src/bin.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../../../packages/caliobase-cli/src/bin.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AAEpC,KAAK,IAAA,iBAAM,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;IACnD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC9B,CAAC,CAAC,CAAC"}
package/src/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './lib/cli.js';
package/src/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib/cli.js"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/caliobase-cli/src/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ type CliOptions = {
3
+ envFile: string;
4
+ baseUrl?: string;
5
+ save: boolean;
6
+ noAuth: boolean;
7
+ };
8
+ type ParsedArgs = {
9
+ contentClientPath?: string;
10
+ command: string[];
11
+ flags: Map<string, string | boolean>;
12
+ options: CliOptions;
13
+ };
14
+ type CliIO = {
15
+ cwd: string;
16
+ env: NodeJS.ProcessEnv;
17
+ stdout: (value: string) => void;
18
+ stderr: (value: string) => void;
19
+ };
20
+ export declare function runCli(argv: string[], io?: Partial<CliIO>): Promise<number>;
21
+ export declare function parseArgs(argv: string[], env?: NodeJS.ProcessEnv): ParsedArgs;
22
+ export {};
package/src/lib/cli.js ADDED
@@ -0,0 +1,427 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseArgs = exports.runCli = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const node_module_1 = require("node:module");
6
+ const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ const node_url_1 = require("node:url");
9
+ const commander_1 = require("commander");
10
+ const dotenv_1 = require("dotenv");
11
+ const DEFAULT_ENV_FILE = '.env';
12
+ const DEFAULT_BASE_URL = 'http://localhost:4202';
13
+ function runCli(argv, io = {}) {
14
+ var _a, _b, _c, _d;
15
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
+ const cliIo = {
17
+ cwd: (_a = io.cwd) !== null && _a !== void 0 ? _a : process.cwd(),
18
+ env: (_b = io.env) !== null && _b !== void 0 ? _b : process.env,
19
+ stdout: (_c = io.stdout) !== null && _c !== void 0 ? _c : ((value) => console.log(value)),
20
+ stderr: (_d = io.stderr) !== null && _d !== void 0 ? _d : ((value) => console.error(value)),
21
+ };
22
+ try {
23
+ const parsed = parseArgs(argv, cliIo.env);
24
+ const [command] = parsed.command;
25
+ if (!parsed.contentClientPath) {
26
+ printHelp(cliIo, parsed);
27
+ return 0;
28
+ }
29
+ const env = loadEnvFile(parsed.options.envFile, cliIo);
30
+ const Api = yield loadContentClient(parsed.contentClientPath, cliIo.cwd);
31
+ switch (command) {
32
+ case undefined:
33
+ case 'help':
34
+ case '--help':
35
+ case '-h':
36
+ printHelp(cliIo, parsed, Api);
37
+ return 0;
38
+ case 'methods':
39
+ printGeneratedMethods(cliIo, Api, env, parsed.options);
40
+ return 0;
41
+ case 'login':
42
+ yield login(cliIo, parsed, Api, env);
43
+ return 0;
44
+ case 'exchange-machine-token':
45
+ case 'machine-exchange':
46
+ yield exchangeMachineToken(cliIo, parsed, Api, env);
47
+ return 0;
48
+ default:
49
+ yield callGeneratedClient(cliIo, parsed, Api, env);
50
+ return 0;
51
+ }
52
+ }
53
+ catch (error) {
54
+ printError(cliIo, error);
55
+ return 1;
56
+ }
57
+ });
58
+ }
59
+ exports.runCli = runCli;
60
+ function parseArgs(argv, env = process.env) {
61
+ var _a;
62
+ const parser = createArgumentParser(env);
63
+ parser.parse(argv, { from: 'user' });
64
+ const opts = parser.opts();
65
+ const rawArgs = parser.args;
66
+ const helpRequested = opts.help === true;
67
+ const [contentClientPath, ...remainingCommand] = rawArgs;
68
+ const flags = optionFlags(opts);
69
+ const envFile = (_a = opts.env) !== null && _a !== void 0 ? _a : DEFAULT_ENV_FILE;
70
+ const baseUrl = opts.baseUrl;
71
+ const save = opts.save === true;
72
+ const noAuth = opts.auth === false;
73
+ return {
74
+ contentClientPath,
75
+ command: helpRequested ? ['--help'] : remainingCommand,
76
+ flags,
77
+ options: { envFile, baseUrl, save, noAuth },
78
+ };
79
+ }
80
+ exports.parseArgs = parseArgs;
81
+ function createArgumentParser(env) {
82
+ return new commander_1.Command()
83
+ .name('@caliobase/cli')
84
+ .description('Call a generated Caliobase content client')
85
+ .exitOverride()
86
+ .configureOutput({
87
+ writeOut: () => undefined,
88
+ writeErr: () => undefined,
89
+ outputError: () => undefined,
90
+ })
91
+ .helpOption(false)
92
+ .allowUnknownOption(true)
93
+ .allowExcessArguments(true)
94
+ .argument('[contentClientPath]', 'path to a generated content client')
95
+ .argument('[command...]', 'auth helper, methods, or generated client method')
96
+ .option('--env <path>', 'env file path', env['CALIOBASE_ENV_FILE'] || DEFAULT_ENV_FILE)
97
+ .option('--base-url <url>', 'API origin')
98
+ .option('--email <email>', 'login email')
99
+ .option('--password <password>', 'login password')
100
+ .option('--organization-id <id>', 'organization id for login')
101
+ .option('--token <machine-token>', 'machine token to exchange')
102
+ .option('--save', 'save exchanged or login access token to the env file')
103
+ .option('--no-auth', 'do not attach CALIOBASE_ACCESS_TOKEN')
104
+ .option('-h, --help', 'display help');
105
+ }
106
+ function optionFlags(opts) {
107
+ const flags = new Map();
108
+ if (opts.env)
109
+ flags.set('env', opts.env);
110
+ if (opts.baseUrl)
111
+ flags.set('base-url', opts.baseUrl);
112
+ if (opts.email)
113
+ flags.set('email', opts.email);
114
+ if (opts.password)
115
+ flags.set('password', opts.password);
116
+ if (opts.organizationId)
117
+ flags.set('organization-id', opts.organizationId);
118
+ if (opts.token)
119
+ flags.set('token', opts.token);
120
+ if (opts.save)
121
+ flags.set('save', true);
122
+ if (opts.auth === false)
123
+ flags.set('no-auth', true);
124
+ return flags;
125
+ }
126
+ function loadEnvFile(envFile, io) {
127
+ const path = (0, node_path_1.resolve)(io.cwd, envFile);
128
+ if (!(0, node_fs_1.existsSync)(path)) {
129
+ return Object.assign({}, io.env);
130
+ }
131
+ return Object.assign(Object.assign({}, io.env), (0, dotenv_1.parse)((0, node_fs_1.readFileSync)(path, 'utf8')));
132
+ }
133
+ function loadContentClient(contentClientPath, cwd) {
134
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
135
+ const specifier = resolveContentClientSpecifier(contentClientPath, cwd);
136
+ const requireFromCwd = (0, node_module_1.createRequire)((0, node_path_1.join)(cwd, 'package.json'));
137
+ const errors = [];
138
+ try {
139
+ return getApiConstructor(yield nativeImport(specifier), specifier);
140
+ }
141
+ catch (error) {
142
+ errors.push(`native import: ${errorMessage(error)}`);
143
+ }
144
+ try {
145
+ return getApiConstructor(requireFromCwd(specifier), specifier);
146
+ }
147
+ catch (error) {
148
+ errors.push(`native require: ${errorMessage(error)}`);
149
+ }
150
+ try {
151
+ const requireFromCli = (0, node_module_1.createRequire)(__filename);
152
+ const tsx = requireFromCli('tsx/cjs/api');
153
+ return getApiConstructor(tsx.require(specifier, (0, node_path_1.join)(cwd, 'caliobase-cli.ts')), specifier);
154
+ }
155
+ catch (error) {
156
+ errors.push(`tsx: ${errorMessage(error)}`);
157
+ }
158
+ throw new Error(`Unable to load content client '${contentClientPath}'. Tried native import, native require, and tsx TypeScript loading.\n${errors.join('\n')}`);
159
+ });
160
+ }
161
+ function nativeImport(specifier) {
162
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
163
+ const dynamicImport = new Function('specifier', 'return import(specifier)');
164
+ return dynamicImport(specifier.startsWith('/') ? (0, node_url_1.pathToFileURL)(specifier).href : specifier);
165
+ });
166
+ }
167
+ function resolveContentClientSpecifier(contentClientPath, cwd) {
168
+ var _a;
169
+ if (!contentClientPath.startsWith('.') && !contentClientPath.startsWith('/')) {
170
+ return contentClientPath;
171
+ }
172
+ const absolute = (0, node_path_1.resolve)(cwd, contentClientPath);
173
+ const candidates = [
174
+ absolute,
175
+ `${absolute}.js`,
176
+ `${absolute}.cjs`,
177
+ `${absolute}.mjs`,
178
+ `${absolute}.ts`,
179
+ `${absolute}.tsx`,
180
+ (0, node_path_1.join)(absolute, 'index.js'),
181
+ (0, node_path_1.join)(absolute, 'index.cjs'),
182
+ (0, node_path_1.join)(absolute, 'index.mjs'),
183
+ (0, node_path_1.join)(absolute, 'index.ts'),
184
+ (0, node_path_1.join)(absolute, 'index.tsx'),
185
+ ];
186
+ return (_a = candidates.find((candidate) => (0, node_fs_1.existsSync)(candidate))) !== null && _a !== void 0 ? _a : absolute;
187
+ }
188
+ function getApiConstructor(moduleExports, specifier) {
189
+ var _a, _b;
190
+ const exportsRecord = moduleExports;
191
+ const defaultRecord = exportsRecord === null || exportsRecord === void 0 ? void 0 : exportsRecord.default;
192
+ const Api = (_b = (_a = exportsRecord === null || exportsRecord === void 0 ? void 0 : exportsRecord.Api) !== null && _a !== void 0 ? _a : defaultRecord === null || defaultRecord === void 0 ? void 0 : defaultRecord.Api) !== null && _b !== void 0 ? _b : exportsRecord === null || exportsRecord === void 0 ? void 0 : exportsRecord.default;
193
+ if (typeof Api !== 'function') {
194
+ throw new Error(`Content client '${specifier}' must export an Api class or default Api class.`);
195
+ }
196
+ return Api;
197
+ }
198
+ function createApi(Api, options, env, token) {
199
+ const baseUrl = options.baseUrl || env['CALIOBASE_API_BASE_URL'] || DEFAULT_BASE_URL;
200
+ const accessToken = token === null
201
+ ? undefined
202
+ : token || (options.noAuth ? undefined : env['CALIOBASE_ACCESS_TOKEN']);
203
+ return new Api({
204
+ baseUrl,
205
+ baseApiParams: {
206
+ headers: accessToken ? { Authorization: `Bearer ${accessToken}` } : {},
207
+ },
208
+ });
209
+ }
210
+ function login(io, parsed, Api, env) {
211
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
212
+ const email = stringFlag(parsed, 'email') || env['CALIOBASE_EMAIL'];
213
+ const password = stringFlag(parsed, 'password') || env['CALIOBASE_PASSWORD'];
214
+ const organizationId = stringFlag(parsed, 'organization-id') || env['CALIOBASE_ORGANIZATION_ID'];
215
+ if (!email || !password) {
216
+ throw new Error('login requires --email/--password or CALIOBASE_EMAIL/CALIOBASE_PASSWORD in the env file.');
217
+ }
218
+ const api = createApi(Api, parsed.options, env, null);
219
+ const loginResponse = yield invokeGeneratedMethod(api, 'auth.loginUser', [
220
+ { email, password },
221
+ ]);
222
+ const userAccessToken = getStringProperty(yield unwrapResponse(loginResponse), 'accessToken');
223
+ if (!userAccessToken) {
224
+ throw new Error('Login response did not include accessToken.');
225
+ }
226
+ const memberApi = createApi(Api, parsed.options, env, userAccessToken);
227
+ const memberTokenResponse = organizationId
228
+ ? yield invokeGeneratedMethod(memberApi, 'organization.getOrganizationToken', [
229
+ organizationId,
230
+ ])
231
+ : yield invokeGeneratedMethod(memberApi, 'organization.getRootOrganizationToken', []);
232
+ const accessToken = getStringProperty(yield unwrapResponse(memberTokenResponse), 'accessToken');
233
+ if (!accessToken) {
234
+ throw new Error('Organization token response did not include accessToken.');
235
+ }
236
+ if (parsed.options.save) {
237
+ saveEnvValue(io.cwd, parsed.options.envFile, 'CALIOBASE_ACCESS_TOKEN', accessToken);
238
+ }
239
+ printResult(io, { accessToken, saved: parsed.options.save });
240
+ });
241
+ }
242
+ function exchangeMachineToken(io, parsed, Api, env) {
243
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
244
+ const machineToken = stringFlag(parsed, 'token') || env['CALIOBASE_MACHINE_TOKEN'];
245
+ if (!machineToken) {
246
+ throw new Error('exchange-machine-token requires --token or CALIOBASE_MACHINE_TOKEN in the env file.');
247
+ }
248
+ const api = createApi(Api, parsed.options, env, machineToken);
249
+ const response = yield invokeGeneratedMethod(api, 'machineAuth.exchangeToken', []);
250
+ const payload = yield unwrapResponse(response);
251
+ const accessToken = getStringProperty(payload, 'accessToken');
252
+ if (!accessToken) {
253
+ throw new Error('Machine-token exchange response did not include accessToken.');
254
+ }
255
+ if (parsed.options.save) {
256
+ saveEnvValue(io.cwd, parsed.options.envFile, 'CALIOBASE_ACCESS_TOKEN', accessToken);
257
+ }
258
+ printResult(io, Object.assign(Object.assign({}, asRecord(payload)), { saved: parsed.options.save }));
259
+ });
260
+ }
261
+ function callGeneratedClient(io, parsed, Api, env) {
262
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
263
+ const command = parsed.command[0] === 'call' ? parsed.command.slice(1) : parsed.command;
264
+ const api = createApi(Api, parsed.options, env);
265
+ const resolved = resolveGeneratedMethod(api, command);
266
+ const args = resolved.args.map((arg) => parseJsonIfPossible(arg));
267
+ printResult(io, yield unwrapResponse(yield resolved.method.fn(...args)));
268
+ });
269
+ }
270
+ function resolveGeneratedMethod(api, command) {
271
+ const methods = getGeneratedMethods(api);
272
+ const [first, second] = command;
273
+ const candidates = [];
274
+ if (first === null || first === void 0 ? void 0 : first.includes('.')) {
275
+ candidates.push({ key: first, args: command.slice(1) });
276
+ }
277
+ if (first && second) {
278
+ candidates.push({ key: `${first}.${second}`, args: command.slice(2) });
279
+ }
280
+ for (const candidate of candidates) {
281
+ const method = methods.get(candidate.key);
282
+ if (method)
283
+ return { method, args: candidate.args };
284
+ }
285
+ const attempted = command.length ? command.join(' ') : '(none)';
286
+ throw new Error(`Generated method not found: ${attempted}. Run \`@caliobase/cli <path-to-content-client> methods\` to see available methods.`);
287
+ }
288
+ function invokeGeneratedMethod(api, path, args) {
289
+ const method = getGeneratedMethods(api).get(path);
290
+ if (!method) {
291
+ throw new Error(`Generated client does not expose ${path}.`);
292
+ }
293
+ return method.fn(...args);
294
+ }
295
+ function getGeneratedMethods(api) {
296
+ const methods = new Map();
297
+ for (const [namespace, value] of Object.entries(api)) {
298
+ if (!value || typeof value !== 'object')
299
+ continue;
300
+ for (const [method, fn] of Object.entries(value)) {
301
+ if (typeof fn !== 'function')
302
+ continue;
303
+ const path = `${namespace}.${method}`;
304
+ methods.set(path, { path, fn: fn });
305
+ }
306
+ }
307
+ return methods;
308
+ }
309
+ function printGeneratedMethods(io, Api, env, options) {
310
+ io.stdout([...getGeneratedMethods(createApi(Api, options, env)).keys()].sort().join('\n'));
311
+ }
312
+ function printHelp(io, parsed, Api) {
313
+ const exampleMethods = Api
314
+ ? [...getGeneratedMethods(createApi(Api, parsed.options, io.env)).keys()]
315
+ .sort()
316
+ .slice(0, 5)
317
+ .map((method) => ` @caliobase/cli ${parsed.contentClientPath} ${method}`)
318
+ .join('\n')
319
+ : ' @caliobase/cli ./libs/content-client/src methods';
320
+ io.stdout(`Usage: @caliobase/cli <path-to-content-client> <command> [args...] [options]
321
+
322
+ Environment is loaded from .env by default.
323
+
324
+ Global options:
325
+ --env <path> Env file path (default: .env)
326
+ --base-url <url> API origin (default: CALIOBASE_API_BASE_URL or ${DEFAULT_BASE_URL})
327
+ --no-auth Do not attach CALIOBASE_ACCESS_TOKEN
328
+
329
+ Auth helpers:
330
+ login --email <email> --password <password> [--organization-id <id>] [--save]
331
+ exchange-machine-token --token <machine-token> [--save]
332
+
333
+ Generated client commands:
334
+ methods List methods inferred from the generated content client
335
+ <namespace.method> [json-arg ...]
336
+ <namespace> <method> [json-arg ...]
337
+ call <namespace.method> [json-arg ...]
338
+
339
+ Examples:
340
+ ${exampleMethods}
341
+ `);
342
+ }
343
+ function printResult(io, value) {
344
+ if (typeof value === 'string') {
345
+ io.stdout(value);
346
+ return;
347
+ }
348
+ io.stdout(JSON.stringify(value, null, 2));
349
+ }
350
+ function unwrapResponse(value) {
351
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
352
+ if (value && typeof value === 'object') {
353
+ const maybeResponse = value;
354
+ if ('data' in maybeResponse && maybeResponse.data !== null) {
355
+ return maybeResponse.data;
356
+ }
357
+ if (typeof maybeResponse.text === 'function') {
358
+ const text = yield maybeResponse.text();
359
+ if (!text)
360
+ return { ok: maybeResponse.ok, status: maybeResponse.status };
361
+ return parseJsonIfPossible(text);
362
+ }
363
+ }
364
+ return value;
365
+ });
366
+ }
367
+ function parseJsonIfPossible(value) {
368
+ try {
369
+ return JSON.parse(value);
370
+ }
371
+ catch (_a) {
372
+ return value;
373
+ }
374
+ }
375
+ function stringFlag(parsed, name) {
376
+ const value = parsed.flags.get(name);
377
+ return typeof value === 'string' ? value : undefined;
378
+ }
379
+ function getStringProperty(value, key) {
380
+ return value && typeof value === 'object' && key in value
381
+ ? String(value[key])
382
+ : undefined;
383
+ }
384
+ function asRecord(value) {
385
+ return value && typeof value === 'object' && !Array.isArray(value)
386
+ ? value
387
+ : { value };
388
+ }
389
+ function saveEnvValue(cwd, envFile, key, value) {
390
+ const path = (0, node_path_1.resolve)(cwd, envFile);
391
+ const lines = (0, node_fs_1.existsSync)(path) ? (0, node_fs_1.readFileSync)(path, 'utf8').split(/\r?\n/) : [];
392
+ let replaced = false;
393
+ const next = lines.map((line) => {
394
+ if (line.trim().startsWith(`${key}=`)) {
395
+ replaced = true;
396
+ return `${key}=${quoteEnv(value)}`;
397
+ }
398
+ return line;
399
+ });
400
+ if (!replaced) {
401
+ if (next.length && next[next.length - 1] !== '')
402
+ next.push('');
403
+ next.push(`${key}=${quoteEnv(value)}`);
404
+ }
405
+ (0, node_fs_1.writeFileSync)(path, `${next.join('\n').replace(/\n+$/, '')}\n`);
406
+ }
407
+ function quoteEnv(value) {
408
+ if (/^[A-Za-z0-9_./:@+-]+$/.test(value))
409
+ return value;
410
+ return JSON.stringify(value);
411
+ }
412
+ function printError(io, error) {
413
+ const response = error;
414
+ if (response === null || response === void 0 ? void 0 : response.error) {
415
+ io.stderr(JSON.stringify(response.error, null, 2));
416
+ return;
417
+ }
418
+ if (response === null || response === void 0 ? void 0 : response.status) {
419
+ io.stderr(`${response.status} ${response.statusText || ''}`.trim());
420
+ return;
421
+ }
422
+ io.stderr(error instanceof Error ? error.message : String(error));
423
+ }
424
+ function errorMessage(error) {
425
+ return error instanceof Error ? error.message : String(error);
426
+ }
427
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../../packages/caliobase-cli/src/lib/cli.ts"],"names":[],"mappings":"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"}