@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,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interface_api_1 = require("@antelopejs/interface-api");
4
+ const modules_1 = require("@antelopejs/interface-core/modules");
5
+ const realtime_1 = require("@antelopejs/interface-dms/base/table-view/realtime");
6
+ const hooks_1 = require("@antelopejs/interface-dms/hooks");
7
+ const chai_1 = require("chai");
8
+ const logging_1 = require("../../../helpers/logging");
9
+ const reload_host_1 = require("../../../helpers/reload-host");
10
+ const ROW_ID = "reload-host-row";
11
+ const SESSION_ID = "reload-host-session";
12
+ const USER = {
13
+ _id: "reload-host-user",
14
+ email: "reload-host@example.test",
15
+ };
16
+ class RowsController extends (0, interface_api_1.Controller)(reload_host_1.RELOAD_HOST_LOCATION) {
17
+ }
18
+ const updateRow = (0, realtime_1.withRealtimeMutation)({ eventType: "updated", extractIds: realtime_1.extractFromResult }, { method: "put", args: [], func: async () => ({ _id: ROW_ID }) });
19
+ async function mutateRow() {
20
+ await updateRow.func.call(new RowsController(), SESSION_ID, USER);
21
+ }
22
+ describe("[unit] interfaces/dms — registrations of a reloaded module", () => {
23
+ before(async () => {
24
+ await (0, modules_1.ReloadModule)(reload_host_1.RELOAD_HOST_MODULE);
25
+ (0, reload_host_1.takeReloadHostCalls)();
26
+ });
27
+ it("runs its hook handler once, in its live generation", async () => {
28
+ await (0, hooks_1.ExecuteHooks)(hooks_1.Hook.MEMBER_BEING_ADDED, {
29
+ tenantId: reload_host_1.RELOAD_HOST_TENANT,
30
+ userId: USER._id,
31
+ isTenantOwner: false,
32
+ });
33
+ (0, chai_1.expect)((0, reload_host_1.takeReloadHostCalls)()).to.deep.equal([
34
+ { generation: (0, reload_host_1.liveReloadHostGeneration)(), source: "hook" },
35
+ ]);
36
+ });
37
+ it("calls its realtime mutation listener once, in its live generation", async () => {
38
+ const errors = (0, logging_1.captureErrors)();
39
+ try {
40
+ await mutateRow();
41
+ }
42
+ finally {
43
+ errors.restore();
44
+ }
45
+ (0, chai_1.expect)(errors.messages).to.deep.equal([]);
46
+ (0, chai_1.expect)((0, reload_host_1.takeReloadHostCalls)()).to.deep.equal([
47
+ { generation: (0, reload_host_1.liveReloadHostGeneration)(), source: "listener" },
48
+ ]);
49
+ });
50
+ });
51
+ //# sourceMappingURL=module-reload-registrations.test.js.map
@@ -0,0 +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,GAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,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,GAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,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,194 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ const interface_api_1 = require("@antelopejs/interface-api");
46
+ const interface_core_1 = require("@antelopejs/interface-core");
47
+ const modules_1 = require("@antelopejs/interface-core/modules");
48
+ const interface_data_api_1 = require("@antelopejs/interface-data-api");
49
+ const metadata_1 = require("@antelopejs/interface-data-api/metadata");
50
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
51
+ const chai_1 = require("chai");
52
+ const pageImpl = __importStar(require("../../../../implementations/dms/page"));
53
+ const permissionsImpl = __importStar(require("../../../../implementations/dms/permissions"));
54
+ const realtimeImpl = __importStar(require("../../../../implementations/dms/realtime"));
55
+ const chart_1 = require("@antelopejs/interface-dms/base/chart");
56
+ const default_types_1 = require("@antelopejs/interface-dms/base/data-types/default-types");
57
+ const table_view_1 = require("@antelopejs/interface-dms/base/table-view");
58
+ const constants_1 = require("@antelopejs/interface-dms/constants");
59
+ const pageInterface = __importStar(require("@antelopejs/interface-dms/page"));
60
+ const page_1 = require("@antelopejs/interface-dms/page");
61
+ const permissionsInterface = __importStar(require("@antelopejs/interface-dms/permissions"));
62
+ const realtimeInterface = __importStar(require("@antelopejs/interface-dms/realtime"));
63
+ const registry_1 = require("../../../../realtime/registry");
64
+ const TABLE = "page-topics-rows";
65
+ const LOCATION = "/api/page-topics-rows";
66
+ const TOPICS_PAGE = "page-topics";
67
+ const SHARED_PAGE = "page-topics-shared";
68
+ const CHART_TOPICS = ["page-topics:first", "page-topics:second"];
69
+ const OWN_TOPIC = "page-topics:own";
70
+ const OTHER_TOPIC = "page-topics:other";
71
+ let Row = class Row extends interface_database_decorators_1.Table {
72
+ };
73
+ __decorate([
74
+ (0, interface_database_decorators_1.Field)("string"),
75
+ __metadata("design:type", String)
76
+ ], Row.prototype, "name", void 0);
77
+ Row = __decorate([
78
+ (0, interface_database_decorators_1.RegisterTable)(TABLE, constants_1.CORE_SCHEMA_NAME)
79
+ ], Row);
80
+ class RowModel extends (0, interface_database_decorators_1.BasicDataModel)(Row, TABLE) {
81
+ }
82
+ let RowsAPI = class RowsAPI extends (0, interface_data_api_1.DataController)(Row, { get: table_view_1.TableViewRoutes.Get }, (0, interface_api_1.Controller)(LOCATION)) {
83
+ };
84
+ __decorate([
85
+ (0, metadata_1.ModelReference)(),
86
+ (0, interface_database_decorators_1.Model)(RowModel),
87
+ __metadata("design:type", RowModel)
88
+ ], RowsAPI.prototype, "model", void 0);
89
+ __decorate([
90
+ (0, table_view_1.Column)({ name: "Name", type: new default_types_1.DefaultDataTypes.StringType() }),
91
+ (0, metadata_1.Access)(metadata_1.AccessMode.ReadOnly),
92
+ __metadata("design:type", String)
93
+ ], RowsAPI.prototype, "name", void 0);
94
+ RowsAPI = __decorate([
95
+ (0, interface_data_api_1.RegisterDataController)()
96
+ ], RowsAPI);
97
+ class TopicsPage extends (0, page_1.PageController)(TOPICS_PAGE, {
98
+ displayName: "Page topics",
99
+ category: page_1.pagesCategory,
100
+ }) {
101
+ static rows = (0, table_view_1.TableView)(RowsAPI);
102
+ static trend = (0, chart_1.ChartLine)({ realtimeTopic: CHART_TOPICS });
103
+ }
104
+ class SharedPage extends (0, page_1.PageController)(SHARED_PAGE, {
105
+ displayName: "Shared page topics",
106
+ category: page_1.pagesCategory,
107
+ }) {
108
+ }
109
+ const TOPICS_PAGE_TOPICS = [
110
+ (0, table_view_1.tableViewRowTopic)(LOCATION),
111
+ (0, table_view_1.tableViewPresenceTopic)(LOCATION),
112
+ ...CHART_TOPICS,
113
+ ];
114
+ function moduleContext(module) {
115
+ return { module, owner: `${module}#1` };
116
+ }
117
+ function pageFullId(page) {
118
+ return (0, interface_core_1.GetMetadata)(page, page_1.PageMetadata).pageInfo?.fullId ?? "";
119
+ }
120
+ function topicsOf(page) {
121
+ return [...(0, registry_1.getPageTopics)(pageFullId(page))];
122
+ }
123
+ function destroyModule(context) {
124
+ (0, modules_1.RunWithModuleContext)(context, () => {
125
+ modules_1.Events.ModuleDestroyed.emit(context.module);
126
+ });
127
+ }
128
+ function attachNewDmsGeneration() {
129
+ (0, registry_1.clearPageTopics)(pageFullId(TopicsPage));
130
+ (0, registry_1.clearPageTopics)(pageFullId(SharedPage));
131
+ (0, interface_core_1.ImplementInterface)(realtimeInterface, realtimeImpl);
132
+ }
133
+ async function registerAs(context) {
134
+ const meta = (0, interface_core_1.GetMetadata)(TopicsPage, page_1.PageMetadata);
135
+ meta.SetComponent("rows", TopicsPage.rows);
136
+ meta.SetComponent("trend", TopicsPage.trend);
137
+ await (0, modules_1.RunWithModuleContext)(context, () => meta.Register());
138
+ }
139
+ function placeChart(context, topic) {
140
+ const chart = (0, chart_1.ChartLine)({ realtimeTopic: topic });
141
+ const meta = (0, interface_core_1.GetMetadata)(SharedPage, page_1.PageMetadata);
142
+ (0, modules_1.RunWithModuleContext)(context, () => chart.onPageCreated?.(meta));
143
+ }
144
+ describe("[unit] interfaces/dms/realtime — page topics", () => {
145
+ before(() => {
146
+ (0, interface_core_1.ImplementInterface)(permissionsInterface, permissionsImpl);
147
+ (0, interface_core_1.ImplementInterface)(realtimeInterface, realtimeImpl);
148
+ (0, interface_core_1.ImplementInterface)(pageInterface, pageImpl);
149
+ });
150
+ it("brings every topic of a page back to a new DMS generation", async () => {
151
+ const owner = moduleContext("page-topics-replay");
152
+ await registerAs(owner);
153
+ try {
154
+ (0, chai_1.expect)(topicsOf(TopicsPage)).to.have.members(TOPICS_PAGE_TOPICS);
155
+ attachNewDmsGeneration();
156
+ (0, chai_1.expect)(topicsOf(TopicsPage)).to.have.members(TOPICS_PAGE_TOPICS);
157
+ }
158
+ finally {
159
+ destroyModule(owner);
160
+ }
161
+ });
162
+ it("gives a page's topics to the module whose page it is", async () => {
163
+ const owner = moduleContext("page-topics-owner");
164
+ await registerAs(owner);
165
+ destroyModule(owner);
166
+ (0, chai_1.expect)(topicsOf(TopicsPage)).to.deep.equal([]);
167
+ attachNewDmsGeneration();
168
+ (0, chai_1.expect)(topicsOf(TopicsPage)).to.deep.equal([]);
169
+ });
170
+ it("releases only the topics of the module that goes away", () => {
171
+ const own = moduleContext("page-topics-own");
172
+ const other = moduleContext("page-topics-other");
173
+ placeChart(own, OWN_TOPIC);
174
+ placeChart(other, OTHER_TOPIC);
175
+ (0, chai_1.expect)(topicsOf(SharedPage)).to.have.members([OWN_TOPIC, OTHER_TOPIC]);
176
+ destroyModule(other);
177
+ (0, chai_1.expect)(topicsOf(SharedPage)).to.deep.equal([OWN_TOPIC]);
178
+ attachNewDmsGeneration();
179
+ (0, chai_1.expect)(topicsOf(SharedPage)).to.deep.equal([OWN_TOPIC]);
180
+ destroyModule(own);
181
+ (0, chai_1.expect)(topicsOf(SharedPage)).to.deep.equal([]);
182
+ });
183
+ it("unregisters one topic of a page by its registration id", () => {
184
+ const pageId = pageFullId(SharedPage);
185
+ const topics = realtimeImpl.internal.RegisterPageTopic;
186
+ topics.register("page-topics-first-id", pageId, OWN_TOPIC);
187
+ topics.register("page-topics-second-id", pageId, OTHER_TOPIC);
188
+ topics.unregister("page-topics-first-id");
189
+ (0, chai_1.expect)(topicsOf(SharedPage)).to.deep.equal([OTHER_TOPIC]);
190
+ topics.unregister("page-topics-second-id");
191
+ (0, chai_1.expect)(topicsOf(SharedPage)).to.deep.equal([]);
192
+ });
193
+ });
194
+ //# sourceMappingURL=page-topics.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-topics.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms/page-topics.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA6E;AAC7E,+DAA6E;AAC7E,gEAI4C;AAC5C,uEAGwC;AACxC,sEAIiD;AACjD,6FAMmD;AACnD,+BAA8B;AAC9B,+EAAiE;AACjE,6FAA+E;AAC/E,uFAAyE;AACzE,gEAAiE;AACjE,2FAA2F;AAC3F,0EAMmD;AACnD,mEAAuE;AACvE,8EAAgE;AAChE,yDAIwC;AACxC,4FAA8E;AAC9E,sFAAwE;AACxE,4DAA+E;AAO/E,MAAM,KAAK,GAAG,kBAAkB,CAAC;AACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AACzC,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,YAAY,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;AACjE,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAGxC,IAAM,GAAG,GAAT,MAAM,GAAI,SAAQ,qCAAK;CAEtB,CAAA;AAD0B;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iCAAsB;AADlC,GAAG;IADR,IAAA,6CAAa,EAAC,KAAK,EAAE,4BAAgB,CAAC;GACjC,GAAG,CAER;AAED,MAAM,QAAS,SAAQ,IAAA,8CAAc,EAAC,GAAG,EAAE,KAAK,CAAC;CAAG;AAGpD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,IAAA,mCAAc,EAClC,GAAG,EACH,EAAE,GAAG,EAAE,4BAAe,CAAC,GAAG,EAAE,EAC5B,IAAA,0BAAU,EAAC,QAAQ,CAAC,CACrB;CAOA,CAAA;AAJS;IAFP,IAAA,yBAAc,GAAE;IAChB,IAAA,qCAAK,EAAC,QAAQ,CAAC;8BACD,QAAQ;sCAAC;AAGhB;IAFP,IAAA,mBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,gCAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;IACjE,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;;qCACP;AAVjB,OAAO;IADZ,IAAA,2CAAsB,GAAE;GACnB,OAAO,CAWZ;AAED,MAAM,UAAW,SAAQ,IAAA,qBAAc,EAAC,WAAW,EAAE;IACnD,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,oBAAa;CACxB,CAAC;IACA,MAAM,CAAC,IAAI,GAAG,IAAA,sBAAS,EAAC,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,IAAA,iBAAS,EAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;;AAG5D,MAAM,UAAW,SAAQ,IAAA,qBAAc,EAAC,WAAW,EAAE;IACnD,WAAW,EAAE,oBAAoB;IACjC,QAAQ,EAAE,oBAAa;CACxB,CAAC;CAAG;AAEL,MAAM,kBAAkB,GAAG;IACzB,IAAA,8BAAiB,EAAC,QAAQ,CAAC;IAC3B,IAAA,mCAAsB,EAAC,QAAQ,CAAC;IAChC,GAAG,YAAY;CAChB,CAAC;AAEF,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,IAAqB;IACvC,OAAO,IAAA,4BAAW,EAAC,IAAI,EAAE,mBAAY,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAqB;IACrC,OAAO,CAAC,GAAG,IAAA,wBAAa,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAID,SAAS,aAAa,CAAC,OAA+B;IACpD,IAAA,8BAAoB,EAAC,OAAO,EAAE,GAAG,EAAE;QACjC,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAID,SAAS,sBAAsB;IAC7B,IAAA,0BAAe,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,IAAA,0BAAe,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,IAAA,mCAAkB,EAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAA+B;IACvD,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,UAAU,EAAE,mBAAY,CAAC,CAAC;IACnD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAA,8BAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,CAAC;AAID,SAAS,UAAU,CAAC,OAA+B,EAAE,KAAa;IAChE,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,UAAU,EAAE,mBAAY,CAAC,CAAC;IACnD,IAAA,8BAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC5D,MAAM,CAAC,GAAG,EAAE;QACV,IAAA,mCAAkB,EAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;QAC1D,IAAA,mCAAkB,EAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACpD,IAAA,mCAAkB,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,KAAK,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAEjE,sBAAsB,EAAE,CAAC;YAEzB,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACjD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QAExB,aAAa,CAAC,KAAK,CAAC,CAAC;QAErB,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/C,sBAAsB,EAAE,CAAC;QACzB,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACjD,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC3B,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/B,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QAEvE,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAExD,sBAAsB,EAAE,CAAC;QACzB,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAExD,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE9D,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QAC1C,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAE1D,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_crypto_1 = require("node:crypto");
3
4
  const chai_1 = require("chai");
4
5
  const sessions_model_1 = require("@antelopejs/interface-dms/auth/db/models/sessions.model");
5
- function createSession(refreshToken) {
6
+ function sha256(token) {
7
+ return (0, node_crypto_1.createHash)("sha256").update(token).digest("hex");
8
+ }
9
+ function createLegacySession(refreshToken) {
6
10
  return { _id: "session", refreshToken };
7
11
  }
12
+ function matchesPresented(session, presentedHash) {
13
+ if (session.refreshTokenHash) {
14
+ return session.refreshTokenHash === presentedHash;
15
+ }
16
+ return (!!session.refreshToken && sha256(session.refreshToken) === presentedHash);
17
+ }
8
18
  function createModel() {
9
19
  const model = Object.create(sessions_model_1.SessionModel.prototype);
10
20
  let update;
@@ -18,9 +28,11 @@ function createModel() {
18
28
  return query;
19
29
  },
20
30
  run: async () => {
21
- if (model.currentSession?.refreshToken !== "T0")
31
+ const session = model.currentSession;
32
+ if (!session ||
33
+ !matchesPresented(session, update.previousRefreshTokenHash))
22
34
  return 0;
23
- Object.assign(model.currentSession, update);
35
+ Object.assign(session, update);
24
36
  return 1;
25
37
  },
26
38
  };
@@ -34,20 +46,20 @@ describe("refresh token rotation", () => {
34
46
  const committedAt = new Date("2026-08-28T12:00:00.000Z");
35
47
  it("returns the canonical winner to a concurrent CAS loser", async () => {
36
48
  const model = createModel();
37
- model.currentSession = createSession("T0");
49
+ model.currentSession = createLegacySession("T0");
38
50
  (0, chai_1.expect)(await model.rotateRefreshToken("session", "T0", "T1", committedAt)).to.equal("T1");
39
51
  (0, chai_1.expect)(await model.rotateRefreshToken("session", "T0", "loser", committedAt)).to.equal("T1");
40
52
  });
41
53
  it("accepts a loser that began just before the winning commit", async () => {
42
54
  const model = createModel();
43
- model.currentSession = createSession("T0");
55
+ model.currentSession = createLegacySession("T0");
44
56
  const loserStartedAt = new Date(committedAt.getTime() - 1);
45
57
  await model.rotateRefreshToken("session", "T0", "T1", committedAt);
46
58
  (0, chai_1.expect)(await model.rotateRefreshToken("session", "T0", "loser", loserStartedAt)).to.equal("T1");
47
59
  });
48
60
  it("recovers a late duplicate and response-loss retry", async () => {
49
61
  const model = createModel();
50
- model.currentSession = createSession("T0");
62
+ model.currentSession = createLegacySession("T0");
51
63
  await model.rotateRefreshToken("session", "T0", "T1", committedAt);
52
64
  const retryAt = new Date(committedAt.getTime() + 10_000);
53
65
  (0, chai_1.expect)(await model.rotateRefreshToken("session", "T0", "discarded", retryAt)).to.equal("T1");
@@ -55,7 +67,7 @@ describe("refresh token rotation", () => {
55
67
  });
56
68
  it("does not slide predecessor expiry", async () => {
57
69
  const model = createModel();
58
- model.currentSession = createSession("T0");
70
+ model.currentSession = createLegacySession("T0");
59
71
  await model.rotateRefreshToken("session", "T0", "T1", committedAt);
60
72
  await model.rotateRefreshToken("session", "T0", "discarded", new Date(committedAt.getTime() + 10_000));
61
73
  const expiredAt = new Date(committedAt.getTime() + sessions_model_1.REFRESH_TOKEN_PREDECESSOR_GRACE_MS + 1);
@@ -63,7 +75,7 @@ describe("refresh token rotation", () => {
63
75
  });
64
76
  it("rejects other tokens and deleted sessions", async () => {
65
77
  const model = createModel();
66
- model.currentSession = createSession("T0");
78
+ model.currentSession = createLegacySession("T0");
67
79
  await model.rotateRefreshToken("session", "T0", "T1", committedAt);
68
80
  (0, chai_1.expect)(await model.rotateRefreshToken("session", "other", "discarded", committedAt)).to.equal(null);
69
81
  model.currentSession = undefined;
@@ -71,7 +83,7 @@ describe("refresh token rotation", () => {
71
83
  });
72
84
  it("clears predecessor state on replacement", async () => {
73
85
  const model = createModel();
74
- model.currentSession = createSession("T0");
86
+ model.currentSession = createLegacySession("T0");
75
87
  await model.rotateRefreshToken("session", "T0", "T1", committedAt);
76
88
  Object.defineProperty(model, "update", {
77
89
  value: async (_id, update) => {
@@ -84,5 +96,58 @@ describe("refresh token rotation", () => {
84
96
  await model.replaceRefreshToken("session", "replacement");
85
97
  (0, chai_1.expect)(await model.rotateRefreshToken("session", "T0", "discarded", committedAt)).to.equal(null);
86
98
  });
99
+ it("keeps no refresh token in plaintext once rotated", async () => {
100
+ const model = createModel();
101
+ model.currentSession = createLegacySession("T0");
102
+ await model.rotateRefreshToken("session", "T0", "T1", committedAt);
103
+ const session = model.currentSession;
104
+ (0, chai_1.expect)(session.refreshToken).to.equal("");
105
+ (0, chai_1.expect)(session.refreshTokenHash).to.equal(sha256("T1"));
106
+ (0, chai_1.expect)(session.sealedRefreshToken).to.be.a("string");
107
+ (0, chai_1.expect)(session.sealedRefreshToken).to.not.include("T1");
108
+ (0, chai_1.expect)((0, sessions_model_1.isCurrentRefreshToken)(session, "T1")).to.equal(true);
109
+ (0, chai_1.expect)((0, sessions_model_1.isCurrentRefreshToken)(session, "T0")).to.equal(false);
110
+ });
111
+ it("accepts a legacy plaintext token once, then only its successor", async () => {
112
+ const model = createModel();
113
+ model.currentSession = createLegacySession("T0");
114
+ (0, chai_1.expect)((0, sessions_model_1.isCurrentRefreshToken)(model.currentSession, "T0")).to.equal(true);
115
+ await model.rotateRefreshToken("session", "T0", "T1", committedAt);
116
+ const afterGrace = new Date(committedAt.getTime() + sessions_model_1.REFRESH_TOKEN_PREDECESSOR_GRACE_MS + 1);
117
+ (0, chai_1.expect)(await model.rotateRefreshToken("session", "T0", "discarded", afterGrace)).to.equal(null);
118
+ (0, chai_1.expect)(await model.rotateRefreshToken("session", "T1", "T2", afterGrace)).to.equal("T2");
119
+ });
120
+ it("hands the sealed successor back to a holder of the predecessor", async () => {
121
+ const model = createModel();
122
+ model.currentSession = createLegacySession("T0");
123
+ await model.rotateRefreshToken("session", "T0", "T1", committedAt);
124
+ const secondRotation = new Date(committedAt.getTime() + 60_000);
125
+ await model.rotateRefreshToken("session", "T1", "T2", secondRotation);
126
+ (0, chai_1.expect)(await model.rotateRefreshToken("session", "T1", "loser", secondRotation)).to.equal("T2");
127
+ });
128
+ it("opens nothing for a predecessor the successor was not sealed under", async () => {
129
+ const model = createModel();
130
+ model.currentSession = createLegacySession("T0");
131
+ await model.rotateRefreshToken("session", "T0", "T1", committedAt);
132
+ model.currentSession.previousRefreshTokenHash =
133
+ sha256("forged");
134
+ (0, chai_1.expect)(await model.rotateRefreshToken("session", "forged", "loser", committedAt)).to.equal(null);
135
+ });
136
+ it("stores only the hash on replacement", async () => {
137
+ const model = createModel();
138
+ model.currentSession = createLegacySession("T0");
139
+ Object.defineProperty(model, "update", {
140
+ value: async (_id, update) => {
141
+ Object.assign(model.currentSession, update);
142
+ return 1;
143
+ },
144
+ });
145
+ await model.replaceRefreshToken("session", "replacement");
146
+ const session = model.currentSession;
147
+ (0, chai_1.expect)(session.refreshToken).to.equal("");
148
+ (0, chai_1.expect)(session.sealedRefreshToken).to.equal(null);
149
+ (0, chai_1.expect)((0, sessions_model_1.isCurrentRefreshToken)(session, "replacement")).to.equal(true);
150
+ (0, chai_1.expect)((0, sessions_model_1.isCurrentRefreshToken)(session, "T0")).to.equal(false);
151
+ });
87
152
  });
88
153
  //# sourceMappingURL=refresh-token-rotation.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-token-rotation.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-auth/refresh-token-rotation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refresh-token-rotation.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-auth/refresh-token-rotation.test.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,22 @@ describe("[unit] interfaces/dms-base/layouts", () => {
24
24
  hideHeader: true,
25
25
  });
26
26
  });
27
+ it("lets a page fill the panel height, full-width by default", () => {
28
+ (0, chai_1.expect)((0, layouts_1.DefaultLayout)({ fillHeight: true }).options).to.deep.equal({
29
+ fullWidth: true,
30
+ fillHeight: true,
31
+ });
32
+ });
33
+ it("leaves the height option out unless a page asks for it", () => {
34
+ (0, chai_1.expect)((0, layouts_1.DefaultLayout)().options).to.not.have.property("fillHeight");
35
+ (0, chai_1.expect)((0, layouts_1.FormPageLayout)().options).to.not.have.property("fillHeight");
36
+ });
37
+ it("lets a form page fill the panel height too", () => {
38
+ (0, chai_1.expect)((0, layouts_1.FormPageLayout)({ fillHeight: true }).options).to.deep.equal({
39
+ fullWidth: false,
40
+ fillHeight: true,
41
+ });
42
+ });
27
43
  it("returns a fresh options object per call", () => {
28
44
  const first = (0, layouts_1.DefaultLayout)();
29
45
  const second = (0, layouts_1.DefaultLayout)();
@@ -1 +1 @@
1
- {"version":3,"file":"layouts.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/layouts.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,oEAGgD;AAEhD,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,IAAA,aAAM,EAAC,IAAA,uBAAa,GAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,IAAA,aAAM,EAAC,IAAA,uBAAa,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAChE,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,IAAA,aAAM,EAAC,IAAA,uBAAa,EAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAChE,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,IAAA,aAAM,EAAC,IAAA,wBAAc,GAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,IAAA,aAAM,EAAC,IAAA,wBAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,KAAK,GAAG,IAAA,uBAAa,GAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAA,uBAAa,GAAE,CAAC;QAC/B,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"layouts.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/layouts.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,oEAGgD;AAEhD,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,IAAA,aAAM,EAAC,IAAA,uBAAa,GAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,IAAA,aAAM,EAAC,IAAA,uBAAa,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAChE,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,IAAA,aAAM,EAAC,IAAA,uBAAa,EAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAChE,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,IAAA,aAAM,EAAC,IAAA,wBAAc,GAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,IAAA,aAAM,EAAC,IAAA,wBAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,IAAA,aAAM,EAAC,IAAA,uBAAa,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAChE,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAIH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,IAAA,aAAM,EAAC,IAAA,uBAAa,GAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnE,IAAA,aAAM,EAAC,IAAA,wBAAc,GAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,IAAA,aAAM,EAAC,IAAA,wBAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,KAAK,GAAG,IAAA,uBAAa,GAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAA,uBAAa,GAAE,CAAC;QAC/B,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface EvaluationOrderResult {
2
+ published: string[];
3
+ present: string[];
4
+ pageTopics: string[];
5
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_module_1 = __importDefault(require("node:module"));
7
+ const interface_core_1 = require("@antelopejs/interface-core");
8
+ const TABLE_VIEW = "@antelopejs/interface-dms/base/table-view";
9
+ const REALTIME = "@antelopejs/interface-dms/realtime";
10
+ const LOCATION = "/api/evaluation-order";
11
+ const PAGE_ID = "pages.evaluation-order";
12
+ const SESSION = "evaluation-order-session";
13
+ const ROW = "evaluation-order-row";
14
+ const DMS_REALTIME = "../../../../realtime";
15
+ const DMS_REALTIME_IMPLEMENTATION = "../../../../implementations/dms/realtime";
16
+ const DMS_TABLE_VIEW_IMPLEMENTATION = "../../../../implementations/dms-base/table-view";
17
+ const DMS_REALTIME_MODULES = [
18
+ DMS_REALTIME,
19
+ "../../../../realtime/table-view",
20
+ DMS_REALTIME_IMPLEMENTATION,
21
+ ];
22
+ function enterThroughTableView() {
23
+ const loader = node_module_1.default;
24
+ const load = loader._load;
25
+ const tableViewEntry = require.resolve(TABLE_VIEW);
26
+ let hasLoadedDms = false;
27
+ loader._load = function (request, parent, isMain) {
28
+ if (!hasLoadedDms && parent?.filename === tableViewEntry) {
29
+ hasLoadedDms = true;
30
+ for (const path of DMS_REALTIME_MODULES)
31
+ require(path);
32
+ }
33
+ return load.call(this, request, parent, isMain);
34
+ };
35
+ try {
36
+ return require(TABLE_VIEW);
37
+ }
38
+ finally {
39
+ loader._load = load;
40
+ }
41
+ }
42
+ async function run() {
43
+ const tableView = enterThroughTableView();
44
+ const realtimeInterface = require(REALTIME);
45
+ const realtime = require(DMS_REALTIME);
46
+ const rowTopic = tableView.tableViewRowTopic(LOCATION);
47
+ realtimeInterface.RegisterPageTopic(PAGE_ID, rowTopic);
48
+ (0, interface_core_1.ImplementInterface)(realtimeInterface, require(DMS_REALTIME_IMPLEMENTATION));
49
+ (0, interface_core_1.ImplementInterface)(tableView, require(DMS_TABLE_VIEW_IMPLEMENTATION));
50
+ const published = [];
51
+ realtime.subscribeRealtime(rowTopic, (event) => published.push(event.type));
52
+ const actor = { id: "evaluation-order-user" };
53
+ await tableView.internal.PublishMutation({
54
+ controllerLocation: LOCATION,
55
+ rowIdKey: "_id",
56
+ eventType: "updated",
57
+ ids: [ROW],
58
+ actor,
59
+ });
60
+ await tableView.internal.AcquirePresence({
61
+ controllerLocation: LOCATION,
62
+ rowIdKey: "_id",
63
+ sessionId: SESSION,
64
+ rowId: ROW,
65
+ actor,
66
+ });
67
+ const present = await realtime
68
+ .getPresenceTracker()
69
+ .snapshotForTopic(tableView.tableViewPresenceTopic(LOCATION));
70
+ return {
71
+ published,
72
+ present: present.map((entry) => entry.rowId),
73
+ pageTopics: [...realtime.getPageTopics(PAGE_ID)],
74
+ };
75
+ }
76
+ run().then((result) => {
77
+ process.stdout.write(JSON.stringify(result), () => process.exit(0));
78
+ }, (error) => {
79
+ const report = error instanceof Error ? error.stack : String(error);
80
+ process.stderr.write(`${report}\n`, () => process.exit(1));
81
+ });
82
+ //# sourceMappingURL=table-view-evaluation-order.fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-view-evaluation-order.fixture.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_child_process_1 = require("node:child_process");
4
+ const node_path_1 = require("node:path");
5
+ const node_util_1 = require("node:util");
6
+ const chai_1 = require("chai");
7
+ const FIXTURE = (0, node_path_1.resolve)(__dirname, "table-view-evaluation-order.fixture.js");
8
+ const LOCATION = "/api/evaluation-order";
9
+ const ROW = "evaluation-order-row";
10
+ const PROCESS_TIMEOUT_MS = 30_000;
11
+ const runProcess = (0, node_util_1.promisify)(node_child_process_1.execFile);
12
+ describe("[unit] interfaces/dms-base — table-view realtime and evaluation order", () => {
13
+ it("reaches the DMS when its realtime modules evaluate while table-view is still evaluating", async function () {
14
+ this.timeout(PROCESS_TIMEOUT_MS);
15
+ const { stdout } = await runProcess(process.execPath, [FIXTURE]);
16
+ const result = JSON.parse(stdout);
17
+ (0, chai_1.expect)(result).to.deep.equal({
18
+ published: ["updated"],
19
+ present: [ROW],
20
+ pageTopics: [`tableview:row:${LOCATION}`],
21
+ });
22
+ });
23
+ });
24
+ //# sourceMappingURL=table-view-evaluation-order.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-view-evaluation-order.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/table-view-evaluation-order.test.ts"],"names":[],"mappings":";;AAAA,2DAA8C;AAC9C,yCAAoC;AACpC,yCAAsC;AACtC,+BAA8B;AAG9B,MAAM,OAAO,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,wCAAwC,CAAC,CAAC;AAC7E,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AACzC,MAAM,GAAG,GAAG,sBAAsB,CAAC;AAEnC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,UAAU,GAAG,IAAA,qBAAS,EAAC,6BAAQ,CAAC,CAAC;AAEvC,QAAQ,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACrF,EAAE,CAAC,yFAAyF,EAAE,KAAK;QACjG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA0B,CAAC;QAE3D,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,OAAO,EAAE,CAAC,GAAG,CAAC;YACd,UAAU,EAAE,CAAC,iBAAiB,QAAQ,EAAE,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}