@antelopejs/dms 0.14.0 → 0.15.1

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 (86) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +1 -1
  3. package/bin/control/journey.mjs +5 -0
  4. package/bin/control/session.mjs +1 -0
  5. package/bin/control/stack.mjs +1 -0
  6. package/dist/config/internal/state.d.ts +7 -0
  7. package/dist/config/internal/state.js +9 -0
  8. package/dist/config/internal/state.js.map +1 -1
  9. package/dist/config/startup-config.d.ts +1 -0
  10. package/dist/config/startup-config.js +11 -0
  11. package/dist/config/startup-config.js.map +1 -1
  12. package/dist/db/index.d.ts +1 -0
  13. package/dist/db/index.js +1 -0
  14. package/dist/db/index.js.map +1 -1
  15. package/dist/db/models/index.d.ts +1 -0
  16. package/dist/db/models/index.js +1 -0
  17. package/dist/db/models/index.js.map +1 -1
  18. package/dist/db/models/setupToken.model.d.ts +29 -0
  19. package/dist/db/models/setupToken.model.js +62 -0
  20. package/dist/db/models/setupToken.model.js.map +1 -0
  21. package/dist/db/setup-token.d.ts +2 -0
  22. package/dist/db/setup-token.js +28 -0
  23. package/dist/db/setup-token.js.map +1 -0
  24. package/dist/db/tables/index.d.ts +1 -0
  25. package/dist/db/tables/index.js +1 -0
  26. package/dist/db/tables/index.js.map +1 -1
  27. package/dist/db/tables/setupToken.table.d.ts +7 -0
  28. package/dist/db/tables/setupToken.table.js +34 -0
  29. package/dist/db/tables/setupToken.table.js.map +1 -0
  30. package/dist/implementations/dms/page/payloads.js +6 -10
  31. package/dist/implementations/dms/page/payloads.js.map +1 -1
  32. package/dist/implementations/dms/page/public-layout.d.ts +2 -0
  33. package/dist/implementations/dms/page/public-layout.js +45 -0
  34. package/dist/implementations/dms/page/public-layout.js.map +1 -0
  35. package/dist/index.d.ts +0 -1
  36. package/dist/index.js +6 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/pages/settings/users/current-password.js +1 -1
  39. package/dist/pages/settings/users/current-password.js.map +1 -1
  40. package/dist/routes/auth/login.d.ts +1 -1
  41. package/dist/routes/auth/login.js +7 -2
  42. package/dist/routes/auth/login.js.map +1 -1
  43. package/dist/routes/auth/password-hash-upgrade.d.ts +2 -0
  44. package/dist/routes/auth/password-hash-upgrade.js +22 -0
  45. package/dist/routes/auth/password-hash-upgrade.js.map +1 -0
  46. package/dist/routes/authentication.d.ts +2 -0
  47. package/dist/routes/authentication.js +2 -0
  48. package/dist/routes/authentication.js.map +1 -1
  49. package/dist/routes/onboarding.d.ts +3 -1
  50. package/dist/routes/onboarding.js +20 -3
  51. package/dist/routes/onboarding.js.map +1 -1
  52. package/dist/utils/ensure-default-tenant.d.ts +2 -1
  53. package/dist/utils/ensure-default-tenant.js +126 -8
  54. package/dist/utils/ensure-default-tenant.js.map +1 -1
  55. package/dist/validation/onboarding/register-admin.schema.d.ts +5 -0
  56. package/dist/validation/onboarding/register-admin.schema.js +3 -0
  57. package/dist/validation/onboarding/register-admin.schema.js.map +1 -1
  58. package/frontend-vue/layers/dms-core/app/utils/formatter.ts +15 -1
  59. package/frontend-vue/layers/dms-core/i18n/locales/core-en-GB.json +1 -0
  60. package/frontend-vue/layers/dms-core/i18n/locales/core-fr-FR.json +1 -0
  61. package/frontend-vue/layers/dms-core/shared/types/app-config.ts +5 -0
  62. package/frontend-vue/layers/dms-layout/app/app.config.ts +1 -0
  63. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardSidebar.vue +9 -9
  64. package/frontend-vue/layers/dms-layout/app/components/layout/AppLogo.vue +1 -0
  65. package/frontend-vue/layers/dms-layout/app/composables/page/useInstalledModules.ts +78 -0
  66. package/frontend-vue/layers/dms-layout/app/custom-pages/modules.vue +5 -24
  67. package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +2 -1
  68. package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +2 -1
  69. package/frontend-vue/layers/dms-onboarding/app/components/onboarding/steps/register.vue +21 -1
  70. package/frontend-vue/layers/dms-onboarding/app/custom-pages/onboarding.vue +14 -0
  71. package/frontend-vue/layers/dms-onboarding/i18n/locales/onboarding-en-GB.json +2 -0
  72. package/frontend-vue/layers/dms-onboarding/i18n/locales/onboarding-fr-FR.json +2 -0
  73. package/frontend-vue/layers/dms-ui/app/build/composables/blocks/blockDataState.ts +86 -0
  74. package/frontend-vue/layers/dms-ui/app/build/composables/chart/apexAxes.ts +22 -3
  75. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/tableViewCounts.ts +30 -11
  76. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/tableViewTabs.ts +2 -2
  77. package/frontend-vue/layers/dms-ui/app/components/RecursiveComponent.vue +6 -0
  78. package/frontend-vue/layers/dms-ui/app/components/chart/Chart.vue +17 -1
  79. package/frontend-vue/layers/dms-ui/app/components/chart/ChartCard.vue +22 -2
  80. package/frontend-vue/layers/dms-ui/app/components/kpi/KpiCard.vue +14 -0
  81. package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +14 -1
  82. package/frontend-vue/layers/dms-ui/app/components/top-list/TopListCard.vue +17 -1
  83. package/frontend-vue/layers/dms-ui/app/composables/chart/apexCategoryLabels.ts +12 -10
  84. package/frontend-vue/layers/dms-ui/app/composables/chart/useApexChart.ts +11 -2
  85. package/frontend-vue/layers/dms-ui/app/entries/composables/blocks/blockDataState.ts +1 -0
  86. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,55 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.15.1
4
+
5
+ [compare changes](https://github.com/AntelopeJS/dms/compare/v0.15.0...v0.15.1)
6
+
7
+ ### 🔥 Performance
8
+
9
+ - **page:** Send anonymous visitors only the public pages of the site layout ([#675](https://github.com/AntelopeJS/dms/pull/675))
10
+
11
+ ### 🩹 Fixes
12
+
13
+ - **auth:** Upgrade an outdated password hash on sign-in ([#691](https://github.com/AntelopeJS/dms/pull/691))
14
+ - **dashboard:** Name the brand logo for screen readers ([#652](https://github.com/AntelopeJS/dms/pull/652))
15
+ - **onboarding:** Require a setup token to register the first owner ([#654](https://github.com/AntelopeJS/dms/pull/654))
16
+ - **tenants:** Elect one replica to provision the default tenant through a renewed lease ([#657](https://github.com/AntelopeJS/dms/pull/657))
17
+ - **layout:** Count the sidebar's installed modules like the Modules page ([#666](https://github.com/AntelopeJS/dms/pull/666))
18
+
19
+ ### 📖 Documentation
20
+
21
+ - **github:** Send questions and ideas to Discord ([#672](https://github.com/AntelopeJS/dms/pull/672))
22
+
23
+ ### 🏡 Chore
24
+
25
+ - **release:** @antelopejs/interface-dms v0.10.4 ([3c856c69](https://github.com/AntelopeJS/dms/commit/3c856c69))
26
+
27
+ ### ❤️ Contributors
28
+
29
+ - Antony Rizzitelli ([@Upd4ting](http://github.com/Upd4ting))
30
+
31
+ ## v0.15.0
32
+
33
+ [compare changes](https://github.com/AntelopeJS/dms/compare/v0.14.0...v0.15.0)
34
+
35
+ ### 🚀 Enhancements
36
+
37
+ - **dms-ui:** State the data state of each data block on its root element ([#585](https://github.com/AntelopeJS/dms/pull/585))
38
+
39
+ ### 🩹 Fixes
40
+
41
+ - **table-view:** Currency on prices, settled counters, no add without a new route ([#611](https://github.com/AntelopeJS/dms/pull/611))
42
+ - **interface-dms:** Name a bucketed series' periods for a person, 202608 as Aug 2026 ([#617](https://github.com/AntelopeJS/dms/pull/617))
43
+ - **chart:** Thin the category x-axis labels of a long series so they never overlap ([#626](https://github.com/AntelopeJS/dms/pull/626))
44
+
45
+ ### 🏡 Chore
46
+
47
+ - **release:** @antelopejs/interface-dms v0.10.3 ([53af1aad](https://github.com/AntelopeJS/dms/commit/53af1aad))
48
+
49
+ ### ❤️ Contributors
50
+
51
+ - Antony Rizzitelli ([@Upd4ting](http://github.com/Upd4ting))
52
+
3
53
  ## v0.14.0
4
54
 
5
55
  [compare changes](https://github.com/AntelopeJS/dms/compare/v0.13.1...v0.14.0)
package/README.md CHANGED
@@ -59,7 +59,7 @@ pnpm dev # backend on http://localhost:5010
59
59
  pnpm frontend:dev # dashboard on http://localhost:3001, in a second terminal
60
60
  ```
61
61
 
62
- Open `http://localhost:3001` and create the first administrator. A page is a class whose static fields are blocks:
62
+ Open the address the backend logs after `No owner exists yet` and create the first administrator. A page is a class whose static fields are blocks:
63
63
 
64
64
  ```ts
65
65
  import { PageController, RegisterPage, pagesCategory } from "@antelopejs/interface-dms/page";
@@ -193,6 +193,11 @@ export class JourneyContext {
193
193
  return adminCredentials(this.state);
194
194
  }
195
195
 
196
+ /** The setup token the run's backend accepts for the first registration (`DMS_SETUP_TOKEN`). */
197
+ setupToken() {
198
+ return this.state.secrets.DMS_SETUP_TOKEN;
199
+ }
200
+
196
201
  /** Creates the administrator through `POST /api/onboarding/register`, then signs it in. */
197
202
  onboard(options = {}) {
198
203
  return onboard(this.state, options);
@@ -168,6 +168,7 @@ export async function onboard(state, options) {
168
168
  method: "POST",
169
169
  body: {
170
170
  ...admin,
171
+ setupToken: state.secrets.DMS_SETUP_TOKEN,
171
172
  platformName: options.platformName ?? `Verify ${state.id}`,
172
173
  },
173
174
  },
@@ -42,6 +42,7 @@ const SECRET_NAMES = [
42
42
  "DMS_BOOTSTRAP_SECRET",
43
43
  "DMS_HTML_RENDER_SECRET",
44
44
  "DMS_SESSION_SECRET",
45
+ "DMS_SETUP_TOKEN",
45
46
  ];
46
47
  const DROPPED_PREFIXES = ["ANTELOPEJS_", "npm_", "PNPM_", "DMS_", "MONGO_"];
47
48
 
@@ -48,6 +48,11 @@ export interface LoginPrefillConfig {
48
48
  email: string;
49
49
  password: string;
50
50
  }
51
+ export interface ProvisioningLeaseConfig {
52
+ renewEveryMs: number;
53
+ staleAfterMs: number;
54
+ pollEveryMs: number;
55
+ }
51
56
  export interface Config {
52
57
  auth?: AuthConfig;
53
58
  htmlRender?: HtmlRenderConfig;
@@ -61,12 +66,14 @@ export interface Config {
61
66
  frontend?: FrontendConfig;
62
67
  store?: StoreConfig;
63
68
  docsPreview?: boolean;
69
+ provisioningLease?: Partial<ProvisioningLeaseConfig>;
64
70
  }
65
71
  export declare const DEFAULT_ACCESS_TOKEN_LIFETIME = 3600000;
66
72
  export declare const DEFAULT_MAX_UPLOAD_SIZE: number;
67
73
  export declare const DEFAULT_CLIENT_BASE_URL = "http://localhost:3001";
68
74
  export declare const DEFAULT_API_BASE_URL = "http://127.0.0.1:5010";
69
75
  export declare function getConfig(): Config;
76
+ export declare function getProvisioningLeaseConfig(): ProvisioningLeaseConfig;
70
77
  export declare function setDevClientBaseUrl(url: string): void;
71
78
  export declare function getClientBaseUrl(): string | undefined;
72
79
  export declare function setDevApiBaseUrl(url: string | undefined): void;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_API_BASE_URL = exports.DEFAULT_CLIENT_BASE_URL = exports.DEFAULT_MAX_UPLOAD_SIZE = exports.DEFAULT_ACCESS_TOKEN_LIFETIME = void 0;
4
4
  exports.getConfig = getConfig;
5
+ exports.getProvisioningLeaseConfig = getProvisioningLeaseConfig;
5
6
  exports.setDevClientBaseUrl = setDevClientBaseUrl;
6
7
  exports.getClientBaseUrl = getClientBaseUrl;
7
8
  exports.setDevApiBaseUrl = setDevApiBaseUrl;
@@ -54,6 +55,14 @@ let devApiBaseUrl;
54
55
  function getConfig() {
55
56
  return globalConfig;
56
57
  }
58
+ const DEFAULT_PROVISIONING_LEASE = {
59
+ renewEveryMs: 10 * time_1.MILLISECONDS_PER_SECOND,
60
+ staleAfterMs: time_1.MILLISECONDS_PER_MINUTE,
61
+ pollEveryMs: 5 * time_1.MILLISECONDS_PER_SECOND,
62
+ };
63
+ function getProvisioningLeaseConfig() {
64
+ return { ...DEFAULT_PROVISIONING_LEASE, ...globalConfig.provisioningLease };
65
+ }
57
66
  function setDevClientBaseUrl(url) {
58
67
  devClientBaseUrl = url;
59
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/config/internal/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/config/internal/state.ts"],"names":[],"mappings":";;;AAsRA,8BAEC;AAQD,gEAEC;AAED,kDAEC;AAED,4CAEC;AAGD,4CAEC;AAED,sCAEC;AAMD,oDAMC;AAED,sCAEC;AAED,kDAEC;AAED,4CAEC;AAED,8CAEC;AAED,wCAEC;AAMD,kCAkBC;AA1WD,+BAA4B;AAE5B,wEAKuD;AA8NvD,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAC1B,QAAA,6BAA6B,GAAG,4BAAqB,CAAC;AAEnE,IAAI,gBAAgB,GAAe;IACjC,SAAS,EAAE,EAAE;IACb,4BAA4B,EAAE,2BAAoB;IAClD,4BAA4B,EAAE,2BAAoB;IAClD,mBAAmB,EAAE,qCAA6B;IAClD,oBAAoB,EAAE,2BAA2B,GAAG,2BAAoB;IACxE,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAEF,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,IAAI,sBAAsB,GAAqB;IAC7C,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAClB,8BAA8B,GAAG,8BAAuB;IAC1D,cAAc,EAAE,uCAAuC;CACxD,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAC5B,QAAA,uBAAuB,GAClC,4BAA4B,GAAG,qBAAqB,GAAG,iBAAiB,CAAC;AAE3E,IAAI,mBAAmB,GAAkB;IACvC,OAAO,EAAE,+BAAuB;IAChC,gBAAgB,EAAE,EAAE;CACrB,CAAC;AAEF,IAAI,oBAAoB,GAAmB;IACzC,gBAAgB,EAAE,MAAM;CACzB,CAAC;AAEW,QAAA,uBAAuB,GAAG,uBAAuB,CAAC;AAClD,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAE5D,IAAI,YAAY,GAAW;IACzB,aAAa,EAAE,+BAAuB;IACtC,UAAU,EAAE,4BAAoB;CACjC,CAAC;AAEF,IAAI,gBAAoC,CAAC;AACzC,IAAI,aAAiC,CAAC;AAEtC,SAAgB,SAAS;IACvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,0BAA0B,GAA4B;IAC1D,YAAY,EAAE,EAAE,GAAG,8BAAuB;IAC1C,YAAY,EAAE,8BAAuB;IACrC,WAAW,EAAE,CAAC,GAAG,8BAAuB;CACzC,CAAC;AAEF,SAAgB,0BAA0B;IACxC,OAAO,EAAE,GAAG,0BAA0B,EAAE,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;AAC9E,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,gBAAgB,GAAG,GAAG,CAAC;AACzB,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,gBAAgB,IAAI,YAAY,CAAC,aAAa,CAAC;AACxD,CAAC;AAGD,SAAgB,gBAAgB,CAAC,GAAuB;IACtD,aAAa,GAAG,GAAG,CAAC;AACtB,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,aAAa,IAAI,YAAY,CAAC,UAAU,CAAC;AAClD,CAAC;AAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAGrC,SAAgB,oBAAoB,CAAC,GAAG,GAAG,KAAK;IAC9C,OAAO,CACL,GAAG;QACH,YAAY,CAAC,WAAW,KAAK,IAAI;QACjC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,wBAAwB,CAC3D,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;AAClC,CAAC;AAMD,SAAgB,WAAW,CAAC,MAAc;IACxC,YAAY,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE1C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,gBAAgB,GAAG,IAAA,WAAI,EAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,sBAAsB,GAAG,IAAA,WAAI,EAAC,MAAM,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,mBAAmB,GAAG,IAAA,WAAI,EAAC,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,oBAAoB,GAAG,IAAA,WAAI,EAAC,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export declare function assertProductionSecrets(): void;
2
2
  export declare function resolveClientBaseUrl(raw: string | undefined, dev: boolean): string;
3
+ export declare function resolveConfiguredSetupToken(): string | undefined;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertProductionSecrets = assertProductionSecrets;
4
4
  exports.resolveClientBaseUrl = resolveClientBaseUrl;
5
+ exports.resolveConfiguredSetupToken = resolveConfiguredSetupToken;
5
6
  const state_1 = require("./internal/state");
6
7
  const PUBLIC_DEVELOPMENT_SECRET = "dev";
7
8
  const HTTP_PROTOCOLS = ["http:", "https:"];
@@ -59,4 +60,14 @@ function resolveClientBaseUrl(raw, dev) {
59
60
  return state_1.DEFAULT_CLIENT_BASE_URL;
60
61
  throw new Error("[DMS] clientBaseUrl is required in production (set it from DMS_CLIENT_BASE_URL in the DMS templates): e-mail links, payment redirects and CORS start from the dashboard's origin, and the development one is localhost.");
61
62
  }
63
+ const MIN_SETUP_TOKEN_LENGTH = 16;
64
+ function resolveConfiguredSetupToken() {
65
+ const value = process.env.DMS_SETUP_TOKEN?.trim();
66
+ if (!value)
67
+ return undefined;
68
+ if (value.length < MIN_SETUP_TOKEN_LENGTH) {
69
+ throw new Error(`[DMS] DMS_SETUP_TOKEN must be at least ${MIN_SETUP_TOKEN_LENGTH} characters: it is the only proof that the first owner registration comes from whoever deployed the instance.`);
70
+ }
71
+ return value;
72
+ }
62
73
  //# sourceMappingURL=startup-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-config.js","sourceRoot":"","sources":["../../src/config/startup-config.ts"],"names":[],"mappings":";;AA8CA,0DAMC;AAkCD,oDAUC;AAhGD,4CAI0B;AAG1B,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAExC,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3C,MAAM,SAAS,GAAG,GAAG,CAAC;AAUtB,MAAM,kBAAkB,GAAuB;IAC7C;QACE,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE,iCAAiC;QACzC,OAAO,EAAE,yCAAyC;QAClD,IAAI,EAAE,GAAG,EAAE,CAAC,IAAA,qBAAa,GAAE,CAAC,SAAS;KACtC;IACD;QACE,OAAO,EAAE,0BAA0B;QACnC,MAAM,EAAE,kEAAkE;QAC1E,OAAO,EAAE,8DAA8D;QACvE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAA,2BAAmB,GAAE,CAAC,aAAa;KAChD;CACF,CAAC;AAEF,SAAS,cAAc,CAAC,KAAyB;IAC/C,MAAM,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7B,OAAO,CAAC,MAAM,IAAI,MAAM,KAAK,yBAAyB,CAAC;AACzD,CAAC;AAQD,SAAgB,uBAAuB;IACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,CAAC,OAAO,2CAA2C,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,sBAAsB,yBAAyB,iCAAiC,CACpL,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,IAAI,KAAK,CACd,yIAAyI,GAAG,IAAI,CACjJ,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,QAAQ,GACZ,GAAG,CAAC,QAAQ,KAAK,SAAS;QAC1B,CAAC,GAAG,CAAC,MAAM;QACX,CAAC,GAAG,CAAC,IAAI;QACT,CAAC,GAAG,CAAC,QAAQ;QACb,CAAC,GAAG,CAAC,QAAQ,CAAC;IAChB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AASD,SAAgB,oBAAoB,CAClC,GAAuB,EACvB,GAAY;IAEZ,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAI,KAAK;QAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,GAAG;QAAE,OAAO,+BAAuB,CAAC;IACxC,MAAM,IAAI,KAAK,CACb,yNAAyN,CAC1N,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"startup-config.js","sourceRoot":"","sources":["../../src/config/startup-config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./models";
2
2
  export * from "./tables";
3
3
  export * from "./guard-row";
4
+ export * from "./setup-token";
package/dist/db/index.js CHANGED
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./models"), exports);
18
18
  __exportStar(require("./tables"), exports);
19
19
  __exportStar(require("./guard-row"), exports);
20
+ __exportStar(require("./setup-token"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,gDAA8B"}
@@ -1,4 +1,5 @@
1
1
  export * from "./attachments.model";
2
+ export * from "./setupToken.model";
2
3
  export * from "./signInAttempts.model";
3
4
  export * from "./systemState.model";
4
5
  export * from "./userEmailChanges.model";
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./attachments.model"), exports);
18
+ __exportStar(require("./setupToken.model"), exports);
18
19
  __exportStar(require("./signInAttempts.model"), exports);
19
20
  __exportStar(require("./systemState.model"), exports);
20
21
  __exportStar(require("./userEmailChanges.model"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,yDAAuC;AACvC,sDAAoC;AACpC,2DAAyC;AACzC,2DAAyC;AACzC,sEAAoD;AACpD,4DAA0C;AAC1C,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,qDAAmC;AACnC,yDAAuC;AACvC,sDAAoC;AACpC,2DAAyC;AACzC,2DAAyC;AACzC,sEAAoD;AACpD,4DAA0C;AAC1C,6DAA2C"}
@@ -0,0 +1,29 @@
1
+ import { SetupToken } from "../tables";
2
+ declare const SetupTokenModel_base: {
3
+ new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
4
+ readonly table: import("@antelopejs/interface-database").Table<SetupToken>;
5
+ readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
6
+ get(id: string): PromiseLike<SetupToken | undefined>;
7
+ getBy(index: keyof SetupToken, ...keys: any[]): PromiseLike<SetupToken[]>;
8
+ getAll(): PromiseLike<SetupToken[]>;
9
+ insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<SetupToken> | import("@antelopejs/interface-database-decorators").DeepPartial<SetupToken>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
10
+ update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<SetupToken>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
11
+ update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<SetupToken>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
12
+ delete(id: string): Promise<number>;
13
+ };
14
+ readonly schemaName: string;
15
+ readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<SetupToken>;
16
+ fromPlainData(obj: any): SetupToken;
17
+ fromDatabase(obj: any): SetupToken | undefined;
18
+ toDatabase(obj: any): Record<string, any>;
19
+ validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
20
+ };
21
+ export declare class SetupTokenModel extends SetupTokenModel_base {
22
+ private current;
23
+ private write;
24
+ ensure(configured?: string): Promise<string>;
25
+ claim(candidate: string | undefined): Promise<string | undefined>;
26
+ restore(token: string): Promise<void>;
27
+ clear(): Promise<void>;
28
+ }
29
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetupTokenModel = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
6
+ const tables_1 = require("../tables");
7
+ const SETUP_TOKEN_ID = "owner";
8
+ const GENERATED_TOKEN_BYTES = 32;
9
+ function digest(value) {
10
+ return (0, node_crypto_1.createHash)("sha256").update(value).digest();
11
+ }
12
+ function sameSecret(left, right) {
13
+ return (0, node_crypto_1.timingSafeEqual)(digest(left), digest(right));
14
+ }
15
+ class SetupTokenModel extends (0, interface_database_decorators_1.BasicDataModel)(tables_1.SetupToken, tables_1.setupTokenTableName) {
16
+ async current() {
17
+ const row = await this.table.get(SETUP_TOKEN_ID).run();
18
+ return row ? SetupTokenModel.fromDatabase(row) : undefined;
19
+ }
20
+ async write(token, conflict) {
21
+ await this.table
22
+ .insert({ _id: SETUP_TOKEN_ID, token, createdAt: new Date() }, conflict ? { conflict } : undefined)
23
+ .run();
24
+ }
25
+ async ensure(configured) {
26
+ if (configured) {
27
+ await this.write(configured, "replace");
28
+ return configured;
29
+ }
30
+ const existing = await this.current();
31
+ if (existing)
32
+ return existing.token;
33
+ const generated = (0, node_crypto_1.randomBytes)(GENERATED_TOKEN_BYTES).toString("base64url");
34
+ try {
35
+ await this.write(generated, undefined);
36
+ return generated;
37
+ }
38
+ catch (error) {
39
+ const winner = await this.current();
40
+ if (winner)
41
+ return winner.token;
42
+ throw error;
43
+ }
44
+ }
45
+ async claim(candidate) {
46
+ if (!candidate)
47
+ return undefined;
48
+ const stored = await this.current();
49
+ if (!stored || !sameSecret(stored.token, candidate))
50
+ return undefined;
51
+ const deleted = await this.table.get(SETUP_TOKEN_ID).delete().run();
52
+ return deleted === 1 ? stored.token : undefined;
53
+ }
54
+ async restore(token) {
55
+ await this.write(token, "replace");
56
+ }
57
+ async clear() {
58
+ await this.table.get(SETUP_TOKEN_ID).delete().run();
59
+ }
60
+ }
61
+ exports.SetupTokenModel = SetupTokenModel;
62
+ //# sourceMappingURL=setupToken.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupToken.model.js","sourceRoot":"","sources":["../../../src/db/models/setupToken.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function instanceHasUsers(): Promise<boolean>;
2
+ export declare function announceSetupToken(): Promise<void>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.instanceHasUsers = instanceHasUsers;
4
+ exports.announceSetupToken = announceSetupToken;
5
+ const logging_1 = require("@antelopejs/interface-core/logging");
6
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
7
+ const db_1 = require("@antelopejs/interface-dms/auth/db");
8
+ const config_1 = require("../config");
9
+ const startup_config_1 = require("../config/startup-config");
10
+ const models_1 = require("./models");
11
+ const ONBOARDING_PATH = "/onboarding";
12
+ async function instanceHasUsers() {
13
+ const users = await (0, interface_database_decorators_1.GetModel)(db_1.UserModel).table.slice(0, 1).run();
14
+ return users.length > 0;
15
+ }
16
+ async function announceSetupToken() {
17
+ const tokens = (0, interface_database_decorators_1.GetModel)(models_1.SetupTokenModel);
18
+ if (await instanceHasUsers()) {
19
+ await tokens.clear();
20
+ return;
21
+ }
22
+ const configured = (0, startup_config_1.resolveConfiguredSetupToken)();
23
+ const token = await tokens.ensure(configured);
24
+ const address = `${(0, config_1.getConfig)().clientBaseUrl ?? ""}${ONBOARDING_PATH}`;
25
+ const shown = configured ? "<DMS_SETUP_TOKEN>" : token;
26
+ logging_1.Logging.Warn(`[DMS] No owner exists yet. To create it, open ${address}?token=${shown}`);
27
+ }
28
+ //# sourceMappingURL=setup-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-token.js","sourceRoot":"","sources":["../../src/db/setup-token.ts"],"names":[],"mappings":";;AAUA,4CAGC;AAUD,gDAcC;AArCD,gEAA6D;AAC7D,6FAAqE;AACrE,0DAA8D;AAC9D,sCAAsC;AACtC,6DAAuE;AACvE,qCAA2C;AAE3C,MAAM,eAAe,GAAG,aAAa,CAAC;AAG/B,KAAK,UAAU,gBAAgB;IACpC,MAAM,KAAK,GAAG,MAAM,IAAA,wCAAQ,EAAC,cAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAChE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,CAAC;AAUM,KAAK,UAAU,kBAAkB;IACtC,MAAM,MAAM,GAAG,IAAA,wCAAQ,EAAC,wBAAe,CAAC,CAAC;IACzC,IAAI,MAAM,gBAAgB,EAAE,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,4CAA2B,GAAE,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,IAAA,kBAAS,GAAE,CAAC,aAAa,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC;IACvD,iBAAO,CAAC,IAAI,CACV,iDAAiD,OAAO,UAAU,KAAK,EAAE,CAC1E,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./attachments.table";
2
+ export * from "./setupToken.table";
2
3
  export * from "./signInAttempts.table";
3
4
  export * from "./systemState.table";
4
5
  export * from "./userEmailChanges.table";
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./attachments.table"), exports);
18
+ __exportStar(require("./setupToken.table"), exports);
18
19
  __exportStar(require("./signInAttempts.table"), exports);
19
20
  __exportStar(require("./systemState.table"), exports);
20
21
  __exportStar(require("./userEmailChanges.table"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/tables/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,yDAAuC;AACvC,sDAAoC;AACpC,2DAAyC;AACzC,2DAAyC;AACzC,sEAAoD;AACpD,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/tables/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,qDAAmC;AACnC,yDAAuC;AACvC,sDAAoC;AACpC,2DAAyC;AACzC,2DAAyC;AACzC,sEAAoD;AACpD,4DAA0C"}
@@ -0,0 +1,7 @@
1
+ import { Table } from "@antelopejs/interface-database-decorators";
2
+ export declare const setupTokenTableName = "setup_token";
3
+ export declare class SetupToken extends Table {
4
+ _id: string;
5
+ token: string;
6
+ createdAt: Date;
7
+ }
@@ -0,0 +1,34 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SetupToken = exports.setupTokenTableName = void 0;
13
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
14
+ const constants_1 = require("@antelopejs/interface-dms/constants");
15
+ exports.setupTokenTableName = "setup_token";
16
+ let SetupToken = class SetupToken extends interface_database_decorators_1.Table {
17
+ };
18
+ exports.SetupToken = SetupToken;
19
+ __decorate([
20
+ (0, interface_database_decorators_1.Field)("string"),
21
+ __metadata("design:type", String)
22
+ ], SetupToken.prototype, "_id", void 0);
23
+ __decorate([
24
+ (0, interface_database_decorators_1.Field)("string"),
25
+ __metadata("design:type", String)
26
+ ], SetupToken.prototype, "token", void 0);
27
+ __decorate([
28
+ (0, interface_database_decorators_1.Field)("date"),
29
+ __metadata("design:type", Date)
30
+ ], SetupToken.prototype, "createdAt", void 0);
31
+ exports.SetupToken = SetupToken = __decorate([
32
+ (0, interface_database_decorators_1.RegisterTable)(exports.setupTokenTableName, constants_1.CORE_SCHEMA_NAME)
33
+ ], SetupToken);
34
+ //# sourceMappingURL=setupToken.table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupToken.table.js","sourceRoot":"","sources":["../../../src/db/tables/setupToken.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAImD;AACnD,mEAAuE;AAE1D,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAS1C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,qCAAK;CAOpC,CAAA;AAPY,gCAAU;AAEI;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;uCAAqB;AAEZ;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;yCAAuB;AAEhB;IAAtB,IAAA,qCAAK,EAAC,MAAM,CAAC;8BAAoB,IAAI;6CAAC;qBAN5B,UAAU;IADtB,IAAA,6CAAa,EAAC,2BAAmB,EAAE,4BAAgB,CAAC;GACxC,UAAU,CAOtB"}
@@ -27,6 +27,7 @@ const module_catalog_1 = require("./module-catalog");
27
27
  const access_1 = require("./access");
28
28
  const dynamic_menu_1 = require("./dynamic-menu");
29
29
  const quick_action_access_1 = require("./quick-action-access");
30
+ const public_layout_1 = require("./public-layout");
30
31
  exports.PAGE_LAYOUT_SLUG_PARAMETER = "slug";
31
32
  exports.PAGE_REQUEST_PARAMETERS = ["path", "shared"];
32
33
  function pageQueryOf(requestContext, ownParameters = [exports.PAGE_LAYOUT_SLUG_PARAMETER]) {
@@ -91,17 +92,11 @@ async function buildPagePayload(...arguments_) {
91
92
  }),
92
93
  resolvePageNavBadges(user, context, requestContext),
93
94
  ]);
94
- if (!includeShared) {
95
- const routes = (0, menu_categories_1.withCategoryRefs)(await annotateRegistryAccess({ [registeredSlug]: route }, context));
95
+ const routes = (0, menu_categories_1.withCategoryRefs)(await annotateRegistryAccess({ [registeredSlug]: route }, context));
96
+ if (!includeShared)
96
97
  return { route: routes[registeredSlug], layout, navBadges };
97
- }
98
98
  const shared = await buildSiteLayoutFor(user, tenantId, context);
99
- return {
100
- route: shared.siteLayout.pages[registeredSlug],
101
- shared,
102
- layout,
103
- navBadges,
104
- };
99
+ return { route: routes[registeredSlug], shared, layout, navBadges };
105
100
  }
106
101
  async function annotateRegistryAccess(registry, context) {
107
102
  const annotated = {};
@@ -151,12 +146,13 @@ async function buildNavBadges(user, memberModel, roleModel, tenantId, requestCon
151
146
  async function buildSiteLayoutFor(user, tenantId, accessContext) {
152
147
  const banners = (0, layout_banners_1.resolveLayoutBanners)(buildLayoutBannerContext(user, tenantId, accessContext));
153
148
  const dynamicChildren = await (0, dynamic_menu_1.resolveDynamicChildren)(user, tenantId, accessContext);
154
- return {
149
+ const layout = {
155
150
  siteLayout: await annotateSiteLayoutAccess(accessContext, banners),
156
151
  siteLayoutTree: (0, menu_categories_1.treeWithCategoryRefs)(await (0, dynamic_menu_1.addAccessToTree)(state_1.navigationTree, accessContext, true, dynamicChildren)),
157
152
  quickActions: await (0, quick_actions_1.getQuickActionsForUser)((target) => (0, quick_action_access_1.resolveQuickActionTarget)(target, accessContext)),
158
153
  modules: await (0, module_catalog_1.buildModuleAccessMap)(accessContext),
159
154
  isOwner: accessContext.gated.isOwner,
160
155
  };
156
+ return user ? layout : (0, public_layout_1.publicSiteLayoutOnly)(layout);
161
157
  }
162
158
  //# sourceMappingURL=payloads.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payloads.js","sourceRoot":"","sources":["../../../../src/implementations/dms/page/payloads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payloads.js","sourceRoot":"","sources":["../../../../src/implementations/dms/page/payloads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { SiteLayoutPayload } from "./types";
2
+ export declare function publicSiteLayoutOnly(layout: SiteLayoutPayload): SiteLayoutPayload;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.publicSiteLayoutOnly = publicSiteLayoutOnly;
4
+ function withOnlyReachableChildren(node) {
5
+ const children = {};
6
+ for (const [key, child] of Object.entries(node.children)) {
7
+ const pruned = withOnlyReachableChildren(child);
8
+ if (pruned.hasAccess !== false || Object.keys(pruned.children).length > 0)
9
+ children[key] = pruned;
10
+ }
11
+ return {
12
+ ...node,
13
+ children,
14
+ ...(node.childrenOrders && {
15
+ childrenOrders: node.childrenOrders.filter((key) => key in children),
16
+ }),
17
+ };
18
+ }
19
+ function categoriesNamedBy(categories, pages) {
20
+ const kept = {};
21
+ const pending = Object.values(pages).flatMap((page) => page.categoryId ? [page.categoryId] : []);
22
+ for (let id = pending.pop(); id !== undefined; id = pending.pop()) {
23
+ const category = categories[id];
24
+ if (!category || id in kept)
25
+ continue;
26
+ kept[id] = category;
27
+ if (category.categoryId)
28
+ pending.push(category.categoryId);
29
+ }
30
+ return kept;
31
+ }
32
+ function publicSiteLayoutOnly(layout) {
33
+ const pages = Object.fromEntries(Object.entries(layout.siteLayout.pages).filter(([, page]) => page.hasAccess));
34
+ return {
35
+ ...layout,
36
+ siteLayout: {
37
+ ...layout.siteLayout,
38
+ pages,
39
+ categories: categoriesNamedBy(layout.siteLayout.categories, pages),
40
+ },
41
+ siteLayoutTree: withOnlyReachableChildren(layout.siteLayoutTree),
42
+ modules: Object.fromEntries(Object.entries(layout.modules).filter(([, module]) => module.hasAccess)),
43
+ };
44
+ }
45
+ //# sourceMappingURL=public-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-layout.js","sourceRoot":"","sources":["../../../../src/implementations/dms/page/public-layout.ts"],"names":[],"mappings":";;AA6CA,oDAoBC;AA5DD,SAAS,yBAAyB,CAAC,IAAgB;IACjD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;YACvE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,QAAQ;QACR,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,QAAQ,CAAC;SACrE,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAgC,EAChC,KAAsB;IAEtB,MAAM,IAAI,GAAyB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACpD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CACzC,CAAC;IACF,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI;YAAE,SAAS;QACtC,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;QACpB,IAAI,QAAQ,CAAC,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AASD,SAAgB,oBAAoB,CAClC,MAAyB;IAEzB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAC7B,CACF,CAAC;IACF,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE;YACV,GAAG,MAAM,CAAC,UAAU;YACpB,KAAK;YACL,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC;SACnE;QACD,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,cAAc,CAAC;QAChE,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CACxE;KACF,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import "./db";
2
1
  import "./realtime";
3
2
  import "./implementations/dms-auth/email-templates";
4
3
  import "./pages";