@researchdatabox/redbox-core 5.0.4-beta.12498 → 5.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/dist/CoreController.d.ts +3 -7
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +3 -85
  4. package/dist/DatastreamService.d.ts +2 -4
  5. package/dist/DatastreamService.d.ts.map +1 -1
  6. package/dist/HarvestRunService.d.ts +3 -4
  7. package/dist/HarvestRunService.d.ts.map +1 -1
  8. package/dist/HarvestRunService.js +1 -1
  9. package/dist/QueueService.d.ts +1 -1
  10. package/dist/QueueService.d.ts.map +1 -1
  11. package/dist/RecordWriteOptions.d.ts +21 -0
  12. package/dist/RecordWriteOptions.d.ts.map +1 -0
  13. package/dist/RecordWriteOptions.js +17 -0
  14. package/dist/RecordsService.d.ts +14 -105
  15. package/dist/RecordsService.d.ts.map +1 -1
  16. package/dist/RecordsService.js +1 -44
  17. package/dist/SearchService.d.ts +1 -2
  18. package/dist/SearchService.d.ts.map +1 -1
  19. package/dist/StorageService.d.ts +20 -48
  20. package/dist/StorageService.d.ts.map +1 -1
  21. package/dist/StorageService.js +1 -19
  22. package/dist/StorageServiceResponse.d.ts +1 -22
  23. package/dist/StorageServiceResponse.d.ts.map +1 -1
  24. package/dist/StorageServiceResponse.js +4 -22
  25. package/dist/api-routes/groups/branding.d.ts +0 -8
  26. package/dist/api-routes/groups/branding.d.ts.map +1 -1
  27. package/dist/api-routes/groups/branding.js +11 -86
  28. package/dist/api-routes/groups/dashboard-config.d.ts +9 -12
  29. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -1
  30. package/dist/api-routes/groups/dashboard-config.js +73 -136
  31. package/dist/api-routes/groups/forms.d.ts.map +1 -1
  32. package/dist/api-routes/groups/forms.js +2 -10
  33. package/dist/api-routes/groups/records.d.ts +0 -1
  34. package/dist/api-routes/groups/records.d.ts.map +1 -1
  35. package/dist/api-routes/groups/records.js +26 -141
  36. package/dist/api-routes/index.d.ts +0 -3
  37. package/dist/api-routes/index.d.ts.map +1 -1
  38. package/dist/api-routes/index.js +1 -4
  39. package/dist/api-routes/openapi.d.ts.map +1 -1
  40. package/dist/api-routes/openapi.js +5 -7
  41. package/dist/api-routes/request-extraction.d.ts.map +1 -1
  42. package/dist/api-routes/request-extraction.js +8 -10
  43. package/dist/api-routes/route-factory.d.ts.map +1 -1
  44. package/dist/api-routes/route-factory.js +1 -2
  45. package/dist/api-routes/route-registry.d.ts.map +1 -1
  46. package/dist/api-routes/route-registry.js +1 -3
  47. package/dist/api-routes/schemas/common.d.ts +0 -36
  48. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  49. package/dist/api-routes/schemas/common.js +5 -95
  50. package/dist/api-routes/schemas/responses.d.ts +1 -1424
  51. package/dist/api-routes/schemas/responses.d.ts.map +1 -1
  52. package/dist/api-routes/schemas/responses.js +60 -382
  53. package/dist/api-routes/types.d.ts +0 -1
  54. package/dist/api-routes/types.d.ts.map +1 -1
  55. package/dist/api-routes/validation.d.ts +1 -5
  56. package/dist/api-routes/validation.d.ts.map +1 -1
  57. package/dist/api-routes/validation.js +15 -14
  58. package/dist/bootstrap.d.ts +1 -3
  59. package/dist/bootstrap.d.ts.map +1 -1
  60. package/dist/bootstrap.js +41 -58
  61. package/dist/config/agendaQueue.config.d.ts +0 -3
  62. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  63. package/dist/config/agendaQueue.config.js +11 -29
  64. package/dist/config/branding.config.d.ts +0 -13
  65. package/dist/config/branding.config.d.ts.map +1 -1
  66. package/dist/config/branding.config.js +2 -34
  67. package/dist/config/brandingConfigurationDefaults.config.d.ts +0 -4
  68. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  69. package/dist/config/brandingConfigurationDefaults.config.js +3 -42
  70. package/dist/config/datapubs.config.d.ts +72 -0
  71. package/dist/config/datapubs.config.d.ts.map +1 -0
  72. package/dist/config/datapubs.config.js +74 -0
  73. package/dist/config/i18n.config.d.ts +4 -0
  74. package/dist/config/i18n.config.d.ts.map +1 -1
  75. package/dist/config/i18n.config.js +1 -1
  76. package/dist/config/index.d.ts +4 -12
  77. package/dist/config/index.d.ts.map +1 -1
  78. package/dist/config/index.js +4 -7
  79. package/dist/config/policies.config.d.ts.map +1 -1
  80. package/dist/config/policies.config.js +23 -37
  81. package/dist/config/raid.config.d.ts +4 -7
  82. package/dist/config/raid.config.d.ts.map +1 -1
  83. package/dist/config/raid.config.js +35 -21
  84. package/dist/config/record.config.d.ts +0 -3
  85. package/dist/config/record.config.d.ts.map +1 -1
  86. package/dist/config/record.config.js +35 -37
  87. package/dist/config/recordtype.config.d.ts +9 -32
  88. package/dist/config/recordtype.config.d.ts.map +1 -1
  89. package/dist/config/recordtype.config.js +7 -4
  90. package/dist/config/routes.config.d.ts.map +1 -1
  91. package/dist/config/routes.config.js +53 -135
  92. package/dist/config/workflow.config.d.ts +0 -6
  93. package/dist/config/workflow.config.d.ts.map +1 -1
  94. package/dist/config/workflow.config.js +1 -1
  95. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  96. package/dist/configmodels/AdminSidebarConfig.js +2 -4
  97. package/dist/configmodels/ConfigModels.d.ts +1 -1
  98. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  99. package/dist/configmodels/ConfigModels.js +9 -26
  100. package/dist/configmodels/FigsharePublishing.d.ts +103 -0
  101. package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
  102. package/dist/configmodels/FigsharePublishing.js +36 -2
  103. package/dist/controllers/AppConfigController.d.ts.map +1 -1
  104. package/dist/controllers/AppConfigController.js +1 -4
  105. package/dist/controllers/BrandingAppController.d.ts +7 -29
  106. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  107. package/dist/controllers/BrandingAppController.js +69 -265
  108. package/dist/controllers/BrandingController.d.ts +1 -24
  109. package/dist/controllers/BrandingController.d.ts.map +1 -1
  110. package/dist/controllers/BrandingController.js +43 -173
  111. package/dist/controllers/DashboardConfigController.d.ts +2 -6
  112. package/dist/controllers/DashboardConfigController.d.ts.map +1 -1
  113. package/dist/controllers/DashboardConfigController.js +4 -18
  114. package/dist/controllers/DynamicAssetController.d.ts +5 -7
  115. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  116. package/dist/controllers/DynamicAssetController.js +12 -21
  117. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  118. package/dist/controllers/RecordAuditController.js +24 -6
  119. package/dist/controllers/RecordController.d.ts +4 -45
  120. package/dist/controllers/RecordController.d.ts.map +1 -1
  121. package/dist/controllers/RecordController.js +345 -778
  122. package/dist/controllers/index.d.ts.map +1 -1
  123. package/dist/controllers/index.js +1 -4
  124. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  125. package/dist/controllers/webservice/AdminController.js +3 -4
  126. package/dist/controllers/webservice/BrandingController.d.ts +1 -26
  127. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  128. package/dist/controllers/webservice/BrandingController.js +116 -292
  129. package/dist/controllers/webservice/DashboardConfigController.d.ts +17 -25
  130. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -1
  131. package/dist/controllers/webservice/DashboardConfigController.js +205 -90
  132. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  133. package/dist/controllers/webservice/FormManagementController.js +3 -37
  134. package/dist/controllers/webservice/RecordController.d.ts +1 -15
  135. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  136. package/dist/controllers/webservice/RecordController.js +267 -647
  137. package/dist/controllers/webservice/RecordTypeController.d.ts +1 -6
  138. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  139. package/dist/controllers/webservice/RecordTypeController.js +3 -21
  140. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  141. package/dist/controllers/webservice/SearchController.js +3 -7
  142. package/dist/hooks/defineRedboxHook.d.ts +0 -3
  143. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  144. package/dist/hooks/defineRedboxHook.js +1 -4
  145. package/dist/index.d.ts +25 -50
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +4 -90
  148. package/dist/loader/bootstrapShimRuntime.d.ts +1 -1
  149. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  150. package/dist/loader/bootstrapShimRuntime.js +12 -20
  151. package/dist/loader/index.d.ts +0 -9
  152. package/dist/loader/index.d.ts.map +1 -1
  153. package/dist/loader/index.js +4 -93
  154. package/dist/model/BuildResponse.d.ts +11 -25
  155. package/dist/model/BuildResponse.d.ts.map +1 -1
  156. package/dist/model/BuildResponse.js +3 -4
  157. package/dist/model/DashboardTypeResponseModel.d.ts +0 -6
  158. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  159. package/dist/model/DashboardTypeResponseModel.js +1 -7
  160. package/dist/model/DashboardViewResponseModel.d.ts +1 -5
  161. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -1
  162. package/dist/model/DashboardViewResponseModel.js +3 -6
  163. package/dist/model/RBValidationError.d.ts +0 -17
  164. package/dist/model/RBValidationError.d.ts.map +1 -1
  165. package/dist/model/RBValidationError.js +1 -37
  166. package/dist/model/RecordTypeResponseModel.d.ts +4 -12
  167. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  168. package/dist/model/RecordTypeResponseModel.js +2 -11
  169. package/dist/model/index.d.ts +1 -5
  170. package/dist/model/index.d.ts.map +1 -1
  171. package/dist/model/index.js +2 -5
  172. package/dist/model/storage/BrandingModel.d.ts +0 -7
  173. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  174. package/dist/model/storage/BrandingModel.js +1 -7
  175. package/dist/model/storage/DeletedRecordModel.d.ts +0 -35
  176. package/dist/model/storage/DeletedRecordModel.d.ts.map +1 -1
  177. package/dist/model/storage/DeletedRecordModel.js +1 -62
  178. package/dist/model/storage/FigshareSyncModel.d.ts +126 -0
  179. package/dist/model/storage/FigshareSyncModel.d.ts.map +1 -0
  180. package/dist/model/storage/FigshareSyncModel.js +3 -0
  181. package/dist/model/storage/IntegrationAuditModel.d.ts +2 -16
  182. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  183. package/dist/model/storage/IntegrationAuditModel.js +1 -15
  184. package/dist/model/storage/RecordAuditModel.d.ts +4 -11
  185. package/dist/model/storage/RecordAuditModel.d.ts.map +1 -1
  186. package/dist/model/storage/RecordAuditModel.js +30 -8
  187. package/dist/model/storage/RecordModel.d.ts +3 -6
  188. package/dist/model/storage/RecordModel.d.ts.map +1 -1
  189. package/dist/model/storage/RecordTypeModel.d.ts +0 -6
  190. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  191. package/dist/model/storage/RecordTypeModel.js +1 -4
  192. package/dist/model/storage/index.d.ts +10 -12
  193. package/dist/model/storage/index.d.ts.map +1 -1
  194. package/dist/model/storage/index.js +2 -24
  195. package/dist/policies/checkAuth.d.ts +6 -2
  196. package/dist/policies/checkAuth.d.ts.map +1 -1
  197. package/dist/policies/checkAuth.js +9 -32
  198. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  199. package/dist/policies/contentSecurityPolicy.js +2 -85
  200. package/dist/policies/index.d.ts +2 -3
  201. package/dist/policies/index.d.ts.map +1 -1
  202. package/dist/policies/index.js +2 -4
  203. package/dist/policies/validateApiContractRequest.d.ts.map +1 -1
  204. package/dist/policies/validateApiContractRequest.js +11 -49
  205. package/dist/services/AgendaQueueService.d.ts +1 -1
  206. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  207. package/dist/services/AgendaQueueService.js +7 -4
  208. package/dist/services/AppConfigService.d.ts +0 -6
  209. package/dist/services/AppConfigService.d.ts.map +1 -1
  210. package/dist/services/AppConfigService.js +1 -23
  211. package/dist/services/AttachmentMetadataService.d.ts +0 -58
  212. package/dist/services/AttachmentMetadataService.d.ts.map +1 -1
  213. package/dist/services/AttachmentMetadataService.js +8 -643
  214. package/dist/services/BrandingLogoService.d.ts +1 -6
  215. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  216. package/dist/services/BrandingLogoService.js +9 -77
  217. package/dist/services/BrandingService.d.ts +9 -171
  218. package/dist/services/BrandingService.d.ts.map +1 -1
  219. package/dist/services/BrandingService.js +68 -572
  220. package/dist/services/BrandingThemeCssService.d.ts +1 -17
  221. package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
  222. package/dist/services/BrandingThemeCssService.js +9 -71
  223. package/dist/services/DashboardConfigService.d.ts +54 -214
  224. package/dist/services/DashboardConfigService.d.ts.map +1 -1
  225. package/dist/services/DashboardConfigService.js +261 -829
  226. package/dist/services/DashboardTypesService.d.ts +4 -15
  227. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  228. package/dist/services/DashboardTypesService.js +139 -72
  229. package/dist/services/DoiService.d.ts +1 -1
  230. package/dist/services/DoiService.d.ts.map +1 -1
  231. package/dist/services/DoiService.js +45 -71
  232. package/dist/services/FigshareService.d.ts +15 -10
  233. package/dist/services/FigshareService.d.ts.map +1 -1
  234. package/dist/services/FigshareService.js +82 -583
  235. package/dist/services/FormRecordConsistencyService.d.ts +23 -8
  236. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  237. package/dist/services/FormRecordConsistencyService.js +70 -54
  238. package/dist/services/FormsService.d.ts +2 -91
  239. package/dist/services/FormsService.d.ts.map +1 -1
  240. package/dist/services/FormsService.js +64 -324
  241. package/dist/services/HarvestRunService.d.ts +3 -6
  242. package/dist/services/HarvestRunService.d.ts.map +1 -1
  243. package/dist/services/HarvestRunService.js +97 -161
  244. package/dist/services/I18nEntriesService.d.ts +2 -1
  245. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  246. package/dist/services/I18nEntriesService.js +45 -30
  247. package/dist/services/OniService.d.ts +62 -19
  248. package/dist/services/OniService.d.ts.map +1 -1
  249. package/dist/services/OniService.js +691 -223
  250. package/dist/services/RDMPService.d.ts +1 -1
  251. package/dist/services/RDMPService.d.ts.map +1 -1
  252. package/dist/services/RDMPService.js +5 -5
  253. package/dist/services/RaidService.d.ts +61 -19
  254. package/dist/services/RaidService.d.ts.map +1 -1
  255. package/dist/services/RaidService.js +530 -191
  256. package/dist/services/RecordTypesService.d.ts +0 -29
  257. package/dist/services/RecordTypesService.d.ts.map +1 -1
  258. package/dist/services/RecordTypesService.js +11 -106
  259. package/dist/services/RecordsService.d.ts +26 -313
  260. package/dist/services/RecordsService.d.ts.map +1 -1
  261. package/dist/services/RecordsService.js +763 -5089
  262. package/dist/services/SolrSearchService.d.ts +1 -1
  263. package/dist/services/SolrSearchService.d.ts.map +1 -1
  264. package/dist/services/SolrSearchService.js +12 -42
  265. package/dist/services/StandardDatastreamService.d.ts +5 -4
  266. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  267. package/dist/services/StandardDatastreamService.js +61 -106
  268. package/dist/services/TriggerService.d.ts.map +1 -1
  269. package/dist/services/TriggerService.js +30 -54
  270. package/dist/services/UsersService.d.ts +1 -2
  271. package/dist/services/UsersService.d.ts.map +1 -1
  272. package/dist/services/UsersService.js +283 -364
  273. package/dist/services/VocabularyService.d.ts +0 -2
  274. package/dist/services/VocabularyService.d.ts.map +1 -1
  275. package/dist/services/VocabularyService.js +2 -61
  276. package/dist/services/WorkflowStepsService.d.ts +0 -11
  277. package/dist/services/WorkflowStepsService.d.ts.map +1 -1
  278. package/dist/services/WorkflowStepsService.js +3 -32
  279. package/dist/services/WorkspaceService.d.ts +2 -2
  280. package/dist/services/WorkspaceService.d.ts.map +1 -1
  281. package/dist/services/WorkspaceService.js +5 -5
  282. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  283. package/dist/services/doi-v2/bindings.js +20 -3
  284. package/dist/services/doi-v2/config.d.ts +0 -1
  285. package/dist/services/doi-v2/config.d.ts.map +1 -1
  286. package/dist/services/doi-v2/config.js +5 -13
  287. package/dist/services/doi-v2/runtime.d.ts.map +1 -1
  288. package/dist/services/doi-v2/runtime.js +54 -14
  289. package/dist/services/figshare-v2/admin.d.ts +16 -0
  290. package/dist/services/figshare-v2/admin.d.ts.map +1 -0
  291. package/dist/services/figshare-v2/admin.js +283 -0
  292. package/dist/services/figshare-v2/assets.d.ts +20 -1
  293. package/dist/services/figshare-v2/assets.d.ts.map +1 -1
  294. package/dist/services/figshare-v2/assets.js +16 -1
  295. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  296. package/dist/services/figshare-v2/bindings.js +20 -3
  297. package/dist/services/figshare-v2/config.d.ts +8 -2
  298. package/dist/services/figshare-v2/config.d.ts.map +1 -1
  299. package/dist/services/figshare-v2/config.js +31 -3
  300. package/dist/services/figshare-v2/execution.d.ts +25 -0
  301. package/dist/services/figshare-v2/execution.d.ts.map +1 -0
  302. package/dist/services/figshare-v2/execution.js +49 -0
  303. package/dist/services/figshare-v2/http.d.ts +6 -1
  304. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  305. package/dist/services/figshare-v2/http.js +69 -12
  306. package/dist/services/figshare-v2/identity.d.ts +12 -0
  307. package/dist/services/figshare-v2/identity.d.ts.map +1 -0
  308. package/dist/services/figshare-v2/identity.js +78 -0
  309. package/dist/services/figshare-v2/managed-assets.d.ts +9 -0
  310. package/dist/services/figshare-v2/managed-assets.d.ts.map +1 -0
  311. package/dist/services/figshare-v2/managed-assets.js +229 -0
  312. package/dist/services/figshare-v2/plan.d.ts.map +1 -1
  313. package/dist/services/figshare-v2/plan.js +2 -9
  314. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  315. package/dist/services/figshare-v2/runtime.js +58 -11
  316. package/dist/services/figshare-v2/source-intent.d.ts +9 -0
  317. package/dist/services/figshare-v2/source-intent.d.ts.map +1 -0
  318. package/dist/services/figshare-v2/source-intent.js +93 -0
  319. package/dist/services/figshare-v2/status.d.ts +4 -0
  320. package/dist/services/figshare-v2/status.d.ts.map +1 -0
  321. package/dist/services/figshare-v2/status.js +29 -0
  322. package/dist/services/figshare-v2/sync-store.d.ts +27 -0
  323. package/dist/services/figshare-v2/sync-store.d.ts.map +1 -0
  324. package/dist/services/figshare-v2/sync-store.js +139 -0
  325. package/dist/services/figshare-v2/types.d.ts +3 -0
  326. package/dist/services/figshare-v2/types.d.ts.map +1 -1
  327. package/dist/services/figshare-v2/types.js +1 -1
  328. package/dist/services/figshare-v2/worker.d.ts +16 -0
  329. package/dist/services/figshare-v2/worker.d.ts.map +1 -0
  330. package/dist/services/figshare-v2/worker.js +572 -0
  331. package/dist/services/index.d.ts +0 -9
  332. package/dist/services/index.d.ts.map +1 -1
  333. package/dist/services/index.js +3 -45
  334. package/dist/utilities/TranslationHtml.d.ts +3 -0
  335. package/dist/utilities/TranslationHtml.d.ts.map +1 -0
  336. package/dist/utilities/TranslationHtml.js +46 -0
  337. package/dist/visitor/client.visitor.d.ts +0 -6
  338. package/dist/visitor/client.visitor.d.ts.map +1 -1
  339. package/dist/visitor/client.visitor.js +14 -59
  340. package/dist/visitor/construct.visitor.d.ts +1 -27
  341. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  342. package/dist/visitor/construct.visitor.js +177 -265
  343. package/dist/visitor/context-variables.visitor.d.ts +1 -3
  344. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  345. package/dist/visitor/context-variables.visitor.js +1 -15
  346. package/dist/visitor/data-value.visitor.d.ts +0 -6
  347. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  348. package/dist/visitor/data-value.visitor.js +1 -10
  349. package/dist/visitor/json-type-def.visitor.d.ts +0 -6
  350. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  351. package/dist/visitor/json-type-def.visitor.js +1 -10
  352. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +0 -11
  353. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  354. package/dist/visitor/migrate-config-v4-v5.visitor.js +133 -228
  355. package/dist/visitor/template.visitor.d.ts +2 -17
  356. package/dist/visitor/template.visitor.d.ts.map +1 -1
  357. package/dist/visitor/template.visitor.js +22 -60
  358. package/dist/visitor/validator.visitor.d.ts +7 -49
  359. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  360. package/dist/visitor/validator.visitor.js +178 -275
  361. package/dist/waterline-models/AttachmentMetadata.d.ts +0 -22
  362. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -1
  363. package/dist/waterline-models/AttachmentMetadata.js +3 -147
  364. package/dist/waterline-models/BrandingConfig.d.ts +0 -7
  365. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  366. package/dist/waterline-models/BrandingConfig.js +1 -16
  367. package/dist/waterline-models/BrandingConfigHistory.d.ts +2 -11
  368. package/dist/waterline-models/BrandingConfigHistory.d.ts.map +1 -1
  369. package/dist/waterline-models/BrandingConfigHistory.js +1 -21
  370. package/dist/waterline-models/FigshareSync.d.ts +41 -0
  371. package/dist/waterline-models/FigshareSync.d.ts.map +1 -0
  372. package/dist/waterline-models/FigshareSync.js +168 -0
  373. package/dist/waterline-models/RecordType.d.ts +0 -9
  374. package/dist/waterline-models/RecordType.d.ts.map +1 -1
  375. package/dist/waterline-models/RecordType.js +1 -16
  376. package/dist/waterline-models/User.d.ts.map +1 -1
  377. package/dist/waterline-models/User.js +15 -10
  378. package/dist/waterline-models/index.d.ts +2 -2
  379. package/dist/waterline-models/index.d.ts.map +1 -1
  380. package/dist/waterline-models/index.js +4 -4
  381. package/package.json +46 -59
  382. package/dist/AttachmentStagingIdentity.d.ts +0 -3
  383. package/dist/AttachmentStagingIdentity.d.ts.map +0 -1
  384. package/dist/AttachmentStagingIdentity.js +0 -10
  385. package/dist/RecordConcurrencyObservability.d.ts +0 -51
  386. package/dist/RecordConcurrencyObservability.d.ts.map +0 -1
  387. package/dist/RecordConcurrencyObservability.js +0 -136
  388. package/dist/RecordEntityTag.d.ts +0 -31
  389. package/dist/RecordEntityTag.d.ts.map +0 -1
  390. package/dist/RecordEntityTag.js +0 -101
  391. package/dist/RecordFormFingerprint.d.ts +0 -7
  392. package/dist/RecordFormFingerprint.d.ts.map +0 -1
  393. package/dist/RecordFormFingerprint.js +0 -106
  394. package/dist/RecordHttpConcurrency.d.ts +0 -60
  395. package/dist/RecordHttpConcurrency.d.ts.map +0 -1
  396. package/dist/RecordHttpConcurrency.js +0 -181
  397. package/dist/RecordSaveResponse.d.ts +0 -219
  398. package/dist/RecordSaveResponse.d.ts.map +0 -1
  399. package/dist/RecordSaveResponse.js +0 -639
  400. package/dist/RecordStorageConcurrency.d.ts +0 -48
  401. package/dist/RecordStorageConcurrency.d.ts.map +0 -1
  402. package/dist/RecordStorageConcurrency.js +0 -103
  403. package/dist/RecordWriteClassification.d.ts +0 -12
  404. package/dist/RecordWriteClassification.d.ts.map +0 -1
  405. package/dist/RecordWriteClassification.js +0 -70
  406. package/dist/action-execution/audit.d.ts +0 -41
  407. package/dist/action-execution/audit.d.ts.map +0 -1
  408. package/dist/action-execution/audit.js +0 -122
  409. package/dist/action-execution/executor.d.ts +0 -24
  410. package/dist/action-execution/executor.d.ts.map +0 -1
  411. package/dist/action-execution/executor.js +0 -435
  412. package/dist/action-execution/failure.d.ts +0 -49
  413. package/dist/action-execution/failure.d.ts.map +0 -1
  414. package/dist/action-execution/failure.js +0 -129
  415. package/dist/action-execution/index.d.ts +0 -7
  416. package/dist/action-execution/index.d.ts.map +0 -1
  417. package/dist/action-execution/index.js +0 -23
  418. package/dist/action-execution/legacy-result.d.ts +0 -21
  419. package/dist/action-execution/legacy-result.d.ts.map +0 -1
  420. package/dist/action-execution/legacy-result.js +0 -70
  421. package/dist/action-execution/policy.d.ts +0 -12
  422. package/dist/action-execution/policy.d.ts.map +0 -1
  423. package/dist/action-execution/policy.js +0 -138
  424. package/dist/action-execution/types.d.ts +0 -121
  425. package/dist/action-execution/types.d.ts.map +0 -1
  426. package/dist/action-execution/types.js +0 -22
  427. package/dist/api-routes/groups/record-schemas.d.ts +0 -5
  428. package/dist/api-routes/groups/record-schemas.d.ts.map +0 -1
  429. package/dist/api-routes/groups/record-schemas.js +0 -181
  430. package/dist/api-routes/record-schema-openapi.d.ts +0 -26
  431. package/dist/api-routes/record-schema-openapi.d.ts.map +0 -1
  432. package/dist/api-routes/record-schema-openapi.js +0 -38
  433. package/dist/api-routes/record-schema-response.d.ts +0 -40
  434. package/dist/api-routes/record-schema-response.d.ts.map +0 -1
  435. package/dist/api-routes/record-schema-response.js +0 -89
  436. package/dist/config/recordSchema.config.d.ts +0 -68
  437. package/dist/config/recordSchema.config.d.ts.map +0 -1
  438. package/dist/config/recordSchema.config.js +0 -173
  439. package/dist/config/recordValidation.config.d.ts +0 -19
  440. package/dist/config/recordValidation.config.d.ts.map +0 -1
  441. package/dist/config/recordValidation.config.js +0 -10
  442. package/dist/configmodels/DashboardFieldCatalogue.d.ts +0 -67
  443. package/dist/configmodels/DashboardFieldCatalogue.d.ts.map +0 -1
  444. package/dist/configmodels/DashboardFieldCatalogue.js +0 -174
  445. package/dist/configmodels/DashboardSettings.d.ts +0 -191
  446. package/dist/configmodels/DashboardSettings.d.ts.map +0 -1
  447. package/dist/configmodels/DashboardSettings.js +0 -705
  448. package/dist/configmodels/OniPublishing.d.ts +0 -205
  449. package/dist/configmodels/OniPublishing.d.ts.map +0 -1
  450. package/dist/configmodels/OniPublishing.js +0 -335
  451. package/dist/configmodels/RaidPublishing.d.ts +0 -97
  452. package/dist/configmodels/RaidPublishing.d.ts.map +0 -1
  453. package/dist/configmodels/RaidPublishing.js +0 -35
  454. package/dist/configmodels/WebAnalytics.d.ts +0 -55
  455. package/dist/configmodels/WebAnalytics.d.ts.map +0 -1
  456. package/dist/configmodels/WebAnalytics.js +0 -61
  457. package/dist/controllers/BrandingControllerSupport.d.ts +0 -20
  458. package/dist/controllers/BrandingControllerSupport.d.ts.map +0 -1
  459. package/dist/controllers/BrandingControllerSupport.js +0 -80
  460. package/dist/controllers/webservice/RecordSchemaController.d.ts +0 -32
  461. package/dist/controllers/webservice/RecordSchemaController.d.ts.map +0 -1
  462. package/dist/controllers/webservice/RecordSchemaController.js +0 -356
  463. package/dist/model/BrandingTypeface.d.ts +0 -70
  464. package/dist/model/BrandingTypeface.d.ts.map +0 -1
  465. package/dist/model/BrandingTypeface.js +0 -116
  466. package/dist/model/record-contract.d.ts +0 -42
  467. package/dist/model/record-contract.d.ts.map +0 -1
  468. package/dist/model/record-contract.js +0 -3
  469. package/dist/model/storage/record-schema.d.ts +0 -115
  470. package/dist/model/storage/record-schema.d.ts.map +0 -1
  471. package/dist/model/storage/record-schema.js +0 -3
  472. package/dist/record-contract/ajv-error-mapper.d.ts +0 -34
  473. package/dist/record-contract/ajv-error-mapper.d.ts.map +0 -1
  474. package/dist/record-contract/ajv-error-mapper.js +0 -153
  475. package/dist/record-contract/canonical-json.d.ts +0 -20
  476. package/dist/record-contract/canonical-json.d.ts.map +0 -1
  477. package/dist/record-contract/canonical-json.js +0 -126
  478. package/dist/record-contract/codes.d.ts +0 -36
  479. package/dist/record-contract/codes.d.ts.map +0 -1
  480. package/dist/record-contract/codes.js +0 -38
  481. package/dist/record-contract/contributor-registry.d.ts +0 -76
  482. package/dist/record-contract/contributor-registry.d.ts.map +0 -1
  483. package/dist/record-contract/contributor-registry.js +0 -126
  484. package/dist/record-contract/core-contributors.d.ts +0 -44
  485. package/dist/record-contract/core-contributors.d.ts.map +0 -1
  486. package/dist/record-contract/core-contributors.js +0 -395
  487. package/dist/record-contract/deep-freeze.d.ts +0 -3
  488. package/dist/record-contract/deep-freeze.d.ts.map +0 -1
  489. package/dist/record-contract/deep-freeze.js +0 -23
  490. package/dist/record-contract/index.d.ts +0 -13
  491. package/dist/record-contract/index.d.ts.map +0 -1
  492. package/dist/record-contract/index.js +0 -29
  493. package/dist/record-contract/json-pointer.d.ts +0 -20
  494. package/dist/record-contract/json-pointer.d.ts.map +0 -1
  495. package/dist/record-contract/json-pointer.js +0 -70
  496. package/dist/record-contract/json-schema-renderer.d.ts +0 -51
  497. package/dist/record-contract/json-schema-renderer.d.ts.map +0 -1
  498. package/dist/record-contract/json-schema-renderer.js +0 -450
  499. package/dist/record-contract/record-contract-compiler.d.ts +0 -42
  500. package/dist/record-contract/record-contract-compiler.d.ts.map +0 -1
  501. package/dist/record-contract/record-contract-compiler.js +0 -775
  502. package/dist/record-contract/record-contract-context.d.ts +0 -91
  503. package/dist/record-contract/record-contract-context.d.ts.map +0 -1
  504. package/dist/record-contract/record-contract-context.js +0 -39
  505. package/dist/record-contract/record-json-schema-artifact.d.ts +0 -74
  506. package/dist/record-contract/record-json-schema-artifact.d.ts.map +0 -1
  507. package/dist/record-contract/record-json-schema-artifact.js +0 -309
  508. package/dist/record-contract/record-json-schema-etag.d.ts +0 -15
  509. package/dist/record-contract/record-json-schema-etag.d.ts.map +0 -1
  510. package/dist/record-contract/record-json-schema-etag.js +0 -41
  511. package/dist/record-contract/types.d.ts +0 -151
  512. package/dist/record-contract/types.d.ts.map +0 -1
  513. package/dist/record-contract/types.js +0 -6
  514. package/dist/services/BrandingTypefaceService.d.ts +0 -74
  515. package/dist/services/BrandingTypefaceService.d.ts.map +0 -1
  516. package/dist/services/BrandingTypefaceService.js +0 -359
  517. package/dist/services/BrandingWoff2Inspector.d.ts +0 -17
  518. package/dist/services/BrandingWoff2Inspector.d.ts.map +0 -1
  519. package/dist/services/BrandingWoff2Inspector.js +0 -402
  520. package/dist/services/DashboardLegacyConversion.d.ts +0 -82
  521. package/dist/services/DashboardLegacyConversion.d.ts.map +0 -1
  522. package/dist/services/DashboardLegacyConversion.js +0 -427
  523. package/dist/services/RecordSchemaService.d.ts +0 -440
  524. package/dist/services/RecordSchemaService.d.ts.map +0 -1
  525. package/dist/services/RecordSchemaService.js +0 -3061
  526. package/dist/services/RecordValidationService.d.ts +0 -340
  527. package/dist/services/RecordValidationService.d.ts.map +0 -1
  528. package/dist/services/RecordValidationService.js +0 -1898
  529. package/dist/services/form-record-access-user.d.ts +0 -3
  530. package/dist/services/form-record-access-user.d.ts.map +0 -1
  531. package/dist/services/form-record-access-user.js +0 -23
  532. package/dist/services/integration-v2/bindings.d.ts +0 -3
  533. package/dist/services/integration-v2/bindings.d.ts.map +0 -1
  534. package/dist/services/integration-v2/bindings.js +0 -91
  535. package/dist/services/integration-v2/runtime.d.ts +0 -3
  536. package/dist/services/integration-v2/runtime.d.ts.map +0 -1
  537. package/dist/services/integration-v2/runtime.js +0 -50
  538. package/dist/services/internal-record-schema-authorization.d.ts +0 -8
  539. package/dist/services/internal-record-schema-authorization.d.ts.map +0 -1
  540. package/dist/services/internal-record-schema-authorization.js +0 -16
  541. package/dist/services/oni-v2/audit.d.ts +0 -19
  542. package/dist/services/oni-v2/audit.d.ts.map +0 -1
  543. package/dist/services/oni-v2/audit.js +0 -50
  544. package/dist/services/oni-v2/bindings.d.ts +0 -7
  545. package/dist/services/oni-v2/bindings.d.ts.map +0 -1
  546. package/dist/services/oni-v2/bindings.js +0 -31
  547. package/dist/services/oni-v2/config.d.ts +0 -12
  548. package/dist/services/oni-v2/config.d.ts.map +0 -1
  549. package/dist/services/oni-v2/config.js +0 -134
  550. package/dist/services/oni-v2/context.d.ts +0 -3
  551. package/dist/services/oni-v2/context.d.ts.map +0 -1
  552. package/dist/services/oni-v2/context.js +0 -17
  553. package/dist/services/oni-v2/crate.d.ts +0 -17
  554. package/dist/services/oni-v2/crate.d.ts.map +0 -1
  555. package/dist/services/oni-v2/crate.js +0 -504
  556. package/dist/services/oni-v2/flydriveOcflStore.d.ts +0 -69
  557. package/dist/services/oni-v2/flydriveOcflStore.d.ts.map +0 -1
  558. package/dist/services/oni-v2/flydriveOcflStore.js +0 -325
  559. package/dist/services/oni-v2/ingestion.d.ts +0 -37
  560. package/dist/services/oni-v2/ingestion.d.ts.map +0 -1
  561. package/dist/services/oni-v2/ingestion.js +0 -91
  562. package/dist/services/oni-v2/mapping.d.ts +0 -17
  563. package/dist/services/oni-v2/mapping.d.ts.map +0 -1
  564. package/dist/services/oni-v2/mapping.js +0 -137
  565. package/dist/services/oni-v2/repository.d.ts +0 -9
  566. package/dist/services/oni-v2/repository.d.ts.map +0 -1
  567. package/dist/services/oni-v2/repository.js +0 -180
  568. package/dist/services/oni-v2/runtime.d.ts +0 -23
  569. package/dist/services/oni-v2/runtime.d.ts.map +0 -1
  570. package/dist/services/oni-v2/runtime.js +0 -121
  571. package/dist/services/oni-v2/templating.d.ts +0 -11
  572. package/dist/services/oni-v2/templating.d.ts.map +0 -1
  573. package/dist/services/oni-v2/templating.js +0 -27
  574. package/dist/services/oni-v2/types.d.ts +0 -100
  575. package/dist/services/oni-v2/types.d.ts.map +0 -1
  576. package/dist/services/oni-v2/types.js +0 -3
  577. package/dist/services/raid-v2/audit.d.ts +0 -10
  578. package/dist/services/raid-v2/audit.d.ts.map +0 -1
  579. package/dist/services/raid-v2/audit.js +0 -29
  580. package/dist/services/raid-v2/errors.d.ts +0 -85
  581. package/dist/services/raid-v2/errors.d.ts.map +0 -1
  582. package/dist/services/raid-v2/errors.js +0 -36
  583. package/dist/services/raid-v2/http.d.ts +0 -4
  584. package/dist/services/raid-v2/http.d.ts.map +0 -1
  585. package/dist/services/raid-v2/http.js +0 -84
  586. package/dist/services/raid-v2/logger.d.ts +0 -8
  587. package/dist/services/raid-v2/logger.d.ts.map +0 -1
  588. package/dist/services/raid-v2/logger.js +0 -30
  589. package/dist/services/raid-v2/mapping.d.ts +0 -9
  590. package/dist/services/raid-v2/mapping.d.ts.map +0 -1
  591. package/dist/services/raid-v2/mapping.js +0 -168
  592. package/dist/services/raid-v2/runtime.d.ts +0 -5
  593. package/dist/services/raid-v2/runtime.d.ts.map +0 -1
  594. package/dist/services/raid-v2/runtime.js +0 -135
  595. package/dist/services/raid-v2/tags.d.ts +0 -11
  596. package/dist/services/raid-v2/tags.d.ts.map +0 -1
  597. package/dist/services/raid-v2/tags.js +0 -12
  598. package/dist/services/raid-v2/types.d.ts +0 -66
  599. package/dist/services/raid-v2/types.d.ts.map +0 -1
  600. package/dist/services/raid-v2/types.js +0 -3
  601. package/dist/services/record-hooks/coordinator.d.ts +0 -64
  602. package/dist/services/record-hooks/coordinator.d.ts.map +0 -1
  603. package/dist/services/record-hooks/coordinator.js +0 -276
  604. package/dist/visitor/related-object-data-inline.visitor.d.ts +0 -31
  605. package/dist/visitor/related-object-data-inline.visitor.d.ts.map +0 -1
  606. package/dist/visitor/related-object-data-inline.visitor.js +0 -96
  607. package/dist/waterline-models/DashboardConfiguration.d.ts +0 -29
  608. package/dist/waterline-models/DashboardConfiguration.d.ts.map +0 -1
  609. package/dist/waterline-models/DashboardConfiguration.js +0 -52
@@ -1,91 +0,0 @@
1
- import type { AvailableFormComponentDefinitionFrames, FormComponentDefinitionFrame, FormConfigFrame } from '@researchdatabox/sails-ng-common';
2
- import type { ContractJsonObject, RecordContractPublicContext, RecordContractSchemaKind } from './types';
3
- /** The authorization facts required by authoritative context resolution. */
4
- export interface RecordContractContextActor {
5
- readonly authenticated: boolean;
6
- readonly roles: readonly string[];
7
- }
8
- interface RecordContractContextRequestBase {
9
- readonly brand: string;
10
- readonly portal: string;
11
- readonly operation?: string;
12
- readonly actor: RecordContractContextActor;
13
- }
14
- /** Inputs needed to select an authoritative create form and operation. */
15
- export interface RecordContractCreateContextRequest extends RecordContractContextRequestBase {
16
- readonly kind: 'create';
17
- readonly recordType: string;
18
- /** Optional actor-authorized workflow target whose configured form becomes authoritative. */
19
- readonly targetStep?: string;
20
- readonly oid?: never;
21
- }
22
- /** Inputs needed to authorize and resolve an authoritative update context. */
23
- export interface RecordContractUpdateContextRequest extends RecordContractContextRequestBase {
24
- readonly kind: 'update';
25
- readonly oid: string;
26
- readonly recordType?: never;
27
- }
28
- export type RecordContractContextRequest = RecordContractCreateContextRequest | RecordContractUpdateContextRequest;
29
- export type RecordContractContextFailureKind = 'invalid-request' | 'not-found' | 'forbidden' | 'not-resolvable' | 'unavailable';
30
- /** Typed authoritative-context failure that never exposes record or caller values. */
31
- export declare class RecordContractContextResolutionError extends Error {
32
- readonly failureKind: RecordContractContextFailureKind;
33
- readonly diagnosticCodes: readonly string[];
34
- constructor(failureKind: RecordContractContextFailureKind, diagnosticCodes?: readonly string[]);
35
- }
36
- /** Source form retained before caller- and candidate-dependent contract construction. */
37
- export type RecordContractSourceForm = Readonly<Omit<FormConfigFrame, 'componentDefinitions'>> & {
38
- readonly componentDefinitions: readonly AvailableFormComponentDefinitionFrames[];
39
- };
40
- export type RecordContractReusableFormDefinitions = Readonly<Record<string, readonly AvailableFormComponentDefinitionFrames[]>>;
41
- /** Class-backed, hook-extensible form data accepted at the compiler boundary. */
42
- export type RecordContractEffectiveForm = Readonly<Omit<FormConfigFrame, 'componentDefinitions'>> & {
43
- readonly componentDefinitions: readonly FormComponentDefinitionFrame[];
44
- };
45
- interface RecordContractResolutionDataBase {
46
- readonly sourceFormFingerprint: string;
47
- readonly sourceForm: RecordContractSourceForm;
48
- readonly reusableFormDefinitions: RecordContractReusableFormDefinitions;
49
- readonly actor: RecordContractContextActor;
50
- readonly formMode: 'edit' | 'view';
51
- readonly contextVariables: ContractJsonObject;
52
- }
53
- export interface RecordContractCreateResolutionData extends RecordContractResolutionDataBase {
54
- readonly oid?: never;
55
- readonly existingRecord?: never;
56
- }
57
- export interface RecordContractUpdateResolutionData extends RecordContractResolutionDataBase {
58
- readonly oid: string;
59
- readonly existingRecord: Readonly<Record<string, unknown>>;
60
- }
61
- type RecordContractPublicContextFor<Kind extends RecordContractSchemaKind> = Omit<RecordContractPublicContext, 'kind'> & {
62
- readonly kind: Kind;
63
- };
64
- export interface RecordContractCreateContext {
65
- readonly publicContext: RecordContractPublicContextFor<'create'>;
66
- readonly resolution: RecordContractCreateResolutionData;
67
- }
68
- export interface RecordContractUpdateContext {
69
- readonly publicContext: RecordContractPublicContextFor<'update'>;
70
- readonly resolution: RecordContractUpdateResolutionData;
71
- }
72
- /**
73
- * Authoritative context resolution result. Only `publicContext` may cross the
74
- * compiler/renderer boundary; `resolution` remains private service data.
75
- */
76
- export type RecordContractContext = RecordContractCreateContext | RecordContractUpdateContext;
77
- /** A role- and mode-effective form that is safe to pass to contract compilation. */
78
- export interface RecordContractFormBuildSuccess {
79
- readonly ok: true;
80
- readonly effectiveForm: RecordContractEffectiveForm;
81
- }
82
- /** Contract construction cannot continue when no effective form components remain. */
83
- export interface RecordContractFormBuildFailure {
84
- readonly ok: false;
85
- readonly reason: 'empty-effective-form';
86
- }
87
- export type RecordContractFormBuildResult = RecordContractFormBuildSuccess | RecordContractFormBuildFailure;
88
- /** Build a detached, immutable allowlisted snapshot for schema serialization. */
89
- export declare function snapshotRecordContractPublicContext(context: RecordContractPublicContext): RecordContractPublicContext;
90
- export {};
91
- //# sourceMappingURL=record-contract-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-contract-context.d.ts","sourceRoot":"","sources":["../../src/record-contract/record-contract-context.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RecordContractContextResolutionError = void 0;
4
- exports.snapshotRecordContractPublicContext = snapshotRecordContractPublicContext;
5
- /** Typed authoritative-context failure that never exposes record or caller values. */
6
- class RecordContractContextResolutionError extends Error {
7
- failureKind;
8
- diagnosticCodes;
9
- constructor(failureKind, diagnosticCodes = []) {
10
- super(`Record contract context resolution failed (${failureKind}).`);
11
- this.failureKind = failureKind;
12
- this.name = 'RecordContractContextResolutionError';
13
- this.diagnosticCodes = Object.freeze([...new Set(diagnosticCodes)].sort());
14
- }
15
- }
16
- exports.RecordContractContextResolutionError = RecordContractContextResolutionError;
17
- const PUBLIC_CONTEXT_STRING_FIELDS = ['brand', 'portal', 'recordType', 'workflowStep', 'form', 'operation'];
18
- /** Build a detached, immutable allowlisted snapshot for schema serialization. */
19
- function snapshotRecordContractPublicContext(context) {
20
- const snapshot = {
21
- brand: context.brand,
22
- portal: context.portal,
23
- kind: context.kind,
24
- recordType: context.recordType,
25
- workflowStep: context.workflowStep,
26
- form: context.form,
27
- operation: context.operation,
28
- unknownProperties: context.unknownProperties,
29
- enforcement: context.enforcement,
30
- };
31
- if (!PUBLIC_CONTEXT_STRING_FIELDS.every(field => typeof snapshot[field] === 'string') ||
32
- !['create', 'update'].includes(snapshot.kind) ||
33
- !['allow', 'declared'].includes(snapshot.unknownProperties) ||
34
- !['shadow', 'enforce'].includes(snapshot.enforcement)) {
35
- throw new Error('Record-contract public context is invalid.');
36
- }
37
- return Object.freeze(snapshot);
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWNvbnRyYWN0LWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVjb3JkLWNvbnRyYWN0L3JlY29yZC1jb250cmFjdC1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlJQSxrRkFxQkM7QUE1R0Qsc0ZBQXNGO0FBQ3RGLE1BQWEsb0NBQXFDLFNBQVEsS0FBSztJQUkzQztJQUhGLGVBQWUsQ0FBb0I7SUFFbkQsWUFDa0IsV0FBNkMsRUFDN0Qsa0JBQXFDLEVBQUU7UUFFdkMsS0FBSyxDQUFDLDhDQUE4QyxXQUFXLElBQUksQ0FBQyxDQUFDO1FBSHJELGdCQUFXLEdBQVgsV0FBVyxDQUFrQztRQUk3RCxJQUFJLENBQUMsSUFBSSxHQUFHLHNDQUFzQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7Q0FDRjtBQVhELG9GQVdDO0FBd0VELE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBVSxDQUFDO0FBRXJILGlGQUFpRjtBQUNqRixTQUFnQixtQ0FBbUMsQ0FBQyxPQUFvQztJQUN0RixNQUFNLFFBQVEsR0FBZ0M7UUFDNUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtRQUNsQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1FBQzVCLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7UUFDNUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO0tBQ2pDLENBQUM7SUFDRixJQUNFLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDN0MsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1FBQzNELENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDckQsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2pDLENBQUMifQ==
@@ -1,74 +0,0 @@
1
- import { type RecordSchemaValidationProblem } from './ajv-error-mapper';
2
- import type { RecordJsonSchemaDocument } from './json-schema-renderer';
3
- /** Annotation-only keywords emitted directly by the v1 renderer/compiler. */
4
- export declare const RECORD_JSON_SCHEMA_ANNOTATION_KEYWORDS: readonly ["x-redbox-completeness", "x-redbox-context", "x-redbox-contract-format", "x-redbox-diagnostics", "x-redbox-unsupported-component", "x-redbox-validation"];
5
- export type RecordJsonSchemaEtag = `"sha256:${string}"`;
6
- export interface PublishedRecordJsonSchemaDocument extends RecordJsonSchemaDocument {
7
- readonly $id: string;
8
- }
9
- export interface RecordJsonSchemaIdentity {
10
- readonly digest: string;
11
- readonly document: PublishedRecordJsonSchemaDocument;
12
- readonly canonicalJson: string;
13
- readonly byteLength: number;
14
- readonly etag: RecordJsonSchemaEtag;
15
- }
16
- export type RecordJsonSchemaIdentityErrorReason = 'invalid-context' | 'invalid-limit';
17
- export declare class RecordJsonSchemaIdentityError extends Error {
18
- readonly reason: RecordJsonSchemaIdentityErrorReason;
19
- constructor(reason: RecordJsonSchemaIdentityErrorReason, message: string);
20
- }
21
- export declare class RecordJsonSchemaDocumentLimitError extends Error {
22
- readonly byteLength: number;
23
- readonly maxDocumentBytes: number;
24
- readonly code: "record-schema.limit-document-bytes";
25
- constructor(byteLength: number, maxDocumentBytes: number);
26
- }
27
- /** Public validator issue shape containing only safe, mapped structural data. */
28
- export type RecordJsonSchemaValidationIssue = RecordSchemaValidationProblem;
29
- export type RecordJsonSchemaValidationResult = {
30
- readonly valid: true;
31
- readonly issues: readonly [];
32
- readonly truncated: false;
33
- } | {
34
- readonly valid: false;
35
- readonly issues: readonly RecordJsonSchemaValidationIssue[];
36
- readonly truncated: boolean;
37
- };
38
- export interface CompiledRecordJsonSchemaValidator {
39
- readonly validate: (input: unknown) => RecordJsonSchemaValidationResult;
40
- }
41
- export interface CompiledRecordJsonSchemaArtifact extends RecordJsonSchemaIdentity {
42
- readonly validator: CompiledRecordJsonSchemaValidator;
43
- }
44
- export type RecordJsonSchemaCompilationErrorReason = 'compile' | 'metaschema';
45
- export declare class RecordJsonSchemaCompilationError extends Error {
46
- readonly reason: RecordJsonSchemaCompilationErrorReason;
47
- readonly issues: readonly RecordJsonSchemaValidationIssue[];
48
- readonly truncated: boolean;
49
- readonly code: "record-schema.invalid-contract";
50
- constructor(reason: RecordJsonSchemaCompilationErrorReason, issues: readonly RecordJsonSchemaValidationIssue[], truncated?: boolean);
51
- }
52
- export interface RecordJsonSchemaArtifactCompilerOptions {
53
- readonly maxDocumentBytes: number;
54
- readonly maxValidationErrors: number;
55
- }
56
- /** Normalize the compiler-owned unordered arrays without reordering semantic arrays such as examples. */
57
- export declare function normalizeRecordJsonSchemaDocument(document: unknown): RecordJsonSchemaDocument;
58
- /**
59
- * Compute whole-document identity, excluding the protected root `$id`, then
60
- * inject the digest-addressed origin-relative identifier and size the final
61
- * Redbox Canonical JSON v1 representation.
62
- */
63
- export declare function identifyRecordJsonSchema(document: RecordJsonSchemaDocument, maxDocumentBytes: number): RecordJsonSchemaIdentity;
64
- /** Canonical identity plus a non-mutating AJV 2020 validator for the exact published document. */
65
- export declare class RecordJsonSchemaArtifactCompiler {
66
- private readonly options;
67
- private readonly ajv;
68
- private readonly registeredKeywords;
69
- constructor(options: Readonly<RecordJsonSchemaArtifactCompilerOptions>);
70
- compile(document: RecordJsonSchemaDocument): CompiledRecordJsonSchemaArtifact;
71
- private registerAnnotations;
72
- }
73
- export declare function compileRecordJsonSchemaArtifact(document: RecordJsonSchemaDocument, options: Readonly<RecordJsonSchemaArtifactCompilerOptions>): CompiledRecordJsonSchemaArtifact;
74
- //# sourceMappingURL=record-json-schema-artifact.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-json-schema-artifact.d.ts","sourceRoot":"","sources":["../../src/record-contract/record-json-schema-artifact.ts"],"names":[],"mappings":"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"}
@@ -1,309 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RecordJsonSchemaArtifactCompiler = exports.RecordJsonSchemaCompilationError = exports.RecordJsonSchemaDocumentLimitError = exports.RecordJsonSchemaIdentityError = exports.RECORD_JSON_SCHEMA_ANNOTATION_KEYWORDS = void 0;
7
- exports.normalizeRecordJsonSchemaDocument = normalizeRecordJsonSchemaDocument;
8
- exports.identifyRecordJsonSchema = identifyRecordJsonSchema;
9
- exports.compileRecordJsonSchemaArtifact = compileRecordJsonSchemaArtifact;
10
- const crypto_1 = require("crypto");
11
- const _2020_1 = __importDefault(require("ajv/dist/2020"));
12
- const ajv_error_mapper_1 = require("./ajv-error-mapper");
13
- const codes_1 = require("./codes");
14
- const canonical_json_1 = require("./canonical-json");
15
- const DIGEST_PATTERN = /^[0-9a-f]{64}$/;
16
- const CONTRIBUTOR_ANNOTATION_KEY = /^(?:x-[A-Za-z0-9_$:-]+|[A-Za-z_$][A-Za-z0-9_$:-]*:[A-Za-z0-9_$:-]+)$/;
17
- const SCHEMA_MAP_KEYWORDS = new Set(['$defs', 'properties']);
18
- const SCHEMA_OBJECT_KEYWORDS = new Set(['else', 'if', 'items', 'not', 'then']);
19
- const SCHEMA_ARRAY_KEYWORDS = new Set(['allOf', 'anyOf']);
20
- /** Annotation-only keywords emitted directly by the v1 renderer/compiler. */
21
- exports.RECORD_JSON_SCHEMA_ANNOTATION_KEYWORDS = Object.freeze([
22
- 'x-redbox-completeness',
23
- 'x-redbox-context',
24
- 'x-redbox-contract-format',
25
- 'x-redbox-diagnostics',
26
- 'x-redbox-unsupported-component',
27
- 'x-redbox-validation',
28
- ]);
29
- class RecordJsonSchemaIdentityError extends Error {
30
- reason;
31
- constructor(reason, message) {
32
- super(message);
33
- this.reason = reason;
34
- this.name = 'RecordJsonSchemaIdentityError';
35
- }
36
- }
37
- exports.RecordJsonSchemaIdentityError = RecordJsonSchemaIdentityError;
38
- class RecordJsonSchemaDocumentLimitError extends Error {
39
- byteLength;
40
- maxDocumentBytes;
41
- code = codes_1.RECORD_SCHEMA_PROBLEM_CODES.LIMIT_DOCUMENT_BYTES;
42
- constructor(byteLength, maxDocumentBytes) {
43
- super(`The canonical record JSON Schema is ${byteLength} bytes and exceeds the ${maxDocumentBytes}-byte limit.`);
44
- this.byteLength = byteLength;
45
- this.maxDocumentBytes = maxDocumentBytes;
46
- this.name = 'RecordJsonSchemaDocumentLimitError';
47
- }
48
- }
49
- exports.RecordJsonSchemaDocumentLimitError = RecordJsonSchemaDocumentLimitError;
50
- class RecordJsonSchemaCompilationError extends Error {
51
- reason;
52
- issues;
53
- truncated;
54
- code = codes_1.RECORD_SCHEMA_PROBLEM_CODES.INVALID_CONTRACT;
55
- constructor(reason, issues, truncated = false) {
56
- super(reason === 'metaschema'
57
- ? 'The generated record JSON Schema does not satisfy the draft 2020-12 metaschema.'
58
- : 'The generated record JSON Schema could not be compiled by AJV 2020.');
59
- this.reason = reason;
60
- this.issues = issues;
61
- this.truncated = truncated;
62
- this.name = 'RecordJsonSchemaCompilationError';
63
- }
64
- }
65
- exports.RecordJsonSchemaCompilationError = RecordJsonSchemaCompilationError;
66
- function compareLexicographically(left, right) {
67
- return left < right ? -1 : left > right ? 1 : 0;
68
- }
69
- function assertPositiveInteger(value, name) {
70
- if (!Number.isFinite(value) || !Number.isInteger(value) || value <= 0) {
71
- throw new RecordJsonSchemaIdentityError('invalid-limit', `${name} must be a finite positive integer.`);
72
- }
73
- }
74
- function isJsonObject(value) {
75
- return value !== null && typeof value === 'object' && !Array.isArray(value);
76
- }
77
- function sortCanonicalValues(values) {
78
- return [...values].sort((left, right) => compareLexicographically((0, canonical_json_1.serializeRedboxCanonicalJsonV1)(left), (0, canonical_json_1.serializeRedboxCanonicalJsonV1)(right)));
79
- }
80
- function normalizeValidationSummary(value) {
81
- if (!isJsonObject(value)) {
82
- return value;
83
- }
84
- return Object.fromEntries(Object.keys(value)
85
- .sort(compareLexicographically)
86
- .map(key => {
87
- const child = value[key];
88
- if ((key === 'groups' || key === 'operations' || key === 'pointers') && Array.isArray(child)) {
89
- return [key, sortCanonicalValues(child)];
90
- }
91
- return [key, child];
92
- }));
93
- }
94
- function normalizeSchemaMap(value) {
95
- if (!isJsonObject(value)) {
96
- return value;
97
- }
98
- return Object.fromEntries(Object.keys(value)
99
- .sort(compareLexicographically)
100
- .map(key => [key, normalizeSchema(value[key])]));
101
- }
102
- function normalizeSchema(value) {
103
- if (!isJsonObject(value)) {
104
- return value;
105
- }
106
- return Object.fromEntries(Object.keys(value)
107
- .sort(compareLexicographically)
108
- .map(key => {
109
- const child = value[key];
110
- if ((key === 'enum' || key === 'required' || key === 'type') && Array.isArray(child)) {
111
- return [key, sortCanonicalValues(child)];
112
- }
113
- if (key === 'x-redbox-validation' && Array.isArray(child)) {
114
- return [key, sortCanonicalValues(child.map(normalizeValidationSummary))];
115
- }
116
- if (key === 'x-redbox-diagnostics' && Array.isArray(child)) {
117
- return [key, sortCanonicalValues(child)];
118
- }
119
- if (SCHEMA_MAP_KEYWORDS.has(key)) {
120
- return [key, normalizeSchemaMap(child)];
121
- }
122
- if (SCHEMA_OBJECT_KEYWORDS.has(key)) {
123
- return [key, normalizeSchema(child)];
124
- }
125
- if (SCHEMA_ARRAY_KEYWORDS.has(key) && Array.isArray(child)) {
126
- return [key, child.map(normalizeSchema)];
127
- }
128
- // Annotation payloads are JSON data, not nested schemas. Their array
129
- // order is part of whole-document identity even when a data property
130
- // happens to be named `type`, `enum`, or `required`.
131
- return [key, child];
132
- }));
133
- }
134
- /** Normalize the compiler-owned unordered arrays without reordering semantic arrays such as examples. */
135
- function normalizeRecordJsonSchemaDocument(document) {
136
- const jsonValue = (0, canonical_json_1.normalizeRedboxCanonicalJsonV1)(document);
137
- if (!isJsonObject(jsonValue)) {
138
- throw new RecordJsonSchemaIdentityError('invalid-context', 'A record JSON Schema document must be a JSON object.');
139
- }
140
- return (0, canonical_json_1.normalizeRedboxCanonicalJsonV1)(normalizeSchema(jsonValue));
141
- }
142
- function withoutIdentifier(document) {
143
- return Object.fromEntries(Object.entries(document).filter(([key]) => key !== '$id'));
144
- }
145
- function contextSegment(document, key) {
146
- const context = document['x-redbox-context'];
147
- const value = context?.[key];
148
- if (typeof value !== 'string' || value.length === 0) {
149
- throw new RecordJsonSchemaIdentityError('invalid-context', `The record JSON Schema context must contain a non-empty ${key}.`);
150
- }
151
- if (value === '.' || value === '..') {
152
- throw new RecordJsonSchemaIdentityError('invalid-context', `The record JSON Schema context ${key} must not be a relative-path segment.`);
153
- }
154
- return value;
155
- }
156
- function immutableSchemaId(document, digest) {
157
- let brand;
158
- let portal;
159
- try {
160
- brand = encodeURIComponent(contextSegment(document, 'brand'));
161
- portal = encodeURIComponent(contextSegment(document, 'portal'));
162
- }
163
- catch (error) {
164
- if (error instanceof RecordJsonSchemaIdentityError) {
165
- throw error;
166
- }
167
- throw new RecordJsonSchemaIdentityError('invalid-context', 'The record JSON Schema brand and portal must be valid Unicode route segments.');
168
- }
169
- return `/${brand}/${portal}/api/records/schemas/${digest}`;
170
- }
171
- /**
172
- * Compute whole-document identity, excluding the protected root `$id`, then
173
- * inject the digest-addressed origin-relative identifier and size the final
174
- * Redbox Canonical JSON v1 representation.
175
- */
176
- function identifyRecordJsonSchema(document, maxDocumentBytes) {
177
- assertPositiveInteger(maxDocumentBytes, 'maxDocumentBytes');
178
- const normalized = normalizeRecordJsonSchemaDocument(document);
179
- const identityDocument = withoutIdentifier(normalized);
180
- const identityCanonicalJson = (0, canonical_json_1.serializeRedboxCanonicalJsonV1)(identityDocument);
181
- const digest = (0, crypto_1.createHash)('sha256').update(identityCanonicalJson, 'utf8').digest('hex');
182
- if (!DIGEST_PATTERN.test(digest)) {
183
- throw new Error('SHA-256 returned a non-canonical record schema digest.');
184
- }
185
- const published = normalizeRecordJsonSchemaDocument({
186
- ...identityDocument,
187
- $id: immutableSchemaId(normalized, digest),
188
- });
189
- const canonicalJson = (0, canonical_json_1.serializeRedboxCanonicalJsonV1)(published);
190
- const byteLength = Buffer.byteLength(canonicalJson, 'utf8');
191
- if (byteLength > maxDocumentBytes) {
192
- throw new RecordJsonSchemaDocumentLimitError(byteLength, maxDocumentBytes);
193
- }
194
- return Object.freeze({
195
- digest,
196
- document: published,
197
- canonicalJson,
198
- byteLength,
199
- etag: `"sha256:${digest}"`,
200
- });
201
- }
202
- function annotationKeywords(document) {
203
- const keywords = new Set(exports.RECORD_JSON_SCHEMA_ANNOTATION_KEYWORDS);
204
- const pending = [document];
205
- while (pending.length > 0) {
206
- const current = pending.pop();
207
- if (!isJsonObject(current)) {
208
- continue;
209
- }
210
- for (const [key, child] of Object.entries(current)) {
211
- if (CONTRIBUTOR_ANNOTATION_KEY.test(key)) {
212
- keywords.add(key);
213
- }
214
- if (SCHEMA_MAP_KEYWORDS.has(key) && isJsonObject(child)) {
215
- for (const schema of Object.values(child)) {
216
- if (isJsonObject(schema)) {
217
- pending.push(schema);
218
- }
219
- }
220
- }
221
- else if (SCHEMA_OBJECT_KEYWORDS.has(key) && isJsonObject(child)) {
222
- pending.push(child);
223
- }
224
- else if (SCHEMA_ARRAY_KEYWORDS.has(key) && Array.isArray(child)) {
225
- for (const schema of child) {
226
- if (isJsonObject(schema)) {
227
- pending.push(schema);
228
- }
229
- }
230
- }
231
- }
232
- }
233
- return [...keywords].sort(compareLexicographically);
234
- }
235
- function wrappedValidator(validate, maxValidationErrors) {
236
- const noIssues = Object.freeze([]);
237
- const validResult = Object.freeze({
238
- valid: true,
239
- issues: noIssues,
240
- truncated: false,
241
- });
242
- return Object.freeze({
243
- validate: (input) => {
244
- if (validate(input)) {
245
- return validResult;
246
- }
247
- const mapping = (0, ajv_error_mapper_1.mapAjvErrorsToRecordSchemaProblems)(validate.errors, maxValidationErrors);
248
- return Object.freeze({
249
- valid: false,
250
- issues: mapping.problems,
251
- truncated: mapping.truncated,
252
- });
253
- },
254
- });
255
- }
256
- /** Canonical identity plus a non-mutating AJV 2020 validator for the exact published document. */
257
- class RecordJsonSchemaArtifactCompiler {
258
- options;
259
- ajv;
260
- registeredKeywords = new Set();
261
- constructor(options) {
262
- this.options = options;
263
- assertPositiveInteger(options.maxDocumentBytes, 'maxDocumentBytes');
264
- assertPositiveInteger(options.maxValidationErrors, 'maxValidationErrors');
265
- this.ajv = new _2020_1.default({
266
- addUsedSchema: false,
267
- allErrors: true,
268
- coerceTypes: false,
269
- removeAdditional: false,
270
- strict: true,
271
- strictTypes: false,
272
- useDefaults: false,
273
- validateSchema: true,
274
- });
275
- }
276
- compile(document) {
277
- const identity = identifyRecordJsonSchema(document, this.options.maxDocumentBytes);
278
- this.registerAnnotations(identity.document);
279
- if (!this.ajv.validateSchema(identity.document)) {
280
- const mapping = (0, ajv_error_mapper_1.mapAjvErrorsToRecordSchemaProblems)(this.ajv.errors, this.options.maxValidationErrors);
281
- throw new RecordJsonSchemaCompilationError('metaschema', mapping.problems, mapping.truncated);
282
- }
283
- let validate;
284
- try {
285
- validate = this.ajv.compile(identity.document);
286
- }
287
- catch {
288
- throw new RecordJsonSchemaCompilationError('compile', Object.freeze([]));
289
- }
290
- return Object.freeze({
291
- ...identity,
292
- validator: wrappedValidator(validate, this.options.maxValidationErrors),
293
- });
294
- }
295
- registerAnnotations(document) {
296
- for (const keyword of annotationKeywords(document)) {
297
- if (this.registeredKeywords.has(keyword)) {
298
- continue;
299
- }
300
- this.ajv.addKeyword({ keyword, errors: false, valid: true });
301
- this.registeredKeywords.add(keyword);
302
- }
303
- }
304
- }
305
- exports.RecordJsonSchemaArtifactCompiler = RecordJsonSchemaArtifactCompiler;
306
- function compileRecordJsonSchemaArtifact(document, options) {
307
- return new RecordJsonSchemaArtifactCompiler(options).compile(document);
308
- }
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWpzb24tc2NoZW1hLWFydGlmYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlY29yZC1jb250cmFjdC9yZWNvcmQtanNvbi1zY2hlbWEtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBOExBLDhFQU1DO0FBK0NELDREQThCQztBQStHRCwwRUFLQztBQXJZRCxtQ0FBb0M7QUFDcEMsMERBQXFHO0FBRXJHLHlEQUE0RztBQUM1RyxtQ0FBc0Q7QUFDdEQscURBQWtHO0FBSWxHLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDO0FBQ3hDLE1BQU0sMEJBQTBCLEdBQUcsc0VBQXNFLENBQUM7QUFDMUcsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQzdELE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUMvRSxNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFFMUQsNkVBQTZFO0FBQ2hFLFFBQUEsc0NBQXNDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNsRSx1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLDBCQUEwQjtJQUMxQixzQkFBc0I7SUFDdEIsZ0NBQWdDO0lBQ2hDLHFCQUFxQjtDQUNiLENBQUMsQ0FBQztBQWtCWixNQUFhLDZCQUE4QixTQUFRLEtBQUs7SUFFcEM7SUFEbEIsWUFDa0IsTUFBMkMsRUFDM0QsT0FBZTtRQUVmLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhDLFdBQU0sR0FBTixNQUFNLENBQXFDO1FBSTNELElBQUksQ0FBQyxJQUFJLEdBQUcsK0JBQStCLENBQUM7SUFDOUMs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
@@ -1,15 +0,0 @@
1
- import type { RecordJsonSchemaEtag } from './record-json-schema-artifact';
2
- export type RecordJsonSchemaEtagParseFailureReason = 'malformed' | 'weak' | 'list' | 'wildcard';
3
- export type ParseRecordJsonSchemaEtagResult = {
4
- readonly kind: 'absent';
5
- } | {
6
- readonly kind: 'parsed';
7
- readonly digest: string;
8
- readonly etag: RecordJsonSchemaEtag;
9
- } | {
10
- readonly kind: 'invalid';
11
- readonly reason: RecordJsonSchemaEtagParseFailureReason;
12
- };
13
- /** Parse one optional If-Match or If-None-Match value in the supported schema ETag subset. */
14
- export declare function parseRecordJsonSchemaEtag(value: string | undefined): ParseRecordJsonSchemaEtagResult;
15
- //# sourceMappingURL=record-json-schema-etag.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-json-schema-etag.d.ts","sourceRoot":"","sources":["../../src/record-contract/record-json-schema-etag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAI1E,MAAM,MAAM,sCAAsC,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhG,MAAM,MAAM,+BAA+B,GACvC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,sCAAsC,CAAC;CACzD,CAAC;AAgBN,8FAA8F;AAC9F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,+BAA+B,CAyBpG"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseRecordJsonSchemaEtag = parseRecordJsonSchemaEtag;
4
- const RECORD_JSON_SCHEMA_ETAG_PATTERN = /^"sha256:([0-9a-f]{64})"$/;
5
- function trimHttpOptionalWhitespace(value) {
6
- let startIndex = 0;
7
- let endIndex = value.length;
8
- while (startIndex < endIndex && (value[startIndex] === ' ' || value[startIndex] === '\t')) {
9
- startIndex += 1;
10
- }
11
- while (endIndex > startIndex && (value[endIndex - 1] === ' ' || value[endIndex - 1] === '\t')) {
12
- endIndex -= 1;
13
- }
14
- return value.slice(startIndex, endIndex);
15
- }
16
- /** Parse one optional If-Match or If-None-Match value in the supported schema ETag subset. */
17
- function parseRecordJsonSchemaEtag(value) {
18
- if (value === undefined) {
19
- return Object.freeze({ kind: 'absent' });
20
- }
21
- const valueWithoutOuterWhitespace = trimHttpOptionalWhitespace(value);
22
- if (valueWithoutOuterWhitespace === '*') {
23
- return Object.freeze({ kind: 'invalid', reason: 'wildcard' });
24
- }
25
- if (valueWithoutOuterWhitespace.includes(',')) {
26
- return Object.freeze({ kind: 'invalid', reason: 'list' });
27
- }
28
- if (valueWithoutOuterWhitespace.startsWith('W/')) {
29
- return Object.freeze({ kind: 'invalid', reason: 'weak' });
30
- }
31
- const match = RECORD_JSON_SCHEMA_ETAG_PATTERN.exec(valueWithoutOuterWhitespace);
32
- if (!match) {
33
- return Object.freeze({ kind: 'invalid', reason: 'malformed' });
34
- }
35
- return Object.freeze({
36
- kind: 'parsed',
37
- digest: match[1],
38
- etag: valueWithoutOuterWhitespace,
39
- });
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWpzb24tc2NoZW1hLWV0YWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVjb3JkLWNvbnRyYWN0L3JlY29yZC1qc29uLXNjaGVtYS1ldGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUNBLDhEQXlCQztBQXhERCxNQUFNLCtCQUErQixHQUFHLDJCQUEyQixDQUFDO0FBZ0JwRSxTQUFTLDBCQUEwQixDQUFDLEtBQWE7SUFDL0MsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFFNUIsT0FBTyxVQUFVLEdBQUcsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxRixVQUFVLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLFFBQVEsR0FBRyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDOUYsUUFBUSxJQUFJLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsOEZBQThGO0FBQzlGLFNBQWdCLHlCQUF5QixDQUFDLEtBQXlCO0lBQ2pFLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLDJCQUEyQixHQUFHLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLElBQUksMkJBQTJCLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDeEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBSSwyQkFBMkIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2pELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLCtCQUErQixDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ2hGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNuQixJQUFJLEVBQUUsUUFBUTtRQUNkLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLElBQUksRUFBRSwyQkFBbUQ7S0FDMUQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9