@antelopejs/dms 0.9.4 → 0.9.6

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 CHANGED
@@ -1,8 +1,34 @@
1
1
  # Changelog
2
2
 
3
- ## v0.9.4
3
+ ## v0.9.6
4
4
 
5
- [compare changes](https://github.com/AntelopeJS/dms/compare/v0.9.3...v0.9.4)
5
+ [compare changes](https://github.com/AntelopeJS/dms/compare/v0.9.5...v0.9.6)
6
+
7
+ ### 🚀 Enhancements
8
+
9
+ - **tenant-lifecycle:** Pause producer admission and evaluate every tenant access gate ([#366](https://github.com/AntelopeJS/dms/pull/366))
10
+
11
+ ### 🩹 Fixes
12
+
13
+ - **frontend:** Read the onboarding status and permissions through the data layer ([#357](https://github.com/AntelopeJS/dms/pull/357))
14
+ - **deps:** Require the tenant admission barrier and access evaluation contract ([#367](https://github.com/AntelopeJS/dms/pull/367))
15
+
16
+ ### 🏡 Chore
17
+
18
+ - **release:** @antelopejs/interface-dms v0.7.4 ([9577327b](https://github.com/AntelopeJS/dms/commit/9577327b))
19
+
20
+ ### ❤️ Contributors
21
+
22
+ - Antony Rizzitelli <rizzitelli.antony@pm.me>
23
+ - Alessandro Aloisio ([@alessaloisio](http://github.com/alessaloisio))
24
+
25
+ ## v0.9.5
26
+
27
+ [compare changes](https://github.com/AntelopeJS/dms/compare/v0.9.3...v0.9.5)
28
+
29
+ ### 🚀 Enhancements
30
+
31
+ - **preview:** Share simple options and document real outcomes ([#339](https://github.com/AntelopeJS/dms/pull/339))
6
32
 
7
33
  ### 🩹 Fixes
8
34
 
@@ -10,6 +36,8 @@
10
36
  - Install DMS frontend with the root workspace ([#322](https://github.com/AntelopeJS/dms/pull/322))
11
37
  - **modules:** Top-align card content and place readouts below descriptions ([#328](https://github.com/AntelopeJS/dms/pull/328))
12
38
  - **modules:** Reuse registered names in the store ([#330](https://github.com/AntelopeJS/dms/pull/330))
39
+ - **playground:** Use the workspace CLI and compatible core interface ([#331](https://github.com/AntelopeJS/dms/pull/331))
40
+ - **deps:** Require the shared preview presentation contract ([#340](https://github.com/AntelopeJS/dms/pull/340))
13
41
 
14
42
  ### 📖 Documentation
15
43
 
@@ -18,6 +46,8 @@
18
46
  ### 🏡 Chore
19
47
 
20
48
  - **docs:** Capture temporary MongoDB startup diagnostics ([#325](https://github.com/AntelopeJS/dms/pull/325))
49
+ - **playground:** Refresh compatible dependencies ([#329](https://github.com/AntelopeJS/dms/pull/329))
50
+ - **release:** @antelopejs/interface-dms v0.7.3 ([bfaa1905](https://github.com/AntelopeJS/dms/commit/bfaa1905))
21
51
 
22
52
  ### ❤️ Contributors
23
53
 
package/dist/config.d.ts CHANGED
@@ -64,7 +64,7 @@ export declare function setDevClientBaseUrl(url: string): void;
64
64
  export declare function getClientBaseUrl(): string | undefined;
65
65
  export declare function setDevApiBaseUrl(url: string | undefined): void;
66
66
  export declare function getApiBaseUrl(): string | undefined;
67
- export declare function isDocsPreviewEnabled(): boolean;
67
+ export declare function isDocsPreviewEnabled(dev?: boolean): boolean;
68
68
  export declare function getAuthConfig(): AuthConfig;
69
69
  export declare function getHtmlRenderConfig(): HtmlRenderConfig;
70
70
  export declare function getUploadsConfig(): UploadsConfig;
package/dist/config.js CHANGED
@@ -67,8 +67,9 @@ function getApiBaseUrl() {
67
67
  }
68
68
  const DOCS_PREVIEW_ENV = "DMS_DOCS_PREVIEW";
69
69
  const DOCS_PREVIEW_ENV_ENABLED = "1";
70
- function isDocsPreviewEnabled() {
71
- return (globalConfig.docsPreview === true ||
70
+ function isDocsPreviewEnabled(dev = false) {
71
+ return (dev ||
72
+ globalConfig.docsPreview === true ||
72
73
  process.env[DOCS_PREVIEW_ENV] === DOCS_PREVIEW_ENV_ENABLED);
73
74
  }
74
75
  function getAuthConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TenantAccessGateInfo, TenantAccessResult } from "@antelopejs/interface-dms/tenant-access";
1
+ import type { TenantAccessDenial, TenantAccessGateInfo, TenantAccessResult } from "@antelopejs/interface-dms/tenant-access";
2
2
  export declare namespace internal {
3
3
  const RegisterTenantAccessGate: {
4
4
  register: (info: TenantAccessGateInfo) => void;
@@ -6,3 +6,4 @@ export declare namespace internal {
6
6
  };
7
7
  }
8
8
  export declare function CheckTenantAccess(userId: string | undefined, tenantId: string): Promise<TenantAccessResult>;
9
+ export declare function EvaluateTenantAccess(userId: string | undefined, tenantId: string): Promise<TenantAccessDenial[]>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.internal = void 0;
4
4
  exports.CheckTenantAccess = CheckTenantAccess;
5
+ exports.EvaluateTenantAccess = EvaluateTenantAccess;
5
6
  const gates = [];
6
7
  var internal;
7
8
  (function (internal) {
@@ -31,4 +32,14 @@ async function CheckTenantAccess(userId, tenantId) {
31
32
  }
32
33
  return { allowed: true };
33
34
  }
35
+ async function EvaluateTenantAccess(userId, tenantId) {
36
+ const denials = [];
37
+ const registeredGates = gates.slice();
38
+ for (const { id, gate } of registeredGates) {
39
+ const result = await gate(userId, tenantId);
40
+ if (!result.allowed)
41
+ denials.push({ gateId: id, code: result.code });
42
+ }
43
+ return denials;
44
+ }
34
45
  //# sourceMappingURL=tenant-access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-access.js","sourceRoot":"","sources":["../../../src/implementations/dms/tenant-access.ts"],"names":[],"mappings":";;;AAyBA,8CASC;AA7BD,MAAM,KAAK,GAA2B,EAAE,CAAC;AAEzC,IAAiB,QAAQ,CAgBxB;AAhBD,WAAiB,QAAQ;IACV,iCAAwB,GAAG;QACtC,QAAQ,EAAE,CAAC,IAA0B,EAAQ,EAAE;YAC7C,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,UAAU,EAAE,CAAC,IAA0B,EAAQ,EAAE;YAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,KAAK,IAAI,CAAC;gBAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC,EAhBgB,QAAQ,wBAAR,QAAQ,QAgBxB;AAEM,KAAK,UAAU,iBAAiB,CACrC,MAA0B,EAC1B,QAAgB;IAEhB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"tenant-access.js","sourceRoot":"","sources":["../../../src/implementations/dms/tenant-access.ts"],"names":[],"mappings":";;;AA0BA,8CASC;AAED,oDAYC;AA3CD,MAAM,KAAK,GAA2B,EAAE,CAAC;AAEzC,IAAiB,QAAQ,CAgBxB;AAhBD,WAAiB,QAAQ;IACV,iCAAwB,GAAG;QACtC,QAAQ,EAAE,CAAC,IAA0B,EAAQ,EAAE;YAC7C,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,UAAU,EAAE,CAAC,IAA0B,EAAQ,EAAE;YAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,KAAK,IAAI,CAAC;gBAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC,EAhBgB,QAAQ,wBAAR,QAAQ,QAgBxB;AAEM,KAAK,UAAU,iBAAiB,CACrC,MAA0B,EAC1B,QAAgB;IAEhB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,MAA0B,EAC1B,QAAgB;IAEhB,MAAM,OAAO,GAAyB,EAAE,CAAC;IAEzC,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACtC,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/index.js CHANGED
@@ -94,7 +94,8 @@ async function construct(config) {
94
94
  (0, workspace_notifications_1.registerWorkspaceNotifications)();
95
95
  await implementInterfaces();
96
96
  await registerDmsFrontend();
97
- if ((0, config_1.isDocsPreviewEnabled)()) {
97
+ const { dev } = await (0, runtime_1.GetRuntimeInfo)();
98
+ if ((0, config_1.isDocsPreviewEnabled)(dev)) {
98
99
  (0, preview_1.registerDocsPreviewPage)();
99
100
  }
100
101
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type RequestContext } from "@antelopejs/interface-api";
2
+ import type { ChartCardData } from "@antelopejs/interface-dms/base/query-response";
3
+ import type { KeyValueListItem } from "@antelopejs/interface-dms/base/key-value-list";
4
+ import type { Tone } from "@antelopejs/interface-dms/base/types/tone";
5
+ interface RequestFixture {
6
+ requestId: string;
7
+ method: string;
8
+ path: string;
9
+ status: number;
10
+ durationMs: number;
11
+ at: string;
12
+ statusTone: Tone;
13
+ durationTone: Tone;
14
+ }
15
+ export declare function registerPreviewFixtures(): {
16
+ new (...args: any[]): {
17
+ requests(context: RequestContext): {
18
+ results: RequestFixture[];
19
+ total: number;
20
+ };
21
+ workspace(): {
22
+ name: string;
23
+ email: string;
24
+ plan: string;
25
+ notifications: boolean;
26
+ };
27
+ sales(): ChartCardData;
28
+ channels(): ChartCardData;
29
+ customer(): {
30
+ id: string;
31
+ name: string;
32
+ };
33
+ customerFacts(): {
34
+ items: KeyValueListItem[];
35
+ };
36
+ alerts(): never[];
37
+ };
38
+ extend: <T extends import("@antelopejs/interface-api").ControllerClass>(this: T, location: string) => T;
39
+ location: string;
40
+ };
41
+ export {};
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.registerPreviewFixtures = registerPreviewFixtures;
16
+ const interface_api_1 = require("@antelopejs/interface-api");
17
+ const REQUESTS = [
18
+ {
19
+ requestId: "req-001",
20
+ method: "GET",
21
+ path: "/api/customers",
22
+ status: 200,
23
+ durationMs: 42,
24
+ at: "2026-01-12T10:00:00.000Z",
25
+ statusTone: "success",
26
+ durationTone: "neutral",
27
+ },
28
+ {
29
+ requestId: "req-002",
30
+ method: "POST",
31
+ path: "/api/orders",
32
+ status: 201,
33
+ durationMs: 180,
34
+ at: "2026-01-12T09:55:00.000Z",
35
+ statusTone: "success",
36
+ durationTone: "neutral",
37
+ },
38
+ {
39
+ requestId: "req-003",
40
+ method: "GET",
41
+ path: "/api/reports",
42
+ status: 500,
43
+ durationMs: 920,
44
+ at: "2026-01-12T09:50:00.000Z",
45
+ statusTone: "error",
46
+ durationTone: "warning",
47
+ },
48
+ {
49
+ requestId: "req-004",
50
+ method: "PATCH",
51
+ path: "/api/customers/acme",
52
+ status: 200,
53
+ durationMs: 85,
54
+ at: "2026-01-12T09:45:00.000Z",
55
+ statusTone: "success",
56
+ durationTone: "neutral",
57
+ },
58
+ {
59
+ requestId: "req-005",
60
+ method: "DELETE",
61
+ path: "/api/sessions/expired",
62
+ status: 204,
63
+ durationMs: 31,
64
+ at: "2026-01-12T09:40:00.000Z",
65
+ statusTone: "success",
66
+ durationTone: "neutral",
67
+ },
68
+ {
69
+ requestId: "req-006",
70
+ method: "GET",
71
+ path: "/api/orders/missing",
72
+ status: 404,
73
+ durationMs: 18,
74
+ at: "2026-01-12T09:35:00.000Z",
75
+ statusTone: "warning",
76
+ durationTone: "neutral",
77
+ },
78
+ {
79
+ requestId: "req-007",
80
+ method: "POST",
81
+ path: "/api/invoices",
82
+ status: 422,
83
+ durationMs: 63,
84
+ at: "2026-01-12T09:30:00.000Z",
85
+ statusTone: "warning",
86
+ durationTone: "neutral",
87
+ },
88
+ {
89
+ requestId: "req-008",
90
+ method: "GET",
91
+ path: "/api/channels",
92
+ status: 200,
93
+ durationMs: 120,
94
+ at: "2026-01-12T09:25:00.000Z",
95
+ statusTone: "success",
96
+ durationTone: "neutral",
97
+ },
98
+ {
99
+ requestId: "req-009",
100
+ method: "PUT",
101
+ path: "/api/workspace",
102
+ status: 200,
103
+ durationMs: 210,
104
+ at: "2026-01-12T09:20:00.000Z",
105
+ statusTone: "success",
106
+ durationTone: "neutral",
107
+ },
108
+ {
109
+ requestId: "req-010",
110
+ method: "GET",
111
+ path: "/api/customers/acme",
112
+ status: 304,
113
+ durationMs: 12,
114
+ at: "2026-01-12T09:15:00.000Z",
115
+ statusTone: "info",
116
+ durationTone: "neutral",
117
+ },
118
+ {
119
+ requestId: "req-011",
120
+ method: "POST",
121
+ path: "/api/reports",
122
+ status: 503,
123
+ durationMs: 1250,
124
+ at: "2026-01-12T09:10:00.000Z",
125
+ statusTone: "error",
126
+ durationTone: "warning",
127
+ },
128
+ {
129
+ requestId: "req-012",
130
+ method: "GET",
131
+ path: "/api/invoices",
132
+ status: 200,
133
+ durationMs: 75,
134
+ at: "2026-01-12T09:05:00.000Z",
135
+ statusTone: "success",
136
+ durationTone: "neutral",
137
+ },
138
+ ];
139
+ const SALES = {
140
+ value: 48210,
141
+ delta: 12.4,
142
+ series: [
143
+ {
144
+ name: "Revenue",
145
+ data: [
146
+ { x: "2026-01-05T00:00:00.000Z", y: 5800 },
147
+ { x: "2026-01-06T00:00:00.000Z", y: 6400 },
148
+ { x: "2026-01-07T00:00:00.000Z", y: 6100 },
149
+ { x: "2026-01-08T00:00:00.000Z", y: 7200 },
150
+ { x: "2026-01-09T00:00:00.000Z", y: 6850 },
151
+ { x: "2026-01-10T00:00:00.000Z", y: 7460 },
152
+ { x: "2026-01-11T00:00:00.000Z", y: 8400 },
153
+ ],
154
+ },
155
+ ],
156
+ };
157
+ const CHANNELS = {
158
+ value: 14600,
159
+ series: [
160
+ {
161
+ name: "Sessions",
162
+ data: [
163
+ { x: "Direct", label: "Direct", y: 4200 },
164
+ { x: "Email", label: "Email", y: 1800 },
165
+ { x: "Search", label: "Search", y: 6500 },
166
+ { x: "Social", label: "Social", y: 2100 },
167
+ ],
168
+ },
169
+ ],
170
+ };
171
+ const CUSTOMER_FACTS = [
172
+ { label: "Record", value: "r1", type: "mono" },
173
+ { label: "Name", value: "Acme Logistics SA" },
174
+ { label: "Status", value: "Active", type: "status", tone: "success" },
175
+ ];
176
+ const DEFAULT_PAGE_SIZE = 20;
177
+ const SORTABLE_FIELDS = [
178
+ "method",
179
+ "path",
180
+ "status",
181
+ "durationMs",
182
+ "at",
183
+ ];
184
+ function matchesColumn(value, filter) {
185
+ if (!filter)
186
+ return true;
187
+ const separator = filter.indexOf(":");
188
+ const mode = separator < 0 ? filter : filter.slice(0, separator);
189
+ const expected = filter.slice(separator + 1);
190
+ if (mode === "is")
191
+ return String(value) === expected;
192
+ if (mode === "is_not")
193
+ return String(value) !== expected;
194
+ if (mode === "is_empty")
195
+ return String(value) === "";
196
+ if (mode === "is_not_empty")
197
+ return String(value) !== "";
198
+ if (mode === "greater_than_or_equal_to")
199
+ return Number(value) >= Number(expected);
200
+ return true;
201
+ }
202
+ function listRequests(query) {
203
+ const search = query.get("search")?.trim().toLowerCase() ?? "";
204
+ const from = query.get("from");
205
+ const to = query.get("to");
206
+ const heldAt = query.get("liveHeldAt");
207
+ const rows = REQUESTS.filter((row) => `${row.method} ${row.path}`.toLowerCase().includes(search) &&
208
+ matchesColumn(row.method, query.get("filter_method")) &&
209
+ matchesColumn(row.status, query.get("filter_status")) &&
210
+ (!from || row.at >= from) &&
211
+ (!to || row.at <= to) &&
212
+ (!heldAt || row.at <= heldAt));
213
+ const key = SORTABLE_FIELDS.find((field) => field === query.get("sortKey"));
214
+ if (key) {
215
+ const direction = query.get("sortDirection") === "desc" ? -1 : 1;
216
+ rows.sort((a, b) => (a[key] < b[key] ? -1 : a[key] > b[key] ? 1 : 0) * direction);
217
+ }
218
+ const offset = Number(query.get("offset")) || 0;
219
+ const limit = Number(query.get("limit")) || DEFAULT_PAGE_SIZE;
220
+ return { results: rows.slice(offset, offset + limit), total: rows.length };
221
+ }
222
+ function registerPreviewFixtures() {
223
+ class PreviewFixturesController extends (0, interface_api_1.Controller)("/api/block-preview/fixtures") {
224
+ requests(context) {
225
+ return listRequests(context.url.searchParams);
226
+ }
227
+ workspace() {
228
+ return {
229
+ name: "Acme Inc.",
230
+ email: "billing@example.com",
231
+ plan: "business",
232
+ notifications: true,
233
+ };
234
+ }
235
+ sales() {
236
+ return SALES;
237
+ }
238
+ channels() {
239
+ return CHANNELS;
240
+ }
241
+ customer() {
242
+ return { id: "r1", name: "Acme Logistics SA" };
243
+ }
244
+ customerFacts() {
245
+ return { items: CUSTOMER_FACTS };
246
+ }
247
+ alerts() {
248
+ return [];
249
+ }
250
+ }
251
+ __decorate([
252
+ (0, interface_api_1.Get)("requests"),
253
+ __param(0, (0, interface_api_1.Context)()),
254
+ __metadata("design:type", Function),
255
+ __metadata("design:paramtypes", [Object]),
256
+ __metadata("design:returntype", void 0)
257
+ ], PreviewFixturesController.prototype, "requests", null);
258
+ __decorate([
259
+ (0, interface_api_1.Get)("workspace"),
260
+ __metadata("design:type", Function),
261
+ __metadata("design:paramtypes", []),
262
+ __metadata("design:returntype", void 0)
263
+ ], PreviewFixturesController.prototype, "workspace", null);
264
+ __decorate([
265
+ (0, interface_api_1.Get)("sales"),
266
+ __metadata("design:type", Function),
267
+ __metadata("design:paramtypes", []),
268
+ __metadata("design:returntype", void 0)
269
+ ], PreviewFixturesController.prototype, "sales", null);
270
+ __decorate([
271
+ (0, interface_api_1.Get)("channels"),
272
+ __metadata("design:type", Function),
273
+ __metadata("design:paramtypes", []),
274
+ __metadata("design:returntype", void 0)
275
+ ], PreviewFixturesController.prototype, "channels", null);
276
+ __decorate([
277
+ (0, interface_api_1.Get)("customer"),
278
+ __metadata("design:type", Function),
279
+ __metadata("design:paramtypes", []),
280
+ __metadata("design:returntype", void 0)
281
+ ], PreviewFixturesController.prototype, "customer", null);
282
+ __decorate([
283
+ (0, interface_api_1.Get)("customer/facts"),
284
+ __metadata("design:type", Function),
285
+ __metadata("design:paramtypes", []),
286
+ __metadata("design:returntype", void 0)
287
+ ], PreviewFixturesController.prototype, "customerFacts", null);
288
+ __decorate([
289
+ (0, interface_api_1.Get)("alerts"),
290
+ __metadata("design:type", Function),
291
+ __metadata("design:paramtypes", []),
292
+ __metadata("design:returntype", void 0)
293
+ ], PreviewFixturesController.prototype, "alerts", null);
294
+ return PreviewFixturesController;
295
+ }
296
+ //# sourceMappingURL=fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../../src/pages/public/preview/fixtures.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AA2OA,0DA8CC;AAzRD,6DAKmC;AAgBnC,MAAM,QAAQ,GAAqB;IACjC;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,EAAE;QACd,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,GAAG;QACf,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,GAAG;QACf,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,EAAE;QACd,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,EAAE;QACd,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,EAAE;QACd,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,EAAE;QACd,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,GAAG;QACf,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,GAAG;QACf,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,EAAE;QACd,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,SAAS;KACxB;IACD;QACE,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,EAAE;QACd,EAAE,EAAE,0BAA0B;QAC9B,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;CACF,CAAC;AAEF,MAAM,KAAK,GAAkB;IAC3B,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE;QACN;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE;gBACJ,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC1C,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC1C,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC1C,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC1C,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC1C,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,IAAI,EAAE;gBAC1C,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,IAAI,EAAE;aAC3C;SACF;KACF;CACF,CAAC;AAGF,MAAM,QAAQ,GAAkB;IAC9B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE;QACN;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE;gBACJ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE;gBACzC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE;gBACvC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE;gBACzC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE;aAC1C;SACF;KACF;CACF,CAAC;AAEF,MAAM,cAAc,GAAuB;IACzC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IAC9C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE;IAC7C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;CACtE,CAAC;AAEF,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,eAAe,GAAG;IACtB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,IAAI;CACI,CAAC;AAEX,SAAS,aAAa,CAAC,KAAsB,EAAE,MAAqB;IAClE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;IACrD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;IACzD,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrD,IAAI,IAAI,KAAK,cAAc;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACzD,IAAI,IAAI,KAAK,0BAA0B;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAsB;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1D,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACrD,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC;QACzB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QACrB,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,CAChC,CAAC;IACF,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CACP,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CACvE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,iBAAiB,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7E,CAAC;AAGD,SAAgB,uBAAuB;IAErC,MAAM,yBAA0B,SAAQ,IAAA,0BAAU,EAChD,6BAA6B,CAC9B;QAEC,QAAQ,CAAY,OAAuB;YACzC,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;QAGD,SAAS;YACP,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,UAAU;gBAChB,aAAa,EAAE,IAAI;aACpB,CAAC;QACJ,CAAC;QAGD,KAAK;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,QAAQ;YACN,OAAO,QAAQ,CAAC;QAClB,CAAC;QAGD,QAAQ;YACN,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;QACjD,CAAC;QAGD,aAAa;YACX,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QACnC,CAAC;QAGD,MAAM;YACJ,OAAO,EAAE,CAAC;QACZ,CAAC;KACF;IAtCC;QADC,IAAA,mBAAG,EAAC,UAAU,CAAC;QACN,WAAA,IAAA,uBAAO,GAAE,CAAA;;;;6DAElB;IAGD;QADC,IAAA,mBAAG,EAAC,WAAW,CAAC;;;;8DAQhB;IAGD;QADC,IAAA,mBAAG,EAAC,OAAO,CAAC;;;;0DAGZ;IAGD;QADC,IAAA,mBAAG,EAAC,UAAU,CAAC;;;;6DAGf;IAGD;QADC,IAAA,mBAAG,EAAC,UAAU,CAAC;;;;6DAGf;IAGD;QADC,IAAA,mBAAG,EAAC,gBAAgB,CAAC;;;;kEAGrB;IAGD;QADC,IAAA,mBAAG,EAAC,QAAQ,CAAC;;;;2DAGb;IAEH,OAAO,yBAAyB,CAAC;AACnC,CAAC"}
@@ -19,6 +19,7 @@ exports.registerDocsPreviewPage = registerDocsPreviewPage;
19
19
  const custom_1 = require("@antelopejs/interface-dms/base/custom");
20
20
  const page_1 = require("@antelopejs/interface-dms/page");
21
21
  const block_types_1 = require("./block-types");
22
+ const fixtures_1 = require("./fixtures");
22
23
  __exportStar(require("./block-types"), exports);
23
24
  const PREVIEW_LAYOUT = {
24
25
  componentName: "dms-preview-layout",
@@ -39,6 +40,7 @@ class DocsPreviewPage extends (0, page_1.PageController)("dms-preview", {
39
40
  }
40
41
  exports.DocsPreviewPage = DocsPreviewPage;
41
42
  function registerDocsPreviewPage() {
43
+ (0, fixtures_1.registerPreviewFixtures)();
42
44
  (0, page_1.RegisterPage)()(DocsPreviewPage);
43
45
  }
44
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pages/public/preview/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAwDA,0DAEC;AA1DD,kEAAwE;AACxE,yDAIwC;AACxC,+CAA8E;AAE9E,gDAA8B;AAG9B,MAAM,cAAc,GAAG;IACrB,aAAa,EAAE,oBAAoB;IACnC,OAAO,EAAE,EAAE;CACZ,CAAC;AAaF,MAAa,eAAgB,SAAQ,IAAA,qBAAc,EACjD,aAAa,EACb;IACE,WAAW,EAAE,yBAAyB;IACtC,OAAO,EAAE,aAAa;IACtB,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,oBAAa;IAGvB,IAAI,EAAE,EAAE;CACT,EACD,cAAc,CACf;IAIC,MAAM,CAAC,OAAO,GAAG,IAAA,wBAAe,EAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAClE,GAAuB,EAAE,CAAC,CAAC;QACzB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,IAAA,mCAAqB,GAAE;KACpC,CAAC,CACH,CAAC;;AAtBJ,0CAuBC;AAMD,SAAgB,uBAAuB;IACrC,IAAA,mBAAY,GAAE,CAAC,eAAe,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pages/public/preview/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAyDA,0DAGC;AA5DD,kEAAwE;AACxE,yDAIwC;AACxC,+CAA8E;AAC9E,yCAAqD;AAErD,gDAA8B;AAG9B,MAAM,cAAc,GAAG;IACrB,aAAa,EAAE,oBAAoB;IACnC,OAAO,EAAE,EAAE;CACZ,CAAC;AAaF,MAAa,eAAgB,SAAQ,IAAA,qBAAc,EACjD,aAAa,EACb;IACE,WAAW,EAAE,yBAAyB;IACtC,OAAO,EAAE,aAAa;IACtB,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,oBAAa;IAGvB,IAAI,EAAE,EAAE;CACT,EACD,cAAc,CACf;IAIC,MAAM,CAAC,OAAO,GAAG,IAAA,wBAAe,EAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAClE,GAAuB,EAAE,CAAC,CAAC;QACzB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,IAAA,mCAAqB,GAAE;KACpC,CAAC,CACH,CAAC;;AAtBJ,0CAuBC;AAMD,SAAgB,uBAAuB;IACrC,IAAA,kCAAuB,GAAE,CAAC;IAC1B,IAAA,mBAAY,GAAE,CAAC,eAAe,CAAC,CAAC;AAClC,CAAC"}
@@ -11,6 +11,7 @@ const db_1 = require("@antelopejs/interface-dms/db");
11
11
  const edit_1 = require("@antelopejs/interface-dms/invite-extensions/internal/edit");
12
12
  const request_tenant_1 = require("@antelopejs/interface-dms/request-tenant");
13
13
  const base_1 = require("@antelopejs/interface-dms/base");
14
+ const tenant_lifecycle_1 = require("@antelopejs/interface-dms/tenant-lifecycle");
14
15
  const HTTP_NOT_FOUND = 404;
15
16
  const HTTP_CONFLICT = 409;
16
17
  async function loadPendingInvite(tenantId, inviteId) {
@@ -32,6 +33,9 @@ exports.inviteGetRoute = {
32
33
  },
33
34
  };
34
35
  async function editPendingInvite(tenantId, inviteId, body, writeRow) {
36
+ return (0, tenant_lifecycle_1.runTenantLifecycleOperation)(tenantId, () => editAdmittedPendingInvite(tenantId, inviteId, body, writeRow));
37
+ }
38
+ async function editAdmittedPendingInvite(tenantId, inviteId, body, writeRow) {
35
39
  const edits = (0, edit_1.CollectInviteExtensionEdits)(body);
36
40
  const invite = await loadPendingInvite(tenantId, inviteId);
37
41
  await writeRow();
@@ -49,8 +53,14 @@ async function editPendingInvite(tenantId, inviteId, body, writeRow) {
49
53
  const editInviteWithExtensions = {
50
54
  ...interface_data_api_1.DefaultRoutes.Edit,
51
55
  func: function (ctx, params, body) {
52
- return editPendingInvite((0, request_tenant_1.getRequestTenantId)(ctx), String(params.id), components_1.Validation.ParseBody(body), () => interface_data_api_1.DefaultRoutes.Edit.func.call(this, ctx, params, body));
56
+ return editAdmittedPendingInvite((0, request_tenant_1.getRequestTenantId)(ctx), String(params.id), components_1.Validation.ParseBody(body), () => interface_data_api_1.DefaultRoutes.Edit.func.call(this, ctx, params, body));
57
+ },
58
+ };
59
+ const guardedInviteEditRoute = base_1.TableViewRoutes.EditWith(editInviteWithExtensions);
60
+ exports.inviteEditRoute = {
61
+ ...guardedInviteEditRoute,
62
+ func(...args) {
63
+ return (0, tenant_lifecycle_1.runTenantLifecycleOperation)((0, request_tenant_1.getRequestTenantId)(args[0]), () => guardedInviteEditRoute.func.apply(this, args));
53
64
  },
54
65
  };
55
- exports.inviteEditRoute = base_1.TableViewRoutes.EditWith(editInviteWithExtensions);
56
66
  //# sourceMappingURL=invite-extension-routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invite-extension-routes.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/invite-extension-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invite-extension-routes.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/invite-extension-routes.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ const interface_database_decorators_1 = require("@antelopejs/interface-database-
12
12
  const db_1 = require("@antelopejs/interface-dms/db");
13
13
  const tenant_ownership_1 = require("@antelopejs/interface-dms/tenant-ownership");
14
14
  const db_2 = require("@antelopejs/interface-dms/auth/db");
15
+ const hooks_1 = require("@antelopejs/interface-dms/hooks");
16
+ const tenant_lifecycle_1 = require("@antelopejs/interface-dms/tenant-lifecycle");
15
17
  const HTTP_NOT_FOUND = 404;
16
18
  const HTTP_CONFLICT = 409;
17
19
  const MEMBER_NOT_FOUND = "$page.settings.members.error.user_not_found";
@@ -28,6 +30,12 @@ async function assertNotLastTenantOwner(tenantId, current) {
28
30
  (0, interface_api_util_1.assert)(remaining > 0, HTTP_CONFLICT, "$page.settings.members.error.last_owner");
29
31
  }
30
32
  async function prepareOwnerChange(tenantId, current, requested) {
33
+ await (0, hooks_1.ExecuteHooks)(hooks_1.Hook.MEMBER_BEING_CHANGED, {
34
+ tenantId,
35
+ userId: current.userId,
36
+ isTenantOwner: requested ?? current.isTenantOwner === true,
37
+ previousIsTenantOwner: current.isTenantOwner === true,
38
+ });
31
39
  const change = detectOwnerChange(current, requested);
32
40
  if (change === null)
33
41
  return;
@@ -41,12 +49,14 @@ async function requireMember(tenantId, memberId) {
41
49
  return member;
42
50
  }
43
51
  async function setMemberOwnership(tenantId, memberId, isTenantOwner) {
44
- const member = await requireMember(tenantId, memberId);
45
- const change = detectOwnerChange({ isTenantOwner: member.isTenantOwner === true }, isTenantOwner);
46
- await prepareOwnerChange(tenantId, member, isTenantOwner);
47
- member.isTenantOwner = isTenantOwner;
48
- await (0, interface_database_decorators_1.GetModel)(db_1.TenantMemberModel, tenantId).update(member);
49
- return { member, change };
52
+ return (0, tenant_lifecycle_1.runTenantLifecycleOperation)(tenantId, async () => {
53
+ const member = await requireMember(tenantId, memberId);
54
+ const change = detectOwnerChange({ isTenantOwner: member.isTenantOwner === true }, isTenantOwner);
55
+ await prepareOwnerChange(tenantId, member, isTenantOwner);
56
+ member.isTenantOwner = isTenantOwner;
57
+ await (0, interface_database_decorators_1.GetModel)(db_1.TenantMemberModel, tenantId).update(member);
58
+ return { member, change };
59
+ });
50
60
  }
51
61
  async function roleNames(tenantId, roleIds) {
52
62
  if (roleIds.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"member-management.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/member-management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"member-management.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/member-management.ts"],"names":[],"mappings":"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"}
@@ -1,98 +1,102 @@
1
+ import { computed, effectScope } from "vue";
2
+
1
3
  const PERMISSIONS_REFRESH_MS = 300_000;
2
4
  const PERMISSIONS_ENDPOINT = "/dms/permissions";
3
5
  const WILDCARD_PERMISSION = "*";
4
6
 
5
- interface PermissionsState {
6
- permissions: Ref<Set<string>>;
7
- isLoaded: Ref<boolean>;
8
- lastFetchTime: Ref<number>;
9
- fetchGeneration: Ref<number>;
10
- }
11
-
12
- // The set a server render loads (the `auth` middleware preloads it before the
13
- // page renders) is the one the page renders with: the browser starts from it
14
- // rather than asking again, and its age keeps counting from the server's load.
15
- // The generation only guards the runs in flight of one side.
16
- const TRANSFERRED = { transfer: true };
7
+ /**
8
+ * The async data key of the permission set, in the account and workspace's
9
+ * scope like every key: a switch of either drops the set. The set a server
10
+ * render loads (the `auth` middleware's, preloaded as the app starts) is the
11
+ * one the page renders with, and the page hands it to the browser, which
12
+ * starts from it rather than asking again.
13
+ */
14
+ const PERMISSIONS_KEY = "dms-permissions";
17
15
 
18
- function usePermissionsState(): PermissionsState {
19
- return {
20
- permissions: useDmsState<Set<string>>(
21
- "dms-user-permissions",
22
- () => new Set(),
23
- TRANSFERRED,
24
- ),
25
- isLoaded: useDmsState<boolean>(
26
- "dms-permissions-loaded",
27
- () => false,
28
- TRANSFERRED,
29
- ),
30
- lastFetchTime: useDmsState<number>(
31
- "dms-permissions-lastFetch",
32
- () => 0,
33
- TRANSFERRED,
34
- ),
35
- fetchGeneration: useDmsState<number>("dms-permissions-gen", () => 0),
36
- };
16
+ /** The permission set, and when it was read: its age counts from there. */
17
+ interface LoadedPermissions {
18
+ ids: string[];
19
+ loadedAt: number;
37
20
  }
38
21
 
39
- function createFetchPermissions(state: PermissionsState) {
40
- const runFetch = async () => {
41
- const generation = state.fetchGeneration.value;
42
- const { $authFetch } = useAuthFetch();
43
- const result = await $authFetch<string[]>(PERMISSIONS_ENDPOINT);
44
- if (state.fetchGeneration.value !== generation) return;
45
- state.permissions.value = new Set(result);
46
- state.isLoaded.value = true;
47
- state.lastFetchTime.value = Date.now();
48
- };
49
-
50
- // A refetch asked while one is in flight gets its own pass instead of the
51
- // older response, so an invalidation is never swallowed. Scoped to the DMS
52
- // app, so concurrent server-rendered requests never share a pass.
53
- const deduper = useTrailingDeduper("permissions");
54
- const fetchPermissions = (): Promise<void> => deduper.run(runFetch);
55
- // A caller that only needs a set has nothing to invalidate: it joins the
56
- // load in flight instead of queueing a second one.
57
- const loadPermissions = async (): Promise<void> => {
58
- if (state.isLoaded.value) return;
59
- await deduper.join(runFetch);
60
- // The run it joined was started before a `clear()` (another account):
61
- // its answer was dropped, and this caller still needs one.
62
- if (!state.isLoaded.value) await deduper.join(runFetch);
63
- };
64
- return { fetchPermissions, loadPermissions };
22
+ /**
23
+ * The set's async data. Only the calls below start a read: a component that
24
+ * shows the set reads it through `useDmsData`, which never reads it again on
25
+ * a mount. Out of the page's refreshes: it has triggers of its own.
26
+ */
27
+ function permissionsData(immediate = true) {
28
+ return useApiData<LoadedPermissions>(
29
+ PERMISSIONS_KEY,
30
+ async ({ $authFetch, signal }) => ({
31
+ ids: await $authFetch<string[]>(PERMISSIONS_ENDPOINT, { signal }),
32
+ loadedAt: Date.now(),
33
+ }),
34
+ { immediate, refreshOnPageRefresh: false },
35
+ );
65
36
  }
66
37
 
67
38
  export function usePermissions() {
68
- const state = usePermissionsState();
69
- const { fetchPermissions, loadPermissions } = createFetchPermissions(state);
39
+ const loaded = useDmsData<LoadedPermissions>(PERMISSIONS_KEY).data;
40
+ const permissions = computed(() => new Set(loaded.value?.ids ?? []));
41
+ const isLoaded = computed(() => loaded.value != null);
70
42
 
71
- async function refreshIfStale() {
72
- const elapsed = Date.now() - state.lastFetchTime.value;
73
- if (elapsed < PERMISSIONS_REFRESH_MS) {
74
- return;
43
+ // A caller that only needs a set joins the load in flight instead of
44
+ // starting another: one request per page however many ask.
45
+ async function loadPermissions(): Promise<void> {
46
+ // The load it joined may be cleared meanwhile (another account): its
47
+ // answer is dropped, and this caller still needs one.
48
+ for (let attempt = 0; attempt < 2 && !loaded.value; attempt++) {
49
+ const result = await permissionsData();
50
+ if (!result.data.value && result.error.value) throw result.error.value;
75
51
  }
52
+ }
53
+
54
+ // A refresh (the set changed on the backend) asked while a read is in
55
+ // flight replaces it rather than taking its older answer, so an
56
+ // invalidation is never swallowed. A failed one keeps the last set, and
57
+ // rejects so the caller knows it is stale.
58
+ async function fetchPermissions(): Promise<void> {
59
+ if (loaded.value) await refreshLoadedSet();
60
+ else await refreshDmsData(PERMISSIONS_KEY);
61
+ await loadPermissions();
62
+ }
63
+
64
+ // `refreshDmsData` does not say whether the read failed: the set's own
65
+ // async data does. Its binding lives in a scope stopped once the read
66
+ // settled, so refreshes do not pile bindings up; the load that brought
67
+ // the set keeps the key bound, so stopping it never aborts nor evicts.
68
+ async function refreshLoadedSet(): Promise<void> {
69
+ const scope = effectScope(true);
70
+ const data = scope.run(() => permissionsData(false))!;
71
+ try {
72
+ await data.refresh();
73
+ } finally {
74
+ scope.stop();
75
+ }
76
+ // A later refresh that replaced this one reports its own failure.
77
+ if (data.status.value === "error") throw data.error.value;
78
+ }
79
+
80
+ async function refreshIfStale() {
81
+ const set = loaded.value;
82
+ if (set && Date.now() - set.loadedAt < PERMISSIONS_REFRESH_MS) return;
76
83
  await fetchPermissions();
77
84
  }
78
85
 
79
86
  function hasPermission(permissionId: string): boolean {
80
- if (state.permissions.value.has(WILDCARD_PERMISSION)) {
81
- return true;
82
- }
83
- return state.permissions.value.has(permissionId);
87
+ const set = permissions.value;
88
+ return set.has(WILDCARD_PERMISSION) || set.has(permissionId);
84
89
  }
85
90
 
91
+ // Empties the set and drops the answer of a read in flight, so a logout or
92
+ // an account switch is never overwritten by the previous account's set.
86
93
  function clear() {
87
- state.fetchGeneration.value++;
88
- state.permissions.value = new Set();
89
- state.isLoaded.value = false;
90
- state.lastFetchTime.value = 0;
94
+ permissionsData(false).clear();
91
95
  }
92
96
 
93
97
  return {
94
- permissions: state.permissions,
95
- isLoaded: state.isLoaded,
98
+ permissions,
99
+ isLoaded,
96
100
  fetchPermissions,
97
101
  loadPermissions,
98
102
  refreshIfStale,
@@ -7,37 +7,41 @@ interface OnboardingInfoResponse {
7
7
  }
8
8
 
9
9
  /**
10
- * Transferred: the global middleware reads it while a server renders the
11
- * page, and the browser's run of the middleware then finds it instead of
12
- * asking again. It holds nothing private.
10
+ * The async data key of the onboarding status. The global middleware reads
11
+ * it while a server renders a page, and the page hands it to the browser,
12
+ * whose run of the middleware then finds it instead of asking again. It
13
+ * holds nothing private.
13
14
  */
14
- function useOnboardingCache() {
15
- return useDmsState<OnboardingInfo | null>("dms-onboarding-info", () => null, {
16
- transfer: true,
17
- });
18
- }
15
+ const ONBOARDING_KEY = "dms-onboarding";
19
16
 
20
17
  export const useOnboarding = async (): Promise<OnboardingInfo> => {
21
- const cache = useOnboardingCache();
22
-
23
- const known = cache.value;
18
+ const known = useDmsData<OnboardingInfo>(ONBOARDING_KEY).data.value;
24
19
  if (known) return known;
25
20
 
26
- const { $authFetch } = useAuthFetch();
27
-
28
21
  // One request per app however many callers ask before it answers: the
29
- // preload started with the app and the `onboarding` middleware share it.
30
- await useTrailingDeduper("onboarding").join(async () => {
31
- const response = await $authFetch<OnboardingInfoResponse>(
32
- "/api/onboarding/informations",
33
- { method: "GET" },
34
- );
35
- cache.value = { hasOnboarded: response.has_onboarded };
36
- });
37
- return cache.value as OnboardingInfo;
22
+ // preload started with the app and the `onboarding` middleware share the
23
+ // key. Its own triggers only: the status changes once, when the first
24
+ // administrator registers (`setOnboardingComplete`).
25
+ const status = await useApiData<OnboardingInfo>(
26
+ ONBOARDING_KEY,
27
+ async ({ $authFetch, signal }) => {
28
+ const response = await $authFetch<OnboardingInfoResponse>(
29
+ "/api/onboarding/informations",
30
+ { method: "GET", signal },
31
+ );
32
+ return { hasOnboarded: response.has_onboarded };
33
+ },
34
+ { refreshOnPageRefresh: false },
35
+ );
36
+ // A failed read leaves the status unknown: the middleware lets the
37
+ // navigation through, and the next one asks again.
38
+ if (!status.data.value) throw status.error.value;
39
+ return status.data.value;
38
40
  };
39
41
 
40
42
  /** Release the cached onboarding guard after the backend creates the admin. */
41
43
  export const setOnboardingComplete = () => {
42
- useOnboardingCache().value = { hasOnboarded: true };
44
+ useDmsData<OnboardingInfo>(ONBOARDING_KEY).data.value = {
45
+ hasOnboarded: true,
46
+ };
43
47
  };
@@ -356,6 +356,19 @@ function readsRouteSource(options: Record<string, unknown>): boolean {
356
356
  return isRecord(source) && typeof source.fetchUrl === "string";
357
357
  }
358
358
 
359
+ /** Serialized resource fields may read the preview's immutable demo record. */
360
+ function readsFixtureForm(
361
+ blockType: PreviewBlockType,
362
+ options: Record<string, unknown>,
363
+ ): boolean {
364
+ return (
365
+ blockType.componentName === "dms-form" &&
366
+ options.fetchUrl === "/api/block-preview/fixtures/workspace" &&
367
+ Array.isArray(options.fields) &&
368
+ !options.submitUrl
369
+ );
370
+ }
371
+
359
372
  function issueFor(
360
373
  node: PreviewNode,
361
374
  match: MatchedBlockType | undefined,
@@ -367,7 +380,11 @@ function issueFor(
367
380
  name: node.type ?? node.componentName ?? "",
368
381
  };
369
382
  }
370
- if (match.blockType.needsController && !readsRouteSource(options)) {
383
+ if (
384
+ match.blockType.needsController &&
385
+ !readsRouteSource(options) &&
386
+ !readsFixtureForm(match.blockType, options)
387
+ ) {
371
388
  return { key: "needs_backend", name: match.name };
372
389
  }
373
390
  const refused = findRefusedOption(options);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antelopejs/dms",
3
- "version": "0.9.4",
3
+ "version": "0.9.6",
4
4
  "description": "The AntelopeJS dashboard management system: admin dashboards declared in TypeScript, with auth and tenancy, data management, file uploads, notifications and realtime.",
5
5
  "keywords": [
6
6
  "antelopejs",
@@ -60,7 +60,7 @@
60
60
  "@antelopejs/interface-data-api": ">=0.2.2 <1.0.0",
61
61
  "@antelopejs/interface-database": ">=0.1.10 <1.0.0",
62
62
  "@antelopejs/interface-database-decorators": ">=0.1.9 <1.0.0",
63
- "@antelopejs/interface-dms": ">=0.7.2 <0.8.0",
63
+ "@antelopejs/interface-dms": ">=0.7.4 <0.8.0",
64
64
  "@antelopejs/interface-email": ">=0.0.6 <1.0.0",
65
65
  "@antelopejs/interface-file-storage": ">=0.1.4 <1.0.0",
66
66
  "archiver": "^7.0.1",