@antelopejs/dms 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +34 -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/implementations/dms-auth/index.js +1 -1
  18. package/dist/implementations/dms-auth/index.js.map +1 -1
  19. package/dist/routes/index.d.ts +1 -0
  20. package/dist/routes/index.js +1 -0
  21. package/dist/routes/index.js.map +1 -1
  22. package/dist/routes/store.d.ts +21 -0
  23. package/dist/routes/store.js +130 -0
  24. package/dist/routes/store.js.map +1 -0
  25. package/dist/store/activity.d.ts +2 -0
  26. package/dist/store/activity.js +12 -0
  27. package/dist/store/activity.js.map +1 -0
  28. package/dist/store/cache.d.ts +8 -0
  29. package/dist/store/cache.js +29 -0
  30. package/dist/store/cache.js.map +1 -0
  31. package/dist/store/catalog.d.ts +4 -0
  32. package/dist/store/catalog.js +69 -0
  33. package/dist/store/catalog.js.map +1 -0
  34. package/dist/store/compatibility.d.ts +3 -0
  35. package/dist/store/compatibility.js +45 -0
  36. package/dist/store/compatibility.js.map +1 -0
  37. package/dist/store/declarations.d.ts +18 -0
  38. package/dist/store/declarations.js +116 -0
  39. package/dist/store/declarations.js.map +1 -0
  40. package/dist/store/frontend-compatibility.d.ts +18 -0
  41. package/dist/store/frontend-compatibility.js +93 -0
  42. package/dist/store/frontend-compatibility.js.map +1 -0
  43. package/dist/store/interfaces.d.ts +6 -0
  44. package/dist/store/interfaces.js +126 -0
  45. package/dist/store/interfaces.js.map +1 -0
  46. package/dist/store/listing.d.ts +2 -0
  47. package/dist/store/listing.js +180 -0
  48. package/dist/store/listing.js.map +1 -0
  49. package/dist/store/operations.d.ts +8 -0
  50. package/dist/store/operations.js +254 -0
  51. package/dist/store/operations.js.map +1 -0
  52. package/dist/store/registry.d.ts +4 -0
  53. package/dist/store/registry.js +61 -0
  54. package/dist/store/registry.js.map +1 -0
  55. package/dist/store/requirements.d.ts +14 -0
  56. package/dist/store/requirements.js +81 -0
  57. package/dist/store/requirements.js.map +1 -0
  58. package/dist/store/runtime.d.ts +11 -0
  59. package/dist/store/runtime.js +78 -0
  60. package/dist/store/runtime.js.map +1 -0
  61. package/dist/store/tarball.d.ts +2 -0
  62. package/dist/store/tarball.js +80 -0
  63. package/dist/store/tarball.js.map +1 -0
  64. package/dist/store/types.d.ts +98 -0
  65. package/dist/store/types.js +3 -0
  66. package/dist/store/types.js.map +1 -0
  67. package/dist/test/unit/interfaces/dms/page-extension-ownership.test.js +1 -1
  68. package/dist/test/unit/interfaces/dms/page-extension-ownership.test.js.map +1 -1
  69. package/dist/test/unit/store/store.test.d.ts +1 -0
  70. package/dist/test/unit/store/store.test.js +127 -0
  71. package/dist/test/unit/store/store.test.js.map +1 -0
  72. package/dist/test/unit/utils/user-activity.test.js +4 -12
  73. package/dist/test/unit/utils/user-activity.test.js.map +1 -1
  74. package/dist/utils/user-activity.d.ts +1 -1
  75. package/dist/utils/user-activity.js +6 -3
  76. package/dist/utils/user-activity.js.map +1 -1
  77. package/dist/validation/store.schema.d.ts +39 -0
  78. package/dist/validation/store.schema.js +27 -0
  79. package/dist/validation/store.schema.js.map +1 -0
  80. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreDependencyPicker.vue +136 -0
  81. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreRequirements.vue +98 -0
  82. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreTile.vue +247 -29
  83. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleTile.vue +19 -2
  84. package/frontend-vue/layers/dms-layout/app/build/utils/module-store-catalog.ts +186 -120
  85. package/frontend-vue/layers/dms-layout/app/build/utils/module-store-install.ts +146 -0
  86. package/frontend-vue/layers/dms-layout/app/composables/page/useModuleStore.ts +109 -0
  87. package/frontend-vue/layers/dms-layout/app/custom-pages/modules.vue +335 -34
  88. package/frontend-vue/layers/dms-layout/app/types/module-store.ts +134 -0
  89. package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +107 -9
  90. package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +107 -9
  91. package/frontend-vue/package.json +3 -3
  92. package/frontend-vue/pnpm-lock.yaml +16 -22
  93. package/frontend-vue/tests/module-store-catalog.test.ts +270 -51
  94. package/frontend-vue/tests/top-list-card-period-badge-ssr.test.ts +212 -0
  95. package/package.json +5 -5
@@ -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>>;
@@ -0,0 +1,80 @@
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.readTarFile = readTarFile;
7
+ exports.readPublishedFiles = readPublishedFiles;
8
+ const node_child_process_1 = require("node:child_process");
9
+ const promises_1 = require("node:fs/promises");
10
+ const node_os_1 = require("node:os");
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const node_util_1 = require("node:util");
13
+ const node_zlib_1 = require("node:zlib");
14
+ const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
15
+ const NPM_PACK_TIMEOUT_MS = 60_000;
16
+ const TAR_BLOCK_SIZE = 512;
17
+ const TAR_NAME_LENGTH = 100;
18
+ const TAR_SIZE_OFFSET = 124;
19
+ const TAR_SIZE_LENGTH = 12;
20
+ const TAR_TYPE_OFFSET = 156;
21
+ const TAR_PREFIX_OFFSET = 345;
22
+ const TAR_PREFIX_LENGTH = 155;
23
+ const OCTAL = 8;
24
+ const PACKAGE_ROOT = "package/";
25
+ const TEMP_PREFIX = "dms-store-pack-";
26
+ function readString(block, offset, length) {
27
+ const raw = block.subarray(offset, offset + length);
28
+ const end = raw.indexOf(0);
29
+ return raw.subarray(0, end === -1 ? raw.length : end).toString("utf-8");
30
+ }
31
+ function readHeader(block) {
32
+ const name = readString(block, 0, TAR_NAME_LENGTH);
33
+ if (!name)
34
+ return undefined;
35
+ const prefix = readString(block, TAR_PREFIX_OFFSET, TAR_PREFIX_LENGTH);
36
+ return {
37
+ name: prefix ? `${prefix}/${name}` : name,
38
+ size: Number.parseInt(readString(block, TAR_SIZE_OFFSET, TAR_SIZE_LENGTH).trim(), OCTAL) || 0,
39
+ type: readString(block, TAR_TYPE_OFFSET, 1),
40
+ };
41
+ }
42
+ function readTarFile(archive, filePath) {
43
+ const wanted = `${PACKAGE_ROOT}${filePath}`;
44
+ let offset = 0;
45
+ while (offset + TAR_BLOCK_SIZE <= archive.length) {
46
+ const header = readHeader(archive.subarray(offset, offset + TAR_BLOCK_SIZE));
47
+ if (!header)
48
+ return undefined;
49
+ const start = offset + TAR_BLOCK_SIZE;
50
+ if (header.name === wanted) {
51
+ return archive.subarray(start, start + header.size);
52
+ }
53
+ offset = start + Math.ceil(header.size / TAR_BLOCK_SIZE) * TAR_BLOCK_SIZE;
54
+ }
55
+ return undefined;
56
+ }
57
+ async function packRelease(spec, projectPath, destination) {
58
+ await execFileAsync("npm", ["pack", spec, "--pack-destination", destination, "--silent"], { cwd: projectPath, timeout: NPM_PACK_TIMEOUT_MS });
59
+ const [file] = await (0, promises_1.readdir)(destination);
60
+ if (!file)
61
+ throw new Error(`npm pack ${spec} wrote no archive`);
62
+ return (0, node_zlib_1.gunzipSync)(await (0, promises_1.readFile)(node_path_1.default.join(destination, file)));
63
+ }
64
+ async function readPublishedFiles(packageName, version, projectPath, filePaths) {
65
+ const destination = await (0, promises_1.mkdtemp)(node_path_1.default.join((0, node_os_1.tmpdir)(), TEMP_PREFIX));
66
+ try {
67
+ const archive = await packRelease(`${packageName}@${version}`, projectPath, destination);
68
+ const files = new Map();
69
+ for (const filePath of filePaths) {
70
+ const content = readTarFile(archive, filePath);
71
+ if (content)
72
+ files.set(filePath, content.toString("utf-8"));
73
+ }
74
+ return files;
75
+ }
76
+ finally {
77
+ await (0, promises_1.rm)(destination, { recursive: true, force: true });
78
+ }
79
+ }
80
+ //# sourceMappingURL=tarball.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tarball.js","sourceRoot":"","sources":["../../src/store/tarball.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ export interface StoreCatalogEntry {
2
+ id: string;
3
+ package: string;
4
+ icon: string;
5
+ category: string;
6
+ }
7
+ export interface StoreCatalog {
8
+ version: number;
9
+ modules: StoreCatalogEntry[];
10
+ }
11
+ export interface StoreDeclaration {
12
+ key: string;
13
+ package: string;
14
+ range: string;
15
+ disabled: boolean;
16
+ config?: unknown;
17
+ }
18
+ export interface PackageRelease {
19
+ version: string;
20
+ interfaceRange?: string;
21
+ dependencies?: Record<string, string>;
22
+ implements?: string[];
23
+ }
24
+ export interface RuntimeModule {
25
+ id: string;
26
+ packageName?: string;
27
+ version?: string;
28
+ status: string;
29
+ localPath: string;
30
+ }
31
+ export type StoreOperationKind = "install" | "update" | "enable" | "disable" | "uninstall" | "apply";
32
+ export type StoreOperationStep = "resolve" | "dependencies" | "unload" | "load" | "save";
33
+ export interface StoreOperation {
34
+ moduleId: string;
35
+ kind: StoreOperationKind;
36
+ step: StoreOperationStep;
37
+ targetVersion?: string;
38
+ startedAt: number;
39
+ }
40
+ export type StoreModuleState = "available" | "busy" | "active" | "disabled" | "error" | "pending";
41
+ export type StoreFrontendState = "none" | "synced" | "pending" | "unknown";
42
+ export interface InterfaceImplementation {
43
+ name: string;
44
+ package: string;
45
+ }
46
+ export interface MissingInterface {
47
+ interfacePackage: string;
48
+ candidates: InterfaceImplementation[];
49
+ }
50
+ export interface FrontendBreak {
51
+ name: string;
52
+ range: string;
53
+ }
54
+ export interface FrontendRequirement {
55
+ range: string;
56
+ running: string;
57
+ target?: string;
58
+ command?: string;
59
+ breaks: FrontendBreak[];
60
+ }
61
+ export type FrontendVersionSource = "reported" | "project";
62
+ export interface StoreListingEntry {
63
+ id: string;
64
+ package: string;
65
+ icon: string;
66
+ category: string;
67
+ title: string;
68
+ description: string;
69
+ state: StoreModuleState;
70
+ installedVersion?: string;
71
+ declaredRange?: string;
72
+ latestVersion?: string;
73
+ updateAvailable: boolean;
74
+ compatible: boolean;
75
+ requiredInterfaceRange?: string;
76
+ error?: string;
77
+ operation?: StoreOperation;
78
+ frontend: StoreFrontendState;
79
+ frontendRange?: string;
80
+ frontendRequirement?: FrontendRequirement;
81
+ missingInterfaces: MissingInterface[];
82
+ dependents: string[];
83
+ }
84
+ export interface StoreListing {
85
+ enabled: boolean;
86
+ modules: StoreListingEntry[];
87
+ busy: boolean;
88
+ interfaceVersion: string;
89
+ dev: boolean;
90
+ configError?: string;
91
+ frontendVersion?: string;
92
+ frontendVersionSource?: FrontendVersionSource;
93
+ }
94
+ export interface StoreDependencyChoice {
95
+ interfacePackage: string;
96
+ package: string;
97
+ config?: Record<string, unknown>;
98
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":""}
@@ -56,7 +56,7 @@ function pageId(page) {
56
56
  return `pages.${page}`;
57
57
  }
58
58
  function ownerOf(proxy, id) {
59
- return proxy.state.registered.get(id)?.owner;
59
+ return proxy.registered.get(id)?.owner;
60
60
  }
61
61
  function permissionOwner(id) {
62
62
  return ownerOf(permissionsInterface.internal.RegisterPermission, id);
@@ -1 +1 @@
1
- {"version":3,"file":"page-extension-ownership.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms/page-extension-ownership.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-extension-ownership.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms/page-extension-ownership.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const config_1 = require("../../../config");
5
+ const catalog_1 = require("../../../store/catalog");
6
+ const compatibility_1 = require("../../../store/compatibility");
7
+ const declarations_1 = require("../../../store/declarations");
8
+ const frontend_compatibility_1 = require("../../../store/frontend-compatibility");
9
+ const runtime_1 = require("../../../store/runtime");
10
+ const tarball_1 = require("../../../store/tarball");
11
+ const store_schema_1 = require("../../../validation/store.schema");
12
+ function runtimeModule(status) {
13
+ return {
14
+ id: "@antelopejs/dms-lang",
15
+ packageName: "@antelopejs/dms-lang",
16
+ status,
17
+ localPath: "/modules/dms-lang",
18
+ };
19
+ }
20
+ describe("[unit] store/catalog", () => {
21
+ it("reads the bundled catalog, one entry per official module", async () => {
22
+ const catalog = await (0, catalog_1.loadStoreCatalog)();
23
+ const ids = catalog.map((entry) => entry.id);
24
+ (0, chai_1.expect)(ids).to.include.members(["lang", "media", "database"]);
25
+ (0, chai_1.expect)(new Set(ids).size).to.equal(ids.length);
26
+ });
27
+ it("drops an entry missing a field rather than half-reading it", () => {
28
+ const entries = (0, catalog_1.readCatalogDocument)({
29
+ version: 1,
30
+ modules: [
31
+ {
32
+ id: "lang",
33
+ package: "@antelopejs/dms-lang",
34
+ icon: "i",
35
+ category: "content",
36
+ },
37
+ { id: "nameless", icon: "i", category: "content" },
38
+ ],
39
+ });
40
+ (0, chai_1.expect)(entries.map((entry) => entry.id)).to.deep.equal(["lang"]);
41
+ });
42
+ it("refuses a catalog of another version", () => {
43
+ (0, chai_1.expect)(() => (0, catalog_1.readCatalogDocument)({ version: 2, modules: [] })).to.throw(/Unsupported module catalog version/);
44
+ });
45
+ });
46
+ describe("[unit] store/compatibility", () => {
47
+ it("follows the interface range a release depends on", () => {
48
+ const release = { version: "1.0.0", interfaceRange: ">=0.6.0 <1.0.0" };
49
+ (0, chai_1.expect)((0, compatibility_1.isCompatible)(release, "0.6.1")).to.equal(true);
50
+ (0, chai_1.expect)((0, compatibility_1.isCompatible)(release, "0.5.9")).to.equal(false);
51
+ });
52
+ it("does not hold back a release that names no range", () => {
53
+ (0, chai_1.expect)((0, compatibility_1.isCompatible)({ version: "1.0.0" }, "0.6.1")).to.equal(true);
54
+ });
55
+ });
56
+ describe("[unit] store/runtime", () => {
57
+ it("counts a module as running only while it holds an instance", () => {
58
+ (0, chai_1.expect)((0, runtime_1.isLive)(runtimeModule("active"))).to.equal(true);
59
+ (0, chai_1.expect)((0, runtime_1.isLive)(runtimeModule("constructed"))).to.equal(true);
60
+ (0, chai_1.expect)((0, runtime_1.isLive)(runtimeModule("loaded"))).to.equal(false);
61
+ (0, chai_1.expect)((0, runtime_1.isLive)(undefined)).to.equal(false);
62
+ });
63
+ });
64
+ describe("[unit] store/declarations", () => {
65
+ it("writes a package source at the given range", () => {
66
+ (0, chai_1.expect)((0, declarations_1.packageDeclarationSource)("@antelopejs/dms-lang", "^0.1.1")).to.deep.equal({
67
+ type: "package",
68
+ package: "@antelopejs/dms-lang",
69
+ version: "^0.1.1",
70
+ });
71
+ });
72
+ });
73
+ describe("[unit] store/editable", () => {
74
+ it("follows the runtime mode by default", () => {
75
+ (0, chai_1.expect)((0, config_1.isStoreEditable)(true)).to.equal(true);
76
+ (0, chai_1.expect)((0, config_1.isStoreEditable)(false)).to.equal(false);
77
+ });
78
+ });
79
+ function tarEntry(name, content) {
80
+ const header = Buffer.alloc(512);
81
+ header.write(name, 0);
82
+ header.write(`${content.length.toString(8).padStart(11, "0")}\0`, 124);
83
+ header.write("0", 156);
84
+ const body = Buffer.alloc(Math.ceil(content.length / 512) * 512);
85
+ body.write(content);
86
+ return Buffer.concat([header, body]);
87
+ }
88
+ describe("[unit] store/tarball", () => {
89
+ it("reads one file of an npm archive by its path in the package", () => {
90
+ const archive = Buffer.concat([
91
+ tarEntry("package/package.json", '{"name":"a"}'),
92
+ tarEntry("package/frontend-vue/package.json", '{"engines":{}}'),
93
+ Buffer.alloc(1024),
94
+ ]);
95
+ (0, chai_1.expect)((0, tarball_1.readTarFile)(archive, "frontend-vue/package.json")?.toString()).to.equal('{"engines":{}}');
96
+ (0, chai_1.expect)((0, tarball_1.readTarFile)(archive, "missing.json")).to.equal(undefined);
97
+ });
98
+ });
99
+ describe("[unit] store/frontend-compatibility", () => {
100
+ it("checks a prerelease as the release it leads to", () => {
101
+ (0, chai_1.expect)((0, frontend_compatibility_1.supportsFrontend)(">=0.6.0 <0.7.0", "0.6.0")).to.equal(true);
102
+ (0, chai_1.expect)((0, frontend_compatibility_1.supportsFrontend)(">=0.6.0 <0.7.0", "0.7.0-next.1")).to.equal(false);
103
+ (0, chai_1.expect)((0, frontend_compatibility_1.supportsFrontend)("<0.6.0", "0.6.0")).to.equal(false);
104
+ });
105
+ });
106
+ describe("[unit] validation/store", () => {
107
+ const install = (packageName) => store_schema_1.storeInstallSchema.safeParse({
108
+ id: "lang",
109
+ dependencies: [
110
+ {
111
+ interfacePackage: "@antelopejs/interface-redis",
112
+ package: packageName,
113
+ },
114
+ ],
115
+ }).success;
116
+ it("takes an npm package for a dependency", () => {
117
+ (0, chai_1.expect)(install("@antelopejs/redis")).to.equal(true);
118
+ (0, chai_1.expect)(install("redis-module")).to.equal(true);
119
+ });
120
+ it("refuses a git, URL or local source for a dependency", () => {
121
+ (0, chai_1.expect)(install("git+https://github.com/a/b.git")).to.equal(false);
122
+ (0, chai_1.expect)(install("../redis")).to.equal(false);
123
+ (0, chai_1.expect)(install("file:/tmp/redis")).to.equal(false);
124
+ (0, chai_1.expect)(install("github:a/b")).to.equal(false);
125
+ });
126
+ });
127
+ //# sourceMappingURL=store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../../../src/test/unit/store/store.test.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,10 @@ const db_1 = require("@antelopejs/interface-dms/auth/db");
6
6
  const chai_1 = require("chai");
7
7
  const user_activity_1 = require("../../../utils/user-activity");
8
8
  const NOW = new Date("2026-09-30T12:00:00.000Z");
9
- const SETTLE_MS = 50;
10
9
  const PASSWORD = "activity-test-password";
11
10
  function msBefore(date, ms) {
12
11
  return new Date(date.getTime() - ms);
13
12
  }
14
- function settle() {
15
- return new Promise((resolve) => setTimeout(resolve, SETTLE_MS));
16
- }
17
13
  describe("[unit] utils/user-activity", () => {
18
14
  describe("isActivityWriteDue", () => {
19
15
  it("is due for a user never seen", () => {
@@ -58,25 +54,21 @@ describe("[unit] utils/user-activity", () => {
58
54
  });
59
55
  it("stores the first activity of a user", async () => {
60
56
  const model = (0, interface_database_decorators_1.GetModel)(db_1.UserModel);
61
- (0, user_activity_1.recordUserActivity)(model, user, NOW);
62
- await settle();
57
+ await (0, user_activity_1.recordUserActivity)(model, user, NOW);
63
58
  const stored = await model.get(user._id);
64
59
  (0, chai_1.expect)(new Date(stored?.lastActiveAt ?? 0).getTime()).to.equal(NOW.getTime());
65
60
  });
66
61
  it("keeps the password verifiable", async () => {
67
62
  const model = (0, interface_database_decorators_1.GetModel)(db_1.UserModel);
68
- (0, user_activity_1.recordUserActivity)(model, user, NOW);
69
- await settle();
63
+ await (0, user_activity_1.recordUserActivity)(model, user, NOW);
70
64
  const stored = await model.get(user._id);
71
65
  (0, chai_1.expect)(stored?.testHash("password", PASSWORD)).to.equal(true);
72
66
  });
73
67
  it("skips the write while the last one is recent", async () => {
74
68
  const model = (0, interface_database_decorators_1.GetModel)(db_1.UserModel);
75
- (0, user_activity_1.recordUserActivity)(model, user, NOW);
76
- await settle();
69
+ await (0, user_activity_1.recordUserActivity)(model, user, NOW);
77
70
  const soon = new Date(NOW.getTime() + user_activity_1.USER_ACTIVITY_WRITE_INTERVAL_MS / 2);
78
- (0, user_activity_1.recordUserActivity)(model, user, soon);
79
- await settle();
71
+ await (0, user_activity_1.recordUserActivity)(model, user, soon);
80
72
  const stored = await model.get(user._id);
81
73
  (0, chai_1.expect)(new Date(stored?.lastActiveAt ?? 0).getTime()).to.equal(NOW.getTime());
82
74
  });
@@ -1 +1 @@
1
- {"version":3,"file":"user-activity.test.js","sourceRoot":"","sources":["../../../../src/test/unit/utils/user-activity.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-activity.test.js","sourceRoot":"","sources":["../../../../src/test/unit/utils/user-activity.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { User, UserModel } from "@antelopejs/interface-dms/auth/db";
2
2
  export declare const USER_ACTIVITY_WRITE_INTERVAL_MS: number;
3
3
  export declare function isActivityWriteDue(lastActiveAt: Date | null | undefined, now: Date): boolean;
4
- export declare function recordUserActivity(userModel: UserModel, user: User, now?: Date): void;
4
+ export declare function recordUserActivity(userModel: UserModel, user: User, now?: Date): Promise<void>;
@@ -11,12 +11,15 @@ function isActivityWriteDue(lastActiveAt, now) {
11
11
  const elapsed = now.getTime() - new Date(lastActiveAt).getTime();
12
12
  return elapsed >= exports.USER_ACTIVITY_WRITE_INTERVAL_MS;
13
13
  }
14
- function recordUserActivity(userModel, user, now = new Date()) {
14
+ async function recordUserActivity(userModel, user, now = new Date()) {
15
15
  if (!isActivityWriteDue(user.lastActiveAt, now))
16
16
  return;
17
17
  user.lastActiveAt = now;
18
- userModel.update(user).catch((error) => {
18
+ try {
19
+ await userModel.update(user);
20
+ }
21
+ catch (error) {
19
22
  logging_1.Logging.Warn(`[dms] could not record the activity of "${user._id}"`, error);
20
- });
23
+ }
21
24
  }
22
25
  //# sourceMappingURL=user-activity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-activity.js","sourceRoot":"","sources":["../../src/utils/user-activity.ts"],"names":[],"mappings":";;;AAgBA,gDAOC;AAUD,gDAYC;AA7CD,gEAA6D;AAQhD,QAAA,+BAA+B,GAAG,EAAE,GAAG,IAAI,CAAC;AAQzD,SAAgB,kBAAkB,CAChC,YAAqC,EACrC,GAAS;IAET,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;IACjE,OAAO,OAAO,IAAI,uCAA+B,CAAC;AACpD,CAAC;AAUD,SAAgB,kBAAkB,CAChC,SAAoB,EACpB,IAAU,EACV,MAAY,IAAI,IAAI,EAAE;IAEtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;QAAE,OAAO;IACxD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAGxB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC9C,iBAAO,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"user-activity.js","sourceRoot":"","sources":["../../src/utils/user-activity.ts"],"names":[],"mappings":";;;AAgBA,gDAOC;AAaD,gDAcC;AAlDD,gEAA6D;AAQhD,QAAA,+BAA+B,GAAG,EAAE,GAAG,IAAI,CAAC;AAQzD,SAAgB,kBAAkB,CAChC,YAAqC,EACrC,GAAS;IAET,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;IACjE,OAAO,OAAO,IAAI,uCAA+B,CAAC;AACpD,CAAC;AAaM,KAAK,UAAU,kBAAkB,CACtC,SAAoB,EACpB,IAAU,EACV,MAAY,IAAI,IAAI,EAAE;IAEtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;QAAE,OAAO;IACxD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAGxB,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,iBAAO,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ export declare const storeOperationSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ }, "strip", z.ZodTypeAny, {
5
+ id: string;
6
+ }, {
7
+ id: string;
8
+ }>;
9
+ export declare const storeInstallSchema: z.ZodObject<{
10
+ id: z.ZodString;
11
+ } & {
12
+ dependencies: z.ZodOptional<z.ZodArray<z.ZodObject<{
13
+ interfacePackage: z.ZodString;
14
+ package: z.ZodString;
15
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ package: string;
18
+ interfacePackage: string;
19
+ config?: Record<string, unknown> | undefined;
20
+ }, {
21
+ package: string;
22
+ interfacePackage: string;
23
+ config?: Record<string, unknown> | undefined;
24
+ }>, "many">>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ id: string;
27
+ dependencies?: {
28
+ package: string;
29
+ interfacePackage: string;
30
+ config?: Record<string, unknown> | undefined;
31
+ }[] | undefined;
32
+ }, {
33
+ id: string;
34
+ dependencies?: {
35
+ package: string;
36
+ interfacePackage: string;
37
+ config?: Record<string, unknown> | undefined;
38
+ }[] | undefined;
39
+ }>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeInstallSchema = exports.storeOperationSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const CATALOG_ID_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
6
+ const CATALOG_ID_MAX_LENGTH = 64;
7
+ exports.storeOperationSchema = zod_1.z.object({
8
+ id: zod_1.z.string().max(CATALOG_ID_MAX_LENGTH).regex(CATALOG_ID_PATTERN),
9
+ });
10
+ const NPM_PACKAGE_PATTERN = /^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/;
11
+ const NPM_PACKAGE_MAX_LENGTH = 214;
12
+ const MAX_DEPENDENCIES = 20;
13
+ const npmPackageSchema = zod_1.z
14
+ .string()
15
+ .max(NPM_PACKAGE_MAX_LENGTH)
16
+ .regex(NPM_PACKAGE_PATTERN);
17
+ exports.storeInstallSchema = exports.storeOperationSchema.extend({
18
+ dependencies: zod_1.z
19
+ .array(zod_1.z.object({
20
+ interfacePackage: npmPackageSchema,
21
+ package: npmPackageSchema,
22
+ config: zod_1.z.record(zod_1.z.unknown()).optional(),
23
+ }))
24
+ .max(MAX_DEPENDENCIES)
25
+ .optional(),
26
+ });
27
+ //# sourceMappingURL=store.schema.js.map