agl 1.0.17 → 21.0.2

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 (277) hide show
  1. package/.smartconfig.json +55 -0
  2. package/changelog.md +1026 -0
  3. package/cli.js +14 -0
  4. package/dist_serve/bundle.js +44778 -0
  5. package/dist_serve/index.html +13 -0
  6. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  7. package/dist_ts/00_commitinfo_data.js +9 -0
  8. package/dist_ts/classes.authmodels.d.ts +126 -0
  9. package/dist_ts/classes.authmodels.js +1422 -0
  10. package/dist_ts/classes.authstore.d.ts +160 -0
  11. package/dist_ts/classes.authstore.js +2483 -0
  12. package/dist_ts/classes.browserresourcehost.d.ts +85 -0
  13. package/dist_ts/classes.browserresourcehost.js +912 -0
  14. package/dist_ts/classes.cli.d.ts +21 -0
  15. package/dist_ts/classes.cli.js +1082 -0
  16. package/dist_ts/classes.config.d.ts +23 -0
  17. package/dist_ts/classes.config.js +267 -0
  18. package/dist_ts/classes.controller.d.ts +523 -0
  19. package/dist_ts/classes.controller.js +10611 -0
  20. package/dist_ts/classes.controllermanagement.d.ts +32 -0
  21. package/dist_ts/classes.controllermanagement.js +222 -0
  22. package/dist_ts/classes.draftmanager.d.ts +30 -0
  23. package/dist_ts/classes.draftmanager.js +179 -0
  24. package/dist_ts/classes.embeddeddb.d.ts +30 -0
  25. package/dist_ts/classes.embeddeddb.js +159 -0
  26. package/dist_ts/classes.flexframedtransport.d.ts +56 -0
  27. package/dist_ts/classes.flexframedtransport.js +275 -0
  28. package/dist_ts/classes.flexmodels.private.d.ts +231 -0
  29. package/dist_ts/classes.flexmodels.private.js +985 -0
  30. package/dist_ts/classes.flexmodels.public.d.ts +207 -0
  31. package/dist_ts/classes.flexmodels.public.js +885 -0
  32. package/dist_ts/classes.flexprojectionreader.d.ts +89 -0
  33. package/dist_ts/classes.flexprojectionreader.js +580 -0
  34. package/dist_ts/classes.flexservice.d.ts +196 -0
  35. package/dist_ts/classes.flexservice.js +3704 -0
  36. package/dist_ts/classes.flexstore.d.ts +174 -0
  37. package/dist_ts/classes.flexstore.js +3400 -0
  38. package/dist_ts/classes.flexsupervisor.d.ts +105 -0
  39. package/dist_ts/classes.flexsupervisor.js +1191 -0
  40. package/dist_ts/classes.gitreversion.d.ts +431 -0
  41. package/dist_ts/classes.gitreversion.js +10592 -0
  42. package/dist_ts/classes.harnessoperationmanager.d.ts +113 -0
  43. package/dist_ts/classes.harnessoperationmanager.js +602 -0
  44. package/dist_ts/classes.opencodeclient.d.ts +146 -0
  45. package/dist_ts/classes.opencodeclient.js +3003 -0
  46. package/dist_ts/classes.opencodesupervisor.d.ts +60 -0
  47. package/dist_ts/classes.opencodesupervisor.js +1003 -0
  48. package/dist_ts/classes.passkeymanager.d.ts +34 -0
  49. package/dist_ts/classes.passkeymanager.js +456 -0
  50. package/dist_ts/classes.processinspection.d.ts +50 -0
  51. package/dist_ts/classes.processinspection.js +484 -0
  52. package/dist_ts/classes.resourcecoordinator.d.ts +64 -0
  53. package/dist_ts/classes.resourcecoordinator.js +294 -0
  54. package/dist_ts/classes.sessionintelligencereader.d.ts +13 -0
  55. package/dist_ts/classes.sessionintelligencereader.js +40 -0
  56. package/dist_ts/classes.systemmetricssampler.d.ts +53 -0
  57. package/dist_ts/classes.systemmetricssampler.js +168 -0
  58. package/dist_ts/classes.terminalmanager.d.ts +95 -0
  59. package/dist_ts/classes.terminalmanager.js +981 -0
  60. package/dist_ts/classes.terminalresourcehost.d.ts +20 -0
  61. package/dist_ts/classes.terminalresourcehost.js +84 -0
  62. package/dist_ts/classes.upgradecoordinator.d.ts +244 -0
  63. package/dist_ts/classes.upgradecoordinator.js +2155 -0
  64. package/dist_ts/classes.upgradetransaction.d.ts +92 -0
  65. package/dist_ts/classes.upgradetransaction.js +2125 -0
  66. package/dist_ts/classes.uploadmanager.d.ts +24 -0
  67. package/dist_ts/classes.uploadmanager.js +210 -0
  68. package/dist_ts/classes.validation.d.ts +91 -0
  69. package/dist_ts/classes.validation.js +1087 -0
  70. package/dist_ts/flexharness.child.d.ts +1 -0
  71. package/dist_ts/flexharness.child.js +28 -0
  72. package/dist_ts/functions.canonicaldirectory.d.ts +21 -0
  73. package/dist_ts/functions.canonicaldirectory.js +144 -0
  74. package/dist_ts/functions.controllerdataroot.d.ts +15 -0
  75. package/dist_ts/functions.controllerdataroot.js +76 -0
  76. package/dist_ts/functions.embeddeddb.d.ts +2 -0
  77. package/dist_ts/functions.embeddeddb.js +21 -0
  78. package/dist_ts/functions.flexcredentialstore.d.ts +16 -0
  79. package/dist_ts/functions.flexcredentialstore.js +93 -0
  80. package/dist_ts/functions.opencodeauth.d.ts +3 -0
  81. package/dist_ts/functions.opencodeauth.js +31 -0
  82. package/dist_ts/functions.runtimeenvironment.d.ts +2 -0
  83. package/dist_ts/functions.runtimeenvironment.js +79 -0
  84. package/dist_ts/functions.upgradefollower.d.ts +3 -0
  85. package/dist_ts/functions.upgradefollower.js +95 -0
  86. package/dist_ts/index.d.ts +24 -0
  87. package/dist_ts/index.js +25 -0
  88. package/dist_ts/interfaces.auth.d.ts +181 -0
  89. package/dist_ts/interfaces.auth.js +82 -0
  90. package/dist_ts/interfaces.config.d.ts +34 -0
  91. package/dist_ts/interfaces.config.js +2 -0
  92. package/dist_ts/interfaces.flexipc.d.ts +939 -0
  93. package/dist_ts/interfaces.flexipc.js +1492 -0
  94. package/dist_ts/interfaces.gitreversion.d.ts +246 -0
  95. package/dist_ts/interfaces.gitreversion.js +2 -0
  96. package/dist_ts/interfaces.lifecycle.d.ts +37 -0
  97. package/dist_ts/interfaces.lifecycle.js +2 -0
  98. package/dist_ts/interfaces.opencode.d.ts +101 -0
  99. package/dist_ts/interfaces.opencode.js +3 -0
  100. package/dist_ts/interfaces.projects.d.ts +156 -0
  101. package/dist_ts/interfaces.projects.js +5 -0
  102. package/dist_ts/plugins.d.ts +36 -0
  103. package/dist_ts/plugins.js +40 -0
  104. package/dist_ts_interfaces/index.d.ts +2 -0
  105. package/dist_ts_interfaces/index.js +3 -0
  106. package/dist_ts_interfaces/interfaces.d.ts +747 -0
  107. package/dist_ts_interfaces/interfaces.js +47 -0
  108. package/dist_ts_interfaces/plugins.d.ts +4 -0
  109. package/dist_ts_interfaces/plugins.js +3 -0
  110. package/dist_ts_interfaces/requests.d.ts +806 -0
  111. package/dist_ts_interfaces/requests.js +2 -0
  112. package/dist_ts_migration/classes.documentmigrationrunner.d.ts +8 -0
  113. package/dist_ts_migration/classes.documentmigrationrunner.js +24 -0
  114. package/dist_ts_migration/classes.flexmigrationrunner.d.ts +11 -0
  115. package/dist_ts_migration/classes.flexmigrationrunner.js +25 -0
  116. package/dist_ts_migration/classes.flexpostharnessmigrationrunner.d.ts +10 -0
  117. package/dist_ts_migration/classes.flexpostharnessmigrationrunner.js +15 -0
  118. package/dist_ts_migration/classes.migrationrunner.d.ts +8 -0
  119. package/dist_ts_migration/classes.migrationrunner.js +34 -0
  120. package/dist_ts_migration/index.d.ts +12 -0
  121. package/dist_ts_migration/index.js +13 -0
  122. package/dist_ts_migration/v10_flexharnessv3migration.d.ts +11 -0
  123. package/dist_ts_migration/v10_flexharnessv3migration.js +23 -0
  124. package/dist_ts_migration/v13_flexprojectionorder.d.ts +11 -0
  125. package/dist_ts_migration/v13_flexprojectionorder.js +23 -0
  126. package/dist_ts_migration/v16_flexprovidercredentials.d.ts +22 -0
  127. package/dist_ts_migration/v16_flexprovidercredentials.js +149 -0
  128. package/dist_ts_migration/v18_resourcelayout.d.ts +22 -0
  129. package/dist_ts_migration/v18_resourcelayout.js +23 -0
  130. package/dist_ts_migration/v18_resourcelayoutmigration.d.ts +6 -0
  131. package/dist_ts_migration/v18_resourcelayoutmigration.js +61 -0
  132. package/dist_ts_migration/v19_flexprojectmanagement.d.ts +11 -0
  133. package/dist_ts_migration/v19_flexprojectmanagement.js +21 -0
  134. package/dist_ts_migration/v1_embeddeddatabaselocation.d.ts +28 -0
  135. package/dist_ts_migration/v1_embeddeddatabaselocation.js +415 -0
  136. package/dist_ts_migration/v22_projectfilesystemidentitymigration.d.ts +7 -0
  137. package/dist_ts_migration/v22_projectfilesystemidentitymigration.js +105 -0
  138. package/dist_ts_migration/v2_controllerdataroot.d.ts +130 -0
  139. package/dist_ts_migration/v2_controllerdataroot.js +1887 -0
  140. package/dist_ts_migration/v6_protocoldocumentmigration.d.ts +7 -0
  141. package/dist_ts_migration/v6_protocoldocumentmigration.js +100 -0
  142. package/dist_ts_migration/v6_protocoldocuments.d.ts +7 -0
  143. package/dist_ts_migration/v6_protocoldocuments.js +138 -0
  144. package/html/index.html +13 -0
  145. package/{LICENSE → license.md} +2 -2
  146. package/package.json +86 -48
  147. package/readme.md +480 -0
  148. package/readme.plan.md +188 -0
  149. package/ts/00_commitinfo_data.ts +8 -0
  150. package/ts/classes.authmodels.ts +1245 -0
  151. package/ts/classes.authstore.ts +3274 -0
  152. package/ts/classes.browserresourcehost.ts +1205 -0
  153. package/ts/classes.cli.ts +1254 -0
  154. package/ts/classes.config.ts +351 -0
  155. package/ts/classes.controller.ts +14426 -0
  156. package/ts/classes.controllermanagement.ts +330 -0
  157. package/ts/classes.draftmanager.ts +232 -0
  158. package/ts/classes.embeddeddb.ts +166 -0
  159. package/ts/classes.flexframedtransport.ts +283 -0
  160. package/ts/classes.flexmodels.private.ts +823 -0
  161. package/ts/classes.flexmodels.public.ts +732 -0
  162. package/ts/classes.flexprojectionreader.ts +816 -0
  163. package/ts/classes.flexservice.ts +4302 -0
  164. package/ts/classes.flexstore.ts +4565 -0
  165. package/ts/classes.flexsupervisor.ts +1453 -0
  166. package/ts/classes.gitreversion.ts +13353 -0
  167. package/ts/classes.harnessoperationmanager.ts +870 -0
  168. package/ts/classes.opencodeclient.ts +4110 -0
  169. package/ts/classes.opencodesupervisor.ts +1280 -0
  170. package/ts/classes.passkeymanager.ts +570 -0
  171. package/ts/classes.processinspection.ts +623 -0
  172. package/ts/classes.resourcecoordinator.ts +436 -0
  173. package/ts/classes.sessionintelligencereader.ts +52 -0
  174. package/ts/classes.systemmetricssampler.ts +215 -0
  175. package/ts/classes.terminalmanager.ts +1207 -0
  176. package/ts/classes.terminalresourcehost.ts +122 -0
  177. package/ts/classes.upgradecoordinator.ts +2675 -0
  178. package/ts/classes.upgradetransaction.ts +2900 -0
  179. package/ts/classes.uploadmanager.ts +240 -0
  180. package/ts/classes.validation.ts +1409 -0
  181. package/ts/flexharness.child.ts +35 -0
  182. package/ts/functions.canonicaldirectory.ts +213 -0
  183. package/ts/functions.controllerdataroot.ts +107 -0
  184. package/ts/functions.embeddeddb.ts +22 -0
  185. package/ts/functions.flexcredentialstore.ts +128 -0
  186. package/ts/functions.opencodeauth.ts +34 -0
  187. package/ts/functions.runtimeenvironment.ts +90 -0
  188. package/ts/functions.upgradefollower.ts +115 -0
  189. package/ts/index.ts +36 -6
  190. package/ts/interfaces.auth.ts +316 -0
  191. package/ts/interfaces.config.ts +37 -0
  192. package/ts/interfaces.flexipc.ts +2586 -0
  193. package/ts/interfaces.gitreversion.ts +336 -0
  194. package/ts/interfaces.lifecycle.ts +46 -0
  195. package/ts/interfaces.opencode.ts +153 -0
  196. package/ts/interfaces.projects.ts +182 -0
  197. package/ts/plugins.ts +64 -0
  198. package/ts_interfaces/index.ts +2 -0
  199. package/ts_interfaces/interfaces.ts +827 -0
  200. package/ts_interfaces/plugins.ts +15 -0
  201. package/ts_interfaces/requests.ts +1186 -0
  202. package/ts_migration/classes.documentmigrationrunner.ts +32 -0
  203. package/ts_migration/classes.flexmigrationrunner.ts +33 -0
  204. package/ts_migration/classes.flexpostharnessmigrationrunner.ts +22 -0
  205. package/ts_migration/classes.migrationrunner.ts +40 -0
  206. package/ts_migration/index.ts +12 -0
  207. package/ts_migration/v10_flexharnessv3migration.ts +35 -0
  208. package/ts_migration/v13_flexprojectionorder.ts +33 -0
  209. package/ts_migration/v16_flexprovidercredentials.ts +196 -0
  210. package/ts_migration/v18_resourcelayout.ts +55 -0
  211. package/ts_migration/v18_resourcelayoutmigration.ts +68 -0
  212. package/ts_migration/v19_flexprojectmanagement.ts +28 -0
  213. package/ts_migration/v1_embeddeddatabaselocation.ts +560 -0
  214. package/ts_migration/v22_projectfilesystemidentitymigration.ts +121 -0
  215. package/ts_migration/v2_controllerdataroot.ts +2349 -0
  216. package/ts_migration/v6_protocoldocumentmigration.ts +144 -0
  217. package/ts_migration/v6_protocoldocuments.ts +198 -0
  218. package/ts_web/00_commitinfo_data.ts +8 -0
  219. package/ts_web/classes.controllersocketclient.ts +517 -0
  220. package/ts_web/classes.sessiondraftsync.ts +390 -0
  221. package/ts_web/elements.harnesscontrollerapp.ts +11494 -0
  222. package/ts_web/index.ts +2 -0
  223. package/ts_web/plugins.ts +31 -0
  224. package/.gitlab-ci.yml +0 -71
  225. package/.npmignore +0 -5
  226. package/README.md +0 -40
  227. package/dist/cli.js +0 -2
  228. package/dist/index.d.ts +0 -0
  229. package/dist/index.js +0 -9
  230. package/dist/mod_bundle/index.d.ts +0 -1
  231. package/dist/mod_bundle/index.js +0 -18
  232. package/dist/mod_bundle/mod.plugins.d.ts +0 -4
  233. package/dist/mod_bundle/mod.plugins.js +0 -11
  234. package/dist/mod_install/index.d.ts +0 -4
  235. package/dist/mod_install/index.js +0 -21
  236. package/dist/mod_install/mod.plugins.d.ts +0 -1
  237. package/dist/mod_install/mod.plugins.js +0 -7
  238. package/dist/mod_standard/index.d.ts +0 -4
  239. package/dist/mod_standard/index.js +0 -21
  240. package/dist/mod_standard/mod.browser.d.ts +0 -6
  241. package/dist/mod_standard/mod.browser.js +0 -14
  242. package/dist/mod_standard/mod.clean.d.ts +0 -4
  243. package/dist/mod_standard/mod.clean.js +0 -12
  244. package/dist/mod_standard/mod.compile.d.ts +0 -4
  245. package/dist/mod_standard/mod.compile.js +0 -21
  246. package/dist/mod_standard/mod.plugins.d.ts +0 -8
  247. package/dist/mod_standard/mod.plugins.js +0 -19
  248. package/dist/mod_standard/mod.test.d.ts +0 -4
  249. package/dist/mod_standard/mod.test.js +0 -12
  250. package/dist/plr.cli.d.ts +0 -3
  251. package/dist/plr.cli.js +0 -57
  252. package/dist/plr.config.d.ts +0 -11
  253. package/dist/plr.config.js +0 -26
  254. package/dist/plr.mods.d.ts +0 -17
  255. package/dist/plr.mods.js +0 -17
  256. package/dist/plr.paths.d.ts +0 -19
  257. package/dist/plr.paths.js +0 -26
  258. package/dist/plr.plugins.d.ts +0 -8
  259. package/dist/plr.plugins.js +0 -16
  260. package/npmextra.json +0 -10
  261. package/ts/mod_bundle/index.ts +0 -20
  262. package/ts/mod_bundle/mod.plugins.ts +0 -9
  263. package/ts/mod_install/index.ts +0 -20
  264. package/ts/mod_install/mod.plugins.ts +0 -1
  265. package/ts/mod_standard/index.ts +0 -23
  266. package/ts/mod_standard/mod.browser.ts +0 -17
  267. package/ts/mod_standard/mod.clean.ts +0 -13
  268. package/ts/mod_standard/mod.compile.ts +0 -23
  269. package/ts/mod_standard/mod.plugins.ts +0 -17
  270. package/ts/mod_standard/mod.test.ts +0 -13
  271. package/ts/plr.cli.ts +0 -60
  272. package/ts/plr.config.ts +0 -36
  273. package/ts/plr.mods.ts +0 -25
  274. package/ts/plr.paths.ts +0 -29
  275. package/ts/plr.plugins.ts +0 -17
  276. package/tslint.json +0 -3
  277. package/yarn.lock +0 -3464
@@ -0,0 +1,885 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import * as plugins from './plugins.js';
36
+ import { hasFlexExactKeys, isFlexPlainObject, isFlexPublicMessage, isFlexPublicSession, } from './interfaces.flexipc.js';
37
+ export const flexPublicSessionLimit = 2048;
38
+ export const flexPublicMessageLimit = 2048;
39
+ export const flexPublicMessageBytesLimit = 64 * 1024 * 1024;
40
+ export const flexPublicSingleMessageBytesLimit = 480 * 1024;
41
+ export const flexPublicPageBytesLimit = 512 * 1024;
42
+ export const flexPublicPageLimit = 50;
43
+ const digestPattern = /^[a-f0-9]{64}$/u;
44
+ const candidateIdPattern = /^[A-Za-z0-9_-]{22}$/u;
45
+ const isBoundedString = (valueArg, maximumBytesArg) => typeof valueArg === 'string'
46
+ && valueArg.length > 0
47
+ && Buffer.byteLength(valueArg, 'utf8') <= maximumBytesArg;
48
+ const isNonNegativeInteger = (valueArg) => Number.isSafeInteger(valueArg) && valueArg >= 0;
49
+ const isIsoDate = (valueArg) => typeof valueArg === 'string'
50
+ && Number.isFinite(Date.parse(valueArg))
51
+ && new Date(valueArg).toISOString() === valueArg;
52
+ export const isFlexProjectionMessageDescriptor = (valueArg) => isFlexPlainObject(valueArg)
53
+ && hasFlexExactKeys(valueArg, [
54
+ 'id', 'index', 'sha256', 'bytes', 'messageCreatedAt', 'sessionId', 'messageId',
55
+ ], ['messageIndex'])
56
+ && isBoundedString(valueArg.id, 1024)
57
+ && isNonNegativeInteger(valueArg.index)
58
+ && (valueArg.messageIndex === undefined || isNonNegativeInteger(valueArg.messageIndex))
59
+ && typeof valueArg.sha256 === 'string'
60
+ && digestPattern.test(valueArg.sha256)
61
+ && isNonNegativeInteger(valueArg.bytes)
62
+ && valueArg.bytes <= flexPublicSingleMessageBytesLimit + 4096
63
+ && isIsoDate(valueArg.messageCreatedAt)
64
+ && isBoundedString(valueArg.sessionId, 512)
65
+ && isBoundedString(valueArg.messageId, 512);
66
+ export const isFlexProjectionSourceManifest = (valueArg) => isFlexPlainObject(valueArg)
67
+ && hasFlexExactKeys(valueArg, [
68
+ 'candidateId', 'sha256', 'bytes', 'messageCount', 'messagesTruncated', 'visibleDigest',
69
+ ], ['latestMessage', 'orderVersion'])
70
+ && typeof valueArg.candidateId === 'string'
71
+ && candidateIdPattern.test(valueArg.candidateId)
72
+ && (valueArg.orderVersion === undefined || valueArg.orderVersion === 1)
73
+ && typeof valueArg.sha256 === 'string'
74
+ && digestPattern.test(valueArg.sha256)
75
+ && isNonNegativeInteger(valueArg.bytes)
76
+ && valueArg.bytes <= 4096
77
+ && isNonNegativeInteger(valueArg.messageCount)
78
+ && typeof valueArg.messagesTruncated === 'boolean'
79
+ && typeof valueArg.visibleDigest === 'string'
80
+ && digestPattern.test(valueArg.visibleDigest)
81
+ && (valueArg.latestMessage === undefined
82
+ ? valueArg.messageCount === 0
83
+ : isFlexProjectionMessageDescriptor(valueArg.latestMessage)
84
+ && valueArg.messageCount === valueArg.latestMessage.index + 1)
85
+ && (valueArg.orderVersion !== 1
86
+ || valueArg.latestMessage === undefined
87
+ || (isFlexProjectionMessageDescriptor(valueArg.latestMessage)
88
+ && valueArg.latestMessage.messageIndex !== undefined));
89
+ export const isFlexRecordManifest = (valueArg) => isFlexPlainObject(valueArg)
90
+ && hasFlexExactKeys(valueArg, ['id', 'sha256', 'bytes'])
91
+ && isBoundedString(valueArg.id, 1024)
92
+ && typeof valueArg.sha256 === 'string'
93
+ && digestPattern.test(valueArg.sha256)
94
+ && isNonNegativeInteger(valueArg.bytes);
95
+ const isFlexPublicSourceRevision = (valueArg) => isFlexPlainObject(valueArg)
96
+ && hasFlexExactKeys(valueArg, ['incarnationId', 'revision'])
97
+ && typeof valueArg.incarnationId === 'string'
98
+ && candidateIdPattern.test(valueArg.incarnationId)
99
+ && isNonNegativeInteger(valueArg.revision)
100
+ && valueArg.revision >= 1;
101
+ const isFlexPublicProjectionSource = (valueArg) => isFlexPlainObject(valueArg)
102
+ && hasFlexExactKeys(valueArg, ['sessionId', 'incarnationId', 'revision'])
103
+ && isBoundedString(valueArg.sessionId, 512)
104
+ && typeof valueArg.incarnationId === 'string'
105
+ && candidateIdPattern.test(valueArg.incarnationId)
106
+ && isNonNegativeInteger(valueArg.revision)
107
+ && valueArg.revision >= 1;
108
+ export const isFlexPublicCandidateManifest = (valueArg) => isFlexPlainObject(valueArg)
109
+ && hasFlexExactKeys(valueArg, [
110
+ 'candidateId',
111
+ 'revision',
112
+ 'sha256',
113
+ 'bytes',
114
+ 'sessionRecords',
115
+ 'messageRecords',
116
+ 'sessionsTruncated',
117
+ 'messagesTruncated',
118
+ 'messageBytesTruncated',
119
+ 'visibleDigest',
120
+ 'scopeSource',
121
+ 'projectionSources',
122
+ ])
123
+ && typeof valueArg.candidateId === 'string'
124
+ && candidateIdPattern.test(valueArg.candidateId)
125
+ && isNonNegativeInteger(valueArg.revision)
126
+ && typeof valueArg.sha256 === 'string'
127
+ && digestPattern.test(valueArg.sha256)
128
+ && isNonNegativeInteger(valueArg.bytes)
129
+ && Array.isArray(valueArg.sessionRecords)
130
+ && valueArg.sessionRecords.length <= flexPublicSessionLimit
131
+ && valueArg.sessionRecords.every(isFlexRecordManifest)
132
+ && Array.isArray(valueArg.messageRecords)
133
+ && valueArg.messageRecords.length <= flexPublicMessageLimit
134
+ && valueArg.messageRecords.every(isFlexRecordManifest)
135
+ && typeof valueArg.sessionsTruncated === 'boolean'
136
+ && typeof valueArg.messagesTruncated === 'boolean'
137
+ && typeof valueArg.messageBytesTruncated === 'boolean'
138
+ && typeof valueArg.visibleDigest === 'string'
139
+ && digestPattern.test(valueArg.visibleDigest)
140
+ && isFlexPublicSourceRevision(valueArg.scopeSource)
141
+ && Array.isArray(valueArg.projectionSources)
142
+ && valueArg.projectionSources.length <= flexPublicSessionLimit
143
+ && valueArg.projectionSources.every(isFlexPublicProjectionSource)
144
+ && new Set(valueArg.projectionSources.map((source) => source.sessionId)).size
145
+ === valueArg.projectionSources.length;
146
+ export function assertFlexPublicCandidateDocument(valueArg) {
147
+ if (!isFlexPlainObject(valueArg)
148
+ || !hasFlexExactKeys(valueArg, [
149
+ 'id',
150
+ 'controllerId',
151
+ 'scopeId',
152
+ 'candidateId',
153
+ 'revision',
154
+ 'sha256',
155
+ 'bytes',
156
+ 'sessionRecords',
157
+ 'messageRecords',
158
+ 'sessionsTruncated',
159
+ 'messagesTruncated',
160
+ 'messageBytesTruncated',
161
+ 'visibleDigest',
162
+ 'scopeSource',
163
+ 'projectionSources',
164
+ 'createdAt',
165
+ ])
166
+ || !isBoundedString(valueArg.id, 1024)
167
+ || !isBoundedString(valueArg.controllerId, 512)
168
+ || !isBoundedString(valueArg.scopeId, 512)
169
+ || !isIsoDate(valueArg.createdAt)
170
+ || !isFlexPublicCandidateManifest({
171
+ candidateId: valueArg.candidateId,
172
+ revision: valueArg.revision,
173
+ sha256: valueArg.sha256,
174
+ bytes: valueArg.bytes,
175
+ sessionRecords: valueArg.sessionRecords,
176
+ messageRecords: valueArg.messageRecords,
177
+ sessionsTruncated: valueArg.sessionsTruncated,
178
+ messagesTruncated: valueArg.messagesTruncated,
179
+ messageBytesTruncated: valueArg.messageBytesTruncated,
180
+ visibleDigest: valueArg.visibleDigest,
181
+ scopeSource: valueArg.scopeSource,
182
+ projectionSources: valueArg.projectionSources,
183
+ }))
184
+ throw new Error('Invalid Flex public candidate document.');
185
+ }
186
+ export function assertFlexPublicHeadDocument(valueArg) {
187
+ if (!isFlexPlainObject(valueArg)
188
+ || !hasFlexExactKeys(valueArg, [
189
+ 'id', 'controllerId', 'storageKey', 'revision',
190
+ 'currentPublicCandidateId', 'publicCandidates',
191
+ ])
192
+ || !isBoundedString(valueArg.id, 1024)
193
+ || !isBoundedString(valueArg.controllerId, 512)
194
+ || !isBoundedString(valueArg.storageKey, 512)
195
+ || !isNonNegativeInteger(valueArg.revision)
196
+ || valueArg.revision < 1
197
+ || typeof valueArg.currentPublicCandidateId !== 'string'
198
+ || !candidateIdPattern.test(valueArg.currentPublicCandidateId)
199
+ || !Array.isArray(valueArg.publicCandidates)
200
+ || valueArg.publicCandidates.length < 1
201
+ || valueArg.publicCandidates.length > 4
202
+ || !valueArg.publicCandidates.every(isFlexPublicCandidateManifest)
203
+ || valueArg.publicCandidates[0]?.candidateId !== valueArg.currentPublicCandidateId
204
+ || valueArg.publicCandidates[0]?.revision !== valueArg.revision
205
+ || valueArg.publicCandidates.some((candidate, index, candidates) => (index > 0 && candidate.revision >= candidates[index - 1].revision)))
206
+ throw new Error('Invalid Flex public head document.');
207
+ }
208
+ export function assertFlexPublicSessionRecordDocument(valueArg) {
209
+ if (!isFlexPlainObject(valueArg)
210
+ || !hasFlexExactKeys(valueArg, [
211
+ 'id', 'controllerId', 'scopeId', 'candidateId', 'revision', 'session', 'createdAt',
212
+ ])
213
+ || !isBoundedString(valueArg.id, 1024)
214
+ || !isBoundedString(valueArg.controllerId, 512)
215
+ || !isBoundedString(valueArg.scopeId, 512)
216
+ || typeof valueArg.candidateId !== 'string'
217
+ || !candidateIdPattern.test(valueArg.candidateId)
218
+ || !isNonNegativeInteger(valueArg.revision)
219
+ || !isIsoDate(valueArg.createdAt)
220
+ || !isFlexPublicSession(valueArg.session)
221
+ || valueArg.session.scopeId !== valueArg.scopeId)
222
+ throw new Error('Invalid Flex public session record.');
223
+ }
224
+ export function assertFlexPublicMessageRecordDocument(valueArg) {
225
+ if (!isFlexPlainObject(valueArg)
226
+ || !hasFlexExactKeys(valueArg, [
227
+ 'id', 'controllerId', 'scopeId', 'candidateId', 'revision', 'messageIndex',
228
+ 'message', 'createdAt',
229
+ ])
230
+ || !isBoundedString(valueArg.id, 1024)
231
+ || !isBoundedString(valueArg.controllerId, 512)
232
+ || !isBoundedString(valueArg.scopeId, 512)
233
+ || typeof valueArg.candidateId !== 'string'
234
+ || !candidateIdPattern.test(valueArg.candidateId)
235
+ || !isNonNegativeInteger(valueArg.revision)
236
+ || !isNonNegativeInteger(valueArg.messageIndex)
237
+ || !isIsoDate(valueArg.createdAt)
238
+ || !isFlexPublicMessage(valueArg.message))
239
+ throw new Error('Invalid Flex public message record.');
240
+ }
241
+ export function assertFlexProjectionSourceDocument(valueArg) {
242
+ if (!isFlexPlainObject(valueArg)
243
+ || !hasFlexExactKeys(valueArg, [
244
+ 'id', 'controllerId', 'scopeId', 'sessionId', 'incarnationId', 'revision',
245
+ 'candidateId', 'sha256', 'bytes', 'messageCount', 'messagesTruncated',
246
+ 'visibleDigest', 'createdAt',
247
+ ], ['latestMessage', 'orderVersion'])
248
+ || !isBoundedString(valueArg.id, 1024)
249
+ || !isBoundedString(valueArg.controllerId, 512)
250
+ || !isBoundedString(valueArg.scopeId, 512)
251
+ || !isBoundedString(valueArg.sessionId, 512)
252
+ || typeof valueArg.incarnationId !== 'string'
253
+ || !candidateIdPattern.test(valueArg.incarnationId)
254
+ || !isNonNegativeInteger(valueArg.revision)
255
+ || valueArg.revision < 1
256
+ || !isIsoDate(valueArg.createdAt)
257
+ || !isFlexProjectionSourceManifest({
258
+ candidateId: valueArg.candidateId,
259
+ ...(valueArg.orderVersion === undefined ? {} : { orderVersion: valueArg.orderVersion }),
260
+ sha256: valueArg.sha256,
261
+ bytes: valueArg.bytes,
262
+ messageCount: valueArg.messageCount,
263
+ messagesTruncated: valueArg.messagesTruncated,
264
+ visibleDigest: valueArg.visibleDigest,
265
+ ...(valueArg.latestMessage === undefined ? {} : { latestMessage: valueArg.latestMessage }),
266
+ }))
267
+ throw new Error('Invalid Flex projection source document.');
268
+ }
269
+ export function assertFlexProjectionMessageRecordDocument(valueArg) {
270
+ if (!isFlexPlainObject(valueArg)
271
+ || !hasFlexExactKeys(valueArg, [
272
+ 'id', 'controllerId', 'scopeId', 'candidateId', 'sessionId', 'incarnationId',
273
+ 'revision', 'index', 'sha256', 'bytes', 'messageCreatedAt', 'messageId',
274
+ 'message', 'createdAt',
275
+ ], ['messageIndex', 'previous'])
276
+ || !isBoundedString(valueArg.controllerId, 512)
277
+ || !isBoundedString(valueArg.scopeId, 512)
278
+ || typeof valueArg.candidateId !== 'string'
279
+ || !candidateIdPattern.test(valueArg.candidateId)
280
+ || !isBoundedString(valueArg.sessionId, 512)
281
+ || typeof valueArg.incarnationId !== 'string'
282
+ || !candidateIdPattern.test(valueArg.incarnationId)
283
+ || !isNonNegativeInteger(valueArg.revision)
284
+ || valueArg.revision < 1
285
+ || !isIsoDate(valueArg.createdAt)
286
+ || !isFlexProjectionMessageDescriptor({
287
+ id: valueArg.id,
288
+ index: valueArg.index,
289
+ ...(valueArg.messageIndex === undefined ? {} : { messageIndex: valueArg.messageIndex }),
290
+ sha256: valueArg.sha256,
291
+ bytes: valueArg.bytes,
292
+ messageCreatedAt: valueArg.messageCreatedAt,
293
+ sessionId: valueArg.sessionId,
294
+ messageId: valueArg.messageId,
295
+ })
296
+ || !isFlexPublicMessage(valueArg.message)
297
+ || valueArg.message.sessionId !== valueArg.sessionId
298
+ || valueArg.message.messageId !== valueArg.messageId
299
+ || valueArg.message.createdAt !== valueArg.messageCreatedAt
300
+ || (valueArg.previous !== undefined
301
+ && !isFlexProjectionMessageDescriptor(valueArg.previous)))
302
+ throw new Error('Invalid Flex projection message record.');
303
+ }
304
+ let FlexPublicCandidateModel = (() => {
305
+ let _classDecorators = [plugins.smartdata.compoundIndex({
306
+ name: 'flex_public_candidate_orphans',
307
+ key: { controllerId: 1, createdAt: 1, _id: 1 },
308
+ }), plugins.smartdata.managed({ collectionName: 'flex_public_candidates' })];
309
+ let _classDescriptor;
310
+ let _classExtraInitializers = [];
311
+ let _classThis;
312
+ let _classSuper = plugins.smartdata.SmartDataDbDoc;
313
+ let _id_decorators;
314
+ let _id_initializers = [];
315
+ let _id_extraInitializers = [];
316
+ let _controllerId_decorators;
317
+ let _controllerId_initializers = [];
318
+ let _controllerId_extraInitializers = [];
319
+ let _scopeId_decorators;
320
+ let _scopeId_initializers = [];
321
+ let _scopeId_extraInitializers = [];
322
+ let _candidateId_decorators;
323
+ let _candidateId_initializers = [];
324
+ let _candidateId_extraInitializers = [];
325
+ let _revision_decorators;
326
+ let _revision_initializers = [];
327
+ let _revision_extraInitializers = [];
328
+ let _sha256_decorators;
329
+ let _sha256_initializers = [];
330
+ let _sha256_extraInitializers = [];
331
+ let _bytes_decorators;
332
+ let _bytes_initializers = [];
333
+ let _bytes_extraInitializers = [];
334
+ let _sessionRecords_decorators;
335
+ let _sessionRecords_initializers = [];
336
+ let _sessionRecords_extraInitializers = [];
337
+ let _messageRecords_decorators;
338
+ let _messageRecords_initializers = [];
339
+ let _messageRecords_extraInitializers = [];
340
+ let _sessionsTruncated_decorators;
341
+ let _sessionsTruncated_initializers = [];
342
+ let _sessionsTruncated_extraInitializers = [];
343
+ let _messagesTruncated_decorators;
344
+ let _messagesTruncated_initializers = [];
345
+ let _messagesTruncated_extraInitializers = [];
346
+ let _messageBytesTruncated_decorators;
347
+ let _messageBytesTruncated_initializers = [];
348
+ let _messageBytesTruncated_extraInitializers = [];
349
+ let _visibleDigest_decorators;
350
+ let _visibleDigest_initializers = [];
351
+ let _visibleDigest_extraInitializers = [];
352
+ let _scopeSource_decorators;
353
+ let _scopeSource_initializers = [];
354
+ let _scopeSource_extraInitializers = [];
355
+ let _projectionSources_decorators;
356
+ let _projectionSources_initializers = [];
357
+ let _projectionSources_extraInitializers = [];
358
+ let _createdAt_decorators;
359
+ let _createdAt_initializers = [];
360
+ let _createdAt_extraInitializers = [];
361
+ var FlexPublicCandidateModel = class extends _classSuper {
362
+ static { _classThis = this; }
363
+ static {
364
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
365
+ _id_decorators = [plugins.smartdata.unI()];
366
+ _controllerId_decorators = [plugins.smartdata.svDb()];
367
+ _scopeId_decorators = [plugins.smartdata.index()];
368
+ _candidateId_decorators = [plugins.smartdata.index()];
369
+ _revision_decorators = [plugins.smartdata.svDb()];
370
+ _sha256_decorators = [plugins.smartdata.svDb()];
371
+ _bytes_decorators = [plugins.smartdata.svDb()];
372
+ _sessionRecords_decorators = [plugins.smartdata.svDb()];
373
+ _messageRecords_decorators = [plugins.smartdata.svDb()];
374
+ _sessionsTruncated_decorators = [plugins.smartdata.svDb()];
375
+ _messagesTruncated_decorators = [plugins.smartdata.svDb()];
376
+ _messageBytesTruncated_decorators = [plugins.smartdata.svDb()];
377
+ _visibleDigest_decorators = [plugins.smartdata.svDb()];
378
+ _scopeSource_decorators = [plugins.smartdata.svDb()];
379
+ _projectionSources_decorators = [plugins.smartdata.svDb()];
380
+ _createdAt_decorators = [plugins.smartdata.index()];
381
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
382
+ __esDecorate(null, null, _controllerId_decorators, { kind: "field", name: "controllerId", static: false, private: false, access: { has: obj => "controllerId" in obj, get: obj => obj.controllerId, set: (obj, value) => { obj.controllerId = value; } }, metadata: _metadata }, _controllerId_initializers, _controllerId_extraInitializers);
383
+ __esDecorate(null, null, _scopeId_decorators, { kind: "field", name: "scopeId", static: false, private: false, access: { has: obj => "scopeId" in obj, get: obj => obj.scopeId, set: (obj, value) => { obj.scopeId = value; } }, metadata: _metadata }, _scopeId_initializers, _scopeId_extraInitializers);
384
+ __esDecorate(null, null, _candidateId_decorators, { kind: "field", name: "candidateId", static: false, private: false, access: { has: obj => "candidateId" in obj, get: obj => obj.candidateId, set: (obj, value) => { obj.candidateId = value; } }, metadata: _metadata }, _candidateId_initializers, _candidateId_extraInitializers);
385
+ __esDecorate(null, null, _revision_decorators, { kind: "field", name: "revision", static: false, private: false, access: { has: obj => "revision" in obj, get: obj => obj.revision, set: (obj, value) => { obj.revision = value; } }, metadata: _metadata }, _revision_initializers, _revision_extraInitializers);
386
+ __esDecorate(null, null, _sha256_decorators, { kind: "field", name: "sha256", static: false, private: false, access: { has: obj => "sha256" in obj, get: obj => obj.sha256, set: (obj, value) => { obj.sha256 = value; } }, metadata: _metadata }, _sha256_initializers, _sha256_extraInitializers);
387
+ __esDecorate(null, null, _bytes_decorators, { kind: "field", name: "bytes", static: false, private: false, access: { has: obj => "bytes" in obj, get: obj => obj.bytes, set: (obj, value) => { obj.bytes = value; } }, metadata: _metadata }, _bytes_initializers, _bytes_extraInitializers);
388
+ __esDecorate(null, null, _sessionRecords_decorators, { kind: "field", name: "sessionRecords", static: false, private: false, access: { has: obj => "sessionRecords" in obj, get: obj => obj.sessionRecords, set: (obj, value) => { obj.sessionRecords = value; } }, metadata: _metadata }, _sessionRecords_initializers, _sessionRecords_extraInitializers);
389
+ __esDecorate(null, null, _messageRecords_decorators, { kind: "field", name: "messageRecords", static: false, private: false, access: { has: obj => "messageRecords" in obj, get: obj => obj.messageRecords, set: (obj, value) => { obj.messageRecords = value; } }, metadata: _metadata }, _messageRecords_initializers, _messageRecords_extraInitializers);
390
+ __esDecorate(null, null, _sessionsTruncated_decorators, { kind: "field", name: "sessionsTruncated", static: false, private: false, access: { has: obj => "sessionsTruncated" in obj, get: obj => obj.sessionsTruncated, set: (obj, value) => { obj.sessionsTruncated = value; } }, metadata: _metadata }, _sessionsTruncated_initializers, _sessionsTruncated_extraInitializers);
391
+ __esDecorate(null, null, _messagesTruncated_decorators, { kind: "field", name: "messagesTruncated", static: false, private: false, access: { has: obj => "messagesTruncated" in obj, get: obj => obj.messagesTruncated, set: (obj, value) => { obj.messagesTruncated = value; } }, metadata: _metadata }, _messagesTruncated_initializers, _messagesTruncated_extraInitializers);
392
+ __esDecorate(null, null, _messageBytesTruncated_decorators, { kind: "field", name: "messageBytesTruncated", static: false, private: false, access: { has: obj => "messageBytesTruncated" in obj, get: obj => obj.messageBytesTruncated, set: (obj, value) => { obj.messageBytesTruncated = value; } }, metadata: _metadata }, _messageBytesTruncated_initializers, _messageBytesTruncated_extraInitializers);
393
+ __esDecorate(null, null, _visibleDigest_decorators, { kind: "field", name: "visibleDigest", static: false, private: false, access: { has: obj => "visibleDigest" in obj, get: obj => obj.visibleDigest, set: (obj, value) => { obj.visibleDigest = value; } }, metadata: _metadata }, _visibleDigest_initializers, _visibleDigest_extraInitializers);
394
+ __esDecorate(null, null, _scopeSource_decorators, { kind: "field", name: "scopeSource", static: false, private: false, access: { has: obj => "scopeSource" in obj, get: obj => obj.scopeSource, set: (obj, value) => { obj.scopeSource = value; } }, metadata: _metadata }, _scopeSource_initializers, _scopeSource_extraInitializers);
395
+ __esDecorate(null, null, _projectionSources_decorators, { kind: "field", name: "projectionSources", static: false, private: false, access: { has: obj => "projectionSources" in obj, get: obj => obj.projectionSources, set: (obj, value) => { obj.projectionSources = value; } }, metadata: _metadata }, _projectionSources_initializers, _projectionSources_extraInitializers);
396
+ __esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _createdAt_extraInitializers);
397
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
398
+ FlexPublicCandidateModel = _classThis = _classDescriptor.value;
399
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
400
+ __runInitializers(_classThis, _classExtraInitializers);
401
+ }
402
+ id = __runInitializers(this, _id_initializers, void 0);
403
+ controllerId = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _controllerId_initializers, void 0));
404
+ scopeId = (__runInitializers(this, _controllerId_extraInitializers), __runInitializers(this, _scopeId_initializers, void 0));
405
+ candidateId = (__runInitializers(this, _scopeId_extraInitializers), __runInitializers(this, _candidateId_initializers, void 0));
406
+ revision = (__runInitializers(this, _candidateId_extraInitializers), __runInitializers(this, _revision_initializers, void 0));
407
+ sha256 = (__runInitializers(this, _revision_extraInitializers), __runInitializers(this, _sha256_initializers, void 0));
408
+ bytes = (__runInitializers(this, _sha256_extraInitializers), __runInitializers(this, _bytes_initializers, void 0));
409
+ sessionRecords = (__runInitializers(this, _bytes_extraInitializers), __runInitializers(this, _sessionRecords_initializers, void 0));
410
+ messageRecords = (__runInitializers(this, _sessionRecords_extraInitializers), __runInitializers(this, _messageRecords_initializers, void 0));
411
+ sessionsTruncated = (__runInitializers(this, _messageRecords_extraInitializers), __runInitializers(this, _sessionsTruncated_initializers, void 0));
412
+ messagesTruncated = (__runInitializers(this, _sessionsTruncated_extraInitializers), __runInitializers(this, _messagesTruncated_initializers, void 0));
413
+ messageBytesTruncated = (__runInitializers(this, _messagesTruncated_extraInitializers), __runInitializers(this, _messageBytesTruncated_initializers, void 0));
414
+ visibleDigest = (__runInitializers(this, _messageBytesTruncated_extraInitializers), __runInitializers(this, _visibleDigest_initializers, void 0));
415
+ scopeSource = (__runInitializers(this, _visibleDigest_extraInitializers), __runInitializers(this, _scopeSource_initializers, void 0));
416
+ projectionSources = (__runInitializers(this, _scopeSource_extraInitializers), __runInitializers(this, _projectionSources_initializers, void 0));
417
+ createdAt = (__runInitializers(this, _projectionSources_extraInitializers), __runInitializers(this, _createdAt_initializers, void 0));
418
+ constructor() {
419
+ super(...arguments);
420
+ __runInitializers(this, _createdAt_extraInitializers);
421
+ }
422
+ };
423
+ return FlexPublicCandidateModel = _classThis;
424
+ })();
425
+ export { FlexPublicCandidateModel };
426
+ let FlexPublicHeadModel = (() => {
427
+ let _classDecorators = [plugins.smartdata.compoundIndex({
428
+ name: 'flex_public_head_candidate_owner',
429
+ key: { controllerId: 1, 'publicCandidates.candidateId': 1 },
430
+ }), plugins.smartdata.managed({ collectionName: 'flex_public_heads' }), plugins.smartdata.exactPersistence({ assertDocument: assertFlexPublicHeadDocument })];
431
+ let _classDescriptor;
432
+ let _classExtraInitializers = [];
433
+ let _classThis;
434
+ let _classSuper = plugins.smartdata.SmartDataDbDoc;
435
+ let _id_decorators;
436
+ let _id_initializers = [];
437
+ let _id_extraInitializers = [];
438
+ let _controllerId_decorators;
439
+ let _controllerId_initializers = [];
440
+ let _controllerId_extraInitializers = [];
441
+ let _storageKey_decorators;
442
+ let _storageKey_initializers = [];
443
+ let _storageKey_extraInitializers = [];
444
+ let _revision_decorators;
445
+ let _revision_initializers = [];
446
+ let _revision_extraInitializers = [];
447
+ let _currentPublicCandidateId_decorators;
448
+ let _currentPublicCandidateId_initializers = [];
449
+ let _currentPublicCandidateId_extraInitializers = [];
450
+ let _publicCandidates_decorators;
451
+ let _publicCandidates_initializers = [];
452
+ let _publicCandidates_extraInitializers = [];
453
+ var FlexPublicHeadModel = class extends _classSuper {
454
+ static { _classThis = this; }
455
+ static {
456
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
457
+ _id_decorators = [plugins.smartdata.unI()];
458
+ _controllerId_decorators = [plugins.smartdata.index()];
459
+ _storageKey_decorators = [plugins.smartdata.index()];
460
+ _revision_decorators = [plugins.smartdata.svDb()];
461
+ _currentPublicCandidateId_decorators = [plugins.smartdata.svDb()];
462
+ _publicCandidates_decorators = [plugins.smartdata.svDb()];
463
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
464
+ __esDecorate(null, null, _controllerId_decorators, { kind: "field", name: "controllerId", static: false, private: false, access: { has: obj => "controllerId" in obj, get: obj => obj.controllerId, set: (obj, value) => { obj.controllerId = value; } }, metadata: _metadata }, _controllerId_initializers, _controllerId_extraInitializers);
465
+ __esDecorate(null, null, _storageKey_decorators, { kind: "field", name: "storageKey", static: false, private: false, access: { has: obj => "storageKey" in obj, get: obj => obj.storageKey, set: (obj, value) => { obj.storageKey = value; } }, metadata: _metadata }, _storageKey_initializers, _storageKey_extraInitializers);
466
+ __esDecorate(null, null, _revision_decorators, { kind: "field", name: "revision", static: false, private: false, access: { has: obj => "revision" in obj, get: obj => obj.revision, set: (obj, value) => { obj.revision = value; } }, metadata: _metadata }, _revision_initializers, _revision_extraInitializers);
467
+ __esDecorate(null, null, _currentPublicCandidateId_decorators, { kind: "field", name: "currentPublicCandidateId", static: false, private: false, access: { has: obj => "currentPublicCandidateId" in obj, get: obj => obj.currentPublicCandidateId, set: (obj, value) => { obj.currentPublicCandidateId = value; } }, metadata: _metadata }, _currentPublicCandidateId_initializers, _currentPublicCandidateId_extraInitializers);
468
+ __esDecorate(null, null, _publicCandidates_decorators, { kind: "field", name: "publicCandidates", static: false, private: false, access: { has: obj => "publicCandidates" in obj, get: obj => obj.publicCandidates, set: (obj, value) => { obj.publicCandidates = value; } }, metadata: _metadata }, _publicCandidates_initializers, _publicCandidates_extraInitializers);
469
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
470
+ FlexPublicHeadModel = _classThis = _classDescriptor.value;
471
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
472
+ __runInitializers(_classThis, _classExtraInitializers);
473
+ }
474
+ id = __runInitializers(this, _id_initializers, void 0);
475
+ controllerId = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _controllerId_initializers, void 0));
476
+ storageKey = (__runInitializers(this, _controllerId_extraInitializers), __runInitializers(this, _storageKey_initializers, void 0));
477
+ revision = (__runInitializers(this, _storageKey_extraInitializers), __runInitializers(this, _revision_initializers, void 0));
478
+ currentPublicCandidateId = (__runInitializers(this, _revision_extraInitializers), __runInitializers(this, _currentPublicCandidateId_initializers, void 0));
479
+ publicCandidates = (__runInitializers(this, _currentPublicCandidateId_extraInitializers), __runInitializers(this, _publicCandidates_initializers, void 0));
480
+ constructor() {
481
+ super(...arguments);
482
+ __runInitializers(this, _publicCandidates_extraInitializers);
483
+ }
484
+ };
485
+ return FlexPublicHeadModel = _classThis;
486
+ })();
487
+ export { FlexPublicHeadModel };
488
+ let FlexPublicSessionRecordModel = (() => {
489
+ let _classDecorators = [plugins.smartdata.managed({ collectionName: 'flex_public_sessions' })];
490
+ let _classDescriptor;
491
+ let _classExtraInitializers = [];
492
+ let _classThis;
493
+ let _classSuper = plugins.smartdata.SmartDataDbDoc;
494
+ let _id_decorators;
495
+ let _id_initializers = [];
496
+ let _id_extraInitializers = [];
497
+ let _controllerId_decorators;
498
+ let _controllerId_initializers = [];
499
+ let _controllerId_extraInitializers = [];
500
+ let _scopeId_decorators;
501
+ let _scopeId_initializers = [];
502
+ let _scopeId_extraInitializers = [];
503
+ let _candidateId_decorators;
504
+ let _candidateId_initializers = [];
505
+ let _candidateId_extraInitializers = [];
506
+ let _revision_decorators;
507
+ let _revision_initializers = [];
508
+ let _revision_extraInitializers = [];
509
+ let _session_decorators;
510
+ let _session_initializers = [];
511
+ let _session_extraInitializers = [];
512
+ let _createdAt_decorators;
513
+ let _createdAt_initializers = [];
514
+ let _createdAt_extraInitializers = [];
515
+ var FlexPublicSessionRecordModel = class extends _classSuper {
516
+ static { _classThis = this; }
517
+ static {
518
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
519
+ _id_decorators = [plugins.smartdata.unI()];
520
+ _controllerId_decorators = [plugins.smartdata.svDb()];
521
+ _scopeId_decorators = [plugins.smartdata.index()];
522
+ _candidateId_decorators = [plugins.smartdata.index()];
523
+ _revision_decorators = [plugins.smartdata.svDb()];
524
+ _session_decorators = [plugins.smartdata.svDb()];
525
+ _createdAt_decorators = [plugins.smartdata.index()];
526
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
527
+ __esDecorate(null, null, _controllerId_decorators, { kind: "field", name: "controllerId", static: false, private: false, access: { has: obj => "controllerId" in obj, get: obj => obj.controllerId, set: (obj, value) => { obj.controllerId = value; } }, metadata: _metadata }, _controllerId_initializers, _controllerId_extraInitializers);
528
+ __esDecorate(null, null, _scopeId_decorators, { kind: "field", name: "scopeId", static: false, private: false, access: { has: obj => "scopeId" in obj, get: obj => obj.scopeId, set: (obj, value) => { obj.scopeId = value; } }, metadata: _metadata }, _scopeId_initializers, _scopeId_extraInitializers);
529
+ __esDecorate(null, null, _candidateId_decorators, { kind: "field", name: "candidateId", static: false, private: false, access: { has: obj => "candidateId" in obj, get: obj => obj.candidateId, set: (obj, value) => { obj.candidateId = value; } }, metadata: _metadata }, _candidateId_initializers, _candidateId_extraInitializers);
530
+ __esDecorate(null, null, _revision_decorators, { kind: "field", name: "revision", static: false, private: false, access: { has: obj => "revision" in obj, get: obj => obj.revision, set: (obj, value) => { obj.revision = value; } }, metadata: _metadata }, _revision_initializers, _revision_extraInitializers);
531
+ __esDecorate(null, null, _session_decorators, { kind: "field", name: "session", static: false, private: false, access: { has: obj => "session" in obj, get: obj => obj.session, set: (obj, value) => { obj.session = value; } }, metadata: _metadata }, _session_initializers, _session_extraInitializers);
532
+ __esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _createdAt_extraInitializers);
533
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
534
+ FlexPublicSessionRecordModel = _classThis = _classDescriptor.value;
535
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
536
+ __runInitializers(_classThis, _classExtraInitializers);
537
+ }
538
+ id = __runInitializers(this, _id_initializers, void 0);
539
+ controllerId = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _controllerId_initializers, void 0));
540
+ scopeId = (__runInitializers(this, _controllerId_extraInitializers), __runInitializers(this, _scopeId_initializers, void 0));
541
+ candidateId = (__runInitializers(this, _scopeId_extraInitializers), __runInitializers(this, _candidateId_initializers, void 0));
542
+ revision = (__runInitializers(this, _candidateId_extraInitializers), __runInitializers(this, _revision_initializers, void 0));
543
+ session = (__runInitializers(this, _revision_extraInitializers), __runInitializers(this, _session_initializers, void 0));
544
+ createdAt = (__runInitializers(this, _session_extraInitializers), __runInitializers(this, _createdAt_initializers, void 0));
545
+ constructor() {
546
+ super(...arguments);
547
+ __runInitializers(this, _createdAt_extraInitializers);
548
+ }
549
+ };
550
+ return FlexPublicSessionRecordModel = _classThis;
551
+ })();
552
+ export { FlexPublicSessionRecordModel };
553
+ let FlexPublicMessageRecordModel = (() => {
554
+ let _classDecorators = [plugins.smartdata.managed({ collectionName: 'flex_public_messages' })];
555
+ let _classDescriptor;
556
+ let _classExtraInitializers = [];
557
+ let _classThis;
558
+ let _classSuper = plugins.smartdata.SmartDataDbDoc;
559
+ let _id_decorators;
560
+ let _id_initializers = [];
561
+ let _id_extraInitializers = [];
562
+ let _controllerId_decorators;
563
+ let _controllerId_initializers = [];
564
+ let _controllerId_extraInitializers = [];
565
+ let _scopeId_decorators;
566
+ let _scopeId_initializers = [];
567
+ let _scopeId_extraInitializers = [];
568
+ let _candidateId_decorators;
569
+ let _candidateId_initializers = [];
570
+ let _candidateId_extraInitializers = [];
571
+ let _revision_decorators;
572
+ let _revision_initializers = [];
573
+ let _revision_extraInitializers = [];
574
+ let _messageIndex_decorators;
575
+ let _messageIndex_initializers = [];
576
+ let _messageIndex_extraInitializers = [];
577
+ let _message_decorators;
578
+ let _message_initializers = [];
579
+ let _message_extraInitializers = [];
580
+ let _createdAt_decorators;
581
+ let _createdAt_initializers = [];
582
+ let _createdAt_extraInitializers = [];
583
+ var FlexPublicMessageRecordModel = class extends _classSuper {
584
+ static { _classThis = this; }
585
+ static {
586
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
587
+ _id_decorators = [plugins.smartdata.unI()];
588
+ _controllerId_decorators = [plugins.smartdata.svDb()];
589
+ _scopeId_decorators = [plugins.smartdata.index()];
590
+ _candidateId_decorators = [plugins.smartdata.index()];
591
+ _revision_decorators = [plugins.smartdata.svDb()];
592
+ _messageIndex_decorators = [plugins.smartdata.svDb()];
593
+ _message_decorators = [plugins.smartdata.svDb()];
594
+ _createdAt_decorators = [plugins.smartdata.index()];
595
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
596
+ __esDecorate(null, null, _controllerId_decorators, { kind: "field", name: "controllerId", static: false, private: false, access: { has: obj => "controllerId" in obj, get: obj => obj.controllerId, set: (obj, value) => { obj.controllerId = value; } }, metadata: _metadata }, _controllerId_initializers, _controllerId_extraInitializers);
597
+ __esDecorate(null, null, _scopeId_decorators, { kind: "field", name: "scopeId", static: false, private: false, access: { has: obj => "scopeId" in obj, get: obj => obj.scopeId, set: (obj, value) => { obj.scopeId = value; } }, metadata: _metadata }, _scopeId_initializers, _scopeId_extraInitializers);
598
+ __esDecorate(null, null, _candidateId_decorators, { kind: "field", name: "candidateId", static: false, private: false, access: { has: obj => "candidateId" in obj, get: obj => obj.candidateId, set: (obj, value) => { obj.candidateId = value; } }, metadata: _metadata }, _candidateId_initializers, _candidateId_extraInitializers);
599
+ __esDecorate(null, null, _revision_decorators, { kind: "field", name: "revision", static: false, private: false, access: { has: obj => "revision" in obj, get: obj => obj.revision, set: (obj, value) => { obj.revision = value; } }, metadata: _metadata }, _revision_initializers, _revision_extraInitializers);
600
+ __esDecorate(null, null, _messageIndex_decorators, { kind: "field", name: "messageIndex", static: false, private: false, access: { has: obj => "messageIndex" in obj, get: obj => obj.messageIndex, set: (obj, value) => { obj.messageIndex = value; } }, metadata: _metadata }, _messageIndex_initializers, _messageIndex_extraInitializers);
601
+ __esDecorate(null, null, _message_decorators, { kind: "field", name: "message", static: false, private: false, access: { has: obj => "message" in obj, get: obj => obj.message, set: (obj, value) => { obj.message = value; } }, metadata: _metadata }, _message_initializers, _message_extraInitializers);
602
+ __esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _createdAt_extraInitializers);
603
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
604
+ FlexPublicMessageRecordModel = _classThis = _classDescriptor.value;
605
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
606
+ __runInitializers(_classThis, _classExtraInitializers);
607
+ }
608
+ id = __runInitializers(this, _id_initializers, void 0);
609
+ controllerId = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _controllerId_initializers, void 0));
610
+ scopeId = (__runInitializers(this, _controllerId_extraInitializers), __runInitializers(this, _scopeId_initializers, void 0));
611
+ candidateId = (__runInitializers(this, _scopeId_extraInitializers), __runInitializers(this, _candidateId_initializers, void 0));
612
+ revision = (__runInitializers(this, _candidateId_extraInitializers), __runInitializers(this, _revision_initializers, void 0));
613
+ messageIndex = (__runInitializers(this, _revision_extraInitializers), __runInitializers(this, _messageIndex_initializers, void 0));
614
+ message = (__runInitializers(this, _messageIndex_extraInitializers), __runInitializers(this, _message_initializers, void 0));
615
+ createdAt = (__runInitializers(this, _message_extraInitializers), __runInitializers(this, _createdAt_initializers, void 0));
616
+ constructor() {
617
+ super(...arguments);
618
+ __runInitializers(this, _createdAt_extraInitializers);
619
+ }
620
+ };
621
+ return FlexPublicMessageRecordModel = _classThis;
622
+ })();
623
+ export { FlexPublicMessageRecordModel };
624
+ let FlexProjectionSourceModel = (() => {
625
+ let _classDecorators = [plugins.smartdata.compoundIndex({
626
+ name: 'flex_projection_source_orphans',
627
+ key: { controllerId: 1, createdAt: 1, _id: 1 },
628
+ }), plugins.smartdata.managed({ collectionName: 'flex_projection_sources' })];
629
+ let _classDescriptor;
630
+ let _classExtraInitializers = [];
631
+ let _classThis;
632
+ let _classSuper = plugins.smartdata.SmartDataDbDoc;
633
+ let _id_decorators;
634
+ let _id_initializers = [];
635
+ let _id_extraInitializers = [];
636
+ let _controllerId_decorators;
637
+ let _controllerId_initializers = [];
638
+ let _controllerId_extraInitializers = [];
639
+ let _scopeId_decorators;
640
+ let _scopeId_initializers = [];
641
+ let _scopeId_extraInitializers = [];
642
+ let _sessionId_decorators;
643
+ let _sessionId_initializers = [];
644
+ let _sessionId_extraInitializers = [];
645
+ let _candidateId_decorators;
646
+ let _candidateId_initializers = [];
647
+ let _candidateId_extraInitializers = [];
648
+ let _incarnationId_decorators;
649
+ let _incarnationId_initializers = [];
650
+ let _incarnationId_extraInitializers = [];
651
+ let _revision_decorators;
652
+ let _revision_initializers = [];
653
+ let _revision_extraInitializers = [];
654
+ let _orderVersion_decorators;
655
+ let _orderVersion_initializers = [];
656
+ let _orderVersion_extraInitializers = [];
657
+ let _sha256_decorators;
658
+ let _sha256_initializers = [];
659
+ let _sha256_extraInitializers = [];
660
+ let _bytes_decorators;
661
+ let _bytes_initializers = [];
662
+ let _bytes_extraInitializers = [];
663
+ let _messageCount_decorators;
664
+ let _messageCount_initializers = [];
665
+ let _messageCount_extraInitializers = [];
666
+ let _messagesTruncated_decorators;
667
+ let _messagesTruncated_initializers = [];
668
+ let _messagesTruncated_extraInitializers = [];
669
+ let _visibleDigest_decorators;
670
+ let _visibleDigest_initializers = [];
671
+ let _visibleDigest_extraInitializers = [];
672
+ let _latestMessage_decorators;
673
+ let _latestMessage_initializers = [];
674
+ let _latestMessage_extraInitializers = [];
675
+ let _createdAt_decorators;
676
+ let _createdAt_initializers = [];
677
+ let _createdAt_extraInitializers = [];
678
+ var FlexProjectionSourceModel = class extends _classSuper {
679
+ static { _classThis = this; }
680
+ static {
681
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
682
+ _id_decorators = [plugins.smartdata.unI()];
683
+ _controllerId_decorators = [plugins.smartdata.svDb()];
684
+ _scopeId_decorators = [plugins.smartdata.index()];
685
+ _sessionId_decorators = [plugins.smartdata.index()];
686
+ _candidateId_decorators = [plugins.smartdata.index()];
687
+ _incarnationId_decorators = [plugins.smartdata.svDb()];
688
+ _revision_decorators = [plugins.smartdata.svDb()];
689
+ _orderVersion_decorators = [plugins.smartdata.svDb()];
690
+ _sha256_decorators = [plugins.smartdata.svDb()];
691
+ _bytes_decorators = [plugins.smartdata.svDb()];
692
+ _messageCount_decorators = [plugins.smartdata.svDb()];
693
+ _messagesTruncated_decorators = [plugins.smartdata.svDb()];
694
+ _visibleDigest_decorators = [plugins.smartdata.svDb()];
695
+ _latestMessage_decorators = [plugins.smartdata.svDb()];
696
+ _createdAt_decorators = [plugins.smartdata.index()];
697
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
698
+ __esDecorate(null, null, _controllerId_decorators, { kind: "field", name: "controllerId", static: false, private: false, access: { has: obj => "controllerId" in obj, get: obj => obj.controllerId, set: (obj, value) => { obj.controllerId = value; } }, metadata: _metadata }, _controllerId_initializers, _controllerId_extraInitializers);
699
+ __esDecorate(null, null, _scopeId_decorators, { kind: "field", name: "scopeId", static: false, private: false, access: { has: obj => "scopeId" in obj, get: obj => obj.scopeId, set: (obj, value) => { obj.scopeId = value; } }, metadata: _metadata }, _scopeId_initializers, _scopeId_extraInitializers);
700
+ __esDecorate(null, null, _sessionId_decorators, { kind: "field", name: "sessionId", static: false, private: false, access: { has: obj => "sessionId" in obj, get: obj => obj.sessionId, set: (obj, value) => { obj.sessionId = value; } }, metadata: _metadata }, _sessionId_initializers, _sessionId_extraInitializers);
701
+ __esDecorate(null, null, _candidateId_decorators, { kind: "field", name: "candidateId", static: false, private: false, access: { has: obj => "candidateId" in obj, get: obj => obj.candidateId, set: (obj, value) => { obj.candidateId = value; } }, metadata: _metadata }, _candidateId_initializers, _candidateId_extraInitializers);
702
+ __esDecorate(null, null, _incarnationId_decorators, { kind: "field", name: "incarnationId", static: false, private: false, access: { has: obj => "incarnationId" in obj, get: obj => obj.incarnationId, set: (obj, value) => { obj.incarnationId = value; } }, metadata: _metadata }, _incarnationId_initializers, _incarnationId_extraInitializers);
703
+ __esDecorate(null, null, _revision_decorators, { kind: "field", name: "revision", static: false, private: false, access: { has: obj => "revision" in obj, get: obj => obj.revision, set: (obj, value) => { obj.revision = value; } }, metadata: _metadata }, _revision_initializers, _revision_extraInitializers);
704
+ __esDecorate(null, null, _orderVersion_decorators, { kind: "field", name: "orderVersion", static: false, private: false, access: { has: obj => "orderVersion" in obj, get: obj => obj.orderVersion, set: (obj, value) => { obj.orderVersion = value; } }, metadata: _metadata }, _orderVersion_initializers, _orderVersion_extraInitializers);
705
+ __esDecorate(null, null, _sha256_decorators, { kind: "field", name: "sha256", static: false, private: false, access: { has: obj => "sha256" in obj, get: obj => obj.sha256, set: (obj, value) => { obj.sha256 = value; } }, metadata: _metadata }, _sha256_initializers, _sha256_extraInitializers);
706
+ __esDecorate(null, null, _bytes_decorators, { kind: "field", name: "bytes", static: false, private: false, access: { has: obj => "bytes" in obj, get: obj => obj.bytes, set: (obj, value) => { obj.bytes = value; } }, metadata: _metadata }, _bytes_initializers, _bytes_extraInitializers);
707
+ __esDecorate(null, null, _messageCount_decorators, { kind: "field", name: "messageCount", static: false, private: false, access: { has: obj => "messageCount" in obj, get: obj => obj.messageCount, set: (obj, value) => { obj.messageCount = value; } }, metadata: _metadata }, _messageCount_initializers, _messageCount_extraInitializers);
708
+ __esDecorate(null, null, _messagesTruncated_decorators, { kind: "field", name: "messagesTruncated", static: false, private: false, access: { has: obj => "messagesTruncated" in obj, get: obj => obj.messagesTruncated, set: (obj, value) => { obj.messagesTruncated = value; } }, metadata: _metadata }, _messagesTruncated_initializers, _messagesTruncated_extraInitializers);
709
+ __esDecorate(null, null, _visibleDigest_decorators, { kind: "field", name: "visibleDigest", static: false, private: false, access: { has: obj => "visibleDigest" in obj, get: obj => obj.visibleDigest, set: (obj, value) => { obj.visibleDigest = value; } }, metadata: _metadata }, _visibleDigest_initializers, _visibleDigest_extraInitializers);
710
+ __esDecorate(null, null, _latestMessage_decorators, { kind: "field", name: "latestMessage", static: false, private: false, access: { has: obj => "latestMessage" in obj, get: obj => obj.latestMessage, set: (obj, value) => { obj.latestMessage = value; } }, metadata: _metadata }, _latestMessage_initializers, _latestMessage_extraInitializers);
711
+ __esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _createdAt_extraInitializers);
712
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
713
+ FlexProjectionSourceModel = _classThis = _classDescriptor.value;
714
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
715
+ __runInitializers(_classThis, _classExtraInitializers);
716
+ }
717
+ id = __runInitializers(this, _id_initializers, void 0);
718
+ controllerId = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _controllerId_initializers, void 0));
719
+ scopeId = (__runInitializers(this, _controllerId_extraInitializers), __runInitializers(this, _scopeId_initializers, void 0));
720
+ sessionId = (__runInitializers(this, _scopeId_extraInitializers), __runInitializers(this, _sessionId_initializers, void 0));
721
+ candidateId = (__runInitializers(this, _sessionId_extraInitializers), __runInitializers(this, _candidateId_initializers, void 0));
722
+ incarnationId = (__runInitializers(this, _candidateId_extraInitializers), __runInitializers(this, _incarnationId_initializers, void 0));
723
+ revision = (__runInitializers(this, _incarnationId_extraInitializers), __runInitializers(this, _revision_initializers, void 0));
724
+ orderVersion = (__runInitializers(this, _revision_extraInitializers), __runInitializers(this, _orderVersion_initializers, void 0));
725
+ sha256 = (__runInitializers(this, _orderVersion_extraInitializers), __runInitializers(this, _sha256_initializers, void 0));
726
+ bytes = (__runInitializers(this, _sha256_extraInitializers), __runInitializers(this, _bytes_initializers, void 0));
727
+ messageCount = (__runInitializers(this, _bytes_extraInitializers), __runInitializers(this, _messageCount_initializers, void 0));
728
+ messagesTruncated = (__runInitializers(this, _messageCount_extraInitializers), __runInitializers(this, _messagesTruncated_initializers, void 0));
729
+ visibleDigest = (__runInitializers(this, _messagesTruncated_extraInitializers), __runInitializers(this, _visibleDigest_initializers, void 0));
730
+ latestMessage = (__runInitializers(this, _visibleDigest_extraInitializers), __runInitializers(this, _latestMessage_initializers, void 0));
731
+ createdAt = (__runInitializers(this, _latestMessage_extraInitializers), __runInitializers(this, _createdAt_initializers, void 0));
732
+ constructor() {
733
+ super(...arguments);
734
+ __runInitializers(this, _createdAt_extraInitializers);
735
+ }
736
+ };
737
+ return FlexProjectionSourceModel = _classThis;
738
+ })();
739
+ export { FlexProjectionSourceModel };
740
+ let FlexProjectionMessageRecordModel = (() => {
741
+ let _classDecorators = [plugins.smartdata.managed({ collectionName: 'flex_projection_messages' })];
742
+ let _classDescriptor;
743
+ let _classExtraInitializers = [];
744
+ let _classThis;
745
+ let _classSuper = plugins.smartdata.SmartDataDbDoc;
746
+ let _id_decorators;
747
+ let _id_initializers = [];
748
+ let _id_extraInitializers = [];
749
+ let _controllerId_decorators;
750
+ let _controllerId_initializers = [];
751
+ let _controllerId_extraInitializers = [];
752
+ let _scopeId_decorators;
753
+ let _scopeId_initializers = [];
754
+ let _scopeId_extraInitializers = [];
755
+ let _candidateId_decorators;
756
+ let _candidateId_initializers = [];
757
+ let _candidateId_extraInitializers = [];
758
+ let _sessionId_decorators;
759
+ let _sessionId_initializers = [];
760
+ let _sessionId_extraInitializers = [];
761
+ let _incarnationId_decorators;
762
+ let _incarnationId_initializers = [];
763
+ let _incarnationId_extraInitializers = [];
764
+ let _revision_decorators;
765
+ let _revision_initializers = [];
766
+ let _revision_extraInitializers = [];
767
+ let _index_decorators;
768
+ let _index_initializers = [];
769
+ let _index_extraInitializers = [];
770
+ let _messageIndex_decorators;
771
+ let _messageIndex_initializers = [];
772
+ let _messageIndex_extraInitializers = [];
773
+ let _sha256_decorators;
774
+ let _sha256_initializers = [];
775
+ let _sha256_extraInitializers = [];
776
+ let _bytes_decorators;
777
+ let _bytes_initializers = [];
778
+ let _bytes_extraInitializers = [];
779
+ let _messageCreatedAt_decorators;
780
+ let _messageCreatedAt_initializers = [];
781
+ let _messageCreatedAt_extraInitializers = [];
782
+ let _messageId_decorators;
783
+ let _messageId_initializers = [];
784
+ let _messageId_extraInitializers = [];
785
+ let _message_decorators;
786
+ let _message_initializers = [];
787
+ let _message_extraInitializers = [];
788
+ let _previous_decorators;
789
+ let _previous_initializers = [];
790
+ let _previous_extraInitializers = [];
791
+ let _createdAt_decorators;
792
+ let _createdAt_initializers = [];
793
+ let _createdAt_extraInitializers = [];
794
+ var FlexProjectionMessageRecordModel = class extends _classSuper {
795
+ static { _classThis = this; }
796
+ static {
797
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
798
+ _id_decorators = [plugins.smartdata.unI()];
799
+ _controllerId_decorators = [plugins.smartdata.svDb()];
800
+ _scopeId_decorators = [plugins.smartdata.index()];
801
+ _candidateId_decorators = [plugins.smartdata.index()];
802
+ _sessionId_decorators = [plugins.smartdata.index()];
803
+ _incarnationId_decorators = [plugins.smartdata.svDb()];
804
+ _revision_decorators = [plugins.smartdata.svDb()];
805
+ _index_decorators = [plugins.smartdata.svDb()];
806
+ _messageIndex_decorators = [plugins.smartdata.svDb()];
807
+ _sha256_decorators = [plugins.smartdata.svDb()];
808
+ _bytes_decorators = [plugins.smartdata.svDb()];
809
+ _messageCreatedAt_decorators = [plugins.smartdata.svDb()];
810
+ _messageId_decorators = [plugins.smartdata.svDb()];
811
+ _message_decorators = [plugins.smartdata.svDb()];
812
+ _previous_decorators = [plugins.smartdata.svDb()];
813
+ _createdAt_decorators = [plugins.smartdata.index()];
814
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
815
+ __esDecorate(null, null, _controllerId_decorators, { kind: "field", name: "controllerId", static: false, private: false, access: { has: obj => "controllerId" in obj, get: obj => obj.controllerId, set: (obj, value) => { obj.controllerId = value; } }, metadata: _metadata }, _controllerId_initializers, _controllerId_extraInitializers);
816
+ __esDecorate(null, null, _scopeId_decorators, { kind: "field", name: "scopeId", static: false, private: false, access: { has: obj => "scopeId" in obj, get: obj => obj.scopeId, set: (obj, value) => { obj.scopeId = value; } }, metadata: _metadata }, _scopeId_initializers, _scopeId_extraInitializers);
817
+ __esDecorate(null, null, _candidateId_decorators, { kind: "field", name: "candidateId", static: false, private: false, access: { has: obj => "candidateId" in obj, get: obj => obj.candidateId, set: (obj, value) => { obj.candidateId = value; } }, metadata: _metadata }, _candidateId_initializers, _candidateId_extraInitializers);
818
+ __esDecorate(null, null, _sessionId_decorators, { kind: "field", name: "sessionId", static: false, private: false, access: { has: obj => "sessionId" in obj, get: obj => obj.sessionId, set: (obj, value) => { obj.sessionId = value; } }, metadata: _metadata }, _sessionId_initializers, _sessionId_extraInitializers);
819
+ __esDecorate(null, null, _incarnationId_decorators, { kind: "field", name: "incarnationId", static: false, private: false, access: { has: obj => "incarnationId" in obj, get: obj => obj.incarnationId, set: (obj, value) => { obj.incarnationId = value; } }, metadata: _metadata }, _incarnationId_initializers, _incarnationId_extraInitializers);
820
+ __esDecorate(null, null, _revision_decorators, { kind: "field", name: "revision", static: false, private: false, access: { has: obj => "revision" in obj, get: obj => obj.revision, set: (obj, value) => { obj.revision = value; } }, metadata: _metadata }, _revision_initializers, _revision_extraInitializers);
821
+ __esDecorate(null, null, _index_decorators, { kind: "field", name: "index", static: false, private: false, access: { has: obj => "index" in obj, get: obj => obj.index, set: (obj, value) => { obj.index = value; } }, metadata: _metadata }, _index_initializers, _index_extraInitializers);
822
+ __esDecorate(null, null, _messageIndex_decorators, { kind: "field", name: "messageIndex", static: false, private: false, access: { has: obj => "messageIndex" in obj, get: obj => obj.messageIndex, set: (obj, value) => { obj.messageIndex = value; } }, metadata: _metadata }, _messageIndex_initializers, _messageIndex_extraInitializers);
823
+ __esDecorate(null, null, _sha256_decorators, { kind: "field", name: "sha256", static: false, private: false, access: { has: obj => "sha256" in obj, get: obj => obj.sha256, set: (obj, value) => { obj.sha256 = value; } }, metadata: _metadata }, _sha256_initializers, _sha256_extraInitializers);
824
+ __esDecorate(null, null, _bytes_decorators, { kind: "field", name: "bytes", static: false, private: false, access: { has: obj => "bytes" in obj, get: obj => obj.bytes, set: (obj, value) => { obj.bytes = value; } }, metadata: _metadata }, _bytes_initializers, _bytes_extraInitializers);
825
+ __esDecorate(null, null, _messageCreatedAt_decorators, { kind: "field", name: "messageCreatedAt", static: false, private: false, access: { has: obj => "messageCreatedAt" in obj, get: obj => obj.messageCreatedAt, set: (obj, value) => { obj.messageCreatedAt = value; } }, metadata: _metadata }, _messageCreatedAt_initializers, _messageCreatedAt_extraInitializers);
826
+ __esDecorate(null, null, _messageId_decorators, { kind: "field", name: "messageId", static: false, private: false, access: { has: obj => "messageId" in obj, get: obj => obj.messageId, set: (obj, value) => { obj.messageId = value; } }, metadata: _metadata }, _messageId_initializers, _messageId_extraInitializers);
827
+ __esDecorate(null, null, _message_decorators, { kind: "field", name: "message", static: false, private: false, access: { has: obj => "message" in obj, get: obj => obj.message, set: (obj, value) => { obj.message = value; } }, metadata: _metadata }, _message_initializers, _message_extraInitializers);
828
+ __esDecorate(null, null, _previous_decorators, { kind: "field", name: "previous", static: false, private: false, access: { has: obj => "previous" in obj, get: obj => obj.previous, set: (obj, value) => { obj.previous = value; } }, metadata: _metadata }, _previous_initializers, _previous_extraInitializers);
829
+ __esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _createdAt_extraInitializers);
830
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
831
+ FlexProjectionMessageRecordModel = _classThis = _classDescriptor.value;
832
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
833
+ __runInitializers(_classThis, _classExtraInitializers);
834
+ }
835
+ id = __runInitializers(this, _id_initializers, void 0);
836
+ controllerId = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _controllerId_initializers, void 0));
837
+ scopeId = (__runInitializers(this, _controllerId_extraInitializers), __runInitializers(this, _scopeId_initializers, void 0));
838
+ candidateId = (__runInitializers(this, _scopeId_extraInitializers), __runInitializers(this, _candidateId_initializers, void 0));
839
+ sessionId = (__runInitializers(this, _candidateId_extraInitializers), __runInitializers(this, _sessionId_initializers, void 0));
840
+ incarnationId = (__runInitializers(this, _sessionId_extraInitializers), __runInitializers(this, _incarnationId_initializers, void 0));
841
+ revision = (__runInitializers(this, _incarnationId_extraInitializers), __runInitializers(this, _revision_initializers, void 0));
842
+ index = (__runInitializers(this, _revision_extraInitializers), __runInitializers(this, _index_initializers, void 0));
843
+ messageIndex = (__runInitializers(this, _index_extraInitializers), __runInitializers(this, _messageIndex_initializers, void 0));
844
+ sha256 = (__runInitializers(this, _messageIndex_extraInitializers), __runInitializers(this, _sha256_initializers, void 0));
845
+ bytes = (__runInitializers(this, _sha256_extraInitializers), __runInitializers(this, _bytes_initializers, void 0));
846
+ messageCreatedAt = (__runInitializers(this, _bytes_extraInitializers), __runInitializers(this, _messageCreatedAt_initializers, void 0));
847
+ messageId = (__runInitializers(this, _messageCreatedAt_extraInitializers), __runInitializers(this, _messageId_initializers, void 0));
848
+ message = (__runInitializers(this, _messageId_extraInitializers), __runInitializers(this, _message_initializers, void 0));
849
+ previous = (__runInitializers(this, _message_extraInitializers), __runInitializers(this, _previous_initializers, void 0));
850
+ createdAt = (__runInitializers(this, _previous_extraInitializers), __runInitializers(this, _createdAt_initializers, void 0));
851
+ constructor() {
852
+ super(...arguments);
853
+ __runInitializers(this, _createdAt_extraInitializers);
854
+ }
855
+ };
856
+ return FlexProjectionMessageRecordModel = _classThis;
857
+ })();
858
+ export { FlexProjectionMessageRecordModel };
859
+ export const flexHeadId = (controllerIdArg, scopeIdArg) => `flex-head:${plugins.crypto.createHash('sha256')
860
+ .update(controllerIdArg, 'utf8')
861
+ .update('\0', 'utf8')
862
+ .update(scopeIdArg, 'utf8')
863
+ .digest('hex')}`;
864
+ export const flexPublicHeadId = (controllerIdArg, scopeIdArg) => `flex-public-head:${plugins.crypto.createHash('sha256')
865
+ .update(controllerIdArg, 'utf8')
866
+ .update('\0', 'utf8')
867
+ .update(scopeIdArg, 'utf8')
868
+ .digest('hex')}`;
869
+ export const registerFlexPublicModels = (managerArg) => {
870
+ plugins.smartdata.setDefaultManagerForDoc(managerArg, FlexPublicCandidateModel);
871
+ plugins.smartdata.setDefaultManagerForDoc(managerArg, FlexPublicHeadModel);
872
+ plugins.smartdata.setDefaultManagerForDoc(managerArg, FlexPublicSessionRecordModel);
873
+ plugins.smartdata.setDefaultManagerForDoc(managerArg, FlexPublicMessageRecordModel);
874
+ plugins.smartdata.setDefaultManagerForDoc(managerArg, FlexProjectionSourceModel);
875
+ plugins.smartdata.setDefaultManagerForDoc(managerArg, FlexProjectionMessageRecordModel);
876
+ };
877
+ export const initFlexPublicModels = async () => {
878
+ await FlexPublicCandidateModel.init();
879
+ await FlexPublicHeadModel.init();
880
+ await FlexPublicSessionRecordModel.init();
881
+ await FlexPublicMessageRecordModel.init();
882
+ await FlexProjectionSourceModel.init();
883
+ await FlexProjectionMessageRecordModel.init();
884
+ };
885
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5mbGV4bW9kZWxzLnB1YmxpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NsYXNzZXMuZmxleG1vZGVscy5wdWJsaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFrSHRDLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDO0FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUM7QUFFbEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUFFLGVBQXVCLEVBQXNCLEVBQUUsQ0FDekYsT0FBTyxRQUFRLEtBQUssUUFBUTtPQUN6QixRQUFRLENBQUMsTUFBTSxHQUFHLENBQUM7T0FDbkIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksZUFBZSxDQUFDO0FBRTVELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxRQUFpQixFQUFzQixFQUFFLENBQ3JFLE1BQU0sQ0FBQyxhQUFh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