@ketvietlab/ketjs 0.1.1
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 +21 -0
- package/README.md +36 -0
- package/dist/agent/capabilities.d.ts +62 -0
- package/dist/agent/capabilities.d.ts.map +1 -0
- package/dist/agent/capabilities.js +89 -0
- package/dist/agent/capabilities.js.map +1 -0
- package/dist/agent/permissions.d.ts +56 -0
- package/dist/agent/permissions.d.ts.map +1 -0
- package/dist/agent/permissions.js +209 -0
- package/dist/agent/permissions.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +698 -0
- package/dist/cli.js.map +1 -0
- package/dist/codegen/dts.d.ts +3 -0
- package/dist/codegen/dts.d.ts.map +1 -0
- package/dist/codegen/dts.js +94 -0
- package/dist/codegen/dts.js.map +1 -0
- package/dist/data/adapter.d.ts +4 -0
- package/dist/data/adapter.d.ts.map +1 -0
- package/dist/data/adapter.js +18 -0
- package/dist/data/adapter.js.map +1 -0
- package/dist/data/changeset.d.ts +49 -0
- package/dist/data/changeset.d.ts.map +1 -0
- package/dist/data/changeset.js +206 -0
- package/dist/data/changeset.js.map +1 -0
- package/dist/data/expr.d.ts +59 -0
- package/dist/data/expr.d.ts.map +1 -0
- package/dist/data/expr.js +61 -0
- package/dist/data/expr.js.map +1 -0
- package/dist/data/fleet.d.ts +28 -0
- package/dist/data/fleet.d.ts.map +1 -0
- package/dist/data/fleet.js +82 -0
- package/dist/data/fleet.js.map +1 -0
- package/dist/data/list-search.d.ts +93 -0
- package/dist/data/list-search.d.ts.map +1 -0
- package/dist/data/list-search.js +268 -0
- package/dist/data/list-search.js.map +1 -0
- package/dist/data/migrate.d.ts +75 -0
- package/dist/data/migrate.d.ts.map +1 -0
- package/dist/data/migrate.js +136 -0
- package/dist/data/migrate.js.map +1 -0
- package/dist/data/pool.d.ts +20 -0
- package/dist/data/pool.d.ts.map +1 -0
- package/dist/data/pool.js +92 -0
- package/dist/data/pool.js.map +1 -0
- package/dist/data/query.d.ts +111 -0
- package/dist/data/query.d.ts.map +1 -0
- package/dist/data/query.js +268 -0
- package/dist/data/query.js.map +1 -0
- package/dist/data/sqlite.d.ts +3 -0
- package/dist/data/sqlite.d.ts.map +1 -0
- package/dist/data/sqlite.js +107 -0
- package/dist/data/sqlite.js.map +1 -0
- package/dist/data/time.d.ts +9 -0
- package/dist/data/time.d.ts.map +1 -0
- package/dist/data/time.js +107 -0
- package/dist/data/time.js.map +1 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/apps.d.ts +43 -0
- package/dist/kernel/apps.d.ts.map +1 -0
- package/dist/kernel/apps.js +234 -0
- package/dist/kernel/apps.js.map +1 -0
- package/dist/kernel/compose.d.ts +6 -0
- package/dist/kernel/compose.d.ts.map +1 -0
- package/dist/kernel/compose.js +976 -0
- package/dist/kernel/compose.js.map +1 -0
- package/dist/kernel/define.d.ts +9 -0
- package/dist/kernel/define.d.ts.map +1 -0
- package/dist/kernel/define.js +140 -0
- package/dist/kernel/define.js.map +1 -0
- package/dist/kernel/diff.d.ts +11 -0
- package/dist/kernel/diff.d.ts.map +1 -0
- package/dist/kernel/diff.js +106 -0
- package/dist/kernel/diff.js.map +1 -0
- package/dist/kernel/errors.d.ts +17 -0
- package/dist/kernel/errors.d.ts.map +1 -0
- package/dist/kernel/errors.js +43 -0
- package/dist/kernel/errors.js.map +1 -0
- package/dist/kernel/graph.d.ts +3 -0
- package/dist/kernel/graph.d.ts.map +1 -0
- package/dist/kernel/graph.js +56 -0
- package/dist/kernel/graph.js.map +1 -0
- package/dist/kernel/i18n.d.ts +43 -0
- package/dist/kernel/i18n.d.ts.map +1 -0
- package/dist/kernel/i18n.js +79 -0
- package/dist/kernel/i18n.js.map +1 -0
- package/dist/kernel/index.d.ts +7 -0
- package/dist/kernel/index.d.ts.map +1 -0
- package/dist/kernel/index.js +7 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/kernel/layout.d.ts +17 -0
- package/dist/kernel/layout.d.ts.map +1 -0
- package/dist/kernel/layout.js +77 -0
- package/dist/kernel/layout.js.map +1 -0
- package/dist/kernel/menu.d.ts +27 -0
- package/dist/kernel/menu.d.ts.map +1 -0
- package/dist/kernel/menu.js +65 -0
- package/dist/kernel/menu.js.map +1 -0
- package/dist/kernel/modules.d.ts +31 -0
- package/dist/kernel/modules.d.ts.map +1 -0
- package/dist/kernel/modules.js +322 -0
- package/dist/kernel/modules.js.map +1 -0
- package/dist/kernel/routes.d.ts +24 -0
- package/dist/kernel/routes.d.ts.map +1 -0
- package/dist/kernel/routes.js +98 -0
- package/dist/kernel/routes.js.map +1 -0
- package/dist/kernel/types.d.ts +8 -0
- package/dist/kernel/types.d.ts.map +1 -0
- package/dist/kernel/types.js +67 -0
- package/dist/kernel/types.js.map +1 -0
- package/dist/kernel/workspace.d.ts +62 -0
- package/dist/kernel/workspace.d.ts.map +1 -0
- package/dist/kernel/workspace.js +156 -0
- package/dist/kernel/workspace.js.map +1 -0
- package/dist/scaffold/index.d.ts +2 -0
- package/dist/scaffold/index.d.ts.map +1 -0
- package/dist/scaffold/index.js +49 -0
- package/dist/scaffold/index.js.map +1 -0
- package/dist/scaffold/templates/app.test.ts.tmpl +17 -0
- package/dist/scaffold/templates/biome.json.tmpl +30 -0
- package/dist/scaffold/templates/dev.mjs.tmpl +16 -0
- package/dist/scaffold/templates/gitignore.tmpl +24 -0
- package/dist/scaffold/templates/ket.workspace.ts.tmpl +18 -0
- package/dist/scaffold/templates/module.ts.tmpl +27 -0
- package/dist/scaffold/templates/package.json.tmpl +25 -0
- package/dist/scaffold/templates/tsconfig.json.tmpl +15 -0
- package/dist/server/boot.d.ts +173 -0
- package/dist/server/boot.d.ts.map +1 -0
- package/dist/server/boot.js +659 -0
- package/dist/server/boot.js.map +1 -0
- package/dist/server/config.d.ts +48 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +82 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/ctx.d.ts +13 -0
- package/dist/server/ctx.d.ts.map +1 -0
- package/dist/server/ctx.js +496 -0
- package/dist/server/ctx.js.map +1 -0
- package/dist/server/fn.d.ts +34 -0
- package/dist/server/fn.d.ts.map +1 -0
- package/dist/server/fn.js +170 -0
- package/dist/server/fn.js.map +1 -0
- package/dist/server/http.d.ts +79 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +459 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/idem.d.ts +31 -0
- package/dist/server/idem.d.ts.map +1 -0
- package/dist/server/idem.js +68 -0
- package/dist/server/idem.js.map +1 -0
- package/dist/server/jobs.d.ts +5 -0
- package/dist/server/jobs.d.ts.map +1 -0
- package/dist/server/jobs.js +24 -0
- package/dist/server/jobs.js.map +1 -0
- package/dist/server/multipart.d.ts +18 -0
- package/dist/server/multipart.d.ts.map +1 -0
- package/dist/server/multipart.js +183 -0
- package/dist/server/multipart.js.map +1 -0
- package/dist/server/project.d.ts +9 -0
- package/dist/server/project.d.ts.map +1 -0
- package/dist/server/project.js +67 -0
- package/dist/server/project.js.map +1 -0
- package/dist/server/queue.d.ts +80 -0
- package/dist/server/queue.d.ts.map +1 -0
- package/dist/server/queue.js +494 -0
- package/dist/server/queue.js.map +1 -0
- package/dist/server/respond.d.ts +91 -0
- package/dist/server/respond.d.ts.map +1 -0
- package/dist/server/respond.js +99 -0
- package/dist/server/respond.js.map +1 -0
- package/dist/server/runtime.d.ts +14 -0
- package/dist/server/runtime.d.ts.map +1 -0
- package/dist/server/runtime.js +25 -0
- package/dist/server/runtime.js.map +1 -0
- package/dist/server/session.d.ts +55 -0
- package/dist/server/session.d.ts.map +1 -0
- package/dist/server/session.js +172 -0
- package/dist/server/session.js.map +1 -0
- package/dist/server/sessionstore.d.ts +54 -0
- package/dist/server/sessionstore.d.ts.map +1 -0
- package/dist/server/sessionstore.js +232 -0
- package/dist/server/sessionstore.js.map +1 -0
- package/dist/server/storage/index.d.ts +11 -0
- package/dist/server/storage/index.d.ts.map +1 -0
- package/dist/server/storage/index.js +31 -0
- package/dist/server/storage/index.js.map +1 -0
- package/dist/server/storage/local.d.ts +5 -0
- package/dist/server/storage/local.d.ts.map +1 -0
- package/dist/server/storage/local.js +165 -0
- package/dist/server/storage/local.js.map +1 -0
- package/dist/server/storage/s3.d.ts +11 -0
- package/dist/server/storage/s3.d.ts.map +1 -0
- package/dist/server/storage/s3.js +133 -0
- package/dist/server/storage/s3.js.map +1 -0
- package/dist/server/storage/sigv4.d.ts +23 -0
- package/dist/server/storage/sigv4.d.ts.map +1 -0
- package/dist/server/storage/sigv4.js +79 -0
- package/dist/server/storage/sigv4.js.map +1 -0
- package/dist/server/storage/types.d.ts +37 -0
- package/dist/server/storage/types.d.ts.map +1 -0
- package/dist/server/storage/types.js +82 -0
- package/dist/server/storage/types.js.map +1 -0
- package/dist/server/stream.d.ts +43 -0
- package/dist/server/stream.d.ts.map +1 -0
- package/dist/server/stream.js +117 -0
- package/dist/server/stream.js.map +1 -0
- package/dist/server/streamstore.d.ts +29 -0
- package/dist/server/streamstore.d.ts.map +1 -0
- package/dist/server/streamstore.js +140 -0
- package/dist/server/streamstore.js.map +1 -0
- package/dist/server/tenants.d.ts +108 -0
- package/dist/server/tenants.d.ts.map +1 -0
- package/dist/server/tenants.js +172 -0
- package/dist/server/tenants.js.map +1 -0
- package/dist/server/transport/index.d.ts +5 -0
- package/dist/server/transport/index.d.ts.map +1 -0
- package/dist/server/transport/index.js +3 -0
- package/dist/server/transport/index.js.map +1 -0
- package/dist/server/transport/memory.d.ts +14 -0
- package/dist/server/transport/memory.d.ts.map +1 -0
- package/dist/server/transport/memory.js +36 -0
- package/dist/server/transport/memory.js.map +1 -0
- package/dist/server/transport/types.d.ts +44 -0
- package/dist/server/transport/types.d.ts.map +1 -0
- package/dist/server/transport/types.js +79 -0
- package/dist/server/transport/types.js.map +1 -0
- package/dist/server/worker.d.ts +33 -0
- package/dist/server/worker.d.ts.map +1 -0
- package/dist/server/worker.js +428 -0
- package/dist/server/worker.js.map +1 -0
- package/dist/testing.d.ts +146 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +406 -0
- package/dist/testing.js.map +1 -0
- package/dist/theme/contracts.d.ts +4 -0
- package/dist/theme/contracts.d.ts.map +1 -0
- package/dist/theme/contracts.js +87 -0
- package/dist/theme/contracts.js.map +1 -0
- package/dist/theme/index.d.ts +8 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +7 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/joints.d.ts +19 -0
- package/dist/theme/joints.d.ts.map +1 -0
- package/dist/theme/joints.js +126 -0
- package/dist/theme/joints.js.map +1 -0
- package/dist/theme/ktl/compile.d.ts +26 -0
- package/dist/theme/ktl/compile.d.ts.map +1 -0
- package/dist/theme/ktl/compile.js +226 -0
- package/dist/theme/ktl/compile.js.map +1 -0
- package/dist/theme/ktl/lexer.d.ts +20 -0
- package/dist/theme/ktl/lexer.d.ts.map +1 -0
- package/dist/theme/ktl/lexer.js +56 -0
- package/dist/theme/ktl/lexer.js.map +1 -0
- package/dist/theme/ktl/parser.d.ts +64 -0
- package/dist/theme/ktl/parser.d.ts.map +1 -0
- package/dist/theme/ktl/parser.js +220 -0
- package/dist/theme/ktl/parser.js.map +1 -0
- package/dist/theme/render.d.ts +19 -0
- package/dist/theme/render.d.ts.map +1 -0
- package/dist/theme/render.js +246 -0
- package/dist/theme/render.js.map +1 -0
- package/dist/theme/templates.d.ts +2 -0
- package/dist/theme/templates.d.ts.map +1 -0
- package/dist/theme/templates.js +40 -0
- package/dist/theme/templates.js.map +1 -0
- package/dist/theme/tokens.d.ts +4 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/theme/tokens.js +15 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/theme/viewmodel.d.ts +6 -0
- package/dist/theme/viewmodel.d.ts.map +1 -0
- package/dist/theme/viewmodel.js +40 -0
- package/dist/theme/viewmodel.js.map +1 -0
- package/dist/types.d.ts +614 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
// Installing and removing apps, without giving up the thing that makes fleet
|
|
2
|
+
// upgrades survivable.
|
|
3
|
+
//
|
|
4
|
+
// Odoo lets each database install a different set of modules. That is why an Odoo
|
|
5
|
+
// fleet upgrade is N unknown migrations rather than one known one, and it is the
|
|
6
|
+
// root of the failures rather than a detail of them (D16).
|
|
7
|
+
//
|
|
8
|
+
// So the split here is deliberate: a deployment decides at BUILD time which modules
|
|
9
|
+
// exist, and every database it serves gets the same schema. A database then decides
|
|
10
|
+
// at RUN time which of them are ON. Installing changes behaviour — which functions
|
|
11
|
+
// answer, which sections may be placed, which fills appear — and never the shape of
|
|
12
|
+
// the database.
|
|
13
|
+
//
|
|
14
|
+
// The consequence worth stating plainly: uninstalling does NOT delete anything. The
|
|
15
|
+
// columns stay, the rows stay, and re-installing finds the data where it was. Odoo
|
|
16
|
+
// drops columns on uninstall and people lose data to a misclick; refusing to do that
|
|
17
|
+
// is the whole point of D7.
|
|
18
|
+
import { KetError } from './errors.js';
|
|
19
|
+
// The row records a DECISION, not a fact: 'removed' is how an explicit uninstall
|
|
20
|
+
// survives the next auto-install sweep. Deleting the row instead would let an
|
|
21
|
+
// autoInstall app walk straight back in the moment anything else was installed —
|
|
22
|
+
// which it did, until a probe caught it.
|
|
23
|
+
export const APP_DDL = `
|
|
24
|
+
CREATE TABLE IF NOT EXISTS ket_app (
|
|
25
|
+
name TEXT PRIMARY KEY,
|
|
26
|
+
state TEXT NOT NULL,
|
|
27
|
+
changed_at TEXT NOT NULL
|
|
28
|
+
);
|
|
29
|
+
`;
|
|
30
|
+
export const APP_DDL_PG = APP_DDL.replace('changed_at TEXT NOT NULL', 'changed_at TIMESTAMPTZ NOT NULL');
|
|
31
|
+
const dependentsOf = (manifest, name) => Object.entries(manifest.modules)
|
|
32
|
+
.filter(([, m]) => m.depends.includes(name))
|
|
33
|
+
.map(([n]) => n);
|
|
34
|
+
export async function createAppRegistry(manifest, adapter, o = {}) {
|
|
35
|
+
const now = o.now ?? (() => new Date().toISOString());
|
|
36
|
+
// A module declares that it *may* arrive on its own; the deployment decides
|
|
37
|
+
// whether it does. Off is what a developer wants when they are watching one
|
|
38
|
+
// module at a time and an app that installs itself is a surprise, not a service.
|
|
39
|
+
const autoInstallEnabled = o.autoInstall !== false;
|
|
40
|
+
const pg = adapter.name === 'postgres';
|
|
41
|
+
const p = (n) => (pg ? `$${n}` : '?');
|
|
42
|
+
await adapter.exec(pg ? APP_DDL_PG : APP_DDL);
|
|
43
|
+
const known = (name) => {
|
|
44
|
+
const m = manifest.modules[name];
|
|
45
|
+
if (!m) {
|
|
46
|
+
throw new KetError({
|
|
47
|
+
code: 'E_UNKNOWN_APP',
|
|
48
|
+
message: `this deployment does not ship an app called "${name}"`,
|
|
49
|
+
hint: `shipped: ${Object.keys(manifest.modules).join(', ')}. An app has to be built in before it can be installed.`,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return m;
|
|
53
|
+
};
|
|
54
|
+
const enabled = async () => new Set((await adapter.all(`SELECT name FROM ket_app WHERE state = 'installed'`)).map((r) => String(r.name)));
|
|
55
|
+
/** Every name this database has an opinion about, installed or explicitly removed. */
|
|
56
|
+
const decided = async () => new Set((await adapter.all(`SELECT name FROM ket_app`)).map((r) => String(r.name)));
|
|
57
|
+
const setState = async (names, state) => {
|
|
58
|
+
for (const n of names) {
|
|
59
|
+
const upd = await adapter.run(`UPDATE ket_app SET state = ${p(1)}, changed_at = ${p(2)} WHERE name = ${p(3)}`, [state, now(), n]);
|
|
60
|
+
if (upd.changes === 0) {
|
|
61
|
+
await adapter.run(`INSERT INTO ket_app (name, state, changed_at) VALUES (${p(1)}, ${p(2)}, ${p(3)}) ON CONFLICT DO NOTHING`, [n, state, now()]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
// Anything whose dependencies are all installed and which asked to come along.
|
|
66
|
+
const settle = async () => {
|
|
67
|
+
if (!autoInstallEnabled)
|
|
68
|
+
return [];
|
|
69
|
+
const added = [];
|
|
70
|
+
for (;;) {
|
|
71
|
+
const on = await enabled();
|
|
72
|
+
const seen = await decided();
|
|
73
|
+
const next = Object.entries(manifest.modules)
|
|
74
|
+
// `!seen.has(n)` is the fix: an app the user removed is not a candidate
|
|
75
|
+
// again, however many times its dependencies are reinstalled.
|
|
76
|
+
.filter(([n, m]) => m.install === 'auto' && !seen.has(n) && m.depends.every((d) => on.has(d)))
|
|
77
|
+
.map(([n]) => n);
|
|
78
|
+
if (!next.length)
|
|
79
|
+
return added;
|
|
80
|
+
await setState(next, 'installed');
|
|
81
|
+
added.push(...next);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
return {
|
|
85
|
+
enabled,
|
|
86
|
+
async orphans() {
|
|
87
|
+
const shipped = new Set(Object.keys(manifest.modules));
|
|
88
|
+
return [...(await decided())].filter((n) => !shipped.has(n)).sort();
|
|
89
|
+
},
|
|
90
|
+
async list() {
|
|
91
|
+
const on = await enabled();
|
|
92
|
+
return Object.entries(manifest.modules)
|
|
93
|
+
.filter(([, m]) => m.app === true)
|
|
94
|
+
.map(([name, m]) => ({
|
|
95
|
+
name,
|
|
96
|
+
title: m.title ?? name,
|
|
97
|
+
summary: m.summary ?? '',
|
|
98
|
+
category: m.category ?? 'Khác',
|
|
99
|
+
version: m.version,
|
|
100
|
+
state: (on.has(name) ? 'installed' : 'available'),
|
|
101
|
+
depends: [...m.depends],
|
|
102
|
+
dependents: dependentsOf(manifest, name).filter((d) => on.has(d)),
|
|
103
|
+
install: m.install,
|
|
104
|
+
removable: m.removable,
|
|
105
|
+
}))
|
|
106
|
+
.sort((a, b) => a.category.localeCompare(b.category) || a.title.localeCompare(b.title));
|
|
107
|
+
},
|
|
108
|
+
async install(name) {
|
|
109
|
+
const target = known(name);
|
|
110
|
+
// 'never' is a boundary the module drew, not a preference: it is machinery,
|
|
111
|
+
// and the only honest way in is for something that needs it to ask.
|
|
112
|
+
if (target.install === 'never') {
|
|
113
|
+
throw new KetError({
|
|
114
|
+
code: 'E_APP_NOT_INSTALLABLE',
|
|
115
|
+
module: name,
|
|
116
|
+
message: `"${name}" declares install: 'never', so it cannot be installed on its own`,
|
|
117
|
+
hint: `install a module that depends on "${name}" — it will come along as a dependency`,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
const on = await enabled();
|
|
121
|
+
// Dependencies come along; an app whose dependency is off would be broken.
|
|
122
|
+
const wanted = [];
|
|
123
|
+
const visit = (n) => {
|
|
124
|
+
if (on.has(n) || wanted.includes(n))
|
|
125
|
+
return;
|
|
126
|
+
for (const dep of known(n).depends)
|
|
127
|
+
visit(dep);
|
|
128
|
+
wanted.push(n);
|
|
129
|
+
};
|
|
130
|
+
visit(name);
|
|
131
|
+
await setState(wanted, 'installed');
|
|
132
|
+
return [...wanted, ...(await settle())];
|
|
133
|
+
},
|
|
134
|
+
async uninstall(name) {
|
|
135
|
+
const target = known(name);
|
|
136
|
+
const on = await enabled();
|
|
137
|
+
if (!on.has(name))
|
|
138
|
+
return [];
|
|
139
|
+
// Removing this would remove the way back: the boundary is the module's,
|
|
140
|
+
// drawn once, rather than a rule the UI is trusted to remember.
|
|
141
|
+
if (!target.removable) {
|
|
142
|
+
throw new KetError({
|
|
143
|
+
code: 'E_APP_NOT_REMOVABLE',
|
|
144
|
+
module: name,
|
|
145
|
+
message: `"${name}" declares removable: false, so it cannot be uninstalled`,
|
|
146
|
+
hint: 'it is part of what this deployment is, not a choice made on this database',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
const blocking = dependentsOf(manifest, name).filter((d) => on.has(d));
|
|
150
|
+
if (blocking.length) {
|
|
151
|
+
throw new KetError({
|
|
152
|
+
code: 'E_APP_IN_USE',
|
|
153
|
+
message: `"${name}" cannot be removed while ${blocking.join(', ')} ${blocking.length > 1 ? 'are' : 'is'} installed`,
|
|
154
|
+
hint: `remove ${blocking.join(', ')} first, or leave "${name}" installed`,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
await setState([name], 'removed');
|
|
158
|
+
return [name];
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The manifest as an app with only some modules turned on sees it.
|
|
164
|
+
*
|
|
165
|
+
* Behaviour is filtered — functions, sections, joints, fills, views, templates,
|
|
166
|
+
* and the served surface: routes, assets and stylesheets.
|
|
167
|
+
* Models are NOT: the columns exist in every database by construction, and the rows
|
|
168
|
+
* of an uninstalled app are still its rows. Turning an app off must never be a way
|
|
169
|
+
* to lose data.
|
|
170
|
+
*/
|
|
171
|
+
export function restrictManifest(manifest, enabled) {
|
|
172
|
+
const keep = (by) => enabled.has(by);
|
|
173
|
+
const pick = (rec) => Object.fromEntries(Object.entries(rec).filter(([, v]) => keep(v.by)));
|
|
174
|
+
// An omission by a module that is switched off is not an omission: the joint
|
|
175
|
+
// comes back, exactly as its fills would.
|
|
176
|
+
const joints = Object.fromEntries(Object.entries(manifest.joints)
|
|
177
|
+
.filter(([, j]) => keep(j.owner))
|
|
178
|
+
.map(([k, j]) => [k, { ...j, omittedBy: j.omittedBy.filter(keep) }]));
|
|
179
|
+
const provided = {};
|
|
180
|
+
for (const [region, by] of Object.entries(manifest.regions.provided)) {
|
|
181
|
+
const live = by.filter(keep);
|
|
182
|
+
if (live.length)
|
|
183
|
+
provided[region] = live;
|
|
184
|
+
}
|
|
185
|
+
const fills = manifest.fills.filter((fill) => keep(fill.by) && joints[fill.joint] !== undefined);
|
|
186
|
+
const patches = Object.entries(joints).flatMap(([key, joint]) => {
|
|
187
|
+
if (!joint.omittedBy.length)
|
|
188
|
+
return [];
|
|
189
|
+
const fillers = fills.filter((fill) => fill.joint === key).map((fill) => fill.by);
|
|
190
|
+
return fillers.length
|
|
191
|
+
? [
|
|
192
|
+
{
|
|
193
|
+
by: joint.omittedBy.join(', '),
|
|
194
|
+
target: key,
|
|
195
|
+
reason: `omitted, so fills from ${fillers.join(', ')} will not render`,
|
|
196
|
+
},
|
|
197
|
+
]
|
|
198
|
+
: [];
|
|
199
|
+
});
|
|
200
|
+
return {
|
|
201
|
+
...manifest,
|
|
202
|
+
disabledModules: Object.keys(manifest.modules).filter((n) => !enabled.has(n)),
|
|
203
|
+
// What was removed by the restriction, so a renderer can skip a section from a
|
|
204
|
+
// switched-off app quietly while still complaining about one that never existed.
|
|
205
|
+
disabledSections: Object.entries(manifest.sections)
|
|
206
|
+
.filter(([, s]) => !keep(s.by))
|
|
207
|
+
.map(([n]) => n),
|
|
208
|
+
disabledIslands: Object.entries(manifest.islands)
|
|
209
|
+
.filter(([, s]) => !keep(s.by))
|
|
210
|
+
.map(([n]) => n),
|
|
211
|
+
order: manifest.order.filter(keep),
|
|
212
|
+
// A menu entry of a switched-off module goes with it, and so does anything
|
|
213
|
+
// hanging under it — buildMenu drops a heading left with no children.
|
|
214
|
+
menus: Object.fromEntries(Object.entries(manifest.menus).filter(([, m]) => keep(m.by))),
|
|
215
|
+
// The served surface goes with the behaviour. A route of a switched-off module
|
|
216
|
+
// must stop answering and its stylesheet must stop being linked — otherwise
|
|
217
|
+
// "enable at run" stops at the database and never reaches what anyone can see.
|
|
218
|
+
assets: Object.fromEntries(Object.entries(manifest.assets).filter(([by]) => keep(by))),
|
|
219
|
+
styles: manifest.styles.filter((s) => keep(s.by)),
|
|
220
|
+
routes: pick(manifest.routes),
|
|
221
|
+
functions: pick(manifest.functions),
|
|
222
|
+
jobs: pick(manifest.jobs),
|
|
223
|
+
sections: pick(manifest.sections),
|
|
224
|
+
contentTypes: pick(manifest.contentTypes),
|
|
225
|
+
taxonomies: pick(manifest.taxonomies),
|
|
226
|
+
islands: pick(manifest.islands),
|
|
227
|
+
views: pick(manifest.views),
|
|
228
|
+
joints,
|
|
229
|
+
fills,
|
|
230
|
+
patches,
|
|
231
|
+
regions: { required: manifest.regions.required, provided },
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=apps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/kernel/apps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../../../packages/ketjs/src/kernel/compose.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAA;AAOrE,wBAAgB,OAAO,CACrB,OAAO,EAAE,SAAS,EAAE,EACpB,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACxD,QAAQ,CA68BV"}
|