@harperfast/harper 5.3.0-alpha.1 → 5.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/bin/cliOperations.ts +12 -0
  2. package/bin/restart.ts +66 -6
  3. package/components/Application.ts +1134 -112
  4. package/components/OptionsWatcher.ts +368 -102
  5. package/components/Scope.ts +20 -1
  6. package/components/componentLoader.ts +43 -4
  7. package/components/deploymentOperations.ts +4 -1
  8. package/components/deploymentRecorder.ts +9 -2
  9. package/components/operations.js +284 -52
  10. package/components/operationsValidation.js +49 -2
  11. package/components/packageComponent.ts +25 -1
  12. package/components/requestRestart.ts +11 -0
  13. package/config/RootConfigWatcher.ts +191 -37
  14. package/config/configReadRetry.ts +62 -0
  15. package/config/configUtils.ts +78 -26
  16. package/config/parseConfigFile.ts +34 -0
  17. package/config/readConfigFileSync.ts +44 -0
  18. package/config/watcherArming.ts +59 -0
  19. package/config-root.schema.json +4 -0
  20. package/dataLayer/harperBridge/ResourceBridge.ts +28 -2
  21. package/dist/bin/cliOperations.js +13 -0
  22. package/dist/bin/cliOperations.js.map +1 -1
  23. package/dist/bin/restart.js +42 -6
  24. package/dist/bin/restart.js.map +1 -1
  25. package/dist/components/Application.d.ts +104 -9
  26. package/dist/components/Application.js +954 -102
  27. package/dist/components/Application.js.map +1 -1
  28. package/dist/components/OptionsWatcher.d.ts +4 -1
  29. package/dist/components/OptionsWatcher.js +378 -104
  30. package/dist/components/OptionsWatcher.js.map +1 -1
  31. package/dist/components/Scope.js +15 -1
  32. package/dist/components/Scope.js.map +1 -1
  33. package/dist/components/componentLoader.js +35 -3
  34. package/dist/components/componentLoader.js.map +1 -1
  35. package/dist/components/deploymentOperations.js +4 -1
  36. package/dist/components/deploymentOperations.js.map +1 -1
  37. package/dist/components/deploymentRecorder.d.ts +4 -2
  38. package/dist/components/deploymentRecorder.js +1 -0
  39. package/dist/components/deploymentRecorder.js.map +1 -1
  40. package/dist/components/operations.d.ts +28 -0
  41. package/dist/components/operations.js +263 -54
  42. package/dist/components/operations.js.map +1 -1
  43. package/dist/components/operationsValidation.js +48 -2
  44. package/dist/components/operationsValidation.js.map +1 -1
  45. package/dist/components/packageComponent.js +24 -0
  46. package/dist/components/packageComponent.js.map +1 -1
  47. package/dist/components/requestRestart.d.ts +1 -0
  48. package/dist/components/requestRestart.js +7 -0
  49. package/dist/components/requestRestart.js.map +1 -1
  50. package/dist/config/RootConfigWatcher.d.ts +2 -0
  51. package/dist/config/RootConfigWatcher.js +189 -35
  52. package/dist/config/RootConfigWatcher.js.map +1 -1
  53. package/dist/config/configReadRetry.d.ts +8 -0
  54. package/dist/config/configReadRetry.js +62 -0
  55. package/dist/config/configReadRetry.js.map +1 -0
  56. package/dist/config/configUtils.d.ts +10 -9
  57. package/dist/config/configUtils.js +63 -27
  58. package/dist/config/configUtils.js.map +1 -1
  59. package/dist/config/parseConfigFile.d.ts +4 -0
  60. package/dist/config/parseConfigFile.js +35 -0
  61. package/dist/config/parseConfigFile.js.map +1 -0
  62. package/dist/config/readConfigFileSync.d.ts +1 -0
  63. package/dist/config/readConfigFileSync.js +47 -0
  64. package/dist/config/readConfigFileSync.js.map +1 -0
  65. package/dist/config/watcherArming.d.ts +15 -0
  66. package/dist/config/watcherArming.js +59 -0
  67. package/dist/config/watcherArming.js.map +1 -0
  68. package/dist/dataLayer/harperBridge/ResourceBridge.js +21 -2
  69. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  70. package/dist/index.d.ts +1 -0
  71. package/dist/index.js +4 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/json/systemSchema.json +3 -0
  74. package/dist/resources/DatabaseTransaction.d.ts +25 -0
  75. package/dist/resources/DatabaseTransaction.js +224 -18
  76. package/dist/resources/DatabaseTransaction.js.map +1 -1
  77. package/dist/resources/LMDBTransaction.d.ts +2 -1
  78. package/dist/resources/LMDBTransaction.js +22 -3
  79. package/dist/resources/LMDBTransaction.js.map +1 -1
  80. package/dist/resources/PrimaryRocksDatabase.js +22 -6
  81. package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
  82. package/dist/resources/RecordEncoder.d.ts +1 -1
  83. package/dist/resources/RecordEncoder.js +21 -5
  84. package/dist/resources/RecordEncoder.js.map +1 -1
  85. package/dist/resources/Resource.js +97 -13
  86. package/dist/resources/Resource.js.map +1 -1
  87. package/dist/resources/ResourceInterface.d.ts +8 -0
  88. package/dist/resources/RocksIndexStore.js +2 -1
  89. package/dist/resources/RocksIndexStore.js.map +1 -1
  90. package/dist/resources/RocksTransactionLogStore.d.ts +10 -0
  91. package/dist/resources/RocksTransactionLogStore.js +104 -33
  92. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  93. package/dist/resources/Table.d.ts +58 -7
  94. package/dist/resources/Table.js +1095 -346
  95. package/dist/resources/Table.js.map +1 -1
  96. package/dist/resources/analytics/write.js +10 -3
  97. package/dist/resources/analytics/write.js.map +1 -1
  98. package/dist/resources/auditStore.d.ts +170 -0
  99. package/dist/resources/auditStore.js +457 -11
  100. package/dist/resources/auditStore.js.map +1 -1
  101. package/dist/resources/dataLoader.js +3 -4
  102. package/dist/resources/dataLoader.js.map +1 -1
  103. package/dist/resources/databases.d.ts +16 -13
  104. package/dist/resources/databases.js +624 -176
  105. package/dist/resources/databases.js.map +1 -1
  106. package/dist/resources/derivedIndexRegistry.d.ts +5 -0
  107. package/dist/resources/derivedIndexRegistry.js +68 -0
  108. package/dist/resources/derivedIndexRegistry.js.map +1 -0
  109. package/dist/resources/derivedIndexRuntime.d.ts +215 -0
  110. package/dist/resources/derivedIndexRuntime.js +2027 -0
  111. package/dist/resources/derivedIndexRuntime.js.map +1 -0
  112. package/dist/resources/graphql.js +3 -2
  113. package/dist/resources/graphql.js.map +1 -1
  114. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +102 -9
  115. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +848 -39
  116. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  117. package/dist/resources/indexes/hnswDerivedIndex.d.ts +67 -0
  118. package/dist/resources/indexes/hnswDerivedIndex.js +464 -0
  119. package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -0
  120. package/dist/resources/indexes/hnswPlaneBinding.d.ts +65 -0
  121. package/dist/resources/indexes/hnswPlaneBinding.js +91 -0
  122. package/dist/resources/indexes/hnswPlaneBinding.js.map +1 -0
  123. package/dist/resources/nodeIdMapping.d.ts +5 -0
  124. package/dist/resources/nodeIdMapping.js +49 -0
  125. package/dist/resources/nodeIdMapping.js.map +1 -1
  126. package/dist/resources/recordLock.d.ts +47 -4
  127. package/dist/resources/recordLock.js +138 -7
  128. package/dist/resources/recordLock.js.map +1 -1
  129. package/dist/resources/recordLockCoordinator.d.ts +557 -0
  130. package/dist/resources/recordLockCoordinator.js +2565 -0
  131. package/dist/resources/recordLockCoordinator.js.map +1 -0
  132. package/dist/resources/replayLogs.js +5 -0
  133. package/dist/resources/replayLogs.js.map +1 -1
  134. package/dist/resources/replicatedApplyFailure.d.ts +16 -0
  135. package/dist/resources/replicatedApplyFailure.js +63 -0
  136. package/dist/resources/replicatedApplyFailure.js.map +1 -0
  137. package/dist/resources/scheduler/scheduler.js +3 -3
  138. package/dist/resources/scheduler/scheduler.js.map +1 -1
  139. package/dist/resources/search.d.ts +10 -4
  140. package/dist/resources/search.js +160 -40
  141. package/dist/resources/search.js.map +1 -1
  142. package/dist/resources/tracked.d.ts +5 -1
  143. package/dist/resources/tracked.js +74 -23
  144. package/dist/resources/tracked.js.map +1 -1
  145. package/dist/security/jsLoader.js +6 -4
  146. package/dist/security/jsLoader.js.map +1 -1
  147. package/dist/server/REST.js +33 -2
  148. package/dist/server/REST.js.map +1 -1
  149. package/dist/server/http.d.ts +5 -1
  150. package/dist/server/http.js +34 -2
  151. package/dist/server/http.js.map +1 -1
  152. package/dist/server/serverHelpers/Headers.d.ts +2 -0
  153. package/dist/server/serverHelpers/Headers.js +6 -0
  154. package/dist/server/serverHelpers/Headers.js.map +1 -1
  155. package/dist/server/serverHelpers/NodeAdapterResponse.d.ts +48 -0
  156. package/dist/server/serverHelpers/NodeAdapterResponse.js +220 -0
  157. package/dist/server/serverHelpers/NodeAdapterResponse.js.map +1 -0
  158. package/dist/server/serverHelpers/Request.d.ts +5 -10
  159. package/dist/server/serverHelpers/Request.js +38 -136
  160. package/dist/server/serverHelpers/Request.js.map +1 -1
  161. package/dist/server/serverHelpers/contentTypes.d.ts +2 -0
  162. package/dist/server/serverHelpers/contentTypes.js +189 -15
  163. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  164. package/dist/server/serverHelpers/serverUtilities.js +96 -17
  165. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  166. package/dist/server/storageReclamation.js +1 -1
  167. package/dist/server/storageReclamation.js.map +1 -1
  168. package/dist/server/threads/isolatedApplications.d.ts +47 -0
  169. package/dist/server/threads/isolatedApplications.js +171 -0
  170. package/dist/server/threads/isolatedApplications.js.map +1 -0
  171. package/dist/server/threads/logRotationTransport.d.ts +1 -0
  172. package/dist/server/threads/logRotationTransport.js +33 -0
  173. package/dist/server/threads/logRotationTransport.js.map +1 -0
  174. package/dist/server/threads/manageThreads.d.ts +64 -6
  175. package/dist/server/threads/manageThreads.js +261 -12
  176. package/dist/server/threads/manageThreads.js.map +1 -1
  177. package/dist/server/threads/socketRouter.d.ts +1 -0
  178. package/dist/server/threads/socketRouter.js +196 -13
  179. package/dist/server/threads/socketRouter.js.map +1 -1
  180. package/dist/server/threads/threadServer.js +30 -7
  181. package/dist/server/threads/threadServer.js.map +1 -1
  182. package/dist/utility/errors/hdbError.d.ts +24 -0
  183. package/dist/utility/errors/hdbError.js +58 -1
  184. package/dist/utility/errors/hdbError.js.map +1 -1
  185. package/dist/utility/hdbTerms.d.ts +2 -0
  186. package/dist/utility/hdbTerms.js +2 -0
  187. package/dist/utility/hdbTerms.js.map +1 -1
  188. package/dist/utility/logging/harper_logger.js +217 -38
  189. package/dist/utility/logging/harper_logger.js.map +1 -1
  190. package/dist/utility/logging/logGenerationCoordinator.d.ts +35 -0
  191. package/dist/utility/logging/logGenerationCoordinator.js +184 -0
  192. package/dist/utility/logging/logGenerationCoordinator.js.map +1 -0
  193. package/dist/utility/logging/logRotation.d.ts +46 -0
  194. package/dist/utility/logging/logRotation.js +365 -0
  195. package/dist/utility/logging/logRotation.js.map +1 -0
  196. package/dist/utility/logging/logRotator.d.ts +1 -1
  197. package/dist/utility/logging/logRotator.js +172 -92
  198. package/dist/utility/logging/logRotator.js.map +1 -1
  199. package/dist/utility/npmUtilities.js +6 -4
  200. package/dist/utility/npmUtilities.js.map +1 -1
  201. package/dist/utility/watcherFallback.d.ts +0 -45
  202. package/dist/utility/watcherFallback.js +1 -125
  203. package/dist/utility/watcherFallback.js.map +1 -1
  204. package/dist/validation/configValidator.js +6 -3
  205. package/dist/validation/configValidator.js.map +1 -1
  206. package/index.ts +6 -0
  207. package/json/systemSchema.json +3 -0
  208. package/npm-shrinkwrap.json +131 -41
  209. package/package.json +10 -3
  210. package/resources/DESIGN.md +124 -19
  211. package/resources/DatabaseTransaction.ts +230 -17
  212. package/resources/LMDBTransaction.ts +21 -3
  213. package/resources/PrimaryRocksDatabase.ts +20 -7
  214. package/resources/RecordEncoder.ts +25 -5
  215. package/resources/Resource.ts +97 -13
  216. package/resources/ResourceInterface.ts +8 -0
  217. package/resources/RocksIndexStore.ts +2 -1
  218. package/resources/RocksTransactionLogStore.ts +111 -31
  219. package/resources/Table.ts +1224 -393
  220. package/resources/analytics/write.ts +10 -3
  221. package/resources/auditStore.ts +460 -11
  222. package/resources/dataLoader.ts +3 -4
  223. package/resources/databases.ts +610 -146
  224. package/resources/derivedIndexRegistry.ts +56 -0
  225. package/resources/derivedIndexRuntime.ts +2292 -0
  226. package/resources/graphql.ts +3 -2
  227. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +905 -46
  228. package/resources/indexes/hnswDerivedIndex.ts +531 -0
  229. package/resources/indexes/hnswPlaneBinding.ts +174 -0
  230. package/resources/nodeIdMapping.ts +50 -0
  231. package/resources/recordLock.ts +173 -7
  232. package/resources/recordLockCoordinator.ts +3043 -0
  233. package/resources/replayLogs.ts +5 -0
  234. package/resources/replicatedApplyFailure.ts +77 -0
  235. package/resources/scheduler/scheduler.ts +4 -4
  236. package/resources/search.ts +169 -49
  237. package/resources/tracked.ts +73 -22
  238. package/security/jsLoader.ts +6 -4
  239. package/server/DESIGN.md +11 -0
  240. package/server/REST.ts +36 -3
  241. package/server/http.ts +34 -2
  242. package/server/serverHelpers/Headers.ts +5 -1
  243. package/server/serverHelpers/NodeAdapterResponse.ts +221 -0
  244. package/server/serverHelpers/Request.ts +33 -131
  245. package/server/serverHelpers/contentTypes.ts +188 -15
  246. package/server/serverHelpers/serverUtilities.ts +143 -24
  247. package/server/storageReclamation.ts +2 -2
  248. package/server/threads/isolatedApplications.ts +157 -0
  249. package/server/threads/logRotationTransport.ts +40 -0
  250. package/server/threads/manageThreads.js +254 -12
  251. package/server/threads/socketRouter.ts +217 -11
  252. package/server/threads/threadServer.js +30 -7
  253. package/studio/web/assets/{Chat-BnCBegQz.js → Chat-D3j-1yY1.js} +1 -1
  254. package/studio/web/assets/{FloatingChat-CoDW1ySS.js → FloatingChat-BxJGYcfB.js} +3 -3
  255. package/studio/web/assets/{apiToken-Bwk5BLXW.js → apiToken-CT55oWOe.js} +1 -1
  256. package/studio/web/assets/{applications-DHxGi7JH.js → applications-D9Ct9_vm.js} +1 -1
  257. package/studio/web/assets/{cssMode-s0cWI-_M.js → cssMode-DV8H7VwA.js} +1 -1
  258. package/studio/web/assets/{editor-DNcRHK54.js → editor-uatc0unt.js} +1 -1
  259. package/studio/web/assets/{html-Bdssedlg.js → html-Bm6D6paN.js} +1 -1
  260. package/studio/web/assets/{htmlMode-CoDlJ3fw.js → htmlMode-CEn7tpLG.js} +1 -1
  261. package/studio/web/assets/{index-D6sxmFLR.js → index-BIXW6Pu4.js} +5 -5
  262. package/studio/web/assets/{index.lazy-tmU5BS8s.js → index.lazy-UI7L-Vrk.js} +1 -1
  263. package/studio/web/assets/{javascript-B8meVSTH.js → javascript-CJ0G3AFZ.js} +1 -1
  264. package/studio/web/assets/{jsonMode-DpIPd35T.js → jsonMode-DQADAYEa.js} +1 -1
  265. package/studio/web/assets/{languageServices-C_5FMJzQ.js → languageServices-CAQJXWcI.js} +1 -1
  266. package/studio/web/assets/{lspLanguageFeatures-BIzNBzPK.js → lspLanguageFeatures-CCQ8P5sY.js} +1 -1
  267. package/studio/web/assets/{notifications-CQf18QKb.js → notifications-BbxTU6Aw.js} +1 -1
  268. package/studio/web/assets/{notifications-CvZivSbh.js → notifications-Cvb3P1lB.js} +1 -1
  269. package/studio/web/assets/{profile-DdOwtntb.js → profile-Yyb7gsvL.js} +1 -1
  270. package/studio/web/assets/{regions-n69fwagr.js → regions-OgjGHlU5.js} +1 -1
  271. package/studio/web/assets/{register-PfWTCXWB.js → register-6qwNEOY3.js} +2 -2
  272. package/studio/web/assets/{setComponentFile-Bg6O7X0S.js → setComponentFile-BilDMtgB.js} +1 -1
  273. package/studio/web/assets/{setup-CUx_aUDl.js → setup-J6qJ7OIU.js} +2 -2
  274. package/studio/web/assets/{status-D7BVKqX9.js → status-0RWGcfyD.js} +1 -1
  275. package/studio/web/assets/{toggleHighContrast-DBSyXzMr.js → toggleHighContrast-BIn-vErT.js} +1 -1
  276. package/studio/web/assets/{tsMode-BByKCjBS.js → tsMode-DgUXku4d.js} +1 -1
  277. package/studio/web/assets/{typescript-DDLnLpw9.js → typescript-C9orXcsM.js} +1 -1
  278. package/studio/web/assets/{useEntityRestURL-31CHGaHk.js → useEntityRestURL-BEoXXbUB.js} +1 -1
  279. package/studio/web/assets/{workers-pR3jRY9D.js → workers-JVzSDmgx.js} +1 -1
  280. package/studio/web/assets/{xml-2iRnMhQO.js → xml-Cq-S8S4X.js} +1 -1
  281. package/studio/web/assets/{yaml-Bf92gJpd.js → yaml-sfoRdh1M.js} +1 -1
  282. package/studio/web/index.html +1 -1
  283. package/utility/errors/hdbError.ts +54 -0
  284. package/utility/hdbTerms.ts +2 -0
  285. package/utility/logging/harper_logger.ts +209 -30
  286. package/utility/logging/logGenerationCoordinator.ts +196 -0
  287. package/utility/logging/logRotation.ts +367 -0
  288. package/utility/logging/logRotator.ts +196 -91
  289. package/utility/npmUtilities.ts +6 -4
  290. package/utility/watcherFallback.ts +0 -122
  291. package/validation/configValidator.ts +6 -3
@@ -262,6 +262,43 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
262
262
  let singleLogIterator;
263
263
  const attributeCorruption = options.trackCorruptTransactions === true;
264
264
  const corruptFrameStop = { breaks: 0, truncatedVersions: new Set(), midLogBreak: false };
265
+ const failedLogs = new Set();
266
+ const exactStartFailures = new Map();
267
+ const failedIterators = new WeakSet();
268
+ const safeNext = (iterator, log) => {
269
+ if (failedIterators.has(iterator))
270
+ return { value: undefined, done: true };
271
+ try {
272
+ return iterator.next();
273
+ }
274
+ catch (error) {
275
+ failedIterators.add(iterator);
276
+ failedLogs.add(log.name);
277
+ harperLogger.error('Transaction log iterator failed; terminating this log', error, {
278
+ log: log.name,
279
+ });
280
+ return { value: undefined, done: true };
281
+ }
282
+ };
283
+ const resumePastExactStart = (result, iterator, log, expected) => {
284
+ if (result.done || result.value.timestamp !== expected) {
285
+ exactStartFailures.set(log.name, 'missing');
286
+ return { value: undefined, done: true };
287
+ }
288
+ while (!result.value.endTxn) {
289
+ result = safeNext(iterator, log);
290
+ if (result.done || result.value.timestamp !== expected) {
291
+ exactStartFailures.set(log.name, 'incomplete');
292
+ return { value: undefined, done: true };
293
+ }
294
+ }
295
+ result = safeNext(iterator, log);
296
+ if (!result.done && result.value.timestamp === expected) {
297
+ exactStartFailures.set(log.name, 'duplicate');
298
+ return { value: undefined, done: true };
299
+ }
300
+ return result;
301
+ };
265
302
  // Each log's iterator carries the version and endTxn of the last entry it yielded, so a break
266
303
  // can be attributed to the source transaction whose remaining entries it swallowed — unless
267
304
  // that entry's own endTxn already closed the transaction, in which case the break fell after
@@ -301,9 +338,36 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
301
338
  log = this.rootStore.useLog(options.log);
302
339
  }
303
340
  }
304
- const queryIterator = trackCorruptFrames(log, options);
341
+ const resumeAfterExactStart = options.resumeAfterExactStart === true && options.exactStart === true && options.start !== undefined;
342
+ const queryOptions = resumeAfterExactStart ? { ...options, exclusiveStart: false } : options;
343
+ const queryIterator = trackCorruptFrames(log, queryOptions);
305
344
  singleLogIterator = queryIterator;
306
- iterable.iterate = () => queryIterator;
345
+ let exactStartObserved = !resumeAfterExactStart;
346
+ iterable.iterate =
347
+ options.includeLogName || resumeAfterExactStart
348
+ ? () => ({
349
+ next: () => {
350
+ let result = safeNext(queryIterator, log);
351
+ if (!exactStartObserved) {
352
+ exactStartObserved = true;
353
+ if (resumeAfterExactStart)
354
+ result = resumePastExactStart(result, queryIterator, log, options.start);
355
+ }
356
+ if (!result.done && options.includeLogName)
357
+ result.value.logName = log.name;
358
+ return result;
359
+ },
360
+ [Symbol.iterator]() {
361
+ return this;
362
+ },
363
+ return: (value) => queryIterator.return?.(value) ?? { value, done: true },
364
+ throw: (error) => {
365
+ if (queryIterator.throw)
366
+ return queryIterator.throw(error);
367
+ throw error;
368
+ },
369
+ })
370
+ : () => queryIterator;
307
371
  }
308
372
  else {
309
373
  const onlyKeys = options.onlyKeys;
@@ -312,32 +376,8 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
312
376
  let nextEntries;
313
377
  let latestUpdates;
314
378
  const iterators = [];
315
- // Iterators that have permanently failed (corrupt entry stuck at the same
316
- // position). Tracked by identity so the retry-poll path in next() and
317
- // updateIterators() never calls .next() on them again — otherwise every
318
- // subsequent drain cycle would re-throw the same RangeError, spamming logs
319
- // and burning CPU.
320
- const failedIterators = new WeakSet();
321
- // Per-log advance that converts a thrown corrupt-entry error from rocksdb-js
322
- // into a clean `done: true` for that iterator. The reader's RangeError leaves
323
- // `position` at the bad entry; re-calling next() would re-throw indefinitely.
324
- // Terminating just this log lets the aggregate keep draining the other peers'
325
- // logs and prevents the throw from escaping into setImmediate-scheduled
326
- // consumers (notifyFromTransactionData) where it becomes an uncaughtException.
327
- const safeNext = (iterator, log) => {
328
- if (failedIterators.has(iterator))
329
- return { value: undefined, done: true };
330
- try {
331
- return iterator.next();
332
- }
333
- catch (error) {
334
- failedIterators.add(iterator);
335
- harperLogger.error('Transaction log iterator failed; terminating this log', error, {
336
- log: log?.name,
337
- });
338
- return { value: undefined, done: true };
339
- }
340
- };
379
+ const expectedExactStarts = [];
380
+ const observedExactStarts = new Set();
341
381
  const updateIterators = () => {
342
382
  if (latestUpdates !== this.updates) {
343
383
  const latestLogs = (this.nodeLogs || this.loadLogs()).filter((log) => !options.excludeLogs?.includes(log.name));
@@ -345,9 +385,19 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
345
385
  if (!logs.includes(log)) {
346
386
  logs.push(log);
347
387
  let queryOptions = options;
388
+ let expectedExactStart;
348
389
  if (options.startByLog) {
349
- // if the startByLog is provided, we use that
350
- queryOptions = { ...options, start: options.startByLog.get(log.name) ?? 0 };
390
+ if (options.startByLog.has(log.name)) {
391
+ expectedExactStart = options.startByLog.get(log.name);
392
+ queryOptions = {
393
+ ...options,
394
+ start: expectedExactStart,
395
+ exclusiveStart: options.resumeAfterExactStart ? false : options.exclusiveStart,
396
+ };
397
+ }
398
+ else {
399
+ queryOptions = { ...options, start: 0, exactStart: false, exclusiveStart: false };
400
+ }
351
401
  }
352
402
  else if (latestUpdates >= 0) {
353
403
  // if this is not the first update, that means that this is a brand new log and if start wasn't specified
@@ -356,6 +406,7 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
356
406
  queryOptions = { ...options, start: options.start ?? 0 };
357
407
  }
358
408
  iterators.push(trackCorruptFrames(log, queryOptions));
409
+ expectedExactStarts.push(expectedExactStart);
359
410
  }
360
411
  }
361
412
  latestUpdates = this.updates;
@@ -364,12 +415,24 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
364
415
  let log = logs[i];
365
416
  if (!latestLogs.includes(log)) {
366
417
  logs.splice(i, 1);
367
- iterators.splice(i--, 1);
418
+ iterators.splice(i, 1);
419
+ expectedExactStarts.splice(i--, 1);
368
420
  }
369
421
  }
370
422
  }
371
423
  }
372
- nextEntries = iterators.map((iterator, i) => safeNext(iterator, logs[i]));
424
+ nextEntries = iterators.map((iterator, i) => {
425
+ const result = safeNext(iterator, logs[i]);
426
+ const expected = expectedExactStarts[i];
427
+ if (expected !== undefined && !observedExactStarts.has(logs[i].name)) {
428
+ observedExactStarts.add(logs[i].name);
429
+ if (options.resumeAfterExactStart)
430
+ return resumePastExactStart(result, iterator, logs[i], expected);
431
+ if (result.done || result.value.timestamp !== expected)
432
+ exactStartFailures.set(logs[i].name, 'missing');
433
+ }
434
+ return result;
435
+ });
373
436
  };
374
437
  updateIterators();
375
438
  aggregateIterator = {
@@ -411,6 +474,8 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
411
474
  }
412
475
  }
413
476
  if (earliestIndex >= 0) {
477
+ if (options.includeLogName)
478
+ earliest.logName = logs[earliestIndex].name;
414
479
  if (attributeCorruption) {
415
480
  // before the refill, which is where a break surfaces and needs this entry's version
416
481
  iterators[earliestIndex].lastVersion = earliest.timestamp;
@@ -441,6 +506,7 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
441
506
  if (index >= 0) {
442
507
  logs.splice(index, 1);
443
508
  iterators.splice(index, 1);
509
+ expectedExactStarts.splice(index, 1);
444
510
  nextEntries.splice(index, 1);
445
511
  options.excludeLogs.push(logName);
446
512
  }
@@ -448,7 +514,7 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
448
514
  };
449
515
  iterable.iterate = () => aggregateIterator;
450
516
  }
451
- const mappedAggregateIterable = iterable.map(({ timestamp, data, endTxn }) => {
517
+ const mappedAggregateIterable = iterable.map(({ timestamp, data, endTxn, logName }) => {
452
518
  // A break surfaces on the pull after this entry, so recording it here is in time to attribute
453
519
  // that break to this entry's transaction. The aggregate branch records its own, per source
454
520
  // log, because there this callback cannot tell which log an entry came from.
@@ -481,6 +547,8 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
481
547
  position += 8;
482
548
  }
483
549
  const auditRecord = (0, auditStore_ts_1.readAuditEntry)(data, position, undefined);
550
+ if (options.includeLogName)
551
+ auditRecord.logName = logName;
484
552
  auditRecord.txnLogKey = timestamp;
485
553
  auditRecord.endTxn = endTxn;
486
554
  auditRecord.previousResidencyId = previousResidencyId;
@@ -497,6 +565,7 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
497
565
  // the log key is all this entry still yields; its record version is undecodable
498
566
  version: timestamp,
499
567
  txnLogKey: timestamp,
568
+ logName: options.includeLogName ? logName : undefined,
500
569
  endTxn,
501
570
  type: undefined,
502
571
  tableId: undefined,
@@ -513,6 +582,8 @@ class RocksTransactionLogStore extends node_events_1.EventEmitter {
513
582
  mappedAggregateIterable.removeLog = aggregateIterator.removeLog;
514
583
  }
515
584
  mappedAggregateIterable.corruptFrameStop = corruptFrameStop;
585
+ mappedAggregateIterable.failedLogs = failedLogs;
586
+ mappedAggregateIterable.exactStartFailures = exactStartFailures;
516
587
  return mappedAggregateIterable;
517
588
  }
518
589
  getKeys(_options) {
@@ -1 +1 @@
1
- {"version":3,"file":"RocksTransactionLogStore.js","sourceRoot":"","sources":["../../resources/RocksTransactionLogStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RocksTransactionLogStore.js","sourceRoot":"","sources":["../../resources/RocksTransactionLogStore.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,10 @@
6
6
  import { type Database } from 'lmdb';
7
7
  import type { ResourceInterface, SubscriptionRequest, Id, Context, Sort, SubSelect, RequestTargetOrId } from './ResourceInterface.ts';
8
8
  import type { User } from '../security/user.ts';
9
+ import { type WriteGeneration } from './DatabaseTransaction.ts';
9
10
  import { type RecordLockHandle, type RecordLockOptions } from './recordLock.ts';
11
+ import { ASSERT_TRACKED_WRITABLE, GET_TRACKED_WRITE_GENERATION } from './tracked.ts';
12
+ import { LockCoordinator, type LockControlEntry } from './recordLockCoordinator.ts';
10
13
  import { type EmbedAttribute, type Embedder } from './models/embedHook.ts';
11
14
  import { RecordObject, type Entry, type StructureCounts } from './RecordEncoder.ts';
12
15
  import { RequestTarget } from './RequestTarget.ts';
@@ -82,6 +85,7 @@ export declare function makeTable(options: any): {
82
85
  "__#private@#savingOperation"?: any;
83
86
  "__#private@#lockHandle"?: RecordLockHandle;
84
87
  "__#private@#lockWritable"?: boolean;
88
+ "__#private@#writeGeneration"?: WriteGeneration;
85
89
  getProperty: (name: string) => any;
86
90
  /**
87
91
  * Shared guard: if this instance is lock-writable but the handle is gone (expired or
@@ -89,7 +93,7 @@ export declare function makeTable(options: any): {
89
93
  * in addition to the save() path. Every lock-writable instance carries its own handle in
90
94
  * #lockHandle (scoped and hold alike), so we never need to search the registry here.
91
95
  */
92
- "__#private@#assertLiveHandle"(id: Id): void;
96
+ "__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
93
97
  _loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
94
98
  /**
95
99
  * This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
@@ -134,6 +138,7 @@ export declare function makeTable(options: any): {
134
138
  */
135
139
  save(): any;
136
140
  "__#private@#saveOperation"(operation: any): any;
141
+ "__#private@#closeWriteChain"(operation: any): void;
137
142
  addTo(property: any, value: any): void;
138
143
  subtractFrom(property: any, value: any): void;
139
144
  getMetadata(): Entry;
@@ -188,6 +193,8 @@ export declare function makeTable(options: any): {
188
193
  _writePublish(id: Id, message: any, options?: any): void;
189
194
  validate(record: any, patch?: boolean): void;
190
195
  getUpdatedTime(): number;
196
+ [ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
197
+ [GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
191
198
  readonly "__#private@#id": Id;
192
199
  readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
193
200
  "__#private@#isCollection": boolean;
@@ -205,6 +212,15 @@ export declare function makeTable(options: any): {
205
212
  tableName: any;
206
213
  tableId: any;
207
214
  indices: any;
215
+ derivedIndexRuntime: {
216
+ close(dropping?: boolean): Promise<void>;
217
+ restoreAfterFailedDrop?(): {
218
+ close(dropping?: boolean): Promise<void>;
219
+ restoreAfterFailedDrop?(): /*elided*/ any;
220
+ completeDrop?(dropped?: boolean): void;
221
+ };
222
+ completeDrop?(dropped?: boolean): void;
223
+ } | undefined;
208
224
  audit: any;
209
225
  databasePath: any;
210
226
  databaseName: any;
@@ -271,6 +287,7 @@ export declare function makeTable(options: any): {
271
287
  "__#private@#savingOperation"?: any;
272
288
  "__#private@#lockHandle"?: RecordLockHandle;
273
289
  "__#private@#lockWritable"?: boolean;
290
+ "__#private@#writeGeneration"?: WriteGeneration;
274
291
  getProperty: (name: string) => any;
275
292
  /**
276
293
  * Shared guard: if this instance is lock-writable but the handle is gone (expired or
@@ -278,7 +295,7 @@ export declare function makeTable(options: any): {
278
295
  * in addition to the save() path. Every lock-writable instance carries its own handle in
279
296
  * #lockHandle (scoped and hold alike), so we never need to search the registry here.
280
297
  */
281
- "__#private@#assertLiveHandle"(id: Id): void;
298
+ "__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
282
299
  _loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
283
300
  /**
284
301
  * This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
@@ -323,6 +340,7 @@ export declare function makeTable(options: any): {
323
340
  */
324
341
  save(): any;
325
342
  "__#private@#saveOperation"(operation: any): any;
343
+ "__#private@#closeWriteChain"(operation: any): void;
326
344
  addTo(property: any, value: any): void;
327
345
  subtractFrom(property: any, value: any): void;
328
346
  getMetadata(): Entry;
@@ -377,6 +395,8 @@ export declare function makeTable(options: any): {
377
395
  _writePublish(id: Id, message: any, options?: any): void;
378
396
  validate(record: any, patch?: boolean): void;
379
397
  getUpdatedTime(): number;
398
+ [ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
399
+ [GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
380
400
  readonly "__#private@#id": Id;
381
401
  readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
382
402
  "__#private@#isCollection": boolean;
@@ -394,6 +414,7 @@ export declare function makeTable(options: any): {
394
414
  "__#private@#savingOperation"?: any;
395
415
  "__#private@#lockHandle"?: RecordLockHandle;
396
416
  "__#private@#lockWritable"?: boolean;
417
+ "__#private@#writeGeneration"?: WriteGeneration;
397
418
  getProperty: (name: string) => any;
398
419
  /**
399
420
  * Shared guard: if this instance is lock-writable but the handle is gone (expired or
@@ -401,7 +422,7 @@ export declare function makeTable(options: any): {
401
422
  * in addition to the save() path. Every lock-writable instance carries its own handle in
402
423
  * #lockHandle (scoped and hold alike), so we never need to search the registry here.
403
424
  */
404
- "__#private@#assertLiveHandle"(id: Id): void;
425
+ "__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
405
426
  _loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
406
427
  /**
407
428
  * This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
@@ -446,6 +467,7 @@ export declare function makeTable(options: any): {
446
467
  */
447
468
  save(): any;
448
469
  "__#private@#saveOperation"(operation: any): any;
470
+ "__#private@#closeWriteChain"(operation: any): void;
449
471
  addTo(property: any, value: any): void;
450
472
  subtractFrom(property: any, value: any): void;
451
473
  getMetadata(): Entry;
@@ -500,6 +522,8 @@ export declare function makeTable(options: any): {
500
522
  _writePublish(id: Id, message: any, options?: any): void;
501
523
  validate(record: any, patch?: boolean): void;
502
524
  getUpdatedTime(): number;
525
+ [ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
526
+ [GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
503
527
  readonly "__#private@#id": Id;
504
528
  readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
505
529
  "__#private@#isCollection": boolean;
@@ -517,12 +541,15 @@ export declare function makeTable(options: any): {
517
541
  * This also informs the scheduling for record eviction.
518
542
  * @param opts Time in seconds until records expire, or an options object with `expiration`, `eviction`,
519
543
  * and `scanInterval` (all in seconds, all optional). Number form preserves any previously configured
520
- * eviction/scanInterval; object form replaces all three.
544
+ * eviction/scanInterval; object form replaces all three. An internal schema ownership-only call with
545
+ * none of those values preserves the settings already loaded from the catalog.
521
546
  */
522
547
  setTTLExpiration(opts: number | {
523
548
  expiration?: number;
524
549
  eviction?: number;
525
550
  scanInterval?: number;
551
+ fromSchema?: boolean;
552
+ isolatedApplicationOwner?: boolean;
526
553
  }): void;
527
554
  getResidencyRecord(id: Id): any;
528
555
  setResidency(getResidency?: (record: object, context: Context) => ResidencyDefinition): void;
@@ -612,6 +639,30 @@ export declare function makeTable(options: any): {
612
639
  * the table when it (re)subscribes.
613
640
  */
614
641
  writeReloadMarker(context?: any): void;
642
+ /**
643
+ * Write one cluster record-lock control entry (harper#483 Phase 1). Not local-only: replicating
644
+ * it IS the send.
645
+ *
646
+ * `recordId` must stay null. An entry carrying the locked key would share
647
+ * `(version, tableId, recordId, nodeId)` with the holder's own first write, which is stamped at
648
+ * exactly `ts_R`, and `RocksTransactionLogStore.getSync` answers with the FIRST entry at a
649
+ * timestamp and key — so `_writeUpdate`'s keyed dedup would find this one and drop that write.
650
+ * The payload goes in as bytes rather than through `recordUpdater`, which would run it through
651
+ * schema projection and the table's shared structure dictionary.
652
+ */
653
+ writeLockControlEntry(entry: LockControlEntry): Promise<number | undefined>;
654
+ /**
655
+ * The coordinator that holds this node's admissions, transport or not. Releasing and registering
656
+ * go here rather than through `lockCoordinator`, which answers undefined while a transport is
657
+ * momentarily unregistered — and a release dropped on that answer leaves the key's home holding
658
+ * its grant until the delegation's own deadline.
659
+ */
660
+ get admittingCoordinator(): LockCoordinator | undefined;
661
+ /**
662
+ * This table's cluster lock coordinator, created on first use and only while a transport is
663
+ * registered for the database. Nothing is allocated on the Phase 0 path.
664
+ */
665
+ get lockCoordinator(): LockCoordinator | undefined;
615
666
  addAttributes(attributesToAdd: Attribute[]): Promise<any>;
616
667
  removeAttributes(names: string[]): Promise<any>;
617
668
  /**
@@ -630,10 +681,10 @@ export declare function makeTable(options: any): {
630
681
  getStorageStats(): Promise<import("../server/storageReclamation.ts").StorageSpaceStats>;
631
682
  getRecordCount(options?: any): Promise<{
632
683
  recordCount: number;
633
- estimatedRange: number[];
684
+ estimatedRange?: undefined;
634
685
  } | {
635
686
  recordCount: number;
636
- estimatedRange?: undefined;
687
+ estimatedRange: number[];
637
688
  }>;
638
689
  /**
639
690
  * When attributes have been changed, we update the accessors that are assigned to this table
@@ -661,7 +712,7 @@ export declare function makeTable(options: any): {
661
712
  clear(): Promise<any[]>;
662
713
  /** Release everything makeTable() registered process-wide; the class must not be used afterwards. */
663
714
  cleanup(): void;
664
- _readTxnForContext(context: any): (RocksTransaction | import("lmdb").Transaction) & {
715
+ _readTxnForContext(context: any): (import("lmdb").Transaction | RocksTransaction) & {
665
716
  openTimer?: number;
666
717
  retryRisk?: number;
667
718
  isDone?: boolean;