@antelopejs/interface-dms 0.13.3 → 0.14.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 (208) hide show
  1. package/CHANGELOG.md +231 -2
  2. package/README.md +9 -9
  3. package/dist/auth/db/models/sessions.model.d.ts +3 -3
  4. package/dist/auth/db/models/userExternalIdentities.model.d.ts +3 -3
  5. package/dist/auth/db/models/users.model.d.ts +3 -3
  6. package/dist/auth/db/tables/users.table.d.ts +3 -3
  7. package/dist/base/activity-feed.d.ts +2 -2
  8. package/dist/base/block-registry/types.d.ts +1 -1
  9. package/dist/base/chart-schemas.d.ts +70 -70
  10. package/dist/base/chart.d.ts +1 -1
  11. package/dist/base/data-types/default/choices.d.ts +1 -1
  12. package/dist/base/data-types/default/choices.js +3 -6
  13. package/dist/base/data-types/default/choices.js.map +1 -1
  14. package/dist/base/data-types/default/inputs.d.ts +1 -1
  15. package/dist/base/data-types/default/numbers.d.ts +2 -1
  16. package/dist/base/data-types/default/numbers.js +4 -3
  17. package/dist/base/data-types/default/numbers.js.map +1 -1
  18. package/dist/base/data-types/default/relations.d.ts +0 -6
  19. package/dist/base/data-types/default/relations.js +0 -1
  20. package/dist/base/data-types/default/relations.js.map +1 -1
  21. package/dist/base/data-types/default-types.d.ts +0 -1
  22. package/dist/base/data-types/default-types.js +0 -2
  23. package/dist/base/data-types/default-types.js.map +1 -1
  24. package/dist/base/data-types/index.js +0 -1
  25. package/dist/base/data-types/index.js.map +1 -1
  26. package/dist/base/data-types/internal/relation-endpoints.js +5 -3
  27. package/dist/base/data-types/internal/relation-endpoints.js.map +1 -1
  28. package/dist/base/data-types/internal/table-view-meta-slot.d.ts +17 -0
  29. package/dist/base/data-types/internal/table-view-meta-slot.js +25 -0
  30. package/dist/base/data-types/internal/table-view-meta-slot.js.map +1 -0
  31. package/dist/base/empty-state.d.ts +1 -1
  32. package/dist/base/export-jobs.d.ts +47 -19
  33. package/dist/base/export-jobs.js +39 -4
  34. package/dist/base/export-jobs.js.map +1 -1
  35. package/dist/base/form-schema.d.ts +0 -1
  36. package/dist/base/form-schema.js +12 -12
  37. package/dist/base/form-schema.js.map +1 -1
  38. package/dist/base/grid.js +1 -1
  39. package/dist/base/grid.js.map +1 -1
  40. package/dist/base/guard.d.ts +4 -4
  41. package/dist/base/guard.js +1 -1
  42. package/dist/base/guard.js.map +1 -1
  43. package/dist/base/helpers/file-refs.js +4 -6
  44. package/dist/base/helpers/file-refs.js.map +1 -1
  45. package/dist/base/internal/chart.d.ts +1 -1
  46. package/dist/base/internal/chart.js +1 -1
  47. package/dist/base/internal/chart.js.map +1 -1
  48. package/dist/base/internal/export-jobs.d.ts +11 -0
  49. package/dist/base/internal/export-jobs.js +11 -0
  50. package/dist/base/internal/export-jobs.js.map +1 -1
  51. package/dist/base/internal/form-block-schema.d.ts +1 -1
  52. package/dist/base/internal/form-block-schema.js +1 -1
  53. package/dist/base/internal/form-block-schema.js.map +1 -1
  54. package/dist/base/key-value-list.d.ts +6 -6
  55. package/dist/base/meter.d.ts +1 -1
  56. package/dist/base/placeholder.js +1 -1
  57. package/dist/base/placeholder.js.map +1 -1
  58. package/dist/base/searchable.d.ts +3 -3
  59. package/dist/base/searchable.js.map +1 -1
  60. package/dist/base/stack.js +1 -1
  61. package/dist/base/stack.js.map +1 -1
  62. package/dist/base/tab.js +1 -1
  63. package/dist/base/tab.js.map +1 -1
  64. package/dist/base/table-view/data-functions.d.ts +10 -11
  65. package/dist/base/table-view/data-functions.js.map +1 -1
  66. package/dist/base/table-view/factory.js +2 -0
  67. package/dist/base/table-view/factory.js.map +1 -1
  68. package/dist/base/table-view/internal/archive-filter.d.ts +21 -0
  69. package/dist/base/table-view/internal/archive-filter.js +48 -0
  70. package/dist/base/table-view/internal/archive-filter.js.map +1 -0
  71. package/dist/base/table-view/internal/auth.d.ts +2 -2
  72. package/dist/base/table-view/internal/auth.js +1 -3
  73. package/dist/base/table-view/internal/auth.js.map +1 -1
  74. package/dist/base/table-view/internal/column-conditions.js.map +1 -1
  75. package/dist/base/table-view/internal/data-functions.d.ts +2 -2
  76. package/dist/base/table-view/internal/factory-lifecycle-created.js +3 -2
  77. package/dist/base/table-view/internal/factory-lifecycle-created.js.map +1 -1
  78. package/dist/base/table-view/internal/footer.js +21 -13
  79. package/dist/base/table-view/internal/footer.js.map +1 -1
  80. package/dist/base/table-view/internal/guards.d.ts +1 -1
  81. package/dist/base/table-view/internal/guards.js +11 -8
  82. package/dist/base/table-view/internal/guards.js.map +1 -1
  83. package/dist/base/table-view/internal/meta-helpers.js +3 -2
  84. package/dist/base/table-view/internal/meta-helpers.js.map +1 -1
  85. package/dist/base/table-view/internal/nav-badges.js +1 -3
  86. package/dist/base/table-view/internal/nav-badges.js.map +1 -1
  87. package/dist/base/table-view/internal/option-views.d.ts +7 -4
  88. package/dist/base/table-view/internal/row-actions-schema.d.ts +6 -6
  89. package/dist/base/table-view/meta.d.ts +5 -5
  90. package/dist/base/table-view/meta.js +6 -2
  91. package/dist/base/table-view/meta.js.map +1 -1
  92. package/dist/base/table-view/routes.d.ts +39 -12
  93. package/dist/base/table-view/routes.js +0 -1
  94. package/dist/base/table-view/routes.js.map +1 -1
  95. package/dist/base/table-view/schema.d.ts +127 -127
  96. package/dist/base/top-list-card.d.ts +4 -4
  97. package/dist/component-options/data-type.d.ts +2 -1
  98. package/dist/component-options/data-type.js +1 -1
  99. package/dist/component-options/data-type.js.map +1 -1
  100. package/dist/component-slots.js +1 -1
  101. package/dist/component-slots.js.map +1 -1
  102. package/dist/connection-access.d.ts +46 -0
  103. package/dist/connection-access.js +73 -0
  104. package/dist/connection-access.js.map +1 -0
  105. package/dist/data-controllers/members.d.ts +15 -2
  106. package/dist/data-controllers/roles.d.ts +15 -2
  107. package/dist/db/internal/exportJobs.model.d.ts +3 -3
  108. package/dist/db/internal/inviteResolutions.model.d.ts +16 -3
  109. package/dist/db/internal/inviteResolutions.model.js +38 -0
  110. package/dist/db/internal/inviteResolutions.model.js.map +1 -1
  111. package/dist/db/internal/tenantLifecycle.model.d.ts +4 -4
  112. package/dist/db/internal/tenantLifecycle.model.js +2 -3
  113. package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
  114. package/dist/db/models/roles.model.d.ts +3 -3
  115. package/dist/db/models/tenantMembers.model.d.ts +3 -3
  116. package/dist/db/models/tenants.model.d.ts +3 -3
  117. package/dist/db/models/user_invites.model.d.ts +18 -3
  118. package/dist/db/models/user_invites.model.js +28 -0
  119. package/dist/db/models/user_invites.model.js.map +1 -1
  120. package/dist/db/tables/user_invites.table.d.ts +6 -1
  121. package/dist/db/tables/user_invites.table.js +3 -0
  122. package/dist/db/tables/user_invites.table.js.map +1 -1
  123. package/dist/index.d.ts +1 -1
  124. package/dist/index.js +3 -2
  125. package/dist/index.js.map +1 -1
  126. package/dist/internal/component-slots.js +1 -1
  127. package/dist/internal/component-slots.js.map +1 -1
  128. package/dist/internal/invite-content.d.ts +8 -0
  129. package/dist/internal/invite-content.js +36 -0
  130. package/dist/internal/invite-content.js.map +1 -0
  131. package/dist/internal/invite-resolution.js +5 -2
  132. package/dist/internal/invite-resolution.js.map +1 -1
  133. package/dist/internal/tenant-ownership.d.ts +5 -4
  134. package/dist/internal/tenant-ownership.js +5 -4
  135. package/dist/internal/tenant-ownership.js.map +1 -1
  136. package/dist/invite-extensions/internal/delivery.d.ts +3 -2
  137. package/dist/invite-extensions/internal/delivery.js +3 -2
  138. package/dist/invite-extensions/internal/delivery.js.map +1 -1
  139. package/dist/invite-resolution.d.ts +5 -1
  140. package/dist/invite-resolution.js +10 -26
  141. package/dist/invite-resolution.js.map +1 -1
  142. package/dist/invites.d.ts +5 -0
  143. package/dist/invites.js +58 -1
  144. package/dist/invites.js.map +1 -1
  145. package/dist/notifications/internal.d.ts +0 -1
  146. package/dist/notifications/internal.js +0 -1
  147. package/dist/notifications/internal.js.map +1 -1
  148. package/dist/notifications/sendable.d.ts +1 -2
  149. package/dist/notifications/sendable.js +1 -12
  150. package/dist/notifications/sendable.js.map +1 -1
  151. package/dist/notifications/types.d.ts +1 -4
  152. package/dist/page/categories.d.ts +6 -0
  153. package/dist/page/categories.js +10 -3
  154. package/dist/page/categories.js.map +1 -1
  155. package/dist/page/controllers.d.ts +6 -9
  156. package/dist/page/controllers.js +5 -6
  157. package/dist/page/controllers.js.map +1 -1
  158. package/dist/page/internal/categories.js +43 -32
  159. package/dist/page/internal/categories.js.map +1 -1
  160. package/dist/page/internal/category-resolution.d.ts +31 -0
  161. package/dist/page/internal/category-resolution.js +63 -0
  162. package/dist/page/internal/category-resolution.js.map +1 -0
  163. package/dist/page/internal/metadata-extension-contributions.js +1 -2
  164. package/dist/page/internal/metadata-extension-contributions.js.map +1 -1
  165. package/dist/page/internal/metadata-info.js +19 -7
  166. package/dist/page/internal/metadata-info.js.map +1 -1
  167. package/dist/page/internal/metadata-layout.d.ts +3 -2
  168. package/dist/page/internal/metadata-layout.js.map +1 -1
  169. package/dist/page/internal/metadata-lifecycle.js +1 -4
  170. package/dist/page/internal/metadata-lifecycle.js.map +1 -1
  171. package/dist/page/internal/metadata-publish.js +7 -6
  172. package/dist/page/internal/metadata-publish.js.map +1 -1
  173. package/dist/page/internal/metadata-registration.js +8 -6
  174. package/dist/page/internal/metadata-registration.js.map +1 -1
  175. package/dist/page/internal/page-controller.d.ts +18 -0
  176. package/dist/page/internal/page-controller.js +36 -0
  177. package/dist/page/internal/page-controller.js.map +1 -0
  178. package/dist/page/metadata.d.ts +3 -3
  179. package/dist/page/metadata.js +4 -2
  180. package/dist/page/metadata.js.map +1 -1
  181. package/dist/page/types.d.ts +8 -2
  182. package/dist/page.d.ts +1 -1
  183. package/dist/page.js +2 -1
  184. package/dist/page.js.map +1 -1
  185. package/dist/permissions.d.ts +2 -1
  186. package/dist/permissions.js +5 -2
  187. package/dist/permissions.js.map +1 -1
  188. package/dist/tenant-provisioning.js +1 -1
  189. package/dist/tenant-provisioning.js.map +1 -1
  190. package/dist/types.d.ts +7 -3
  191. package/docs/1.core/11.modules-and-dynamic-menus.md +3 -3
  192. package/docs/1.core/2.pages-and-modules.md +2 -1
  193. package/docs/1.core/4.permissions.md +2 -2
  194. package/docs/1.core/5.tenancy.md +1 -1
  195. package/docs/1.core/6.invites.md +3 -1
  196. package/docs/2.auth/2.authentication.md +1 -1
  197. package/docs/2.auth/3.tokens-and-sessions.md +1 -1
  198. package/docs/3.base/1.introduction.md +1 -1
  199. package/docs/3.base/14.table-events-and-helpers.md +1 -1
  200. package/docs/3.base/15.table-sources-and-gates.md +14 -2
  201. package/docs/3.base/3.forms.md +1 -1
  202. package/docs/3.base/4.tables.md +1 -1
  203. package/docs/3.base/5.charts-and-widgets.md +3 -3
  204. package/docs/3.base/8.data-types.md +1 -1
  205. package/docs/3.base/9.helpers.md +16 -5
  206. package/docs/4.notifications/3.sending.md +0 -11
  207. package/docs/index.md +1 -1
  208. package/package.json +11 -11
@@ -153,9 +153,9 @@ export declare const TopListCardSchema: z.ZodObject<{
153
153
  } | undefined;
154
154
  description?: BlockText | undefined;
155
155
  icon?: string | undefined;
156
- sparkline?: number[] | undefined;
157
156
  valueLabel?: BlockText | undefined;
158
157
  to?: string | undefined;
158
+ sparkline?: number[] | undefined;
159
159
  delta?: number | null | undefined;
160
160
  }, {
161
161
  id: string | number;
@@ -167,9 +167,9 @@ export declare const TopListCardSchema: z.ZodObject<{
167
167
  } | undefined;
168
168
  description?: BlockText | undefined;
169
169
  icon?: string | undefined;
170
- sparkline?: number[] | undefined;
171
170
  valueLabel?: BlockText | undefined;
172
171
  to?: string | undefined;
172
+ sparkline?: number[] | undefined;
173
173
  delta?: number | null | undefined;
174
174
  }>, "many">>;
175
175
  emptyLabel: z.ZodOptional<z.ZodString>;
@@ -231,9 +231,9 @@ export declare const TopListCardSchema: z.ZodObject<{
231
231
  } | undefined;
232
232
  description?: BlockText | undefined;
233
233
  icon?: string | undefined;
234
- sparkline?: number[] | undefined;
235
234
  valueLabel?: BlockText | undefined;
236
235
  to?: string | undefined;
236
+ sparkline?: number[] | undefined;
237
237
  delta?: number | null | undefined;
238
238
  }[] | undefined;
239
239
  emptyLabel?: string | undefined;
@@ -275,9 +275,9 @@ export declare const TopListCardSchema: z.ZodObject<{
275
275
  } | undefined;
276
276
  description?: BlockText | undefined;
277
277
  icon?: string | undefined;
278
- sparkline?: number[] | undefined;
279
278
  valueLabel?: BlockText | undefined;
280
279
  to?: string | undefined;
280
+ sparkline?: number[] | undefined;
281
281
  delta?: number | null | undefined;
282
282
  }[] | undefined;
283
283
  emptyLabel?: string | undefined;
@@ -1,4 +1,5 @@
1
1
  import type { RequestContext } from "@antelopejs/interface-api";
2
+ import type { FilterValue } from "@antelopejs/interface-data-api/metadata";
2
3
  import { type Class, type DecoratorTarget, type ClassDecorator } from "@antelopejs/interface-core/decorators";
3
4
  import type { ValueProxy, ValueProxyOrValue } from "@antelopejs/interface-database";
4
5
  import type { ComponentInfoSerialized } from "../component";
@@ -12,7 +13,7 @@ export declare abstract class DataType {
12
13
  readonly defaultCompareMode?: Class<DataCompareMode> | undefined;
13
14
  readonly options?: Record<string, unknown> | undefined;
14
15
  constructor(compareModes?: Class<DataCompareMode>[], defaultCompareMode?: Class<DataCompareMode> | undefined, options?: Record<string, unknown> | undefined);
15
- filter(context: RequestContext, proxy: ValueProxy<unknown>, key: string, value: string, mode: string, row: ValueProxy<Record<string, unknown>>): ValueProxyOrValue<boolean>;
16
+ filter(context: RequestContext, proxy: ValueProxy<unknown>, key: string, value: FilterValue[0], mode: string, row: ValueProxy<Record<string, unknown>>): ValueProxyOrValue<boolean>;
16
17
  /**
17
18
  * Returns the default input component for this data type.
18
19
  * Override this method in subclasses to provide a custom input component.
@@ -35,7 +35,7 @@ class DataType {
35
35
  const compareMode = dataCompareModes.get(mode);
36
36
  if (!compareMode || !listsCompareMode(this, mode))
37
37
  return false;
38
- return compareMode.filter(context, proxy, key, value, row);
38
+ return compareMode.filter(context, proxy, key, String(value), row);
39
39
  }
40
40
  /**
41
41
  * Returns filters components for this data type.
@@ -1 +1 @@
1
- {"version":3,"file":"data-type.js","sourceRoot":"","sources":["../../src/component-options/data-type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-type.js","sourceRoot":"","sources":["../../src/component-options/data-type.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ function RegisterComponentSlot(slotId, resolver) {
21
21
  if (existing && existing !== resolver) {
22
22
  logging_1.Logging.Warn(`[dms] component slot "${slotId}" already had a resolver; the latest one now owns it.`);
23
23
  }
24
- // SAFETY: Holds when every node named dms-form in a layout the page metadata passes to ResolveComponentSlots was serialized by Form, whose options are FormPropsSerialized with its builder's watch actions; the walker hands this resolver only such a node's options, after checking their fields array and this slotId.
24
+ // SAFETY: Holds when every node named dms-form-block in a layout the page metadata passes to ResolveComponentSlots was serialized by Form, whose options are FormPropsSerialized with its builder's watch actions; the walker hands this resolver only such a node's options, after checking their fields array and this slotId.
25
25
  component_slots_1.slotResolvers.set(slotId, resolver);
26
26
  return () => {
27
27
  if (component_slots_1.slotResolvers.get(slotId) === resolver) {
@@ -1 +1 @@
1
- {"version":3,"file":"component-slots.js","sourceRoot":"","sources":["../src/component-slots.ts"],"names":[],"mappings":";;AAuCA,sDAiBC;AAxDD,gEAA6D;AAI7D,gEAGoC;AAmBpC;;;;;;;;;;;;GAYG;AACH,SAAgB,qBAAqB,CACnC,MAAc,EACd,QAA+B;IAE/B,MAAM,QAAQ,GAAG,+BAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtC,iBAAO,CAAC,IAAI,CACV,yBAAyB,MAAM,uDAAuD,CACvF,CAAC;IACJ,CAAC;IACD,2TAA2T;IAC3T,+BAAa,CAAC,GAAG,CAAC,MAAM,EAAE,QAA4B,CAAC,CAAC;IACxD,OAAO,GAAG,EAAE;QACV,IAAI,+BAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC3C,+BAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"component-slots.js","sourceRoot":"","sources":["../src/component-slots.ts"],"names":[],"mappings":";;AAuCA,sDAiBC;AAxDD,gEAA6D;AAI7D,gEAGoC;AAmBpC;;;;;;;;;;;;GAYG;AACH,SAAgB,qBAAqB,CACnC,MAAc,EACd,QAA+B;IAE/B,MAAM,QAAQ,GAAG,+BAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtC,iBAAO,CAAC,IAAI,CACV,yBAAyB,MAAM,uDAAuD,CACvF,CAAC;IACJ,CAAC;IACD,iUAAiU;IACjU,+BAAa,CAAC,GAAG,CAAC,MAAM,EAAE,QAA4B,CAAC,CAAC;IACxD,OAAO,GAAG,EAAE;QACV,IAAI,+BAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC3C,+BAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { RegisteringProxy } from "@antelopejs/interface-core";
2
+ import { type DecoratorTarget } from "@antelopejs/interface-core/decorators";
3
+ /** What a project lets the DMS do on an external connection: read its rows, or write them too. */
4
+ export type ConnectionAccess = "read" | "read-write";
5
+ /**
6
+ * Answers the access of an external connection, or nothing for a connection the registering
7
+ * module does not own.
8
+ */
9
+ export type ConnectionAccessSource = (connection: string) => ConnectionAccess | undefined | Promise<ConnectionAccess | undefined>;
10
+ /**
11
+ * @internal
12
+ */
13
+ export declare namespace internal {
14
+ const RegisterConnectionAccessSource: RegisteringProxy<(id: string, source: ConnectionAccessSource) => void>;
15
+ }
16
+ /**
17
+ * Registers the module that answers the access of external connections, as dms-database does
18
+ * from `config.externalConnections`. Call it during `construct()`, so the source answers before
19
+ * the API serves a write. The registration is removed when the registering module is unloaded.
20
+ *
21
+ * @param id The source's id; a second registration under it replaces the first
22
+ * @param source Answers each connection the module owns
23
+ */
24
+ export declare function RegisterConnectionAccessSource(id: string, source: ConnectionAccessSource): void;
25
+ /**
26
+ * The access of an external connection: `"read-write"` when a registered source answers it and
27
+ * none answers `"read"`, and `"read"` otherwise, with no source registered for it too. A source
28
+ * that throws rejects the call.
29
+ */
30
+ export declare const GetConnectionAccess: (connection: string) => Promise<ConnectionAccess>;
31
+ /**
32
+ * Marks a data controller as one that writes to the tables of an external connection, as the
33
+ * builder does on each resource it maps. Its TableView write routes (`new`, `edit`, `delete`,
34
+ * `archive`, `restore`) answer 403 while the connection's access is `"read"`, whichever page or
35
+ * form posts to them.
36
+ *
37
+ * @param connection The connection id, as `config.externalConnections` of dms-database names it
38
+ */
39
+ export declare const ExternalConnection: (connection: string) => import("@antelopejs/interface-core/decorators").ClassDecorator<import("@antelopejs/interface-core/decorators").Class<object, any[]>>;
40
+ /**
41
+ * Throws a 403 when the data controller writes to an external connection whose access is
42
+ * `"read"`; a controller not marked with {@link ExternalConnection} passes.
43
+ *
44
+ * @param controller The data controller's class
45
+ */
46
+ export declare function AssertConnectionWritable(controller: DecoratorTarget): Promise<void>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExternalConnection = exports.GetConnectionAccess = exports.internal = void 0;
4
+ exports.RegisterConnectionAccessSource = RegisterConnectionAccessSource;
5
+ exports.AssertConnectionWritable = AssertConnectionWritable;
6
+ const interface_api_1 = require("@antelopejs/interface-api");
7
+ const interface_core_1 = require("@antelopejs/interface-core");
8
+ const decorators_1 = require("@antelopejs/interface-core/decorators");
9
+ const HTTP_FORBIDDEN_STATUS = 403;
10
+ /**
11
+ * @internal
12
+ */
13
+ var internal;
14
+ (function (internal) {
15
+ internal.RegisterConnectionAccessSource = new interface_core_1.RegisteringProxy();
16
+ })(internal || (exports.internal = internal = {}));
17
+ /**
18
+ * Registers the module that answers the access of external connections, as dms-database does
19
+ * from `config.externalConnections`. Call it during `construct()`, so the source answers before
20
+ * the API serves a write. The registration is removed when the registering module is unloaded.
21
+ *
22
+ * @param id The source's id; a second registration under it replaces the first
23
+ * @param source Answers each connection the module owns
24
+ */
25
+ function RegisterConnectionAccessSource(id, source) {
26
+ internal.RegisterConnectionAccessSource.register(id, source);
27
+ }
28
+ /**
29
+ * The access of an external connection: `"read-write"` when a registered source answers it and
30
+ * none answers `"read"`, and `"read"` otherwise, with no source registered for it too. A source
31
+ * that throws rejects the call.
32
+ */
33
+ exports.GetConnectionAccess = (0, interface_core_1.InterfaceFunction)();
34
+ /** The external connection a data controller writes to. */
35
+ class ExternalConnectionMeta {
36
+ target;
37
+ static key = Symbol();
38
+ connection;
39
+ constructor(target) {
40
+ this.target = target;
41
+ }
42
+ /** A controller derived from this one writes to the same connection. */
43
+ inherit(parent) {
44
+ this.connection ??= parent.connection;
45
+ }
46
+ }
47
+ /**
48
+ * Marks a data controller as one that writes to the tables of an external connection, as the
49
+ * builder does on each resource it maps. Its TableView write routes (`new`, `edit`, `delete`,
50
+ * `archive`, `restore`) answer 403 while the connection's access is `"read"`, whichever page or
51
+ * form posts to them.
52
+ *
53
+ * @param connection The connection id, as `config.externalConnections` of dms-database names it
54
+ */
55
+ exports.ExternalConnection = (0, decorators_1.MakeClassDecorator)((target, connection) => {
56
+ (0, interface_core_1.GetMetadata)(target, ExternalConnectionMeta).connection = connection;
57
+ });
58
+ /**
59
+ * Throws a 403 when the data controller writes to an external connection whose access is
60
+ * `"read"`; a controller not marked with {@link ExternalConnection} passes.
61
+ *
62
+ * @param controller The data controller's class
63
+ */
64
+ async function AssertConnectionWritable(controller) {
65
+ const { connection } = (0, interface_core_1.GetMetadata)(controller, ExternalConnectionMeta);
66
+ if (connection === undefined) {
67
+ return;
68
+ }
69
+ if ((await (0, exports.GetConnectionAccess)(connection)) !== "read-write") {
70
+ throw new interface_api_1.HTTPResult(HTTP_FORBIDDEN_STATUS, `Connection "${connection}" is read-only: the project allows no changes to its tables.`);
71
+ }
72
+ }
73
+ //# sourceMappingURL=connection-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-access.js","sourceRoot":"","sources":["../src/connection-access.ts"],"names":[],"mappings":";;;AAyCA,wEAKC;AA4CD,4DAaC;AAvGD,6DAAuD;AACvD,+DAIoC;AACpC,sEAG+C;AAE/C,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAalC;;GAEG;AACH,IAAiB,QAAQ,CAIxB;AAJD,WAAiB,QAAQ;IACV,uCAA8B,GAAG,IAAI,iCAAgB,EAE/D,CAAC;AACN,CAAC,EAJgB,QAAQ,wBAAR,QAAQ,QAIxB;AAED;;;;;;;GAOG;AACH,SAAgB,8BAA8B,CAC5C,EAAU,EACV,MAA8B;IAE9B,QAAQ,CAAC,8BAA8B,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACU,QAAA,mBAAmB,GAC9B,IAAA,kCAAiB,GAAqD,CAAC;AAEzE,2DAA2D;AAC3D,MAAM,sBAAsB;IAKE;IAJrB,MAAM,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC;IAEtB,UAAU,CAAqB;IAEtC,YAA4B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAEvD,wEAAwE;IACjE,OAAO,CAAC,MAA8B;QAC3C,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC;IACxC,CAAC;;AAGH;;;;;;;GAOG;AACU,QAAA,kBAAkB,GAAG,IAAA,+BAAkB,EAClD,CAAC,MAAM,EAAE,UAAkB,EAAE,EAAE;IAC7B,IAAA,4BAAW,EAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;AACtE,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACI,KAAK,UAAU,wBAAwB,CAC5C,UAA2B;IAE3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,4BAAW,EAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IACvE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;QAC7D,MAAM,IAAI,0BAAU,CAClB,qBAAqB,EACrB,eAAe,UAAU,8DAA8D,CACxF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -4,11 +4,24 @@ import { TenantMember, TenantMemberModel } from "../db";
4
4
  import { User } from "../auth/db";
5
5
  import { DefaultDataTypes } from "../base/data-types/default-types";
6
6
  declare const memberSettingDataAPI_base: import("@antelopejs/interface-core/decorators").Class<import("@antelopejs/interface-data-api").ExtractDefCallbacks<{
7
- edit: DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.EditParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [RequestContext, import("@antelopejs/interface-data-api/components").Parameters.EditParameters, import("@antelopejs/interface-data-api/components").Validation.WrittenBody, User, RequestContext, string | undefined, User]>;
7
+ edit: DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.EditParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [RequestContext, import("@antelopejs/interface-data-api/components").Parameters.EditParameters, import("@antelopejs/interface-data-api/components").Validation.WrittenBody, User, RequestContext, string | undefined, User]>;
8
8
  delete: DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.DeleteParameters, number | {
9
9
  deleted: number;
10
10
  }, [RequestContext, import("@antelopejs/interface-data-api/components").Parameters.DeleteParameters, Buffer<ArrayBufferLike>, User, RequestContext, string | undefined, User]>;
11
- get: DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, User, RequestContext, string | undefined, string | undefined, User]>;
11
+ exportStart: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<{
12
+ pluckMode: string;
13
+ }, {
14
+ jobId: string;
15
+ format: string;
16
+ extension: string;
17
+ }, [RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, string | undefined, string | undefined, string[], User, User]>;
18
+ exportStatus: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, {
19
+ status: string;
20
+ progress: number;
21
+ error?: string;
22
+ }, [RequestContext, string, User, User]>;
23
+ exportDownload: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, void, [RequestContext, string, User, User]>;
24
+ get: DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, User, RequestContext, string | undefined, string | undefined, User]>;
12
25
  list: DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("../base").TableViewListPage, [RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, User]>;
13
26
  select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("../base").TableViewListPage, [RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, User]>;
14
27
  count: DataControllerCallback;
@@ -1,6 +1,19 @@
1
1
  import { Role, RoleModel } from "../db";
2
2
  declare const roleSettingDataAPI_base: import("@antelopejs/interface-core/decorators").Class<import("@antelopejs/interface-data-api").ExtractDefCallbacks<{
3
- readonly get: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("../auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, string | undefined, import("../auth/db").User]>;
3
+ readonly exportStart: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<{
4
+ pluckMode: string;
5
+ }, {
6
+ jobId: string;
7
+ format: string;
8
+ extension: string;
9
+ }, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, string | undefined, string | undefined, string[], import("../auth/db").User, import("../auth/db").User]>;
10
+ readonly exportStatus: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, {
11
+ status: string;
12
+ progress: number;
13
+ error?: string;
14
+ }, [import("@antelopejs/interface-api").RequestContext, string, import("../auth/db").User, import("../auth/db").User]>;
15
+ readonly exportDownload: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<unknown, void, [import("@antelopejs/interface-api").RequestContext, string, import("../auth/db").User, import("../auth/db").User]>;
16
+ readonly get: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.GetParameters, import("../auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, string | undefined, import("../auth/db").User]>;
4
17
  readonly list: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("../base").TableViewListPage, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("../auth/db").User]>;
5
18
  readonly select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("../base").TableViewListPage, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.ListParameters, import("../auth/db").User]>;
6
19
  readonly count: import("@antelopejs/interface-data-api").DataControllerCallback;
@@ -9,7 +22,7 @@ declare const roleSettingDataAPI_base: import("@antelopejs/interface-core/decora
9
22
  readonly new: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.NewParameters, {
10
23
  _id: string;
11
24
  }, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.NewParameters, import("@antelopejs/interface-data-api/components").Validation.WrittenBody, import("../auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, import("../auth/db").User]>;
12
- readonly edit: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.EditParameters, import("@antelopejs/interface-data-api/metadata").RowFields, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.EditParameters, import("@antelopejs/interface-data-api/components").Validation.WrittenBody, import("../auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, import("../auth/db").User]>;
25
+ readonly edit: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.EditParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.EditParameters, import("@antelopejs/interface-data-api/components").Validation.WrittenBody, import("../auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, import("../auth/db").User]>;
13
26
  readonly delete: import("@antelopejs/interface-data-api").DataControllerCallback<import("@antelopejs/interface-data-api/components").Parameters.DeleteParameters, number | {
14
27
  deleted: number;
15
28
  }, [import("@antelopejs/interface-api").RequestContext, import("@antelopejs/interface-data-api/components").Parameters.DeleteParameters, Buffer<ArrayBufferLike>, import("../auth/db").User, import("@antelopejs/interface-api").RequestContext, string | undefined, import("../auth/db").User]>;
@@ -15,9 +15,9 @@ declare const ExportJobModel_base: {
15
15
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
16
16
  readonly table: import("@antelopejs/interface-database").Table<ExportJob>;
17
17
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
18
- get(id: string): PromiseLike<ExportJob | undefined>;
19
- getBy(index: keyof ExportJob, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<ExportJob[]>;
20
- getAll(): PromiseLike<ExportJob[]>;
18
+ get(id: string): Promise<ExportJob | undefined>;
19
+ getBy(index: keyof ExportJob, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<ExportJob[]>;
20
+ getAll(): Promise<ExportJob[]>;
21
21
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<ExportJob> | import("@antelopejs/interface-database-decorators").DeepPartial<ExportJob>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
22
22
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<ExportJob>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
23
23
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<ExportJob> & {
@@ -1,12 +1,13 @@
1
1
  import { type InviteMembershipPhase, InviteResolution } from "../tables/inviteResolutions.table";
2
+ import type { UserInvite } from "../tables/user_invites.table";
2
3
  import type { InviteDecision } from "../models/inviteResolutions.model";
3
4
  declare const InviteResolutionsModel_base: {
4
5
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
5
6
  readonly table: import("@antelopejs/interface-database").Table<InviteResolution>;
6
7
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
7
- get(id: string): PromiseLike<InviteResolution | undefined>;
8
- getBy(index: keyof InviteResolution, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<InviteResolution[]>;
9
- getAll(): PromiseLike<InviteResolution[]>;
8
+ get(id: string): Promise<InviteResolution | undefined>;
9
+ getBy(index: keyof InviteResolution, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<InviteResolution[]>;
10
+ getAll(): Promise<InviteResolution[]>;
10
11
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution> | import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
11
12
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
12
13
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution> & {
@@ -36,6 +37,18 @@ export declare class InviteResolutionsModel extends InviteResolutionsModel_base
36
37
  getForToken(token: string): Promise<InviteResolution | undefined>;
37
38
  /** Reads the canonical decision even after a lost insert acknowledgement. */
38
39
  decide(input: InviteDecision): Promise<InviteResolution>;
40
+ /**
41
+ * Claims the decision of a fresh invite that lost its email to a rival, so
42
+ * no replacement can be decided on it once it is withdrawn. The claim is
43
+ * stored completed: a withdrawn invite was never announced, so no hook
44
+ * reports its removal.
45
+ *
46
+ * @returns The invite's decision, and whether this call recorded it
47
+ */
48
+ withdraw(tenantId: string, invite: UserInvite): Promise<{
49
+ resolution: InviteResolution;
50
+ claimed: boolean;
51
+ }>;
39
52
  /** Advances a membership stage only against the exact observed revision. */
40
53
  advanceMembership(resolution: InviteResolution, membershipPhase: InviteMembershipPhase, field?: "membershipPhase" | "replacementPhase"): Promise<boolean>;
41
54
  }
@@ -67,6 +67,44 @@ class InviteResolutionsModel extends (0, interface_database_decorators_1.BasicDa
67
67
  }
68
68
  return resolution;
69
69
  }
70
+ /**
71
+ * Claims the decision of a fresh invite that lost its email to a rival, so
72
+ * no replacement can be decided on it once it is withdrawn. The claim is
73
+ * stored completed: a withdrawn invite was never announced, so no hook
74
+ * reports its removal.
75
+ *
76
+ * @returns The invite's decision, and whether this call recorded it
77
+ */
78
+ async withdraw(tenantId, invite) {
79
+ const id = decisionId(tenantId, invite._id);
80
+ const revision = (0, node_crypto_1.randomUUID)();
81
+ let insertError;
82
+ try {
83
+ await this.insert({
84
+ tenantId,
85
+ invite,
86
+ inviteToken: invite.token,
87
+ reason: "cancelled",
88
+ extensionKeys: [],
89
+ _id: id,
90
+ userId: null,
91
+ replacement: null,
92
+ revision,
93
+ membershipPhase: "pending",
94
+ replacementPhase: "pending",
95
+ completed: true,
96
+ decidedAt: new Date(),
97
+ });
98
+ }
99
+ catch (error) {
100
+ insertError = error;
101
+ }
102
+ const resolution = await this.get(id);
103
+ if (!resolution) {
104
+ throw insertError ?? new Error("Invite withdrawal was not persisted");
105
+ }
106
+ return { resolution, claimed: resolution.revision === revision };
107
+ }
70
108
  /** Advances a membership stage only against the exact observed revision. */
71
109
  async advanceMembership(resolution, membershipPhase, field = "membershipPhase") {
72
110
  const nextRevision = (0, node_crypto_1.randomUUID)();
@@ -1 +1 @@
1
- {"version":3,"file":"inviteResolutions.model.js","sourceRoot":"","sources":["../../../src/db/internal/inviteResolutions.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inviteResolutions.model.js","sourceRoot":"","sources":["../../../src/db/internal/inviteResolutions.model.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ declare const TenantLifecycleModel_base: {
3
3
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
4
4
  readonly table: import("@antelopejs/interface-database").Table<TenantLifecycle>;
5
5
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
6
- get(id: string): PromiseLike<TenantLifecycle | undefined>;
7
- getBy(index: keyof TenantLifecycle, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<TenantLifecycle[]>;
8
- getAll(): PromiseLike<TenantLifecycle[]>;
6
+ get(id: string): Promise<TenantLifecycle | undefined>;
7
+ getBy(index: keyof TenantLifecycle, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<TenantLifecycle[]>;
8
+ getAll(): Promise<TenantLifecycle[]>;
9
9
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantLifecycle> | import("@antelopejs/interface-database-decorators").DeepPartial<TenantLifecycle>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
10
10
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantLifecycle>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
11
11
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantLifecycle> & {
@@ -43,7 +43,7 @@ export declare class TenantLifecycleModel extends TenantLifecycleModel_base {
43
43
  finish(tenantId: string, attemptId: string): Promise<boolean>;
44
44
  /** Closes permanently before testing quiescence; active or uncertain work blocks deletion. */
45
45
  close(tenantId: string): Promise<void>;
46
- /** The tenant's row, or the legacy shared row, without initializing one. */
46
+ /** The tenant's row, without initializing one. */
47
47
  private existing;
48
48
  }
49
49
  export {};
@@ -114,10 +114,9 @@ class TenantLifecycleModel extends (0, interface_database_decorators_1.BasicData
114
114
  return;
115
115
  }
116
116
  }
117
- /** The tenant's row, or the legacy shared row, without initializing one. */
117
+ /** The tenant's row, without initializing one. */
118
118
  async existing(tenantId) {
119
- return ((await this.get(`${LIFECYCLE_ID}:${tenantId}`)) ??
120
- (await this.get(LIFECYCLE_ID)));
119
+ return this.get(`${LIFECYCLE_ID}:${tenantId}`);
121
120
  }
122
121
  }
123
122
  exports.TenantLifecycleModel = TenantLifecycleModel;
@@ -1 +1 @@
1
- {"version":3,"file":"tenantLifecycle.model.js","sourceRoot":"","sources":["../../../src/db/internal/tenantLifecycle.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenantLifecycle.model.js","sourceRoot":"","sources":["../../../src/db/internal/tenantLifecycle.model.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ declare const RoleModel_base: {
3
3
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
4
4
  readonly table: import("@antelopejs/interface-database").Table<Role>;
5
5
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
6
- get(id: string): PromiseLike<Role | undefined>;
7
- getBy(index: keyof Role, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<Role[]>;
8
- getAll(): PromiseLike<Role[]>;
6
+ get(id: string): Promise<Role | undefined>;
7
+ getBy(index: keyof Role, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<Role[]>;
8
+ getAll(): Promise<Role[]>;
9
9
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<Role> | import("@antelopejs/interface-database-decorators").DeepPartial<Role>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
10
10
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<Role>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
11
11
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<Role> & {
@@ -3,9 +3,9 @@ declare const TenantMemberModel_base: {
3
3
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
4
4
  readonly table: import("@antelopejs/interface-database").Table<TenantMember>;
5
5
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
6
- get(id: string): PromiseLike<TenantMember | undefined>;
7
- getBy(index: keyof TenantMember, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<TenantMember[]>;
8
- getAll(): PromiseLike<TenantMember[]>;
6
+ get(id: string): Promise<TenantMember | undefined>;
7
+ getBy(index: keyof TenantMember, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<TenantMember[]>;
8
+ getAll(): Promise<TenantMember[]>;
9
9
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantMember> | import("@antelopejs/interface-database-decorators").DeepPartial<TenantMember>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
10
10
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantMember>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
11
11
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantMember> & {
@@ -3,9 +3,9 @@ declare const TenantModel_base: {
3
3
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
4
4
  readonly table: import("@antelopejs/interface-database").Table<Tenant>;
5
5
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
6
- get(id: string): PromiseLike<Tenant | undefined>;
7
- getBy(index: keyof Tenant, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<Tenant[]>;
8
- getAll(): PromiseLike<Tenant[]>;
6
+ get(id: string): Promise<Tenant | undefined>;
7
+ getBy(index: keyof Tenant, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<Tenant[]>;
8
+ getAll(): Promise<Tenant[]>;
9
9
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<Tenant> | import("@antelopejs/interface-database-decorators").DeepPartial<Tenant>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
10
10
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<Tenant>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
11
11
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<Tenant> & {
@@ -7,9 +7,9 @@ declare const UserInviteModel_base: {
7
7
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
8
8
  readonly table: import("@antelopejs/interface-database").Table<UserInvite>;
9
9
  readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
10
- get(id: string): PromiseLike<UserInvite | undefined>;
11
- getBy(index: keyof UserInvite, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): PromiseLike<UserInvite[]>;
12
- getAll(): PromiseLike<UserInvite[]>;
10
+ get(id: string): Promise<UserInvite | undefined>;
11
+ getBy(index: keyof UserInvite, ...keys: import("@antelopejs/interface-database-decorators").IndexKey[]): Promise<UserInvite[]>;
12
+ getAll(): Promise<UserInvite[]>;
13
13
  insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<UserInvite> | import("@antelopejs/interface-database-decorators").DeepPartial<UserInvite>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
14
14
  update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<UserInvite>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
15
15
  update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<UserInvite> & {
@@ -32,6 +32,21 @@ export declare class UserInviteModel extends UserInviteModel_base {
32
32
  * @returns The invite or undefined if not found
33
33
  */
34
34
  getByEmail(email: string): Promise<UserInvite | undefined>;
35
+ /**
36
+ * Get an invite sent to the email other than the one with the given id
37
+ *
38
+ * @param email The email the invite was sent to
39
+ * @param exceptId The id of the invite to leave out
40
+ * @returns The invite or undefined if not found
41
+ */
42
+ getOtherByEmail(email: string, exceptId: string): Promise<UserInvite | undefined>;
43
+ /**
44
+ * Whether the invite is stored and is the only invite sent to its email
45
+ *
46
+ * @param invite The invite to look for
47
+ * @returns True when the email's invites are exactly this one
48
+ */
49
+ isOnlyInviteOfEmail(invite: UserInvite): Promise<boolean>;
35
50
  /**
36
51
  * Get an invite by its token
37
52
  *
@@ -20,6 +20,34 @@ class UserInviteModel extends (0, interface_database_decorators_1.BasicDataModel
20
20
  .run()
21
21
  .then((res) => (res ? UserInviteModel.fromDatabase(res) : undefined));
22
22
  }
23
+ /**
24
+ * Get an invite sent to the email other than the one with the given id
25
+ *
26
+ * @param email The email the invite was sent to
27
+ * @param exceptId The id of the invite to leave out
28
+ * @returns The invite or undefined if not found
29
+ */
30
+ getOtherByEmail(email, exceptId) {
31
+ return this.table
32
+ .getAll((0, users_model_1.normalizeEmail)(email), "email")
33
+ .filter((row) => row.key("_id").ne(exceptId))
34
+ .nth(0)
35
+ .default(undefined)
36
+ .run()
37
+ .then((res) => (res ? UserInviteModel.fromDatabase(res) : undefined));
38
+ }
39
+ /**
40
+ * Whether the invite is stored and is the only invite sent to its email
41
+ *
42
+ * @param invite The invite to look for
43
+ * @returns True when the email's invites are exactly this one
44
+ */
45
+ async isOnlyInviteOfEmail(invite) {
46
+ const rows = await this.table
47
+ .getAll((0, users_model_1.normalizeEmail)(invite.email), "email")
48
+ .run();
49
+ return rows.length === 1 && rows[0]?._id === invite._id;
50
+ }
23
51
  /**
24
52
  * Get an invite by its token
25
53
  *
@@ -1 +1 @@
1
- {"version":3,"file":"user_invites.model.js","sourceRoot":"","sources":["../../../src/db/models/user_invites.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,kEAAkE;AAClE,oEAAmE;AACnE,qEAGsC;AAOtC,MAAa,eAAgB,SAAQ,IAAA,8CAAc,EACjD,+BAAU,EACV,4CAAuB,CACxB;IACC;;;;;OAKG;IACH,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,IAAA,4BAAc,EAAC,KAAK,CAAC,EAAE,OAAO,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,SAAS,CAAC;aAClB,GAAG,EAAE;aACL,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,SAAS,CAAC;aAClB,GAAG,EAAE;aACL,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,oBAAoB,CACxB,KAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK;aACzB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,SAAS,CAAC;aAClB,GAAG,EAAE,CAAC;QACT,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAA,6BAAc,EAAC,GAAG,CAAC,EAAE,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1D,CAAC;CACF;AA/DD,0CA+DC"}
1
+ {"version":3,"file":"user_invites.model.js","sourceRoot":"","sources":["../../../src/db/models/user_invites.model.ts"],"names":[],"mappings":"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"}