@venizia/ignis 0.2.0-13 → 0.2.0-15

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 (182) hide show
  1. package/dist/base/applications/base.d.ts +11 -17
  2. package/dist/base/applications/base.d.ts.map +1 -1
  3. package/dist/base/applications/base.js +49 -58
  4. package/dist/base/applications/base.js.map +1 -1
  5. package/dist/base/applications/boot-steps.d.ts +13 -0
  6. package/dist/base/applications/boot-steps.d.ts.map +1 -0
  7. package/dist/base/applications/boot-steps.js +23 -0
  8. package/dist/base/applications/boot-steps.js.map +1 -0
  9. package/dist/base/applications/common/index.d.ts +2 -0
  10. package/dist/base/applications/common/index.d.ts.map +1 -0
  11. package/dist/base/applications/common/index.js +18 -0
  12. package/dist/base/applications/common/index.js.map +1 -0
  13. package/dist/base/applications/common/types.d.ts.map +1 -0
  14. package/dist/base/applications/common/types.js.map +1 -0
  15. package/dist/base/applications/index.d.ts +2 -1
  16. package/dist/base/applications/index.d.ts.map +1 -1
  17. package/dist/base/applications/index.js +2 -1
  18. package/dist/base/applications/index.js.map +1 -1
  19. package/dist/base/applications/server.d.ts +1 -1
  20. package/dist/base/applications/server.d.ts.map +1 -1
  21. package/dist/base/middlewares/app-error/app-error.middleware.d.ts +3 -2
  22. package/dist/base/middlewares/app-error/app-error.middleware.d.ts.map +1 -1
  23. package/dist/base/middlewares/app-error/app-error.middleware.js +4 -3
  24. package/dist/base/middlewares/app-error/app-error.middleware.js.map +1 -1
  25. package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts.map +1 -1
  26. package/dist/base/middlewares/request-spy/request-spy.middleware.js +2 -1
  27. package/dist/base/middlewares/request-spy/request-spy.middleware.js.map +1 -1
  28. package/dist/components/api-reference/component.js +2 -2
  29. package/dist/components/api-reference/component.js.map +1 -1
  30. package/dist/components/api-reference/index.d.ts +1 -1
  31. package/dist/components/api-reference/index.d.ts.map +1 -1
  32. package/dist/components/api-reference/index.js +1 -1
  33. package/dist/components/api-reference/index.js.map +1 -1
  34. package/dist/components/api-reference/ui/factory.d.ts +14 -0
  35. package/dist/components/api-reference/ui/factory.d.ts.map +1 -0
  36. package/dist/components/api-reference/ui/factory.js +53 -0
  37. package/dist/components/api-reference/ui/factory.js.map +1 -0
  38. package/dist/components/api-reference/ui/index.d.ts +4 -0
  39. package/dist/components/api-reference/ui/index.d.ts.map +1 -0
  40. package/dist/components/api-reference/ui/index.js +20 -0
  41. package/dist/components/api-reference/ui/index.js.map +1 -0
  42. package/dist/components/api-reference/ui/scalar.d.ts +8 -0
  43. package/dist/components/api-reference/ui/scalar.d.ts.map +1 -0
  44. package/dist/components/api-reference/ui/scalar.js +28 -0
  45. package/dist/components/api-reference/ui/scalar.js.map +1 -0
  46. package/dist/components/api-reference/ui/swagger.d.ts +8 -0
  47. package/dist/components/api-reference/ui/swagger.d.ts.map +1 -0
  48. package/dist/components/api-reference/ui/swagger.js +28 -0
  49. package/dist/components/api-reference/ui/swagger.js.map +1 -0
  50. package/dist/components/auth/authenticate/controllers/factory.d.ts +29 -2
  51. package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
  52. package/dist/components/auth/authenticate/strategies/index.d.ts +1 -1
  53. package/dist/components/auth/authenticate/strategies/index.d.ts.map +1 -1
  54. package/dist/components/auth/authenticate/strategies/index.js +1 -1
  55. package/dist/components/auth/authenticate/strategies/index.js.map +1 -1
  56. package/dist/components/auth/authenticate/strategies/jwks/index.d.ts +3 -0
  57. package/dist/components/auth/authenticate/strategies/jwks/index.d.ts.map +1 -0
  58. package/dist/components/auth/authenticate/strategies/jwks/index.js +19 -0
  59. package/dist/components/auth/authenticate/strategies/jwks/index.js.map +1 -0
  60. package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts +13 -0
  61. package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts.map +1 -0
  62. package/dist/components/auth/authenticate/strategies/{jwks.strategy.js → jwks/issuer.js} +4 -27
  63. package/dist/components/auth/authenticate/strategies/jwks/issuer.js.map +1 -0
  64. package/dist/components/auth/authenticate/strategies/{jwks.strategy.d.ts → jwks/verifier.d.ts} +2 -10
  65. package/dist/components/auth/authenticate/strategies/jwks/verifier.d.ts.map +1 -0
  66. package/dist/components/auth/authenticate/strategies/jwks/verifier.js +45 -0
  67. package/dist/components/auth/authenticate/strategies/jwks/verifier.js.map +1 -0
  68. package/dist/components/auth/authorize/adapters/base-filtered.d.ts +1 -1
  69. package/dist/components/auth/authorize/adapters/base-filtered.d.ts.map +1 -1
  70. package/dist/components/auth/authorize/adapters/common/index.d.ts +2 -0
  71. package/dist/components/auth/authorize/adapters/common/index.d.ts.map +1 -0
  72. package/dist/components/auth/authorize/adapters/common/index.js +18 -0
  73. package/dist/components/auth/authorize/adapters/common/index.js.map +1 -0
  74. package/dist/components/auth/authorize/adapters/{types.d.ts → common/types.d.ts} +1 -1
  75. package/dist/components/auth/authorize/adapters/common/types.d.ts.map +1 -0
  76. package/dist/components/auth/authorize/adapters/common/types.js.map +1 -0
  77. package/dist/components/auth/authorize/adapters/connector.d.ts +1 -1
  78. package/dist/components/auth/authorize/adapters/connector.d.ts.map +1 -1
  79. package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts +1 -1
  80. package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts.map +1 -1
  81. package/dist/components/auth/authorize/adapters/index.d.ts +2 -2
  82. package/dist/components/auth/authorize/adapters/index.d.ts.map +1 -1
  83. package/dist/components/auth/authorize/adapters/index.js +2 -2
  84. package/dist/components/auth/authorize/adapters/index.js.map +1 -1
  85. package/dist/components/auth/authorize/adapters/{scoped-casbin.adapter.d.ts → scoped-casbin/adapter.d.ts} +7 -66
  86. package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.d.ts.map +1 -0
  87. package/dist/components/auth/authorize/adapters/{scoped-casbin.adapter.js → scoped-casbin/adapter.js} +14 -20
  88. package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.js.map +1 -0
  89. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts +2 -0
  90. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts.map +1 -0
  91. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js +5 -0
  92. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js.map +1 -0
  93. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts +3 -0
  94. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts.map +1 -0
  95. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js +19 -0
  96. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js.map +1 -0
  97. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts +50 -0
  98. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts.map +1 -0
  99. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js +3 -0
  100. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js.map +1 -0
  101. package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts +4 -0
  102. package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts.map +1 -0
  103. package/dist/components/auth/authorize/adapters/scoped-casbin/index.js +19 -0
  104. package/dist/components/auth/authorize/adapters/scoped-casbin/index.js.map +1 -0
  105. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts +17 -0
  106. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts.map +1 -0
  107. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js +11 -0
  108. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js.map +1 -0
  109. package/dist/components/mail/common/constants.d.ts +7 -0
  110. package/dist/components/mail/common/constants.d.ts.map +1 -1
  111. package/dist/components/mail/common/constants.js +7 -1
  112. package/dist/components/mail/common/constants.js.map +1 -1
  113. package/dist/components/mail/common/types/index.d.ts +6 -0
  114. package/dist/components/mail/common/types/index.d.ts.map +1 -0
  115. package/dist/components/mail/common/types/index.js +22 -0
  116. package/dist/components/mail/common/types/index.js.map +1 -0
  117. package/dist/components/mail/common/types/message.d.ts +48 -0
  118. package/dist/components/mail/common/types/message.d.ts.map +1 -0
  119. package/dist/components/mail/common/types/message.js +3 -0
  120. package/dist/components/mail/common/types/message.js.map +1 -0
  121. package/dist/components/mail/common/types/options.d.ts +42 -0
  122. package/dist/components/mail/common/types/options.d.ts.map +1 -0
  123. package/dist/components/mail/common/types/options.js +3 -0
  124. package/dist/components/mail/common/types/options.js.map +1 -0
  125. package/dist/components/mail/common/types/queue.d.ts +53 -0
  126. package/dist/components/mail/common/types/queue.d.ts.map +1 -0
  127. package/dist/components/mail/common/types/queue.js +3 -0
  128. package/dist/components/mail/common/types/queue.js.map +1 -0
  129. package/dist/components/mail/common/types/template.d.ts +33 -0
  130. package/dist/components/mail/common/types/template.d.ts.map +1 -0
  131. package/dist/components/mail/common/types/template.js +3 -0
  132. package/dist/components/mail/common/types/template.js.map +1 -0
  133. package/dist/components/mail/common/types/verification.d.ts +26 -0
  134. package/dist/components/mail/common/types/verification.d.ts.map +1 -0
  135. package/dist/components/mail/common/types/verification.js +3 -0
  136. package/dist/components/mail/common/types/verification.js.map +1 -0
  137. package/dist/components/mail/services/generators/index.d.ts +4 -0
  138. package/dist/components/mail/services/generators/index.d.ts.map +1 -0
  139. package/dist/components/mail/services/generators/index.js +20 -0
  140. package/dist/components/mail/services/generators/index.js.map +1 -0
  141. package/dist/components/mail/services/generators/numeric-code.d.ts +7 -0
  142. package/dist/components/mail/services/generators/numeric-code.d.ts.map +1 -0
  143. package/dist/components/mail/services/generators/numeric-code.js +20 -0
  144. package/dist/components/mail/services/generators/numeric-code.js.map +1 -0
  145. package/dist/components/mail/services/generators/random-token.d.ts +7 -0
  146. package/dist/components/mail/services/generators/random-token.d.ts.map +1 -0
  147. package/dist/components/mail/services/generators/random-token.js +18 -0
  148. package/dist/components/mail/services/generators/random-token.js.map +1 -0
  149. package/dist/components/mail/services/{generator.service.d.ts → generators/verification-data.d.ts} +2 -10
  150. package/dist/components/mail/services/generators/verification-data.d.ts.map +1 -0
  151. package/dist/components/mail/services/{generator.service.js → generators/verification-data.js} +5 -29
  152. package/dist/components/mail/services/generators/verification-data.js.map +1 -0
  153. package/dist/components/mail/services/index.d.ts +1 -1
  154. package/dist/components/mail/services/index.d.ts.map +1 -1
  155. package/dist/components/mail/services/index.js +1 -1
  156. package/dist/components/mail/services/index.js.map +1 -1
  157. package/dist/components/static-asset/controller/factory.d.ts +30 -2
  158. package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
  159. package/dist/index.d.ts +1 -1
  160. package/dist/index.d.ts.map +1 -1
  161. package/package.json +22 -22
  162. package/dist/base/applications/types.d.ts.map +0 -1
  163. package/dist/base/applications/types.js.map +0 -1
  164. package/dist/components/api-reference/ui-factory.d.ts +0 -24
  165. package/dist/components/api-reference/ui-factory.d.ts.map +0 -1
  166. package/dist/components/api-reference/ui-factory.js +0 -97
  167. package/dist/components/api-reference/ui-factory.js.map +0 -1
  168. package/dist/components/auth/authenticate/strategies/jwks.strategy.d.ts.map +0 -1
  169. package/dist/components/auth/authenticate/strategies/jwks.strategy.js.map +0 -1
  170. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts.map +0 -1
  171. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js.map +0 -1
  172. package/dist/components/auth/authorize/adapters/types.d.ts.map +0 -1
  173. package/dist/components/auth/authorize/adapters/types.js.map +0 -1
  174. package/dist/components/mail/common/types.d.ts +0 -201
  175. package/dist/components/mail/common/types.d.ts.map +0 -1
  176. package/dist/components/mail/common/types.js +0 -10
  177. package/dist/components/mail/common/types.js.map +0 -1
  178. package/dist/components/mail/services/generator.service.d.ts.map +0 -1
  179. package/dist/components/mail/services/generator.service.js.map +0 -1
  180. /package/dist/base/applications/{types.d.ts → common/types.d.ts} +0 -0
  181. /package/dist/base/applications/{types.js → common/types.js} +0 -0
  182. /package/dist/components/auth/authorize/adapters/{types.js → common/types.js} +0 -0
@@ -15,8 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./base-filtered"), exports);
18
+ __exportStar(require("./common"), exports);
18
19
  __exportStar(require("./connector"), exports);
19
20
  __exportStar(require("./custom-grant-expander"), exports);
20
- __exportStar(require("./scoped-casbin.adapter"), exports);
21
- __exportStar(require("./types"), exports);
21
+ __exportStar(require("./scoped-casbin"), exports);
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,8CAA4B;AAC5B,0DAAwC;AACxC,0DAAwC;AACxC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,2CAAyB;AACzB,8CAA4B;AAC5B,0DAAwC;AACxC,kDAAgC"}
@@ -1,70 +1,11 @@
1
- import type { IdType } from '../../../../base';
2
- import type { TConstValue, TNullable } from '@venizia/ignis-helpers/common';
1
+ import type { IdType } from '../../../../../base';
3
2
  import { type Model } from 'casbin';
4
3
  import { type SQL } from 'drizzle-orm';
5
- import { BaseFilteredAdapter } from './base-filtered';
6
- import { CustomGrantExpander } from './custom-grant-expander';
7
- import type { ICasbinPolicySource, IScopedCasbinEntities } from './types';
8
- export type TDomainHierarchyEdge = {
9
- child: string;
10
- parent: string;
11
- };
12
- export interface IScopedCasbinPolicyFilter {
13
- principal: {
14
- type: string;
15
- id: IdType;
16
- };
17
- }
18
- /** A grant row as fetched, before it becomes casbin lines. Permission columns are null when the join misses. */
19
- export type TGrantRow = {
20
- subjectId: IdType;
21
- objectCode: TNullable<string>;
22
- objectSubject: TNullable<string>;
23
- objectMethod: TNullable<string>;
24
- action: TNullable<string>;
25
- effect: TNullable<string>;
26
- domain: TNullable<string>;
27
- metadata?: unknown;
28
- };
29
- export declare class PrincipalPolicyEdges {
30
- static readonly DIRECT = "direct";
31
- static readonly ROLE_EDGE = "roleEdge";
32
- static readonly ROLE_GRANT = "roleGrant";
33
- static readonly DOMAIN_EDGE = "domainEdge";
34
- }
35
- /** A row from the single principal-policy statement; `kind` says which branch produced it. */
36
- export type TPrincipalPolicyRow = TGrantRow & {
37
- kind: TConstValue<typeof PrincipalPolicyEdges>;
38
- variant: string;
39
- targetType: TNullable<string>;
40
- targetId: IdType;
41
- };
42
- /**
43
- * Per-principal domain edges sourced from business data the app already owns (e.g. a tenant
44
- * foreign key) - read live on every cache miss, never duplicated into `domain_inherits`. An app
45
- * whose hierarchy genuinely lives in `domain_inherits` rows does not need this hook at all: the
46
- * DOMAIN_EDGE branch above already emits those as `g3` lines. `domains` is the principal's own
47
- * domain closure, already `<Type>_<id>` tokens; the returned edges must be too - neither side
48
- * re-formats them.
49
- *
50
- * `domains` is the principal's **membership closure** - built from `join_domain` rows plus both
51
- * ends of every `domainEdge` row. It is NOT the set of domains the principal holds a role in via
52
- * `assign_role`: a principal can carry `assign_role` at a domain it never joined. A hook ported
53
- * from a mechanism that derived its domains from `assign_role` will silently lose access for
54
- * exactly those principals - no error, no log, just fewer edges reaching `g`/`g2`/`g3` than before.
55
- *
56
- * More than one hierarchy axis (e.g. an organizer tree and a separate region tree)? Write one
57
- * function per axis and concatenate their results here - this hook deliberately takes a single
58
- * function, so composition stays visible in the application, not hidden inside the framework:
59
- * `resolveDomainEdges: async opts => [...(await organizerEdges(opts)), ...(await regionEdges(opts))]`.
60
- */
61
- export type TResolveDomainEdgesFn = (opts: {
62
- principal: {
63
- type: string;
64
- id: IdType;
65
- };
66
- domains: string[];
67
- }) => Promise<TDomainHierarchyEdge[]>;
4
+ import { BaseFilteredAdapter } from '../base-filtered';
5
+ import { CustomGrantExpander } from '../custom-grant-expander';
6
+ import type { ICasbinPolicySource, IScopedCasbinEntities } from '../common';
7
+ import { type TPrincipalPolicyRow } from './policy-edges';
8
+ import { type IScopedCasbinPolicyFilter, type TGrantRow, type TResolveDomainEdgesFn } from './common';
68
9
  /**
69
10
  * Filtered casbin adapter for the scoped RBAC model: loads ONE principal's edges (role assignments,
70
11
  * memberships, grants) plus the shared structural hierarchy trees as casbin lines. Read-only.
@@ -149,4 +90,4 @@ export declare class ScopedCasbinAdapter extends BaseFilteredAdapter<IScopedCasb
149
90
  /** The two code-fixed structural trees only (`g4` resource, `g5` action) - constant regardless of tenant count. Domain edges (`g3`) grow with the domain count, so they are principal-scoped in {@link queryPrincipalPolicies} instead. */
150
91
  protected queryEdgePolicies(): Promise<string[]>;
151
92
  }
152
- //# sourceMappingURL=scoped-casbin.adapter.d.ts.map
93
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/components/auth/authorize/adapters/scoped-casbin/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScopedCasbinAdapter = exports.PrincipalPolicyEdges = void 0;
3
+ exports.ScopedCasbinAdapter = void 0;
4
4
  const drizzle_orm_1 = require("drizzle-orm");
5
5
  const ignis_kernel_1 = require("@venizia/ignis-kernel");
6
6
  const ignis_kernel_2 = require("@venizia/ignis-kernel");
7
- const base_filtered_1 = require("./base-filtered");
8
- const custom_grant_expander_1 = require("./custom-grant-expander");
9
- class PrincipalPolicyEdges {
10
- static { this.DIRECT = 'direct'; }
11
- static { this.ROLE_EDGE = 'roleEdge'; }
12
- static { this.ROLE_GRANT = 'roleGrant'; }
13
- static { this.DOMAIN_EDGE = 'domainEdge'; }
14
- }
15
- exports.PrincipalPolicyEdges = PrincipalPolicyEdges;
16
- const DEFAULT_SCHEMA = 'public';
7
+ const base_filtered_1 = require("../base-filtered");
8
+ const custom_grant_expander_1 = require("../custom-grant-expander");
9
+ const policy_edges_1 = require("./policy-edges");
10
+ const common_1 = require("./common");
17
11
  /**
18
12
  * Filtered casbin adapter for the scoped RBAC model: loads ONE principal's edges (role assignments,
19
13
  * memberships, grants) plus the shared structural hierarchy trees as casbin lines. Read-only.
@@ -52,15 +46,15 @@ class ScopedCasbinAdapter extends base_filtered_1.BaseFilteredAdapter {
52
46
  const domainClosure = new Set();
53
47
  for (const row of principalRows) {
54
48
  switch (row.kind) {
55
- case PrincipalPolicyEdges.ROLE_EDGE: {
49
+ case policy_edges_1.PrincipalPolicyEdges.ROLE_EDGE: {
56
50
  lines.push(`${ignis_kernel_2.AuthorizationPolicyVariants.ROLE_INHERITS.rule}, ${principals.role}_${row.subjectId}, ${principals.role}_${row.targetId}, *`);
57
51
  break;
58
52
  }
59
- case PrincipalPolicyEdges.ROLE_GRANT: {
53
+ case policy_edges_1.PrincipalPolicyEdges.ROLE_GRANT: {
60
54
  roleGrants.push(row);
61
55
  break;
62
56
  }
63
- case PrincipalPolicyEdges.DOMAIN_EDGE: {
57
+ case policy_edges_1.PrincipalPolicyEdges.DOMAIN_EDGE: {
64
58
  lines.push(`${ignis_kernel_2.AuthorizationPolicyVariants.DOMAIN_INHERITS.rule}, ${row.subjectId}, ${row.targetId}`);
65
59
  // Both ends are, by construction, members of the principal's domain_closure CTE.
66
60
  domainClosure.add(String(row.subjectId));
@@ -140,7 +134,7 @@ class ScopedCasbinAdapter extends base_filtered_1.BaseFilteredAdapter {
140
134
  }
141
135
  /** Schema for a table, defaulting to `public`. */
142
136
  schemaOf(table) {
143
- return table.schemaName ?? DEFAULT_SCHEMA;
137
+ return table.schemaName ?? common_1.DEFAULT_SCHEMA;
144
138
  }
145
139
  /** The casbin domain token, built from the stored pair - one expression for every SELECT so they cannot drift. NULL reaches `buildGrantLines` as `ANY_MEMBER`. The alias is emitted raw for the same reason as in `softDeleteClause`: quoting folds it to a different case than the unquoted FROM alias. */
146
140
  domainTokenSelection(opts) {
@@ -214,7 +208,7 @@ class ScopedCasbinAdapter extends base_filtered_1.BaseFilteredAdapter {
214
208
  )
215
209
 
216
210
  SELECT
217
- ${PrincipalPolicyEdges.DIRECT}::text AS "kind",
211
+ ${policy_edges_1.PrincipalPolicyEdges.DIRECT}::text AS "kind",
218
212
  policyDefinition.variant,
219
213
  policyDefinition.subject_id::text AS "subjectId",
220
214
  policyDefinition.target_type AS "targetType",
@@ -243,7 +237,7 @@ class ScopedCasbinAdapter extends base_filtered_1.BaseFilteredAdapter {
243
237
  UNION ALL
244
238
 
245
239
  SELECT
246
- ${PrincipalPolicyEdges.ROLE_EDGE}::text AS "kind",
240
+ ${policy_edges_1.PrincipalPolicyEdges.ROLE_EDGE}::text AS "kind",
247
241
  policyDefinition.variant,
248
242
  policyDefinition.subject_id::text AS "subjectId",
249
243
  policyDefinition.target_type AS "targetType",
@@ -261,7 +255,7 @@ class ScopedCasbinAdapter extends base_filtered_1.BaseFilteredAdapter {
261
255
  UNION ALL
262
256
 
263
257
  SELECT
264
- ${PrincipalPolicyEdges.ROLE_GRANT}::text AS "kind",
258
+ ${policy_edges_1.PrincipalPolicyEdges.ROLE_GRANT}::text AS "kind",
265
259
  policyDefinition.variant,
266
260
  policyDefinition.subject_id::text AS "subjectId",
267
261
  policyDefinition.target_type AS "targetType",
@@ -282,7 +276,7 @@ class ScopedCasbinAdapter extends base_filtered_1.BaseFilteredAdapter {
282
276
  UNION ALL
283
277
 
284
278
  SELECT
285
- ${PrincipalPolicyEdges.DOMAIN_EDGE}::text AS "kind",
279
+ ${policy_edges_1.PrincipalPolicyEdges.DOMAIN_EDGE}::text AS "kind",
286
280
  policyDefinition.variant,
287
281
  policyDefinition.subject_type || '_' || policyDefinition.subject_id::text AS "subjectId",
288
282
  NULL AS "targetType",
@@ -396,4 +390,4 @@ class ScopedCasbinAdapter extends base_filtered_1.BaseFilteredAdapter {
396
390
  }
397
391
  }
398
392
  exports.ScopedCasbinAdapter = ScopedCasbinAdapter;
399
- //# sourceMappingURL=scoped-casbin.adapter.js.map
393
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../../../src/components/auth/authorize/adapters/scoped-casbin/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_SCHEMA = "public";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/auth/authorize/adapters/scoped-casbin/common/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,WAAW,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_SCHEMA = void 0;
4
+ exports.DEFAULT_SCHEMA = 'public';
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../src/components/auth/authorize/adapters/scoped-casbin/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './types';
2
+ export * from './constants';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/auth/authorize/adapters/scoped-casbin/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./constants"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/components/auth/authorize/adapters/scoped-casbin/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B"}
@@ -0,0 +1,50 @@
1
+ import type { IdType } from '../../../../../../base';
2
+ import type { TNullable } from '@venizia/ignis-helpers/common';
3
+ export type TDomainHierarchyEdge = {
4
+ child: string;
5
+ parent: string;
6
+ };
7
+ export interface IScopedCasbinPolicyFilter {
8
+ principal: {
9
+ type: string;
10
+ id: IdType;
11
+ };
12
+ }
13
+ /** A grant row as fetched, before it becomes casbin lines. Permission columns are null when the join misses. */
14
+ export type TGrantRow = {
15
+ subjectId: IdType;
16
+ objectCode: TNullable<string>;
17
+ objectSubject: TNullable<string>;
18
+ objectMethod: TNullable<string>;
19
+ action: TNullable<string>;
20
+ effect: TNullable<string>;
21
+ domain: TNullable<string>;
22
+ metadata?: unknown;
23
+ };
24
+ /**
25
+ * Per-principal domain edges sourced from business data the app already owns (e.g. a tenant
26
+ * foreign key) - read live on every cache miss, never duplicated into `domain_inherits`. An app
27
+ * whose hierarchy genuinely lives in `domain_inherits` rows does not need this hook at all: the
28
+ * DOMAIN_EDGE branch above already emits those as `g3` lines. `domains` is the principal's own
29
+ * domain closure, already `<Type>_<id>` tokens; the returned edges must be too - neither side
30
+ * re-formats them.
31
+ *
32
+ * `domains` is the principal's **membership closure** - built from `join_domain` rows plus both
33
+ * ends of every `domainEdge` row. It is NOT the set of domains the principal holds a role in via
34
+ * `assign_role`: a principal can carry `assign_role` at a domain it never joined. A hook ported
35
+ * from a mechanism that derived its domains from `assign_role` will silently lose access for
36
+ * exactly those principals - no error, no log, just fewer edges reaching `g`/`g2`/`g3` than before.
37
+ *
38
+ * More than one hierarchy axis (e.g. an organizer tree and a separate region tree)? Write one
39
+ * function per axis and concatenate their results here - this hook deliberately takes a single
40
+ * function, so composition stays visible in the application, not hidden inside the framework:
41
+ * `resolveDomainEdges: async opts => [...(await organizerEdges(opts)), ...(await regionEdges(opts))]`.
42
+ */
43
+ export type TResolveDomainEdgesFn = (opts: {
44
+ principal: {
45
+ type: string;
46
+ id: IdType;
47
+ };
48
+ domains: string[];
49
+ }) => Promise<TDomainHierarchyEdge[]>;
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/auth/authorize/adapters/scoped-casbin/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,gHAAgH;AAChH,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE;IACzC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,KAAK,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/auth/authorize/adapters/scoped-casbin/common/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export type { IScopedCasbinPolicyFilter, TDomainHierarchyEdge, TGrantRow, TResolveDomainEdgesFn, } from './common';
2
+ export * from './policy-edges';
3
+ export * from './adapter';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/auth/authorize/adapters/scoped-casbin/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,SAAS,EACT,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./policy-edges"), exports);
18
+ __exportStar(require("./adapter"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/auth/authorize/adapters/scoped-casbin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAQA,iDAA+B;AAC/B,4CAA0B"}
@@ -0,0 +1,17 @@
1
+ import type { IdType } from '../../../../../base';
2
+ import type { TConstValue, TNullable } from '@venizia/ignis-helpers/common';
3
+ import type { TGrantRow } from './common';
4
+ export declare class PrincipalPolicyEdges {
5
+ static readonly DIRECT = "direct";
6
+ static readonly ROLE_EDGE = "roleEdge";
7
+ static readonly ROLE_GRANT = "roleGrant";
8
+ static readonly DOMAIN_EDGE = "domainEdge";
9
+ }
10
+ /** A row from the single principal-policy statement; `kind` says which branch produced it. */
11
+ export type TPrincipalPolicyRow = TGrantRow & {
12
+ kind: TConstValue<typeof PrincipalPolicyEdges>;
13
+ variant: string;
14
+ targetType: TNullable<string>;
15
+ targetId: IdType;
16
+ };
17
+ //# sourceMappingURL=policy-edges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-edges.d.ts","sourceRoot":"","sources":["../../../../../../src/components/auth/authorize/adapters/scoped-casbin/policy-edges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,SAAS,cAAc;IACvC,MAAM,CAAC,QAAQ,CAAC,UAAU,eAAe;IACzC,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAgB;CAC5C;AAED,8FAA8F;AAC9F,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG;IAC5C,IAAI,EAAE,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrincipalPolicyEdges = void 0;
4
+ class PrincipalPolicyEdges {
5
+ static { this.DIRECT = 'direct'; }
6
+ static { this.ROLE_EDGE = 'roleEdge'; }
7
+ static { this.ROLE_GRANT = 'roleGrant'; }
8
+ static { this.DOMAIN_EDGE = 'domainEdge'; }
9
+ }
10
+ exports.PrincipalPolicyEdges = PrincipalPolicyEdges;
11
+ //# sourceMappingURL=policy-edges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-edges.js","sourceRoot":"","sources":["../../../../../../src/components/auth/authorize/adapters/scoped-casbin/policy-edges.ts"],"names":[],"mappings":";;;AAIA,MAAa,oBAAoB;aACf,WAAM,GAAG,QAAQ,CAAC;aAClB,cAAS,GAAG,UAAU,CAAC;aACvB,eAAU,GAAG,WAAW,CAAC;aACzB,gBAAW,GAAG,YAAY,CAAC;;AAJ7C,oDAKC"}
@@ -1,3 +1,4 @@
1
+ import type { TConstValue } from '@venizia/ignis-helpers/common';
1
2
  export declare class MailDefaults {
2
3
  static readonly BATCH_CONCURRENCY = 5;
3
4
  static readonly FALLBACK_FROM = "noreply@example.com";
@@ -28,4 +29,10 @@ export declare class BullMQExecutorModes {
28
29
  static readonly MODE_SET: Set<string>;
29
30
  static isValid(value: string): boolean;
30
31
  }
32
+ export declare class MailProviders {
33
+ static readonly NODEMAILER = "nodemailer";
34
+ static readonly MAILGUN = "mailgun";
35
+ static readonly CUSTOM = "custom";
36
+ }
37
+ export type TMailProvider = TConstValue<typeof MailProviders>;
31
38
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/mail/common/constants.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAK;IACtC,MAAM,CAAC,QAAQ,CAAC,aAAa,yBAAyB;CACvD;AAED,yKAAyK;AACzK,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,SAElC;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,SAAiE;IAC5F,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAEhC;IACH,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAE9B;IACH,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAE9B;IACH,MAAM,CAAC,QAAQ,CAAC,kBAAkB,SAE/B;CACJ;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CAAC,iBAAiB,mDAAmD;CACrF;AAED,qBAAa,sBAAsB;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,cAAc,oBAAoB;IAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAElC,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAoE;IAC9F,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,WAAW,iBAAiB;IAC5C,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAE9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAmE;IAC3F,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/mail/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,qBAAa,YAAY;IACvB,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAK;IACtC,MAAM,CAAC,QAAQ,CAAC,aAAa,yBAAyB;CACvD;AAED,yKAAyK;AACzK,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,SAElC;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,SAAiE;IAC5F,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAEhC;IACH,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAE9B;IACH,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAE9B;IACH,MAAM,CAAC,QAAQ,CAAC,kBAAkB,SAE/B;CACJ;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CAAC,iBAAiB,mDAAmD;CACrF;AAED,qBAAa,sBAAsB;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,cAAc,oBAAoB;IAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAElC,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAoE;IAC9F,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,WAAW,iBAAiB;IAC5C,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAE9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAmE;IAC3F,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;CACnC;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BullMQExecutorModes = exports.MailQueueExecutorTypes = exports.MailExecutorErrors = exports.MailErrorCodes = exports.MailDefaults = void 0;
3
+ exports.MailProviders = exports.BullMQExecutorModes = exports.MailQueueExecutorTypes = exports.MailExecutorErrors = exports.MailErrorCodes = exports.MailDefaults = void 0;
4
4
  const core_1 = require("@venizia/ignis-helpers/core");
5
5
  class MailDefaults {
6
6
  static { this.BATCH_CONCURRENCY = 5; }
@@ -51,4 +51,10 @@ class BullMQExecutorModes {
51
51
  }
52
52
  }
53
53
  exports.BullMQExecutorModes = BullMQExecutorModes;
54
+ class MailProviders {
55
+ static { this.NODEMAILER = 'nodemailer'; }
56
+ static { this.MAILGUN = 'mailgun'; }
57
+ static { this.CUSTOM = 'custom'; }
58
+ }
59
+ exports.MailProviders = MailProviders;
54
60
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/mail/common/constants.ts"],"names":[],"mappings":";;;AAAA,sDAA0D;AAE1D,MAAa,YAAY;aACP,sBAAiB,GAAG,CAAC,CAAC;aACtB,kBAAa,GAAG,qBAAqB,CAAC;;AAFxD,oCAGC;AAED,yKAAyK;AACzK,MAAa,cAAc;aACT,0BAAqB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACxD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,uBAAuB,CAAC;KACjD,CAAC,CAAC;aACa,gBAAW,GAAG,kBAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;aAC5E,wBAAmB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACtD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC;KAC/C,CAAC,CAAC;aACa,sBAAiB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACpD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC;KAC7C,CAAC,CAAC;aACa,sBAAiB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACpD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC;KAC7C,CAAC,CAAC;aACa,uBAAkB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC;KAC9C,CAAC,CAAC;;AAhBL,wCAiBC;AAED,MAAa,kBAAkB;aACb,sBAAiB,GAAG,+CAA+C,CAAC;;AADtF,gDAEC;AAED,MAAa,sBAAsB;aACjB,WAAM,GAAG,QAAQ,CAAC;aAClB,mBAAc,GAAG,gBAAgB,CAAC;aAClC,WAAM,GAAG,QAAQ,CAAC;aAElB,eAAU,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9F,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AARH,wDASC;AAED,MAAa,mBAAmB;aACd,eAAU,GAAG,YAAY,CAAC;aAC1B,gBAAW,GAAG,aAAa,CAAC;aAC5B,SAAI,GAAG,MAAM,CAAC;aAEd,aAAQ,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;;AARH,kDASC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/mail/common/constants.ts"],"names":[],"mappings":";;;AACA,sDAA0D;AAE1D,MAAa,YAAY;aACP,sBAAiB,GAAG,CAAC,CAAC;aACtB,kBAAa,GAAG,qBAAqB,CAAC;;AAFxD,oCAGC;AAED,yKAAyK;AACzK,MAAa,cAAc;aACT,0BAAqB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACxD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,uBAAuB,CAAC;KACjD,CAAC,CAAC;aACa,gBAAW,GAAG,kBAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;aAC5E,wBAAmB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACtD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC;KAC/C,CAAC,CAAC;aACa,sBAAiB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACpD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC;KAC7C,CAAC,CAAC;aACa,sBAAiB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACpD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC;KAC7C,CAAC,CAAC;aACa,uBAAkB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC;KAC9C,CAAC,CAAC;;AAhBL,wCAiBC;AAED,MAAa,kBAAkB;aACb,sBAAiB,GAAG,+CAA+C,CAAC;;AADtF,gDAEC;AAED,MAAa,sBAAsB;aACjB,WAAM,GAAG,QAAQ,CAAC;aAClB,mBAAc,GAAG,gBAAgB,CAAC;aAClC,WAAM,GAAG,QAAQ,CAAC;aAElB,eAAU,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9F,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AARH,wDASC;AAED,MAAa,mBAAmB;aACd,eAAU,GAAG,YAAY,CAAC;aAC1B,gBAAW,GAAG,aAAa,CAAC;aAC5B,SAAI,GAAG,MAAM,CAAC;aAEd,aAAQ,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;;AARH,kDASC;AAED,MAAa,aAAa;aACR,eAAU,GAAG,YAAY,CAAC;aAC1B,YAAO,GAAG,SAAS,CAAC;aACpB,WAAM,GAAG,QAAQ,CAAC;;AAHpC,sCAIC"}
@@ -0,0 +1,6 @@
1
+ export * from './message';
2
+ export * from './options';
3
+ export * from './queue';
4
+ export * from './template';
5
+ export * from './verification';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./message"), exports);
18
+ __exportStar(require("./options"), exports);
19
+ __exportStar(require("./queue"), exports);
20
+ __exportStar(require("./template"), exports);
21
+ __exportStar(require("./verification"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,iDAA+B"}
@@ -0,0 +1,48 @@
1
+ import type { Readable } from 'node:stream';
2
+ export interface IMailAttachment {
3
+ filename?: string;
4
+ contentType?: string;
5
+ path?: string;
6
+ content?: string | Buffer | Readable;
7
+ cid?: string;
8
+ [key: string]: any;
9
+ }
10
+ export interface IMailMessage {
11
+ from?: string;
12
+ to: string | string[];
13
+ cc?: string | string[];
14
+ bcc?: string | string[];
15
+ replyTo?: string;
16
+ subject: string;
17
+ text?: string;
18
+ html?: string;
19
+ attachments?: IMailAttachment[];
20
+ headers?: Record<string, string>;
21
+ requireValidate?: boolean;
22
+ [key: string]: any;
23
+ }
24
+ export interface IMailSendResult {
25
+ success: boolean;
26
+ messageId?: string;
27
+ response?: any;
28
+ error?: string;
29
+ }
30
+ export interface IMailTransport {
31
+ send(message: IMailMessage): Promise<IMailSendResult>;
32
+ verify(): Promise<boolean>;
33
+ close?(): Promise<void>;
34
+ }
35
+ export interface IMailService {
36
+ send(message: IMailMessage): Promise<IMailSendResult>;
37
+ sendBatch(messages: IMailMessage[], options?: {
38
+ concurrency?: number;
39
+ }): Promise<IMailSendResult[]>;
40
+ sendTemplate(opts: {
41
+ templateName: string;
42
+ data: Record<string, any>;
43
+ recipients: string | string[];
44
+ options?: Partial<IMailMessage>;
45
+ }): Promise<IMailSendResult>;
46
+ verify(): Promise<boolean>;
47
+ }
48
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,SAAS,CACP,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9B,YAAY,CAAC,IAAI,EAAE;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;KACjC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/message.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import type { AnyType } from '@venizia/ignis-helpers/common';
2
+ import type SMTPTransport from 'nodemailer/lib/smtp-transport';
3
+ import type { IMailTransport } from './message';
4
+ export interface IBaseMailOptions {
5
+ from?: string;
6
+ fromName?: string;
7
+ }
8
+ export interface INodemailerMailOptions extends IBaseMailOptions {
9
+ provider: 'nodemailer';
10
+ config: TNodemailerConfig;
11
+ module?: TNodemailerModule;
12
+ }
13
+ export interface IMailgunMailOptions extends IBaseMailOptions {
14
+ provider: 'mailgun';
15
+ config: TMailgunConfig;
16
+ module?: TMailgunModule;
17
+ }
18
+ export interface ICustomMailOptions extends IBaseMailOptions {
19
+ provider: 'custom';
20
+ config: IMailTransport;
21
+ }
22
+ export interface IGenericMailOptions extends IBaseMailOptions {
23
+ provider: string;
24
+ config: Record<string, AnyType>;
25
+ }
26
+ export type TMailOptions = INodemailerMailOptions | IMailgunMailOptions | ICustomMailOptions | IGenericMailOptions;
27
+ export type TNodemailerConfig = SMTPTransport | SMTPTransport.Options | string;
28
+ export type TMailgunConfig = AnyType & {
29
+ domain: string;
30
+ };
31
+ /**
32
+ * The peer module itself, handed over by an application that already holds it. A `bun build
33
+ * --compile` binary carries no `node_modules`, so the runtime lookup these transports fall back to
34
+ * has nothing to resolve against - passing the module through the options is what a compiled
35
+ * application does instead. Typed as the shape each transport actually uses, so a wrong module is
36
+ * a compile error rather than a boot crash.
37
+ */
38
+ export type TNodemailerModule = {
39
+ createTransport: (config: AnyType, defaults?: AnyType) => AnyType;
40
+ };
41
+ export type TMailgunModule = new (formData: AnyType) => AnyType;
42
+ //# sourceMappingURL=options.d.ts.map