@antelopejs/dms 0.5.0 → 0.5.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.
- package/CHANGELOG.md +50 -0
- package/dist/implementations/dms/page.js +69 -22
- package/dist/implementations/dms/page.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/pages/settings/users/member-invite-form.d.ts +5 -0
- package/dist/pages/settings/users/member-invite-form.js +11 -2
- package/dist/pages/settings/users/member-invite-form.js.map +1 -1
- package/dist/pages/settings/users/members.d.ts +2 -0
- package/dist/pages/settings/users/members.js +11 -0
- package/dist/pages/settings/users/members.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/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/reload-host/index.js +27 -1
- package/dist/test/reload-host/index.js.map +1 -1
- package/dist/test/reload-host/package.json +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/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/pages/settings/invite-availability.test.d.ts +1 -0
- package/dist/test/unit/pages/settings/invite-availability.test.js +112 -0
- package/dist/test/unit/pages/settings/invite-availability.test.js.map +1 -0
- 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/build/components/table/Actions.vue +18 -8
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableViewRowActions.ts +12 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/custom-button.ts +4 -0
- 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/tests/realtime-reconnect.test.ts +215 -0
- package/frontend-vue/tests/shortcuts-aggregate.test.ts +41 -0
- package/frontend-vue/vitest.config.ts +4 -0
- package/package.json +4 -4
- package/skills/dms-dev/SKILL.md +28 -16
- package/skills/dms-dev/scripts/dms-dev.sh +275 -83
|
@@ -43,12 +43,14 @@ const permissionsResolverImpl = __importStar(require("../../../../implementation
|
|
|
43
43
|
const hooks_1 = require("@antelopejs/interface-dms/hooks");
|
|
44
44
|
const inviteExtensionsInterface = __importStar(require("@antelopejs/interface-dms/invite-extensions"));
|
|
45
45
|
const invite_extensions_1 = require("@antelopejs/interface-dms/invite-extensions");
|
|
46
|
+
const registry_1 = require("@antelopejs/interface-dms/invite-extensions/registry");
|
|
46
47
|
const pageInterface = __importStar(require("@antelopejs/interface-dms/page"));
|
|
47
48
|
const page_1 = require("@antelopejs/interface-dms/page");
|
|
48
49
|
const permissionsInterface = __importStar(require("@antelopejs/interface-dms/permissions"));
|
|
49
50
|
const permissionsResolverInterface = __importStar(require("@antelopejs/interface-dms/permissions-resolver"));
|
|
50
51
|
const default_types_1 = require("@antelopejs/interface-dms/base/data-types/default-types");
|
|
51
52
|
const form_1 = require("@antelopejs/interface-dms/base/form");
|
|
53
|
+
const logging_1 = require("../../../helpers/logging");
|
|
52
54
|
const TENANT = "ie-tenant";
|
|
53
55
|
const MEMBER = { _id: "member-1", userId: "user-1" };
|
|
54
56
|
function settle() {
|
|
@@ -83,6 +85,17 @@ function register(options) {
|
|
|
83
85
|
disposers.push(dispose);
|
|
84
86
|
return dispose;
|
|
85
87
|
}
|
|
88
|
+
function infoOf(key, fieldId, moduleId) {
|
|
89
|
+
const { options } = recordingExtension(key, fieldId);
|
|
90
|
+
return {
|
|
91
|
+
key,
|
|
92
|
+
component: options.component,
|
|
93
|
+
schema: options.schema,
|
|
94
|
+
onAccept: options.onAccept,
|
|
95
|
+
placement: { side: "end", order: 0 },
|
|
96
|
+
moduleId,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
86
99
|
function recordingExtension(key, fieldId = "note") {
|
|
87
100
|
const recorded = { accepted: [], cleaned: [] };
|
|
88
101
|
const options = {
|
|
@@ -476,6 +489,52 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
|
|
|
476
489
|
"billing__b",
|
|
477
490
|
]);
|
|
478
491
|
});
|
|
492
|
+
it("stays quiet when the next generation of a module reclaims its key", async () => {
|
|
493
|
+
const departing = infoOf("billing", "a", "ie-reloaded");
|
|
494
|
+
const next = infoOf("billing", "b", "ie-reloaded");
|
|
495
|
+
invite_extensions_1.internal.applyInviteExtension(departing);
|
|
496
|
+
const warnings = (0, logging_1.captureWarnings)();
|
|
497
|
+
try {
|
|
498
|
+
invite_extensions_1.internal.applyInviteExtension(next);
|
|
499
|
+
invite_extensions_1.internal.revokeInviteExtension(departing);
|
|
500
|
+
}
|
|
501
|
+
finally {
|
|
502
|
+
warnings.restore();
|
|
503
|
+
}
|
|
504
|
+
await registerHostPage("ie-generation");
|
|
505
|
+
try {
|
|
506
|
+
(0, chai_1.expect)(warnings.messages).to.deep.equal([]);
|
|
507
|
+
(0, chai_1.expect)(fieldIds(await hostLayoutFields("/ie-generation"))).to.deep.equal(["email", "roles", "billing__b"]);
|
|
508
|
+
}
|
|
509
|
+
finally {
|
|
510
|
+
invite_extensions_1.internal.revokeInviteExtension(next);
|
|
511
|
+
}
|
|
512
|
+
(0, chai_1.expect)(fieldIds(await hostLayoutFields("/ie-generation"))).to.deep.equal([
|
|
513
|
+
"email",
|
|
514
|
+
"roles",
|
|
515
|
+
]);
|
|
516
|
+
});
|
|
517
|
+
it("warns when a different module claims a key already held", () => {
|
|
518
|
+
const held = infoOf("billing", "a", "ie-holder");
|
|
519
|
+
const claimed = infoOf("billing", "b", "ie-claimant");
|
|
520
|
+
invite_extensions_1.internal.applyInviteExtension(held);
|
|
521
|
+
const warnings = (0, logging_1.captureWarnings)();
|
|
522
|
+
try {
|
|
523
|
+
invite_extensions_1.internal.applyInviteExtension(claimed);
|
|
524
|
+
}
|
|
525
|
+
finally {
|
|
526
|
+
warnings.restore();
|
|
527
|
+
invite_extensions_1.internal.revokeInviteExtension(claimed);
|
|
528
|
+
}
|
|
529
|
+
(0, chai_1.expect)(warnings.messages).to.have.length(1);
|
|
530
|
+
(0, chai_1.expect)(warnings.messages[0]).to.include('"billing"');
|
|
531
|
+
});
|
|
532
|
+
it("records the module that registered the extension", () => {
|
|
533
|
+
const registering = (0, interface_core_1.GetResponsibleModule)();
|
|
534
|
+
register(recordingExtension("billing", "a").options);
|
|
535
|
+
(0, chai_1.expect)(registering).to.be.a("string").that.is.not.empty;
|
|
536
|
+
(0, chai_1.expect)((0, registry_1.getInviteExtension)("billing")?.moduleId).to.equal(registering);
|
|
537
|
+
});
|
|
479
538
|
it("delivers to the registration that currently owns the key", async () => {
|
|
480
539
|
const first = recordingExtension("billing", "a");
|
|
481
540
|
const disposeFirst = register(first.options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invite-extension.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms/invite-extension.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"invite-extension.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms/invite-extension.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ describe("[unit] interfaces/dms — registrations of a reloaded module", () => {
|
|
|
30
30
|
userId: USER._id,
|
|
31
31
|
isTenantOwner: false,
|
|
32
32
|
});
|
|
33
|
-
(0, chai_1.expect)((0, reload_host_1.takeReloadHostCalls)()).to.deep.equal([
|
|
33
|
+
(0, chai_1.expect)((0, reload_host_1.takeReloadHostCalls)("hook")).to.deep.equal([
|
|
34
34
|
{ generation: (0, reload_host_1.liveReloadHostGeneration)(), source: "hook" },
|
|
35
35
|
]);
|
|
36
36
|
});
|
|
@@ -43,7 +43,7 @@ describe("[unit] interfaces/dms — registrations of a reloaded module", () => {
|
|
|
43
43
|
errors.restore();
|
|
44
44
|
}
|
|
45
45
|
(0, chai_1.expect)(errors.messages).to.deep.equal([]);
|
|
46
|
-
(0, chai_1.expect)((0, reload_host_1.takeReloadHostCalls)()).to.deep.equal([
|
|
46
|
+
(0, chai_1.expect)((0, reload_host_1.takeReloadHostCalls)("listener")).to.deep.equal([
|
|
47
47
|
{ generation: (0, reload_host_1.liveReloadHostGeneration)(), source: "listener" },
|
|
48
48
|
]);
|
|
49
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-reload-registrations.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms/module-reload-registrations.test.ts"],"names":[],"mappings":";;AAAA,6DAAuD;AACvD,gEAAkE;AAElE,iFAG4D;AAC5D,2DAAqE;AACrE,+BAA8B;AAC9B,sDAAyD;AACzD,8DAMsC;AAEtC,MAAM,MAAM,GAAG,iBAAiB,CAAC;AACjC,MAAM,UAAU,GAAG,qBAAqB,CAAC;AACzC,MAAM,IAAI,GAAG;IACX,GAAG,EAAE,kBAAkB;IACvB,KAAK,EAAE,0BAA0B;CAC1B,CAAC;AAEV,MAAM,cAAe,SAAQ,IAAA,0BAAU,EAAC,kCAAoB,CAAC;CAAG;AAEhE,MAAM,SAAS,GAAG,IAAA,+BAAoB,EACpC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,4BAAiB,EAAE,EACvD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CACjE,CAAC;AAEF,KAAK,UAAU,SAAS;IACtB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAMD,QAAQ,CAAC,4DAA4D,EAAE,GAAG,EAAE;IAC1E,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,IAAA,sBAAY,EAAC,gCAAkB,CAAC,CAAC;QACvC,IAAA,iCAAmB,GAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,IAAA,oBAAY,EAAC,YAAI,CAAC,kBAAkB,EAAE;YAC1C,QAAQ,EAAE,gCAAkB;YAC5B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,IAAA,iCAAmB,
|
|
1
|
+
{"version":3,"file":"module-reload-registrations.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms/module-reload-registrations.test.ts"],"names":[],"mappings":";;AAAA,6DAAuD;AACvD,gEAAkE;AAElE,iFAG4D;AAC5D,2DAAqE;AACrE,+BAA8B;AAC9B,sDAAyD;AACzD,8DAMsC;AAEtC,MAAM,MAAM,GAAG,iBAAiB,CAAC;AACjC,MAAM,UAAU,GAAG,qBAAqB,CAAC;AACzC,MAAM,IAAI,GAAG;IACX,GAAG,EAAE,kBAAkB;IACvB,KAAK,EAAE,0BAA0B;CAC1B,CAAC;AAEV,MAAM,cAAe,SAAQ,IAAA,0BAAU,EAAC,kCAAoB,CAAC;CAAG;AAEhE,MAAM,SAAS,GAAG,IAAA,+BAAoB,EACpC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,4BAAiB,EAAE,EACvD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CACjE,CAAC;AAEF,KAAK,UAAU,SAAS;IACtB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAMD,QAAQ,CAAC,4DAA4D,EAAE,GAAG,EAAE;IAC1E,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,IAAA,sBAAY,EAAC,gCAAkB,CAAC,CAAC;QACvC,IAAA,iCAAmB,GAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,IAAA,oBAAY,EAAC,YAAI,CAAC,kBAAkB,EAAE;YAC1C,QAAQ,EAAE,gCAAkB;YAC5B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,IAAA,iCAAmB,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAChD,EAAE,UAAU,EAAE,IAAA,sCAAwB,GAAE,EAAE,MAAM,EAAE,MAAM,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,MAAM,GAAG,IAAA,uBAAa,GAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAA,aAAM,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAA,aAAM,EAAC,IAAA,iCAAmB,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACpD,EAAE,UAAU,EAAE,IAAA,sCAAwB,GAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAC/D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
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 chai_1 = require("chai");
|
|
38
|
+
const invite_extensions_1 = require("@antelopejs/interface-dms/invite-extensions");
|
|
39
|
+
const page_1 = require("@antelopejs/interface-dms/page");
|
|
40
|
+
const permissionsInterface = __importStar(require("@antelopejs/interface-dms/permissions"));
|
|
41
|
+
const permissionsResolverInterface = __importStar(require("@antelopejs/interface-dms/permissions-resolver"));
|
|
42
|
+
const tenantAccessInterface = __importStar(require("@antelopejs/interface-dms/tenant-access"));
|
|
43
|
+
const page_2 = require("../../../../implementations/dms/page");
|
|
44
|
+
const permissionsImpl = __importStar(require("../../../../implementations/dms/permissions"));
|
|
45
|
+
const permissionsResolverImpl = __importStar(require("../../../../implementations/dms/permissions-resolver"));
|
|
46
|
+
const tenantAccessImpl = __importStar(require("../../../../implementations/dms/tenant-access"));
|
|
47
|
+
const member_invite_form_1 = require("../../../../pages/settings/users/member-invite-form");
|
|
48
|
+
const members_1 = require("../../../../pages/settings/users/members");
|
|
49
|
+
const page_access_1 = require("../../../helpers/page-access");
|
|
50
|
+
const FULL_TENANT = "invite-availability-full-tenant";
|
|
51
|
+
const OPEN_TENANT = "invite-availability-open-tenant";
|
|
52
|
+
const SEAT_LIMIT_REASON = "$test.seat_limit_reached";
|
|
53
|
+
const INVITER = { _id: "invite-availability-inviter" };
|
|
54
|
+
function membersPageSlug() {
|
|
55
|
+
const pageInfo = (0, interface_core_1.GetMetadata)(members_1.MembersSettingsController, page_1.PageMetadata).pageInfo;
|
|
56
|
+
if (!pageInfo)
|
|
57
|
+
throw new Error("The members page is not registered");
|
|
58
|
+
return pageInfo.fullSlug;
|
|
59
|
+
}
|
|
60
|
+
async function inviteButtonFor(tenantId) {
|
|
61
|
+
const handler = (0, page_1.GetPageLayoutBySlug)(membersPageSlug());
|
|
62
|
+
if (!handler)
|
|
63
|
+
throw new Error("The members page serves no layout");
|
|
64
|
+
const { memberModel, roleModel } = (0, page_access_1.stubPageAccessModels)(["*"]);
|
|
65
|
+
const layout = await handler(INVITER, memberModel, roleModel, tenantId);
|
|
66
|
+
const table = layout.components
|
|
67
|
+
.table;
|
|
68
|
+
return table.options?.customButtons?.find((button) => button.id === members_1.MEMBER_INVITE_BUTTON_ID);
|
|
69
|
+
}
|
|
70
|
+
describe("[unit] pages/settings/users/members — invite availability", () => {
|
|
71
|
+
const cleanups = [];
|
|
72
|
+
before(() => {
|
|
73
|
+
(0, interface_core_1.ImplementInterface)(permissionsInterface, permissionsImpl);
|
|
74
|
+
(0, interface_core_1.ImplementInterface)(permissionsResolverInterface, permissionsResolverImpl);
|
|
75
|
+
(0, interface_core_1.ImplementInterface)(tenantAccessInterface, tenantAccessImpl);
|
|
76
|
+
(0, interface_core_1.ImplementInterface)(page_1.internal, page_2.internal);
|
|
77
|
+
});
|
|
78
|
+
afterEach(() => {
|
|
79
|
+
cleanups.splice(0).forEach((cleanup) => cleanup());
|
|
80
|
+
});
|
|
81
|
+
it("serves the invite button enabled while no module refuses", async () => {
|
|
82
|
+
const button = await inviteButtonFor(OPEN_TENANT);
|
|
83
|
+
(0, chai_1.expect)(button).to.exist;
|
|
84
|
+
(0, chai_1.expect)(button?.disabled).to.equal(undefined);
|
|
85
|
+
(0, chai_1.expect)(button).to.not.have.property("availability");
|
|
86
|
+
});
|
|
87
|
+
it("disables the invite button with the reason a module gives", async () => {
|
|
88
|
+
cleanups.push((0, invite_extensions_1.RegisterInviteAvailability)(({ tenantId }) => tenantId === FULL_TENANT ? { reason: SEAT_LIMIT_REASON } : undefined));
|
|
89
|
+
(0, chai_1.expect)(await inviteButtonFor(FULL_TENANT)).to.deep.include({
|
|
90
|
+
disabled: true,
|
|
91
|
+
disabledReason: SEAT_LIMIT_REASON,
|
|
92
|
+
});
|
|
93
|
+
(0, chai_1.expect)((await inviteButtonFor(OPEN_TENANT))?.disabled).to.equal(undefined);
|
|
94
|
+
});
|
|
95
|
+
it("leaves the invite button enabled when a resolver throws", async () => {
|
|
96
|
+
cleanups.push((0, invite_extensions_1.RegisterInviteAvailability)(() => {
|
|
97
|
+
throw new Error("resolver failure");
|
|
98
|
+
}));
|
|
99
|
+
(0, chai_1.expect)((await inviteButtonFor(FULL_TENANT))?.disabled).to.equal(undefined);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
describe("[unit] pages/settings/users/member-invite-form — invitation language", () => {
|
|
103
|
+
it("defaults to the inviter's own language", () => {
|
|
104
|
+
(0, chai_1.expect)((0, member_invite_form_1.resolveInviteLanguage)("fr")).to.equal("fr");
|
|
105
|
+
(0, chai_1.expect)((0, member_invite_form_1.resolveInviteLanguage)("fr-FR")).to.equal("fr");
|
|
106
|
+
});
|
|
107
|
+
it("falls back to English for a language invitations are not offered in", () => {
|
|
108
|
+
(0, chai_1.expect)((0, member_invite_form_1.resolveInviteLanguage)("de")).to.equal("en");
|
|
109
|
+
(0, chai_1.expect)((0, member_invite_form_1.resolveInviteLanguage)(undefined)).to.equal("en");
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=invite-availability.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-availability.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/pages/settings/invite-availability.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 {};
|