@antelopejs/dms 0.5.1 → 0.5.3
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/CHANGELOG.md +54 -0
- package/dist/attachments/access.d.ts +1 -0
- package/dist/attachments/access.js +7 -3
- package/dist/attachments/access.js.map +1 -1
- package/dist/attachments/constraints.d.ts +4 -0
- package/dist/attachments/constraints.js +28 -0
- package/dist/attachments/constraints.js.map +1 -0
- package/dist/attachments/save.js +23 -12
- package/dist/attachments/save.js.map +1 -1
- package/dist/attachments/uploads.js +2 -0
- package/dist/attachments/uploads.js.map +1 -1
- package/dist/implementations/dms/page.js +69 -22
- package/dist/implementations/dms/page.js.map +1 -1
- package/dist/implementations/dms-base/search-route.js +3 -4
- package/dist/implementations/dms-base/search-route.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/realtime/index.js +2 -0
- package/dist/realtime/index.js.map +1 -1
- package/dist/realtime/sessions.d.ts +3 -0
- package/dist/realtime/sessions.js +5 -0
- package/dist/realtime/sessions.js.map +1 -1
- package/dist/realtime/sse.d.ts +1 -1
- package/dist/realtime/sse.js +9 -3
- package/dist/realtime/sse.js.map +1 -1
- package/dist/routes/realtime.js +8 -3
- package/dist/routes/realtime.js.map +1 -1
- package/dist/test/attachment-host/native.d.ts +25 -0
- package/dist/test/attachment-host/native.js +54 -1
- package/dist/test/attachment-host/native.js.map +1 -1
- package/dist/test/helpers/attachments.d.ts +1 -1
- package/dist/test/helpers/attachments.js +2 -2
- package/dist/test/helpers/attachments.js.map +1 -1
- package/dist/test/helpers/reload-host.d.ts +7 -2
- package/dist/test/helpers/reload-host.js +23 -4
- package/dist/test/helpers/reload-host.js.map +1 -1
- package/dist/test/integration/files/field-constraints.test.d.ts +1 -0
- package/dist/test/integration/files/field-constraints.test.js +100 -0
- package/dist/test/integration/files/field-constraints.test.js.map +1 -0
- package/dist/test/integration/files/page-mode-form-files.test.d.ts +1 -0
- package/dist/test/integration/files/page-mode-form-files.test.js +114 -0
- package/dist/test/integration/files/page-mode-form-files.test.js.map +1 -0
- package/dist/test/integration/files/resource-form-files.test.d.ts +1 -0
- package/dist/test/integration/files/resource-form-files.test.js +121 -0
- package/dist/test/integration/files/resource-form-files.test.js.map +1 -0
- package/dist/test/integration/files/shared-controller-files.test.d.ts +1 -0
- package/dist/test/integration/files/shared-controller-files.test.js +136 -0
- package/dist/test/integration/files/shared-controller-files.test.js.map +1 -0
- package/dist/test/reload-host/index.js +27 -1
- package/dist/test/reload-host/index.js.map +1 -1
- package/dist/test/unit/implementations/dms/missing-category.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/missing-category.test.js +174 -0
- package/dist/test/unit/implementations/dms/missing-category.test.js.map +1 -0
- package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js +113 -0
- package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/database-initialized-hook.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/database-initialized-hook.test.js +92 -0
- package/dist/test/unit/interfaces/dms/database-initialized-hook.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/invite-extension.test.js +59 -0
- package/dist/test/unit/interfaces/dms/invite-extension.test.js.map +1 -1
- package/dist/test/unit/interfaces/dms/module-reload-registrations.test.js +2 -2
- package/dist/test/unit/interfaces/dms/module-reload-registrations.test.js.map +1 -1
- package/dist/test/unit/interfaces/dms/page-extension-ownership.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/page-extension-ownership.test.js +153 -0
- package/dist/test/unit/interfaces/dms/page-extension-ownership.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/resource-form.test.js +19 -0
- package/dist/test/unit/interfaces/dms-base/resource-form.test.js.map +1 -1
- package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js +2 -2
- package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js.map +1 -1
- package/dist/test/unit/realtime/stop-closes-streams.test.d.ts +1 -0
- package/dist/test/unit/realtime/stop-closes-streams.test.js +99 -0
- package/dist/test/unit/realtime/stop-closes-streams.test.js.map +1 -0
- package/dist/test/unit/skills/dms-dev-script.test.d.ts +1 -0
- package/dist/test/unit/skills/dms-dev-script.test.js +137 -0
- package/dist/test/unit/skills/dms-dev-script.test.js.map +1 -0
- package/dist/validation/auth.schema.d.ts +2 -2
- package/frontend-vue/dms.frontend.ts +4 -3
- package/frontend-vue/layers/dms-core/app/composables/realtime/useUserRealtime.ts +116 -44
- package/frontend-vue/layers/dms-layout/app/pages/[...slug].vue +2 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/File.vue +50 -21
- package/frontend-vue/layers/dms-ui/app/components/form/components/Image.vue +54 -21
- package/frontend-vue/layers/dms-ui/app/components/form/components/Relation.vue +4 -3
- package/frontend-vue/layers/dms-ui/app/composables/form/useUploadWithProgress.ts +44 -3
- package/frontend-vue/layers/dms-ui/app/plugins/shortcuts.ts +1 -1
- package/frontend-vue/layers/dms-ui/app/types/shortcuts-aggregated.d.ts +8 -0
- package/frontend-vue/layers/dms-ui/app/utils/metadataRetry.ts +47 -0
- package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +3 -1
- package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +3 -1
- package/frontend-vue/tests/file-unavailable.test.ts +107 -0
- package/frontend-vue/tests/image-hydration-ids.test.ts +87 -0
- package/frontend-vue/tests/image-reference-preservation.test.ts +12 -2
- package/frontend-vue/tests/metadata-retry.test.ts +187 -0
- package/frontend-vue/tests/realtime-reconnect.test.ts +215 -0
- package/frontend-vue/tests/shortcuts-aggregate.test.ts +41 -0
- package/frontend-vue/tests/upload-forbidden-headers.test.ts +52 -0
- package/frontend-vue/vitest.config.ts +4 -0
- package/package.json +2 -2
- package/skills/dms-dev/SKILL.md +28 -16
- package/skills/dms-dev/scripts/dms-dev.sh +275 -83
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const interface_core_1 = require("@antelopejs/interface-core");
|
|
37
|
+
const modules_1 = require("@antelopejs/interface-core/modules");
|
|
38
|
+
const chai_1 = require("chai");
|
|
39
|
+
const pageImpl = __importStar(require("../../../../implementations/dms/page"));
|
|
40
|
+
const permissionsImpl = __importStar(require("../../../../implementations/dms/permissions"));
|
|
41
|
+
const realtimeImpl = __importStar(require("../../../../implementations/dms/realtime"));
|
|
42
|
+
const chart_1 = require("@antelopejs/interface-dms/base/chart");
|
|
43
|
+
const page_1 = require("@antelopejs/interface-dms/page");
|
|
44
|
+
const permissionsInterface = __importStar(require("@antelopejs/interface-dms/permissions"));
|
|
45
|
+
const realtimeInterface = __importStar(require("@antelopejs/interface-dms/realtime"));
|
|
46
|
+
const registry_1 = require("../../../../realtime/registry");
|
|
47
|
+
const reload_host_1 = require("../../../helpers/reload-host");
|
|
48
|
+
const PAGE_TOPIC = "pe-ownership:page";
|
|
49
|
+
const OWN_KEY = "trend";
|
|
50
|
+
const AFTER_PAGE = "pe-ownership-after";
|
|
51
|
+
const BEFORE_PAGE = "pe-ownership-before";
|
|
52
|
+
function settle() {
|
|
53
|
+
return new Promise((resolve) => setImmediate(resolve));
|
|
54
|
+
}
|
|
55
|
+
function pageId(page) {
|
|
56
|
+
return `pages.${page}`;
|
|
57
|
+
}
|
|
58
|
+
function ownerOf(proxy, id) {
|
|
59
|
+
return proxy.state.registered.get(id)?.owner;
|
|
60
|
+
}
|
|
61
|
+
function permissionOwner(id) {
|
|
62
|
+
return ownerOf(permissionsInterface.internal.RegisterPermission, id);
|
|
63
|
+
}
|
|
64
|
+
function topicOwner(page, topic) {
|
|
65
|
+
return ownerOf(realtimeInterface.internal.RegisterPageTopic, JSON.stringify([pageId(page), topic]));
|
|
66
|
+
}
|
|
67
|
+
function extensionPermission(page) {
|
|
68
|
+
return `${pageId(page)}.${reload_host_1.RELOAD_HOST_EXTENSION_KEY}`;
|
|
69
|
+
}
|
|
70
|
+
function definePage(id) {
|
|
71
|
+
return class extends (0, page_1.PageController)(id, {
|
|
72
|
+
displayName: `Extension ownership ${id}`,
|
|
73
|
+
category: page_1.pagesCategory,
|
|
74
|
+
}) {
|
|
75
|
+
static [OWN_KEY] = (0, chart_1.ChartLine)({ realtimeTopic: PAGE_TOPIC });
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function registerPage(id) {
|
|
79
|
+
const page = definePage(id);
|
|
80
|
+
(0, page_1.RegisterPage)()(page);
|
|
81
|
+
await settle();
|
|
82
|
+
await settle();
|
|
83
|
+
return page;
|
|
84
|
+
}
|
|
85
|
+
async function reloadExtendingModule(pages) {
|
|
86
|
+
(0, reload_host_1.setReloadHostExtendedPages)(pages.map(pageId));
|
|
87
|
+
await (0, modules_1.ReloadModule)(reload_host_1.RELOAD_HOST_MODULE);
|
|
88
|
+
await settle();
|
|
89
|
+
await settle();
|
|
90
|
+
}
|
|
91
|
+
function attachNewDmsGeneration() {
|
|
92
|
+
(0, registry_1.clearPageTopics)(pageId(AFTER_PAGE));
|
|
93
|
+
(0, registry_1.clearPageTopics)(pageId(BEFORE_PAGE));
|
|
94
|
+
(0, interface_core_1.ImplementInterface)(permissionsInterface, permissionsImpl);
|
|
95
|
+
(0, interface_core_1.ImplementInterface)(realtimeInterface, realtimeImpl);
|
|
96
|
+
}
|
|
97
|
+
function expectOwnedByExtendingModule(page) {
|
|
98
|
+
const owner = (0, reload_host_1.liveReloadHostOwner)();
|
|
99
|
+
(0, chai_1.expect)(owner).to.be.a("string");
|
|
100
|
+
(0, chai_1.expect)(owner).to.not.equal((0, modules_1.GetModuleContext)()?.owner);
|
|
101
|
+
(0, chai_1.expect)(permissionOwner(extensionPermission(page))).to.equal(owner);
|
|
102
|
+
(0, chai_1.expect)(topicOwner(page, reload_host_1.RELOAD_HOST_EXTENSION_TOPIC)).to.equal(owner);
|
|
103
|
+
}
|
|
104
|
+
describe("[unit] interfaces/dms/page — page extension ownership", () => {
|
|
105
|
+
let pageOwner;
|
|
106
|
+
let beforeTarget;
|
|
107
|
+
before(async () => {
|
|
108
|
+
await registerPage(AFTER_PAGE);
|
|
109
|
+
pageOwner = topicOwner(AFTER_PAGE, PAGE_TOPIC);
|
|
110
|
+
await reloadExtendingModule([AFTER_PAGE, BEFORE_PAGE]);
|
|
111
|
+
beforeTarget = await registerPage(BEFORE_PAGE);
|
|
112
|
+
});
|
|
113
|
+
after(() => {
|
|
114
|
+
(0, reload_host_1.setReloadHostExtendedPages)([]);
|
|
115
|
+
});
|
|
116
|
+
it("gives an extension registered after its page to the extending module", () => {
|
|
117
|
+
expectOwnedByExtendingModule(AFTER_PAGE);
|
|
118
|
+
(0, chai_1.expect)(pageOwner).to.be.a("string");
|
|
119
|
+
(0, chai_1.expect)(pageOwner).to.not.equal((0, reload_host_1.liveReloadHostOwner)());
|
|
120
|
+
(0, chai_1.expect)(permissionOwner(`${pageId(AFTER_PAGE)}.${OWN_KEY}`)).to.equal(pageOwner);
|
|
121
|
+
});
|
|
122
|
+
it("gives an extension registered before its page to the extending module", () => {
|
|
123
|
+
expectOwnedByExtendingModule(BEFORE_PAGE);
|
|
124
|
+
(0, chai_1.expect)(topicOwner(BEFORE_PAGE, PAGE_TOPIC)).to.equal(pageOwner);
|
|
125
|
+
});
|
|
126
|
+
it("keeps an extension with its module when the target page registers again", async () => {
|
|
127
|
+
const pageInfo = (0, interface_core_1.GetMetadata)(beforeTarget, page_1.PageMetadata).pageInfo;
|
|
128
|
+
pageImpl.internal.RegisterPage.unregister(pageInfo);
|
|
129
|
+
(0, chai_1.expect)(permissionOwner(extensionPermission(BEFORE_PAGE))).to.equal(undefined);
|
|
130
|
+
beforeTarget = await registerPage(BEFORE_PAGE);
|
|
131
|
+
expectOwnedByExtendingModule(BEFORE_PAGE);
|
|
132
|
+
});
|
|
133
|
+
it("brings an extension's topic and permission back to a new DMS generation", async () => {
|
|
134
|
+
attachNewDmsGeneration();
|
|
135
|
+
(0, chai_1.expect)([...(0, registry_1.getPageTopics)(pageId(AFTER_PAGE))]).to.have.members([
|
|
136
|
+
PAGE_TOPIC,
|
|
137
|
+
reload_host_1.RELOAD_HOST_EXTENSION_TOPIC,
|
|
138
|
+
]);
|
|
139
|
+
expectOwnedByExtendingModule(AFTER_PAGE);
|
|
140
|
+
(0, chai_1.expect)(permissionsImpl.GetPermission(extensionPermission(AFTER_PAGE))).to.not.equal(undefined);
|
|
141
|
+
});
|
|
142
|
+
it("releases an extension's topic and permission with the extending module", async () => {
|
|
143
|
+
await reloadExtendingModule([]);
|
|
144
|
+
for (const page of [AFTER_PAGE, BEFORE_PAGE]) {
|
|
145
|
+
(0, chai_1.expect)(permissionOwner(extensionPermission(page))).to.equal(undefined);
|
|
146
|
+
(0, chai_1.expect)(permissionsImpl.GetPermission(extensionPermission(page))).to.equal(undefined);
|
|
147
|
+
(0, chai_1.expect)(topicOwner(page, reload_host_1.RELOAD_HOST_EXTENSION_TOPIC)).to.equal(undefined);
|
|
148
|
+
(0, chai_1.expect)([...(0, registry_1.getPageTopics)(pageId(page))]).to.deep.equal([PAGE_TOPIC]);
|
|
149
|
+
(0, chai_1.expect)(permissionOwner(`${pageId(page)}.${OWN_KEY}`)).to.equal(pageOwner);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=page-extension-ownership.test.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -13,6 +13,7 @@ const interface_api_1 = require("@antelopejs/interface-api");
|
|
|
13
13
|
const interface_data_api_1 = require("@antelopejs/interface-data-api");
|
|
14
14
|
const metadata_1 = require("@antelopejs/interface-data-api/metadata");
|
|
15
15
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
16
|
+
const interface_core_1 = require("@antelopejs/interface-core");
|
|
16
17
|
const chai_1 = require("chai");
|
|
17
18
|
const block_types_1 = require("@antelopejs/interface-dms/base/block-types");
|
|
18
19
|
const default_types_1 = require("@antelopejs/interface-dms/base/data-types/default-types");
|
|
@@ -107,6 +108,24 @@ describe("[unit] interfaces/dms-base/resource-form — a form derived from its t
|
|
|
107
108
|
(0, chai_1.expect)(edited.submitUrl).to.equal(`${LOCATION}/edit?id={{params.ticket}}`);
|
|
108
109
|
(0, chai_1.expect)(edited, "the row token is the form's to resolve, not an option").to.not.have.property("rowId");
|
|
109
110
|
});
|
|
111
|
+
it("counts among the components writing to the table only when it submits", () => {
|
|
112
|
+
const meta = (0, interface_core_1.GetMetadata)(TicketAPI, meta_1.TableViewMeta);
|
|
113
|
+
const created = (0, resource_form_1.ResourceForm)(TicketAPI, { mode: "new" });
|
|
114
|
+
const edited = (0, resource_form_1.ResourceForm)(TicketAPI, { mode: "edit" });
|
|
115
|
+
const shown = (0, resource_form_1.ResourceForm)(TicketAPI, { mode: "view" });
|
|
116
|
+
const table = (0, factory_1.TableView)(TicketAPI);
|
|
117
|
+
(0, chai_1.expect)(meta.writingComponents).to.include.members([created, edited, table]);
|
|
118
|
+
(0, chai_1.expect)(meta.writingComponents).to.not.include(shown);
|
|
119
|
+
(0, chai_1.expect)(meta.componentBuilders, "a form carries no TableView action permission").to.not.include.members([created, edited]);
|
|
120
|
+
});
|
|
121
|
+
it("counts a TableView's own new and edit forms among the components writing to the table", () => {
|
|
122
|
+
const meta = (0, interface_core_1.GetMetadata)(TicketAPI, meta_1.TableViewMeta);
|
|
123
|
+
const built = meta.resourceFormBuilders.length;
|
|
124
|
+
(0, factory_1.TableView)(TicketAPI);
|
|
125
|
+
(0, chai_1.expect)(meta.resourceFormBuilders
|
|
126
|
+
.slice(built)
|
|
127
|
+
.map((form) => optionsOf(form).submitUrl)).to.deep.equal([`${LOCATION}/new`, `${LOCATION}/edit?id={{params.id}}`]);
|
|
128
|
+
});
|
|
110
129
|
it("is declared as a block over a table, picked by mode", () => {
|
|
111
130
|
const declared = (0, block_types_1.ListBlockTypes)().find((block) => block.type === "ResourceForm");
|
|
112
131
|
(0, chai_1.expect)(declared?.controllerArg).to.equal(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-form.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/resource-form.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6DAAuD;AACvD,uEAGwC;AACxC,sEAIiD;AACjD,6FAMmD;AACnD,+BAA8B;AAC9B,4EAA4E;AAC5E,2FAA2F;AAK3F,+EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"resource-form.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/resource-form.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,9 +66,9 @@ function tableViewInstance(options, permissionId) {
|
|
|
66
66
|
meta.setBypassTenantAccessGate();
|
|
67
67
|
}
|
|
68
68
|
if (permissionId) {
|
|
69
|
-
meta.
|
|
69
|
+
meta.addComponentBuilder({
|
|
70
70
|
getAction: () => ({ permissionId }),
|
|
71
|
-
};
|
|
71
|
+
});
|
|
72
72
|
}
|
|
73
73
|
return new Controller();
|
|
74
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-view-tenant-gate.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/table-view-tenant-gate.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAAuD;AACvD,+DAA6E;AAC7E,6FAGmD;AACnD,+BAA8B;AAC9B,6FAA+E;AAC/E,8GAAgG;AAChG,gGAAkF;AAElF,mEAAyE;AACzE,qDAA4E;AAC5E,4FAA8E;AAC9E,6GAA+F;AAC/F,+FAAiF;AAEjF,0EAMmD;AACnD,8DAAiE;AAEjE,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAC9C,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAChD,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAC3C,MAAM,WAAW,GAAG,MAAM,CAAC;AAC3B,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEhD,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChF,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAU,CAAC;AAEjD,MAAM,QAAQ,GAAG,IAAA,+BAAiB,EAAC,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AAE7E,SAAS,iBAAiB,CACxB,OAAyB,EACzB,YAAqB;IAErB,MAAM,UAAU;KAAG;IACnB,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,UAAU,EAAE,0BAAa,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;QACnC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"table-view-tenant-gate.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/table-view-tenant-gate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_events_1 = require("node:events");
|
|
4
|
+
const chai_1 = require("chai");
|
|
5
|
+
const realtime_1 = require("../../../realtime");
|
|
6
|
+
const sessions_1 = require("../../../realtime/sessions");
|
|
7
|
+
const realtime_2 = require("../../../routes/realtime");
|
|
8
|
+
const USER = { _id: "stop-closes-streams-user", email: "u@example.com" };
|
|
9
|
+
const createFakeStream = () => {
|
|
10
|
+
const frames = [];
|
|
11
|
+
let isEnded = false;
|
|
12
|
+
const writer = {
|
|
13
|
+
write: (frame) => {
|
|
14
|
+
frames.push(frame);
|
|
15
|
+
return true;
|
|
16
|
+
},
|
|
17
|
+
end: () => {
|
|
18
|
+
isEnded = true;
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
const rawRequest = Object.assign(new node_events_1.EventEmitter(), { headers: {} });
|
|
22
|
+
const ctx = {
|
|
23
|
+
rawRequest,
|
|
24
|
+
response: { addHeader: () => { }, getWriteStream: () => writer },
|
|
25
|
+
};
|
|
26
|
+
return { ctx, frames, isEnded: () => isEnded };
|
|
27
|
+
};
|
|
28
|
+
const spyOnIntervals = () => {
|
|
29
|
+
const originalSet = globalThis.setInterval;
|
|
30
|
+
const originalClear = globalThis.clearInterval;
|
|
31
|
+
const started = new Set();
|
|
32
|
+
const cleared = new Set();
|
|
33
|
+
globalThis.setInterval = ((...args) => {
|
|
34
|
+
const timer = originalSet(...args);
|
|
35
|
+
started.add(timer);
|
|
36
|
+
return timer;
|
|
37
|
+
});
|
|
38
|
+
globalThis.clearInterval = ((timer) => {
|
|
39
|
+
cleared.add(timer);
|
|
40
|
+
originalClear(timer);
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
started,
|
|
44
|
+
cleared,
|
|
45
|
+
restore: () => {
|
|
46
|
+
globalThis.setInterval = originalSet;
|
|
47
|
+
globalThis.clearInterval = originalClear;
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
const readSessionId = (stream) => {
|
|
52
|
+
const hello = stream.frames.find((frame) => frame.startsWith("event: hello"));
|
|
53
|
+
const data = hello?.split("\ndata: ")[1] ?? "{}";
|
|
54
|
+
return JSON.parse(data).sessionId;
|
|
55
|
+
};
|
|
56
|
+
const openUserStream = async (stream) => {
|
|
57
|
+
await realtime_2.RealtimeController.prototype.userStream.call(undefined, stream.ctx, USER);
|
|
58
|
+
};
|
|
59
|
+
describe("[unit] realtime — stopRealtime ends open SSE streams", () => {
|
|
60
|
+
let timers;
|
|
61
|
+
beforeEach(() => {
|
|
62
|
+
(0, realtime_1.setRealtimeBroker)(new realtime_1.InMemoryBroker());
|
|
63
|
+
timers = spyOnIntervals();
|
|
64
|
+
});
|
|
65
|
+
afterEach(() => {
|
|
66
|
+
timers.restore();
|
|
67
|
+
(0, realtime_1.setRealtimeBroker)(new realtime_1.InMemoryBroker());
|
|
68
|
+
});
|
|
69
|
+
it("ends a user stream opened before the stop and clears its keepalive", async () => {
|
|
70
|
+
const stream = createFakeStream();
|
|
71
|
+
await openUserStream(stream);
|
|
72
|
+
const sessionId = readSessionId(stream);
|
|
73
|
+
(0, chai_1.expect)((0, sessions_1.getSessionInfo)(sessionId)).to.not.equal(undefined);
|
|
74
|
+
(0, chai_1.expect)(timers.started.size).to.equal(1);
|
|
75
|
+
await (0, realtime_1.stopRealtime)();
|
|
76
|
+
(0, chai_1.expect)(stream.isEnded()).to.equal(true);
|
|
77
|
+
(0, chai_1.expect)([...timers.started].every((t) => timers.cleared.has(t))).to.equal(true);
|
|
78
|
+
(0, chai_1.expect)((0, sessions_1.getSessionInfo)(sessionId)).to.equal(undefined);
|
|
79
|
+
});
|
|
80
|
+
it("ends every open stream, not just the first", async () => {
|
|
81
|
+
const streams = [createFakeStream(), createFakeStream()];
|
|
82
|
+
for (const stream of streams)
|
|
83
|
+
await openUserStream(stream);
|
|
84
|
+
await (0, realtime_1.stopRealtime)();
|
|
85
|
+
(0, chai_1.expect)(streams.map((stream) => stream.isEnded())).to.deep.equal([
|
|
86
|
+
true,
|
|
87
|
+
true,
|
|
88
|
+
]);
|
|
89
|
+
(0, chai_1.expect)(timers.cleared.size).to.equal(2);
|
|
90
|
+
});
|
|
91
|
+
it("leaves a stream the client already closed alone", async () => {
|
|
92
|
+
const stream = createFakeStream();
|
|
93
|
+
await openUserStream(stream);
|
|
94
|
+
stream.ctx.rawRequest.emit("close");
|
|
95
|
+
await (0, realtime_1.stopRealtime)();
|
|
96
|
+
(0, chai_1.expect)(stream.isEnded()).to.equal(false);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=stop-closes-streams.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop-closes-streams.test.js","sourceRoot":"","sources":["../../../../src/test/unit/realtime/stop-closes-streams.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_child_process_1 = require("node:child_process");
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_os_1 = require("node:os");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const node_util_1 = require("node:util");
|
|
8
|
+
const chai_1 = require("chai");
|
|
9
|
+
const PACKAGE_ROOT = (0, node_path_1.resolve)(__dirname, "..", "..", "..", "..");
|
|
10
|
+
const SCRIPT = (0, node_path_1.join)(PACKAGE_ROOT, "skills", "dms-dev", "scripts", "dms-dev.sh");
|
|
11
|
+
const SCRIPT_TIMEOUT_MS = 30_000;
|
|
12
|
+
const SUITE_TIMEOUT_MS = 90_000;
|
|
13
|
+
const STOP_GRACE_SECONDS = "1";
|
|
14
|
+
const READY_TIMEOUT_SECONDS = "15";
|
|
15
|
+
const PROJECT_PORTS = { first: 6110, second: 6120 };
|
|
16
|
+
const FAKE_BACKEND = `#!/usr/bin/env bash
|
|
17
|
+
mkdir -p .antelope
|
|
18
|
+
printf '{"pid": %s, "servers": {"api": {"endpoints": [{"protocol": "http", "host": "0.0.0.0", "port": %s}]}}}' "$$" "$FAKE_PORT" > .antelope/dev.json
|
|
19
|
+
sleep 300 &
|
|
20
|
+
echo "Server started, listening on http://localhost:$FAKE_PORT"
|
|
21
|
+
wait
|
|
22
|
+
`;
|
|
23
|
+
const FAKE_FRONTEND = `#!/usr/bin/env bash
|
|
24
|
+
trap '' TERM
|
|
25
|
+
sleep 300 &
|
|
26
|
+
echo "Server ready on http://localhost:$((FAKE_PORT + 1))"
|
|
27
|
+
wait
|
|
28
|
+
`;
|
|
29
|
+
const runProcess = (0, node_util_1.promisify)(node_child_process_1.execFile);
|
|
30
|
+
function createProject(root, name, port) {
|
|
31
|
+
const dir = (0, node_path_1.join)(root, name);
|
|
32
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(dir, "bin"), { recursive: true });
|
|
33
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, "package.json"), "{}");
|
|
34
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, "bin", "antelope-runner"), FAKE_BACKEND);
|
|
35
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, "bin", "ajs-dms"), FAKE_FRONTEND);
|
|
36
|
+
(0, node_fs_1.chmodSync)((0, node_path_1.join)(dir, "bin", "antelope-runner"), 0o755);
|
|
37
|
+
(0, node_fs_1.chmodSync)((0, node_path_1.join)(dir, "bin", "ajs-dms"), 0o755);
|
|
38
|
+
return { dir, port };
|
|
39
|
+
}
|
|
40
|
+
async function runScript(project, command) {
|
|
41
|
+
const env = {
|
|
42
|
+
...process.env,
|
|
43
|
+
FAKE_PORT: String(project.port),
|
|
44
|
+
DMS_BACK_DIR: project.dir,
|
|
45
|
+
DMS_BACK_CMD: (0, node_path_1.join)(project.dir, "bin", "antelope-runner"),
|
|
46
|
+
DMS_FRONT_CMD: `${(0, node_path_1.join)(project.dir, "bin", "ajs-dms")} dev`,
|
|
47
|
+
DMS_BACK_LOG: (0, node_path_1.join)(project.dir, "back.log"),
|
|
48
|
+
DMS_FRONT_LOG: (0, node_path_1.join)(project.dir, "front.log"),
|
|
49
|
+
DMS_DEV_STOP_GRACE: STOP_GRACE_SECONDS,
|
|
50
|
+
DMS_DEV_TIMEOUT: READY_TIMEOUT_SECONDS,
|
|
51
|
+
};
|
|
52
|
+
try {
|
|
53
|
+
const { stdout, stderr } = await runProcess("bash", [SCRIPT, command], {
|
|
54
|
+
env,
|
|
55
|
+
timeout: SCRIPT_TIMEOUT_MS,
|
|
56
|
+
});
|
|
57
|
+
return { code: 0, output: stdout + stderr };
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const failure = error;
|
|
61
|
+
return {
|
|
62
|
+
code: failure.code ?? 1,
|
|
63
|
+
output: `${failure.stdout ?? ""}${failure.stderr ?? ""}`,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function pidFile(project) {
|
|
68
|
+
return (0, node_path_1.join)(project.dir, ".antelope", "dms-dev.pid");
|
|
69
|
+
}
|
|
70
|
+
function recordedPids(project) {
|
|
71
|
+
return (0, node_fs_1.readFileSync)(pidFile(project), "utf8")
|
|
72
|
+
.trim()
|
|
73
|
+
.split("\n")
|
|
74
|
+
.map((line) => Number(line.split(" ")[1]));
|
|
75
|
+
}
|
|
76
|
+
function isAlive(pid) {
|
|
77
|
+
try {
|
|
78
|
+
process.kill(pid, 0);
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
describe("[unit] skills/dms-dev script", function () {
|
|
86
|
+
this.timeout(SUITE_TIMEOUT_MS);
|
|
87
|
+
let root;
|
|
88
|
+
let first;
|
|
89
|
+
let second;
|
|
90
|
+
beforeEach(() => {
|
|
91
|
+
root = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "dms-dev-script-"));
|
|
92
|
+
first = createProject(root, "first", PROJECT_PORTS.first);
|
|
93
|
+
second = createProject(root, "second", PROJECT_PORTS.second);
|
|
94
|
+
});
|
|
95
|
+
afterEach(async () => {
|
|
96
|
+
await runScript(first, "stop");
|
|
97
|
+
await runScript(second, "stop");
|
|
98
|
+
(0, node_fs_1.rmSync)(root, { recursive: true, force: true });
|
|
99
|
+
});
|
|
100
|
+
it("reports the ports the servers announce", async () => {
|
|
101
|
+
const started = await runScript(first, "start");
|
|
102
|
+
(0, chai_1.expect)(started.code, started.output).to.equal(0);
|
|
103
|
+
(0, chai_1.expect)(started.output).to.contain(`backend ready on http://localhost:${PROJECT_PORTS.first}.`);
|
|
104
|
+
(0, chai_1.expect)(started.output).to.contain(`frontend ready on http://localhost:${PROJECT_PORTS.first + 1}.`);
|
|
105
|
+
});
|
|
106
|
+
it("stops only the processes of its own project", async () => {
|
|
107
|
+
await runScript(first, "start");
|
|
108
|
+
await runScript(second, "start");
|
|
109
|
+
const firstPids = recordedPids(first);
|
|
110
|
+
const secondPids = recordedPids(second);
|
|
111
|
+
const stopped = await runScript(first, "stop");
|
|
112
|
+
(0, chai_1.expect)(stopped.code, stopped.output).to.equal(0);
|
|
113
|
+
(0, chai_1.expect)(firstPids.filter(isAlive)).to.deep.equal([]);
|
|
114
|
+
(0, chai_1.expect)(secondPids.filter(isAlive)).to.deep.equal(secondPids);
|
|
115
|
+
(0, chai_1.expect)((0, node_fs_1.existsSync)(pidFile(first))).to.equal(false);
|
|
116
|
+
});
|
|
117
|
+
it("falls back to the project's directory when the pid file is gone", async () => {
|
|
118
|
+
await runScript(first, "start");
|
|
119
|
+
await runScript(second, "start");
|
|
120
|
+
const firstPids = recordedPids(first);
|
|
121
|
+
const secondPids = recordedPids(second);
|
|
122
|
+
(0, node_fs_1.rmSync)(pidFile(first));
|
|
123
|
+
const stopped = await runScript(first, "stop");
|
|
124
|
+
(0, chai_1.expect)(stopped.code, stopped.output).to.equal(0);
|
|
125
|
+
(0, chai_1.expect)(firstPids.filter(isAlive)).to.deep.equal([]);
|
|
126
|
+
(0, chai_1.expect)(secondPids.filter(isAlive)).to.deep.equal(secondPids);
|
|
127
|
+
});
|
|
128
|
+
it("fails fast when the server command dies right away", async () => {
|
|
129
|
+
(0, node_fs_1.rmSync)((0, node_path_1.join)(first.dir, "bin", "antelope-runner"));
|
|
130
|
+
const startedAt = Date.now();
|
|
131
|
+
const started = await runScript(first, "start");
|
|
132
|
+
(0, chai_1.expect)(started.code).to.equal(1);
|
|
133
|
+
(0, chai_1.expect)(started.output).to.contain("exited before becoming ready");
|
|
134
|
+
(0, chai_1.expect)(Date.now() - startedAt).to.be.below(SCRIPT_TIMEOUT_MS / 2);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=dms-dev-script.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dms-dev-script.test.js","sourceRoot":"","sources":["../../../../src/test/unit/skills/dms-dev-script.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,14 +42,14 @@ export declare const authSchema: {
|
|
|
42
42
|
code: string;
|
|
43
43
|
state: string;
|
|
44
44
|
state_cookie: string;
|
|
45
|
-
language?: string | undefined;
|
|
46
45
|
invite?: string | undefined;
|
|
46
|
+
language?: string | undefined;
|
|
47
47
|
}, {
|
|
48
48
|
code: string;
|
|
49
49
|
state: string;
|
|
50
50
|
state_cookie: string;
|
|
51
|
-
language?: string | undefined;
|
|
52
51
|
invite?: string | undefined;
|
|
52
|
+
language?: string | undefined;
|
|
53
53
|
}>;
|
|
54
54
|
refresh: z.ZodObject<{
|
|
55
55
|
token: z.ZodString;
|
|
@@ -2,6 +2,7 @@ import { defineAsyncComponent, type Component } from "vue";
|
|
|
2
2
|
import {
|
|
3
3
|
type DmsFrontendModule,
|
|
4
4
|
useDmsAppConfig,
|
|
5
|
+
useDmsRuntimeConfig,
|
|
5
6
|
} from "#dms/frontend-module";
|
|
6
7
|
import { defu } from "defu";
|
|
7
8
|
import appConfig from "./layers/dms-layout/app/app.config";
|
|
@@ -171,9 +172,9 @@ function registerMiddleware(
|
|
|
171
172
|
|
|
172
173
|
const frontendModule: DmsFrontendModule = {
|
|
173
174
|
setup(sdk) {
|
|
174
|
-
const
|
|
175
|
-
if (
|
|
176
|
-
|
|
175
|
+
const runtimeDms = (useDmsRuntimeConfig().public as DmsPublicOptions).dms;
|
|
176
|
+
if (runtimeDms && typeof window !== "undefined")
|
|
177
|
+
runtimeDms.baseURL = window.location.origin;
|
|
177
178
|
const runtimeAppConfig = useDmsAppConfig();
|
|
178
179
|
Object.assign(runtimeAppConfig, defu(runtimeAppConfig, appConfig));
|
|
179
180
|
registerPlugins(sdk);
|