@antelopejs/dms 0.4.7 → 0.5.0

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 (116) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/crons/index.d.ts +1 -0
  3. package/dist/crons/index.js +7 -1
  4. package/dist/crons/index.js.map +1 -1
  5. package/dist/crons/sweep-expired-sessions.d.ts +4 -0
  6. package/dist/crons/sweep-expired-sessions.js +27 -0
  7. package/dist/crons/sweep-expired-sessions.js.map +1 -0
  8. package/dist/db/models/userNotificationPreferences.model.js +17 -11
  9. package/dist/db/models/userNotificationPreferences.model.js.map +1 -1
  10. package/dist/db/tables/userNotifications.table.js +3 -0
  11. package/dist/db/tables/userNotifications.table.js.map +1 -1
  12. package/dist/hooks/invite-extensions.js +0 -2
  13. package/dist/hooks/invite-extensions.js.map +1 -1
  14. package/dist/implementations/dms/page.js +6 -7
  15. package/dist/implementations/dms/page.js.map +1 -1
  16. package/dist/implementations/dms/realtime.d.ts +2 -2
  17. package/dist/implementations/dms/realtime.js +9 -3
  18. package/dist/implementations/dms/realtime.js.map +1 -1
  19. package/dist/implementations/dms-base/table-view.d.ts +5 -0
  20. package/dist/implementations/dms-base/table-view.js +7 -1
  21. package/dist/implementations/dms-base/table-view.js.map +1 -1
  22. package/dist/pages/settings/users/profile-helpers.d.ts +2 -1
  23. package/dist/pages/settings/users/profile-helpers.js +9 -0
  24. package/dist/pages/settings/users/profile-helpers.js.map +1 -1
  25. package/dist/pages/settings/users/profile.js +2 -2
  26. package/dist/pages/settings/users/profile.js.map +1 -1
  27. package/dist/realtime/index.js +0 -2
  28. package/dist/realtime/index.js.map +1 -1
  29. package/dist/realtime/registry.d.ts +1 -0
  30. package/dist/realtime/registry.js +9 -0
  31. package/dist/realtime/registry.js.map +1 -1
  32. package/dist/realtime/table-view.d.ts +3 -0
  33. package/dist/realtime/table-view.js +25 -0
  34. package/dist/realtime/table-view.js.map +1 -0
  35. package/dist/routes/auth/refresh.d.ts +1 -1
  36. package/dist/routes/auth/refresh.js +2 -1
  37. package/dist/routes/auth/refresh.js.map +1 -1
  38. package/dist/routes/auth/switch-tenant.d.ts +1 -1
  39. package/dist/routes/auth/switch-tenant.js +2 -1
  40. package/dist/routes/auth/switch-tenant.js.map +1 -1
  41. package/dist/routes/onboarding.js +1 -1
  42. package/dist/routes/onboarding.js.map +1 -1
  43. package/dist/test/antelope.test.js +7 -1
  44. package/dist/test/antelope.test.js.map +1 -1
  45. package/dist/test/helpers/db.d.ts +1 -0
  46. package/dist/test/helpers/db.js +14 -0
  47. package/dist/test/helpers/db.js.map +1 -1
  48. package/dist/test/helpers/reload-host.d.ts +9 -0
  49. package/dist/test/helpers/reload-host.js +21 -0
  50. package/dist/test/helpers/reload-host.js.map +1 -0
  51. package/dist/test/integration/invite-resolution.test.js +0 -2
  52. package/dist/test/integration/invite-resolution.test.js.map +1 -1
  53. package/dist/test/reload-host/index.d.ts +2 -0
  54. package/dist/test/reload-host/index.js +32 -0
  55. package/dist/test/reload-host/index.js.map +1 -0
  56. package/dist/test/reload-host/package.json +8 -0
  57. package/dist/test/unit/db/email-normalization.test.d.ts +1 -0
  58. package/dist/test/unit/db/email-normalization.test.js +59 -0
  59. package/dist/test/unit/db/email-normalization.test.js.map +1 -0
  60. package/dist/test/unit/db/notification-feed-index.test.d.ts +1 -0
  61. package/dist/test/unit/db/notification-feed-index.test.js +35 -0
  62. package/dist/test/unit/db/notification-feed-index.test.js.map +1 -0
  63. package/dist/test/unit/db/notification-preferences.test.d.ts +1 -0
  64. package/dist/test/unit/db/notification-preferences.test.js +21 -0
  65. package/dist/test/unit/db/notification-preferences.test.js.map +1 -0
  66. package/dist/test/unit/db/session-refresh-token.test.d.ts +1 -0
  67. package/dist/test/unit/db/session-refresh-token.test.js +52 -0
  68. package/dist/test/unit/db/session-refresh-token.test.js.map +1 -0
  69. package/dist/test/unit/db/session-sweep.test.d.ts +1 -0
  70. package/dist/test/unit/db/session-sweep.test.js +44 -0
  71. package/dist/test/unit/db/session-sweep.test.js.map +1 -0
  72. package/dist/test/unit/frontend-renderer-range.test.d.ts +1 -0
  73. package/dist/test/unit/frontend-renderer-range.test.js +45 -0
  74. package/dist/test/unit/frontend-renderer-range.test.js.map +1 -0
  75. package/dist/test/unit/interfaces/dms/invite-extension.test.js +22 -24
  76. package/dist/test/unit/interfaces/dms/invite-extension.test.js.map +1 -1
  77. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.d.ts +1 -0
  78. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.js +51 -0
  79. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.js.map +1 -0
  80. package/dist/test/unit/interfaces/dms/page-topics.test.d.ts +1 -0
  81. package/dist/test/unit/interfaces/dms/page-topics.test.js +194 -0
  82. package/dist/test/unit/interfaces/dms/page-topics.test.js.map +1 -0
  83. package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.js +74 -9
  84. package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.js.map +1 -1
  85. package/dist/test/unit/interfaces/dms-base/layouts.test.js +16 -0
  86. package/dist/test/unit/interfaces/dms-base/layouts.test.js.map +1 -1
  87. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.d.ts +5 -0
  88. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.js +82 -0
  89. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.js.map +1 -0
  90. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.d.ts +1 -0
  91. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.js +24 -0
  92. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.js.map +1 -0
  93. package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.js +10 -4
  94. package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.js.map +1 -1
  95. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.d.ts +1 -0
  96. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.js +139 -0
  97. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.js.map +1 -0
  98. package/dist/test/unit/pages/settings/profile-email-change.test.d.ts +1 -0
  99. package/dist/test/unit/pages/settings/profile-email-change.test.js +50 -0
  100. package/dist/test/unit/pages/settings/profile-email-change.test.js.map +1 -0
  101. package/dist/test/unit/utils/owned-registry.test.d.ts +1 -0
  102. package/dist/test/unit/utils/owned-registry.test.js +61 -0
  103. package/dist/test/unit/utils/owned-registry.test.js.map +1 -0
  104. package/dist/validation/auth.schema.d.ts +2 -2
  105. package/frontend-vue/layers/dms-layout/app/composables/layout/usePageFillHeight.ts +37 -0
  106. package/frontend-vue/layers/dms-layout/app/custom-layouts/DefaultLayout.vue +9 -0
  107. package/frontend-vue/layers/dms-layout/app/pages/[...slug].vue +16 -1
  108. package/frontend-vue/package.json +4 -1
  109. package/frontend-vue/pnpm-lock.yaml +8 -8
  110. package/frontend-vue/tests/page-fill-height.test.ts +352 -0
  111. package/package.json +6 -6
  112. package/skills/dms-module/REFERENCE.md +2 -1
  113. package/skills/dms-module/SKILL.md +5 -0
  114. package/dist/realtime/tableview-bridge.d.ts +0 -1
  115. package/dist/realtime/tableview-bridge.js +0 -38
  116. package/dist/realtime/tableview-bridge.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/reload-host/index.ts"],"names":[],"mappings":";;AA6CA,8BASC;AAtDD,6CAAyC;AACzC,0EAA6F;AAC7F,2DAAqE;AAIrE,0BAAwB;AAKxB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AACjE,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAC1C,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAe3C,MAAM,UAAU,GAAG,IAAA,wBAAU,GAAE,CAAC;AAEhC,SAAS,KAAK;IACZ,MAAM,MAAM,GAAG,UAA+C,CAAC;IAC/D,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACrD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,MAAM,CAAC,MAAmB;IACjC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7C,CAAC;AAOD,SAAgB,SAAS;IACvB,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,IAAA,oBAAY,EAAC,YAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE;QAChD,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY;YAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,IAAA,6CAAgC,EAAC,CAAC,OAAO,EAAE,EAAE;QAC3C,IAAI,OAAO,CAAC,kBAAkB,KAAK,cAAc;YAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@antelopejs/dms-reload-test-host",
3
+ "version": "0.0.0",
4
+ "main": "index.js",
5
+ "dependencies": {
6
+ "@antelopejs/interface-dms": "*"
7
+ }
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_crypto_1 = require("node:crypto");
4
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
5
+ const chai_1 = require("chai");
6
+ const constants_1 = require("@antelopejs/interface-dms/constants");
7
+ const models_1 = require("@antelopejs/interface-dms/db/models");
8
+ const invites_1 = require("@antelopejs/interface-dms/invites");
9
+ const models_2 = require("@antelopejs/interface-dms/auth/db/models");
10
+ const STORED_EMAIL = "email-normalization-user@acme.dev";
11
+ const TYPED_EMAIL = " Email-Normalization-User@ACME.dev ";
12
+ const INVITE_TYPED_EMAIL = "Email-Normalization-Invitee@Acme.dev";
13
+ const INVITE_STORED_EMAIL = "email-normalization-invitee@acme.dev";
14
+ describe("[unit] e-mail normalization — lookups and writes share one form", () => {
15
+ const userModel = (0, interface_database_decorators_1.GetModel)(models_2.UserModel);
16
+ const inviteModel = (0, interface_database_decorators_1.GetModel)(models_1.UserInviteModel, constants_1.DEFAULT_TENANT_ID);
17
+ let userId;
18
+ before(async () => {
19
+ [userId] = await userModel.insert({
20
+ name: "Normalized",
21
+ email: STORED_EMAIL,
22
+ password: null,
23
+ authKey: (0, node_crypto_1.randomUUID)(),
24
+ isValidated: true,
25
+ owner: false,
26
+ language: "en",
27
+ });
28
+ });
29
+ after(async () => {
30
+ await userModel.delete(userId);
31
+ const invites = await inviteModel.table
32
+ .getAll(INVITE_STORED_EMAIL, "email")
33
+ .run();
34
+ for (const invite of invites)
35
+ await inviteModel.delete(invite._id);
36
+ });
37
+ it("trims and lowercases", () => {
38
+ (0, chai_1.expect)((0, models_2.normalizeEmail)(TYPED_EMAIL)).to.equal(STORED_EMAIL);
39
+ });
40
+ it("finds a user whatever the casing of the lookup", async () => {
41
+ const user = await userModel.getByEmail(TYPED_EMAIL);
42
+ (0, chai_1.expect)(user?._id).to.equal(userId);
43
+ });
44
+ it("stores an invitation lowercased and finds it by any casing", async () => {
45
+ const { inviteId } = await (0, invites_1.createUserInviteToken)({
46
+ tenantId: constants_1.DEFAULT_TENANT_ID,
47
+ email: INVITE_TYPED_EMAIL,
48
+ language: "en",
49
+ roleIds: [],
50
+ asTenantOwner: false,
51
+ skipEmailValidation: false,
52
+ });
53
+ const stored = await inviteModel.get(inviteId);
54
+ (0, chai_1.expect)(stored?.email).to.equal(INVITE_STORED_EMAIL);
55
+ const found = await inviteModel.getByEmail(INVITE_TYPED_EMAIL);
56
+ (0, chai_1.expect)(found?._id).to.equal(inviteId);
57
+ });
58
+ });
59
+ //# sourceMappingURL=email-normalization.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-normalization.test.js","sourceRoot":"","sources":["../../../../src/test/unit/db/email-normalization.test.ts"],"names":[],"mappings":";;AAAA,6CAAyC;AACzC,6FAAqE;AACrE,+BAA8B;AAC9B,mEAAwE;AACxE,gEAAsE;AACtE,+DAA0E;AAC1E,qEAGkD;AAElD,MAAM,YAAY,GAAG,mCAAmC,CAAC;AACzD,MAAM,WAAW,GAAG,sCAAsC,CAAC;AAC3D,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AAClE,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AAEnE,QAAQ,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC/E,MAAM,SAAS,GAAG,IAAA,wCAAQ,EAAC,kBAAS,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,IAAA,wCAAQ,EAAC,wBAAe,EAAE,6BAAiB,CAAC,CAAC;IACjE,IAAI,MAAc,CAAC;IAEnB,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,CAAC,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAA,wBAAU,GAAE;YACrB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK;aACpC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;aACpC,GAAG,EAAE,CAAC;QACT,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,IAAA,aAAM,EAAC,IAAA,uBAAc,EAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,+BAAqB,EAAC;YAC/C,QAAQ,EAAE,6BAAiB;YAC3B,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,KAAK;YACpB,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAA,aAAM,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC/D,IAAA,aAAM,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const tables_1 = require("../../../db/tables");
5
+ const db_1 = require("../../helpers/db");
6
+ const USER_FEED_INDEX = "userId_createdAt__i";
7
+ const SCHEMA_READY_TIMEOUT_MS = 30_000;
8
+ const POLL_INTERVAL_MS = 100;
9
+ async function feedIndexKey() {
10
+ const deadline = Date.now() + SCHEMA_READY_TIMEOUT_MS;
11
+ while (Date.now() < deadline) {
12
+ try {
13
+ const key = (await (0, db_1.listRawIndexes)(tables_1.userNotificationsTableName))[USER_FEED_INDEX];
14
+ if (key)
15
+ return key;
16
+ }
17
+ catch {
18
+ }
19
+ await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
20
+ }
21
+ return undefined;
22
+ }
23
+ describe("[unit] user notifications — a user's feed is served by one index", () => {
24
+ it("indexes the instance, the user then the creation date, in that order", async function () {
25
+ this.timeout(SCHEMA_READY_TIMEOUT_MS + POLL_INTERVAL_MS);
26
+ const key = await feedIndexKey();
27
+ (0, chai_1.expect)(key).to.deep.equal({ _instance: 1, userId: 1, createdAt: 1 });
28
+ (0, chai_1.expect)(Object.keys(key ?? {})).to.deep.equal([
29
+ "_instance",
30
+ "userId",
31
+ "createdAt",
32
+ ]);
33
+ });
34
+ });
35
+ //# sourceMappingURL=notification-feed-index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-feed-index.test.js","sourceRoot":"","sources":["../../../../src/test/unit/db/notification-feed-index.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,+CAAgE;AAChE,yCAAkD;AAIlD,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAG9C,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,KAAK,UAAU,YAAY;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,uBAAuB,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,MAAM,IAAA,mBAAc,EAAC,mCAA0B,CAAC,CAAC,CAC5D,eAAe,CAChB,CAAC;YACF,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,QAAQ,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAChF,EAAE,CAAC,sEAAsE,EAAE,KAAK;QAC9E,IAAI,CAAC,OAAO,CAAC,uBAAuB,GAAG,gBAAgB,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;QAEjC,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACrE,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,WAAW;YACX,QAAQ;YACR,WAAW;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
4
+ const chai_1 = require("chai");
5
+ const userNotificationPreferences_model_1 = require("../../../db/models/userNotificationPreferences.model");
6
+ const USER_ID = "notification-preferences-concurrent-user";
7
+ const CONCURRENT_READS = 5;
8
+ describe("[unit] notification preferences — one row per user", () => {
9
+ const model = (0, interface_database_decorators_1.GetModel)(userNotificationPreferences_model_1.UserNotificationPreferencesModel);
10
+ after(async () => {
11
+ await model.table.getAll(USER_ID, "userId").delete().run();
12
+ });
13
+ it("creates a single row under concurrent first reads, and every read gets it", async () => {
14
+ const results = await Promise.all(Array.from({ length: CONCURRENT_READS }, () => model.getOrCreatePreferences(USER_ID)));
15
+ const rows = await model.table.getAll(USER_ID, "userId").run();
16
+ (0, chai_1.expect)(rows.map((row) => row._id)).to.deep.equal([USER_ID]);
17
+ for (const result of results)
18
+ (0, chai_1.expect)(result._id).to.equal(USER_ID);
19
+ });
20
+ });
21
+ //# sourceMappingURL=notification-preferences.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-preferences.test.js","sourceRoot":"","sources":["../../../../src/test/unit/db/notification-preferences.test.ts"],"names":[],"mappings":";;AAAA,6FAAqE;AACrE,+BAA8B;AAC9B,4GAAwG;AAExG,MAAM,OAAO,GAAG,0CAA0C,CAAC;AAC3D,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAClE,MAAM,KAAK,GAAG,IAAA,wCAAQ,EAAC,oEAAgC,CAAC,CAAC;IAEzD,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAC5C,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CACtC,CACF,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/D,IAAA,aAAM,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,IAAA,aAAM,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
4
+ const chai_1 = require("chai");
5
+ const db_1 = require("@antelopejs/interface-dms/auth/db");
6
+ const USER_ID = "session-refresh-token-user";
7
+ const LEGACY_SESSION_ID = "session-refresh-token-legacy";
8
+ const HASHED_SESSION_ID = "session-refresh-token-hashed";
9
+ const ONE_MINUTE_MS = 60_000;
10
+ describe("[unit] session refresh tokens — stored hashed, rotated against the database", () => {
11
+ const model = (0, interface_database_decorators_1.GetModel)(db_1.SessionModel);
12
+ function insertSession(id, refreshToken) {
13
+ const now = new Date();
14
+ return model.insert({
15
+ _id: id,
16
+ userId: USER_ID,
17
+ refreshToken,
18
+ userAgent: "",
19
+ ip: "",
20
+ browser: "",
21
+ os: "",
22
+ deviceType: "",
23
+ location: "",
24
+ createdAt: now,
25
+ lastActiveAt: now,
26
+ });
27
+ }
28
+ after(async () => {
29
+ await model.deleteByUserId(USER_ID);
30
+ });
31
+ it("rotates a legacy plaintext row once and leaves no plaintext behind", async () => {
32
+ await insertSession(LEGACY_SESSION_ID, "legacy-T0");
33
+ const rotatedAt = new Date();
34
+ (0, chai_1.expect)(await model.rotateRefreshToken(LEGACY_SESSION_ID, "legacy-T0", "legacy-T1", rotatedAt)).to.equal("legacy-T1");
35
+ const session = await model.get(LEGACY_SESSION_ID);
36
+ (0, chai_1.expect)(session?.refreshToken).to.equal("");
37
+ (0, chai_1.expect)((0, db_1.isCurrentRefreshToken)(session, "legacy-T1")).to.equal(true);
38
+ (0, chai_1.expect)((0, db_1.isCurrentRefreshToken)(session, "legacy-T0")).to.equal(false);
39
+ });
40
+ it("rotates a hashed row and hands the successor to a late predecessor holder", async () => {
41
+ await insertSession(HASHED_SESSION_ID, "");
42
+ await model.replaceRefreshToken(HASHED_SESSION_ID, "T1");
43
+ const rotatedAt = new Date();
44
+ (0, chai_1.expect)(await model.rotateRefreshToken(HASHED_SESSION_ID, "T1", "T2", rotatedAt)).to.equal("T2");
45
+ (0, chai_1.expect)(await model.rotateRefreshToken(HASHED_SESSION_ID, "T1", "loser", rotatedAt)).to.equal("T2");
46
+ (0, chai_1.expect)(await model.rotateRefreshToken(HASHED_SESSION_ID, "T1", "late", new Date(rotatedAt.getTime() + ONE_MINUTE_MS))).to.equal(null);
47
+ const session = await model.get(HASHED_SESSION_ID);
48
+ (0, chai_1.expect)(session?.refreshToken).to.equal("");
49
+ (0, chai_1.expect)((0, db_1.isCurrentRefreshToken)(session, "T2")).to.equal(true);
50
+ });
51
+ });
52
+ //# sourceMappingURL=session-refresh-token.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-refresh-token.test.js","sourceRoot":"","sources":["../../../../src/test/unit/db/session-refresh-token.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
4
+ const chai_1 = require("chai");
5
+ const db_1 = require("@antelopejs/interface-dms/auth/db");
6
+ const config_1 = require("../../../config");
7
+ const sweep_expired_sessions_1 = require("../../../crons/sweep-expired-sessions");
8
+ const USER_ID = "session-sweep-user";
9
+ const STALE_SESSION_ID = "session-sweep-stale";
10
+ const ACTIVE_SESSION_ID = "session-sweep-active";
11
+ const ONE_MINUTE_MS = 60_000;
12
+ describe("[unit] session sweep — idle sessions past the refresh token lifetime", () => {
13
+ const model = (0, interface_database_decorators_1.GetModel)(db_1.SessionModel);
14
+ const now = new Date();
15
+ const lifetime = (0, config_1.getAuthConfig)().refreshTokenLifetime;
16
+ function insertSession(id, lastActiveAt) {
17
+ return model.insert({
18
+ _id: id,
19
+ userId: USER_ID,
20
+ refreshToken: "",
21
+ userAgent: "",
22
+ ip: "",
23
+ browser: "",
24
+ os: "",
25
+ deviceType: "",
26
+ location: "",
27
+ createdAt: lastActiveAt,
28
+ lastActiveAt,
29
+ });
30
+ }
31
+ before(async () => {
32
+ await insertSession(STALE_SESSION_ID, new Date(now.getTime() - lifetime - ONE_MINUTE_MS));
33
+ await insertSession(ACTIVE_SESSION_ID, new Date(now.getTime() - lifetime + ONE_MINUTE_MS));
34
+ });
35
+ after(async () => {
36
+ await model.deleteByUserId(USER_ID);
37
+ });
38
+ it("deletes a session idle for longer than a refresh token lives, and keeps the others", async () => {
39
+ await (0, sweep_expired_sessions_1.runSweepExpiredSessions)(now);
40
+ (0, chai_1.expect)(await model.get(STALE_SESSION_ID)).to.equal(undefined);
41
+ (0, chai_1.expect)((await model.get(ACTIVE_SESSION_ID))?._id).to.equal(ACTIVE_SESSION_ID);
42
+ });
43
+ });
44
+ //# sourceMappingURL=session-sweep.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-sweep.test.js","sourceRoot":"","sources":["../../../../src/test/unit/db/session-sweep.test.ts"],"names":[],"mappings":";;AAAA,6FAAqE;AACrE,+BAA8B;AAC9B,0DAAiE;AACjE,4CAAgD;AAChD,kFAAgF;AAEhF,MAAM,OAAO,GAAG,oBAAoB,CAAC;AACrC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AACjD,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,QAAQ,CAAC,sEAAsE,EAAE,GAAG,EAAE;IACpF,MAAM,KAAK,GAAG,IAAA,wCAAQ,EAAC,iBAAY,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAA,sBAAa,GAAE,CAAC,oBAAoB,CAAC;IAEtD,SAAS,aAAa,CAAC,EAAU,EAAE,YAAkB;QACnD,OAAO,KAAK,CAAC,MAAM,CAAC;YAClB,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,OAAO;YACf,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,EAAE;YACX,EAAE,EAAE,EAAE;YACN,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,YAAY;YACvB,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,aAAa,CACjB,gBAAgB,EAChB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,GAAG,aAAa,CAAC,CACnD,CAAC;QACF,MAAM,aAAa,CACjB,iBAAiB,EACjB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,GAAG,aAAa,CAAC,CACnD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,IAAA,gDAAuB,EAAC,GAAG,CAAC,CAAC;QAEnC,IAAA,aAAM,EAAC,MAAM,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAA,aAAM,EAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CACxD,iBAAiB,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_fs_1 = require("node:fs");
4
+ const node_path_1 = require("node:path");
5
+ const chai_1 = require("chai");
6
+ const semver_1 = require("semver");
7
+ const PACKAGE_ROOT = (0, node_path_1.resolve)(__dirname, "..", "..", "..");
8
+ const RENDERER_PACKAGE = "@antelopejs/dms-frontend";
9
+ const WORKSPACE_LOCKFILE = "../../pnpm-lock.yaml";
10
+ const LAYER_LOCKFILE = "frontend-vue/pnpm-lock.yaml";
11
+ const RENDERER_LOCKFILES_BY_LAYER = {
12
+ "frontend-vue": [WORKSPACE_LOCKFILE, LAYER_LOCKFILE],
13
+ "playground/frontend-vue": [WORKSPACE_LOCKFILE],
14
+ };
15
+ const LOCKED_RENDERER = /^ {2}'@antelopejs\/dms-frontend@([^'(]+)':$/gm;
16
+ function readRepositoryFile(relativePath) {
17
+ return (0, node_fs_1.readFileSync)((0, node_path_1.resolve)(PACKAGE_ROOT, relativePath), "utf8");
18
+ }
19
+ function declaredRange(layer) {
20
+ const manifest = JSON.parse(readRepositoryFile(`${layer}/package.json`));
21
+ return manifest.engines?.[RENDERER_PACKAGE];
22
+ }
23
+ function lockedRenderers(lockfile) {
24
+ return [...readRepositoryFile(lockfile).matchAll(LOCKED_RENDERER)].map(([, version]) => version);
25
+ }
26
+ describe("[unit] frontend renderer range", () => {
27
+ for (const [layer, lockfiles] of Object.entries(RENDERER_LOCKFILES_BY_LAYER)) {
28
+ it(`${layer} declares the renderer releases it supports`, () => {
29
+ const range = declaredRange(layer);
30
+ (0, chai_1.expect)(range, `${layer}/package.json engines`).to.be.a("string");
31
+ (0, chai_1.expect)((0, semver_1.validRange)(range)).to.not.equal(null);
32
+ });
33
+ for (const lockfile of lockfiles) {
34
+ it(`${layer} admits every renderer locked in ${lockfile}`, () => {
35
+ const range = declaredRange(layer) ?? "";
36
+ const locked = lockedRenderers(lockfile);
37
+ (0, chai_1.expect)(locked).to.not.deep.equal([]);
38
+ for (const version of locked) {
39
+ (0, chai_1.expect)((0, semver_1.satisfies)(version, range), `${version} in "${range}"`).to.equal(true);
40
+ }
41
+ });
42
+ }
43
+ }
44
+ });
45
+ //# sourceMappingURL=frontend-renderer-range.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-renderer-range.test.js","sourceRoot":"","sources":["../../../src/test/unit/frontend-renderer-range.test.ts"],"names":[],"mappings":";;AAAA,qCAAuC;AACvC,yCAAoC;AACpC,+BAA8B;AAC9B,mCAA+C;AAE/C,MAAM,YAAY,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1D,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AACpD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAMrD,MAAM,2BAA2B,GAA6B;IAC5D,cAAc,EAAE,CAAC,kBAAkB,EAAE,cAAc,CAAC;IACpD,yBAAyB,EAAE,CAAC,kBAAkB,CAAC;CAChD,CAAC;AACF,MAAM,eAAe,GAAG,+CAA+C,CAAC;AAMxE,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,OAAO,IAAA,sBAAY,EAAC,IAAA,mBAAO,EAAC,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,QAAQ,GAAkB,IAAI,CAAC,KAAK,CACxC,kBAAkB,CAAC,GAAG,KAAK,eAAe,CAAC,CAC5C,CAAC;IACF,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CACpE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CACzB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAC7C,2BAA2B,CAC5B,EAAE,CAAC;QACF,EAAE,CAAC,GAAG,KAAK,6CAA6C,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACnC,IAAA,aAAM,EAAC,KAAK,EAAE,GAAG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAA,aAAM,EAAC,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,EAAE,CAAC,GAAG,KAAK,oCAAoC,QAAQ,EAAE,EAAE,GAAG,EAAE;gBAC9D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;oBAC7B,IAAA,aAAM,EACJ,IAAA,kBAAS,EAAC,OAAO,EAAE,KAAK,CAAC,EACzB,GAAG,OAAO,QAAQ,KAAK,GAAG,CAC3B,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -36,14 +36,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const interface_core_1 = require("@antelopejs/interface-core");
37
37
  const chai_1 = require("chai");
38
38
  const zod_1 = require("zod");
39
- const invite_extensions_1 = require("../../../../hooks/invite-extensions");
40
39
  const inviteExtensionsImpl = __importStar(require("../../../../implementations/dms/invite-extensions"));
41
40
  const pageImpl = __importStar(require("../../../../implementations/dms/page"));
42
41
  const permissionsImpl = __importStar(require("../../../../implementations/dms/permissions"));
43
42
  const permissionsResolverImpl = __importStar(require("../../../../implementations/dms/permissions-resolver"));
44
43
  const hooks_1 = require("@antelopejs/interface-dms/hooks");
45
44
  const inviteExtensionsInterface = __importStar(require("@antelopejs/interface-dms/invite-extensions"));
46
- const invite_extensions_2 = require("@antelopejs/interface-dms/invite-extensions");
45
+ const invite_extensions_1 = require("@antelopejs/interface-dms/invite-extensions");
47
46
  const pageInterface = __importStar(require("@antelopejs/interface-dms/page"));
48
47
  const page_1 = require("@antelopejs/interface-dms/page");
49
48
  const permissionsInterface = __importStar(require("@antelopejs/interface-dms/permissions"));
@@ -66,13 +65,13 @@ function textField(id, required = false) {
66
65
  function inviteHostForm() {
67
66
  return (0, form_1.Form)({
68
67
  fields: [textField("email", true), textField("roles")],
69
- slotId: invite_extensions_2.INVITE_FORM_SLOT_ID,
68
+ slotId: invite_extensions_1.INVITE_FORM_SLOT_ID,
70
69
  });
71
70
  }
72
71
  function inviteEditHostForm() {
73
72
  return (0, form_1.Form)({
74
73
  fields: [textField("firstname"), textField("roles_ids")],
75
- slotId: invite_extensions_2.INVITE_EDIT_FORM_SLOT_ID,
74
+ slotId: invite_extensions_1.INVITE_EDIT_FORM_SLOT_ID,
76
75
  });
77
76
  }
78
77
  function extensionForm(fieldId) {
@@ -80,7 +79,7 @@ function extensionForm(fieldId) {
80
79
  }
81
80
  const disposers = [];
82
81
  function register(options) {
83
- const dispose = (0, invite_extensions_2.RegisterInviteExtension)(options);
82
+ const dispose = (0, invite_extensions_1.RegisterInviteExtension)(options);
84
83
  disposers.push(dispose);
85
84
  return dispose;
86
85
  }
@@ -132,7 +131,6 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
132
131
  (0, interface_core_1.ImplementInterface)(permissionsResolverInterface, permissionsResolverImpl);
133
132
  (0, interface_core_1.ImplementInterface)(pageInterface, pageImpl);
134
133
  (0, interface_core_1.ImplementInterface)(inviteExtensionsInterface, inviteExtensionsImpl);
135
- (0, invite_extensions_1.registerInviteExtensionCleanup)();
136
134
  });
137
135
  afterEach(() => {
138
136
  for (const dispose of disposers.splice(0))
@@ -246,14 +244,14 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
246
244
  });
247
245
  it("prefills the fields with the stored payloads, under their prefixed ids", () => {
248
246
  register(recordingExtension("billing", "costCenter").options);
249
- (0, chai_1.expect)(invite_extensions_2.internal.ReadInviteExtensionFields({
247
+ (0, chai_1.expect)(invite_extensions_1.internal.ReadInviteExtensionFields({
250
248
  billing: { costCenter: "CC-42" },
251
249
  gone: { value: "orphan" },
252
250
  })).to.deep.equal({ billing__costCenter: "CC-42" });
253
251
  });
254
252
  it("prefills nothing for an invitation without payloads", () => {
255
253
  register(recordingExtension("billing", "costCenter").options);
256
- (0, chai_1.expect)(invite_extensions_2.internal.ReadInviteExtensionFields(null)).to.deep.equal({});
254
+ (0, chai_1.expect)(invite_extensions_1.internal.ReadInviteExtensionFields(null)).to.deep.equal({});
257
255
  });
258
256
  });
259
257
  describe("payload edited on a pending invitation", () => {
@@ -265,21 +263,21 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
265
263
  it("takes the slices the submission carries", () => {
266
264
  register(recordingExtension("billing", "costCenter").options);
267
265
  register(recordingExtension("onboarding", "track").options);
268
- (0, chai_1.expect)(invite_extensions_2.internal.CollectInviteExtensionEdits({
266
+ (0, chai_1.expect)(invite_extensions_1.internal.CollectInviteExtensionEdits({
269
267
  firstname: "Ada",
270
268
  billing__costCenter: "CC-43",
271
269
  })).to.deep.equal({ billing: { costCenter: "CC-43" } });
272
270
  });
273
271
  it("refuses an edited slice its schema rejects", () => {
274
272
  register(recordingExtension("billing", "costCenter").options);
275
- (0, chai_1.expect)(() => invite_extensions_2.internal.CollectInviteExtensionEdits({ billing__costCenter: "" })).to.throw();
273
+ (0, chai_1.expect)(() => invite_extensions_1.internal.CollectInviteExtensionEdits({ billing__costCenter: "" })).to.throw();
276
274
  });
277
275
  it("ignores the slice of an extension that is not editable", () => {
278
276
  register({
279
277
  ...recordingExtension("frozen", "value").options,
280
278
  editable: false,
281
279
  });
282
- (0, chai_1.expect)(invite_extensions_2.internal.CollectInviteExtensionEdits({ frozen__value: "changed" })).to.deep.equal({});
280
+ (0, chai_1.expect)(invite_extensions_1.internal.CollectInviteExtensionEdits({ frozen__value: "changed" })).to.deep.equal({});
283
281
  });
284
282
  it("tells an extension its payload changed, parsed, with the previous one", async () => {
285
283
  const updates = [];
@@ -292,7 +290,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
292
290
  updates.push([payload, previous, updateContext]);
293
291
  },
294
292
  });
295
- await invite_extensions_2.internal.NotifyInviteExtensionUpdates({ capacity: { seats: "3" } }, { capacity: { seats: "5" } }, context);
293
+ await invite_extensions_1.internal.NotifyInviteExtensionUpdates({ capacity: { seats: "3" } }, { capacity: { seats: "5" } }, context);
296
294
  (0, chai_1.expect)(updates).to.deep.equal([[{ seats: 5 }, { seats: 3 }, context]]);
297
295
  });
298
296
  it("stays quiet when the payload did not change", async () => {
@@ -303,7 +301,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
303
301
  calls += 1;
304
302
  },
305
303
  });
306
- await invite_extensions_2.internal.NotifyInviteExtensionUpdates({ billing: { costCenter: "CC-42" } }, { billing: { costCenter: "CC-42" } }, context);
304
+ await invite_extensions_1.internal.NotifyInviteExtensionUpdates({ billing: { costCenter: "CC-42" } }, { billing: { costCenter: "CC-42" } }, context);
307
305
  (0, chai_1.expect)(calls).to.equal(0);
308
306
  });
309
307
  it("keeps notifying after a handler throws", async () => {
@@ -320,7 +318,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
320
318
  seen.push(payload.costCenter);
321
319
  },
322
320
  });
323
- await invite_extensions_2.internal.NotifyInviteExtensionUpdates(null, { failing: { value: "x" }, billing: { costCenter: "CC-43" } }, context);
321
+ await invite_extensions_1.internal.NotifyInviteExtensionUpdates(null, { failing: { value: "x" }, billing: { costCenter: "CC-43" } }, context);
324
322
  (0, chai_1.expect)(seen).to.deep.equal(["CC-43"]);
325
323
  });
326
324
  });
@@ -328,7 +326,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
328
326
  it("splits each extension's slice out of the submitted body", () => {
329
327
  register(recordingExtension("billing", "costCenter").options);
330
328
  register(recordingExtension("onboarding", "track").options);
331
- (0, chai_1.expect)(invite_extensions_2.internal.CollectInviteExtensionPayloads({
329
+ (0, chai_1.expect)(invite_extensions_1.internal.CollectInviteExtensionPayloads({
332
330
  email: "someone@acme.dev",
333
331
  billing__costCenter: "CC-42",
334
332
  onboarding__track: "sales",
@@ -339,13 +337,13 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
339
337
  });
340
338
  it("refuses a body that does not satisfy an extension's schema", () => {
341
339
  register(recordingExtension("billing", "costCenter").options);
342
- (0, chai_1.expect)(() => invite_extensions_2.internal.CollectInviteExtensionPayloads({ email: "someone@acme.dev" })).to.throw();
340
+ (0, chai_1.expect)(() => invite_extensions_1.internal.CollectInviteExtensionPayloads({ email: "someone@acme.dev" })).to.throw();
343
341
  });
344
342
  it("drops keys of an extension that is no longer registered", () => {
345
343
  const dispose = register(recordingExtension("gone", "value").options);
346
344
  dispose();
347
345
  disposers.length = 0;
348
- (0, chai_1.expect)(invite_extensions_2.internal.CollectInviteExtensionPayloads({ gone__value: "orphan" })).to.deep.equal({});
346
+ (0, chai_1.expect)(invite_extensions_1.internal.CollectInviteExtensionPayloads({ gone__value: "orphan" })).to.deep.equal({});
349
347
  });
350
348
  });
351
349
  describe("delivery at acceptance", () => {
@@ -357,7 +355,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
357
355
  it("hands each extension its own payload and the new member", async () => {
358
356
  const billing = recordingExtension("billing", "costCenter");
359
357
  register(billing.options);
360
- await invite_extensions_2.internal.DeliverInviteExtensions({ billing: { costCenter: "CC-42" } }, MEMBER, context);
358
+ await invite_extensions_1.internal.DeliverInviteExtensions({ billing: { costCenter: "CC-42" } }, MEMBER, context);
361
359
  (0, chai_1.expect)(billing.recorded.accepted).to.deep.equal([
362
360
  { payload: { costCenter: "CC-42" }, member: MEMBER },
363
361
  ]);
@@ -365,7 +363,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
365
363
  it("skips a payload the schema no longer accepts", async () => {
366
364
  const billing = recordingExtension("billing", "costCenter");
367
365
  register(billing.options);
368
- await invite_extensions_2.internal.DeliverInviteExtensions({ billing: { costCenter: 42 } }, MEMBER, context);
366
+ await invite_extensions_1.internal.DeliverInviteExtensions({ billing: { costCenter: 42 } }, MEMBER, context);
369
367
  (0, chai_1.expect)(billing.recorded.accepted).to.have.length(0);
370
368
  });
371
369
  it("hands a transforming schema's output to the contributor", async () => {
@@ -378,10 +376,10 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
378
376
  seen.push(payload);
379
377
  },
380
378
  });
381
- const stored = invite_extensions_2.internal.CollectInviteExtensionPayloads({
379
+ const stored = invite_extensions_1.internal.CollectInviteExtensionPayloads({
382
380
  capacity__seats: "3",
383
381
  });
384
- await invite_extensions_2.internal.DeliverInviteExtensions(stored, MEMBER, context);
382
+ await invite_extensions_1.internal.DeliverInviteExtensions(stored, MEMBER, context);
385
383
  (0, chai_1.expect)(seen).to.deep.equal([{ seats: 3 }]);
386
384
  });
387
385
  it("keeps delivering after a contributor throws", async () => {
@@ -394,7 +392,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
394
392
  });
395
393
  const billing = recordingExtension("billing", "costCenter");
396
394
  register(billing.options);
397
- await invite_extensions_2.internal.DeliverInviteExtensions({ failing: { value: "x" }, billing: { costCenter: "CC-42" } }, MEMBER, context);
395
+ await invite_extensions_1.internal.DeliverInviteExtensions({ failing: { value: "x" }, billing: { costCenter: "CC-42" } }, MEMBER, context);
398
396
  (0, chai_1.expect)(billing.recorded.accepted).to.have.length(1);
399
397
  });
400
398
  });
@@ -454,7 +452,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
454
452
  it("leaves an extension that declared no cleanup handler alone", async () => {
455
453
  const { options } = recordingExtension("billing", "costCenter");
456
454
  register({ ...options, onCleanup: undefined });
457
- await invite_extensions_2.internal.CleanupInviteExtensions(null, {
455
+ await invite_extensions_1.internal.CleanupInviteExtensions(null, {
458
456
  reason: "member-removed",
459
457
  tenantId: TENANT,
460
458
  userId: "user-1",
@@ -484,7 +482,7 @@ describe("[unit] interfaces/dms/invite-extensions — RegisterInviteExtension",
484
482
  const second = recordingExtension("billing", "b");
485
483
  register(second.options);
486
484
  disposeFirst();
487
- await invite_extensions_2.internal.DeliverInviteExtensions({ billing: { b: "value" } }, MEMBER, {
485
+ await invite_extensions_1.internal.DeliverInviteExtensions({ billing: { b: "value" } }, MEMBER, {
488
486
  tenantId: TENANT,
489
487
  email: "someone@acme.dev",
490
488
  });
@@ -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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"}