@antelopejs/dms 0.9.0 → 0.9.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/data/module-store/catalog.json +71 -0
  3. package/dist/config.d.ts +7 -0
  4. package/dist/config.js +8 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/implementations/dms/frontend-modules.d.ts +2 -0
  7. package/dist/implementations/dms/frontend-modules.js +29 -1
  8. package/dist/implementations/dms/frontend-modules.js.map +1 -1
  9. package/dist/implementations/dms/frontend-ready.d.ts +8 -0
  10. package/dist/implementations/dms/frontend-ready.js +34 -0
  11. package/dist/implementations/dms/frontend-ready.js.map +1 -0
  12. package/dist/implementations/dms/manifest.d.ts +1 -0
  13. package/dist/implementations/dms/manifest.js.map +1 -1
  14. package/dist/implementations/dms/page.d.ts +2 -0
  15. package/dist/implementations/dms/page.js +16 -0
  16. package/dist/implementations/dms/page.js.map +1 -1
  17. package/dist/routes/index.d.ts +1 -0
  18. package/dist/routes/index.js +1 -0
  19. package/dist/routes/index.js.map +1 -1
  20. package/dist/routes/store.d.ts +21 -0
  21. package/dist/routes/store.js +130 -0
  22. package/dist/routes/store.js.map +1 -0
  23. package/dist/store/activity.d.ts +2 -0
  24. package/dist/store/activity.js +12 -0
  25. package/dist/store/activity.js.map +1 -0
  26. package/dist/store/cache.d.ts +8 -0
  27. package/dist/store/cache.js +29 -0
  28. package/dist/store/cache.js.map +1 -0
  29. package/dist/store/catalog.d.ts +4 -0
  30. package/dist/store/catalog.js +69 -0
  31. package/dist/store/catalog.js.map +1 -0
  32. package/dist/store/compatibility.d.ts +3 -0
  33. package/dist/store/compatibility.js +45 -0
  34. package/dist/store/compatibility.js.map +1 -0
  35. package/dist/store/declarations.d.ts +18 -0
  36. package/dist/store/declarations.js +116 -0
  37. package/dist/store/declarations.js.map +1 -0
  38. package/dist/store/frontend-compatibility.d.ts +18 -0
  39. package/dist/store/frontend-compatibility.js +93 -0
  40. package/dist/store/frontend-compatibility.js.map +1 -0
  41. package/dist/store/interfaces.d.ts +6 -0
  42. package/dist/store/interfaces.js +126 -0
  43. package/dist/store/interfaces.js.map +1 -0
  44. package/dist/store/listing.d.ts +2 -0
  45. package/dist/store/listing.js +180 -0
  46. package/dist/store/listing.js.map +1 -0
  47. package/dist/store/operations.d.ts +8 -0
  48. package/dist/store/operations.js +254 -0
  49. package/dist/store/operations.js.map +1 -0
  50. package/dist/store/registry.d.ts +4 -0
  51. package/dist/store/registry.js +61 -0
  52. package/dist/store/registry.js.map +1 -0
  53. package/dist/store/requirements.d.ts +14 -0
  54. package/dist/store/requirements.js +81 -0
  55. package/dist/store/requirements.js.map +1 -0
  56. package/dist/store/runtime.d.ts +11 -0
  57. package/dist/store/runtime.js +78 -0
  58. package/dist/store/runtime.js.map +1 -0
  59. package/dist/store/tarball.d.ts +2 -0
  60. package/dist/store/tarball.js +80 -0
  61. package/dist/store/tarball.js.map +1 -0
  62. package/dist/store/types.d.ts +98 -0
  63. package/dist/store/types.js +3 -0
  64. package/dist/store/types.js.map +1 -0
  65. package/dist/test/unit/store/store.test.d.ts +1 -0
  66. package/dist/test/unit/store/store.test.js +127 -0
  67. package/dist/test/unit/store/store.test.js.map +1 -0
  68. package/dist/validation/store.schema.d.ts +39 -0
  69. package/dist/validation/store.schema.js +27 -0
  70. package/dist/validation/store.schema.js.map +1 -0
  71. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreDependencyPicker.vue +136 -0
  72. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreRequirements.vue +98 -0
  73. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreTile.vue +247 -29
  74. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleTile.vue +19 -2
  75. package/frontend-vue/layers/dms-layout/app/build/utils/module-store-catalog.ts +186 -120
  76. package/frontend-vue/layers/dms-layout/app/build/utils/module-store-install.ts +146 -0
  77. package/frontend-vue/layers/dms-layout/app/composables/page/useModuleStore.ts +109 -0
  78. package/frontend-vue/layers/dms-layout/app/custom-pages/modules.vue +335 -34
  79. package/frontend-vue/layers/dms-layout/app/types/module-store.ts +134 -0
  80. package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +107 -9
  81. package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +107 -9
  82. package/frontend-vue/package.json +3 -3
  83. package/frontend-vue/pnpm-lock.yaml +16 -22
  84. package/frontend-vue/tests/module-store-catalog.test.ts +270 -51
  85. package/frontend-vue/tests/top-list-card-period-badge-ssr.test.ts +212 -0
  86. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listing.js","sourceRoot":"","sources":["../../src/store/listing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { StoreDependencyChoice, StoreOperation, StoreOperationKind } from "./types";
2
+ export interface StoreOperationOptions {
3
+ dependencies?: StoreDependencyChoice[];
4
+ }
5
+ export declare function currentOperation(): StoreOperation | undefined;
6
+ export declare function storeError(id: string): string | undefined;
7
+ export declare function removedLayerNames(id: string): string[];
8
+ export declare function startStoreOperation(kind: StoreOperationKind, id: string, options?: StoreOperationOptions): Promise<void>;
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.currentOperation = currentOperation;
4
+ exports.storeError = storeError;
5
+ exports.removedLayerNames = removedLayerNames;
6
+ exports.startStoreOperation = startStoreOperation;
7
+ const interface_api_util_1 = require("@antelopejs/interface-api-util");
8
+ const logging_1 = require("@antelopejs/interface-core/logging");
9
+ const runtime_1 = require("@antelopejs/interface-core/runtime");
10
+ const config_1 = require("../config");
11
+ const frontend_modules_1 = require("../implementations/dms/frontend-modules");
12
+ const activity_1 = require("./activity");
13
+ const catalog_1 = require("./catalog");
14
+ const compatibility_1 = require("./compatibility");
15
+ const declarations_1 = require("./declarations");
16
+ const requirements_1 = require("./requirements");
17
+ const registry_1 = require("./registry");
18
+ const runtime_2 = require("./runtime");
19
+ const HTTP_FORBIDDEN = 403;
20
+ const HTTP_NOT_FOUND = 404;
21
+ const HTTP_CONFLICT = 409;
22
+ let current;
23
+ let queue = Promise.resolve();
24
+ const errors = new Map();
25
+ const removedLayers = new Map();
26
+ function currentOperation() {
27
+ return current;
28
+ }
29
+ function storeError(id) {
30
+ return errors.get(id);
31
+ }
32
+ function removedLayerNames(id) {
33
+ return removedLayers.get(id) ?? [];
34
+ }
35
+ function setCurrent(operation) {
36
+ current = operation;
37
+ (0, activity_1.setStoreOperationRunning)(operation !== undefined);
38
+ }
39
+ function setStep(step) {
40
+ if (current)
41
+ current.step = step;
42
+ }
43
+ function describeError(error) {
44
+ if (error instanceof AggregateError && error.errors.length > 0) {
45
+ return error.errors.map(describeError).join("; ");
46
+ }
47
+ return error instanceof Error ? error.message : String(error);
48
+ }
49
+ async function load(context, range, config) {
50
+ setStep("load");
51
+ await (0, runtime_2.loadStoreModule)(context.key, {
52
+ package: context.catalogEntry.package,
53
+ range,
54
+ config,
55
+ });
56
+ removedLayers.delete(context.id);
57
+ }
58
+ async function unload(context) {
59
+ setStep("unload");
60
+ const module = await (0, runtime_2.describeRuntimeModule)(context.key);
61
+ if (!module || !(0, runtime_2.isLive)(module))
62
+ return;
63
+ await (0, runtime_2.unloadStoreModule)(context.key);
64
+ const removed = (0, frontend_modules_1.removeFrontendModulesUnder)(module.localPath);
65
+ if (removed.length > 0)
66
+ removedLayers.set(context.id, removed);
67
+ }
68
+ async function writeEntry(context, write) {
69
+ setStep("save");
70
+ context.written = true;
71
+ await write();
72
+ }
73
+ async function resolveTargetRelease(context) {
74
+ setStep("resolve");
75
+ const { package: packageName } = context.catalogEntry;
76
+ const release = await (0, registry_1.latestRelease)(packageName, context.projectPath, true);
77
+ if (!release) {
78
+ throw new Error(`The npm registry has no release of ${packageName} this platform can read`);
79
+ }
80
+ const interfaceVersion = (0, compatibility_1.installedInterfaceVersion)();
81
+ if (!(0, compatibility_1.isCompatible)(release, interfaceVersion)) {
82
+ throw new Error(`${packageName}@${release.version} needs ${registry_1.INTERFACE_PACKAGE} ${release.interfaceRange}, this platform runs ${interfaceVersion}`);
83
+ }
84
+ if (current)
85
+ current.targetVersion = release.version;
86
+ await (0, requirements_1.assertFrontendSupports)(context, release);
87
+ return release;
88
+ }
89
+ async function installDependencies(context, release) {
90
+ const label = `${context.catalogEntry.package}@${release.version}`;
91
+ const picked = await (0, requirements_1.pickDependencies)(context, release, label);
92
+ if (picked.size === 0)
93
+ return;
94
+ setStep("dependencies");
95
+ for (const [interfacePackage, choice] of picked) {
96
+ await (0, requirements_1.installDependency)(context, interfacePackage, choice);
97
+ }
98
+ }
99
+ function sourceFor(context, range) {
100
+ return (0, declarations_1.packageDeclarationSource)(context.catalogEntry.package, range);
101
+ }
102
+ async function runInstall(context) {
103
+ const release = await resolveTargetRelease(context);
104
+ await installDependencies(context, release);
105
+ const range = (0, requirements_1.caretRange)(release);
106
+ await load(context, range);
107
+ await writeEntry(context, () => (0, declarations_1.saveDeclaration)(context.key, {
108
+ source: sourceFor(context, range),
109
+ optional: true,
110
+ }));
111
+ }
112
+ async function runUpdate(context) {
113
+ const declaration = requireDeclaration(context);
114
+ const release = await resolveTargetRelease(context);
115
+ await (0, requirements_1.pickDependencies)(context, release, `${context.catalogEntry.package}@${release.version}`);
116
+ const range = (0, requirements_1.caretRange)(release);
117
+ await unload(context);
118
+ if (!declaration.disabled)
119
+ await load(context, range, declaration.config);
120
+ await writeEntry(context, () => (0, declarations_1.saveDeclaration)(context.key, { source: sourceFor(context, range) }));
121
+ }
122
+ async function runEnable(context) {
123
+ const declaration = requireDeclaration(context);
124
+ await load(context, declaration.range, declaration.config);
125
+ await writeEntry(context, () => (0, declarations_1.saveDeclaration)(context.key, { disabled: undefined }));
126
+ }
127
+ async function runDisable(context) {
128
+ await unload(context);
129
+ await writeEntry(context, () => (0, declarations_1.saveDeclaration)(context.key, { disabled: true }));
130
+ }
131
+ async function runUninstall(context) {
132
+ await unload(context);
133
+ await writeEntry(context, () => (0, declarations_1.removeDeclaration)(context.key));
134
+ }
135
+ async function runApply(context) {
136
+ const declaration = requireDeclaration(context);
137
+ const live = (0, runtime_2.isLive)(await (0, runtime_2.describeRuntimeModule)(context.key));
138
+ if (!declaration.disabled && !live) {
139
+ await load(context, declaration.range, declaration.config);
140
+ }
141
+ if (declaration.disabled && live)
142
+ await unload(context);
143
+ }
144
+ function requireDeclaration(context) {
145
+ if (!context.declaration) {
146
+ throw new Error(`${context.catalogEntry.package} is not in antelope.config.ts`);
147
+ }
148
+ return context.declaration;
149
+ }
150
+ const RUNNERS = {
151
+ install: runInstall,
152
+ update: runUpdate,
153
+ enable: runEnable,
154
+ disable: runDisable,
155
+ uninstall: runUninstall,
156
+ apply: runApply,
157
+ };
158
+ const PRECONDITIONS = {
159
+ install: (entry) => entry === undefined,
160
+ update: (entry) => entry !== undefined,
161
+ enable: (entry) => entry?.disabled === true,
162
+ disable: (entry) => entry?.disabled === false,
163
+ uninstall: (entry) => entry !== undefined,
164
+ apply: (entry) => entry !== undefined,
165
+ };
166
+ async function restoreDeclaration(context) {
167
+ const previous = context.declaration;
168
+ if (!previous) {
169
+ await (0, declarations_1.removeDeclaration)(context.key);
170
+ return;
171
+ }
172
+ await (0, declarations_1.saveDeclaration)(context.key, {
173
+ source: sourceFor(context, previous.range),
174
+ disabled: previous.disabled ? true : undefined,
175
+ });
176
+ }
177
+ async function rollback(context) {
178
+ await rollbackModule(context);
179
+ for (const key of [...context.installedDependencies].reverse()) {
180
+ await (0, runtime_2.unloadStoreModule)(key);
181
+ if (await (0, declarations_1.hasDeclaration)(key))
182
+ await (0, declarations_1.removeDeclaration)(key);
183
+ }
184
+ }
185
+ async function rollbackModule(context) {
186
+ if (context.written)
187
+ await restoreDeclaration(context);
188
+ const previous = context.declaration;
189
+ const live = (0, runtime_2.isLive)(await (0, runtime_2.describeRuntimeModule)(context.key));
190
+ if (!previous && live)
191
+ await (0, runtime_2.unloadStoreModule)(context.key);
192
+ if (previous && !previous.disabled && !live) {
193
+ await (0, runtime_2.loadStoreModule)(context.key, {
194
+ package: context.catalogEntry.package,
195
+ range: previous.range,
196
+ config: previous.config,
197
+ });
198
+ }
199
+ }
200
+ async function execute(kind, context) {
201
+ try {
202
+ await RUNNERS[kind](context);
203
+ errors.delete(context.id);
204
+ }
205
+ catch (error) {
206
+ const message = describeError(error);
207
+ logging_1.Logging.Error(`[DMS] Module store: ${kind} ${context.id} failed`, error);
208
+ errors.set(context.id, message);
209
+ await rollback(context).catch((rollbackError) => logging_1.Logging.Error(`[DMS] Module store: rolling back ${context.id} failed`, rollbackError));
210
+ }
211
+ }
212
+ const TAKES_DOWN = new Set(["disable", "uninstall"]);
213
+ async function prepareContext(kind, id, options) {
214
+ const catalogEntry = await (0, catalog_1.findCatalogEntry)(id);
215
+ (0, interface_api_util_1.assert)(catalogEntry, HTTP_NOT_FOUND, "error.store_module_unknown");
216
+ const { projectPath } = await (0, runtime_1.GetRuntimeInfo)();
217
+ const declaration = (await (0, declarations_1.listCatalogDeclarations)([catalogEntry])).get(id);
218
+ (0, interface_api_util_1.assert)(PRECONDITIONS[kind](declaration), HTTP_CONFLICT, "error.store_invalid_state");
219
+ const context = {
220
+ id,
221
+ catalogEntry,
222
+ projectPath,
223
+ key: declaration?.key ?? catalogEntry.package,
224
+ declaration,
225
+ written: false,
226
+ dependencies: options.dependencies ?? [],
227
+ installedDependencies: [],
228
+ };
229
+ if (TAKES_DOWN.has(kind))
230
+ await (0, requirements_1.assertNoDependents)(context);
231
+ return context;
232
+ }
233
+ function enqueue(work) {
234
+ const run = queue.then(work);
235
+ queue = run.catch(() => undefined);
236
+ return run;
237
+ }
238
+ async function startStoreOperation(kind, id, options = {}) {
239
+ const { dev } = await (0, runtime_1.GetRuntimeInfo)();
240
+ (0, interface_api_util_1.assert)((0, config_1.isStoreEditable)(dev), HTTP_FORBIDDEN, "error.store_disabled");
241
+ (0, interface_api_util_1.assert)(!current, HTTP_CONFLICT, "error.store_busy");
242
+ setCurrent({ moduleId: id, kind, step: "resolve", startedAt: Date.now() });
243
+ try {
244
+ const context = await prepareContext(kind, id, options);
245
+ void enqueue(() => execute(kind, context).finally(() => {
246
+ setCurrent(undefined);
247
+ })).catch((error) => logging_1.Logging.Error(`[DMS] Module store: ${kind} ${id} failed`, error));
248
+ }
249
+ catch (error) {
250
+ setCurrent(undefined);
251
+ throw error;
252
+ }
253
+ }
254
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/store/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PackageRelease } from "./types";
2
+ export declare const INTERFACE_PACKAGE = "@antelopejs/interface-dms";
3
+ export declare function npmView(spec: string, fields: readonly string[], projectPath: string): Promise<unknown>;
4
+ export declare function latestRelease(packageName: string, projectPath: string, force?: boolean): Promise<PackageRelease | undefined>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INTERFACE_PACKAGE = void 0;
4
+ exports.npmView = npmView;
5
+ exports.latestRelease = latestRelease;
6
+ const node_child_process_1 = require("node:child_process");
7
+ const node_util_1 = require("node:util");
8
+ const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
9
+ const RELEASE_TTL_MS = 60 * 60 * 1000;
10
+ const FAILED_RELEASE_TTL_MS = 5 * 60 * 1000;
11
+ const NPM_VIEW_TIMEOUT_MS = 30_000;
12
+ const LATEST_TAG = "latest";
13
+ exports.INTERFACE_PACKAGE = "@antelopejs/interface-dms";
14
+ const releases = new Map();
15
+ const pending = new Map();
16
+ async function npmView(spec, fields, projectPath) {
17
+ try {
18
+ const { stdout } = await execFileAsync("npm", ["view", spec, ...fields, "--json"], { cwd: projectPath, timeout: NPM_VIEW_TIMEOUT_MS });
19
+ return stdout.trim() ? JSON.parse(stdout) : undefined;
20
+ }
21
+ catch {
22
+ return undefined;
23
+ }
24
+ }
25
+ async function viewLatest(packageName, projectPath) {
26
+ const view = (await npmView(`${packageName}@${LATEST_TAG}`, ["version", "dependencies", "antelopeJs"], projectPath));
27
+ if (!view?.version)
28
+ return undefined;
29
+ return {
30
+ version: view.version,
31
+ interfaceRange: view.dependencies?.[exports.INTERFACE_PACKAGE],
32
+ dependencies: view.dependencies ?? {},
33
+ implements: Array.isArray(view.antelopeJs?.implements)
34
+ ? view.antelopeJs.implements.map(String)
35
+ : [],
36
+ };
37
+ }
38
+ function isFresh(cached) {
39
+ if (!cached)
40
+ return false;
41
+ const ttl = cached.release ? RELEASE_TTL_MS : FAILED_RELEASE_TTL_MS;
42
+ return Date.now() - cached.fetchedAt < ttl;
43
+ }
44
+ function latestRelease(packageName, projectPath, force = false) {
45
+ const cached = releases.get(packageName);
46
+ if (!force && isFresh(cached)) {
47
+ return Promise.resolve(cached?.release);
48
+ }
49
+ const inFlight = pending.get(packageName);
50
+ if (inFlight)
51
+ return inFlight;
52
+ const lookup = viewLatest(packageName, projectPath)
53
+ .then((release) => {
54
+ releases.set(packageName, { fetchedAt: Date.now(), release });
55
+ return release;
56
+ })
57
+ .finally(() => pending.delete(packageName));
58
+ pending.set(packageName, lookup);
59
+ return lookup;
60
+ }
61
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/store/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { PackageRelease, RuntimeModule, StoreCatalogEntry, StoreDependencyChoice } from "./types";
2
+ export interface RequirementContext {
3
+ catalogEntry: StoreCatalogEntry;
4
+ projectPath: string;
5
+ key: string;
6
+ dependencies: StoreDependencyChoice[];
7
+ installedDependencies: string[];
8
+ }
9
+ export declare function caretRange(release: PackageRelease): string;
10
+ export declare function assertFrontendSupports(context: RequirementContext, release: PackageRelease): Promise<void>;
11
+ export declare function runningModules(): Promise<RuntimeModule[]>;
12
+ export declare function pickDependencies(context: RequirementContext, release: PackageRelease, label: string): Promise<Map<string, StoreDependencyChoice>>;
13
+ export declare function installDependency(context: RequirementContext, interfacePackage: string, choice: StoreDependencyChoice): Promise<void>;
14
+ export declare function assertNoDependents(context: RequirementContext): Promise<void>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.caretRange = caretRange;
4
+ exports.assertFrontendSupports = assertFrontendSupports;
5
+ exports.runningModules = runningModules;
6
+ exports.pickDependencies = pickDependencies;
7
+ exports.installDependency = installDependency;
8
+ exports.assertNoDependents = assertNoDependents;
9
+ const interface_api_util_1 = require("@antelopejs/interface-api-util");
10
+ const declarations_1 = require("./declarations");
11
+ const frontend_compatibility_1 = require("./frontend-compatibility");
12
+ const interfaces_1 = require("./interfaces");
13
+ const registry_1 = require("./registry");
14
+ const runtime_1 = require("./runtime");
15
+ const HTTP_CONFLICT = 409;
16
+ const RANGE_PREFIX = "^";
17
+ function caretRange(release) {
18
+ return `${RANGE_PREFIX}${release.version}`;
19
+ }
20
+ async function assertFrontendSupports(context, release) {
21
+ const { package: packageName } = context.catalogEntry;
22
+ const range = await (0, frontend_compatibility_1.releaseFrontendRange)(packageName, release.version, context.projectPath);
23
+ const running = (0, frontend_compatibility_1.runningFrontend)(context.projectPath);
24
+ if (!range || !running || (0, frontend_compatibility_1.supportsFrontend)(range, running.version))
25
+ return;
26
+ throw new Error(`${packageName}@${release.version} supports ${frontend_compatibility_1.FRONTEND_PACKAGE} ${range}, this project runs ${running.version}`);
27
+ }
28
+ async function runningModules() {
29
+ return [...(await (0, runtime_1.listRuntimeModules)()).values()].filter((module) => (0, runtime_1.isLive)(module));
30
+ }
31
+ async function pickDependencies(context, release, label) {
32
+ const implemented = await (0, interfaces_1.implementedInterfaces)(await runningModules());
33
+ const missing = await (0, interfaces_1.findMissingInterfaces)(release, implemented, context.projectPath);
34
+ const picked = new Map();
35
+ const unpicked = [];
36
+ for (const { interfacePackage } of missing) {
37
+ const choice = context.dependencies.find((dependency) => dependency.interfacePackage === interfacePackage);
38
+ if (choice)
39
+ picked.set(interfacePackage, choice);
40
+ else
41
+ unpicked.push(interfacePackage);
42
+ }
43
+ if (unpicked.length > 0) {
44
+ throw new Error(`${label} needs ${unpicked.join(", ")}, which no running module implements`);
45
+ }
46
+ return picked;
47
+ }
48
+ async function installDependency(context, interfacePackage, choice) {
49
+ const key = choice.package;
50
+ if (await (0, declarations_1.hasDeclaration)(key)) {
51
+ throw new Error(`${key} is already in antelope.config.ts but does not run: start it from there`);
52
+ }
53
+ const release = await (0, registry_1.latestRelease)(key, context.projectPath, true);
54
+ if (!release) {
55
+ throw new Error(`The npm registry has no release of ${key}`);
56
+ }
57
+ const range = caretRange(release);
58
+ context.installedDependencies.push(key);
59
+ await (0, runtime_1.loadStoreModule)(key, { package: key, range, config: choice.config });
60
+ await assertImplements(key, interfacePackage);
61
+ await (0, declarations_1.saveDeclaration)(key, {
62
+ source: (0, declarations_1.packageDeclarationSource)(key, range),
63
+ config: choice.config ?? {},
64
+ optional: true,
65
+ });
66
+ }
67
+ async function assertImplements(key, interfacePackage) {
68
+ const module = await (0, runtime_1.describeRuntimeModule)(key);
69
+ const implemented = module ? await (0, interfaces_1.implementedBy)(module.localPath) : [];
70
+ if (!implemented.includes(interfacePackage)) {
71
+ throw new Error(`${key} does not implement ${interfacePackage}`);
72
+ }
73
+ }
74
+ async function assertNoDependents(context) {
75
+ const module = await (0, runtime_1.describeRuntimeModule)(context.key);
76
+ if (!module || !(0, runtime_1.isLive)(module))
77
+ return;
78
+ const dependents = await (0, interfaces_1.findDependents)(module, await runningModules());
79
+ (0, interface_api_util_1.assert)(dependents.length === 0, HTTP_CONFLICT, "error.store_module_required");
80
+ }
81
+ //# sourceMappingURL=requirements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../src/store/requirements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { RuntimeModule } from "./types";
2
+ export interface StoreModuleLoad {
3
+ package: string;
4
+ range: string;
5
+ config?: unknown;
6
+ }
7
+ export declare function isLive(module: RuntimeModule | undefined): boolean;
8
+ export declare function listRuntimeModules(): Promise<Map<string, RuntimeModule>>;
9
+ export declare function loadStoreModule(moduleId: string, load: StoreModuleLoad): Promise<void>;
10
+ export declare function unloadStoreModule(moduleId: string): Promise<void>;
11
+ export declare function describeRuntimeModule(moduleId: string): Promise<RuntimeModule | undefined>;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isLive = isLive;
7
+ exports.listRuntimeModules = listRuntimeModules;
8
+ exports.loadStoreModule = loadStoreModule;
9
+ exports.unloadStoreModule = unloadStoreModule;
10
+ exports.describeRuntimeModule = describeRuntimeModule;
11
+ const promises_1 = require("node:fs/promises");
12
+ const node_path_1 = __importDefault(require("node:path"));
13
+ const modules_1 = require("@antelopejs/interface-core/modules");
14
+ const PACKAGE_SOURCE_TYPE = "package";
15
+ const PACKAGE_JSON = "package.json";
16
+ const LIVE_STATUSES = new Set(["constructed", "active"]);
17
+ function isLive(module) {
18
+ return module !== undefined && LIVE_STATUSES.has(module.status);
19
+ }
20
+ async function loadedVersion(localPath) {
21
+ try {
22
+ const manifest = JSON.parse(await (0, promises_1.readFile)(node_path_1.default.join(localPath, PACKAGE_JSON), "utf-8"));
23
+ return manifest.version;
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ }
29
+ async function describeModule(moduleId) {
30
+ try {
31
+ const info = await (0, modules_1.GetModuleInfo)(moduleId);
32
+ const source = info.source;
33
+ const isPackage = source.type === PACKAGE_SOURCE_TYPE;
34
+ return {
35
+ id: moduleId,
36
+ packageName: isPackage ? source.package : undefined,
37
+ version: isPackage ? await loadedVersion(info.localPath) : undefined,
38
+ status: info.status,
39
+ localPath: info.localPath,
40
+ };
41
+ }
42
+ catch {
43
+ return undefined;
44
+ }
45
+ }
46
+ async function listRuntimeModules() {
47
+ const described = await Promise.all((await (0, modules_1.ListModules)()).map((moduleId) => describeModule(moduleId)));
48
+ return new Map(described
49
+ .filter((module) => module !== undefined)
50
+ .map((module) => [module.id, module]));
51
+ }
52
+ async function loadStoreModule(moduleId, load) {
53
+ try {
54
+ await (0, modules_1.LoadModule)(moduleId, {
55
+ source: {
56
+ type: PACKAGE_SOURCE_TYPE,
57
+ package: load.package,
58
+ version: load.range,
59
+ },
60
+ config: load.config ?? {},
61
+ }, true);
62
+ }
63
+ catch (error) {
64
+ await unloadStoreModule(moduleId).catch(() => undefined);
65
+ throw error;
66
+ }
67
+ }
68
+ async function unloadStoreModule(moduleId) {
69
+ const module = await describeModule(moduleId);
70
+ if (!module)
71
+ return;
72
+ await (0, modules_1.StopModule)(moduleId);
73
+ await (0, modules_1.DestroyModule)(moduleId);
74
+ }
75
+ async function describeRuntimeModule(moduleId) {
76
+ return describeModule(moduleId);
77
+ }
78
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/store/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function readTarFile(archive: Buffer, filePath: string): Buffer | undefined;
2
+ export declare function readPublishedFiles(packageName: string, version: string, projectPath: string, filePaths: readonly string[]): Promise<Map<string, string>>;