@harperfast/harper 5.2.13 → 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 (655) hide show
  1. package/agent/mcpTools.ts +1 -1
  2. package/agent/session.ts +25 -14
  3. package/bin/cliOperations.ts +58 -9
  4. package/bin/copyDb.ts +282 -59
  5. package/bin/deploySetup.ts +16 -5
  6. package/bin/harper.ts +1 -1
  7. package/bin/help.ts +4 -1
  8. package/bin/lite.ts +4 -1
  9. package/bin/restart.ts +120 -4
  10. package/bin/run.ts +6 -11
  11. package/bin/upgrade.js +7 -3
  12. package/bin/workloadIdentity.ts +119 -0
  13. package/components/Application.ts +3436 -242
  14. package/components/ApplicationScope.ts +8 -0
  15. package/components/EntryHandler.ts +59 -39
  16. package/components/OptionsWatcher.ts +440 -98
  17. package/components/RuntimeModuleTracker.ts +38 -7
  18. package/components/Scope.ts +56 -15
  19. package/components/awaitRestart.ts +84 -0
  20. package/components/componentLoader.ts +381 -32
  21. package/components/componentPreparationLock.ts +16 -5
  22. package/components/deploymentOperations.ts +4 -1
  23. package/components/deploymentRecorder.ts +9 -2
  24. package/components/mcp/adapters/harperHttp.ts +4 -0
  25. package/components/mcp/listChanged.ts +4 -0
  26. package/components/mcp/toolRegistry.ts +2 -0
  27. package/components/mcp/tools/operations.ts +9 -0
  28. package/components/mcp/tools/schemas/operationDescriptions.ts +2 -2
  29. package/components/operations.js +537 -113
  30. package/components/operationsValidation.js +98 -3
  31. package/components/packageComponent.ts +25 -1
  32. package/components/requestRestart.ts +11 -0
  33. package/components/status/ComponentStatusRegistry.ts +59 -0
  34. package/config/RootConfigWatcher.ts +240 -40
  35. package/config/configReadRetry.ts +62 -0
  36. package/config/configUtils.ts +357 -48
  37. package/config/harperConfigEnvVars.ts +170 -27
  38. package/config/parseConfigFile.ts +34 -0
  39. package/config/readConfigFileSync.ts +44 -0
  40. package/config/watcherArming.ts +59 -0
  41. package/config-root.schema.json +33 -0
  42. package/dataLayer/blobBackup.ts +160 -50
  43. package/dataLayer/delete.ts +6 -1
  44. package/dataLayer/harperBridge/ResourceBridge.ts +80 -10
  45. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  46. package/dataLayer/hdbInfoController.ts +34 -1
  47. package/dataLayer/insert.ts +44 -1
  48. package/dataLayer/rocksdbBackup.ts +53 -10
  49. package/dataLayer/schema.ts +11 -1
  50. package/dataLayer/schemaDescribe.ts +8 -1
  51. package/dist/agent/mcpTools.js +1 -1
  52. package/dist/agent/mcpTools.js.map +1 -1
  53. package/dist/agent/session.d.ts +22 -0
  54. package/dist/agent/session.js +26 -15
  55. package/dist/agent/session.js.map +1 -1
  56. package/dist/bin/cliOperations.js +61 -9
  57. package/dist/bin/cliOperations.js.map +1 -1
  58. package/dist/bin/copyDb.d.ts +12 -1
  59. package/dist/bin/copyDb.js +248 -60
  60. package/dist/bin/copyDb.js.map +1 -1
  61. package/dist/bin/deploySetup.d.ts +2 -0
  62. package/dist/bin/deploySetup.js +11 -3
  63. package/dist/bin/deploySetup.js.map +1 -1
  64. package/dist/bin/harper.js +1 -1
  65. package/dist/bin/harper.js.map +1 -1
  66. package/dist/bin/help.js +4 -1
  67. package/dist/bin/help.js.map +1 -1
  68. package/dist/bin/lite.js +4 -1
  69. package/dist/bin/lite.js.map +1 -1
  70. package/dist/bin/restart.js +91 -6
  71. package/dist/bin/restart.js.map +1 -1
  72. package/dist/bin/run.js +4 -10
  73. package/dist/bin/run.js.map +1 -1
  74. package/dist/bin/upgrade.js +4 -3
  75. package/dist/bin/upgrade.js.map +1 -1
  76. package/dist/bin/workloadIdentity.d.ts +18 -0
  77. package/dist/bin/workloadIdentity.js +100 -0
  78. package/dist/bin/workloadIdentity.js.map +1 -0
  79. package/dist/components/Application.d.ts +235 -17
  80. package/dist/components/Application.js +3038 -238
  81. package/dist/components/Application.js.map +1 -1
  82. package/dist/components/ApplicationScope.d.ts +8 -0
  83. package/dist/components/ApplicationScope.js +7 -0
  84. package/dist/components/ApplicationScope.js.map +1 -1
  85. package/dist/components/EntryHandler.js +26 -10
  86. package/dist/components/EntryHandler.js.map +1 -1
  87. package/dist/components/OptionsWatcher.d.ts +4 -0
  88. package/dist/components/OptionsWatcher.js +440 -99
  89. package/dist/components/OptionsWatcher.js.map +1 -1
  90. package/dist/components/RuntimeModuleTracker.js +40 -6
  91. package/dist/components/RuntimeModuleTracker.js.map +1 -1
  92. package/dist/components/Scope.js +52 -13
  93. package/dist/components/Scope.js.map +1 -1
  94. package/dist/components/awaitRestart.d.ts +33 -0
  95. package/dist/components/awaitRestart.js +61 -0
  96. package/dist/components/awaitRestart.js.map +1 -0
  97. package/dist/components/componentLoader.d.ts +38 -1
  98. package/dist/components/componentLoader.js +313 -24
  99. package/dist/components/componentLoader.js.map +1 -1
  100. package/dist/components/componentPreparationLock.d.ts +5 -0
  101. package/dist/components/componentPreparationLock.js +14 -6
  102. package/dist/components/componentPreparationLock.js.map +1 -1
  103. package/dist/components/deploymentOperations.js +4 -1
  104. package/dist/components/deploymentOperations.js.map +1 -1
  105. package/dist/components/deploymentRecorder.d.ts +4 -2
  106. package/dist/components/deploymentRecorder.js +1 -0
  107. package/dist/components/deploymentRecorder.js.map +1 -1
  108. package/dist/components/mcp/adapters/harperHttp.js +4 -0
  109. package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
  110. package/dist/components/mcp/listChanged.js +5 -0
  111. package/dist/components/mcp/listChanged.js.map +1 -1
  112. package/dist/components/mcp/toolRegistry.d.ts +1 -0
  113. package/dist/components/mcp/toolRegistry.js.map +1 -1
  114. package/dist/components/mcp/tools/operations.d.ts +5 -0
  115. package/dist/components/mcp/tools/operations.js +9 -0
  116. package/dist/components/mcp/tools/operations.js.map +1 -1
  117. package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -2
  118. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  119. package/dist/components/operations.d.ts +28 -0
  120. package/dist/components/operations.js +476 -113
  121. package/dist/components/operations.js.map +1 -1
  122. package/dist/components/operationsValidation.js +97 -3
  123. package/dist/components/operationsValidation.js.map +1 -1
  124. package/dist/components/packageComponent.js +24 -0
  125. package/dist/components/packageComponent.js.map +1 -1
  126. package/dist/components/requestRestart.d.ts +1 -0
  127. package/dist/components/requestRestart.js +7 -0
  128. package/dist/components/requestRestart.js.map +1 -1
  129. package/dist/components/status/ComponentStatusRegistry.d.ts +0 -4
  130. package/dist/components/status/ComponentStatusRegistry.js +63 -0
  131. package/dist/components/status/ComponentStatusRegistry.js.map +1 -1
  132. package/dist/config/RootConfigWatcher.d.ts +9 -1
  133. package/dist/config/RootConfigWatcher.js +228 -37
  134. package/dist/config/RootConfigWatcher.js.map +1 -1
  135. package/dist/config/configReadRetry.d.ts +8 -0
  136. package/dist/config/configReadRetry.js +62 -0
  137. package/dist/config/configReadRetry.js.map +1 -0
  138. package/dist/config/configUtils.d.ts +11 -2
  139. package/dist/config/configUtils.js +304 -47
  140. package/dist/config/configUtils.js.map +1 -1
  141. package/dist/config/harperConfigEnvVars.d.ts +16 -0
  142. package/dist/config/harperConfigEnvVars.js +162 -25
  143. package/dist/config/harperConfigEnvVars.js.map +1 -1
  144. package/dist/config/parseConfigFile.d.ts +4 -0
  145. package/dist/config/parseConfigFile.js +35 -0
  146. package/dist/config/parseConfigFile.js.map +1 -0
  147. package/dist/config/readConfigFileSync.d.ts +1 -0
  148. package/dist/config/readConfigFileSync.js +47 -0
  149. package/dist/config/readConfigFileSync.js.map +1 -0
  150. package/dist/config/watcherArming.d.ts +15 -0
  151. package/dist/config/watcherArming.js +59 -0
  152. package/dist/config/watcherArming.js.map +1 -0
  153. package/dist/dataLayer/blobBackup.d.ts +49 -20
  154. package/dist/dataLayer/blobBackup.js +139 -50
  155. package/dist/dataLayer/blobBackup.js.map +1 -1
  156. package/dist/dataLayer/delete.js +1 -1
  157. package/dist/dataLayer/delete.js.map +1 -1
  158. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +14 -1
  159. package/dist/dataLayer/harperBridge/ResourceBridge.js +72 -12
  160. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  161. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +3 -1
  162. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  163. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -1
  164. package/dist/dataLayer/hdbInfoController.d.ts +10 -0
  165. package/dist/dataLayer/hdbInfoController.js +30 -1
  166. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  167. package/dist/dataLayer/insert.d.ts +9 -1
  168. package/dist/dataLayer/insert.js +30 -0
  169. package/dist/dataLayer/insert.js.map +1 -1
  170. package/dist/dataLayer/rocksdbBackup.d.ts +2 -2
  171. package/dist/dataLayer/rocksdbBackup.js +45 -8
  172. package/dist/dataLayer/rocksdbBackup.js.map +1 -1
  173. package/dist/dataLayer/schema.js +8 -0
  174. package/dist/dataLayer/schema.js.map +1 -1
  175. package/dist/dataLayer/schemaDescribe.js +8 -1
  176. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  177. package/dist/index.d.ts +2 -1
  178. package/dist/index.js +4 -1
  179. package/dist/index.js.map +1 -1
  180. package/dist/json/systemSchema.json +55 -0
  181. package/dist/resources/DatabaseTransaction.d.ts +77 -0
  182. package/dist/resources/DatabaseTransaction.js +586 -54
  183. package/dist/resources/DatabaseTransaction.js.map +1 -1
  184. package/dist/resources/LMDBTransaction.d.ts +2 -1
  185. package/dist/resources/LMDBTransaction.js +43 -6
  186. package/dist/resources/LMDBTransaction.js.map +1 -1
  187. package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
  188. package/dist/resources/PrimaryRocksDatabase.js +49 -5
  189. package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
  190. package/dist/resources/RecordEncoder.d.ts +20 -0
  191. package/dist/resources/RecordEncoder.js +110 -9
  192. package/dist/resources/RecordEncoder.js.map +1 -1
  193. package/dist/resources/RequestTarget.d.ts +2 -0
  194. package/dist/resources/RequestTarget.js.map +1 -1
  195. package/dist/resources/Resource.js +117 -24
  196. package/dist/resources/Resource.js.map +1 -1
  197. package/dist/resources/ResourceInterface.d.ts +28 -1
  198. package/dist/resources/ResourceInterface.js.map +1 -1
  199. package/dist/resources/RocksIndexStore.d.ts +6 -1
  200. package/dist/resources/RocksIndexStore.js +24 -9
  201. package/dist/resources/RocksIndexStore.js.map +1 -1
  202. package/dist/resources/RocksTransactionLogStore.d.ts +24 -1
  203. package/dist/resources/RocksTransactionLogStore.js +160 -49
  204. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  205. package/dist/resources/Table.d.ts +165 -10
  206. package/dist/resources/Table.js +1805 -303
  207. package/dist/resources/Table.js.map +1 -1
  208. package/dist/resources/analytics/write.js +10 -3
  209. package/dist/resources/analytics/write.js.map +1 -1
  210. package/dist/resources/auditStore.d.ts +181 -2
  211. package/dist/resources/auditStore.js +640 -29
  212. package/dist/resources/auditStore.js.map +1 -1
  213. package/dist/resources/blob.d.ts +129 -9
  214. package/dist/resources/blob.js +992 -114
  215. package/dist/resources/blob.js.map +1 -1
  216. package/dist/resources/branchDatabase.d.ts +48 -0
  217. package/dist/resources/branchDatabase.js +892 -0
  218. package/dist/resources/branchDatabase.js.map +1 -0
  219. package/dist/resources/crdt.js +50 -12
  220. package/dist/resources/crdt.js.map +1 -1
  221. package/dist/resources/dataLoader.js +3 -4
  222. package/dist/resources/dataLoader.js.map +1 -1
  223. package/dist/resources/databases.d.ts +157 -14
  224. package/dist/resources/databases.js +1462 -325
  225. package/dist/resources/databases.js.map +1 -1
  226. package/dist/resources/defineTable.d.ts +10 -2
  227. package/dist/resources/defineTable.js +9 -1
  228. package/dist/resources/defineTable.js.map +1 -1
  229. package/dist/resources/derivedIndexRegistry.d.ts +5 -0
  230. package/dist/resources/derivedIndexRegistry.js +68 -0
  231. package/dist/resources/derivedIndexRegistry.js.map +1 -0
  232. package/dist/resources/derivedIndexRuntime.d.ts +215 -0
  233. package/dist/resources/derivedIndexRuntime.js +2027 -0
  234. package/dist/resources/derivedIndexRuntime.js.map +1 -0
  235. package/dist/resources/graphql.d.ts +1 -1
  236. package/dist/resources/graphql.js +52 -16
  237. package/dist/resources/graphql.js.map +1 -1
  238. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +103 -9
  239. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +854 -41
  240. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  241. package/dist/resources/indexes/hnswDerivedIndex.d.ts +67 -0
  242. package/dist/resources/indexes/hnswDerivedIndex.js +464 -0
  243. package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -0
  244. package/dist/resources/indexes/hnswPlaneBinding.d.ts +65 -0
  245. package/dist/resources/indexes/hnswPlaneBinding.js +91 -0
  246. package/dist/resources/indexes/hnswPlaneBinding.js.map +1 -0
  247. package/dist/resources/longLivedTransactions.d.ts +71 -0
  248. package/dist/resources/longLivedTransactions.js +358 -0
  249. package/dist/resources/longLivedTransactions.js.map +1 -0
  250. package/dist/resources/models/backendRegistry.d.ts +26 -0
  251. package/dist/resources/models/backendRegistry.js +60 -2
  252. package/dist/resources/models/backendRegistry.js.map +1 -1
  253. package/dist/resources/models/bootstrap.d.ts +33 -1
  254. package/dist/resources/models/bootstrap.js +416 -31
  255. package/dist/resources/models/bootstrap.js.map +1 -1
  256. package/dist/resources/nodeIdMapping.d.ts +5 -0
  257. package/dist/resources/nodeIdMapping.js +49 -0
  258. package/dist/resources/nodeIdMapping.js.map +1 -1
  259. package/dist/resources/recordLock.d.ts +123 -0
  260. package/dist/resources/recordLock.js +315 -0
  261. package/dist/resources/recordLock.js.map +1 -0
  262. package/dist/resources/recordLockCoordinator.d.ts +557 -0
  263. package/dist/resources/recordLockCoordinator.js +2565 -0
  264. package/dist/resources/recordLockCoordinator.js.map +1 -0
  265. package/dist/resources/replayLogs.d.ts +14 -1
  266. package/dist/resources/replayLogs.js +157 -24
  267. package/dist/resources/replayLogs.js.map +1 -1
  268. package/dist/resources/replayLogsGuards.d.ts +94 -7
  269. package/dist/resources/replayLogsGuards.js +111 -7
  270. package/dist/resources/replayLogsGuards.js.map +1 -1
  271. package/dist/resources/replicatedApplyFailure.d.ts +16 -0
  272. package/dist/resources/replicatedApplyFailure.js +63 -0
  273. package/dist/resources/replicatedApplyFailure.js.map +1 -0
  274. package/dist/resources/scheduler/scheduler.js +3 -3
  275. package/dist/resources/scheduler/scheduler.js.map +1 -1
  276. package/dist/resources/search.d.ts +10 -4
  277. package/dist/resources/search.js +283 -37
  278. package/dist/resources/search.js.map +1 -1
  279. package/dist/resources/tracked.d.ts +5 -1
  280. package/dist/resources/tracked.js +74 -23
  281. package/dist/resources/tracked.js.map +1 -1
  282. package/dist/resources/transactionBroadcast.d.ts +1 -1
  283. package/dist/resources/transactionBroadcast.js +2 -2
  284. package/dist/resources/transactionBroadcast.js.map +1 -1
  285. package/dist/security/auth.js +61 -30
  286. package/dist/security/auth.js.map +1 -1
  287. package/dist/security/authn/oidc/claims.d.ts +22 -0
  288. package/dist/security/authn/oidc/claims.js +71 -0
  289. package/dist/security/authn/oidc/claims.js.map +1 -0
  290. package/dist/security/authn/oidc/identityToken.d.ts +27 -0
  291. package/dist/security/authn/oidc/identityToken.js +111 -0
  292. package/dist/security/authn/oidc/identityToken.js.map +1 -0
  293. package/dist/security/authn/oidc/jwks.d.ts +25 -0
  294. package/dist/security/authn/oidc/jwks.js +261 -0
  295. package/dist/security/authn/oidc/jwks.js.map +1 -0
  296. package/dist/security/authn/oidc/providers/generic.d.ts +13 -0
  297. package/dist/security/authn/oidc/providers/generic.js +34 -0
  298. package/dist/security/authn/oidc/providers/generic.js.map +1 -0
  299. package/dist/security/authn/oidc/providers/githubActions.d.ts +11 -0
  300. package/dist/security/authn/oidc/providers/githubActions.js +129 -0
  301. package/dist/security/authn/oidc/providers/githubActions.js.map +1 -0
  302. package/dist/security/authn/oidc/providers/index.d.ts +37 -0
  303. package/dist/security/authn/oidc/providers/index.js +24 -0
  304. package/dist/security/authn/oidc/providers/index.js.map +1 -0
  305. package/dist/security/authn/oidc/tokenExchange.d.ts +12 -0
  306. package/dist/security/authn/oidc/tokenExchange.js +306 -0
  307. package/dist/security/authn/oidc/tokenExchange.js.map +1 -0
  308. package/dist/security/authn/oidc/trustPolicyOperations.d.ts +49 -0
  309. package/dist/security/authn/oidc/trustPolicyOperations.js +358 -0
  310. package/dist/security/authn/oidc/trustPolicyOperations.js.map +1 -0
  311. package/dist/security/authn/oidc/types.d.ts +38 -0
  312. package/dist/security/authn/oidc/types.js +6 -0
  313. package/dist/security/authn/oidc/types.js.map +1 -0
  314. package/dist/security/certificateVerification/index.js +40 -11
  315. package/dist/security/certificateVerification/index.js.map +1 -1
  316. package/dist/security/certificateVerification/trustedIssuers.d.ts +24 -0
  317. package/dist/security/certificateVerification/trustedIssuers.js +79 -0
  318. package/dist/security/certificateVerification/trustedIssuers.js.map +1 -0
  319. package/dist/security/certificateVerification/types.d.ts +1 -0
  320. package/dist/security/credentialProvenance.d.ts +35 -0
  321. package/dist/security/credentialProvenance.js +51 -0
  322. package/dist/security/credentialProvenance.js.map +1 -0
  323. package/dist/security/credentialRejection.d.ts +4 -0
  324. package/dist/security/credentialRejection.js +24 -0
  325. package/dist/security/credentialRejection.js.map +1 -0
  326. package/dist/security/deferredAuthentication.d.ts +36 -0
  327. package/dist/security/deferredAuthentication.js +70 -0
  328. package/dist/security/deferredAuthentication.js.map +1 -0
  329. package/dist/security/impersonation.d.ts +21 -0
  330. package/dist/security/impersonation.js +108 -9
  331. package/dist/security/impersonation.js.map +1 -1
  332. package/dist/security/jsLoader.d.ts +6 -0
  333. package/dist/security/jsLoader.js +77 -15
  334. package/dist/security/jsLoader.js.map +1 -1
  335. package/dist/security/keys.js +301 -71
  336. package/dist/security/keys.js.map +1 -1
  337. package/dist/security/operationScope.d.ts +21 -0
  338. package/dist/security/operationScope.js +36 -0
  339. package/dist/security/operationScope.js.map +1 -0
  340. package/dist/security/permissionsTranslator.js +21 -0
  341. package/dist/security/permissionsTranslator.js.map +1 -1
  342. package/dist/security/tokenAuthentication.d.ts +19 -1
  343. package/dist/security/tokenAuthentication.js +191 -10
  344. package/dist/security/tokenAuthentication.js.map +1 -1
  345. package/dist/security/user.js +4 -3
  346. package/dist/security/user.js.map +1 -1
  347. package/dist/server/DurableSubscriptionsSession.d.ts +2 -2
  348. package/dist/server/DurableSubscriptionsSession.js +67 -10
  349. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  350. package/dist/server/REST.js +106 -2
  351. package/dist/server/REST.js.map +1 -1
  352. package/dist/server/graphqlQuerying.js +4 -0
  353. package/dist/server/graphqlQuerying.js.map +1 -1
  354. package/dist/server/http.d.ts +16 -1
  355. package/dist/server/http.js +122 -17
  356. package/dist/server/http.js.map +1 -1
  357. package/dist/server/itc/serverHandlers.js +8 -1
  358. package/dist/server/itc/serverHandlers.js.map +1 -1
  359. package/dist/server/jobs/jobProcess.js +6 -2
  360. package/dist/server/jobs/jobProcess.js.map +1 -1
  361. package/dist/server/jobs/jobs.js +4 -1
  362. package/dist/server/jobs/jobs.js.map +1 -1
  363. package/dist/server/liveSubscriptionAuth.d.ts +26 -4
  364. package/dist/server/liveSubscriptionAuth.js +105 -39
  365. package/dist/server/liveSubscriptionAuth.js.map +1 -1
  366. package/dist/server/loadRootComponents.js +49 -10
  367. package/dist/server/loadRootComponents.js.map +1 -1
  368. package/dist/server/mqtt.d.ts +2 -0
  369. package/dist/server/mqtt.js +165 -30
  370. package/dist/server/mqtt.js.map +1 -1
  371. package/dist/server/nodeName.d.ts +2 -0
  372. package/dist/server/nodeName.js +107 -23
  373. package/dist/server/nodeName.js.map +1 -1
  374. package/dist/server/serverHelpers/Headers.d.ts +27 -0
  375. package/dist/server/serverHelpers/Headers.js +145 -1
  376. package/dist/server/serverHelpers/Headers.js.map +1 -1
  377. package/dist/server/serverHelpers/NodeAdapterResponse.d.ts +48 -0
  378. package/dist/server/serverHelpers/NodeAdapterResponse.js +220 -0
  379. package/dist/server/serverHelpers/NodeAdapterResponse.js.map +1 -0
  380. package/dist/server/serverHelpers/Request.d.ts +5 -10
  381. package/dist/server/serverHelpers/Request.js +38 -136
  382. package/dist/server/serverHelpers/Request.js.map +1 -1
  383. package/dist/server/serverHelpers/contentTypes.d.ts +11 -0
  384. package/dist/server/serverHelpers/contentTypes.js +221 -40
  385. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  386. package/dist/server/serverHelpers/deployValidationState.d.ts +3 -0
  387. package/dist/server/serverHelpers/deployValidationState.js +9 -19
  388. package/dist/server/serverHelpers/deployValidationState.js.map +1 -1
  389. package/dist/server/serverHelpers/operationAuthorizationState.d.ts +12 -0
  390. package/dist/server/serverHelpers/operationAuthorizationState.js +24 -2
  391. package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -1
  392. package/dist/server/serverHelpers/registeredOperations.d.ts +5 -4
  393. package/dist/server/serverHelpers/registeredOperations.js +74 -21
  394. package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
  395. package/dist/server/serverHelpers/requestSanitization.d.ts +11 -0
  396. package/dist/server/serverHelpers/requestSanitization.js +20 -0
  397. package/dist/server/serverHelpers/requestSanitization.js.map +1 -0
  398. package/dist/server/serverHelpers/serverHandlers.js +6 -3
  399. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  400. package/dist/server/serverHelpers/serverUtilities.d.ts +18 -0
  401. package/dist/server/serverHelpers/serverUtilities.js +178 -29
  402. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  403. package/dist/server/serverHelpers/sharedMessageEncoding.d.ts +67 -0
  404. package/dist/server/serverHelpers/sharedMessageEncoding.js +280 -0
  405. package/dist/server/serverHelpers/sharedMessageEncoding.js.map +1 -0
  406. package/dist/server/serverHelpers/uwsServer.js +19 -1
  407. package/dist/server/serverHelpers/uwsServer.js.map +1 -1
  408. package/dist/server/static.js +24 -28
  409. package/dist/server/static.js.map +1 -1
  410. package/dist/server/storageReclamation.d.ts +5 -0
  411. package/dist/server/storageReclamation.js +17 -1
  412. package/dist/server/storageReclamation.js.map +1 -1
  413. package/dist/server/threads/isolatedApplications.d.ts +47 -0
  414. package/dist/server/threads/isolatedApplications.js +171 -0
  415. package/dist/server/threads/isolatedApplications.js.map +1 -0
  416. package/dist/server/threads/itc.d.ts +7 -2
  417. package/dist/server/threads/itc.js +5 -1
  418. package/dist/server/threads/itc.js.map +1 -1
  419. package/dist/server/threads/logRotationTransport.d.ts +1 -0
  420. package/dist/server/threads/logRotationTransport.js +33 -0
  421. package/dist/server/threads/logRotationTransport.js.map +1 -0
  422. package/dist/server/threads/manageThreads.d.ts +83 -3
  423. package/dist/server/threads/manageThreads.js +769 -75
  424. package/dist/server/threads/manageThreads.js.map +1 -1
  425. package/dist/server/threads/socketRouter.d.ts +1 -0
  426. package/dist/server/threads/socketRouter.js +277 -31
  427. package/dist/server/threads/socketRouter.js.map +1 -1
  428. package/dist/server/threads/threadHeapMemory.d.ts +2 -0
  429. package/dist/server/threads/threadHeapMemory.js +31 -0
  430. package/dist/server/threads/threadHeapMemory.js.map +1 -0
  431. package/dist/server/threads/threadServer.js +76 -22
  432. package/dist/server/threads/threadServer.js.map +1 -1
  433. package/dist/sqlEngine/config.d.ts +1 -3
  434. package/dist/sqlEngine/config.js +19 -16
  435. package/dist/sqlEngine/config.js.map +1 -1
  436. package/dist/sqlTranslator/index.d.ts +1 -1
  437. package/dist/sqlTranslator/index.js +30 -7
  438. package/dist/sqlTranslator/index.js.map +1 -1
  439. package/dist/upgrade/directives/5-3-0.d.ts +7 -0
  440. package/dist/upgrade/directives/5-3-0.js +148 -0
  441. package/dist/upgrade/directives/5-3-0.js.map +1 -0
  442. package/dist/upgrade/directives/directivesController.js +2 -1
  443. package/dist/upgrade/directives/directivesController.js.map +1 -1
  444. package/dist/utility/OperationFunctionCaller.js +2 -1
  445. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  446. package/dist/utility/common_utils.d.ts +16 -0
  447. package/dist/utility/common_utils.js +32 -6
  448. package/dist/utility/common_utils.js.map +1 -1
  449. package/dist/utility/componentNames.d.ts +8 -0
  450. package/dist/utility/componentNames.js +12 -1
  451. package/dist/utility/componentNames.js.map +1 -1
  452. package/dist/utility/environment/environmentManager.js +3 -6
  453. package/dist/utility/environment/environmentManager.js.map +1 -1
  454. package/dist/utility/environment/systemInformation.d.ts +1 -0
  455. package/dist/utility/environment/systemInformation.js +1 -0
  456. package/dist/utility/environment/systemInformation.js.map +1 -1
  457. package/dist/utility/errors/commonErrors.d.ts +2 -0
  458. package/dist/utility/errors/commonErrors.js +2 -0
  459. package/dist/utility/errors/commonErrors.js.map +1 -1
  460. package/dist/utility/errors/hdbError.d.ts +33 -0
  461. package/dist/utility/errors/hdbError.js +58 -1
  462. package/dist/utility/errors/hdbError.js.map +1 -1
  463. package/dist/utility/globalSchema.d.ts +18 -0
  464. package/dist/utility/hdbTerms.d.ts +18 -0
  465. package/dist/utility/hdbTerms.js +20 -2
  466. package/dist/utility/hdbTerms.js.map +1 -1
  467. package/dist/utility/logging/harper_logger.d.ts +2 -0
  468. package/dist/utility/logging/harper_logger.js +286 -30
  469. package/dist/utility/logging/harper_logger.js.map +1 -1
  470. package/dist/utility/logging/logGenerationCoordinator.d.ts +35 -0
  471. package/dist/utility/logging/logGenerationCoordinator.js +184 -0
  472. package/dist/utility/logging/logGenerationCoordinator.js.map +1 -0
  473. package/dist/utility/logging/logRotation.d.ts +46 -0
  474. package/dist/utility/logging/logRotation.js +365 -0
  475. package/dist/utility/logging/logRotation.js.map +1 -0
  476. package/dist/utility/logging/logRotator.d.ts +1 -1
  477. package/dist/utility/logging/logRotator.js +192 -85
  478. package/dist/utility/logging/logRotator.js.map +1 -1
  479. package/dist/utility/nodeIdentity.d.ts +9 -0
  480. package/dist/utility/nodeIdentity.js +58 -0
  481. package/dist/utility/nodeIdentity.js.map +1 -0
  482. package/dist/utility/npmUtilities.js +11 -7
  483. package/dist/utility/npmUtilities.js.map +1 -1
  484. package/dist/utility/operationPermissions.d.ts +3 -1
  485. package/dist/utility/operationPermissions.js +16 -1
  486. package/dist/utility/operationPermissions.js.map +1 -1
  487. package/dist/utility/operation_authorization.d.ts +10 -7
  488. package/dist/utility/operation_authorization.js +212 -41
  489. package/dist/utility/operation_authorization.js.map +1 -1
  490. package/dist/utility/watchPath.d.ts +29 -0
  491. package/dist/utility/watchPath.js +68 -0
  492. package/dist/utility/watchPath.js.map +1 -0
  493. package/dist/utility/watcherFallback.d.ts +41 -0
  494. package/dist/utility/watcherFallback.js +153 -0
  495. package/dist/utility/watcherFallback.js.map +1 -1
  496. package/dist/validation/configValidator.d.ts +12 -0
  497. package/dist/validation/configValidator.js +205 -75
  498. package/dist/validation/configValidator.js.map +1 -1
  499. package/dist/validation/installValidator.js +12 -0
  500. package/dist/validation/installValidator.js.map +1 -1
  501. package/dist/validation/validationWrapper.d.ts +11 -0
  502. package/dist/validation/validationWrapper.js +16 -3
  503. package/dist/validation/validationWrapper.js.map +1 -1
  504. package/index.ts +8 -0
  505. package/json/systemSchema.json +55 -0
  506. package/npm-shrinkwrap.json +286 -194
  507. package/package.json +15 -7
  508. package/resources/DESIGN.md +219 -52
  509. package/resources/DatabaseTransaction.ts +657 -52
  510. package/resources/LMDBTransaction.ts +46 -6
  511. package/resources/PrimaryRocksDatabase.ts +46 -7
  512. package/resources/RecordEncoder.ts +124 -9
  513. package/resources/RequestTarget.ts +2 -0
  514. package/resources/Resource.ts +114 -22
  515. package/resources/ResourceInterface.ts +31 -0
  516. package/resources/RocksIndexStore.ts +30 -9
  517. package/resources/RocksTransactionLogStore.ts +188 -51
  518. package/resources/Table.ts +1960 -301
  519. package/resources/analytics/write.ts +10 -3
  520. package/resources/auditStore.ts +647 -32
  521. package/resources/blob.ts +1029 -110
  522. package/resources/branchDatabase.ts +941 -0
  523. package/resources/crdt.ts +76 -12
  524. package/resources/dataLoader.ts +3 -4
  525. package/resources/databases.ts +1584 -320
  526. package/resources/defineTable.ts +18 -2
  527. package/resources/derivedIndexRegistry.ts +56 -0
  528. package/resources/derivedIndexRuntime.ts +2292 -0
  529. package/resources/graphql.ts +72 -17
  530. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +911 -48
  531. package/resources/indexes/hnswDerivedIndex.ts +531 -0
  532. package/resources/indexes/hnswPlaneBinding.ts +174 -0
  533. package/resources/longLivedTransactions.ts +360 -0
  534. package/resources/models/backendRegistry.ts +84 -2
  535. package/resources/models/bootstrap.ts +473 -28
  536. package/resources/nodeIdMapping.ts +50 -0
  537. package/resources/recordLock.ts +419 -0
  538. package/resources/recordLockCoordinator.ts +3043 -0
  539. package/resources/replayLogs.ts +152 -26
  540. package/resources/replayLogsGuards.ts +171 -8
  541. package/resources/replicatedApplyFailure.ts +77 -0
  542. package/resources/scheduler/scheduler.ts +4 -4
  543. package/resources/search.ts +288 -46
  544. package/resources/tracked.ts +73 -22
  545. package/resources/transactionBroadcast.ts +3 -3
  546. package/security/auth.ts +68 -29
  547. package/security/authn/oidc/claims.ts +72 -0
  548. package/security/authn/oidc/identityToken.ts +129 -0
  549. package/security/authn/oidc/jwks.ts +260 -0
  550. package/security/authn/oidc/providers/generic.ts +40 -0
  551. package/security/authn/oidc/providers/githubActions.ts +137 -0
  552. package/security/authn/oidc/providers/index.ts +52 -0
  553. package/security/authn/oidc/tokenExchange.ts +300 -0
  554. package/security/authn/oidc/trustPolicyOperations.ts +343 -0
  555. package/security/authn/oidc/types.ts +41 -0
  556. package/security/certificateVerification/index.ts +54 -13
  557. package/security/certificateVerification/trustedIssuers.ts +76 -0
  558. package/security/certificateVerification/types.ts +1 -0
  559. package/security/credentialProvenance.ts +47 -0
  560. package/security/credentialRejection.ts +22 -0
  561. package/security/deferredAuthentication.ts +71 -0
  562. package/security/impersonation.ts +117 -12
  563. package/security/jsLoader.ts +83 -18
  564. package/security/keys.ts +298 -72
  565. package/security/operationScope.ts +33 -0
  566. package/security/permissionsTranslator.js +23 -0
  567. package/security/tokenAuthentication.ts +233 -12
  568. package/security/user.ts +4 -3
  569. package/server/DESIGN.md +194 -16
  570. package/server/DurableSubscriptionsSession.ts +71 -11
  571. package/server/REST.ts +115 -4
  572. package/server/graphqlQuerying.ts +4 -0
  573. package/server/http.ts +133 -20
  574. package/server/itc/serverHandlers.js +8 -1
  575. package/server/jobs/jobProcess.ts +8 -2
  576. package/server/jobs/jobs.ts +4 -1
  577. package/server/liveSubscriptionAuth.ts +129 -46
  578. package/server/loadRootComponents.js +50 -8
  579. package/server/mqtt.ts +179 -38
  580. package/server/nodeName.ts +103 -21
  581. package/server/serverHelpers/Headers.ts +135 -0
  582. package/server/serverHelpers/NodeAdapterResponse.ts +221 -0
  583. package/server/serverHelpers/Request.ts +33 -131
  584. package/server/serverHelpers/contentTypes.ts +217 -36
  585. package/server/serverHelpers/deployValidationState.ts +24 -13
  586. package/server/serverHelpers/operationAuthorizationState.ts +34 -3
  587. package/server/serverHelpers/registeredOperations.ts +79 -22
  588. package/server/serverHelpers/requestSanitization.ts +15 -0
  589. package/server/serverHelpers/serverHandlers.js +6 -3
  590. package/server/serverHelpers/serverUtilities.ts +232 -40
  591. package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
  592. package/server/serverHelpers/uwsServer.ts +17 -2
  593. package/server/static.ts +23 -29
  594. package/server/storageReclamation.ts +15 -2
  595. package/server/threads/isolatedApplications.ts +157 -0
  596. package/server/threads/itc.js +11 -1
  597. package/server/threads/logRotationTransport.ts +40 -0
  598. package/server/threads/manageThreads.js +771 -66
  599. package/server/threads/socketRouter.ts +291 -30
  600. package/server/threads/threadHeapMemory.ts +26 -0
  601. package/server/threads/threadServer.js +73 -22
  602. package/sqlTranslator/index.ts +31 -8
  603. package/studio/web/assets/{Chat-4RrB5134.js → Chat-D3j-1yY1.js} +1 -1
  604. package/studio/web/assets/{FloatingChat-omlNMDcJ.js → FloatingChat-BxJGYcfB.js} +3 -3
  605. package/studio/web/assets/{apiToken-Bke3wvfZ.js → apiToken-CT55oWOe.js} +1 -1
  606. package/studio/web/assets/{applications-DvFDYJgK.js → applications-D9Ct9_vm.js} +1 -1
  607. package/studio/web/assets/{cssMode-C1vRa7zh.js → cssMode-DV8H7VwA.js} +1 -1
  608. package/studio/web/assets/{editor-3XRWEDWX.js → editor-uatc0unt.js} +1 -1
  609. package/studio/web/assets/{html-CTY5tdMr.js → html-Bm6D6paN.js} +1 -1
  610. package/studio/web/assets/{htmlMode-CG1vSD9t.js → htmlMode-CEn7tpLG.js} +1 -1
  611. package/studio/web/assets/{index-Dfpeofdu.js → index-BIXW6Pu4.js} +5 -5
  612. package/studio/web/assets/{index.lazy-B1VOIv-t.js → index.lazy-UI7L-Vrk.js} +1 -1
  613. package/studio/web/assets/{javascript-CJeJzGnI.js → javascript-CJ0G3AFZ.js} +1 -1
  614. package/studio/web/assets/{jsonMode-CYPBwM82.js → jsonMode-DQADAYEa.js} +1 -1
  615. package/studio/web/assets/{languageServices-IKH4GUHl.js → languageServices-CAQJXWcI.js} +1 -1
  616. package/studio/web/assets/{lspLanguageFeatures-BC8_gxKG.js → lspLanguageFeatures-CCQ8P5sY.js} +1 -1
  617. package/studio/web/assets/{notifications-BfKBpYcq.js → notifications-BbxTU6Aw.js} +1 -1
  618. package/studio/web/assets/{notifications-DFbArTfC.js → notifications-Cvb3P1lB.js} +1 -1
  619. package/studio/web/assets/{profile-Q4-T6c-S.js → profile-Yyb7gsvL.js} +1 -1
  620. package/studio/web/assets/{regions-CtkV0xje.js → regions-OgjGHlU5.js} +1 -1
  621. package/studio/web/assets/{register-1ZZuMsiA.js → register-6qwNEOY3.js} +2 -2
  622. package/studio/web/assets/{setComponentFile-ZWLcWv5X.js → setComponentFile-BilDMtgB.js} +1 -1
  623. package/studio/web/assets/{setup-DWprJyJy.js → setup-J6qJ7OIU.js} +2 -2
  624. package/studio/web/assets/{status--aNm8isn.js → status-0RWGcfyD.js} +1 -1
  625. package/studio/web/assets/{toggleHighContrast-Cq_lt3XD.js → toggleHighContrast-BIn-vErT.js} +1 -1
  626. package/studio/web/assets/{tsMode-pjgytARx.js → tsMode-DgUXku4d.js} +1 -1
  627. package/studio/web/assets/{typescript-Cdg0mqUh.js → typescript-C9orXcsM.js} +1 -1
  628. package/studio/web/assets/{useEntityRestURL-RZhaY8Rn.js → useEntityRestURL-BEoXXbUB.js} +1 -1
  629. package/studio/web/assets/{workers-BgoXIqQe.js → workers-JVzSDmgx.js} +1 -1
  630. package/studio/web/assets/{xml-BwSeDMiP.js → xml-Cq-S8S4X.js} +1 -1
  631. package/studio/web/assets/{yaml-DotCUG5l.js → yaml-sfoRdh1M.js} +1 -1
  632. package/studio/web/index.html +1 -1
  633. package/upgrade/directives/5-3-0.ts +132 -0
  634. package/upgrade/directives/directivesController.ts +2 -1
  635. package/utility/OperationFunctionCaller.ts +2 -1
  636. package/utility/common_utils.ts +30 -5
  637. package/utility/componentNames.ts +12 -0
  638. package/utility/environment/environmentManager.ts +3 -7
  639. package/utility/environment/systemInformation.ts +7 -0
  640. package/utility/errors/commonErrors.ts +4 -0
  641. package/utility/errors/hdbError.ts +57 -0
  642. package/utility/hdbTerms.ts +19 -0
  643. package/utility/logging/harper_logger.ts +278 -26
  644. package/utility/logging/logGenerationCoordinator.ts +196 -0
  645. package/utility/logging/logRotation.ts +367 -0
  646. package/utility/logging/logRotator.ts +213 -81
  647. package/utility/nodeIdentity.ts +45 -0
  648. package/utility/npmUtilities.ts +12 -8
  649. package/utility/operationPermissions.ts +18 -1
  650. package/utility/operation_authorization.ts +231 -42
  651. package/utility/watchPath.ts +63 -0
  652. package/utility/watcherFallback.ts +148 -0
  653. package/validation/configValidator.ts +215 -75
  654. package/validation/installValidator.ts +15 -0
  655. package/validation/validationWrapper.ts +18 -4
@@ -7,6 +7,7 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ComponentStatusRegistry = void 0;
10
+ const deployValidationState_ts_1 = require("../../server/serverHelpers/deployValidationState.js");
10
11
  const ComponentStatus_ts_1 = require("./ComponentStatus.js");
11
12
  const types_ts_1 = require("./types.js");
12
13
  const crossThread_ts_1 = require("./crossThread.js");
@@ -15,6 +16,39 @@ const errors_ts_1 = require("./errors.js");
15
16
  * Component Status Registry Class
16
17
  * Provides a centralized registry for managing component health status
17
18
  */
19
+ /**
20
+ * A status copy handed to a validation must share nothing mutable with the live entry. `Error` is reachable
21
+ * through the public `statusForComponent(...).get()` path, so candidate code could otherwise edit
22
+ * `message`, `cause` or a custom field on the serving component's own error object. Own enumerable
23
+ * properties are carried across; `cause` is flattened to a message, because an error graph of unknown depth
24
+ * is not worth cloning to hand a throwaway load its own read.
25
+ */
26
+ function detachError(error) {
27
+ if (!(error instanceof Error))
28
+ return error;
29
+ const detached = new Error(error.message);
30
+ detached.name = error.name;
31
+ detached.stack = error.stack;
32
+ for (const [key, value] of Object.entries(error)) {
33
+ if (key === 'cause')
34
+ continue;
35
+ // Detached too where it can be: copying an object property by reference would leave the candidate a
36
+ // mutable handle into the live error after all. Anything unclonable (a function, a class instance) is
37
+ // replaced by its string form rather than shared.
38
+ let detachedValue;
39
+ try {
40
+ detachedValue = structuredClone(value);
41
+ }
42
+ catch {
43
+ detachedValue = typeof value === 'object' && value !== null ? String(value) : value;
44
+ }
45
+ detached[key] = detachedValue;
46
+ }
47
+ if (error.cause !== undefined) {
48
+ detached.cause = error.cause instanceof Error ? `${error.cause.name}: ${error.cause.message}` : error.cause;
49
+ }
50
+ return detached;
51
+ }
18
52
  class ComponentStatusRegistry {
19
53
  statusMap = new Map();
20
54
  /**
@@ -35,12 +69,41 @@ class ComponentStatusRegistry {
35
69
  if (!Object.values(types_ts_1.COMPONENT_STATUS_LEVELS).includes(status)) {
36
70
  throw new errors_ts_1.ComponentStatusOperationError(componentName, 'setStatus', `Invalid status level: ${status}. Must be one of: ${Object.values(types_ts_1.COMPONENT_STATUS_LEVELS).join(', ')}`);
37
71
  }
72
+ // A deploy's pre-flight validation loads the CANDIDATE's code under the real component's name, so its
73
+ // writes would land on the live component. They go to the validation's own throwaway map instead —
74
+ // which is why this cannot simply be reverted afterwards: the live component keeps serving through
75
+ // that window, and `statusForComponent()` is a public API its own code may call at any time, so
76
+ // reverting would silently discard a genuine report from it.
77
+ const sink = (0, deployValidationState_ts_1.deployValidationStatusSink)();
78
+ if (sink) {
79
+ sink.set(componentName, new ComponentStatus_ts_1.ComponentStatus(status, message, error));
80
+ return;
81
+ }
38
82
  this.statusMap.set(componentName, new ComponentStatus_ts_1.ComponentStatus(status, message, error));
39
83
  }
40
84
  /**
41
85
  * Get the current status of a component
42
86
  */
43
87
  getStatus(componentName) {
88
+ // Inside a validation the candidate reads its OWN writes, and never the live object: the returned
89
+ // `ComponentStatus` is mutable, so handing back the live one would let candidate code edit the
90
+ // serving component's status in place and bypass the diversion entirely. A component the candidate
91
+ // has not written yet is copied into the sink on first read for the same reason.
92
+ const sink = (0, deployValidationState_ts_1.deployValidationStatusSink)();
93
+ if (sink) {
94
+ const diverted = sink.get(componentName);
95
+ if (diverted)
96
+ return diverted;
97
+ const live = this.statusMap.get(componentName);
98
+ if (!live)
99
+ return undefined;
100
+ const copy = new ComponentStatus_ts_1.ComponentStatus(live.status, live.message, detachError(live.error));
101
+ // A new Date, not the live one: `Date` is mutable, so sharing it would let candidate code reach
102
+ // back into the serving component's status through the copy.
103
+ copy.lastChecked = new Date(live.lastChecked);
104
+ sink.set(componentName, copy);
105
+ return copy;
106
+ }
44
107
  return this.statusMap.get(componentName);
45
108
  }
46
109
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentStatusRegistry.js","sourceRoot":"","sources":["../../../components/status/ComponentStatusRegistry.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,6DAAuD;AACvD,yCAKoB;AACpB,qDAA0E;AAC1E,2CAA4D;AAO5D;;;GAGG;AACH,MAAa,uBAAuB;IAC3B,SAAS,GAAuB,IAAI,GAAG,EAAE,CAAC;IAElD;;;OAGG;IACI,KAAK;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,SAAS,CACf,aAAqB,EACrB,MAA4B,EAC5B,OAAgB,EAChB,KAAsB;QAEtB,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,yCAA6B,CACtC,MAAM,CAAC,aAAa,CAAC,EACrB,WAAW,EACX,2CAA2C,CAC3C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kCAAuB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,yCAA6B,CACtC,aAAa,EACb,WAAW,EACX,yBAAyB,MAAM,qBAAqB,MAAM,CAAC,MAAM,CAAC,kCAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvG,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,oCAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,aAAqB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,cAAc;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,aAAqB,EAAE,OAAgB;QAC3D,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,aAAqB,EAAE,KAAqB,EAAE,OAAgB;QAChF,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,aAAqB,EAAE,OAAe;QAC1D,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IAEH;;OAEG;IACI,iBAAiB,CAAC,aAAqB,EAAE,OAAgB;QAC/D,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAuB,CAAC,OAAO,EAAE,OAAO,IAAI,sBAAsB,CAAC,CAAC;IACnG,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,aAAqB,EAAE,OAAgB;QACxD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAuB,CAAC,OAAO,EAAE,OAAO,IAAI,+BAA+B,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,aAAqB,EAAE,KAAqB,EAAE,OAAgB;QAC/E,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,WAAiC;QAC7D,MAAM,MAAM,GAAqD,EAAE,CAAC;QACpE,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;OAEG;IACI,gBAAgB;QACtB,MAAM,OAAO,GAAyC;YACrD,CAAC,kCAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,CAAC,kCAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,CAAC,kCAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,CAAC,kCAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,CAAC,kCAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;SACpC,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAC9C,QAAiC;QAEjC,MAAM,WAAW,GAAG,MAAM,qCAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjE,OAAO,iCAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,sBAAsB,CAClC,aAAqB,EACrB,oBAA6D;QAE7D,6DAA6D;QAC7D,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3B,oBAAoB,GAAG,MAAM,uBAAuB,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACxF,CAAC;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,aAAa,GAAG,GAAG,CAAC;QAE5C,4BAA4B;QAC5B,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,UAAU,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,6BAA6B;QAC7B,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAC7D,IAAI,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3C,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;YACtD,CAAC;QACF,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,yBAAyB;YACzB,OAAO;gBACN,MAAM,EAAE,kCAAuB,CAAC,OAAO;gBACvC,OAAO,EAAE,4DAA4D;gBACrE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aAC5B,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,kCAAuB,CAAC,KAAK,CAAC,CAAC;QACtF,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,kCAAuB,CAAC,OAAO,CAAC,CAAC;QAEzF,MAAM,aAAa,GAAG,SAAS;YAC9B,CAAC,CAAC,kCAAuB,CAAC,KAAK;YAC/B,CAAC,CAAC,UAAU;gBACX,CAAC,CAAC,kCAAuB,CAAC,OAAO;gBACjC,CAAC,CAAC,kCAAuB,CAAC,OAAO,CAAC;QAEpC,0CAA0C;QAC1C,IAAI,cAAc,GAAG,oCAAoC,CAAC;QAC1D,MAAM,OAAO,GAAuE,EAAE,CAAC;QAEvF,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,kCAAuB,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,kCAAuB,CAAC,OAAO,CACjG,CAAC;YACF,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnG,gCAAgC;YAChC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBAClC,IAAI,MAAM,CAAC,MAAM,KAAK,kCAAuB,CAAC,OAAO,EAAE,CAAC;oBACvD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;wBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,aAAa;qBAC7B,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,cAAc;YACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YACnD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;SAC3D,CAAC;IACH,CAAC;CACD;AAhOD,0DAgOC"}
1
+ {"version":3,"file":"ComponentStatusRegistry.js","sourceRoot":"","sources":["../../../components/status/ComponentStatusRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
1
  import { EventEmitter } from 'node:events';
2
+ /**
3
+ * The isolate-wide watcher for the root config file. Consumers (logging, models) subscribe to this
4
+ * one instance instead of each opening their own native watcher — per-worker duplicates double the
5
+ * inotify/FD footprint and the synchronous read+parse work on every config write.
6
+ */
7
+ export declare function getSharedRootConfigWatcher(): RootConfigWatcher;
2
8
  export declare class RootConfigWatcher extends EventEmitter {
3
9
  #private;
4
10
  ready: Promise<any[]>;
5
- constructor();
11
+ constructor(configFilePath?: string);
6
12
  _simulateWatcherErrorForTests(error: unknown): void;
7
13
  get _usingPollingForTests(): boolean;
8
14
  get _openCountForTests(): number;
15
+ get _readCountForTests(): number;
16
+ get _armedForTests(): boolean;
9
17
  handleError(error: unknown): void;
10
18
  handleChange(): void;
11
19
  close(): this;
@@ -1,41 +1,115 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.RootConfigWatcher = void 0;
7
- const chokidar_1 = __importDefault(require("chokidar"));
8
- const promises_1 = require("node:fs/promises");
4
+ exports.getSharedRootConfigWatcher = getSharedRootConfigWatcher;
9
5
  const configUtils_ts_1 = require("./configUtils.js");
6
+ const readConfigFileSync_ts_1 = require("./readConfigFileSync.js");
10
7
  const node_events_1 = require("node:events");
11
- const yaml_1 = require("yaml");
8
+ const parseConfigFile_ts_1 = require("./parseConfigFile.js");
12
9
  const watcherFallback_ts_1 = require("../utility/watcherFallback.js");
10
+ const watchPath_ts_1 = require("../utility/watchPath.js");
11
+ const harper_logger_ts_1 = require("../utility/logging/harper_logger.js");
12
+ const configReadRetry_ts_1 = require("./configReadRetry.js");
13
+ const watcherArming_ts_1 = require("./watcherArming.js");
14
+ function isMissingFile(error) {
15
+ return !!error && typeof error === 'object' && error.code === 'ENOENT';
16
+ }
17
+ // `harper_logger` imports this module at its own bottom to break their cycle, so a tagged logger
18
+ // built at module scope would run `loggerWithTag()` before `mainLogger` is initialized.
19
+ let taggedLogger;
20
+ function logger() {
21
+ return (taggedLogger ??= (0, harper_logger_ts_1.loggerWithTag)('config-watcher'));
22
+ }
23
+ let sharedWatcher;
24
+ /**
25
+ * The isolate-wide watcher for the root config file. Consumers (logging, models) subscribe to this
26
+ * one instance instead of each opening their own native watcher — per-worker duplicates double the
27
+ * inotify/FD footprint and the synchronous read+parse work on every config write.
28
+ */
29
+ function getSharedRootConfigWatcher() {
30
+ return (sharedWatcher ??= new RootConfigWatcher());
31
+ }
13
32
  class RootConfigWatcher extends node_events_1.EventEmitter {
14
33
  #configFilePath;
34
+ #watchPath;
15
35
  #watcher;
16
36
  #config;
17
37
  #usingPolling;
18
38
  #closed;
19
39
  #openCount = 0;
40
+ #readCount = 0;
41
+ #readRetry = new configReadRetry_ts_1.ConfigReadRetry();
42
+ #armGate = new watcherArming_ts_1.ArmGate();
43
+ // The gate above is chokidar's scan finishing; this is the barrier's gate. A terminal outcome
44
+ // opens it without claiming the watch is armed, so the arming re-read still runs afterwards.
45
+ #barrierOpen = false;
46
+ #configLoaded = false;
47
+ #readyStaged = false;
48
+ #readyEmitted = false;
20
49
  ready;
21
- constructor() {
50
+ constructor(configFilePath = (0, configUtils_ts_1.getConfigFilePath)()) {
22
51
  super();
23
- this.#configFilePath = (0, configUtils_ts_1.getConfigFilePath)();
24
- this.#usingPolling = false;
52
+ this.#configFilePath = configFilePath;
53
+ const watchTarget = (0, watchPath_ts_1.resolveWatchTarget)(this.#configFilePath);
54
+ this.#watchPath = watchTarget.path;
55
+ this.#usingPolling = watchTarget.mustPoll;
25
56
  this.#closed = false;
26
57
  this.ready = (0, node_events_1.once)(this, 'ready');
27
58
  this.#openWatcher();
28
59
  }
29
60
  #openWatcher() {
30
- this.#openCount++;
31
- this.#watcher = chokidar_1.default
32
- .watch(this.#configFilePath, {
61
+ const generation = ++this.#openCount;
62
+ this.#watcher = (0, watcherFallback_ts_1.guardedWatch)(this.#watchPath, {
33
63
  persistent: false,
34
64
  ...(this.#usingPolling ? watcherFallback_ts_1.POLLING_FALLBACK_OPTIONS : {}),
35
65
  })
36
66
  .on('add', this.handleChange.bind(this))
37
67
  .on('change', this.handleChange.bind(this))
38
- .on('error', this.handleError.bind(this));
68
+ .on('error', this.handleError.bind(this))
69
+ // Generation-bound: `#armGate.reset()` runs before the failed watcher is closed, so a
70
+ // `ready` still queued on it would arm the gate on the replacement's behalf and the
71
+ // replacement's own `ready` would then be a no-op — leaving its scan window unre-read.
72
+ .on('ready', () => this.#handleArmed(generation));
73
+ }
74
+ #handleArmed(generation) {
75
+ if (this.#closed || generation !== this.#openCount)
76
+ return;
77
+ this.#armGate.arm(() => this.#markArmed());
78
+ }
79
+ #markArmed() {
80
+ this.#barrierOpen = true;
81
+ // A write that landed while the watch was unarmed was never reported, and a scan that found
82
+ // no file at all reported nothing either, so arming always re-reads rather than publishing
83
+ // what an earlier read staged — or, with no file, staying pending forever.
84
+ this.#read(true);
85
+ // A read that armed the ladder settles `ready` itself, with the newer config.
86
+ if (!this.#readRetry.pending)
87
+ this.#emitReady();
88
+ }
89
+ #emitReady() {
90
+ if (this.#readyEmitted || !this.#barrierOpen || !this.#readyStaged || this.#closed)
91
+ return;
92
+ this.#readyEmitted = true;
93
+ try {
94
+ this.emit('ready', this.#config);
95
+ }
96
+ catch (error) {
97
+ logger().warn('A Harper configuration listener failed', (0, harper_logger_ts_1.errorForLog)(error));
98
+ }
99
+ }
100
+ // `harper_logger.start()` awaits `ready` with no timeout, so every terminal outcome has to
101
+ // settle the barrier. A failed read discards an earlier staged value, but a watcher error keeps
102
+ // it because no later read superseded it. No config is represented by `undefined`, not `{}`:
103
+ // an empty object is a configuration that turns logging off.
104
+ #stageBootFallback(discardStaged = true) {
105
+ if (this.#readyEmitted)
106
+ return;
107
+ if (discardStaged) {
108
+ this.#config = undefined;
109
+ this.#configLoaded = false;
110
+ }
111
+ this.#readyStaged = true;
112
+ this.#emitReady();
39
113
  }
40
114
  // Test-only: simulate the underlying chokidar watcher emitting an error.
41
115
  // Exposed so the polling-fallback path can be exercised without triggering a
@@ -43,15 +117,27 @@ class RootConfigWatcher extends node_events_1.EventEmitter {
43
117
  _simulateWatcherErrorForTests(error) {
44
118
  this.handleError(error);
45
119
  }
46
- // Test-only: whether the watcher has fallen back to polling.
47
120
  get _usingPollingForTests() {
48
121
  return this.#usingPolling;
49
122
  }
50
- // Test-only: number of times the underlying watcher has been (re)opened.
51
123
  get _openCountForTests() {
52
124
  return this.#openCount;
53
125
  }
126
+ // Distinguishes a ladder rung from a watcher event.
127
+ get _readCountForTests() {
128
+ return this.#readCount;
129
+ }
130
+ get _armedForTests() {
131
+ return this.#armGate.armed;
132
+ }
54
133
  handleError(error) {
134
+ // A queued chokidar error can land after close(), which has dropped every listener.
135
+ if (this.#closed)
136
+ return;
137
+ // See EntryHandler.#handleWatcherError: a lost native watch handle is benign
138
+ // and must not be surfaced to consumers as a config-watch failure.
139
+ if ((0, watcherFallback_ts_1.claimLostNativeWatchError)(error))
140
+ return;
55
141
  if ((0, watcherFallback_ts_1.isWatcherExhaustionError)(error)) {
56
142
  // Swallow every exhaustion error — chokidar can emit several before the
57
143
  // failed native watcher closes, and we don't want a flurry of ENOSPC to
@@ -59,44 +145,149 @@ class RootConfigWatcher extends node_events_1.EventEmitter {
59
145
  if (!this.#usingPolling) {
60
146
  (0, watcherFallback_ts_1.warnWatcherFallback)(this.#configFilePath);
61
147
  this.#usingPolling = true;
62
- // Guard against reopen-after-close: the caller may have invoked
63
- // close() while this teardown was in flight. The .catch is required
64
- // because `finally` would re-raise a teardown rejection as an
65
- // unhandled one.
66
- this.#watcher
67
- .close()
148
+ // The generation that just failed no longer speaks for the watch; the replacement
149
+ // arms on its own scan, and re-reads then as the first one did.
150
+ this.#armGate.reset();
151
+ // Start close() from a microtask, not directly here, so a synchronous throw
152
+ // can't escape this 'error' listener as an uncaught exception.
153
+ Promise.resolve()
154
+ .then(() => this.#watcher.close())
68
155
  .catch(() => {
69
156
  // Teardown errors on an already-failed watcher are not actionable.
70
157
  })
71
- .finally(() => {
158
+ .then(() => {
72
159
  if (!this.#closed)
73
160
  this.#openWatcher();
74
- });
161
+ })
162
+ .catch((error) => logger().warn(`Could not reopen the ${this.#configFilePath} watch on polling`, (0, harper_logger_ts_1.errorForLog)(error)));
163
+ }
164
+ else {
165
+ // Already polling — the replacement failed too, or the watch was polling from
166
+ // construction (`mustPoll`) and never had a fallback to take. Either way the branch
167
+ // above reopens only once, so this is the watch's terminal outcome and the barrier
168
+ // has to settle or `harper_logger.start()` awaits it forever.
169
+ this.#barrierOpen = true;
170
+ this.#stageBootFallback(false);
75
171
  }
76
172
  return;
77
173
  }
78
- this.emit('error', error);
174
+ // chokidar may never reach its own `ready` after a scan error, and nothing else would
175
+ // settle the barrier: the error is this read's terminal outcome. The scan is not over
176
+ // though, so the arm gate stays closed and a later `ready` still takes the arming re-read.
177
+ this.#barrierOpen = true;
178
+ this.#stageBootFallback(false);
179
+ // Settling the barrier removed the `error` listener `once(this, 'ready')` attached, and an
180
+ // emit with none left throws the error back into chokidar's dispatch — as does a consumer
181
+ // that throws from its own handler.
182
+ if (this.listenerCount('error') === 0) {
183
+ logger().warn(`The Harper configuration watcher at ${this.#configFilePath} failed`, (0, harper_logger_ts_1.errorForLog)(error));
184
+ return;
185
+ }
186
+ try {
187
+ this.emit('error', error);
188
+ }
189
+ catch (listenerError) {
190
+ logger().warn('A Harper configuration error listener failed', (0, harper_logger_ts_1.errorForLog)(listenerError));
191
+ }
79
192
  }
80
193
  handleChange() {
81
- (0, promises_1.readFile)(this.#configFilePath, 'utf-8')
82
- .then((data) => {
83
- if (!data)
194
+ this.#read(true);
195
+ }
196
+ // `harper_logger.start()` awaits `ready` with no timeout and the ladder may be the only thing
197
+ // left to settle it, so until then its timer keeps the thread alive rather than letting it
198
+ // drain and exit mid-boot.
199
+ #schedule() {
200
+ return this.#readRetry.schedule(() => this.#read(false), !this.#readyEmitted);
201
+ }
202
+ #read(waitForLock) {
203
+ // A queued chokidar callback can still land after close(), which has already discarded the
204
+ // config and dropped every listener.
205
+ if (this.#closed)
206
+ return;
207
+ this.#readCount++;
208
+ let data;
209
+ try {
210
+ data = (0, readConfigFileSync_ts_1.readConfigFileSync)(this.#configFilePath, waitForLock);
211
+ }
212
+ catch (error) {
213
+ // A missing file is not a lock — `readConfigFileSync` does not retry it either, and
214
+ // `OptionsWatcher` settles it immediately as the install window. Taking the ladder here
215
+ // would disagree with that and cost `harper_logger.start()` the whole budget on every
216
+ // boot that has no config file (an env-var-only deployment, an empty mounted rootPath).
217
+ if (!isMissingFile(error) && this.#schedule())
84
218
  return;
85
- const config = (0, yaml_1.parse)(data);
86
- if (!this.#config) {
87
- this.#config = config;
88
- this.emit('ready', this.#config);
219
+ // A ladder armed by an earlier empty read is spent by the time a rung lands on ENOENT,
220
+ // and every other terminal path clears its deadline.
221
+ this.#readRetry.reset();
222
+ logger().warn(`Unable to read the Harper configuration file at ${this.#configFilePath}` +
223
+ (this.#configLoaded ? ', continuing with the previously loaded configuration' : '; none has been loaded yet'), (0, harper_logger_ts_1.errorForLog)(error));
224
+ this.#stageBootFallback();
225
+ return;
226
+ }
227
+ // See DESIGN.md, "An empty read is a writer mid-write, not an empty config".
228
+ if (!data) {
229
+ if (this.#schedule())
89
230
  return;
90
- }
231
+ logger().warn(`The Harper configuration file at ${this.#configFilePath} is empty`);
232
+ this.#stageBootFallback();
233
+ return;
234
+ }
235
+ let config;
236
+ try {
237
+ config = (0, parseConfigFile_ts_1.parseConfigFile)(data, this.#configFilePath);
238
+ }
239
+ catch (error) {
240
+ // A read taken mid-write is untrustworthy, not only an empty one: the writer's first
241
+ // `write(2)` can land a prefix of the document, and the event carrying the rest is the one
242
+ // chokidar throttles away. So an unparseable read rides out the same ladder as an empty
243
+ // one, and only a read that parses releases it.
244
+ if (this.#schedule())
245
+ return;
246
+ logger().warn(error.message);
247
+ this.#stageBootFallback();
248
+ return;
249
+ }
250
+ // The third shape a mid-write read takes, and the only one that parses: a truncated
251
+ // document, a lone `\n`, a file that is nothing but comments all yield `null` rather than
252
+ // throwing, and adopting one hands every consumer a config with nothing in it. Same ladder
253
+ // as the two above, and past it the file is empty rather than mid-write.
254
+ if (!config || typeof config !== 'object') {
255
+ if (this.#schedule())
256
+ return;
257
+ logger().warn(`The Harper configuration file at ${this.#configFilePath} is empty`);
258
+ this.#stageBootFallback();
259
+ return;
260
+ }
261
+ this.#readRetry.reset();
262
+ // Before `ready` goes out there is no prior state to have changed *since*.
263
+ this.#configLoaded = true;
264
+ this.#readyStaged = true;
265
+ if (!this.#readyEmitted) {
266
+ this.#config = config;
267
+ this.#emitReady();
268
+ return;
269
+ }
270
+ try {
91
271
  this.emit('change', (this.#config = config));
92
- })
93
- .catch((_error) => {
94
- // if yaml parse error ignore?
95
- });
272
+ }
273
+ catch (error) {
274
+ logger().warn('A Harper configuration change listener failed', (0, harper_logger_ts_1.errorForLog)(error));
275
+ }
96
276
  }
97
277
  close() {
278
+ // Closing is a terminal outcome too: leaving `ready` pending would hang anything still
279
+ // awaiting the barrier. Through `#emitReady`, so a listener that throws cannot skip the
280
+ // teardown below it and leave the watcher and its arm timer running.
281
+ this.#barrierOpen = true;
282
+ this.#readyStaged = true;
283
+ this.#emitReady();
98
284
  this.#closed = true;
99
- this.#watcher.close();
285
+ this.#readRetry.cancel();
286
+ this.#armGate.cancel();
287
+ // chokidar's close() is a promise; an unhandled teardown rejection would reach Node as one,
288
+ // on the path whose whole job is to stop caring about this watcher. Same shape as the
289
+ // exhaustion-recovery close above, and as `OptionsWatcher.close`.
290
+ Promise.resolve(this.#watcher.close()).catch(() => { });
100
291
  this.#config = undefined;
101
292
  this.emit('close');
102
293
  this.removeAllListeners();
@@ -1 +1 @@
1
- {"version":3,"file":"RootConfigWatcher.js","sourceRoot":"","sources":["../../config/RootConfigWatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RootConfigWatcher.js","sourceRoot":"","sources":["../../config/RootConfigWatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function _setRetryBudgetForTests(ms?: number): void;
2
+ export declare class ConfigReadRetry {
3
+ #private;
4
+ schedule(retry: () => void, holdEventLoop?: boolean): boolean;
5
+ get pending(): boolean;
6
+ reset(): void;
7
+ cancel(): void;
8
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigReadRetry = void 0;
4
+ exports._setRetryBudgetForTests = _setRetryBudgetForTests;
5
+ // Why a lock that outlives the reader's budget is retried from a timer, and why both the bound and
6
+ // the backoff are wall clock rather than an attempt count: see "Root config watchers must read
7
+ // synchronously" in DESIGN.md (harper#2191).
8
+ const RETRY_BUDGET_MS = 3_100;
9
+ const INITIAL_DELAY_MS = 100;
10
+ const MAX_DELAY_MS = 1_600;
11
+ let retryBudgetMs = RETRY_BUDGET_MS;
12
+ // Test-only, the read-side twin of `atomicWriteFile`'s `retryBudgetMs` option. A case that only
13
+ // needs the ladder *spent* has no way to get there but wall clock, so without this each one sits
14
+ // out the shipped 3.1 s; a dozen of them cost the unit job 40 s. Called with no argument it
15
+ // restores the shipped value, and `configReadRetry.test.js` still spends that value in full, so
16
+ // shortening it elsewhere cannot hide a change to what ships.
17
+ function _setRetryBudgetForTests(ms = RETRY_BUDGET_MS) {
18
+ retryBudgetMs = ms;
19
+ }
20
+ class ConfigReadRetry {
21
+ #timer;
22
+ #deadline;
23
+ // Captured with the deadline: the backoff is a fraction of the budget the deadline came from,
24
+ // so reading the module value again mid-ladder would mis-scale it if a test had changed it.
25
+ #budgetMs = retryBudgetMs;
26
+ // `holdEventLoop` is for a caller whose boot barrier this ladder is the only thing left to
27
+ // settle: an unref'd timer would let the thread drain and exit mid-boot instead.
28
+ schedule(retry, holdEventLoop = false) {
29
+ this.cancel();
30
+ const now = performance.now();
31
+ if (this.#deadline === undefined) {
32
+ this.#budgetMs = retryBudgetMs;
33
+ this.#deadline = now + this.#budgetMs;
34
+ }
35
+ const remainingMs = this.#deadline - now;
36
+ if (remainingMs <= 0) {
37
+ this.reset();
38
+ return false;
39
+ }
40
+ const elapsedMs = this.#budgetMs - remainingMs;
41
+ const delayMs = Math.min(Math.max(elapsedMs, INITIAL_DELAY_MS), MAX_DELAY_MS, remainingMs);
42
+ this.#timer = setTimeout(retry, delayMs);
43
+ if (!holdEventLoop)
44
+ this.#timer.unref();
45
+ return true;
46
+ }
47
+ get pending() {
48
+ return this.#timer !== undefined;
49
+ }
50
+ reset() {
51
+ this.cancel();
52
+ this.#deadline = undefined;
53
+ }
54
+ cancel() {
55
+ if (this.#timer) {
56
+ clearTimeout(this.#timer);
57
+ this.#timer = undefined;
58
+ }
59
+ }
60
+ }
61
+ exports.ConfigReadRetry = ConfigReadRetry;
62
+ //# sourceMappingURL=configReadRetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configReadRetry.js","sourceRoot":"","sources":["../../config/configReadRetry.ts"],"names":[],"mappings":";;;AAcA,0DAEC;AAhBD,mGAAmG;AACnG,+FAA+F;AAC/F,6CAA6C;AAC7C,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,YAAY,GAAG,KAAK,CAAC;AAE3B,IAAI,aAAa,GAAG,eAAe,CAAC;AAEpC,gGAAgG;AAChG,iGAAiG;AACjG,4FAA4F;AAC5F,gGAAgG;AAChG,8DAA8D;AAC9D,SAAgB,uBAAuB,CAAC,KAAa,eAAe;IACnE,aAAa,GAAG,EAAE,CAAC;AACpB,CAAC;AAED,MAAa,eAAe;IAC3B,MAAM,CAAkB;IACxB,SAAS,CAAU;IACnB,8FAA8F;IAC9F,4FAA4F;IAC5F,SAAS,GAAW,aAAa,CAAC;IAElC,2FAA2F;IAC3F,iFAAiF;IACjF,QAAQ,CAAC,KAAiB,EAAE,gBAAyB,KAAK;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QACvC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACzC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC3F,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IAClC,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM;QACL,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACzB,CAAC;IACF,CAAC;CACD;AA3CD,0CA2CC"}
@@ -5,11 +5,19 @@ export declare function resolvePath(relativePath: string): string;
5
5
  * @param param
6
6
  */
7
7
  export declare function getConfigPath(param: string): any;
8
- export declare function atomicWriteFile(filePath: any, content: any, { maxRetries, initialDelayMs, maxDelayMs, }?: {
8
+ type RenameRetryOptions = {
9
+ retryBudgetMs?: number;
9
10
  maxRetries?: number;
10
11
  initialDelayMs?: number;
11
12
  maxDelayMs?: number;
12
- }): void;
13
+ };
14
+ type AtomicWriteOptions = RenameRetryOptions & {
15
+ skipIfUnchanged?: boolean;
16
+ };
17
+ export declare function isStorageExhausted(error: any): boolean;
18
+ export declare function persistConfigDuringBoot(artifactPath: string, write: () => void): boolean;
19
+ export declare function atomicWriteFile(filePath: any, content: any, { retryBudgetMs, maxRetries, initialDelayMs, maxDelayMs, skipIfUnchanged, }?: AtomicWriteOptions): boolean;
20
+ export declare function renameWithRetry(fromPath: any, toPath: any, { retryBudgetMs, maxRetries, initialDelayMs, maxDelayMs, }?: RenameRetryOptions): void;
13
21
  /**
14
22
  * Builds the Harper config file using user inputs and default values from defaultConfig.yaml
15
23
  * @param args - any args that the user provided.
@@ -129,3 +137,4 @@ export declare function addConfig(topLevelElement: any, values: any): Promise<vo
129
137
  export declare function deleteConfigFromFile(param: string): void;
130
138
  export declare function getConfigObj(): any;
131
139
  export declare function getFlatConfigObj(): any;
140
+ export {};