@researchdatabox/redbox-core 5.1.0-beta.12573 → 5.1.0-beta.13939

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 (385) hide show
  1. package/browser/redoc-library-loader.cjs +20 -0
  2. package/browser/redoc-standalone.js +143 -0
  3. package/dist/CoreBase.d.ts +43 -0
  4. package/dist/CoreBase.d.ts.map +1 -0
  5. package/dist/CoreBase.js +101 -0
  6. package/dist/CoreController.d.ts +23 -31
  7. package/dist/CoreController.d.ts.map +1 -1
  8. package/dist/CoreController.js +142 -131
  9. package/dist/CoreService.d.ts +13 -33
  10. package/dist/CoreService.d.ts.map +1 -1
  11. package/dist/CoreService.js +69 -95
  12. package/dist/HarvestRunService.d.ts +9 -1
  13. package/dist/HarvestRunService.d.ts.map +1 -1
  14. package/dist/HarvestRunService.js +1 -1
  15. package/dist/RecordRouteForm.d.ts +49 -0
  16. package/dist/RecordRouteForm.d.ts.map +1 -0
  17. package/dist/RecordRouteForm.js +188 -0
  18. package/dist/RecordSaveResponse.d.ts +4 -0
  19. package/dist/RecordSaveResponse.d.ts.map +1 -1
  20. package/dist/RecordSaveResponse.js +3 -2
  21. package/dist/action-execution/executor.d.ts +1 -1
  22. package/dist/action-execution/executor.d.ts.map +1 -1
  23. package/dist/action-execution/executor.js +19 -20
  24. package/dist/action-execution/legacy-result.d.ts +1 -1
  25. package/dist/action-execution/legacy-result.d.ts.map +1 -1
  26. package/dist/action-execution/legacy-result.js +43 -10
  27. package/dist/action-execution/types.d.ts +3 -3
  28. package/dist/action-execution/types.d.ts.map +1 -1
  29. package/dist/api-routes/groups/harvest-runs.d.ts +1 -0
  30. package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -1
  31. package/dist/api-routes/groups/harvest-runs.js +24 -3
  32. package/dist/api-routes/groups/records.d.ts.map +1 -1
  33. package/dist/api-routes/groups/records.js +30 -21
  34. package/dist/api-routes/groups/reports.d.ts.map +1 -1
  35. package/dist/api-routes/groups/reports.js +3 -2
  36. package/dist/api-routes/helpers.d.ts +1 -1
  37. package/dist/api-routes/helpers.d.ts.map +1 -1
  38. package/dist/api-routes/helpers.js +10 -6
  39. package/dist/api-routes/openapi.d.ts.map +1 -1
  40. package/dist/api-routes/openapi.js +15 -1
  41. package/dist/api-routes/request-extraction.js +2 -2
  42. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  43. package/dist/api-routes/schemas/common.js +7 -2
  44. package/dist/api-routes/schemas/responses.d.ts +38 -12
  45. package/dist/api-routes/schemas/responses.d.ts.map +1 -1
  46. package/dist/api-routes/schemas/responses.js +11 -1
  47. package/dist/bootstrap.d.ts.map +1 -1
  48. package/dist/bootstrap.js +13 -3
  49. package/dist/config/agendaQueue.config.d.ts +5 -0
  50. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  51. package/dist/config/agendaQueue.config.js +29 -2
  52. package/dist/config/appConfigSecrets.config.d.ts +14 -0
  53. package/dist/config/appConfigSecrets.config.d.ts.map +1 -0
  54. package/dist/config/appConfigSecrets.config.js +8 -0
  55. package/dist/config/brandingConfigurationDefaults.config.d.ts +16 -3
  56. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  57. package/dist/config/brandingConfigurationDefaults.config.js +1 -1
  58. package/dist/config/dompurify.config.d.ts.map +1 -1
  59. package/dist/config/dompurify.config.js +3 -2
  60. package/dist/config/harvestRuns.config.d.ts +7 -0
  61. package/dist/config/harvestRuns.config.d.ts.map +1 -1
  62. package/dist/config/harvestRuns.config.js +2 -1
  63. package/dist/config/http.config.d.ts +3 -2
  64. package/dist/config/http.config.d.ts.map +1 -1
  65. package/dist/config/http.config.js +108 -12
  66. package/dist/config/i18n.config.d.ts +3 -0
  67. package/dist/config/i18n.config.d.ts.map +1 -1
  68. package/dist/config/i18n.config.js +1 -1
  69. package/dist/config/index.d.ts +4 -0
  70. package/dist/config/index.d.ts.map +1 -1
  71. package/dist/config/index.js +4 -1
  72. package/dist/config/log.config.d.ts +33 -5
  73. package/dist/config/log.config.d.ts.map +1 -1
  74. package/dist/config/log.config.js +58 -54
  75. package/dist/config/record.config.d.ts +17 -0
  76. package/dist/config/record.config.d.ts.map +1 -1
  77. package/dist/config/record.config.js +7 -1
  78. package/dist/config/routes.config.d.ts.map +1 -1
  79. package/dist/config/routes.config.js +11 -2
  80. package/dist/config/session.config.d.ts +2 -2
  81. package/dist/config/session.config.d.ts.map +1 -1
  82. package/dist/config/solr.config.d.ts +8 -0
  83. package/dist/config/solr.config.d.ts.map +1 -1
  84. package/dist/config/solr.config.js +15 -2
  85. package/dist/config/storage.config.d.ts.map +1 -1
  86. package/dist/config/storage.config.js +9 -1
  87. package/dist/config/vocab.config.d.ts +1 -0
  88. package/dist/config/vocab.config.d.ts.map +1 -1
  89. package/dist/config/vocab.config.js +3 -3
  90. package/dist/config/webpack.config.d.ts.map +1 -1
  91. package/dist/config/webpack.config.js +23 -5
  92. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  93. package/dist/configmodels/ConfigModels.js +3 -2
  94. package/dist/configmodels/FigsharePublishing.d.ts +1 -1
  95. package/dist/controllers/ActionController.d.ts.map +1 -1
  96. package/dist/controllers/ActionController.js +8 -2
  97. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  98. package/dist/controllers/BrandingAppController.js +21 -2
  99. package/dist/controllers/DynamicAssetController.d.ts +9 -10
  100. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  101. package/dist/controllers/DynamicAssetController.js +67 -53
  102. package/dist/controllers/EmailController.d.ts.map +1 -1
  103. package/dist/controllers/EmailController.js +32 -14
  104. package/dist/controllers/ExportController.d.ts +9 -0
  105. package/dist/controllers/ExportController.d.ts.map +1 -1
  106. package/dist/controllers/ExportController.js +154 -3
  107. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  108. package/dist/controllers/FormVocabularyController.js +62 -33
  109. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  110. package/dist/controllers/RecordAuditController.js +4 -2
  111. package/dist/controllers/RecordController.d.ts +4 -1
  112. package/dist/controllers/RecordController.d.ts.map +1 -1
  113. package/dist/controllers/RecordController.js +248 -114
  114. package/dist/controllers/ReportController.d.ts +1 -0
  115. package/dist/controllers/ReportController.d.ts.map +1 -1
  116. package/dist/controllers/ReportController.js +40 -12
  117. package/dist/controllers/TranslationController.d.ts.map +1 -1
  118. package/dist/controllers/TranslationController.js +56 -16
  119. package/dist/controllers/UserController.d.ts +3 -1
  120. package/dist/controllers/UserController.d.ts.map +1 -1
  121. package/dist/controllers/UserController.js +178 -76
  122. package/dist/controllers/VocabularyController.d.ts +0 -1
  123. package/dist/controllers/VocabularyController.d.ts.map +1 -1
  124. package/dist/controllers/VocabularyController.js +18 -16
  125. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  126. package/dist/controllers/webservice/AdminController.js +2 -5
  127. package/dist/controllers/webservice/HarvestRunController.d.ts +1 -0
  128. package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -1
  129. package/dist/controllers/webservice/HarvestRunController.js +46 -2
  130. package/dist/controllers/webservice/IntegrationAuditController.d.ts +0 -1
  131. package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
  132. package/dist/controllers/webservice/IntegrationAuditController.js +13 -6
  133. package/dist/controllers/webservice/RecordController.d.ts +1 -1
  134. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  135. package/dist/controllers/webservice/RecordController.js +13 -4
  136. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  137. package/dist/controllers/webservice/ReportController.js +15 -10
  138. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  139. package/dist/controllers/webservice/UserManagementController.js +17 -8
  140. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
  141. package/dist/controllers/webservice/VocabularyController.js +19 -13
  142. package/dist/form-config/generated-view-only.d.ts.map +1 -1
  143. package/dist/form-config/generated-view-only.js +12 -1
  144. package/dist/index.d.ts +2 -1
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +1 -1
  147. package/dist/loader/index.d.ts +1 -0
  148. package/dist/loader/index.d.ts.map +1 -1
  149. package/dist/loader/index.js +56 -11
  150. package/dist/middleware/redboxSession.d.ts.map +1 -1
  151. package/dist/middleware/redboxSession.js +15 -3
  152. package/dist/middleware/requestChronicle.d.ts +14 -0
  153. package/dist/middleware/requestChronicle.d.ts.map +1 -0
  154. package/dist/middleware/requestChronicle.js +73 -0
  155. package/dist/model/BuildResponse.d.ts +7 -5
  156. package/dist/model/BuildResponse.d.ts.map +1 -1
  157. package/dist/model/RBValidationError.d.ts +18 -5
  158. package/dist/model/RBValidationError.d.ts.map +1 -1
  159. package/dist/model/RBValidationError.js +56 -17
  160. package/dist/model/storage/ExportJobModel.d.ts +33 -0
  161. package/dist/model/storage/ExportJobModel.d.ts.map +1 -0
  162. package/dist/model/storage/ExportJobModel.js +3 -0
  163. package/dist/model/storage/HarvestRunModel.d.ts +20 -0
  164. package/dist/model/storage/HarvestRunModel.d.ts.map +1 -1
  165. package/dist/model/storage/HarvestRunModel.js +2 -1
  166. package/dist/model/storage/index.d.ts +2 -1
  167. package/dist/model/storage/index.d.ts.map +1 -1
  168. package/dist/model/storage/index.js +1 -1
  169. package/dist/policies/checkAuth.d.ts.map +1 -1
  170. package/dist/policies/checkAuth.js +3 -2
  171. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  172. package/dist/policies/contentSecurityPolicy.js +7 -2
  173. package/dist/policies/noCache.d.ts.map +1 -1
  174. package/dist/policies/noCache.js +4 -3
  175. package/dist/record-contract/record-contract-compiler.d.ts.map +1 -1
  176. package/dist/record-contract/record-contract-compiler.js +3 -19
  177. package/dist/record-contract/record-contract-context.d.ts +2 -0
  178. package/dist/record-contract/record-contract-context.d.ts.map +1 -1
  179. package/dist/record-contract/record-contract-context.js +1 -1
  180. package/dist/responses/notFound.d.ts.map +1 -1
  181. package/dist/responses/notFound.js +6 -1
  182. package/dist/responses/serverError.d.ts.map +1 -1
  183. package/dist/responses/serverError.js +13 -3
  184. package/dist/sails.d.ts +27 -17
  185. package/dist/sails.d.ts.map +1 -1
  186. package/dist/services/AgendaQueueService.d.ts +11 -2
  187. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  188. package/dist/services/AgendaQueueService.js +163 -51
  189. package/dist/services/AppConfigSecrets.d.ts +66 -0
  190. package/dist/services/AppConfigSecrets.d.ts.map +1 -0
  191. package/dist/services/AppConfigSecrets.js +396 -0
  192. package/dist/services/AppConfigService.d.ts +16 -1
  193. package/dist/services/AppConfigService.d.ts.map +1 -1
  194. package/dist/services/AppConfigService.js +283 -33
  195. package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
  196. package/dist/services/BrandingThemeCssService.js +32 -3
  197. package/dist/services/BrandingThemeTokens.d.ts.map +1 -1
  198. package/dist/services/BrandingThemeTokens.js +10 -1
  199. package/dist/services/ConfigService.d.ts +1 -0
  200. package/dist/services/ConfigService.d.ts.map +1 -1
  201. package/dist/services/ConfigService.js +24 -9
  202. package/dist/services/DomSanitizerService.d.ts.map +1 -1
  203. package/dist/services/DomSanitizerService.js +19 -6
  204. package/dist/services/EmailService.d.ts +10 -2
  205. package/dist/services/EmailService.d.ts.map +1 -1
  206. package/dist/services/EmailService.js +53 -53
  207. package/dist/services/ExportService.d.ts +62 -0
  208. package/dist/services/ExportService.d.ts.map +1 -0
  209. package/dist/services/ExportService.js +609 -0
  210. package/dist/services/FormVocabularyService.d.ts.map +1 -1
  211. package/dist/services/FormVocabularyService.js +14 -4
  212. package/dist/services/FormsService.d.ts +3 -0
  213. package/dist/services/FormsService.d.ts.map +1 -1
  214. package/dist/services/FormsService.js +10 -3
  215. package/dist/services/HarvestRunService.d.ts +23 -1
  216. package/dist/services/HarvestRunService.d.ts.map +1 -1
  217. package/dist/services/HarvestRunService.js +155 -22
  218. package/dist/services/I18nEntriesService.d.ts +5 -0
  219. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  220. package/dist/services/I18nEntriesService.js +55 -3
  221. package/dist/services/NamedQueryService.d.ts +1 -0
  222. package/dist/services/NamedQueryService.d.ts.map +1 -1
  223. package/dist/services/NamedQueryService.js +67 -31
  224. package/dist/services/RDMPService.d.ts.map +1 -1
  225. package/dist/services/RDMPService.js +69 -83
  226. package/dist/services/RaidService.d.ts.map +1 -1
  227. package/dist/services/RaidService.js +45 -11
  228. package/dist/services/RecordSchemaService.d.ts +3 -1
  229. package/dist/services/RecordSchemaService.d.ts.map +1 -1
  230. package/dist/services/RecordSchemaService.js +2 -1
  231. package/dist/services/RecordValidationService.d.ts +3 -0
  232. package/dist/services/RecordValidationService.d.ts.map +1 -1
  233. package/dist/services/RecordValidationService.js +25 -5
  234. package/dist/services/RecordsService.d.ts +10 -1
  235. package/dist/services/RecordsService.d.ts.map +1 -1
  236. package/dist/services/RecordsService.js +194 -93
  237. package/dist/services/ReportsService.d.ts +1 -0
  238. package/dist/services/ReportsService.d.ts.map +1 -1
  239. package/dist/services/ReportsService.js +10 -9
  240. package/dist/services/RvaImportService.d.ts.map +1 -1
  241. package/dist/services/RvaImportService.js +6 -5
  242. package/dist/services/SolrSearchService.d.ts +7 -2
  243. package/dist/services/SolrSearchService.d.ts.map +1 -1
  244. package/dist/services/SolrSearchService.js +205 -81
  245. package/dist/services/StorageManagerService.d.ts +5 -0
  246. package/dist/services/StorageManagerService.d.ts.map +1 -1
  247. package/dist/services/StorageManagerService.js +4 -1
  248. package/dist/services/TriggerService.d.ts.map +1 -1
  249. package/dist/services/TriggerService.js +64 -56
  250. package/dist/services/UsersService.d.ts +13 -1
  251. package/dist/services/UsersService.d.ts.map +1 -1
  252. package/dist/services/UsersService.js +191 -257
  253. package/dist/services/VocabularyService.d.ts +11 -1
  254. package/dist/services/VocabularyService.d.ts.map +1 -1
  255. package/dist/services/VocabularyService.js +120 -24
  256. package/dist/services/doi-v2/http.d.ts +3 -2
  257. package/dist/services/doi-v2/http.d.ts.map +1 -1
  258. package/dist/services/doi-v2/http.js +38 -4
  259. package/dist/services/doi-v2/runtime.d.ts +4 -3
  260. package/dist/services/doi-v2/runtime.d.ts.map +1 -1
  261. package/dist/services/doi-v2/runtime.js +52 -17
  262. package/dist/services/figshare-v2/assets.d.ts +1 -1
  263. package/dist/services/figshare-v2/assets.d.ts.map +1 -1
  264. package/dist/services/figshare-v2/assets.js +1 -1
  265. package/dist/services/figshare-v2/http.d.ts +3 -2
  266. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  267. package/dist/services/figshare-v2/http.js +38 -4
  268. package/dist/services/figshare-v2/observability.d.ts.map +1 -1
  269. package/dist/services/figshare-v2/observability.js +3 -3
  270. package/dist/services/figshare-v2/runtime.d.ts +4 -3
  271. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  272. package/dist/services/figshare-v2/runtime.js +48 -13
  273. package/dist/services/index.d.ts +3 -0
  274. package/dist/services/index.d.ts.map +1 -1
  275. package/dist/services/index.js +8 -3
  276. package/dist/services/integration-v2/runtime.d.ts +1 -1
  277. package/dist/services/integration-v2/runtime.d.ts.map +1 -1
  278. package/dist/services/integration-v2/runtime.js +7 -7
  279. package/dist/services/oni-v2/audit.d.ts +3 -2
  280. package/dist/services/oni-v2/audit.d.ts.map +1 -1
  281. package/dist/services/oni-v2/audit.js +38 -4
  282. package/dist/services/oni-v2/bindings.d.ts +1 -1
  283. package/dist/services/oni-v2/bindings.d.ts.map +1 -1
  284. package/dist/services/oni-v2/bindings.js +37 -4
  285. package/dist/services/oni-v2/repository.d.ts +3 -2
  286. package/dist/services/oni-v2/repository.d.ts.map +1 -1
  287. package/dist/services/oni-v2/repository.js +42 -7
  288. package/dist/services/oni-v2/runtime.d.ts +5 -4
  289. package/dist/services/oni-v2/runtime.d.ts.map +1 -1
  290. package/dist/services/oni-v2/runtime.js +57 -19
  291. package/dist/services/oni-v2/templating.d.ts +4 -2
  292. package/dist/services/oni-v2/templating.d.ts.map +1 -1
  293. package/dist/services/oni-v2/templating.js +42 -7
  294. package/dist/services/raid-v2/audit.d.ts +1 -1
  295. package/dist/services/raid-v2/audit.d.ts.map +1 -1
  296. package/dist/services/raid-v2/audit.js +39 -5
  297. package/dist/services/raid-v2/errors.d.ts +9 -9
  298. package/dist/services/raid-v2/errors.js +44 -11
  299. package/dist/services/raid-v2/http.d.ts +1 -1
  300. package/dist/services/raid-v2/http.d.ts.map +1 -1
  301. package/dist/services/raid-v2/http.js +42 -8
  302. package/dist/services/raid-v2/logger.d.ts +1 -1
  303. package/dist/services/raid-v2/logger.d.ts.map +1 -1
  304. package/dist/services/raid-v2/logger.js +42 -8
  305. package/dist/services/raid-v2/mapping.d.ts +1 -1
  306. package/dist/services/raid-v2/mapping.d.ts.map +1 -1
  307. package/dist/services/raid-v2/mapping.js +41 -7
  308. package/dist/services/raid-v2/runtime.d.ts +1 -1
  309. package/dist/services/raid-v2/runtime.d.ts.map +1 -1
  310. package/dist/services/raid-v2/runtime.js +76 -34
  311. package/dist/services/raid-v2/tags.d.ts +8 -8
  312. package/dist/services/raid-v2/tags.d.ts.map +1 -1
  313. package/dist/services/raid-v2/tags.js +42 -9
  314. package/dist/services/record-hooks/coordinator.d.ts +11 -0
  315. package/dist/services/record-hooks/coordinator.d.ts.map +1 -1
  316. package/dist/services/record-hooks/coordinator.js +70 -6
  317. package/dist/storage/GridFSDriver.d.ts +16 -9
  318. package/dist/storage/GridFSDriver.d.ts.map +1 -1
  319. package/dist/storage/GridFSDriver.js +87 -33
  320. package/dist/storage/TusStorageManagerDataStore.d.ts +11 -1
  321. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -1
  322. package/dist/storage/TusStorageManagerDataStore.js +190 -56
  323. package/dist/utilities/HarvestHistoryRetention.d.ts +17 -0
  324. package/dist/utilities/HarvestHistoryRetention.d.ts.map +1 -0
  325. package/dist/utilities/HarvestHistoryRetention.js +141 -0
  326. package/dist/utilities/HarvestRunIndexes.d.ts +12 -0
  327. package/dist/utilities/HarvestRunIndexes.d.ts.map +1 -0
  328. package/dist/utilities/HarvestRunIndexes.js +84 -0
  329. package/dist/utilities/PinoLoggerUtils.d.ts +9 -0
  330. package/dist/utilities/PinoLoggerUtils.d.ts.map +1 -0
  331. package/dist/utilities/PinoLoggerUtils.js +17 -0
  332. package/dist/utilities/RequestChronicle.d.ts +221 -0
  333. package/dist/utilities/RequestChronicle.d.ts.map +1 -0
  334. package/dist/utilities/RequestChronicle.js +770 -0
  335. package/dist/utilities/RequestChronicleContext.d.ts +6 -0
  336. package/dist/utilities/RequestChronicleContext.d.ts.map +1 -0
  337. package/dist/utilities/RequestChronicleContext.js +19 -0
  338. package/dist/utilities/RequestChronicleSettings.d.ts +29 -0
  339. package/dist/utilities/RequestChronicleSettings.d.ts.map +1 -0
  340. package/dist/utilities/RequestChronicleSettings.js +31 -0
  341. package/dist/utilities/TransactionUtils.d.ts +2 -1
  342. package/dist/utilities/TransactionUtils.d.ts.map +1 -1
  343. package/dist/utilities/TransactionUtils.js +1 -1
  344. package/dist/utilities/TranslationHtml.d.ts.map +1 -1
  345. package/dist/utilities/TranslationHtml.js +13 -5
  346. package/dist/utilities/VocabularyAdminAccess.d.ts +10 -0
  347. package/dist/utilities/VocabularyAdminAccess.d.ts.map +1 -0
  348. package/dist/utilities/VocabularyAdminAccess.js +42 -0
  349. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  350. package/dist/visitor/construct.visitor.js +7 -2
  351. package/dist/visitor/context-variables.visitor.d.ts +1 -2
  352. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  353. package/dist/visitor/context-variables.visitor.js +1 -1
  354. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  355. package/dist/visitor/migrate-config-v4-v5.visitor.js +5 -1
  356. package/dist/visitor/related-object-data-inline.visitor.d.ts +1 -1
  357. package/dist/visitor/related-object-data-inline.visitor.d.ts.map +1 -1
  358. package/dist/visitor/related-object-data-inline.visitor.js +57 -23
  359. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  360. package/dist/visitor/validator.visitor.js +4 -2
  361. package/dist/visitor/visitor-helpers.js +3 -3
  362. package/dist/visitor/vocab-inline.visitor.d.ts +1 -2
  363. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  364. package/dist/visitor/vocab-inline.visitor.js +1 -1
  365. package/dist/waterline-models/ExportJob.d.ts +38 -0
  366. package/dist/waterline-models/ExportJob.d.ts.map +1 -0
  367. package/dist/waterline-models/ExportJob.js +148 -0
  368. package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -1
  369. package/dist/waterline-models/HarvestRecordEvent.js +3 -9
  370. package/dist/waterline-models/HarvestRun.d.ts +5 -1
  371. package/dist/waterline-models/HarvestRun.d.ts.map +1 -1
  372. package/dist/waterline-models/HarvestRun.js +13 -7
  373. package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -1
  374. package/dist/waterline-models/HarvestRunChunk.js +3 -7
  375. package/dist/waterline-models/User.d.ts +2 -2
  376. package/dist/waterline-models/User.d.ts.map +1 -1
  377. package/dist/waterline-models/User.js +3 -3
  378. package/dist/waterline-models/index.d.ts +2 -0
  379. package/dist/waterline-models/index.d.ts.map +1 -1
  380. package/dist/waterline-models/index.js +4 -1
  381. package/logfmt-transport.cjs +59 -0
  382. package/package.json +76 -45
  383. package/dist/Logger.d.ts +0 -16
  384. package/dist/Logger.d.ts.map +0 -1
  385. package/dist/Logger.js +0 -3
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HARVEST_EVENT_INDEXES = exports.HARVEST_CHUNK_INDEXES = exports.HARVEST_RUN_INDEXES = void 0;
4
+ exports.preflightHarvestRunIndexes = preflightHarvestRunIndexes;
5
+ exports.ensureHarvestRunIndexes = ensureHarvestRunIndexes;
6
+ // Shared by model metadata and explicit Mongo provisioning: Waterline does not
7
+ // create compound indexes from the model's indexes metadata in safe mode.
8
+ exports.HARVEST_RUN_INDEXES = [
9
+ { key: { status: 1, completedAt: 1, _id: 1 } },
10
+ { key: { brandId: 1, recordType: 1, sourceName: 1, sourceRunId: 1 }, unique: true },
11
+ { key: { brandId: 1, startedAt: -1, _id: -1 } },
12
+ { key: { status: 1 } },
13
+ { key: { recordType: 1 } },
14
+ ];
15
+ exports.HARVEST_CHUNK_INDEXES = [
16
+ { key: { runId: 1, contentHash: 1, attempt: 1 }, unique: true },
17
+ { key: { runId: 1, contentHash: 1, status: 1 } },
18
+ { key: { runId: 1, chunkIndex: 1 } },
19
+ { key: { runId: 1, brandId: 1, submittedAt: 1, _id: 1 } },
20
+ ];
21
+ exports.HARVEST_EVENT_INDEXES = [
22
+ { key: { runId: 1, brandId: 1, createdAt: -1, _id: -1 } },
23
+ { key: { runId: 1, brandId: 1, outcome: 1, createdAt: -1, _id: -1 } },
24
+ { key: { runId: 1, brandId: 1, operation: 1, createdAt: -1, _id: -1 } },
25
+ { key: { runId: 1, brandId: 1, chunkId: 1, createdAt: 1, _id: 1 } },
26
+ { key: { runId: 1, brandId: 1, harvestId: 1, createdAt: -1, _id: -1 } },
27
+ { key: { harvestId: 1, recordType: 1, brandId: 1 } },
28
+ { key: { oid: 1 } },
29
+ ];
30
+ /** Read-only deployment check. Never repairs data or changes indexes. */
31
+ async function preflightHarvestRunIndexes(db) {
32
+ const issues = [];
33
+ for (const [name, definitions] of [
34
+ ['harvestrun', exports.HARVEST_RUN_INDEXES],
35
+ ['harvestrunchunk', exports.HARVEST_CHUNK_INDEXES],
36
+ ['harvestrecordevent', exports.HARVEST_EVENT_INDEXES],
37
+ ]) {
38
+ // A fresh installation may not have these collections yet.
39
+ if (!(await db.listCollections({ name }, { nameOnly: true }).hasNext()))
40
+ continue;
41
+ const collection = db.collection(name);
42
+ const existing = await collection.indexes();
43
+ for (const definition of definitions) {
44
+ const key = Object.fromEntries(Object.entries(definition.key));
45
+ const keyEntries = JSON.stringify(Object.entries(key));
46
+ const indexName = Object.entries(key)
47
+ .map(([field, direction]) => `${field}_${direction}`)
48
+ .join('_');
49
+ const conflicts = existing.filter(index => {
50
+ const sameKey = JSON.stringify(Object.entries(index.key)) === keyEntries;
51
+ return ((index.name === indexName && !sameKey) ||
52
+ (sameKey &&
53
+ (index.name !== indexName ||
54
+ Boolean(index.unique) !== Boolean(definition.unique) ||
55
+ Boolean(index.sparse) ||
56
+ Boolean(index.partialFilterExpression) ||
57
+ Boolean(index.collation))));
58
+ });
59
+ if (conflicts.length)
60
+ issues.push(`${name}: conflicting index options for ${indexName}`);
61
+ if (!definition.unique)
62
+ continue;
63
+ const groupKey = Object.fromEntries(Object.keys(key).map(field => [field, { $ifNull: [`$${field}`, null] }]));
64
+ const duplicates = await collection
65
+ .aggregate([{ $group: { _id: groupKey, count: { $sum: 1 } } }, { $match: { count: { $gt: 1 } } }, { $count: 'groups' }], { allowDiskUse: true })
66
+ .toArray();
67
+ if (duplicates.length)
68
+ issues.push(`${name}: ${duplicates[0].groups} duplicate groups for ${indexName}`);
69
+ }
70
+ }
71
+ return issues;
72
+ }
73
+ /**
74
+ * Create the required harvest indexes without replacing existing definitions.
75
+ * Repeated calls are safe; duplicates and conflicting options reject startup.
76
+ */
77
+ async function ensureHarvestRunIndexes(db) {
78
+ // Mongo createIndexes is idempotent. Conflicting options or duplicate unique
79
+ // keys reject initialization; existing indexes and records are never dropped.
80
+ await db.collection('harvestrun').createIndexes(exports.HARVEST_RUN_INDEXES);
81
+ await db.collection('harvestrunchunk').createIndexes(exports.HARVEST_CHUNK_INDEXES);
82
+ await db.collection('harvestrecordevent').createIndexes(exports.HARVEST_EVENT_INDEXES);
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFydmVzdFJ1bkluZGV4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL0hhcnZlc3RSdW5JbmRleGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQThCQSxnRUE0Q0M7QUFNRCwwREFNQztBQXBGRCwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzdELFFBQUEsbUJBQW1CLEdBQXVCO0lBQ3JELEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM5QyxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQ25GLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDL0MsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDdEIsRUFBRSxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Q0FDM0IsQ0FBQztBQUVXLFFBQUEscUJBQXFCLEdBQXVCO0lBQ3ZELEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQy9ELEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUNoRCxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3BDLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0NBQzFELENBQUM7QUFFVyxRQUFBLHFCQUFxQixHQUF1QjtJQUN2RCxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDekQsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDckUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDdkUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUNuRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUN2RSxFQUFFLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDcEQsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Q0FDcEIsQ0FBQztBQUVGLHlFQUF5RTtBQUNsRSxLQUFLLFVBQVUsMEJBQTBCLENBQUMsRUFBTTtJQUNyRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1FBQ2hDLENBQUMsWUFBWSxFQUFFLDJCQUFtQixDQUFDO1FBQ25DLENBQUMsaUJBQWlCLEVBQUUsNkJBQXFCLENBQUM7UUFDMUMsQ0FBQyxvQkFBb0IsRUFBRSw2QkFBcUIsQ0FBQztLQUNyQyxFQUFFLENBQUM7UUFDWCwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUFFLFNBQVM7UUFDbEYsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QyxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztpQkFDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO2lCQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDYixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDO2dCQUN6RSxPQUFPLENBQ0wsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQztvQkFDdEMsQ0FBQyxPQUFPO3dCQUNOLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTOzRCQUN2QixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDOzRCQUNwRCxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzs0QkFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQzs0QkFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQy9CLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksU0FBUyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksbUNBQW1DLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO2dCQUFFLFNBQVM7WUFDakMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlHLE1BQU0sVUFBVSxHQUFHLE1BQU0sVUFBVTtpQkFDaEMsU0FBUyxDQUdSLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQzVHLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUN2QjtpQkFDQSxPQUFPLEVBQUUsQ0FBQztZQUNiLElBQUksVUFBVSxDQUFDLE1BQU07Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSx5QkFBeUIsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMzRyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsdUJBQXVCLENBQUMsRUFBTTtJQUNsRCw2RUFBNkU7SUFDN0UsOEVBQThFO0lBQzlFLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLENBQUMsMkJBQW1CLENBQUMsQ0FBQztJQUNyRSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxhQUFhLENBQUMsNkJBQXFCLENBQUMsQ0FBQztJQUM1RSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxhQUFhLENBQUMsNkJBQXFCLENBQUMsQ0FBQztBQUNqRixDQUFDIn0=
@@ -0,0 +1,9 @@
1
+ import type { Logger } from 'pino';
2
+ /**
3
+ * Check that a value can be used as a parent pino logger for namespace loggers.
4
+ *
5
+ * This module has no side effects, so it can be imported without creating a logger.
6
+ * @param value The value to check.
7
+ */
8
+ export declare function isPinoLogger(value: unknown): value is Logger;
9
+ //# sourceMappingURL=PinoLoggerUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PinoLoggerUtils.d.ts","sourceRoot":"","sources":["../../src/utilities/PinoLoggerUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAM5D"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPinoLogger = isPinoLogger;
4
+ /**
5
+ * Check that a value can be used as a parent pino logger for namespace loggers.
6
+ *
7
+ * This module has no side effects, so it can be imported without creating a logger.
8
+ * @param value The value to check.
9
+ */
10
+ function isPinoLogger(value) {
11
+ if (value === undefined || value === null || typeof value !== 'object') {
12
+ return false;
13
+ }
14
+ const record = value;
15
+ return typeof record.level === 'string' && typeof record.child === 'function' && typeof record.info === 'function';
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGlub0xvZ2dlclV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9QaW5vTG9nZ2VyVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxvQ0FNQztBQVpEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQWM7SUFDekMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsS0FBZ0MsQ0FBQztJQUNoRCxPQUFPLE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFVBQVUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBQ3JILENBQUMifQ==
@@ -0,0 +1,221 @@
1
+ import { Request } from 'express';
2
+ import { ILogger } from '@researchdatabox/sails-ng-common';
3
+ import { RequestChronicleSettings } from './RequestChronicleSettings';
4
+ export { defaultRequestChronicleSettings, type RequestChronicleSettings } from './RequestChronicleSettings';
5
+ /**
6
+ * What happened to the request.
7
+ * - success: the response was sent with a status below 400, and no errors were recorded.
8
+ * - failure: the response was sent with a 4xx or 5xx status, or errors were recorded.
9
+ * - aborted: the connection closed before the response was completely sent.
10
+ */
11
+ export declare const RequestChronicleOutcomes: readonly ["success", "failure", "aborted"];
12
+ export type RequestChronicleOutcomeType = (typeof RequestChronicleOutcomes)[number];
13
+ /**
14
+ * Why the request chronicle was retained (or discarded), which also determines the log level.
15
+ */
16
+ export declare const RequestChronicleClassifications: readonly ["error", "client-error", "aborted", "slow", "warning", "sample", "discard"];
17
+ export type RequestChronicleClassificationsType = (typeof RequestChronicleClassifications)[number];
18
+ export type RequestChronicleError = {
19
+ name?: string;
20
+ message?: string;
21
+ code?: string;
22
+ /** The first lines of the stack trace, only for unexpected errors (not validation errors). */
23
+ stack?: string;
24
+ details?: RequestChronicleError[];
25
+ };
26
+ /**
27
+ * A holder for attributes of one request and response,
28
+ * which chronicles what happened over the whole request.
29
+ *
30
+ * See the 'Request Chronicle Logging' wiki page for the fields and how they are captured.
31
+ */
32
+ export interface RequestChronicle {
33
+ /** A unique identifier generated for this request. Use it to relate other logs to this request. */
34
+ requestId?: string;
35
+ /** The OpenTelemetry trace id, when there is an active trace. */
36
+ traceId?: string;
37
+ /**
38
+ * Details of the result of the request chronicle.
39
+ */
40
+ result?: {
41
+ /** When the request started. */
42
+ timestamp?: string;
43
+ outcome?: RequestChronicleOutcomeType;
44
+ durationMs?: number;
45
+ classification?: RequestChronicleClassificationsType;
46
+ /** The log level used for this event. */
47
+ severity?: string;
48
+ };
49
+ /**
50
+ * Details of the original request.
51
+ */
52
+ req?: {
53
+ method?: string;
54
+ path?: string;
55
+ hostname?: string;
56
+ /** A valid 'X-Request-Id' header supplied by a proxy or client. */
57
+ upstreamRequestId?: string;
58
+ };
59
+ /**
60
+ * Details of the response generated from the request.
61
+ */
62
+ res?: {
63
+ statusCode?: number;
64
+ /** Whether the response was completely sent before the connection closed. */
65
+ completed?: boolean;
66
+ };
67
+ /**
68
+ * Any errors encountered during the request processing.
69
+ */
70
+ errors?: RequestChronicleError[];
71
+ /** The number of errors not included in 'errors' due to the limit. */
72
+ errorsOmitted?: number;
73
+ /**
74
+ * Arbitrary data added during the request processing.
75
+ */
76
+ [key: string]: unknown;
77
+ }
78
+ export interface RequestChronicleOptions {
79
+ /** Retention settings. Defaults to `sails.config.log.requestChronicle`. */
80
+ settings?: Partial<Record<keyof RequestChronicleSettings, unknown>>;
81
+ /** Random number source between 0 and 1, used for sampling. */
82
+ random?: () => number;
83
+ /** Monotonic clock in milliseconds, used for the duration. */
84
+ now?: () => number;
85
+ /** Generates the request id. */
86
+ generateRequestId?: () => string;
87
+ }
88
+ /** The response properties used to conclude the request chronicle. */
89
+ export type RequestChronicleResponse = {
90
+ statusCode?: number;
91
+ headersSent?: boolean;
92
+ writableFinished?: boolean;
93
+ };
94
+ /**
95
+ * Limits on the size of the captured data.
96
+ */
97
+ export declare const RequestChronicleLimits: Readonly<{
98
+ maxDepth: 4;
99
+ maxStringLength: 500;
100
+ maxArrayItems: 20;
101
+ maxObjectKeys: 30;
102
+ maxValueJsonLength: 4096;
103
+ maxInfoKeys: 100;
104
+ maxErrors: 20;
105
+ maxErrorDepth: 3;
106
+ maxErrorDetails: 10;
107
+ maxErrorMessageLength: 1000;
108
+ maxErrorJsonLength: 8192;
109
+ maxStackLength: 4000;
110
+ maxStackLines: 12;
111
+ maxKeyLength: 100;
112
+ }>;
113
+ /**
114
+ * Remove tokens from request paths and URLs.
115
+ * @param value The path or URL.
116
+ */
117
+ export declare function sanitizeChroniclePath(value: string): string;
118
+ /**
119
+ * Convert a value to a string that is safe to log: secrets and token-bearing paths are redacted,
120
+ * and the length is bounded. Only the start of a very long string is processed.
121
+ * @param value The value.
122
+ * @param maxLength The maximum length, excluding the truncation marker.
123
+ */
124
+ export declare function safeChronicleText(value: unknown, maxLength: number): string;
125
+ /**
126
+ * Convert a value to a plain, size-bounded representation that is safe to log.
127
+ * Redacts sensitive keys and token-bearing paths, and limits depth, items, keys, and string length.
128
+ * @param value The value to sanitise.
129
+ */
130
+ export declare function sanitizeChronicleValue(value: unknown): unknown;
131
+ /**
132
+ * Describe the shape of a value without including its content.
133
+ * Use this for results that may be large or contain personal or sensitive data.
134
+ * @param value The value to describe.
135
+ */
136
+ export declare function summarizeChronicleValue(value: unknown): {
137
+ type: string;
138
+ length?: number;
139
+ keyCount?: number;
140
+ };
141
+ /**
142
+ * Convert a possible error to a consistent, size-bounded plain object representation.
143
+ * Handles causes, aggregate and suppressed errors, and cycles, without throwing.
144
+ * Names, messages, codes, and stacks are redacted and bounded, as is the whole result.
145
+ * @param item This might be an error, or a string, or something else.
146
+ */
147
+ export declare function toChronicleError(item: unknown): RequestChronicleError;
148
+ /**
149
+ * Convert arrays to objects keyed by index, so that the structure survives
150
+ * log formats that flatten nested objects but not arrays (e.g. pino-logfmt: `errors_0_message`).
151
+ * @param value The value to convert.
152
+ */
153
+ export declare function toChronicleLogRecord(value: unknown): unknown;
154
+ declare const helperBrand: unique symbol;
155
+ export declare class RequestChronicleHelper {
156
+ #private;
157
+ private logger;
158
+ private readonly [helperBrand];
159
+ private constructor();
160
+ /**
161
+ * Get the request chronicle helper for a request, creating it if needed.
162
+ * The logger and options are only used when the helper is created.
163
+ */
164
+ static fromReq(logger: ILogger, req: Sails.Req | Request, options?: RequestChronicleOptions): RequestChronicleHelper;
165
+ /**
166
+ * Get the request chronicle helper for a request, without creating it.
167
+ * Requests that did not pass through the HTTP middleware (e.g. socket and virtual requests) have no helper.
168
+ */
169
+ static existing(req: Sails.Req | Request | undefined | null): RequestChronicleHelper | undefined;
170
+ /**
171
+ * Get the current request chronicle data.
172
+ * Do not use this for logging - use the `log` method.
173
+ */
174
+ get data(): RequestChronicle;
175
+ /** The request id, generated when the chronicle starts. */
176
+ get requestId(): string | undefined;
177
+ get settings(): RequestChronicleSettings;
178
+ get isRunning(): boolean;
179
+ get isFinished(): boolean;
180
+ start(): void;
181
+ updateReq(req: Sails.Req | Request): void;
182
+ /**
183
+ * Conclude the request chronicle.
184
+ * Only the first call has an effect.
185
+ * @param res The response. A response that has not finished writing is recorded as aborted.
186
+ * @return True if this call concluded the chronicle, otherwise false.
187
+ */
188
+ finish(res?: RequestChronicleResponse): boolean;
189
+ /**
190
+ * Log the finished request chronicle once, at the level for its classification.
191
+ * @param logger The logger to use.
192
+ */
193
+ log(logger?: ILogger): void;
194
+ get hasErrors(): boolean;
195
+ /**
196
+ * Record an error.
197
+ * Errors recorded when the chronicle is not running are logged immediately, with the request id.
198
+ * @param error The error.
199
+ * @param info Safe operation details to include when the error is logged outside a running chronicle.
200
+ */
201
+ addError(error?: unknown, info?: Record<string, unknown>): void;
202
+ /**
203
+ * Add arbitrary details to the request chronicle.
204
+ * Values are sanitised and size-bounded.
205
+ * Warnings retain the request and raise its severity to at least warn.
206
+ * Details added after the chronicle finished are logged at the supplied level, with the request id.
207
+ * Details added when there is no running chronicle (e.g. socket requests) are ignored.
208
+ * @param info The details to add.
209
+ * @param level The severity of these details; defaults to debug for late details.
210
+ */
211
+ addInfo(info: Record<string, unknown>, level?: 'debug' | 'info' | 'warn'): void;
212
+ /**
213
+ * Record the result of work that may continue after the response is sent, such as an audit event.
214
+ * While the request is running, the result is added to the request chronicle.
215
+ * After the request finishes, the result is logged separately, with the request id.
216
+ * @param operation A short name for the operation.
217
+ * @param error The error if the operation failed, otherwise undefined.
218
+ */
219
+ addOperationResult(operation: string, error?: unknown): void;
220
+ }
221
+ //# sourceMappingURL=RequestChronicle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestChronicle.d.ts","sourceRoot":"","sources":["../../src/utilities/RequestChronicle.ts"],"names":[],"mappings":"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"}