@objectstack/cli 9.2.0 → 9.3.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/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +34 -0
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/explain.js +1 -1
- package/dist/commands/generate.js +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +7 -0
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/package/install.d.ts +19 -0
- package/dist/commands/package/install.d.ts.map +1 -0
- package/dist/commands/package/install.js +221 -0
- package/dist/commands/package/install.js.map +1 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +9 -2
- package/dist/commands/serve.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/collect-docs.d.ts +37 -0
- package/dist/utils/collect-docs.d.ts.map +1 -0
- package/dist/utils/collect-docs.js +197 -0
- package/dist/utils/collect-docs.js.map +1 -0
- package/dist/utils/collect-docs.test.d.ts +2 -0
- package/dist/utils/collect-docs.test.d.ts.map +1 -0
- package/dist/utils/collect-docs.test.js +107 -0
- package/dist/utils/collect-docs.test.js.map +1 -0
- package/dist/utils/console.d.ts +30 -1
- package/dist/utils/console.d.ts.map +1 -1
- package/dist/utils/console.js +84 -29
- package/dist/utils/console.js.map +1 -1
- package/package.json +44 -43
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
|
|
2
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import { collectDocsFromSrc, lintDocs, collectAndLintDocs } from './collect-docs.js';
|
|
7
|
+
let tmp;
|
|
8
|
+
let configPath;
|
|
9
|
+
let docsDir;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'os-docs-'));
|
|
12
|
+
configPath = path.join(tmp, 'objectstack.config.ts');
|
|
13
|
+
fs.writeFileSync(configPath, '// stub');
|
|
14
|
+
docsDir = path.join(tmp, 'src', 'docs');
|
|
15
|
+
fs.mkdirSync(docsDir, { recursive: true });
|
|
16
|
+
});
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
fs.rmSync(tmp, { recursive: true, force: true });
|
|
19
|
+
});
|
|
20
|
+
const write = (name, content) => fs.writeFileSync(path.join(docsDir, name), content);
|
|
21
|
+
describe('collectDocsFromSrc (ADR-0046 §3.2)', () => {
|
|
22
|
+
it('compiles each flat .md file into a doc item (stem = name)', () => {
|
|
23
|
+
write('crm_index.md', '# CRM Overview\n\nWhat it is.');
|
|
24
|
+
write('crm_lead_guide.md', '---\ntitle: Lead Guide\n---\n\nBody here.');
|
|
25
|
+
const { docs, issues } = collectDocsFromSrc(configPath);
|
|
26
|
+
expect(issues).toHaveLength(0);
|
|
27
|
+
expect(docs.map((d) => d.name).sort()).toEqual(['crm_index', 'crm_lead_guide']);
|
|
28
|
+
const index = docs.find((d) => d.name === 'crm_index');
|
|
29
|
+
expect(index.label).toBe('CRM Overview'); // first # heading
|
|
30
|
+
const guide = docs.find((d) => d.name === 'crm_lead_guide');
|
|
31
|
+
expect(guide.label).toBe('Lead Guide'); // frontmatter title wins
|
|
32
|
+
expect(guide.content).not.toContain('title:'); // frontmatter stripped
|
|
33
|
+
});
|
|
34
|
+
it('errors on subdirectories — flatness is the contract', () => {
|
|
35
|
+
fs.mkdirSync(path.join(docsDir, 'user'));
|
|
36
|
+
write('crm_index.md', '# x');
|
|
37
|
+
const { docs, issues } = collectDocsFromSrc(configPath);
|
|
38
|
+
expect(issues.some((i) => i.rule === 'docs/flat-directory' && i.severity === 'error')).toBe(true);
|
|
39
|
+
expect(docs).toHaveLength(1); // the valid file still collects
|
|
40
|
+
});
|
|
41
|
+
it('errors on non-snake_case filename stems', () => {
|
|
42
|
+
write('Lead-Guide.md', '# x');
|
|
43
|
+
const { docs, issues } = collectDocsFromSrc(configPath);
|
|
44
|
+
expect(issues.some((i) => i.rule === 'docs/filename')).toBe(true);
|
|
45
|
+
expect(docs).toHaveLength(0);
|
|
46
|
+
});
|
|
47
|
+
it('ignores non-markdown files and returns empty when src/docs is absent', () => {
|
|
48
|
+
write('notes.txt', 'not a doc');
|
|
49
|
+
expect(collectDocsFromSrc(configPath).docs).toHaveLength(0);
|
|
50
|
+
fs.rmSync(docsDir, { recursive: true });
|
|
51
|
+
expect(collectDocsFromSrc(configPath).docs).toHaveLength(0);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('lintDocs (ADR-0046 §3.2–§3.4)', () => {
|
|
55
|
+
const doc = (name, content) => ({ name, content });
|
|
56
|
+
it('requires manifest.namespace when docs ship', () => {
|
|
57
|
+
const issues = lintDocs([doc('crm_index', 'x')], undefined);
|
|
58
|
+
expect(issues.some((i) => i.rule === 'docs/namespace-required')).toBe(true);
|
|
59
|
+
});
|
|
60
|
+
it('requires the namespace prefix on every doc name', () => {
|
|
61
|
+
const issues = lintDocs([doc('lead_guide', 'x')], 'crm');
|
|
62
|
+
const hit = issues.find((i) => i.rule === 'docs/namespace-prefix');
|
|
63
|
+
expect(hit?.severity).toBe('error');
|
|
64
|
+
expect(hit?.message).toContain('crm_lead_guide');
|
|
65
|
+
});
|
|
66
|
+
it('rejects duplicate names across inline + collected docs', () => {
|
|
67
|
+
const issues = lintDocs([doc('crm_index', 'a'), doc('crm_index', 'b')], 'crm');
|
|
68
|
+
expect(issues.some((i) => i.rule === 'docs/duplicate-name')).toBe(true);
|
|
69
|
+
});
|
|
70
|
+
it('bans image references (v1 text-only)', () => {
|
|
71
|
+
const issues = lintDocs([doc('crm_index', 'See ')], 'crm');
|
|
72
|
+
expect(issues.some((i) => i.rule === 'docs/no-images')).toBe(true);
|
|
73
|
+
});
|
|
74
|
+
it('bans MDX/JSX but tolerates code blocks that mention it', () => {
|
|
75
|
+
expect(lintDocs([doc('crm_a', 'Use <Tabs items={x}> here')], 'crm')
|
|
76
|
+
.some((i) => i.rule === 'docs/no-mdx')).toBe(true);
|
|
77
|
+
expect(lintDocs([doc('crm_b', 'Example:\n\n```jsx\n<Tabs items={x} />\n```\n\nplain prose')], 'crm')
|
|
78
|
+
.some((i) => i.rule === 'docs/no-mdx')).toBe(false);
|
|
79
|
+
});
|
|
80
|
+
it('resolves same-package relative links and flags broken ones', () => {
|
|
81
|
+
const docs = [
|
|
82
|
+
doc('crm_index', 'See the [guide](./crm_lead_guide.md#start) and [missing](./crm_nope.md).'),
|
|
83
|
+
doc('crm_lead_guide', 'Back to [index](crm_index.md).'),
|
|
84
|
+
];
|
|
85
|
+
const issues = lintDocs(docs, 'crm');
|
|
86
|
+
const broken = issues.filter((i) => i.rule === 'docs/broken-link');
|
|
87
|
+
expect(broken).toHaveLength(1);
|
|
88
|
+
expect(broken[0].message).toContain('crm_nope');
|
|
89
|
+
});
|
|
90
|
+
it('leaves cross-package links (foreign prefix) to publish-time checks', () => {
|
|
91
|
+
const issues = lintDocs([doc('crm_index', 'See [billing](./billing_setup.md).')], 'crm');
|
|
92
|
+
expect(issues.some((i) => i.rule === 'docs/broken-link')).toBe(false);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
describe('collectAndLintDocs', () => {
|
|
96
|
+
it('merges inline stack docs with collected files and lints the union', () => {
|
|
97
|
+
write('crm_admin_setup.md', '# Admin Setup\n\nSee [index](./crm_index.md).');
|
|
98
|
+
const stack = {
|
|
99
|
+
manifest: { namespace: 'crm' },
|
|
100
|
+
docs: [{ name: 'crm_index', content: '# CRM' }],
|
|
101
|
+
};
|
|
102
|
+
const { docs, issues } = collectAndLintDocs(configPath, stack);
|
|
103
|
+
expect(docs.map((d) => d.name).sort()).toEqual(['crm_admin_setup', 'crm_index']);
|
|
104
|
+
expect(issues).toHaveLength(0);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=collect-docs.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-docs.test.js","sourceRoot":"","sources":["../../src/utils/collect-docs.test.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/console.d.ts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
/** URL mount path for the Console portal inside the ObjectStack server */
|
|
2
2
|
export declare const CONSOLE_PATH = "/_console";
|
|
3
|
+
/**
|
|
4
|
+
* The vendored `@objectstack/console` package is version-locked to the
|
|
5
|
+
* framework release, so a healthy install always carries the same major
|
|
6
|
+
* as the CLI. Node module resolution from the consumer cwd, however,
|
|
7
|
+
* climbs `node_modules` directories all the way up the filesystem — a
|
|
8
|
+
* stray install outside the workspace (e.g. a leftover
|
|
9
|
+
* `~/node_modules/@objectstack/console` from an old npm experiment) can
|
|
10
|
+
* shadow the bundled build and silently serve a stale Console.
|
|
11
|
+
*
|
|
12
|
+
* Guard: skip any candidate whose major version differs from the CLI's
|
|
13
|
+
* own, and warn so the stray install is discoverable.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isConsoleVersionCompatible(candidateVersion: unknown, cliVersion: string): boolean;
|
|
3
16
|
/**
|
|
4
17
|
* Resolve the filesystem path to a Console SPA package.
|
|
5
18
|
*
|
|
@@ -23,8 +36,24 @@ export declare const CONSOLE_PATH = "/_console";
|
|
|
23
36
|
* 3. Sibling-repo dev fallback — `../objectui/apps/console` — matched
|
|
24
37
|
* by the package name on disk so an unrelated `apps/console`
|
|
25
38
|
* doesn't get picked up by accident.
|
|
39
|
+
*
|
|
40
|
+
* Strategies 1 and 2 additionally require the candidate's major version
|
|
41
|
+
* to match the CLI's own (see `isConsoleVersionCompatible`) — node
|
|
42
|
+
* resolution climbs past the workspace root, so a stale install higher
|
|
43
|
+
* up the filesystem must not shadow the version-locked bundle.
|
|
44
|
+
* Mismatches are skipped with a warning. The sibling-repo fallback is
|
|
45
|
+
* exempt: the objectui workspace versions independently and is an
|
|
46
|
+
* explicit dev opt-in.
|
|
26
47
|
*/
|
|
27
|
-
export
|
|
48
|
+
export interface ResolveConsoleOptions {
|
|
49
|
+
/** Resolution origin; defaults to `process.cwd()`. */
|
|
50
|
+
cwd?: string;
|
|
51
|
+
/** Override the CLI's own version (tests). */
|
|
52
|
+
cliVersion?: string;
|
|
53
|
+
/** Warning sink; defaults to `console.warn`. */
|
|
54
|
+
warn?: (message: string) => void;
|
|
55
|
+
}
|
|
56
|
+
export declare function resolveConsolePath(options?: ResolveConsoleOptions): string | null;
|
|
28
57
|
/**
|
|
29
58
|
* Check whether the Console portal has a pre-built `dist/` directory.
|
|
30
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/utils/console.ts"],"names":[],"mappings":"AAyCA,0EAA0E;AAC1E,eAAO,MAAM,YAAY,cAAc,CAAC;AAOxC
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/utils/console.ts"],"names":[],"mappings":"AAyCA,0EAA0E;AAC1E,eAAO,MAAM,YAAY,cAAc,CAAC;AAOxC;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAKT;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAmGjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE;;;iBAM1F,GAAG;EAmFzB"}
|
package/dist/utils/console.js
CHANGED
|
@@ -34,39 +34,84 @@
|
|
|
34
34
|
import path from 'path';
|
|
35
35
|
import fs from 'fs';
|
|
36
36
|
import { createRequire } from 'module';
|
|
37
|
-
import { pathToFileURL } from 'url';
|
|
37
|
+
import { pathToFileURL, fileURLToPath } from 'url';
|
|
38
38
|
// ─── Constants ──────────────────────────────────────────────────────
|
|
39
39
|
/** URL mount path for the Console portal inside the ObjectStack server */
|
|
40
40
|
export const CONSOLE_PATH = '/_console';
|
|
41
41
|
/** Canonical npm package name that ships the Console SPA. */
|
|
42
42
|
const CONSOLE_PACKAGE = '@objectstack/console';
|
|
43
|
-
// ───
|
|
43
|
+
// ─── Version Guard ──────────────────────────────────────────────────
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* The vendored `@objectstack/console` package is version-locked to the
|
|
46
|
+
* framework release, so a healthy install always carries the same major
|
|
47
|
+
* as the CLI. Node module resolution from the consumer cwd, however,
|
|
48
|
+
* climbs `node_modules` directories all the way up the filesystem — a
|
|
49
|
+
* stray install outside the workspace (e.g. a leftover
|
|
50
|
+
* `~/node_modules/@objectstack/console` from an old npm experiment) can
|
|
51
|
+
* shadow the bundled build and silently serve a stale Console.
|
|
46
52
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
53
|
+
* Guard: skip any candidate whose major version differs from the CLI's
|
|
54
|
+
* own, and warn so the stray install is discoverable.
|
|
55
|
+
*/
|
|
56
|
+
export function isConsoleVersionCompatible(candidateVersion, cliVersion) {
|
|
57
|
+
if (typeof candidateVersion !== 'string')
|
|
58
|
+
return false;
|
|
59
|
+
const candidateMajor = majorOf(candidateVersion);
|
|
60
|
+
const cliMajor = majorOf(cliVersion);
|
|
61
|
+
return candidateMajor !== null && candidateMajor === cliMajor;
|
|
62
|
+
}
|
|
63
|
+
function majorOf(version) {
|
|
64
|
+
const match = /^v?(\d+)[.-]/.exec(version.trim()) ?? /^v?(\d+)$/.exec(version.trim());
|
|
65
|
+
return match ? Number(match[1]) : null;
|
|
66
|
+
}
|
|
67
|
+
let cachedCliVersion;
|
|
68
|
+
/**
|
|
69
|
+
* Read this CLI's own version by walking up from the compiled module to
|
|
70
|
+
* the nearest `package.json`. Returns null (guard disabled, fail open)
|
|
71
|
+
* if it can't be determined — never let the version check break
|
|
72
|
+
* resolution outright.
|
|
67
73
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
74
|
+
function getCliVersion() {
|
|
75
|
+
if (cachedCliVersion !== undefined)
|
|
76
|
+
return cachedCliVersion;
|
|
77
|
+
let version = null;
|
|
78
|
+
try {
|
|
79
|
+
let dir = path.dirname(fileURLToPath(import.meta.url));
|
|
80
|
+
for (let depth = 0; depth < 6; depth++) {
|
|
81
|
+
const pkgPath = path.join(dir, 'package.json');
|
|
82
|
+
if (fs.existsSync(pkgPath)) {
|
|
83
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
84
|
+
if (typeof pkg.version === 'string')
|
|
85
|
+
version = pkg.version;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
const parent = path.dirname(dir);
|
|
89
|
+
if (parent === dir)
|
|
90
|
+
break;
|
|
91
|
+
dir = parent;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Unreadable own package.json — leave the guard disabled.
|
|
96
|
+
}
|
|
97
|
+
cachedCliVersion = version;
|
|
98
|
+
return version;
|
|
99
|
+
}
|
|
100
|
+
export function resolveConsolePath(options) {
|
|
101
|
+
const cwd = options?.cwd ?? process.cwd();
|
|
102
|
+
const cliVersion = options?.cliVersion ?? getCliVersion();
|
|
103
|
+
const warn = options?.warn ?? ((message) => console.warn(message));
|
|
104
|
+
/** Version guard for vendored-package candidates (strategies 1 & 2). */
|
|
105
|
+
const versionOk = (dir, candidateVersion) => {
|
|
106
|
+
if (!cliVersion)
|
|
107
|
+
return true; // own version unknown — fail open
|
|
108
|
+
if (isConsoleVersionCompatible(candidateVersion, cliVersion))
|
|
109
|
+
return true;
|
|
110
|
+
const shown = typeof candidateVersion === 'string' ? candidateVersion : 'unknown';
|
|
111
|
+
warn(` ⚠ Ignoring ${CONSOLE_PACKAGE}@${shown} at ${dir} — major version does not match this CLI (${cliVersion}). ` +
|
|
112
|
+
`This is usually a stale install outside your workspace (e.g. a leftover ~/node_modules); remove it or install a matching version.`);
|
|
113
|
+
return false;
|
|
114
|
+
};
|
|
70
115
|
const resolutionBases = [
|
|
71
116
|
pathToFileURL(path.join(cwd, 'package.json')).href, // consumer workspace
|
|
72
117
|
import.meta.url, // CLI package itself
|
|
@@ -82,7 +127,9 @@ export function resolveConsolePath() {
|
|
|
82
127
|
const dir = path.dirname(resolvedPkgJson);
|
|
83
128
|
try {
|
|
84
129
|
const pkg = JSON.parse(fs.readFileSync(resolvedPkgJson, 'utf-8'));
|
|
85
|
-
if (pkg.name === CONSOLE_PACKAGE &&
|
|
130
|
+
if (pkg.name === CONSOLE_PACKAGE &&
|
|
131
|
+
versionOk(dir, pkg.version) &&
|
|
132
|
+
!candidates.includes(dir)) {
|
|
86
133
|
candidates.push(dir);
|
|
87
134
|
}
|
|
88
135
|
}
|
|
@@ -96,9 +143,17 @@ export function resolveConsolePath() {
|
|
|
96
143
|
}
|
|
97
144
|
// 2: direct filesystem check in cwd/node_modules.
|
|
98
145
|
const directPath = path.join(cwd, 'node_modules', ...CONSOLE_PACKAGE.split('/'));
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
146
|
+
const directPkgJson = path.join(directPath, 'package.json');
|
|
147
|
+
if (fs.existsSync(directPkgJson) && !candidates.includes(directPath)) {
|
|
148
|
+
try {
|
|
149
|
+
const pkg = JSON.parse(fs.readFileSync(directPkgJson, 'utf-8'));
|
|
150
|
+
if (pkg.name === CONSOLE_PACKAGE && versionOk(directPath, pkg.version)) {
|
|
151
|
+
candidates.push(directPath);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Skip invalid package.json
|
|
156
|
+
}
|
|
102
157
|
}
|
|
103
158
|
// 3: sibling-repo dev fallback. Useful when iterating on the Console
|
|
104
159
|
// source inside `objectui` while running the framework CLI here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/utils/console.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/utils/console.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectstack/cli",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.3.0",
|
|
4
4
|
"description": "Command Line Interface for ObjectStack Protocol",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -47,48 +47,49 @@
|
|
|
47
47
|
"tsx": "^4.22.4",
|
|
48
48
|
"yaml": "^2.9.0",
|
|
49
49
|
"zod": "^4.4.3",
|
|
50
|
-
"@objectstack/account": "9.
|
|
51
|
-
"@objectstack/client": "9.
|
|
52
|
-
"@objectstack/console": "9.
|
|
53
|
-
"@objectstack/core": "^9.
|
|
54
|
-
"@objectstack/driver-memory": "^9.
|
|
55
|
-
"@objectstack/driver-mongodb": "^9.
|
|
56
|
-
"@objectstack/driver-sql": "^9.
|
|
57
|
-
"@objectstack/driver-sqlite-wasm": "^9.
|
|
58
|
-
"@objectstack/formula": "9.
|
|
59
|
-
"@objectstack/objectql": "^9.
|
|
60
|
-
"@objectstack/observability": "^9.
|
|
61
|
-
"@objectstack/platform-objects": "9.
|
|
62
|
-
"@objectstack/plugin-approvals": "9.
|
|
63
|
-
"@objectstack/plugin-audit": "9.
|
|
64
|
-
"@objectstack/plugin-auth": "9.
|
|
65
|
-
"@objectstack/plugin-email": "9.
|
|
66
|
-
"@objectstack/plugin-hono-server": "9.
|
|
67
|
-
"@objectstack/mcp": "9.
|
|
68
|
-
"@objectstack/plugin-org-scoping": "9.
|
|
69
|
-
"@objectstack/plugin-reports": "9.
|
|
70
|
-
"@objectstack/plugin-security": "9.
|
|
71
|
-
"@objectstack/plugin-sharing": "9.
|
|
72
|
-
"@objectstack/
|
|
73
|
-
"@objectstack/
|
|
74
|
-
"@objectstack/
|
|
75
|
-
"@objectstack/
|
|
76
|
-
"@objectstack/
|
|
77
|
-
"@objectstack/
|
|
78
|
-
"@objectstack/service-
|
|
79
|
-
"@objectstack/service-
|
|
80
|
-
"@objectstack/service-
|
|
81
|
-
"@objectstack/service-
|
|
82
|
-
"@objectstack/service-
|
|
83
|
-
"@objectstack/service-
|
|
84
|
-
"@objectstack/service-
|
|
85
|
-
"@objectstack/service-
|
|
86
|
-
"@objectstack/service-
|
|
87
|
-
"@objectstack/service-
|
|
88
|
-
"@objectstack/service-
|
|
89
|
-
"@objectstack/service-
|
|
90
|
-
"@objectstack/
|
|
91
|
-
"@objectstack/
|
|
50
|
+
"@objectstack/account": "9.3.0",
|
|
51
|
+
"@objectstack/client": "9.3.0",
|
|
52
|
+
"@objectstack/console": "9.3.0",
|
|
53
|
+
"@objectstack/core": "^9.3.0",
|
|
54
|
+
"@objectstack/driver-memory": "^9.3.0",
|
|
55
|
+
"@objectstack/driver-mongodb": "^9.3.0",
|
|
56
|
+
"@objectstack/driver-sql": "^9.3.0",
|
|
57
|
+
"@objectstack/driver-sqlite-wasm": "^9.3.0",
|
|
58
|
+
"@objectstack/formula": "9.3.0",
|
|
59
|
+
"@objectstack/objectql": "^9.3.0",
|
|
60
|
+
"@objectstack/observability": "^9.3.0",
|
|
61
|
+
"@objectstack/platform-objects": "9.3.0",
|
|
62
|
+
"@objectstack/plugin-approvals": "9.3.0",
|
|
63
|
+
"@objectstack/plugin-audit": "9.3.0",
|
|
64
|
+
"@objectstack/plugin-auth": "9.3.0",
|
|
65
|
+
"@objectstack/plugin-email": "9.3.0",
|
|
66
|
+
"@objectstack/plugin-hono-server": "9.3.0",
|
|
67
|
+
"@objectstack/mcp": "9.3.0",
|
|
68
|
+
"@objectstack/plugin-org-scoping": "9.3.0",
|
|
69
|
+
"@objectstack/plugin-reports": "9.3.0",
|
|
70
|
+
"@objectstack/plugin-security": "9.3.0",
|
|
71
|
+
"@objectstack/plugin-sharing": "9.3.0",
|
|
72
|
+
"@objectstack/trigger-record-change": "9.3.0",
|
|
73
|
+
"@objectstack/trigger-api": "9.3.0",
|
|
74
|
+
"@objectstack/trigger-schedule": "9.3.0",
|
|
75
|
+
"@objectstack/plugin-webhooks": "9.3.0",
|
|
76
|
+
"@objectstack/rest": "9.3.0",
|
|
77
|
+
"@objectstack/runtime": "^9.3.0",
|
|
78
|
+
"@objectstack/service-ai": "9.3.0",
|
|
79
|
+
"@objectstack/service-analytics": "9.3.0",
|
|
80
|
+
"@objectstack/service-automation": "9.3.0",
|
|
81
|
+
"@objectstack/service-cache": "9.3.0",
|
|
82
|
+
"@objectstack/service-datasource": "9.3.0",
|
|
83
|
+
"@objectstack/service-feed": "9.3.0",
|
|
84
|
+
"@objectstack/service-job": "9.3.0",
|
|
85
|
+
"@objectstack/service-messaging": "9.3.0",
|
|
86
|
+
"@objectstack/service-package": "9.3.0",
|
|
87
|
+
"@objectstack/service-queue": "9.3.0",
|
|
88
|
+
"@objectstack/service-realtime": "9.3.0",
|
|
89
|
+
"@objectstack/service-settings": "9.3.0",
|
|
90
|
+
"@objectstack/service-storage": "9.3.0",
|
|
91
|
+
"@objectstack/spec": "9.3.0",
|
|
92
|
+
"@objectstack/types": "9.3.0"
|
|
92
93
|
},
|
|
93
94
|
"devDependencies": {
|
|
94
95
|
"@oclif/plugin-help": "^6.2.50",
|