mindoodb 0.0.3 → 0.0.4

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 (209) hide show
  1. package/README-server.md +1001 -0
  2. package/README.md +14 -26
  3. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +19 -0
  4. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
  5. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +58 -5
  6. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
  7. package/dist/appendonlystores/network/HttpTransport.d.ts +4 -0
  8. package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
  9. package/dist/appendonlystores/network/HttpTransport.js +43 -0
  10. package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
  11. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +3 -0
  12. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
  13. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +15 -1
  14. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
  15. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts +5 -1
  16. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -1
  17. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +59 -3
  18. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js.map +1 -1
  19. package/dist/browser/cache/IndexedDBLocalCacheStore.d.ts +21 -0
  20. package/dist/browser/cache/IndexedDBLocalCacheStore.d.ts.map +1 -0
  21. package/dist/browser/cache/IndexedDBLocalCacheStore.js +106 -0
  22. package/dist/browser/cache/IndexedDBLocalCacheStore.js.map +1 -0
  23. package/dist/browser/index.d.ts +3 -0
  24. package/dist/browser/index.d.ts.map +1 -1
  25. package/dist/browser/index.js +9 -1
  26. package/dist/browser/index.js.map +1 -1
  27. package/dist/core/BaseMindooDB.d.ts +103 -13
  28. package/dist/core/BaseMindooDB.d.ts.map +1 -1
  29. package/dist/core/BaseMindooDB.js +1066 -205
  30. package/dist/core/BaseMindooDB.js.map +1 -1
  31. package/dist/core/BaseMindooTenant.d.ts +30 -1
  32. package/dist/core/BaseMindooTenant.d.ts.map +1 -1
  33. package/dist/core/BaseMindooTenant.js +143 -108
  34. package/dist/core/BaseMindooTenant.js.map +1 -1
  35. package/dist/core/BaseMindooTenantDirectory.d.ts +13 -10
  36. package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
  37. package/dist/core/BaseMindooTenantDirectory.js +134 -27
  38. package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
  39. package/dist/core/BaseMindooTenantFactory.d.ts +5 -1
  40. package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
  41. package/dist/core/BaseMindooTenantFactory.js +46 -69
  42. package/dist/core/BaseMindooTenantFactory.js.map +1 -1
  43. package/dist/core/MindooDBServerAdmin.d.ts +238 -0
  44. package/dist/core/MindooDBServerAdmin.d.ts.map +1 -0
  45. package/dist/core/MindooDBServerAdmin.js +345 -0
  46. package/dist/core/MindooDBServerAdmin.js.map +1 -0
  47. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +3 -1
  48. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
  49. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +22 -0
  50. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
  51. package/dist/core/appendonlystores/MaterializationPlanner.d.ts +49 -0
  52. package/dist/core/appendonlystores/MaterializationPlanner.d.ts.map +1 -0
  53. package/dist/core/appendonlystores/MaterializationPlanner.js +325 -0
  54. package/dist/core/appendonlystores/MaterializationPlanner.js.map +1 -0
  55. package/dist/core/appendonlystores/network/NetworkTransport.d.ts +15 -0
  56. package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
  57. package/dist/core/appendonlystores/network/types.d.ts +2 -0
  58. package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
  59. package/dist/core/appendonlystores/network/types.js.map +1 -1
  60. package/dist/core/appendonlystores/types.d.ts +83 -0
  61. package/dist/core/appendonlystores/types.d.ts.map +1 -1
  62. package/dist/core/cache/CacheManager.d.ts +75 -0
  63. package/dist/core/cache/CacheManager.d.ts.map +1 -0
  64. package/dist/core/cache/CacheManager.js +101 -0
  65. package/dist/core/cache/CacheManager.js.map +1 -0
  66. package/dist/core/cache/EncryptedLocalCacheStore.d.ts +41 -0
  67. package/dist/core/cache/EncryptedLocalCacheStore.d.ts.map +1 -0
  68. package/dist/core/cache/EncryptedLocalCacheStore.js +120 -0
  69. package/dist/core/cache/EncryptedLocalCacheStore.js.map +1 -0
  70. package/dist/core/cache/LocalCacheStore.d.ts +50 -0
  71. package/dist/core/cache/LocalCacheStore.d.ts.map +1 -0
  72. package/dist/core/cache/LocalCacheStore.js +39 -0
  73. package/dist/core/cache/LocalCacheStore.js.map +1 -0
  74. package/dist/core/crypto/privateKeyEncryption.d.ts +5 -0
  75. package/dist/core/crypto/privateKeyEncryption.d.ts.map +1 -0
  76. package/dist/core/crypto/privateKeyEncryption.js +87 -0
  77. package/dist/core/crypto/privateKeyEncryption.js.map +1 -0
  78. package/dist/core/index.d.ts +13 -6
  79. package/dist/core/index.d.ts.map +1 -1
  80. package/dist/core/index.js +13 -1
  81. package/dist/core/index.js.map +1 -1
  82. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +4 -1
  83. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
  84. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +39 -11
  85. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
  86. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts +1 -0
  87. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts.map +1 -1
  88. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js +3 -0
  89. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js.map +1 -1
  90. package/dist/core/indexing/virtualviews/VirtualView.d.ts +43 -0
  91. package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
  92. package/dist/core/indexing/virtualviews/VirtualView.js +173 -0
  93. package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
  94. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +7 -0
  95. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
  96. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +28 -0
  97. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
  98. package/dist/core/keys/KeyBag.d.ts +38 -14
  99. package/dist/core/keys/KeyBag.d.ts.map +1 -1
  100. package/dist/core/keys/KeyBag.js +102 -76
  101. package/dist/core/keys/KeyBag.js.map +1 -1
  102. package/dist/core/keys/KeyContext.d.ts +3 -3
  103. package/dist/core/keys/KeyContext.d.ts.map +1 -1
  104. package/dist/core/keys/KeyContext.js +10 -4
  105. package/dist/core/keys/KeyContext.js.map +1 -1
  106. package/dist/core/types.d.ts +305 -21
  107. package/dist/core/types.d.ts.map +1 -1
  108. package/dist/core/types.js +7 -1
  109. package/dist/core/types.js.map +1 -1
  110. package/dist/core/utils/idGeneration.d.ts.map +1 -1
  111. package/dist/core/utils/idGeneration.js +37 -3
  112. package/dist/core/utils/idGeneration.js.map +1 -1
  113. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +4 -1
  114. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -1
  115. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +24 -0
  116. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -1
  117. package/dist/node/attachments/writeAttachmentToFile.d.ts +15 -0
  118. package/dist/node/attachments/writeAttachmentToFile.d.ts.map +1 -0
  119. package/dist/node/attachments/writeAttachmentToFile.js +73 -0
  120. package/dist/node/attachments/writeAttachmentToFile.js.map +1 -0
  121. package/dist/node/cache/FileSystemLocalCacheStore.d.ts +17 -0
  122. package/dist/node/cache/FileSystemLocalCacheStore.d.ts.map +1 -0
  123. package/dist/node/cache/FileSystemLocalCacheStore.js +128 -0
  124. package/dist/node/cache/FileSystemLocalCacheStore.js.map +1 -0
  125. package/dist/node/cli/change-identity-password.d.ts +7 -0
  126. package/dist/node/cli/change-identity-password.d.ts.map +1 -0
  127. package/dist/node/cli/change-identity-password.js +67 -0
  128. package/dist/node/cli/change-identity-password.js.map +1 -0
  129. package/dist/node/cli/cli-utils.d.ts +16 -0
  130. package/dist/node/cli/cli-utils.d.ts.map +1 -0
  131. package/dist/node/cli/cli-utils.js +113 -0
  132. package/dist/node/cli/cli-utils.js.map +1 -0
  133. package/dist/node/cli/identity-export-public.d.ts +4 -0
  134. package/dist/node/cli/identity-export-public.d.ts.map +1 -0
  135. package/dist/node/cli/identity-export-public.js +55 -0
  136. package/dist/node/cli/identity-export-public.js.map +1 -0
  137. package/dist/node/cli/identity-info.d.ts +4 -0
  138. package/dist/node/cli/identity-info.d.ts.map +1 -0
  139. package/dist/node/cli/identity-info.js +57 -0
  140. package/dist/node/cli/identity-info.js.map +1 -0
  141. package/dist/node/index.d.ts +1 -0
  142. package/dist/node/index.d.ts.map +1 -1
  143. package/dist/node/index.js +4 -1
  144. package/dist/node/index.js.map +1 -1
  145. package/dist/node/server/CapabilityMatcher.d.ts +45 -0
  146. package/dist/node/server/CapabilityMatcher.d.ts.map +1 -0
  147. package/dist/node/server/CapabilityMatcher.js +117 -0
  148. package/dist/node/server/CapabilityMatcher.js.map +1 -0
  149. package/dist/node/server/MindooDBServer.d.ts +87 -0
  150. package/dist/node/server/MindooDBServer.d.ts.map +1 -0
  151. package/dist/node/server/MindooDBServer.js +1040 -0
  152. package/dist/node/server/MindooDBServer.js.map +1 -0
  153. package/dist/node/server/ServerSync.d.ts +41 -0
  154. package/dist/node/server/ServerSync.d.ts.map +1 -0
  155. package/dist/node/server/ServerSync.js +187 -0
  156. package/dist/node/server/ServerSync.js.map +1 -0
  157. package/dist/node/server/StoreFactory.d.ts +45 -0
  158. package/dist/node/server/StoreFactory.d.ts.map +1 -0
  159. package/dist/node/server/StoreFactory.js +89 -0
  160. package/dist/node/server/StoreFactory.js.map +1 -0
  161. package/dist/node/server/SystemAdminAuth.d.ts +65 -0
  162. package/dist/node/server/SystemAdminAuth.d.ts.map +1 -0
  163. package/dist/node/server/SystemAdminAuth.js +200 -0
  164. package/dist/node/server/SystemAdminAuth.js.map +1 -0
  165. package/dist/node/server/SystemIpAllowlist.d.ts +21 -0
  166. package/dist/node/server/SystemIpAllowlist.d.ts.map +1 -0
  167. package/dist/node/server/SystemIpAllowlist.js +210 -0
  168. package/dist/node/server/SystemIpAllowlist.js.map +1 -0
  169. package/dist/node/server/TenantManager.d.ts +85 -0
  170. package/dist/node/server/TenantManager.d.ts.map +1 -0
  171. package/dist/node/server/TenantManager.js +493 -0
  172. package/dist/node/server/TenantManager.js.map +1 -0
  173. package/dist/node/server/add-to-network.d.ts +20 -0
  174. package/dist/node/server/add-to-network.d.ts.map +1 -0
  175. package/dist/node/server/add-to-network.js +275 -0
  176. package/dist/node/server/add-to-network.js.map +1 -0
  177. package/dist/node/server/config.d.ts +51 -0
  178. package/dist/node/server/config.d.ts.map +1 -0
  179. package/dist/node/server/config.js +218 -0
  180. package/dist/node/server/config.js.map +1 -0
  181. package/dist/node/server/resolveServerPassword.d.ts +7 -0
  182. package/dist/node/server/resolveServerPassword.d.ts.map +1 -0
  183. package/dist/node/server/resolveServerPassword.js +25 -0
  184. package/dist/node/server/resolveServerPassword.js.map +1 -0
  185. package/dist/node/server/server.d.ts +22 -0
  186. package/dist/node/server/server.d.ts.map +1 -0
  187. package/dist/node/server/server.js +225 -0
  188. package/dist/node/server/server.js.map +1 -0
  189. package/dist/node/server/serverinit.d.ts +21 -0
  190. package/dist/node/server/serverinit.d.ts.map +1 -0
  191. package/dist/node/server/serverinit.js +317 -0
  192. package/dist/node/server/serverinit.js.map +1 -0
  193. package/dist/node/server/types.d.ts +162 -0
  194. package/dist/node/server/types.d.ts.map +1 -0
  195. package/dist/node/server/types.js +24 -0
  196. package/dist/node/server/types.js.map +1 -0
  197. package/dist/node/server/validation.d.ts +47 -0
  198. package/dist/node/server/validation.d.ts.map +1 -0
  199. package/dist/node/server/validation.js +114 -0
  200. package/dist/node/server/validation.js.map +1 -0
  201. package/dist/reactnative/cache/MMKVLocalCacheStore.d.ts +48 -0
  202. package/dist/reactnative/cache/MMKVLocalCacheStore.d.ts.map +1 -0
  203. package/dist/reactnative/cache/MMKVLocalCacheStore.js +113 -0
  204. package/dist/reactnative/cache/MMKVLocalCacheStore.js.map +1 -0
  205. package/dist/reactnative/index.d.ts +1 -0
  206. package/dist/reactnative/index.d.ts.map +1 -1
  207. package/dist/reactnative/index.js +4 -1
  208. package/dist/reactnative/index.js.map +1 -1
  209. package/package.json +14 -3
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseMindooTenantDirectory = void 0;
4
4
  const types_1 = require("./types");
5
- const RSAEncryption_1 = require("./crypto/RSAEncryption");
6
5
  const logging_1 = require("./logging");
7
6
  class BaseMindooTenantDirectory {
8
7
  constructor(tenant, logger) {
@@ -14,12 +13,14 @@ class BaseMindooTenantDirectory {
14
13
  this.trustedKeysCache = new Map();
15
14
  // Mapping from grant document ID to public key (needed for revocation lookups)
16
15
  this.grantDocIdToPublicKey = new Map();
16
+ // Best-effort reverse lookup cache for public signing key -> user details.
17
+ // Entries remain available even after revocation so historical UIs can still show identity labels.
18
+ this.userLookupCache = new Map();
17
19
  // Cache for settings documents
18
20
  this.tenantSettingsCache = null;
19
21
  this.dbSettingsCache = new Map();
20
22
  // Cache for groups: key -> merged group data (key: lowercase groupName)
21
- // We store merged data separately to avoid mutating MindooDoc objects
22
- // members_hashes are used for lookups, members_encrypted only admin can decrypt
23
+ // We store merged data separately to avoid mutating MindooDoc objects.
23
24
  this.groupsCache = new Map();
24
25
  // Unified cache cursor for all document types
25
26
  this.unifiedCacheLastCursor = null;
@@ -41,7 +42,7 @@ class BaseMindooTenantDirectory {
41
42
  }
42
43
  return this.directoryDB;
43
44
  }
44
- async registerUser(userId, administrationPrivateKey, administrationPrivateKeyPassword) {
45
+ async registerUser(userId, administrationPrivateKey, administrationPrivateKeyPassword, userDetails) {
45
46
  this.logger.info(`Registering user: ${userId.username}`);
46
47
  // Check if user with same username (case-insensitive) already exists
47
48
  const existingDocs = await this.findGrantAccessDocuments(userId.username);
@@ -69,10 +70,10 @@ class BaseMindooTenantDirectory {
69
70
  publicKey: baseTenant.getAdministrationPublicKey(),
70
71
  privateKey: administrationPrivateKey,
71
72
  };
72
- // Compute username hash and encrypted username before creating the document
73
+ // Compute username hash and encrypted user details before creating the document
73
74
  // (since the callback to changeDocWithSigningKey cannot be async for automerge reasons)
74
75
  const usernameHash = await this.hashUsername(userId.username);
75
- const usernameEncrypted = await this.encryptForAdmin(userId.username);
76
+ const userDetailsEncrypted = await this.encryptUserDetailsForTenant(this.buildUserDetailsPayload(userId.username, userDetails));
76
77
  // Add user to directory database
77
78
  this.logger.debug(`Creating document for user registration`);
78
79
  const directoryDB = await this.getDirectoryDB();
@@ -87,7 +88,7 @@ class BaseMindooTenantDirectory {
87
88
  data.form = "useroperation";
88
89
  data.type = "grantaccess";
89
90
  data.username_hash = usernameHash;
90
- data.username_encrypted = usernameEncrypted;
91
+ data.user_details_encrypted = userDetailsEncrypted;
91
92
  data.userSigningPublicKey = userId.userSigningPublicKey;
92
93
  data.userEncryptionPublicKey = userId.userEncryptionPublicKey;
93
94
  }, adminSigningKeyPair, administrationPrivateKeyPassword);
@@ -157,9 +158,9 @@ class BaseMindooTenantDirectory {
157
158
  publicKey: baseTenant.getAdministrationPublicKey(),
158
159
  privateKey: administrationPrivateKey,
159
160
  };
160
- // Compute username hash and encrypted username before creating documents
161
+ // Compute username hash and encrypted user details before creating documents
161
162
  const usernameHash = await this.hashUsername(username);
162
- const usernameEncrypted = await this.encryptForAdmin(username);
163
+ const userDetailsEncrypted = await this.encryptUserDetailsForTenant(this.buildUserDetailsPayload(username));
163
164
  // Create revocation documents for each grant access document found
164
165
  for (const grantAccessDoc of grantAccessDocs) {
165
166
  const revokeDocId = grantAccessDoc.getId();
@@ -172,7 +173,7 @@ class BaseMindooTenantDirectory {
172
173
  data.form = "useroperation";
173
174
  data.type = "revokeaccess";
174
175
  data.username_hash = usernameHash;
175
- data.username_encrypted = usernameEncrypted;
176
+ data.user_details_encrypted = userDetailsEncrypted;
176
177
  data.revokeDocId = revokeDocId;
177
178
  data.requestDataWipe = requestDataWipe;
178
179
  }, adminSigningKeyPair, administrationPrivateKeyPassword);
@@ -230,6 +231,7 @@ class BaseMindooTenantDirectory {
230
231
  if (startCursor === null) {
231
232
  this.trustedKeysCache.clear();
232
233
  this.grantDocIdToPublicKey.clear();
234
+ this.userLookupCache.clear();
233
235
  this.tenantSettingsCache = null;
234
236
  this.dbSettingsCache.clear();
235
237
  this.groupsCache.clear();
@@ -253,6 +255,10 @@ class BaseMindooTenantDirectory {
253
255
  }
254
256
  // Store mapping for future revocation lookups (persisted across iterations)
255
257
  this.grantDocIdToPublicKey.set(doc.getId(), userPublicKey);
258
+ const userLookup = await this.buildUserLookup(data);
259
+ if (userLookup) {
260
+ this.userLookupCache.set(userPublicKey, userLookup);
261
+ }
256
262
  }
257
263
  // Check if this is a revoke access document
258
264
  if (data.type === "revokeaccess" &&
@@ -298,8 +304,9 @@ class BaseMindooTenantDirectory {
298
304
  }
299
305
  // Merge group documents with the same name
300
306
  for (const [normalizedGroupName, docs] of groupDocsByName.entries()) {
301
- // Collect all member hashes from all documents with this group name
307
+ // Collect all member hashes and encrypted values from all documents with this group name
302
308
  const allMembersHashes = new Set();
309
+ const allMembersEncrypted = new Set();
303
310
  let latestDoc = null;
304
311
  let isDeleted = false;
305
312
  for (const doc of docs) {
@@ -310,7 +317,7 @@ class BaseMindooTenantDirectory {
310
317
  if (doc.isDeleted() || data._deleted === true) {
311
318
  isDeleted = true;
312
319
  }
313
- // Use members_hashes for the cache (privacy-preserving lookups)
320
+ // Use members_hashes for membership lookups.
314
321
  if (data.members_hashes && Array.isArray(data.members_hashes)) {
315
322
  for (const memberHash of data.members_hashes) {
316
323
  if (typeof memberHash === "string") {
@@ -318,6 +325,13 @@ class BaseMindooTenantDirectory {
318
325
  }
319
326
  }
320
327
  }
328
+ if (data.members_encrypted && Array.isArray(data.members_encrypted)) {
329
+ for (const encryptedMember of data.members_encrypted) {
330
+ if (typeof encryptedMember === "string") {
331
+ allMembersEncrypted.add(encryptedMember);
332
+ }
333
+ }
334
+ }
321
335
  }
322
336
  // If latest version is deleted, remove from cache
323
337
  if (isDeleted) {
@@ -329,6 +343,7 @@ class BaseMindooTenantDirectory {
329
343
  this.groupsCache.set(normalizedGroupName, {
330
344
  docId: latestDoc.getId(),
331
345
  members_hashes: Array.from(allMembersHashes),
346
+ members_encrypted: Array.from(allMembersEncrypted),
332
347
  });
333
348
  }
334
349
  }
@@ -445,11 +460,19 @@ class BaseMindooTenantDirectory {
445
460
  return null;
446
461
  }
447
462
  this.logger.debug(`Found public keys for username: ${username}`);
463
+ const cachedLookup = this.userLookupCache.get(signingPublicKey);
448
464
  return {
449
465
  signingPublicKey,
450
466
  encryptionPublicKey,
467
+ details: cachedLookup?.details ?? null,
451
468
  };
452
469
  }
470
+ async getUserBySigningPublicKey(publicKey) {
471
+ const directoryDB = await this.getDirectoryDB();
472
+ await directoryDB.syncStoreChanges();
473
+ await this.updateUnifiedCache();
474
+ return this.userLookupCache.get(publicKey) ?? null;
475
+ }
453
476
  /**
454
477
  * Check if a user has been revoked.
455
478
  * A user is considered revoked if they have no active (non-revoked) grant access documents.
@@ -529,6 +552,16 @@ class BaseMindooTenantDirectory {
529
552
  await this.updateUnifiedCache();
530
553
  return this.dbSettingsCache.get(dbId) || null;
531
554
  }
555
+ async listKnownDBIds() {
556
+ const directoryDB = await this.getDirectoryDB();
557
+ await directoryDB.syncStoreChanges();
558
+ await this.updateUnifiedCache();
559
+ const known = new Set(["directory", "main"]);
560
+ for (const dbId of this.dbSettingsCache.keys()) {
561
+ known.add(dbId);
562
+ }
563
+ return Array.from(known).sort();
564
+ }
532
565
  async changeTenantSettings(changeFunc, administrationPrivateKey, administrationPrivateKeyPassword) {
533
566
  const baseTenant = this.tenant;
534
567
  const directoryDB = await this.getDirectoryDB();
@@ -598,9 +631,14 @@ class BaseMindooTenantDirectory {
598
631
  if (!groupData) {
599
632
  return [];
600
633
  }
601
- // Return member hashes (actual usernames are encrypted and only admin can decrypt)
602
- // This allows checking membership via hash comparison
603
- return [...groupData.members_hashes];
634
+ const members = new Set();
635
+ for (const encryptedMember of groupData.members_encrypted) {
636
+ const decryptedMember = await this.decryptGroupMemberForTenant(encryptedMember);
637
+ if (decryptedMember) {
638
+ members.add(decryptedMember);
639
+ }
640
+ }
641
+ return Array.from(members);
604
642
  }
605
643
  async addUsersToGroup(groupName, username, administrationPrivateKey, administrationPrivateKeyPassword) {
606
644
  const normalizedGroupName = this.normalizeGroupName(groupName);
@@ -612,7 +650,7 @@ class BaseMindooTenantDirectory {
612
650
  };
613
651
  // Compute hashes and encrypted values for all new usernames
614
652
  const newMembersHashes = await Promise.all(username.map(u => this.hashUsername(u)));
615
- const newMembersEncrypted = await Promise.all(username.map(u => this.encryptForAdmin(u)));
653
+ const newMembersEncrypted = await Promise.all(username.map(u => this.encryptGroupMemberForTenant(u)));
616
654
  // Get the actual document from the database (using cached docId if available)
617
655
  const cachedGroup = this.groupsCache.get(normalizedGroupName);
618
656
  let groupDoc;
@@ -757,20 +795,81 @@ class BaseMindooTenantDirectory {
757
795
  .map(b => b.toString(16).padStart(2, '0'))
758
796
  .join('');
759
797
  }
760
- /**
761
- * Encrypt plaintext with admin's RSA public encryption key.
762
- * Only the admin with the corresponding private key can decrypt.
763
- *
764
- * @param plaintext The text to encrypt
765
- * @return The base64-encoded encrypted data
766
- */
767
- async encryptForAdmin(plaintext) {
768
- const adminEncKey = this.tenant.getAdministrationEncryptionPublicKey();
769
- const rsaEnc = new RSAEncryption_1.RSAEncryption(this.tenant.getCryptoAdapter());
798
+ buildUserDetailsPayload(username, userDetails) {
799
+ const details = { username };
800
+ if (!userDetails) {
801
+ return details;
802
+ }
803
+ for (const [key, value] of Object.entries(userDetails)) {
804
+ if (key === "username" || typeof value !== "string" || !value.trim()) {
805
+ continue;
806
+ }
807
+ details[key] = value;
808
+ }
809
+ return details;
810
+ }
811
+ async encryptUserDetailsForTenant(userDetails) {
812
+ const encoder = new TextEncoder();
813
+ const payload = encoder.encode(JSON.stringify(userDetails));
814
+ const encrypted = await this.tenant.encryptPayload(payload, types_1.DEFAULT_TENANT_KEY_ID);
815
+ return this.uint8ArrayToBase64(encrypted);
816
+ }
817
+ async decryptUserDetailsForTenant(encryptedBase64) {
818
+ try {
819
+ const encrypted = this.base64ToUint8Array(encryptedBase64);
820
+ const decrypted = await this.tenant.decryptPayload(encrypted, types_1.DEFAULT_TENANT_KEY_ID);
821
+ const decoded = new TextDecoder().decode(decrypted);
822
+ const parsed = JSON.parse(decoded);
823
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
824
+ return null;
825
+ }
826
+ const details = {};
827
+ for (const [key, value] of Object.entries(parsed)) {
828
+ if (typeof value === "string" && value.trim()) {
829
+ details[key] = value;
830
+ }
831
+ }
832
+ return Object.keys(details).length ? details : null;
833
+ }
834
+ catch (error) {
835
+ this.logger.debug("Could not decrypt tenant-readable user details, treating entry as legacy or inaccessible", error);
836
+ return null;
837
+ }
838
+ }
839
+ async buildUserLookup(data) {
840
+ const signingPublicKey = typeof data.userSigningPublicKey === "string" ? data.userSigningPublicKey : null;
841
+ const encryptionPublicKey = typeof data.userEncryptionPublicKey === "string" ? data.userEncryptionPublicKey : null;
842
+ if (!signingPublicKey || !encryptionPublicKey) {
843
+ return null;
844
+ }
845
+ const encryptedDetails = typeof data.user_details_encrypted === "string" ? data.user_details_encrypted : null;
846
+ const details = encryptedDetails ? await this.decryptUserDetailsForTenant(encryptedDetails) : null;
847
+ const username = details?.username
848
+ ?? (typeof data.username_hash === "string" ? data.username_hash : "");
849
+ return {
850
+ username,
851
+ signingPublicKey,
852
+ encryptionPublicKey,
853
+ details,
854
+ };
855
+ }
856
+ async encryptGroupMemberForTenant(plaintext) {
770
857
  const encoder = new TextEncoder();
771
- const encrypted = await rsaEnc.encrypt(encoder.encode(plaintext), adminEncKey);
858
+ const encrypted = await this.tenant.encryptPayload(encoder.encode(plaintext), types_1.DEFAULT_TENANT_KEY_ID);
772
859
  return this.uint8ArrayToBase64(encrypted);
773
860
  }
861
+ async decryptGroupMemberForTenant(encryptedBase64) {
862
+ try {
863
+ const encrypted = this.base64ToUint8Array(encryptedBase64);
864
+ const decrypted = await this.tenant.decryptPayload(encrypted, types_1.DEFAULT_TENANT_KEY_ID);
865
+ const member = new TextDecoder().decode(decrypted).trim();
866
+ return member || null;
867
+ }
868
+ catch (error) {
869
+ this.logger.debug("Could not decrypt group member entry, skipping unreadable member", error);
870
+ return null;
871
+ }
872
+ }
774
873
  /**
775
874
  * Convert a Uint8Array to a base64 string.
776
875
  */
@@ -781,6 +880,14 @@ class BaseMindooTenantDirectory {
781
880
  }
782
881
  return btoa(binary);
783
882
  }
883
+ base64ToUint8Array(base64) {
884
+ const binary = atob(base64);
885
+ const bytes = new Uint8Array(binary.length);
886
+ for (let i = 0; i < binary.length; i++) {
887
+ bytes[i] = binary.charCodeAt(i);
888
+ }
889
+ return bytes;
890
+ }
784
891
  }
785
892
  exports.BaseMindooTenantDirectory = BaseMindooTenantDirectory;
786
893
  //# sourceMappingURL=BaseMindooTenantDirectory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMindooTenantDirectory.js","sourceRoot":"","sources":["../../src/core/BaseMindooTenantDirectory.ts"],"names":[],"mappings":";;;AAAA,mCAAiL;AAEjL,0DAAuD;AACvD,uCAAqE;AAErE,MAAa,yBAAyB;IAyBpC,YAAY,MAAwB,EAAE,MAAe;QAvB7C,gBAAW,GAAoB,IAAI,CAAC;QAE5C,mFAAmF;QACnF,+DAA+D;QAC/D,sEAAsE;QACtE,0EAA0E;QAClE,qBAAgB,GAAyB,IAAI,GAAG,EAAE,CAAC;QAC3D,+EAA+E;QACvE,0BAAqB,GAAwB,IAAI,GAAG,EAAE,CAAC;QAE/D,+BAA+B;QACvB,wBAAmB,GAAqB,IAAI,CAAC;QAC7C,oBAAe,GAA2B,IAAI,GAAG,EAAE,CAAC;QAE5D,wEAAwE;QACxE,sEAAsE;QACtE,gFAAgF;QACxE,gBAAW,GAA6D,IAAI,GAAG,EAAE,CAAC;QAE1F,8CAA8C;QACtC,2BAAsB,GAAgC,IAAI,CAAC;QAIjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,6DAA6D;QAC7D,IAAI,CAAC,MAAM;YACT,MAAM;gBACN,IAAI,sBAAY,CAAC,IAAA,4BAAkB,GAAE,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAGD,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,yEAAyE;YACzE,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhF,iEAAiE;YACjE,qDAAqD;YACrD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAoB,EACpB,wBAA6C,EAC7C,gCAAwC;QAExC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzD,qEAAqE;QACrE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,oDAAoD;YACpD,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB;YAC7E,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;YAE3C,MAAM,SAAS,GACb,YAAY,CAAC,oBAAoB,KAAK,MAAM,CAAC,oBAAoB;gBACjE,YAAY,CAAC,uBAAuB,KAAK,MAAM,CAAC,uBAAuB,CAAC;YAE1E,IAAI,SAAS,EAAE,CAAC;gBACd,kDAAkD;gBAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,QAAQ,8CAA8C,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,CAAC,QAAQ,sDAAsD;oBAC9F,2CAA2C,CAC5C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QAEnD,mDAAmD;QACnD,MAAM,mBAAmB,GAAmB;YAC1C,SAAS,EAAE,UAAU,CAAC,0BAA0B,EAAE;YAClD,UAAU,EAAE,wBAAwB;SACrC,CAAC;QAEF,4EAA4E;QAC5E,wFAAwF;QACxF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtE,iCAAiC;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,yEAAyE;QACzE,mFAAmF;QACnF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAC3D,mBAAmB,EACnB,gCAAgC,EAChC,2BAAmB,CACpB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,wFAAwF;YACxF,MAAM,WAAW,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAc,EAAE,EAAE;gBACzE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;gBAC5B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;gBAC1B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;gBAClC,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;gBAC5C,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;gBACxD,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;YAChE,CAAC,EAAE,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,QAAgB;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,QAAQ,EAAE,CAAC,CAAC;QAE9E,oDAAoD;QACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErC,qDAAqD;QACrD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,iCAAiC;QACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAErD,MAAM,YAAY,GAAgB,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAExC,yDAAyD;QACzD,oEAAoE;QACpE,IAAI,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAE3B,gFAAgF;YAChF,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe;gBAC7B,IAAI,CAAC,IAAI,KAAK,aAAa;gBAC3B,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,UAAU,EAAE,CAAC,CAAC;gBAC5E,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YAED,qFAAqF;YACrF,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe;gBAC7B,IAAI,CAAC,IAAI,KAAK,cAAc;gBAC5B,IAAI,CAAC,aAAa,KAAK,UAAU;gBACjC,IAAI,CAAC,WAAW;gBAChB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,UAAU,sBAAsB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnH,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE/E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,QAAQ,WAAW,YAAY,CAAC,MAAM,WAAW,aAAa,CAAC,IAAI,WAAW,CAAC,CAAC;QAC5J,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,UAAU,CAAC,MAAM,kDAAkD,QAAQ,KAAK,YAAY,CAAC,MAAM,WAAW,aAAa,CAAC,IAAI,WAAW,CAAC,CAAC;QAC1K,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,eAAwB,EACxB,wBAA6C,EAC7C,gCAAwC;QAExC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;QAE/C,gDAAgD;QAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAEtE,iDAAiD;QACjD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,QAAQ,sBAAsB,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QAED,uDAAuD;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,mDAAmD;QACnD,MAAM,mBAAmB,GAAmB;YAC1C,SAAS,EAAE,UAAU,CAAC,0BAA0B,EAAE;YAClD,UAAU,EAAE,wBAAwB;SACrC,CAAC;QAEF,yEAAyE;QACzE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE/D,mEAAmE;QACnE,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;YAE3C,yEAAyE;YACzE,mFAAmF;YACnF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAC3D,mBAAmB,EACnB,gCAAgC,EAChC,2BAAmB,CACpB,CAAC;YAEF,wFAAwF;YACxF,MAAM,WAAW,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAc,EAAE,EAAE;gBACzE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;gBAC5B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;gBAClC,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;gBAC5C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBAC/B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACzC,CAAC,EAAE,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;YAE1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,WAAW,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,QAAQ,aAAa,eAAe,CAAC,MAAM,0BAA0B,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,SAAiB;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEnD,uDAAuD;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QAEnD,8EAA8E;QAC9E,MAAM,uBAAuB,GAAG,UAAU,CAAC,0BAA0B,EAAE,CAAC;QAExE,mFAAmF;QACnF,IAAI,SAAS,KAAK,uBAAuB,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,qBAAqB,GAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC;QACpE,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,gBAAgB,EAAE,CAAC,CAAC;gBACpG,OAAO,gBAAgB,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,4FAA4F;QAC5F,oDAAoD;QACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErC,8DAA8D;QAC9D,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,sBAAsB;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,YAAY,EAAE,CAAC,CAAC;YAChF,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB;QAC9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,wEAAwE;QACxE,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAEhD,2DAA2D;QAC3D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,6EAA6E;QAC7E,MAAM,eAAe,GAA6B,IAAI,GAAG,EAAE,CAAC;QAE5D,sFAAsF;QACtF,IAAI,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAE3B,yDAAyD;YACzD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACpC,2CAA2C;gBACzC,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;oBAC7B,IAAI,CAAC,oBAAoB;oBACzB,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC;oBAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC;oBAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;oBAC1E,+CAA+C;oBAC/C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;wBACnG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;oBACjD,CAAC;oBACD,4EAA4E;oBAC5E,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC;gBACnE,CAAC;gBAED,4CAA4C;gBAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;oBAC9B,IAAI,CAAC,WAAW;oBAChB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;oBACtC,gEAAgE;oBAChE,6DAA6D;oBAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACtE,IAAI,gBAAgB,EAAE,CAAC;wBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;wBACjE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;oBACrD,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,YAAY,EAAE,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC;YACP,CAAC;YAED,0BAA0B;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBACrB,IAAI,CAAC,IAAI,KAAK,OAAO;gBACrB,IAAI,CAAC,SAAS;gBACd,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC9C,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC;YAED,yFAAyF;YACzF,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACnC,oDAAoD;gBACpD,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YACjC,CAAC;YAED,qFAAqF;YACrF,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,oDAAoD;gBACpD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;YAED,oCAAoC;YACpC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;QACvC,CAAC;QAED,2CAA2C;QAC3C,KAAK,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,oEAAoE;YACpE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC3C,IAAI,SAAS,GAAqB,IAAI,CAAC;YACvC,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,2EAA2E;gBAC3E,SAAS,GAAG,GAAG,CAAC;gBAChB,0EAA0E;gBAC1E,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAC9C,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;gBACD,gEAAgE;gBAChE,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC9D,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;wBAC7C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;4BACnC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBACnC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kDAAkD;YAClD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YAED,oEAAoE;YACpE,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE;oBACxC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;oBACxB,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACK,wBAAwB,CAAC,QAAgB;QAC/C,MAAM,QAAQ,GAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,+BAA+B;QAEtE,yFAAyF;QACzF,iCAAiC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,iEAAiE;QACjE,wCAAwC;QACxC,uCAAuC;QACvC,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,gCAAgC;QAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,gCAAgC;QAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,mEAAmE;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACjE,uDAAuD;QACvD,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC;QAEF,4FAA4F;QAC5F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAChE,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;gBAClD,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC5B,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC5B,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,uEAAuE;QACvE,+CAA+C;QAC/C,IAAI,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,2CAA2C;QAEpF,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YAErC,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;gBACvC,4CAA4C;gBAC5C,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,UAAU,sCAAsC,CAAC,CAAC;oBAC1G,SAAS;gBACX,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAE9B,2CAA2C;gBAC3C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAE3D,sEAAsE;gBACtE,KAAK,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC5E,IAAI,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;wBACtC,SAAS,CAAC,2BAA2B;oBACvC,CAAC;oBAED,IAAI,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;wBAC5D,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;wBAClC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,aAAa,GAAG,UAAU,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QAItC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;QAEnE,qEAAqE;QACrE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAEjE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,QAAQ,EAAE,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uEAAuE;QACvE,+EAA+E;QAC/E,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAE3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACnD,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAEzD,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2DAA2D,QAAQ,EAAE,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,gBAAgB;YAChB,mBAAmB;SACpB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;QAE9D,uDAAuD;QACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAEjE,gEAAgE;QAChE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,QAAQ,aAAa,SAAS,EAAE,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,IAAY,EACZ,KAAa,EACb,MAA0B,EAC1B,wBAA6C,EAC7C,gCAAwC;QAExC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,MAAM,mBAAmB,GAAmB;YAC1C,SAAS,EAAE,UAAU,CAAC,0BAA0B,EAAE;YAClD,UAAU,EAAE,wBAAwB;SACrC,CAAC;QAEF,yEAAyE;QACzE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAC3D,mBAAmB,EACnB,gCAAgC,CACjC,CAAC;QAEF,wFAAwF;QACxF,MAAM,WAAW,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAc,EAAE,EAAE;YACzE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC,EAAE,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,4BAA4B;QAOhC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErC,MAAM,aAAa,GAMd,EAAE,CAAC;QAER,oEAAoE;QACpE,IAAI,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBACtE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBAErC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC1D,aAAa,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;wBACvD,WAAW,EAAE,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBACvE,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE;qBAC/B,CAAC,CAAC;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErC,oDAAoD;QACpD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErC,oDAAoD;QACpD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,UAAoD,EACpD,wBAA6C,EAC7C,gCAAwC;QAExC,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,MAAM,mBAAmB,GAAmB;YAC1C,SAAS,EAAE,UAAU,CAAC,0BAA0B,EAAE;YAClD,UAAU,EAAE,wBAAwB;SACrC,CAAC;QAEF,4CAA4C;QAC5C,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,sBAAsB;YACtB,WAAW,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAC1D,mBAAmB,EACnB,gCAAgC,CACjC,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,WAAW,CAAC,uBAAuB,CACvC,WAAW,EACX,KAAK,EAAE,CAAY,EAAE,EAAE;YACrB,8BAA8B;YAC9B,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;YAEpB,qEAAqE;YACrE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,gBAAgB,CAAC;QACtC,CAAC,EACD,mBAAmB,EACnB,gCAAgC,CACjC,CAAC;QAEF,mBAAmB;QACnB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,IAAY,EACZ,UAAoD,EACpD,wBAA6C,EAC7C,gCAAwC;QAExC,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,MAAM,mBAAmB,GAAmB;YAC1C,SAAS,EAAE,UAAU,CAAC,0BAA0B,EAAE;YAClD,UAAU,EAAE,wBAAwB;SACrC,CAAC;QAEF,0DAA0D;QAC1D,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,sBAAsB;YACtB,WAAW,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAC1D,mBAAmB,EACnB,gCAAgC,CACjC,CAAC;QACJ,CAAC;QAED,4DAA4D;QAC5D,MAAM,WAAW,CAAC,uBAAuB,CACvC,WAAW,EACX,KAAK,EAAE,CAAY,EAAE,EAAE;YACrB,8BAA8B;YAC9B,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;YAEpB,kFAAkF;YAClF,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC,EACD,mBAAmB,EACnB,gCAAgC,CACjC,CAAC;QAEF,iCAAiC;QACjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErC,qDAAqD;QACrD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,sDAAsD;QACtD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErC,qDAAqD;QACrD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,yBAAyB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,mFAAmF;QACnF,sDAAsD;QACtD,OAAO,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,QAAkB,EAClB,wBAA6C,EAC7C,gCAAwC;QAExC,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,MAAM,mBAAmB,GAAmB;YAC1C,SAAS,EAAE,UAAU,CAAC,0BAA0B,EAAE;YAClD,UAAU,EAAE,wBAAwB;SACrC,CAAC;QAEF,4DAA4D;QAC5D,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1F,8EAA8E;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,QAAmB,CAAC;QAExB,IAAI,WAAW,EAAE,CAAC;YAChB,6CAA6C;YAC7C,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,QAAQ,GAAG,MAAM,WAAW,CAAC,4BAA4B,CACvD,mBAAmB,EACnB,gCAAgC,EAChC,2BAAmB,CACpB,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,MAAM,WAAW,CAAC,uBAAuB,CACvC,QAAQ,EACR,KAAK,EAAE,CAAY,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAEzB,6DAA6D;YAC7D,MAAM,cAAc,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;gBACjE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBACvE,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,iBAAiB,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBACvE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBAC1E,CAAC,CAAC,EAAE,CAAC;YAEP,6EAA6E;YAC7E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;YAC1C,MAAM,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;YAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChD,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9C,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;YAE1C,6DAA6D;YAC7D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACvC,CAAC,EACD,mBAAmB,EACnB,gCAAgC,CACjC,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,SAAiB,EACjB,QAAkB,EAClB,wBAA6C,EAC7C,gCAAwC;QAExC,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,4CAA4C;QAC5C,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,uBAAuB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,qCAAqC;YACrC,OAAO;QACT,CAAC;QAED,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAElE,MAAM,mBAAmB,GAAmB;YAC1C,SAAS,EAAE,UAAU,CAAC,0BAA0B,EAAE;YAClD,UAAU,EAAE,wBAAwB;SACrC,CAAC;QAEF,wCAAwC;QACxC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3F,mCAAmC;QACnC,MAAM,WAAW,CAAC,uBAAuB,CACvC,QAAQ,EACR,KAAK,EAAE,CAAY,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAEzB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC3D,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACtE,OAAO;YACT,CAAC;YAED,2DAA2D;YAC3D,2CAA2C;YAC3C,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,cAA0B,CAAC;YACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAA6B,CAAC;YAC1D,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnE,6DAA6D;YAC7D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACvC,CAAC,EACD,mBAAmB,EACnB,gCAAgC,CACjC,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,wBAA6C,EAC7C,gCAAwC;QAExC,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,4CAA4C;QAC5C,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,uBAAuB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,qCAAqC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,mBAAmB,GAAmB;YAC1C,SAAS,EAAE,UAAU,CAAC,0BAA0B,EAAE;YAClD,UAAU,EAAE,wBAAwB;SACrC,CAAC;QAEF,2CAA2C;QAC3C,MAAM,WAAW,CAAC,4BAA4B,CAC5C,WAAW,CAAC,KAAK,EACjB,mBAAmB,EACnB,gCAAgC,CACjC,CAAC;QAEF,oBAAoB;QACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,yCAAyC;QACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,gBAAgB,CAAC,CAAC;QAEjD,0EAA0E;QAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEzD,2BAA2B;QAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,eAAe,CAAC,SAAiB;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,oCAAoC,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,KAAiB;QAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CACF;AAzhCD,8DAyhCC"}
1
+ {"version":3,"file":"BaseMindooTenantDirectory.js","sourceRoot":"","sources":["../../src/core/BaseMindooTenantDirectory.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { PrivateUserId, PublicUserId } from "./userid";
3
3
  import { CryptoAdapter } from "./crypto/CryptoAdapter";
4
4
  import { KeyBag } from "./keys/KeyBag";
5
5
  import { Logger } from "./logging";
6
+ import type { LocalCacheStore } from "./cache/LocalCacheStore";
6
7
  /**
7
8
  * BaseTenantFactory is a platform-agnostic implementation of TenantFactory
8
9
  * that creates and manages tenants and users.
@@ -14,7 +15,9 @@ export declare class BaseMindooTenantFactory implements MindooTenantFactory {
14
15
  private cryptoAdapter;
15
16
  private storeFactory;
16
17
  private logger;
17
- constructor(storeFactory: ContentAddressedStoreFactory, cryptoAdapter: CryptoAdapter, logger?: Logger);
18
+ private localCacheStore?;
19
+ constructor(storeFactory: ContentAddressedStoreFactory, cryptoAdapter: CryptoAdapter, logger?: Logger, localCacheStore?: LocalCacheStore);
20
+ getLocalCacheStore(): LocalCacheStore | undefined;
18
21
  getCryptoAdapter(): CryptoAdapter;
19
22
  /**
20
23
  * Opens an existing tenant.
@@ -29,6 +32,7 @@ export declare class BaseMindooTenantFactory implements MindooTenantFactory {
29
32
  * Removes the private information from a private user ID and returns a public user ID.
30
33
  */
31
34
  toPublicUserId(privateUserId: PrivateUserId): PublicUserId;
35
+ changeIdentityPassword(identity: PrivateUserId, oldPassword: string, newPassword: string): Promise<PrivateUserId>;
32
36
  /**
33
37
  * Creates a new signing key pair for the tenant.
34
38
  * Returns both the public and encrypted private key, as the public key is needed
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMindooTenantFactory.d.ts","sourceRoot":"","sources":["../../src/core/BaseMindooTenantFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,YAAY,EAEZ,4BAA4B,EAC5B,cAAc,EACd,iBAAiB,EAEjB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAA8C,MAAM,WAAW,CAAC;AAG/E;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IACjE,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,MAAM,CAAS;gBAGrB,YAAY,EAAE,4BAA4B,EAC1C,aAAa,EAAE,aAAa,EAC5B,MAAM,CAAC,EAAE,MAAM;IAUjB,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,uBAAuB,EAAE,MAAM,EAC/B,iCAAiC,EAAE,MAAM,EACzC,WAAW,EAAE,aAAa,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,CAAC;IAClB,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,aAAa,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC;IAkExB;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA4G9E;;OAEG;IACH,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY;IAQ1D;;;;OAIG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgCrE;;;;;;OAMG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuC3E;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0C7E;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,WAAW;IACpF,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GAAG,MAAM;IAkB1E;;OAEG;IACG,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2D5G;;;;;;;;OAQG;YACW,iBAAiB;YAgGjB,0BAA0B;IAgBxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAO3B"}
1
+ {"version":3,"file":"BaseMindooTenantFactory.d.ts","sourceRoot":"","sources":["../../src/core/BaseMindooTenantFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,YAAY,EAEZ,4BAA4B,EAC5B,cAAc,EACd,iBAAiB,EAGjB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAA8C,MAAM,WAAW,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IACjE,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAC,CAAkB;gBAGxC,YAAY,EAAE,4BAA4B,EAC1C,aAAa,EAAE,aAAa,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,eAAe;IAWnC,kBAAkB,IAAI,eAAe,GAAG,SAAS;IAIjD,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,uBAAuB,EAAE,MAAM,EAC/B,iCAAiC,EAAE,MAAM,EACzC,WAAW,EAAE,aAAa,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,CAAC;IAClB,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,aAAa,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC;IAmExB;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA4G9E;;OAEG;IACH,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY;IAQpD,sBAAsB,CAC1B,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC;IA0CzB;;;;OAIG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgCrE;;;;;;OAMG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuC3E;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiD7E;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,WAAW;IACpF,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GAAG,MAAM;IAkB1E;;OAEG;IACG,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6D5G;;;;;;;;OAQG;YACW,iBAAiB;YAwBjB,0BAA0B;IAgBxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAO3B"}