@objectstack/cli 6.9.0 → 7.1.0
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/dist/commands/dev.d.ts +14 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +120 -3
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/i18n/extract.d.ts.map +1 -1
- package/dist/commands/i18n/extract.js +48 -9
- package/dist/commands/i18n/extract.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +39 -26
- package/dist/commands/serve.js.map +1 -1
- package/dist/utils/console.d.ts +21 -9
- package/dist/utils/console.d.ts.map +1 -1
- package/dist/utils/console.js +96 -63
- package/dist/utils/console.js.map +1 -1
- package/dist/utils/i18n-coverage.d.ts +2 -2
- package/dist/utils/i18n-coverage.d.ts.map +1 -1
- package/dist/utils/i18n-coverage.js +86 -0
- package/dist/utils/i18n-coverage.js.map +1 -1
- package/dist/utils/i18n-extract.d.ts +22 -5
- package/dist/utils/i18n-extract.d.ts.map +1 -1
- package/dist/utils/i18n-extract.js +151 -24
- package/dist/utils/i18n-extract.js.map +1 -1
- package/package.json +38 -42
package/dist/commands/dev.d.ts
CHANGED
|
@@ -17,6 +17,10 @@ export default class Dev extends Command {
|
|
|
17
17
|
'database-driver': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
18
|
'database-auth-token': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
19
|
'auth-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
fresh: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
'seed-admin': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
22
|
+
'admin-email': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
|
+
'admin-password': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
24
|
};
|
|
21
25
|
run(): Promise<void>;
|
|
22
26
|
/**
|
|
@@ -33,5 +37,15 @@ export default class Dev extends Command {
|
|
|
33
37
|
* The watcher runs in this parent process; the serve child stays untouched.
|
|
34
38
|
*/
|
|
35
39
|
private startWatchRecompile;
|
|
40
|
+
/**
|
|
41
|
+
* Poll `/api/v1/health` until 200, then POST `/api/v1/auth/sign-up/email`
|
|
42
|
+
* to provision an admin account. Best-effort: any failure is logged
|
|
43
|
+
* but does not bring down the dev server.
|
|
44
|
+
*
|
|
45
|
+
* Pairs naturally with `--fresh`: an ephemeral DB has zero users, so
|
|
46
|
+
* the first sign-up is automatically the platform admin (promoted by
|
|
47
|
+
* `bootstrapPlatformAdmin` in @objectstack/plugin-security).
|
|
48
|
+
*/
|
|
49
|
+
private seedAdminAccount;
|
|
36
50
|
}
|
|
37
51
|
//# sourceMappingURL=dev.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AASnD,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,OAAO;IACtC,OAAgB,WAAW,SAA4C;IAEvE,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;;;;MA8DnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA+L1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,mBAAmB;IA8F3B;;;;;;;;OAQG;YACW,gBAAgB;CA+C/B"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -4,6 +4,7 @@ import chalk from 'chalk';
|
|
|
4
4
|
import { spawnSync, spawn } from 'child_process';
|
|
5
5
|
import dotenvFlow from 'dotenv-flow';
|
|
6
6
|
import fs from 'fs';
|
|
7
|
+
import os from 'os';
|
|
7
8
|
import path from 'path';
|
|
8
9
|
import { printHeader, printKV, printStep, printError } from '../utils/format.js';
|
|
9
10
|
export default class Dev extends Command {
|
|
@@ -50,6 +51,27 @@ export default class Dev extends Command {
|
|
|
50
51
|
'auth-secret': Flags.string({
|
|
51
52
|
description: 'Secret for @objectstack/plugin-auth (overrides $AUTH_SECRET; dev mode injects an insecure default if neither is set)',
|
|
52
53
|
}),
|
|
54
|
+
// ── Ephemeral / fresh-environment helpers ────────────────────────
|
|
55
|
+
// `--fresh` creates an isolated tempdir for OS_HOME / DB / uploads
|
|
56
|
+
// so every run starts from a clean slate. Combine with `--seed-admin`
|
|
57
|
+
// (default-on when --fresh) to also provision a logged-in admin
|
|
58
|
+
// account, so backend debugging never blocks on first-run wizards.
|
|
59
|
+
fresh: Flags.boolean({
|
|
60
|
+
description: 'Start with an ephemeral OS_HOME under the OS tempdir (clean DB, uploads, storage); auto-deletes on exit. Implies --seed-admin unless --no-seed-admin is given.',
|
|
61
|
+
default: false,
|
|
62
|
+
}),
|
|
63
|
+
'seed-admin': Flags.boolean({
|
|
64
|
+
description: 'After the server is ready, POST /api/v1/auth/sign-up/email to seed an admin account. Default: on when --fresh.',
|
|
65
|
+
allowNo: true,
|
|
66
|
+
}),
|
|
67
|
+
'admin-email': Flags.string({
|
|
68
|
+
description: 'Email for the seeded admin account.',
|
|
69
|
+
default: 'admin@dev.local',
|
|
70
|
+
}),
|
|
71
|
+
'admin-password': Flags.string({
|
|
72
|
+
description: 'Password for the seeded admin account (min 8 chars).',
|
|
73
|
+
default: 'admin12345',
|
|
74
|
+
}),
|
|
53
75
|
};
|
|
54
76
|
async run() {
|
|
55
77
|
const { args, flags } = await this.parse(Dev);
|
|
@@ -95,6 +117,31 @@ export default class Dev extends Command {
|
|
|
95
117
|
}
|
|
96
118
|
printStep('Starting dev server (local mode)...');
|
|
97
119
|
const environmentId = flags['environment-id'] ?? process.env.OS_ENVIRONMENT_ID ?? 'env_local';
|
|
120
|
+
// ── --fresh: ephemeral OS_HOME under the OS tempdir ─────────────
|
|
121
|
+
// Creates a unique scratch dir that owns ALL persistent state for
|
|
122
|
+
// this run: the SQLite DB (via OS_HOME → <home>/data/...), the
|
|
123
|
+
// storage-service uploads root (OS_STORAGE_ROOT), and any other
|
|
124
|
+
// state plugins keyed off OS_HOME. Auto-deleted on exit.
|
|
125
|
+
let freshHome;
|
|
126
|
+
let freshDbUrl;
|
|
127
|
+
let freshStorageRoot;
|
|
128
|
+
if (flags.fresh) {
|
|
129
|
+
freshHome = fs.mkdtempSync(path.join(os.tmpdir(), 'objectstack-dev-'));
|
|
130
|
+
fs.mkdirSync(path.join(freshHome, 'data'), { recursive: true });
|
|
131
|
+
freshDbUrl = `file:${path.join(freshHome, 'data', 'dev.db')}`;
|
|
132
|
+
freshStorageRoot = path.join(freshHome, 'uploads');
|
|
133
|
+
fs.mkdirSync(freshStorageRoot, { recursive: true });
|
|
134
|
+
printKV('Fresh OS_HOME', freshHome, '🧪');
|
|
135
|
+
const cleanup = () => {
|
|
136
|
+
try {
|
|
137
|
+
fs.rmSync(freshHome, { recursive: true, force: true });
|
|
138
|
+
}
|
|
139
|
+
catch { /* noop */ }
|
|
140
|
+
};
|
|
141
|
+
process.on('exit', cleanup);
|
|
142
|
+
process.on('SIGINT', () => { cleanup(); process.exit(130); });
|
|
143
|
+
process.on('SIGTERM', () => { cleanup(); process.exit(143); });
|
|
144
|
+
}
|
|
98
145
|
// NOTE: Do NOT set NODE_ENV='development' here. Oclif's tsx-based
|
|
99
146
|
// TypeScript source loader (activated when NODE_ENV is 'test' or
|
|
100
147
|
// 'development') currently mis-handles `.json` requires inside
|
|
@@ -104,19 +151,22 @@ export default class Dev extends Command {
|
|
|
104
151
|
// flag below already opts the serve command into dev semantics,
|
|
105
152
|
// and serve.ts will set NODE_ENV='development' internally before
|
|
106
153
|
// any runtime modules are imported.
|
|
154
|
+
const effectiveDb = flags.database ?? freshDbUrl;
|
|
107
155
|
const localEnv = {
|
|
108
156
|
...process.env,
|
|
109
157
|
OS_ENVIRONMENT_ID: environmentId,
|
|
110
158
|
OS_ARTIFACT_PATH: artifactPath,
|
|
111
|
-
...(
|
|
159
|
+
...(freshHome ? { OS_HOME: freshHome } : {}),
|
|
160
|
+
...(freshStorageRoot ? { OS_STORAGE_ROOT: freshStorageRoot } : {}),
|
|
161
|
+
...(effectiveDb ? { OS_DATABASE_URL: effectiveDb } : {}),
|
|
112
162
|
...(flags['database-driver'] ? { OS_DATABASE_DRIVER: flags['database-driver'] } : {}),
|
|
113
163
|
...(flags['database-auth-token'] ? { OS_DATABASE_AUTH_TOKEN: flags['database-auth-token'] } : {}),
|
|
114
164
|
...(flags['auth-secret'] ? { AUTH_SECRET: flags['auth-secret'] } : {}),
|
|
115
165
|
};
|
|
116
166
|
printKV('Environment ID', environmentId, '🎯');
|
|
117
167
|
printKV('Artifact', isUrl ? artifactPath : path.relative(process.cwd(), artifactPath), '📦');
|
|
118
|
-
if (
|
|
119
|
-
printKV('Database', redactDbUrl(
|
|
168
|
+
if (effectiveDb)
|
|
169
|
+
printKV('Database', redactDbUrl(effectiveDb), '🗄️');
|
|
120
170
|
const port = flags.port ?? process.env.PORT;
|
|
121
171
|
const binPath = process.argv[1];
|
|
122
172
|
const serveChild = spawn(process.execPath, [
|
|
@@ -128,6 +178,20 @@ export default class Dev extends Command {
|
|
|
128
178
|
...(flags.verbose ? ['--verbose'] : []),
|
|
129
179
|
...(flags.preset ? ['--preset', flags.preset] : []),
|
|
130
180
|
], { stdio: 'inherit', env: localEnv });
|
|
181
|
+
// ── Seed admin account after the server is ready ────────────────
|
|
182
|
+
// `--seed-admin` defaults to ON when `--fresh` is set; otherwise
|
|
183
|
+
// OFF (so we don't surprise long-lived dev DBs with extra users).
|
|
184
|
+
// Uses better-auth's public sign-up endpoint, which the dev-mode
|
|
185
|
+
// bootstrap bypass (auth-manager.ts) lets through even when
|
|
186
|
+
// OS_DISABLE_SIGNUP=true for the very first user.
|
|
187
|
+
const seedAdmin = flags['seed-admin'] ?? flags.fresh;
|
|
188
|
+
if (seedAdmin) {
|
|
189
|
+
void this.seedAdminAccount({
|
|
190
|
+
port: port ?? '3000',
|
|
191
|
+
email: flags['admin-email'],
|
|
192
|
+
password: flags['admin-password'],
|
|
193
|
+
});
|
|
194
|
+
}
|
|
131
195
|
// ── Watch-recompile loop ────────────────────────────────────────
|
|
132
196
|
// When the agent edits an objectstack source file (config or
|
|
133
197
|
// src/**), debounce-rebuild dist/objectstack.json. The server
|
|
@@ -279,6 +343,59 @@ export default class Dev extends Command {
|
|
|
279
343
|
console.error(chalk.yellow(` ⚠ watch-recompile failed to start: ${e?.message ?? e}`));
|
|
280
344
|
});
|
|
281
345
|
}
|
|
346
|
+
/**
|
|
347
|
+
* Poll `/api/v1/health` until 200, then POST `/api/v1/auth/sign-up/email`
|
|
348
|
+
* to provision an admin account. Best-effort: any failure is logged
|
|
349
|
+
* but does not bring down the dev server.
|
|
350
|
+
*
|
|
351
|
+
* Pairs naturally with `--fresh`: an ephemeral DB has zero users, so
|
|
352
|
+
* the first sign-up is automatically the platform admin (promoted by
|
|
353
|
+
* `bootstrapPlatformAdmin` in @objectstack/plugin-security).
|
|
354
|
+
*/
|
|
355
|
+
async seedAdminAccount(opts) {
|
|
356
|
+
const base = `http://localhost:${opts.port}`;
|
|
357
|
+
const deadline = Date.now() + 30_000;
|
|
358
|
+
while (Date.now() < deadline) {
|
|
359
|
+
try {
|
|
360
|
+
const r = await fetch(`${base}/api/v1/health`);
|
|
361
|
+
if (r.ok)
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
364
|
+
catch { /* not ready */ }
|
|
365
|
+
await new Promise(r => setTimeout(r, 250));
|
|
366
|
+
}
|
|
367
|
+
try {
|
|
368
|
+
const r = await fetch(`${base}/api/v1/auth/sign-up/email`, {
|
|
369
|
+
method: 'POST',
|
|
370
|
+
headers: {
|
|
371
|
+
'content-type': 'application/json',
|
|
372
|
+
// better-auth enforces a same-origin / trusted-origin check on
|
|
373
|
+
// POST. localhost is auto-trusted in dev (auth-manager.ts), but
|
|
374
|
+
// we still must send an Origin header for the check to fire.
|
|
375
|
+
'origin': base,
|
|
376
|
+
},
|
|
377
|
+
body: JSON.stringify({
|
|
378
|
+
email: opts.email,
|
|
379
|
+
password: opts.password,
|
|
380
|
+
name: 'Dev Admin',
|
|
381
|
+
}),
|
|
382
|
+
});
|
|
383
|
+
if (r.ok) {
|
|
384
|
+
console.log(chalk.green(`\n🔑 Admin seeded: ${chalk.bold(opts.email)} / ${chalk.bold(opts.password)}`));
|
|
385
|
+
}
|
|
386
|
+
else if (r.status === 422 || r.status === 400) {
|
|
387
|
+
// User already exists — normal when reusing a non-fresh DB.
|
|
388
|
+
console.log(chalk.dim(` (admin ${opts.email} already exists — skipping seed)`));
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
const body = await r.text().catch(() => '');
|
|
392
|
+
console.log(chalk.yellow(` ⚠ seed-admin failed (HTTP ${r.status}): ${body.slice(0, 200)}`));
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
catch (e) {
|
|
396
|
+
console.log(chalk.yellow(` ⚠ seed-admin request failed: ${e?.message ?? e}`));
|
|
397
|
+
}
|
|
398
|
+
}
|
|
282
399
|
}
|
|
283
400
|
function redactDbUrl(url) {
|
|
284
401
|
try {
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../src/commands/i18n/extract.ts"],"names":[],"mappings":"AAIA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../src/commands/i18n/extract.ts"],"names":[],"mappings":"AAIA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AA2BnD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC9C,OAAgB,WAAW,SACkH;IAE7I,OAAgB,QAAQ,WAMtB;IAEF,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;;;;;;MAiCnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8H3B"}
|
|
@@ -8,6 +8,19 @@ import { loadConfig } from '../../utils/config.js';
|
|
|
8
8
|
import { printHeader, printSuccess, printError, printInfo, printStep, createTimer, } from '../../utils/format.js';
|
|
9
9
|
import { extractTranslations, renderTranslationModule } from '../../utils/i18n-extract.js';
|
|
10
10
|
const FILL_STRATEGIES = ['empty', 'default', 'todo'];
|
|
11
|
+
/** Count string-leaf entries under a nested object — used for reporting. */
|
|
12
|
+
function countLeaves(obj) {
|
|
13
|
+
if (!obj || typeof obj !== 'object')
|
|
14
|
+
return 0;
|
|
15
|
+
let n = 0;
|
|
16
|
+
for (const v of Object.values(obj)) {
|
|
17
|
+
if (typeof v === 'string')
|
|
18
|
+
n += 1;
|
|
19
|
+
else if (v && typeof v === 'object')
|
|
20
|
+
n += countLeaves(v);
|
|
21
|
+
}
|
|
22
|
+
return n;
|
|
23
|
+
}
|
|
11
24
|
/**
|
|
12
25
|
* `os i18n extract` — scaffold translation skeletons.
|
|
13
26
|
*
|
|
@@ -86,10 +99,18 @@ export default class I18nExtract extends Command {
|
|
|
86
99
|
});
|
|
87
100
|
const localesEmitted = Object.keys(result.bundles);
|
|
88
101
|
const objectsOnly = flags['objects-only'];
|
|
102
|
+
// Count metadataForms keys per locale (computed separately so we
|
|
103
|
+
// can show users an honest summary even when --objects-only).
|
|
104
|
+
const metadataFormsCounts = {};
|
|
105
|
+
for (const locale of localesEmitted) {
|
|
106
|
+
metadataFormsCounts[locale] = countLeaves(result.bundles[locale]?.metadataForms);
|
|
107
|
+
}
|
|
108
|
+
const anyMetadataForms = Object.values(metadataFormsCounts).some((n) => n > 0);
|
|
89
109
|
if (flags.json) {
|
|
90
110
|
console.log(JSON.stringify({
|
|
91
111
|
totalExpected: result.totalExpected,
|
|
92
112
|
counts: result.counts,
|
|
113
|
+
metadataFormsCounts,
|
|
93
114
|
bundles: objectsOnly
|
|
94
115
|
? Object.fromEntries(localesEmitted.map((l) => [l, result.bundles[l].objects ?? {}]))
|
|
95
116
|
: result.bundles,
|
|
@@ -103,19 +124,28 @@ export default class I18nExtract extends Command {
|
|
|
103
124
|
for (const locale of localesEmitted) {
|
|
104
125
|
const n = result.counts[locale];
|
|
105
126
|
const tone = n === 0 ? chalk.green : chalk.yellow;
|
|
127
|
+
const mfN = metadataFormsCounts[locale] ?? 0;
|
|
128
|
+
const mfTail = mfN > 0 ? chalk.dim(` + ${mfN} metadataForms key(s)`) : '';
|
|
106
129
|
console.log(` ${locale.padEnd(nameWidth)} ${tone(String(n).padStart(5))} key(s)` +
|
|
107
|
-
chalk.dim(` (of ${result.totalExpected} expected)`));
|
|
130
|
+
chalk.dim(` (of ${result.totalExpected} expected)`) + mfTail);
|
|
108
131
|
}
|
|
109
132
|
console.log('');
|
|
110
133
|
if (flags['dry-run'] || !flags.out) {
|
|
111
134
|
for (const locale of localesEmitted) {
|
|
112
|
-
if (result.counts[locale] === 0)
|
|
135
|
+
if (result.counts[locale] === 0 && metadataFormsCounts[locale] === 0)
|
|
113
136
|
continue;
|
|
114
|
-
console.log(chalk.dim(`── ${locale} ──`));
|
|
137
|
+
console.log(chalk.dim(`── ${locale} (objects) ──`));
|
|
115
138
|
console.log(renderTranslationModule(result.bundles[locale], {
|
|
116
139
|
locale,
|
|
117
140
|
objectsOnly,
|
|
118
141
|
}));
|
|
142
|
+
if (metadataFormsCounts[locale] > 0) {
|
|
143
|
+
console.log(chalk.dim(`── ${locale} (metadataForms) ──`));
|
|
144
|
+
console.log(renderTranslationModule(result.bundles[locale], {
|
|
145
|
+
locale,
|
|
146
|
+
kind: 'metadataForms',
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
119
149
|
}
|
|
120
150
|
printInfo('Dry run — no files written (pass --out=<dir> to write).');
|
|
121
151
|
return;
|
|
@@ -124,12 +154,21 @@ export default class I18nExtract extends Command {
|
|
|
124
154
|
fs.mkdirSync(outDir, { recursive: true });
|
|
125
155
|
let written = 0;
|
|
126
156
|
for (const locale of localesEmitted) {
|
|
127
|
-
if (result.counts[locale]
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
157
|
+
if (result.counts[locale] > 0) {
|
|
158
|
+
const file = path.join(outDir, `${locale}.objects.generated.ts`);
|
|
159
|
+
fs.writeFileSync(file, renderTranslationModule(result.bundles[locale], { locale, objectsOnly }), 'utf8');
|
|
160
|
+
written += 1;
|
|
161
|
+
printInfo(`Wrote ${chalk.white(path.relative(process.cwd(), file))} (${result.counts[locale]} keys)`);
|
|
162
|
+
}
|
|
163
|
+
if (metadataFormsCounts[locale] > 0) {
|
|
164
|
+
const file = path.join(outDir, `${locale}.metadata-forms.generated.ts`);
|
|
165
|
+
fs.writeFileSync(file, renderTranslationModule(result.bundles[locale], { locale, kind: 'metadataForms' }), 'utf8');
|
|
166
|
+
written += 1;
|
|
167
|
+
printInfo(`Wrote ${chalk.white(path.relative(process.cwd(), file))} (${metadataFormsCounts[locale]} keys)`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (!anyMetadataForms) {
|
|
171
|
+
printInfo('(no metadataForms keys discovered for these locales)');
|
|
133
172
|
}
|
|
134
173
|
console.log('');
|
|
135
174
|
printSuccess(`Generated ${written} file(s) ${chalk.dim(`(${timer.display()})`)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../src/commands/i18n/extract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../src/commands/i18n/extract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AA2InD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAAkM;IAE7N,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;;;;MAenB;IAEF;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAEtD;IAEH;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAIpD;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AA2InD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAAkM;IAE7N,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;;;;MAenB;IAEF;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAEtD;IAEH;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAIpD;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA46C3B"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -556,24 +556,6 @@ export default class Serve extends Command {
|
|
|
556
556
|
resolvedDriverLabel = 'SqlDriver(mysql2)';
|
|
557
557
|
resolvedDatabaseUrl = databaseUrl;
|
|
558
558
|
}
|
|
559
|
-
else if (driverType === 'turso' || driverType === 'libsql') {
|
|
560
|
-
let TursoDriver;
|
|
561
|
-
try {
|
|
562
|
-
({ TursoDriver } = await import('@objectstack/driver-turso'));
|
|
563
|
-
}
|
|
564
|
-
catch (err) {
|
|
565
|
-
throw new Error(`libsql/turso driver selected but @objectstack/driver-turso is not installed. ` +
|
|
566
|
-
`Install it with: npm install @objectstack/driver-turso (or use a file: URL to default to better-sqlite3). ` +
|
|
567
|
-
`(${err?.message ?? err})`);
|
|
568
|
-
}
|
|
569
|
-
await kernel.use(new DriverPlugin(new TursoDriver({
|
|
570
|
-
url: databaseUrl ?? 'file:./local.db',
|
|
571
|
-
authToken: process.env.OS_DATABASE_AUTH_TOKEN,
|
|
572
|
-
})));
|
|
573
|
-
trackPlugin('TursoDriver');
|
|
574
|
-
resolvedDriverLabel = 'TursoDriver';
|
|
575
|
-
resolvedDatabaseUrl = databaseUrl ?? 'file:./local.db';
|
|
576
|
-
}
|
|
577
559
|
else if (isDev) {
|
|
578
560
|
// Default in dev: in-memory driver
|
|
579
561
|
const { InMemoryDriver } = await import('@objectstack/driver-memory');
|
|
@@ -938,7 +920,26 @@ export default class Serve extends Command {
|
|
|
938
920
|
console.warn(chalk.yellow(` ⚠ RuntimeConfigPlugin auto-inject failed: ${err?.message ?? err}`));
|
|
939
921
|
}
|
|
940
922
|
}
|
|
941
|
-
// 5c. Auto-register
|
|
923
|
+
// 5c. Auto-register PlatformObjectsPlugin so platform-default
|
|
924
|
+
// translation bundles (Setup App + metadata-type configuration
|
|
925
|
+
// forms shipped by @objectstack/platform-objects) are contributed
|
|
926
|
+
// into the kernel's i18n service. Without this, Setup nav labels
|
|
927
|
+
// and metadata-admin form labels fall back to English literals
|
|
928
|
+
// even when Accept-Language requests another locale.
|
|
929
|
+
const hasPlatformObjectsPlugin = plugins.some((p) => p?.name === 'com.objectstack.platform-objects'
|
|
930
|
+
|| p?.constructor?.name === 'PlatformObjectsPlugin');
|
|
931
|
+
if (!hasPlatformObjectsPlugin) {
|
|
932
|
+
try {
|
|
933
|
+
const platformPkg = '@objectstack/platform-objects/plugin';
|
|
934
|
+
const { PlatformObjectsPlugin } = await import(/* webpackIgnore: true */ platformPkg);
|
|
935
|
+
await kernel.use(new PlatformObjectsPlugin());
|
|
936
|
+
trackPlugin('PlatformObjects');
|
|
937
|
+
}
|
|
938
|
+
catch (err) {
|
|
939
|
+
console.warn(chalk.yellow(` ⚠ PlatformObjectsPlugin auto-inject failed: ${err?.message ?? err}`));
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
// 5d. Auto-register AuthPlugin (and paired Security/Audit) when the
|
|
942
943
|
// 'auth' tier is enabled and no auth plugin is already configured.
|
|
943
944
|
// The Account portal expects /api/v1/auth/* to be served by
|
|
944
945
|
// better-auth via @objectstack/plugin-auth. Without this block,
|
|
@@ -1109,17 +1110,29 @@ export default class Serve extends Command {
|
|
|
1109
1110
|
: undefined,
|
|
1110
1111
|
}));
|
|
1111
1112
|
trackPlugin('Auth');
|
|
1113
|
+
// Pair: OrgScopingPlugin (multi-tenant) — optional, must register BEFORE SecurityPlugin
|
|
1114
|
+
// OrgScopingPlugin provides `organization_id` auto-stamp, per-org
|
|
1115
|
+
// seed-replay, and default-org bootstrap. SecurityPlugin probes
|
|
1116
|
+
// the `org-scoping` service at start() time and conditionally
|
|
1117
|
+
// strips the wildcard `tenant_isolation` RLS when this plugin
|
|
1118
|
+
// is absent — so registration order matters.
|
|
1119
|
+
const multiTenant = String(process.env.OS_MULTI_TENANT ?? 'false').toLowerCase() !== 'false';
|
|
1120
|
+
if (multiTenant) {
|
|
1121
|
+
try {
|
|
1122
|
+
const orgScopingPkg = '@objectstack/plugin-org-scoping';
|
|
1123
|
+
const { OrgScopingPlugin } = await import(/* webpackIgnore: true */ orgScopingPkg);
|
|
1124
|
+
await kernel.use(new OrgScopingPlugin());
|
|
1125
|
+
trackPlugin('OrgScoping');
|
|
1126
|
+
}
|
|
1127
|
+
catch {
|
|
1128
|
+
// optional — multi-tenant mode requested but plugin not installed
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1112
1131
|
// Pair: SecurityPlugin (RBAC) — optional
|
|
1113
1132
|
try {
|
|
1114
1133
|
const securityPkg = '@objectstack/plugin-security';
|
|
1115
1134
|
const { SecurityPlugin } = await import(/* webpackIgnore: true */ securityPkg);
|
|
1116
|
-
|
|
1117
|
-
// RLS policies and the `organization_id` auto-injection on
|
|
1118
|
-
// insert. Default is off so local `dev`/`start` runs seed
|
|
1119
|
-
// demo data inline at boot without requiring an org —
|
|
1120
|
-
// enable explicitly for cloud / multi-org deployments.
|
|
1121
|
-
const multiTenant = String(process.env.OS_MULTI_TENANT ?? 'false').toLowerCase() !== 'false';
|
|
1122
|
-
await kernel.use(new SecurityPlugin({ multiTenant }));
|
|
1135
|
+
await kernel.use(new SecurityPlugin());
|
|
1123
1136
|
trackPlugin('Security');
|
|
1124
1137
|
}
|
|
1125
1138
|
catch {
|