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

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 (616) 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/session.config.d.ts +2 -2
  93. package/dist/config/session.config.d.ts.map +1 -1
  94. package/dist/config/workflow.config.d.ts +0 -6
  95. package/dist/config/workflow.config.d.ts.map +1 -1
  96. package/dist/config/workflow.config.js +1 -1
  97. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  98. package/dist/configmodels/AdminSidebarConfig.js +2 -4
  99. package/dist/configmodels/ConfigModels.d.ts +1 -1
  100. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  101. package/dist/configmodels/ConfigModels.js +9 -26
  102. package/dist/configmodels/FigsharePublishing.d.ts +103 -0
  103. package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
  104. package/dist/configmodels/FigsharePublishing.js +36 -2
  105. package/dist/controllers/AppConfigController.d.ts.map +1 -1
  106. package/dist/controllers/AppConfigController.js +1 -4
  107. package/dist/controllers/BrandingAppController.d.ts +7 -29
  108. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  109. package/dist/controllers/BrandingAppController.js +69 -265
  110. package/dist/controllers/BrandingController.d.ts +1 -24
  111. package/dist/controllers/BrandingController.d.ts.map +1 -1
  112. package/dist/controllers/BrandingController.js +43 -173
  113. package/dist/controllers/DashboardConfigController.d.ts +2 -6
  114. package/dist/controllers/DashboardConfigController.d.ts.map +1 -1
  115. package/dist/controllers/DashboardConfigController.js +4 -18
  116. package/dist/controllers/DynamicAssetController.d.ts +5 -7
  117. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  118. package/dist/controllers/DynamicAssetController.js +12 -21
  119. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  120. package/dist/controllers/RecordAuditController.js +24 -6
  121. package/dist/controllers/RecordController.d.ts +4 -45
  122. package/dist/controllers/RecordController.d.ts.map +1 -1
  123. package/dist/controllers/RecordController.js +345 -778
  124. package/dist/controllers/index.d.ts.map +1 -1
  125. package/dist/controllers/index.js +1 -4
  126. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  127. package/dist/controllers/webservice/AdminController.js +3 -4
  128. package/dist/controllers/webservice/BrandingController.d.ts +1 -26
  129. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  130. package/dist/controllers/webservice/BrandingController.js +116 -292
  131. package/dist/controllers/webservice/DashboardConfigController.d.ts +17 -25
  132. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -1
  133. package/dist/controllers/webservice/DashboardConfigController.js +205 -90
  134. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  135. package/dist/controllers/webservice/FormManagementController.js +3 -37
  136. package/dist/controllers/webservice/RecordController.d.ts +1 -15
  137. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  138. package/dist/controllers/webservice/RecordController.js +267 -647
  139. package/dist/controllers/webservice/RecordTypeController.d.ts +1 -6
  140. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  141. package/dist/controllers/webservice/RecordTypeController.js +3 -21
  142. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  143. package/dist/controllers/webservice/SearchController.js +3 -7
  144. package/dist/hooks/defineRedboxHook.d.ts +0 -3
  145. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  146. package/dist/hooks/defineRedboxHook.js +1 -4
  147. package/dist/index.d.ts +25 -50
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +4 -90
  150. package/dist/loader/bootstrapShimRuntime.d.ts +1 -1
  151. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  152. package/dist/loader/bootstrapShimRuntime.js +12 -20
  153. package/dist/loader/index.d.ts +0 -9
  154. package/dist/loader/index.d.ts.map +1 -1
  155. package/dist/loader/index.js +4 -93
  156. package/dist/middleware/redboxSession.d.ts.map +1 -1
  157. package/dist/middleware/redboxSession.js +15 -3
  158. package/dist/model/BuildResponse.d.ts +11 -25
  159. package/dist/model/BuildResponse.d.ts.map +1 -1
  160. package/dist/model/BuildResponse.js +3 -4
  161. package/dist/model/DashboardTypeResponseModel.d.ts +0 -6
  162. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  163. package/dist/model/DashboardTypeResponseModel.js +1 -7
  164. package/dist/model/DashboardViewResponseModel.d.ts +1 -5
  165. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -1
  166. package/dist/model/DashboardViewResponseModel.js +3 -6
  167. package/dist/model/RBValidationError.d.ts +0 -17
  168. package/dist/model/RBValidationError.d.ts.map +1 -1
  169. package/dist/model/RBValidationError.js +1 -37
  170. package/dist/model/RecordTypeResponseModel.d.ts +4 -12
  171. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  172. package/dist/model/RecordTypeResponseModel.js +2 -11
  173. package/dist/model/index.d.ts +1 -5
  174. package/dist/model/index.d.ts.map +1 -1
  175. package/dist/model/index.js +2 -5
  176. package/dist/model/storage/BrandingModel.d.ts +0 -7
  177. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  178. package/dist/model/storage/BrandingModel.js +1 -7
  179. package/dist/model/storage/DeletedRecordModel.d.ts +0 -35
  180. package/dist/model/storage/DeletedRecordModel.d.ts.map +1 -1
  181. package/dist/model/storage/DeletedRecordModel.js +1 -62
  182. package/dist/model/storage/FigshareSyncModel.d.ts +126 -0
  183. package/dist/model/storage/FigshareSyncModel.d.ts.map +1 -0
  184. package/dist/model/storage/FigshareSyncModel.js +3 -0
  185. package/dist/model/storage/IntegrationAuditModel.d.ts +2 -16
  186. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  187. package/dist/model/storage/IntegrationAuditModel.js +1 -15
  188. package/dist/model/storage/RecordAuditModel.d.ts +4 -11
  189. package/dist/model/storage/RecordAuditModel.d.ts.map +1 -1
  190. package/dist/model/storage/RecordAuditModel.js +30 -8
  191. package/dist/model/storage/RecordModel.d.ts +3 -6
  192. package/dist/model/storage/RecordModel.d.ts.map +1 -1
  193. package/dist/model/storage/RecordTypeModel.d.ts +0 -6
  194. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  195. package/dist/model/storage/RecordTypeModel.js +1 -4
  196. package/dist/model/storage/index.d.ts +10 -12
  197. package/dist/model/storage/index.d.ts.map +1 -1
  198. package/dist/model/storage/index.js +2 -24
  199. package/dist/policies/checkAuth.d.ts +6 -2
  200. package/dist/policies/checkAuth.d.ts.map +1 -1
  201. package/dist/policies/checkAuth.js +9 -32
  202. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  203. package/dist/policies/contentSecurityPolicy.js +2 -85
  204. package/dist/policies/index.d.ts +2 -3
  205. package/dist/policies/index.d.ts.map +1 -1
  206. package/dist/policies/index.js +2 -4
  207. package/dist/policies/validateApiContractRequest.d.ts.map +1 -1
  208. package/dist/policies/validateApiContractRequest.js +11 -49
  209. package/dist/services/AgendaQueueService.d.ts +1 -1
  210. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  211. package/dist/services/AgendaQueueService.js +7 -4
  212. package/dist/services/AppConfigService.d.ts +0 -6
  213. package/dist/services/AppConfigService.d.ts.map +1 -1
  214. package/dist/services/AppConfigService.js +1 -23
  215. package/dist/services/AttachmentMetadataService.d.ts +0 -58
  216. package/dist/services/AttachmentMetadataService.d.ts.map +1 -1
  217. package/dist/services/AttachmentMetadataService.js +8 -643
  218. package/dist/services/BrandingLogoService.d.ts +1 -6
  219. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  220. package/dist/services/BrandingLogoService.js +9 -77
  221. package/dist/services/BrandingService.d.ts +9 -171
  222. package/dist/services/BrandingService.d.ts.map +1 -1
  223. package/dist/services/BrandingService.js +68 -572
  224. package/dist/services/BrandingThemeCssService.d.ts +1 -17
  225. package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
  226. package/dist/services/BrandingThemeCssService.js +12 -71
  227. package/dist/services/BrandingThemeTokens.d.ts.map +1 -1
  228. package/dist/services/BrandingThemeTokens.js +2 -1
  229. package/dist/services/DashboardConfigService.d.ts +54 -214
  230. package/dist/services/DashboardConfigService.d.ts.map +1 -1
  231. package/dist/services/DashboardConfigService.js +261 -829
  232. package/dist/services/DashboardTypesService.d.ts +4 -15
  233. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  234. package/dist/services/DashboardTypesService.js +139 -72
  235. package/dist/services/DoiService.d.ts +1 -1
  236. package/dist/services/DoiService.d.ts.map +1 -1
  237. package/dist/services/DoiService.js +45 -71
  238. package/dist/services/FigshareService.d.ts +15 -10
  239. package/dist/services/FigshareService.d.ts.map +1 -1
  240. package/dist/services/FigshareService.js +82 -583
  241. package/dist/services/FormRecordConsistencyService.d.ts +23 -8
  242. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  243. package/dist/services/FormRecordConsistencyService.js +70 -54
  244. package/dist/services/FormsService.d.ts +2 -91
  245. package/dist/services/FormsService.d.ts.map +1 -1
  246. package/dist/services/FormsService.js +64 -324
  247. package/dist/services/HarvestRunService.d.ts +3 -6
  248. package/dist/services/HarvestRunService.d.ts.map +1 -1
  249. package/dist/services/HarvestRunService.js +97 -161
  250. package/dist/services/I18nEntriesService.d.ts +2 -1
  251. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  252. package/dist/services/I18nEntriesService.js +45 -30
  253. package/dist/services/OniService.d.ts +62 -19
  254. package/dist/services/OniService.d.ts.map +1 -1
  255. package/dist/services/OniService.js +691 -223
  256. package/dist/services/RDMPService.d.ts +1 -1
  257. package/dist/services/RDMPService.d.ts.map +1 -1
  258. package/dist/services/RDMPService.js +5 -5
  259. package/dist/services/RaidService.d.ts +61 -19
  260. package/dist/services/RaidService.d.ts.map +1 -1
  261. package/dist/services/RaidService.js +530 -191
  262. package/dist/services/RecordTypesService.d.ts +0 -29
  263. package/dist/services/RecordTypesService.d.ts.map +1 -1
  264. package/dist/services/RecordTypesService.js +11 -106
  265. package/dist/services/RecordsService.d.ts +26 -313
  266. package/dist/services/RecordsService.d.ts.map +1 -1
  267. package/dist/services/RecordsService.js +763 -5089
  268. package/dist/services/SolrSearchService.d.ts +1 -1
  269. package/dist/services/SolrSearchService.d.ts.map +1 -1
  270. package/dist/services/SolrSearchService.js +12 -42
  271. package/dist/services/StandardDatastreamService.d.ts +5 -4
  272. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  273. package/dist/services/StandardDatastreamService.js +61 -106
  274. package/dist/services/TriggerService.d.ts.map +1 -1
  275. package/dist/services/TriggerService.js +30 -54
  276. package/dist/services/UsersService.d.ts +1 -2
  277. package/dist/services/UsersService.d.ts.map +1 -1
  278. package/dist/services/UsersService.js +283 -364
  279. package/dist/services/VocabularyService.d.ts +0 -2
  280. package/dist/services/VocabularyService.d.ts.map +1 -1
  281. package/dist/services/VocabularyService.js +2 -61
  282. package/dist/services/WorkflowStepsService.d.ts +0 -11
  283. package/dist/services/WorkflowStepsService.d.ts.map +1 -1
  284. package/dist/services/WorkflowStepsService.js +3 -32
  285. package/dist/services/WorkspaceService.d.ts +2 -2
  286. package/dist/services/WorkspaceService.d.ts.map +1 -1
  287. package/dist/services/WorkspaceService.js +5 -5
  288. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  289. package/dist/services/doi-v2/bindings.js +20 -3
  290. package/dist/services/doi-v2/config.d.ts +0 -1
  291. package/dist/services/doi-v2/config.d.ts.map +1 -1
  292. package/dist/services/doi-v2/config.js +5 -13
  293. package/dist/services/doi-v2/runtime.d.ts.map +1 -1
  294. package/dist/services/doi-v2/runtime.js +54 -14
  295. package/dist/services/figshare-v2/admin.d.ts +16 -0
  296. package/dist/services/figshare-v2/admin.d.ts.map +1 -0
  297. package/dist/services/figshare-v2/admin.js +283 -0
  298. package/dist/services/figshare-v2/assets.d.ts +20 -1
  299. package/dist/services/figshare-v2/assets.d.ts.map +1 -1
  300. package/dist/services/figshare-v2/assets.js +16 -1
  301. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  302. package/dist/services/figshare-v2/bindings.js +20 -3
  303. package/dist/services/figshare-v2/config.d.ts +8 -2
  304. package/dist/services/figshare-v2/config.d.ts.map +1 -1
  305. package/dist/services/figshare-v2/config.js +31 -3
  306. package/dist/services/figshare-v2/execution.d.ts +25 -0
  307. package/dist/services/figshare-v2/execution.d.ts.map +1 -0
  308. package/dist/services/figshare-v2/execution.js +49 -0
  309. package/dist/services/figshare-v2/http.d.ts +6 -1
  310. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  311. package/dist/services/figshare-v2/http.js +69 -12
  312. package/dist/services/figshare-v2/identity.d.ts +12 -0
  313. package/dist/services/figshare-v2/identity.d.ts.map +1 -0
  314. package/dist/services/figshare-v2/identity.js +78 -0
  315. package/dist/services/figshare-v2/managed-assets.d.ts +9 -0
  316. package/dist/services/figshare-v2/managed-assets.d.ts.map +1 -0
  317. package/dist/services/figshare-v2/managed-assets.js +229 -0
  318. package/dist/services/figshare-v2/plan.d.ts.map +1 -1
  319. package/dist/services/figshare-v2/plan.js +2 -9
  320. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  321. package/dist/services/figshare-v2/runtime.js +58 -11
  322. package/dist/services/figshare-v2/source-intent.d.ts +9 -0
  323. package/dist/services/figshare-v2/source-intent.d.ts.map +1 -0
  324. package/dist/services/figshare-v2/source-intent.js +93 -0
  325. package/dist/services/figshare-v2/status.d.ts +4 -0
  326. package/dist/services/figshare-v2/status.d.ts.map +1 -0
  327. package/dist/services/figshare-v2/status.js +29 -0
  328. package/dist/services/figshare-v2/sync-store.d.ts +27 -0
  329. package/dist/services/figshare-v2/sync-store.d.ts.map +1 -0
  330. package/dist/services/figshare-v2/sync-store.js +139 -0
  331. package/dist/services/figshare-v2/types.d.ts +3 -0
  332. package/dist/services/figshare-v2/types.d.ts.map +1 -1
  333. package/dist/services/figshare-v2/types.js +1 -1
  334. package/dist/services/figshare-v2/worker.d.ts +16 -0
  335. package/dist/services/figshare-v2/worker.d.ts.map +1 -0
  336. package/dist/services/figshare-v2/worker.js +572 -0
  337. package/dist/services/index.d.ts +0 -9
  338. package/dist/services/index.d.ts.map +1 -1
  339. package/dist/services/index.js +3 -45
  340. package/dist/utilities/TranslationHtml.d.ts +3 -0
  341. package/dist/utilities/TranslationHtml.d.ts.map +1 -0
  342. package/dist/utilities/TranslationHtml.js +46 -0
  343. package/dist/visitor/client.visitor.d.ts +0 -6
  344. package/dist/visitor/client.visitor.d.ts.map +1 -1
  345. package/dist/visitor/client.visitor.js +14 -59
  346. package/dist/visitor/construct.visitor.d.ts +1 -27
  347. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  348. package/dist/visitor/construct.visitor.js +177 -265
  349. package/dist/visitor/context-variables.visitor.d.ts +1 -3
  350. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  351. package/dist/visitor/context-variables.visitor.js +1 -15
  352. package/dist/visitor/data-value.visitor.d.ts +0 -6
  353. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  354. package/dist/visitor/data-value.visitor.js +1 -10
  355. package/dist/visitor/json-type-def.visitor.d.ts +0 -6
  356. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  357. package/dist/visitor/json-type-def.visitor.js +1 -10
  358. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +0 -11
  359. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  360. package/dist/visitor/migrate-config-v4-v5.visitor.js +133 -228
  361. package/dist/visitor/template.visitor.d.ts +2 -17
  362. package/dist/visitor/template.visitor.d.ts.map +1 -1
  363. package/dist/visitor/template.visitor.js +22 -60
  364. package/dist/visitor/validator.visitor.d.ts +7 -49
  365. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  366. package/dist/visitor/validator.visitor.js +178 -275
  367. package/dist/waterline-models/AttachmentMetadata.d.ts +0 -22
  368. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -1
  369. package/dist/waterline-models/AttachmentMetadata.js +3 -147
  370. package/dist/waterline-models/BrandingConfig.d.ts +0 -7
  371. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  372. package/dist/waterline-models/BrandingConfig.js +1 -16
  373. package/dist/waterline-models/BrandingConfigHistory.d.ts +2 -11
  374. package/dist/waterline-models/BrandingConfigHistory.d.ts.map +1 -1
  375. package/dist/waterline-models/BrandingConfigHistory.js +1 -21
  376. package/dist/waterline-models/FigshareSync.d.ts +41 -0
  377. package/dist/waterline-models/FigshareSync.d.ts.map +1 -0
  378. package/dist/waterline-models/FigshareSync.js +168 -0
  379. package/dist/waterline-models/RecordType.d.ts +0 -9
  380. package/dist/waterline-models/RecordType.d.ts.map +1 -1
  381. package/dist/waterline-models/RecordType.js +1 -16
  382. package/dist/waterline-models/User.d.ts +2 -2
  383. package/dist/waterline-models/User.d.ts.map +1 -1
  384. package/dist/waterline-models/User.js +17 -12
  385. package/dist/waterline-models/index.d.ts +2 -2
  386. package/dist/waterline-models/index.d.ts.map +1 -1
  387. package/dist/waterline-models/index.js +4 -4
  388. package/package.json +46 -59
  389. package/dist/AttachmentStagingIdentity.d.ts +0 -3
  390. package/dist/AttachmentStagingIdentity.d.ts.map +0 -1
  391. package/dist/AttachmentStagingIdentity.js +0 -10
  392. package/dist/RecordConcurrencyObservability.d.ts +0 -51
  393. package/dist/RecordConcurrencyObservability.d.ts.map +0 -1
  394. package/dist/RecordConcurrencyObservability.js +0 -136
  395. package/dist/RecordEntityTag.d.ts +0 -31
  396. package/dist/RecordEntityTag.d.ts.map +0 -1
  397. package/dist/RecordEntityTag.js +0 -101
  398. package/dist/RecordFormFingerprint.d.ts +0 -7
  399. package/dist/RecordFormFingerprint.d.ts.map +0 -1
  400. package/dist/RecordFormFingerprint.js +0 -106
  401. package/dist/RecordHttpConcurrency.d.ts +0 -60
  402. package/dist/RecordHttpConcurrency.d.ts.map +0 -1
  403. package/dist/RecordHttpConcurrency.js +0 -181
  404. package/dist/RecordSaveResponse.d.ts +0 -219
  405. package/dist/RecordSaveResponse.d.ts.map +0 -1
  406. package/dist/RecordSaveResponse.js +0 -639
  407. package/dist/RecordStorageConcurrency.d.ts +0 -48
  408. package/dist/RecordStorageConcurrency.d.ts.map +0 -1
  409. package/dist/RecordStorageConcurrency.js +0 -103
  410. package/dist/RecordWriteClassification.d.ts +0 -12
  411. package/dist/RecordWriteClassification.d.ts.map +0 -1
  412. package/dist/RecordWriteClassification.js +0 -70
  413. package/dist/action-execution/audit.d.ts +0 -41
  414. package/dist/action-execution/audit.d.ts.map +0 -1
  415. package/dist/action-execution/audit.js +0 -122
  416. package/dist/action-execution/executor.d.ts +0 -24
  417. package/dist/action-execution/executor.d.ts.map +0 -1
  418. package/dist/action-execution/executor.js +0 -435
  419. package/dist/action-execution/failure.d.ts +0 -49
  420. package/dist/action-execution/failure.d.ts.map +0 -1
  421. package/dist/action-execution/failure.js +0 -129
  422. package/dist/action-execution/index.d.ts +0 -7
  423. package/dist/action-execution/index.d.ts.map +0 -1
  424. package/dist/action-execution/index.js +0 -23
  425. package/dist/action-execution/legacy-result.d.ts +0 -21
  426. package/dist/action-execution/legacy-result.d.ts.map +0 -1
  427. package/dist/action-execution/legacy-result.js +0 -70
  428. package/dist/action-execution/policy.d.ts +0 -12
  429. package/dist/action-execution/policy.d.ts.map +0 -1
  430. package/dist/action-execution/policy.js +0 -138
  431. package/dist/action-execution/types.d.ts +0 -121
  432. package/dist/action-execution/types.d.ts.map +0 -1
  433. package/dist/action-execution/types.js +0 -22
  434. package/dist/api-routes/groups/record-schemas.d.ts +0 -5
  435. package/dist/api-routes/groups/record-schemas.d.ts.map +0 -1
  436. package/dist/api-routes/groups/record-schemas.js +0 -181
  437. package/dist/api-routes/record-schema-openapi.d.ts +0 -26
  438. package/dist/api-routes/record-schema-openapi.d.ts.map +0 -1
  439. package/dist/api-routes/record-schema-openapi.js +0 -38
  440. package/dist/api-routes/record-schema-response.d.ts +0 -40
  441. package/dist/api-routes/record-schema-response.d.ts.map +0 -1
  442. package/dist/api-routes/record-schema-response.js +0 -89
  443. package/dist/config/recordSchema.config.d.ts +0 -68
  444. package/dist/config/recordSchema.config.d.ts.map +0 -1
  445. package/dist/config/recordSchema.config.js +0 -173
  446. package/dist/config/recordValidation.config.d.ts +0 -19
  447. package/dist/config/recordValidation.config.d.ts.map +0 -1
  448. package/dist/config/recordValidation.config.js +0 -10
  449. package/dist/configmodels/DashboardFieldCatalogue.d.ts +0 -67
  450. package/dist/configmodels/DashboardFieldCatalogue.d.ts.map +0 -1
  451. package/dist/configmodels/DashboardFieldCatalogue.js +0 -174
  452. package/dist/configmodels/DashboardSettings.d.ts +0 -191
  453. package/dist/configmodels/DashboardSettings.d.ts.map +0 -1
  454. package/dist/configmodels/DashboardSettings.js +0 -705
  455. package/dist/configmodels/OniPublishing.d.ts +0 -205
  456. package/dist/configmodels/OniPublishing.d.ts.map +0 -1
  457. package/dist/configmodels/OniPublishing.js +0 -335
  458. package/dist/configmodels/RaidPublishing.d.ts +0 -97
  459. package/dist/configmodels/RaidPublishing.d.ts.map +0 -1
  460. package/dist/configmodels/RaidPublishing.js +0 -35
  461. package/dist/configmodels/WebAnalytics.d.ts +0 -55
  462. package/dist/configmodels/WebAnalytics.d.ts.map +0 -1
  463. package/dist/configmodels/WebAnalytics.js +0 -61
  464. package/dist/controllers/BrandingControllerSupport.d.ts +0 -20
  465. package/dist/controllers/BrandingControllerSupport.d.ts.map +0 -1
  466. package/dist/controllers/BrandingControllerSupport.js +0 -80
  467. package/dist/controllers/webservice/RecordSchemaController.d.ts +0 -32
  468. package/dist/controllers/webservice/RecordSchemaController.d.ts.map +0 -1
  469. package/dist/controllers/webservice/RecordSchemaController.js +0 -356
  470. package/dist/model/BrandingTypeface.d.ts +0 -70
  471. package/dist/model/BrandingTypeface.d.ts.map +0 -1
  472. package/dist/model/BrandingTypeface.js +0 -116
  473. package/dist/model/record-contract.d.ts +0 -42
  474. package/dist/model/record-contract.d.ts.map +0 -1
  475. package/dist/model/record-contract.js +0 -3
  476. package/dist/model/storage/record-schema.d.ts +0 -115
  477. package/dist/model/storage/record-schema.d.ts.map +0 -1
  478. package/dist/model/storage/record-schema.js +0 -3
  479. package/dist/record-contract/ajv-error-mapper.d.ts +0 -34
  480. package/dist/record-contract/ajv-error-mapper.d.ts.map +0 -1
  481. package/dist/record-contract/ajv-error-mapper.js +0 -153
  482. package/dist/record-contract/canonical-json.d.ts +0 -20
  483. package/dist/record-contract/canonical-json.d.ts.map +0 -1
  484. package/dist/record-contract/canonical-json.js +0 -126
  485. package/dist/record-contract/codes.d.ts +0 -36
  486. package/dist/record-contract/codes.d.ts.map +0 -1
  487. package/dist/record-contract/codes.js +0 -38
  488. package/dist/record-contract/contributor-registry.d.ts +0 -76
  489. package/dist/record-contract/contributor-registry.d.ts.map +0 -1
  490. package/dist/record-contract/contributor-registry.js +0 -126
  491. package/dist/record-contract/core-contributors.d.ts +0 -44
  492. package/dist/record-contract/core-contributors.d.ts.map +0 -1
  493. package/dist/record-contract/core-contributors.js +0 -395
  494. package/dist/record-contract/deep-freeze.d.ts +0 -3
  495. package/dist/record-contract/deep-freeze.d.ts.map +0 -1
  496. package/dist/record-contract/deep-freeze.js +0 -23
  497. package/dist/record-contract/index.d.ts +0 -13
  498. package/dist/record-contract/index.d.ts.map +0 -1
  499. package/dist/record-contract/index.js +0 -29
  500. package/dist/record-contract/json-pointer.d.ts +0 -20
  501. package/dist/record-contract/json-pointer.d.ts.map +0 -1
  502. package/dist/record-contract/json-pointer.js +0 -70
  503. package/dist/record-contract/json-schema-renderer.d.ts +0 -51
  504. package/dist/record-contract/json-schema-renderer.d.ts.map +0 -1
  505. package/dist/record-contract/json-schema-renderer.js +0 -450
  506. package/dist/record-contract/record-contract-compiler.d.ts +0 -42
  507. package/dist/record-contract/record-contract-compiler.d.ts.map +0 -1
  508. package/dist/record-contract/record-contract-compiler.js +0 -775
  509. package/dist/record-contract/record-contract-context.d.ts +0 -91
  510. package/dist/record-contract/record-contract-context.d.ts.map +0 -1
  511. package/dist/record-contract/record-contract-context.js +0 -39
  512. package/dist/record-contract/record-json-schema-artifact.d.ts +0 -74
  513. package/dist/record-contract/record-json-schema-artifact.d.ts.map +0 -1
  514. package/dist/record-contract/record-json-schema-artifact.js +0 -309
  515. package/dist/record-contract/record-json-schema-etag.d.ts +0 -15
  516. package/dist/record-contract/record-json-schema-etag.d.ts.map +0 -1
  517. package/dist/record-contract/record-json-schema-etag.js +0 -41
  518. package/dist/record-contract/types.d.ts +0 -151
  519. package/dist/record-contract/types.d.ts.map +0 -1
  520. package/dist/record-contract/types.js +0 -6
  521. package/dist/services/BrandingTypefaceService.d.ts +0 -74
  522. package/dist/services/BrandingTypefaceService.d.ts.map +0 -1
  523. package/dist/services/BrandingTypefaceService.js +0 -359
  524. package/dist/services/BrandingWoff2Inspector.d.ts +0 -17
  525. package/dist/services/BrandingWoff2Inspector.d.ts.map +0 -1
  526. package/dist/services/BrandingWoff2Inspector.js +0 -402
  527. package/dist/services/DashboardLegacyConversion.d.ts +0 -82
  528. package/dist/services/DashboardLegacyConversion.d.ts.map +0 -1
  529. package/dist/services/DashboardLegacyConversion.js +0 -427
  530. package/dist/services/RecordSchemaService.d.ts +0 -440
  531. package/dist/services/RecordSchemaService.d.ts.map +0 -1
  532. package/dist/services/RecordSchemaService.js +0 -3061
  533. package/dist/services/RecordValidationService.d.ts +0 -340
  534. package/dist/services/RecordValidationService.d.ts.map +0 -1
  535. package/dist/services/RecordValidationService.js +0 -1898
  536. package/dist/services/form-record-access-user.d.ts +0 -3
  537. package/dist/services/form-record-access-user.d.ts.map +0 -1
  538. package/dist/services/form-record-access-user.js +0 -23
  539. package/dist/services/integration-v2/bindings.d.ts +0 -3
  540. package/dist/services/integration-v2/bindings.d.ts.map +0 -1
  541. package/dist/services/integration-v2/bindings.js +0 -91
  542. package/dist/services/integration-v2/runtime.d.ts +0 -3
  543. package/dist/services/integration-v2/runtime.d.ts.map +0 -1
  544. package/dist/services/integration-v2/runtime.js +0 -50
  545. package/dist/services/internal-record-schema-authorization.d.ts +0 -8
  546. package/dist/services/internal-record-schema-authorization.d.ts.map +0 -1
  547. package/dist/services/internal-record-schema-authorization.js +0 -16
  548. package/dist/services/oni-v2/audit.d.ts +0 -19
  549. package/dist/services/oni-v2/audit.d.ts.map +0 -1
  550. package/dist/services/oni-v2/audit.js +0 -50
  551. package/dist/services/oni-v2/bindings.d.ts +0 -7
  552. package/dist/services/oni-v2/bindings.d.ts.map +0 -1
  553. package/dist/services/oni-v2/bindings.js +0 -31
  554. package/dist/services/oni-v2/config.d.ts +0 -12
  555. package/dist/services/oni-v2/config.d.ts.map +0 -1
  556. package/dist/services/oni-v2/config.js +0 -134
  557. package/dist/services/oni-v2/context.d.ts +0 -3
  558. package/dist/services/oni-v2/context.d.ts.map +0 -1
  559. package/dist/services/oni-v2/context.js +0 -17
  560. package/dist/services/oni-v2/crate.d.ts +0 -17
  561. package/dist/services/oni-v2/crate.d.ts.map +0 -1
  562. package/dist/services/oni-v2/crate.js +0 -504
  563. package/dist/services/oni-v2/flydriveOcflStore.d.ts +0 -69
  564. package/dist/services/oni-v2/flydriveOcflStore.d.ts.map +0 -1
  565. package/dist/services/oni-v2/flydriveOcflStore.js +0 -325
  566. package/dist/services/oni-v2/ingestion.d.ts +0 -37
  567. package/dist/services/oni-v2/ingestion.d.ts.map +0 -1
  568. package/dist/services/oni-v2/ingestion.js +0 -91
  569. package/dist/services/oni-v2/mapping.d.ts +0 -17
  570. package/dist/services/oni-v2/mapping.d.ts.map +0 -1
  571. package/dist/services/oni-v2/mapping.js +0 -137
  572. package/dist/services/oni-v2/repository.d.ts +0 -9
  573. package/dist/services/oni-v2/repository.d.ts.map +0 -1
  574. package/dist/services/oni-v2/repository.js +0 -180
  575. package/dist/services/oni-v2/runtime.d.ts +0 -23
  576. package/dist/services/oni-v2/runtime.d.ts.map +0 -1
  577. package/dist/services/oni-v2/runtime.js +0 -121
  578. package/dist/services/oni-v2/templating.d.ts +0 -11
  579. package/dist/services/oni-v2/templating.d.ts.map +0 -1
  580. package/dist/services/oni-v2/templating.js +0 -27
  581. package/dist/services/oni-v2/types.d.ts +0 -100
  582. package/dist/services/oni-v2/types.d.ts.map +0 -1
  583. package/dist/services/oni-v2/types.js +0 -3
  584. package/dist/services/raid-v2/audit.d.ts +0 -10
  585. package/dist/services/raid-v2/audit.d.ts.map +0 -1
  586. package/dist/services/raid-v2/audit.js +0 -29
  587. package/dist/services/raid-v2/errors.d.ts +0 -85
  588. package/dist/services/raid-v2/errors.d.ts.map +0 -1
  589. package/dist/services/raid-v2/errors.js +0 -36
  590. package/dist/services/raid-v2/http.d.ts +0 -4
  591. package/dist/services/raid-v2/http.d.ts.map +0 -1
  592. package/dist/services/raid-v2/http.js +0 -84
  593. package/dist/services/raid-v2/logger.d.ts +0 -8
  594. package/dist/services/raid-v2/logger.d.ts.map +0 -1
  595. package/dist/services/raid-v2/logger.js +0 -30
  596. package/dist/services/raid-v2/mapping.d.ts +0 -9
  597. package/dist/services/raid-v2/mapping.d.ts.map +0 -1
  598. package/dist/services/raid-v2/mapping.js +0 -168
  599. package/dist/services/raid-v2/runtime.d.ts +0 -5
  600. package/dist/services/raid-v2/runtime.d.ts.map +0 -1
  601. package/dist/services/raid-v2/runtime.js +0 -135
  602. package/dist/services/raid-v2/tags.d.ts +0 -11
  603. package/dist/services/raid-v2/tags.d.ts.map +0 -1
  604. package/dist/services/raid-v2/tags.js +0 -12
  605. package/dist/services/raid-v2/types.d.ts +0 -66
  606. package/dist/services/raid-v2/types.d.ts.map +0 -1
  607. package/dist/services/raid-v2/types.js +0 -3
  608. package/dist/services/record-hooks/coordinator.d.ts +0 -64
  609. package/dist/services/record-hooks/coordinator.d.ts.map +0 -1
  610. package/dist/services/record-hooks/coordinator.js +0 -276
  611. package/dist/visitor/related-object-data-inline.visitor.d.ts +0 -31
  612. package/dist/visitor/related-object-data-inline.visitor.d.ts.map +0 -1
  613. package/dist/visitor/related-object-data-inline.visitor.js +0 -96
  614. package/dist/waterline-models/DashboardConfiguration.d.ts +0 -29
  615. package/dist/waterline-models/DashboardConfiguration.d.ts.map +0 -1
  616. 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