@riboseinc/paneron-registry-kit 2.0.1 → 2.0.2

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 (501) hide show
  1. package/package.json +1 -1
  2. package/LICENSE +0 -21
  3. package/README.adoc +0 -35
  4. package/compiled/common.js +0 -2
  5. package/compiled/index.js +0 -21
  6. package/compiled/migrations/initial.js +0 -8
  7. package/compiled/types/cr.js +0 -131
  8. package/compiled/types/index.js +0 -8
  9. package/compiled/types/item.js +0 -22
  10. package/compiled/types/proposal.js +0 -21
  11. package/compiled/types/register.js +0 -25
  12. package/compiled/types/registry.js +0 -10
  13. package/compiled/types/stakeholder.js +0 -34
  14. package/compiled/types/util.js +0 -3
  15. package/compiled/types/views.js +0 -2
  16. package/compiled/views/AnnotatedChange.js +0 -57
  17. package/compiled/views/BrowserCtx.js +0 -19
  18. package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -110
  19. package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js +0 -40
  20. package/compiled/views/FilterCriteria/criteriaGroupToSummary.js +0 -47
  21. package/compiled/views/FilterCriteria/criteriaToNodes.js +0 -89
  22. package/compiled/views/FilterCriteria/index.js +0 -75
  23. package/compiled/views/FilterCriteria/models.js +0 -28
  24. package/compiled/views/FilterCriteria/mutateGroup.js +0 -53
  25. package/compiled/views/GenericRelatedItemView.js +0 -147
  26. package/compiled/views/RegisterStakeholder.js +0 -19
  27. package/compiled/views/RegisterVersion.js +0 -20
  28. package/compiled/views/SearchQuery.js +0 -58
  29. package/compiled/views/change-request/ChangeRequestContext.js +0 -30
  30. package/compiled/views/change-request/Proposals.js +0 -185
  31. package/compiled/views/change-request/objectChangeset.js +0 -189
  32. package/compiled/views/detail/ChangeRequest/Proposal.js +0 -144
  33. package/compiled/views/detail/ChangeRequest/index.js +0 -140
  34. package/compiled/views/detail/ChangeRequest/transitions.js +0 -418
  35. package/compiled/views/detail/CustomView/index.js +0 -32
  36. package/compiled/views/detail/RegisterHome/index.js +0 -70
  37. package/compiled/views/detail/RegisterItem/RelatedItems.js +0 -28
  38. package/compiled/views/detail/RegisterItem/SupersedingItemMenu.js +0 -27
  39. package/compiled/views/detail/RegisterItem/index.js +0 -277
  40. package/compiled/views/detail/RegisterMeta/RegisterMetaForm.js +0 -135
  41. package/compiled/views/detail/RegisterMeta/index.js +0 -61
  42. package/compiled/views/detail/index.js +0 -11
  43. package/compiled/views/diffing/InlineDiff.js +0 -20
  44. package/compiled/views/diffing/StructuredDiff.js +0 -38
  45. package/compiled/views/hooks/useCustomView.js +0 -14
  46. package/compiled/views/hooks/useItemClassConfig.js +0 -14
  47. package/compiled/views/hooks/useItemRef.js +0 -26
  48. package/compiled/views/hooks/useSingleRegisterItemData.js +0 -21
  49. package/compiled/views/index.js +0 -142
  50. package/compiled/views/itemPathUtils.js +0 -115
  51. package/compiled/views/itemQueryUtils.js +0 -42
  52. package/compiled/views/protocolRegistry.js +0 -24
  53. package/compiled/views/sidebar/Browse/index.js +0 -278
  54. package/compiled/views/sidebar/Export/index.js +0 -47
  55. package/compiled/views/sidebar/ListItem.js +0 -23
  56. package/compiled/views/sidebar/Registration/index.js +0 -114
  57. package/compiled/views/sidebar/Search/index.js +0 -100
  58. package/compiled/views/sidebar/index.js +0 -73
  59. package/compiled/views/util.js +0 -63
  60. package/dependencies-local/extension-kit/SettingsContext.d.ts +0 -8
  61. package/dependencies-local/extension-kit/SettingsContext.js +0 -19
  62. package/dependencies-local/extension-kit/SettingsContext.js.map +0 -1
  63. package/dependencies-local/extension-kit/context.d.ts +0 -11
  64. package/dependencies-local/extension-kit/context.js +0 -133
  65. package/dependencies-local/extension-kit/context.js.map +0 -1
  66. package/dependencies-local/extension-kit/i18n/ContextProvider.d.ts +0 -9
  67. package/dependencies-local/extension-kit/i18n/ContextProvider.js +0 -33
  68. package/dependencies-local/extension-kit/i18n/ContextProvider.js.map +0 -1
  69. package/dependencies-local/extension-kit/i18n/context.d.ts +0 -9
  70. package/dependencies-local/extension-kit/i18n/context.js +0 -23
  71. package/dependencies-local/extension-kit/i18n/context.js.map +0 -1
  72. package/dependencies-local/extension-kit/i18n/types.d.ts +0 -10
  73. package/dependencies-local/extension-kit/i18n/types.js +0 -5
  74. package/dependencies-local/extension-kit/i18n/types.js.map +0 -1
  75. package/dependencies-local/extension-kit/i18n/widgets.d.ts +0 -16
  76. package/dependencies-local/extension-kit/i18n/widgets.js +0 -56
  77. package/dependencies-local/extension-kit/i18n/widgets.js.map +0 -1
  78. package/dependencies-local/extension-kit/index.d.ts +0 -3
  79. package/dependencies-local/extension-kit/index.js +0 -78
  80. package/dependencies-local/extension-kit/index.js.map +0 -1
  81. package/dependencies-local/extension-kit/object-specs/index.d.ts +0 -2
  82. package/dependencies-local/extension-kit/object-specs/index.js +0 -22
  83. package/dependencies-local/extension-kit/object-specs/index.js.map +0 -1
  84. package/dependencies-local/extension-kit/object-specs/paneron-object.d.ts +0 -6
  85. package/dependencies-local/extension-kit/object-specs/paneron-object.js +0 -161
  86. package/dependencies-local/extension-kit/object-specs/paneron-object.js.map +0 -1
  87. package/dependencies-local/extension-kit/object-specs/ser-des.d.ts +0 -31
  88. package/dependencies-local/extension-kit/object-specs/ser-des.js +0 -187
  89. package/dependencies-local/extension-kit/object-specs/ser-des.js.map +0 -1
  90. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.d.ts +0 -2
  91. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js +0 -42
  92. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js.map +0 -1
  93. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.d.ts +0 -3
  94. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js +0 -110
  95. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js.map +0 -1
  96. package/dependencies-local/extension-kit/object-specs/yaml/index.d.ts +0 -9
  97. package/dependencies-local/extension-kit/object-specs/yaml/index.js +0 -36
  98. package/dependencies-local/extension-kit/object-specs/yaml/index.js.map +0 -1
  99. package/dependencies-local/extension-kit/object-specs/yaml/schema.d.ts +0 -3
  100. package/dependencies-local/extension-kit/object-specs/yaml/schema.js +0 -26
  101. package/dependencies-local/extension-kit/object-specs/yaml/schema.js.map +0 -1
  102. package/dependencies-local/extension-kit/package.json +0 -53
  103. package/dependencies-local/extension-kit/settings.d.ts +0 -6
  104. package/dependencies-local/extension-kit/settings.js +0 -11
  105. package/dependencies-local/extension-kit/settings.js.map +0 -1
  106. package/dependencies-local/extension-kit/types/binary-invocation.d.ts +0 -31
  107. package/dependencies-local/extension-kit/types/binary-invocation.js +0 -5
  108. package/dependencies-local/extension-kit/types/binary-invocation.js.map +0 -1
  109. package/dependencies-local/extension-kit/types/buffers.d.ts +0 -17
  110. package/dependencies-local/extension-kit/types/buffers.js +0 -5
  111. package/dependencies-local/extension-kit/types/buffers.js.map +0 -1
  112. package/dependencies-local/extension-kit/types/changes.d.ts +0 -37
  113. package/dependencies-local/extension-kit/types/changes.js +0 -5
  114. package/dependencies-local/extension-kit/types/changes.js.map +0 -1
  115. package/dependencies-local/extension-kit/types/data.d.ts +0 -54
  116. package/dependencies-local/extension-kit/types/data.js +0 -5
  117. package/dependencies-local/extension-kit/types/data.js.map +0 -1
  118. package/dependencies-local/extension-kit/types/dialogs.d.ts +0 -15
  119. package/dependencies-local/extension-kit/types/dialogs.js +0 -5
  120. package/dependencies-local/extension-kit/types/dialogs.js.map +0 -1
  121. package/dependencies-local/extension-kit/types/extension-maker.d.ts +0 -17
  122. package/dependencies-local/extension-kit/types/extension-maker.js +0 -5
  123. package/dependencies-local/extension-kit/types/extension-maker.js.map +0 -1
  124. package/dependencies-local/extension-kit/types/extension.d.ts +0 -27
  125. package/dependencies-local/extension-kit/types/extension.js +0 -5
  126. package/dependencies-local/extension-kit/types/extension.js.map +0 -1
  127. package/dependencies-local/extension-kit/types/index.d.ts +0 -3
  128. package/dependencies-local/extension-kit/types/index.js +0 -41
  129. package/dependencies-local/extension-kit/types/index.js.map +0 -1
  130. package/dependencies-local/extension-kit/types/indexes.d.ts +0 -6
  131. package/dependencies-local/extension-kit/types/indexes.js +0 -15
  132. package/dependencies-local/extension-kit/types/indexes.js.map +0 -1
  133. package/dependencies-local/extension-kit/types/migrations.d.ts +0 -15
  134. package/dependencies-local/extension-kit/types/migrations.js +0 -5
  135. package/dependencies-local/extension-kit/types/migrations.js.map +0 -1
  136. package/dependencies-local/extension-kit/types/object-spec.d.ts +0 -108
  137. package/dependencies-local/extension-kit/types/object-spec.js +0 -23
  138. package/dependencies-local/extension-kit/types/object-spec.js.map +0 -1
  139. package/dependencies-local/extension-kit/types/objects.d.ts +0 -18
  140. package/dependencies-local/extension-kit/types/objects.js +0 -5
  141. package/dependencies-local/extension-kit/types/objects.js.map +0 -1
  142. package/dependencies-local/extension-kit/types/progress.d.ts +0 -5
  143. package/dependencies-local/extension-kit/types/progress.js +0 -5
  144. package/dependencies-local/extension-kit/types/progress.js.map +0 -1
  145. package/dependencies-local/extension-kit/types/renderer.d.ts +0 -495
  146. package/dependencies-local/extension-kit/types/renderer.js +0 -5
  147. package/dependencies-local/extension-kit/types/renderer.js.map +0 -1
  148. package/dependencies-local/extension-kit/useDebounce.d.ts +0 -2
  149. package/dependencies-local/extension-kit/useDebounce.js +0 -27
  150. package/dependencies-local/extension-kit/useDebounce.js.map +0 -1
  151. package/dependencies-local/extension-kit/usePersistentStateReducer.d.ts +0 -35
  152. package/dependencies-local/extension-kit/usePersistentStateReducer.js +0 -91
  153. package/dependencies-local/extension-kit/usePersistentStateReducer.js.map +0 -1
  154. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.d.ts +0 -48
  155. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js +0 -116
  156. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js.map +0 -1
  157. package/dependencies-local/extension-kit/util.d.ts +0 -8
  158. package/dependencies-local/extension-kit/util.js +0 -21
  159. package/dependencies-local/extension-kit/util.js.map +0 -1
  160. package/dependencies-local/extension-kit/widgets/ErrorState.d.ts +0 -8
  161. package/dependencies-local/extension-kit/widgets/ErrorState.js +0 -44
  162. package/dependencies-local/extension-kit/widgets/ErrorState.js.map +0 -1
  163. package/dependencies-local/extension-kit/widgets/Grid.d.ts +0 -41
  164. package/dependencies-local/extension-kit/widgets/Grid.js +0 -213
  165. package/dependencies-local/extension-kit/widgets/Grid.js.map +0 -1
  166. package/dependencies-local/extension-kit/widgets/HelpTooltip.d.ts +0 -18
  167. package/dependencies-local/extension-kit/widgets/HelpTooltip.js +0 -84
  168. package/dependencies-local/extension-kit/widgets/HelpTooltip.js.map +0 -1
  169. package/dependencies-local/extension-kit/widgets/ItemCount.d.ts +0 -19
  170. package/dependencies-local/extension-kit/widgets/ItemCount.js +0 -78
  171. package/dependencies-local/extension-kit/widgets/ItemCount.js.map +0 -1
  172. package/dependencies-local/extension-kit/widgets/List.d.ts +0 -40
  173. package/dependencies-local/extension-kit/widgets/List.js +0 -191
  174. package/dependencies-local/extension-kit/widgets/List.js.map +0 -1
  175. package/dependencies-local/extension-kit/widgets/Navbar.d.ts +0 -20
  176. package/dependencies-local/extension-kit/widgets/Navbar.js +0 -75
  177. package/dependencies-local/extension-kit/widgets/Navbar.js.map +0 -1
  178. package/dependencies-local/extension-kit/widgets/SearchResultList.d.ts +0 -24
  179. package/dependencies-local/extension-kit/widgets/SearchResultList.js +0 -201
  180. package/dependencies-local/extension-kit/widgets/SearchResultList.js.map +0 -1
  181. package/dependencies-local/extension-kit/widgets/Sidebar/Block.d.ts +0 -21
  182. package/dependencies-local/extension-kit/widgets/Sidebar/Block.js +0 -94
  183. package/dependencies-local/extension-kit/widgets/Sidebar/Block.js.map +0 -1
  184. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.d.ts +0 -6
  185. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js +0 -22
  186. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js.map +0 -1
  187. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.d.ts +0 -28
  188. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js +0 -148
  189. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js.map +0 -1
  190. package/dependencies-local/extension-kit/widgets/Sidebar/index.d.ts +0 -27
  191. package/dependencies-local/extension-kit/widgets/Sidebar/index.js +0 -178
  192. package/dependencies-local/extension-kit/widgets/Sidebar/index.js.map +0 -1
  193. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.d.ts +0 -13
  194. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js +0 -82
  195. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js.map +0 -1
  196. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.d.ts +0 -10
  197. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js +0 -168
  198. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js.map +0 -1
  199. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.d.ts +0 -9
  200. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js +0 -66
  201. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js.map +0 -1
  202. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.d.ts +0 -33
  203. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js +0 -204
  204. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js.map +0 -1
  205. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.d.ts +0 -74
  206. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js +0 -5
  207. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js.map +0 -1
  208. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.d.ts +0 -1
  209. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js +0 -14
  210. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js.map +0 -1
  211. package/dependencies-local/extension-kit/widgets/Workspace.d.ts +0 -38
  212. package/dependencies-local/extension-kit/widgets/Workspace.js +0 -99
  213. package/dependencies-local/extension-kit/widgets/Workspace.js.map +0 -1
  214. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.d.ts +0 -12
  215. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js +0 -57
  216. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js.map +0 -1
  217. package/dependencies-local/extension-kit/widgets/panels/index.d.ts +0 -28
  218. package/dependencies-local/extension-kit/widgets/panels/index.js +0 -169
  219. package/dependencies-local/extension-kit/widgets/panels/index.js.map +0 -1
  220. package/dist/common.d.ts +0 -1
  221. package/dist/common.js.map +0 -1
  222. package/dist/index.d.ts +0 -6
  223. package/dist/index.js.map +0 -1
  224. package/dist/migrations/initial.d.ts +0 -3
  225. package/dist/migrations/initial.js.map +0 -1
  226. package/dist/package.json +0 -56
  227. package/dist/types/cr.d.ts +0 -216
  228. package/dist/types/cr.js.map +0 -1
  229. package/dist/types/index.d.ts +0 -7
  230. package/dist/types/index.js.map +0 -1
  231. package/dist/types/item.d.ts +0 -59
  232. package/dist/types/item.js.map +0 -1
  233. package/dist/types/proposal.d.ts +0 -64
  234. package/dist/types/proposal.js.map +0 -1
  235. package/dist/types/register.d.ts +0 -18
  236. package/dist/types/register.js.map +0 -1
  237. package/dist/types/registry.d.ts +0 -15
  238. package/dist/types/registry.js.map +0 -1
  239. package/dist/types/stakeholder.d.ts +0 -58
  240. package/dist/types/stakeholder.js.map +0 -1
  241. package/dist/types/util.d.ts +0 -21
  242. package/dist/types/util.js.map +0 -1
  243. package/dist/types/views.d.ts +0 -157
  244. package/dist/types/views.js.map +0 -1
  245. package/dist/views/AnnotatedChange.d.ts +0 -7
  246. package/dist/views/AnnotatedChange.js.map +0 -1
  247. package/dist/views/BrowserCtx.d.ts +0 -73
  248. package/dist/views/BrowserCtx.js.map +0 -1
  249. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -17
  250. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -1
  251. package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +0 -6
  252. package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -1
  253. package/dist/views/FilterCriteria/criteriaGroupToSummary.d.ts +0 -5
  254. package/dist/views/FilterCriteria/criteriaGroupToSummary.js.map +0 -1
  255. package/dist/views/FilterCriteria/criteriaToNodes.d.ts +0 -24
  256. package/dist/views/FilterCriteria/criteriaToNodes.js.map +0 -1
  257. package/dist/views/FilterCriteria/index.d.ts +0 -23
  258. package/dist/views/FilterCriteria/index.js.map +0 -1
  259. package/dist/views/FilterCriteria/models.d.ts +0 -68
  260. package/dist/views/FilterCriteria/models.js.map +0 -1
  261. package/dist/views/FilterCriteria/mutateGroup.d.ts +0 -17
  262. package/dist/views/FilterCriteria/mutateGroup.js.map +0 -1
  263. package/dist/views/GenericRelatedItemView.d.ts +0 -6
  264. package/dist/views/GenericRelatedItemView.js.map +0 -1
  265. package/dist/views/RegisterStakeholder.d.ts +0 -9
  266. package/dist/views/RegisterStakeholder.js.map +0 -1
  267. package/dist/views/RegisterVersion.d.ts +0 -9
  268. package/dist/views/RegisterVersion.js.map +0 -1
  269. package/dist/views/SearchQuery.d.ts +0 -13
  270. package/dist/views/SearchQuery.js.map +0 -1
  271. package/dist/views/change-request/ChangeRequestContext.d.ts +0 -20
  272. package/dist/views/change-request/ChangeRequestContext.js.map +0 -1
  273. package/dist/views/change-request/Proposals.d.ts +0 -21
  274. package/dist/views/change-request/Proposals.js.map +0 -1
  275. package/dist/views/change-request/objectChangeset.d.ts +0 -31
  276. package/dist/views/change-request/objectChangeset.js.map +0 -1
  277. package/dist/views/detail/ChangeRequest/Proposal.d.ts +0 -0
  278. package/dist/views/detail/ChangeRequest/Proposal.js.map +0 -1
  279. package/dist/views/detail/ChangeRequest/index.d.ts +0 -13
  280. package/dist/views/detail/ChangeRequest/index.js.map +0 -1
  281. package/dist/views/detail/ChangeRequest/transitions.d.ts +0 -28
  282. package/dist/views/detail/ChangeRequest/transitions.js.map +0 -1
  283. package/dist/views/detail/CustomView/index.d.ts +0 -13
  284. package/dist/views/detail/CustomView/index.js.map +0 -1
  285. package/dist/views/detail/RegisterHome/index.d.ts +0 -5
  286. package/dist/views/detail/RegisterHome/index.js.map +0 -1
  287. package/dist/views/detail/RegisterItem/RelatedItems.d.ts +0 -14
  288. package/dist/views/detail/RegisterItem/RelatedItems.js.map +0 -1
  289. package/dist/views/detail/RegisterItem/SupersedingItemMenu.d.ts +0 -13
  290. package/dist/views/detail/RegisterItem/SupersedingItemMenu.js.map +0 -1
  291. package/dist/views/detail/RegisterItem/index.d.ts +0 -13
  292. package/dist/views/detail/RegisterItem/index.js.map +0 -1
  293. package/dist/views/detail/RegisterMeta/RegisterMetaForm.d.ts +0 -10
  294. package/dist/views/detail/RegisterMeta/RegisterMetaForm.js.map +0 -1
  295. package/dist/views/detail/RegisterMeta/index.d.ts +0 -10
  296. package/dist/views/detail/RegisterMeta/index.js.map +0 -1
  297. package/dist/views/detail/index.d.ts +0 -1
  298. package/dist/views/detail/index.js.map +0 -1
  299. package/dist/views/diffing/InlineDiff.d.ts +0 -12
  300. package/dist/views/diffing/InlineDiff.js.map +0 -1
  301. package/dist/views/diffing/StructuredDiff.d.ts +0 -11
  302. package/dist/views/diffing/StructuredDiff.js.map +0 -1
  303. package/dist/views/hooks/useCustomView.d.ts +0 -3
  304. package/dist/views/hooks/useCustomView.js.map +0 -1
  305. package/dist/views/hooks/useItemClassConfig.d.ts +0 -3
  306. package/dist/views/hooks/useItemClassConfig.js.map +0 -1
  307. package/dist/views/hooks/useItemRef.d.ts +0 -3
  308. package/dist/views/hooks/useItemRef.js.map +0 -1
  309. package/dist/views/hooks/useSingleRegisterItemData.d.ts +0 -3
  310. package/dist/views/hooks/useSingleRegisterItemData.js.map +0 -1
  311. package/dist/views/index.d.ts +0 -7
  312. package/dist/views/index.js.map +0 -1
  313. package/dist/views/itemPathUtils.d.ts +0 -52
  314. package/dist/views/itemPathUtils.js.map +0 -1
  315. package/dist/views/itemQueryUtils.d.ts +0 -11
  316. package/dist/views/itemQueryUtils.js.map +0 -1
  317. package/dist/views/protocolRegistry.d.ts +0 -12
  318. package/dist/views/protocolRegistry.js.map +0 -1
  319. package/dist/views/sidebar/Browse/index.d.ts +0 -11
  320. package/dist/views/sidebar/Browse/index.js.map +0 -1
  321. package/dist/views/sidebar/Export/index.d.ts +0 -5
  322. package/dist/views/sidebar/Export/index.js.map +0 -1
  323. package/dist/views/sidebar/ListItem.d.ts +0 -10
  324. package/dist/views/sidebar/ListItem.js.map +0 -1
  325. package/dist/views/sidebar/Registration/index.d.ts +0 -5
  326. package/dist/views/sidebar/Registration/index.js.map +0 -1
  327. package/dist/views/sidebar/Search/index.d.ts +0 -18
  328. package/dist/views/sidebar/Search/index.js.map +0 -1
  329. package/dist/views/sidebar/index.d.ts +0 -6
  330. package/dist/views/sidebar/index.js.map +0 -1
  331. package/dist/views/util.d.ts +0 -36
  332. package/dist/views/util.js.map +0 -1
  333. package/react-visual-diff.d.ts +0 -9
  334. /package/{compiled/common.d.ts → common.d.ts} +0 -0
  335. /package/{dist/common.js → common.js} +0 -0
  336. /package/{compiled/common.js.map → common.js.map} +0 -0
  337. /package/{compiled/index.d.ts → index.d.ts} +0 -0
  338. /package/{dist/index.js → index.js} +0 -0
  339. /package/{compiled/index.js.map → index.js.map} +0 -0
  340. /package/{compiled/migrations → migrations}/initial.d.ts +0 -0
  341. /package/{dist/migrations → migrations}/initial.js +0 -0
  342. /package/{compiled/migrations → migrations}/initial.js.map +0 -0
  343. /package/{compiled/types → types}/cr.d.ts +0 -0
  344. /package/{dist/types → types}/cr.js +0 -0
  345. /package/{compiled/types → types}/cr.js.map +0 -0
  346. /package/{compiled/types → types}/index.d.ts +0 -0
  347. /package/{dist/types → types}/index.js +0 -0
  348. /package/{compiled/types → types}/index.js.map +0 -0
  349. /package/{compiled/types → types}/item.d.ts +0 -0
  350. /package/{dist/types → types}/item.js +0 -0
  351. /package/{compiled/types → types}/item.js.map +0 -0
  352. /package/{compiled/types → types}/proposal.d.ts +0 -0
  353. /package/{dist/types → types}/proposal.js +0 -0
  354. /package/{compiled/types → types}/proposal.js.map +0 -0
  355. /package/{compiled/types → types}/register.d.ts +0 -0
  356. /package/{dist/types → types}/register.js +0 -0
  357. /package/{compiled/types → types}/register.js.map +0 -0
  358. /package/{compiled/types → types}/registry.d.ts +0 -0
  359. /package/{dist/types → types}/registry.js +0 -0
  360. /package/{compiled/types → types}/registry.js.map +0 -0
  361. /package/{compiled/types → types}/stakeholder.d.ts +0 -0
  362. /package/{dist/types → types}/stakeholder.js +0 -0
  363. /package/{compiled/types → types}/stakeholder.js.map +0 -0
  364. /package/{compiled/types → types}/util.d.ts +0 -0
  365. /package/{dist/types → types}/util.js +0 -0
  366. /package/{compiled/types → types}/util.js.map +0 -0
  367. /package/{compiled/types → types}/views.d.ts +0 -0
  368. /package/{dist/types → types}/views.js +0 -0
  369. /package/{compiled/types → types}/views.js.map +0 -0
  370. /package/{compiled/views → views}/AnnotatedChange.d.ts +0 -0
  371. /package/{dist/views → views}/AnnotatedChange.js +0 -0
  372. /package/{compiled/views → views}/AnnotatedChange.js.map +0 -0
  373. /package/{compiled/views → views}/BrowserCtx.d.ts +0 -0
  374. /package/{dist/views → views}/BrowserCtx.js +0 -0
  375. /package/{compiled/views → views}/BrowserCtx.js.map +0 -0
  376. /package/{compiled/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -0
  377. /package/{dist/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -0
  378. /package/{compiled/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -0
  379. /package/{compiled/views → views}/FilterCriteria/criteriaGroupToQueryExpression.d.ts +0 -0
  380. /package/{dist/views → views}/FilterCriteria/criteriaGroupToQueryExpression.js +0 -0
  381. /package/{compiled/views → views}/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -0
  382. /package/{compiled/views → views}/FilterCriteria/criteriaGroupToSummary.d.ts +0 -0
  383. /package/{dist/views → views}/FilterCriteria/criteriaGroupToSummary.js +0 -0
  384. /package/{compiled/views → views}/FilterCriteria/criteriaGroupToSummary.js.map +0 -0
  385. /package/{compiled/views → views}/FilterCriteria/criteriaToNodes.d.ts +0 -0
  386. /package/{dist/views → views}/FilterCriteria/criteriaToNodes.js +0 -0
  387. /package/{compiled/views → views}/FilterCriteria/criteriaToNodes.js.map +0 -0
  388. /package/{compiled/views → views}/FilterCriteria/index.d.ts +0 -0
  389. /package/{dist/views → views}/FilterCriteria/index.js +0 -0
  390. /package/{compiled/views → views}/FilterCriteria/index.js.map +0 -0
  391. /package/{compiled/views → views}/FilterCriteria/models.d.ts +0 -0
  392. /package/{dist/views → views}/FilterCriteria/models.js +0 -0
  393. /package/{compiled/views → views}/FilterCriteria/models.js.map +0 -0
  394. /package/{compiled/views → views}/FilterCriteria/mutateGroup.d.ts +0 -0
  395. /package/{dist/views → views}/FilterCriteria/mutateGroup.js +0 -0
  396. /package/{compiled/views → views}/FilterCriteria/mutateGroup.js.map +0 -0
  397. /package/{compiled/views → views}/GenericRelatedItemView.d.ts +0 -0
  398. /package/{dist/views → views}/GenericRelatedItemView.js +0 -0
  399. /package/{compiled/views → views}/GenericRelatedItemView.js.map +0 -0
  400. /package/{compiled/views → views}/RegisterStakeholder.d.ts +0 -0
  401. /package/{dist/views → views}/RegisterStakeholder.js +0 -0
  402. /package/{compiled/views → views}/RegisterStakeholder.js.map +0 -0
  403. /package/{compiled/views → views}/RegisterVersion.d.ts +0 -0
  404. /package/{dist/views → views}/RegisterVersion.js +0 -0
  405. /package/{compiled/views → views}/RegisterVersion.js.map +0 -0
  406. /package/{compiled/views → views}/SearchQuery.d.ts +0 -0
  407. /package/{dist/views → views}/SearchQuery.js +0 -0
  408. /package/{compiled/views → views}/SearchQuery.js.map +0 -0
  409. /package/{compiled/views → views}/change-request/ChangeRequestContext.d.ts +0 -0
  410. /package/{dist/views → views}/change-request/ChangeRequestContext.js +0 -0
  411. /package/{compiled/views → views}/change-request/ChangeRequestContext.js.map +0 -0
  412. /package/{compiled/views → views}/change-request/Proposals.d.ts +0 -0
  413. /package/{dist/views → views}/change-request/Proposals.js +0 -0
  414. /package/{compiled/views → views}/change-request/Proposals.js.map +0 -0
  415. /package/{compiled/views → views}/change-request/objectChangeset.d.ts +0 -0
  416. /package/{dist/views → views}/change-request/objectChangeset.js +0 -0
  417. /package/{compiled/views → views}/change-request/objectChangeset.js.map +0 -0
  418. /package/{compiled/views → views}/detail/ChangeRequest/Proposal.d.ts +0 -0
  419. /package/{dist/views → views}/detail/ChangeRequest/Proposal.js +0 -0
  420. /package/{compiled/views → views}/detail/ChangeRequest/Proposal.js.map +0 -0
  421. /package/{compiled/views → views}/detail/ChangeRequest/index.d.ts +0 -0
  422. /package/{dist/views → views}/detail/ChangeRequest/index.js +0 -0
  423. /package/{compiled/views → views}/detail/ChangeRequest/index.js.map +0 -0
  424. /package/{compiled/views → views}/detail/ChangeRequest/transitions.d.ts +0 -0
  425. /package/{dist/views → views}/detail/ChangeRequest/transitions.js +0 -0
  426. /package/{compiled/views → views}/detail/ChangeRequest/transitions.js.map +0 -0
  427. /package/{compiled/views → views}/detail/CustomView/index.d.ts +0 -0
  428. /package/{dist/views → views}/detail/CustomView/index.js +0 -0
  429. /package/{compiled/views → views}/detail/CustomView/index.js.map +0 -0
  430. /package/{compiled/views → views}/detail/RegisterHome/index.d.ts +0 -0
  431. /package/{dist/views → views}/detail/RegisterHome/index.js +0 -0
  432. /package/{compiled/views → views}/detail/RegisterHome/index.js.map +0 -0
  433. /package/{compiled/views → views}/detail/RegisterItem/RelatedItems.d.ts +0 -0
  434. /package/{dist/views → views}/detail/RegisterItem/RelatedItems.js +0 -0
  435. /package/{compiled/views → views}/detail/RegisterItem/RelatedItems.js.map +0 -0
  436. /package/{compiled/views → views}/detail/RegisterItem/SupersedingItemMenu.d.ts +0 -0
  437. /package/{dist/views → views}/detail/RegisterItem/SupersedingItemMenu.js +0 -0
  438. /package/{compiled/views → views}/detail/RegisterItem/SupersedingItemMenu.js.map +0 -0
  439. /package/{compiled/views → views}/detail/RegisterItem/index.d.ts +0 -0
  440. /package/{dist/views → views}/detail/RegisterItem/index.js +0 -0
  441. /package/{compiled/views → views}/detail/RegisterItem/index.js.map +0 -0
  442. /package/{compiled/views → views}/detail/RegisterMeta/RegisterMetaForm.d.ts +0 -0
  443. /package/{dist/views → views}/detail/RegisterMeta/RegisterMetaForm.js +0 -0
  444. /package/{compiled/views → views}/detail/RegisterMeta/RegisterMetaForm.js.map +0 -0
  445. /package/{compiled/views → views}/detail/RegisterMeta/index.d.ts +0 -0
  446. /package/{dist/views → views}/detail/RegisterMeta/index.js +0 -0
  447. /package/{compiled/views → views}/detail/RegisterMeta/index.js.map +0 -0
  448. /package/{compiled/views → views}/detail/index.d.ts +0 -0
  449. /package/{dist/views → views}/detail/index.js +0 -0
  450. /package/{compiled/views → views}/detail/index.js.map +0 -0
  451. /package/{compiled/views → views}/diffing/InlineDiff.d.ts +0 -0
  452. /package/{dist/views → views}/diffing/InlineDiff.js +0 -0
  453. /package/{compiled/views → views}/diffing/InlineDiff.js.map +0 -0
  454. /package/{compiled/views → views}/diffing/StructuredDiff.d.ts +0 -0
  455. /package/{dist/views → views}/diffing/StructuredDiff.js +0 -0
  456. /package/{compiled/views → views}/diffing/StructuredDiff.js.map +0 -0
  457. /package/{compiled/views → views}/hooks/useCustomView.d.ts +0 -0
  458. /package/{dist/views → views}/hooks/useCustomView.js +0 -0
  459. /package/{compiled/views → views}/hooks/useCustomView.js.map +0 -0
  460. /package/{compiled/views → views}/hooks/useItemClassConfig.d.ts +0 -0
  461. /package/{dist/views → views}/hooks/useItemClassConfig.js +0 -0
  462. /package/{compiled/views → views}/hooks/useItemClassConfig.js.map +0 -0
  463. /package/{compiled/views → views}/hooks/useItemRef.d.ts +0 -0
  464. /package/{dist/views → views}/hooks/useItemRef.js +0 -0
  465. /package/{compiled/views → views}/hooks/useItemRef.js.map +0 -0
  466. /package/{compiled/views → views}/hooks/useSingleRegisterItemData.d.ts +0 -0
  467. /package/{dist/views → views}/hooks/useSingleRegisterItemData.js +0 -0
  468. /package/{compiled/views → views}/hooks/useSingleRegisterItemData.js.map +0 -0
  469. /package/{compiled/views → views}/index.d.ts +0 -0
  470. /package/{dist/views → views}/index.js +0 -0
  471. /package/{compiled/views → views}/index.js.map +0 -0
  472. /package/{compiled/views → views}/itemPathUtils.d.ts +0 -0
  473. /package/{dist/views → views}/itemPathUtils.js +0 -0
  474. /package/{compiled/views → views}/itemPathUtils.js.map +0 -0
  475. /package/{compiled/views → views}/itemQueryUtils.d.ts +0 -0
  476. /package/{dist/views → views}/itemQueryUtils.js +0 -0
  477. /package/{compiled/views → views}/itemQueryUtils.js.map +0 -0
  478. /package/{compiled/views → views}/protocolRegistry.d.ts +0 -0
  479. /package/{dist/views → views}/protocolRegistry.js +0 -0
  480. /package/{compiled/views → views}/protocolRegistry.js.map +0 -0
  481. /package/{compiled/views → views}/sidebar/Browse/index.d.ts +0 -0
  482. /package/{dist/views → views}/sidebar/Browse/index.js +0 -0
  483. /package/{compiled/views → views}/sidebar/Browse/index.js.map +0 -0
  484. /package/{compiled/views → views}/sidebar/Export/index.d.ts +0 -0
  485. /package/{dist/views → views}/sidebar/Export/index.js +0 -0
  486. /package/{compiled/views → views}/sidebar/Export/index.js.map +0 -0
  487. /package/{compiled/views → views}/sidebar/ListItem.d.ts +0 -0
  488. /package/{dist/views → views}/sidebar/ListItem.js +0 -0
  489. /package/{compiled/views → views}/sidebar/ListItem.js.map +0 -0
  490. /package/{compiled/views → views}/sidebar/Registration/index.d.ts +0 -0
  491. /package/{dist/views → views}/sidebar/Registration/index.js +0 -0
  492. /package/{compiled/views → views}/sidebar/Registration/index.js.map +0 -0
  493. /package/{compiled/views → views}/sidebar/Search/index.d.ts +0 -0
  494. /package/{dist/views → views}/sidebar/Search/index.js +0 -0
  495. /package/{compiled/views → views}/sidebar/Search/index.js.map +0 -0
  496. /package/{compiled/views → views}/sidebar/index.d.ts +0 -0
  497. /package/{dist/views → views}/sidebar/index.js +0 -0
  498. /package/{compiled/views → views}/sidebar/index.js.map +0 -0
  499. /package/{compiled/views → views}/util.d.ts +0 -0
  500. /package/{dist/views → views}/util.js +0 -0
  501. /package/{compiled/views → views}/util.js.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface SupportedLanguages { [id: string]: string }\nexport interface LangConfig { default: string, selected: string }\nexport interface Translatable<T> { [id: string]: T; }\n\n"]}
@@ -1,16 +0,0 @@
1
- import React from 'react';
2
- import { IButtonGroupProps, IButtonProps } from '@blueprintjs/core';
3
- import { Translatable } from './types';
4
- interface TranslatableComponentProps {
5
- what: Translatable<string>;
6
- }
7
- export declare const Trans: React.FC<TranslatableComponentProps>;
8
- interface LangSelectorProps {
9
- value?: Translatable<any>;
10
- groupProps?: IButtonGroupProps;
11
- exclude?: string[];
12
- untranslatedProps?: IButtonProps;
13
- translatedProps?: IButtonProps;
14
- }
15
- export declare const LangSelector: React.FC<LangSelectorProps>;
16
- export {};
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.LangSelector = exports.Trans = void 0;
7
-
8
- var _react = _interopRequireWildcard(require("react"));
9
-
10
- var _core = require("@blueprintjs/core");
11
-
12
- var _context = require("./context");
13
-
14
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
15
-
16
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
-
18
- const Trans = function ({
19
- what
20
- }) {
21
- const i18n = (0, _react.useContext)(_context.I18nConfigContext);
22
- const translated = what[i18n.selected];
23
- const untranslated = what[i18n.default];
24
- return _react.default.createElement("span", null, translated || untranslated || '(malformed translatable string)');
25
- };
26
-
27
- exports.Trans = Trans;
28
-
29
- const LangSelector = function ({
30
- exclude,
31
- value,
32
- untranslatedProps,
33
- translatedProps,
34
- groupProps
35
- }) {
36
- const i18n = (0, _react.useContext)(_context.I18nConfigContext);
37
- return _react.default.createElement(_core.ButtonGroup, Object.assign({}, groupProps), Object.keys(i18n.available).filter(langID => (exclude || []).indexOf(langID) < 0).map(langId => _react.default.createElement(LangSelectorButton, {
38
- key: langId,
39
- id: langId,
40
- title: i18n.available[langId],
41
- isSelected: langId === i18n.selected,
42
- onSelect: () => i18n.select(langId),
43
- untranslatedProps: untranslatedProps,
44
- translatedProps: translatedProps,
45
- hasTranslation: value !== undefined ? value[langId] !== undefined : undefined
46
- })));
47
- };
48
-
49
- exports.LangSelector = LangSelector;
50
-
51
- const LangSelectorButton = function (props) {
52
- return _react.default.createElement(_core.Button, Object.assign({
53
- active: props.isSelected,
54
- onClick: props.onSelect
55
- }, !props.hasTranslation ? props.untranslatedProps : {}, props.hasTranslation ? props.translatedProps : {}), props.id);
56
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/i18n/widgets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAmC,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAM9C,MAAM,CAAC,MAAM,KAAK,GAAyC,UAAU,EAAE,IAAI,EAAE;IAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAExC,OAAO,kCAAO,UAAU,IAAI,YAAY,IAAI,iCAAiC,CAAQ,CAAC;AACxF,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,YAAY,GACzB,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE;IAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAE3C,OAAO,CACL,oBAAC,WAAW,oBAAK,UAAU,GACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,GAAG,CAAC,MAAM,CAAC,EAAE,CACf,oBAAC,kBAAkB,IACjB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAC7B,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,QAAQ,EACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EACnC,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,GACjF,CACH,CACW,CACf,CAAC;AACJ,CAAC,CAAC;AAYF,MAAM,kBAAkB,GAAsC,UAAU,KAAK;IAC3E,OAAO,CACL,oBAAC,MAAM,kBACH,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,OAAO,EAAE,KAAK,CAAC,QAAQ,IACnB,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EACtD,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,GACxD,KAAK,CAAC,EAAE,CACF,CACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useContext } from 'react';\nimport { Button, ButtonGroup, IButtonGroupProps, IButtonProps } from '@blueprintjs/core';\nimport { Translatable } from './types';\nimport { I18nConfigContext } from './context';\n\n\ninterface TranslatableComponentProps {\n what: Translatable<string>\n}\nexport const Trans: React.FC<TranslatableComponentProps> = function ({ what }) {\n const i18n = useContext(I18nConfigContext);\n const translated = what[i18n.selected];\n const untranslated = what[i18n.default];\n\n return <span>{translated || untranslated || '(malformed translatable string)'}</span>;\n};\n\n\ninterface LangSelectorProps {\n value?: Translatable<any>\n groupProps?: IButtonGroupProps\n exclude?: string[]\n untranslatedProps?: IButtonProps\n translatedProps?: IButtonProps\n}\nexport const LangSelector: React.FC<LangSelectorProps> =\nfunction ({ exclude, value, untranslatedProps, translatedProps, groupProps }) {\n const i18n = useContext(I18nConfigContext);\n\n return (\n <ButtonGroup {...groupProps}>\n {Object.keys(i18n.available).\n filter(langID => (exclude || []).indexOf(langID) < 0).\n map(langId =>\n <LangSelectorButton\n key={langId}\n id={langId}\n title={i18n.available[langId]}\n isSelected={langId === i18n.selected}\n onSelect={() => i18n.select(langId)}\n untranslatedProps={untranslatedProps}\n translatedProps={translatedProps}\n hasTranslation={(value !== undefined) ? (value[langId] !== undefined) : undefined}\n />\n )}\n </ButtonGroup>\n );\n};\n\n\ninterface LangSelectorButtonProps {\n id: string\n title: string\n isSelected: boolean\n onSelect: () => void\n hasTranslation?: boolean\n untranslatedProps?: IButtonProps\n translatedProps?: IButtonProps\n}\nconst LangSelectorButton: React.FC<LangSelectorButtonProps> = function (props) {\n return (\n <Button\n active={props.isSelected}\n onClick={props.onSelect}\n {...(!props.hasTranslation ? props.untranslatedProps : {})}\n {...(props.hasTranslation ? props.translatedProps : {})}>\n {props.id}\n </Button>\n );\n};\n"]}
@@ -1,3 +0,0 @@
1
- import 'electron';
2
- import type { ExtensionMaker } from './types/extension-maker';
3
- export declare const makeExtension: ExtensionMaker;
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeExtension = void 0;
7
-
8
- var _semver = _interopRequireDefault(require("semver"));
9
-
10
- require("electron");
11
-
12
- var _electronLog = _interopRequireDefault(require("electron-log"));
13
-
14
- var _context = require("./context");
15
-
16
- var _objectSpecs = require("./object-specs");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- /* The default export of Paneron extension’s extension.ts entry file
21
- should be the result of calling this function. */
22
- const makeExtension = async options => {
23
- var _a;
24
-
25
- let plugin;
26
- const objectSpecs = (_a = options.objects) !== null && _a !== void 0 ? _a : [];
27
-
28
- if (process.type === 'browser') {
29
- const migration = options.datasetInitializer ? (await options.datasetInitializer()).default : async () => ({
30
- bufferChangeset: {},
31
- versionAfter: '1.0'
32
- });
33
- plugin = {
34
- isCompatible: hostAppVersion => options.requiredHostAppVersion !== undefined && _semver.default.satisfies(hostAppVersion, options.requiredHostAppVersion),
35
- getObjectSpecs: () => {
36
- return objectSpecs;
37
- },
38
- getMigration: datasetVersion => Object.entries(options.datasetMigrations || {}).filter(([migrationVersionSpec, _]) => _semver.default.satisfies(datasetVersion, migrationVersionSpec)).map(([versionSpec, migration]) => ({
39
- versionSpec,
40
- migration
41
- }))[0],
42
- initialMigration: migration
43
- };
44
- } else if (process.type === 'renderer') {
45
- const mainViewImportResult = options.mainView || options.repoView ? await (options.mainView ||
46
- /* Deprecated */
47
- options.repoView)() : undefined;
48
- const objectSpecsWithCachedViews = await Promise.all(objectSpecs.filter(spec => spec.views !== undefined).map(async spec => Object.assign(Object.assign({}, spec), {
49
- _viewCache: (await spec.views()).default
50
- })));
51
- plugin = {
52
- mainView: mainViewImportResult ? (0, _context.withDatasetContext)(mainViewImportResult.default) : undefined,
53
- getObjectView: ({
54
- objectPath,
55
- viewID
56
- }) => {
57
- const spec = Object.values(objectSpecsWithCachedViews).find(c => (0, _objectSpecs.matchesPath)(objectPath, c.matches));
58
-
59
- if (spec) {
60
- const view = spec._viewCache[viewID];
61
- return view;
62
- } else {
63
- _electronLog.default.error("Unable to find object view for object path", objectPath, viewID);
64
-
65
- throw new Error("Cannot find object view");
66
- }
67
- }
68
- };
69
- } else {
70
- _electronLog.default.error("Paneron extension: Unsupported process type", options.name);
71
-
72
- throw new Error("Unsupported process type");
73
- }
74
-
75
- return plugin;
76
- };
77
-
78
- exports.makeExtension = makeExtension;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import semver from 'semver';\nimport 'electron';\nimport log from 'electron-log';\nimport type { Extension } from './types/extension';\nimport type { ExtensionMaker } from './types/extension-maker';\nimport type { DatasetMigrationFunction } from './types/migrations';\nimport { withDatasetContext } from './context';\nimport { matchesPath } from './object-specs';\n\n\n/* The default export of Paneron extension’s extension.ts entry file\n should be the result of calling this function. */\nexport const makeExtension: ExtensionMaker = async (options) => {\n let plugin: Extension;\n\n const objectSpecs = options.objects ?? [];\n\n if (process.type === 'browser') {\n const migration: DatasetMigrationFunction = options.datasetInitializer\n ? (await options.datasetInitializer()).default\n : async () => ({\n bufferChangeset: {},\n versionAfter: '1.0',\n });\n\n plugin = {\n\n isCompatible: (hostAppVersion: string) => (\n options.requiredHostAppVersion !== undefined &&\n semver.satisfies(hostAppVersion, options.requiredHostAppVersion)\n ),\n\n getObjectSpecs: () => {\n return objectSpecs;\n },\n\n getMigration: (datasetVersion) => (\n Object.entries(options.datasetMigrations || {}).\n filter(([migrationVersionSpec, _]) =>\n semver.satisfies(datasetVersion, migrationVersionSpec)\n ).\n map(([versionSpec, migration]) =>\n ({ versionSpec, migration })\n )[0]\n ),\n\n initialMigration: migration,\n };\n\n } else if (process.type === 'renderer') {\n const mainViewImportResult = (options.mainView || (options as any).repoView)\n ? await (\n options.mainView ||\n /* Deprecated */(options as any).repoView\n )()\n : undefined;\n\n const objectSpecsWithCachedViews = (await Promise.all(objectSpecs.\n filter(spec => spec.views !== undefined).\n map(async (spec) => ({ ...spec, _viewCache: (await spec.views!()).default }))));\n\n plugin = {\n mainView: mainViewImportResult\n ? withDatasetContext(mainViewImportResult.default)\n : undefined,\n\n getObjectView: ({ objectPath, viewID }) => {\n const spec = Object.values(objectSpecsWithCachedViews).\n find(c => matchesPath(objectPath, c.matches));\n if (spec) {\n const view = spec._viewCache[viewID];\n return view;\n } else {\n log.error(\"Unable to find object view for object path\", objectPath, viewID);\n throw new Error(\"Cannot find object view\");\n }\n },\n };\n\n } else {\n log.error(\"Paneron extension: Unsupported process type\", options.name);\n throw new Error(\"Unsupported process type\");\n }\n\n return plugin;\n}\n"]}
@@ -1,2 +0,0 @@
1
- import type { PathMatcher } from '../types/object-spec';
2
- export declare function matchesPath(p: string, rule: PathMatcher): boolean;
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.matchesPath = matchesPath;
7
-
8
- function matchesPath(p, rule) {
9
- // Match by default
10
- let matched = true; // Narrow by path prefix
11
-
12
- if (rule.pathPrefix) {
13
- matched = p.startsWith(rule.pathPrefix);
14
- } // Narrow by path-matching function
15
-
16
-
17
- if (matched && rule.path) {
18
- matched = matched && rule.path(p);
19
- }
20
-
21
- return matched;
22
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object-specs/index.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,IAAiB;IACtD,mBAAmB;IACnB,IAAI,OAAO,GAAY,IAAI,CAAC;IAE5B,wBAAwB;IACxB,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACzC;IAED,mCAAmC;IACnC,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;QACxB,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import type { PathMatcher } from '../types/object-spec';\n\n\nexport function matchesPath(p: string, rule: PathMatcher): boolean {\n // Match by default\n let matched: boolean = true;\n\n // Narrow by path prefix\n if (rule.pathPrefix) {\n matched = p.startsWith(rule.pathPrefix);\n }\n\n // Narrow by path-matching function\n if (matched && rule.path) {\n matched = matched && rule.path(p);\n }\n\n return matched;\n}\n"]}
@@ -1,6 +0,0 @@
1
- import { SerDesRule } from '../types/object-spec';
2
- import { OnlyJSON } from '../util';
3
- export declare const utf8Decoder: TextDecoder;
4
- export declare function makePaneronObjectCompositeSerDesRule<T extends Record<string, any> & OnlyJSON<Record<string, any>> = any>(): SerDesRule<T>;
5
- export declare function unflattenObject<T extends Record<string, any>>(parts: Record<string, any>): T;
6
- export declare function flattenObject(obj: Record<string, any>, _prefix?: false | string, _result?: Record<string, any> | null): Record<string, any>;
@@ -1,161 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makePaneronObjectCompositeSerDesRule = makePaneronObjectCompositeSerDesRule;
7
- exports.unflattenObject = unflattenObject;
8
- exports.flattenObject = flattenObject;
9
- exports.utf8Decoder = void 0;
10
-
11
- var _path = _interopRequireDefault(require("path"));
12
-
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
-
15
- const utf8Decoder = new TextDecoder('utf-8');
16
- exports.utf8Decoder = utf8Decoder;
17
- const stringSerDes = {
18
- deserialize: buf => utf8Decoder.decode(buf),
19
- serialize: val => Buffer.from(val, 'utf-8')
20
- };
21
- const numberSerDes = {
22
- deserialize: buf => parseInt(utf8Decoder.decode(buf), 10),
23
- serialize: val => Buffer.from(val.toString(), 'utf-8')
24
- };
25
- const partSerDes = {
26
- 'text': stringSerDes,
27
- 'number': numberSerDes
28
- }; //const EXT = '.pan';
29
-
30
- /* Creates a spec for objects where a serialized object
31
- is represented as a tree of buffers.
32
-
33
- An object is represented as comprised from “parts”,
34
- where each part corresponds to a buffer (e.g., file).
35
-
36
- The default behavior is such that e.g.
37
-
38
- { title: "Hello world", foo: { bar: baz } }
39
-
40
- after disassembly (basic flattening) would be represented as:
41
-
42
- { "/title": "Hello world", "/foo/bar": "baz" }
43
-
44
- (On disk, title and foo/bar would be paths to files
45
- relative to object root path.)
46
- */
47
-
48
- function makePaneronObjectCompositeSerDesRule() {
49
- const assemble = unflattenObject;
50
- const disassemble = flattenObject;
51
- return {
52
- deserialize: (rawData, opts) => {
53
- function deserializePart(buf, partPath) {
54
- var _a, _b;
55
-
56
- return partSerDes[(_b = (_a = opts.parts[partPath]) === null || _a === void 0 ? void 0 : _a.dataType) !== null && _b !== void 0 ? _b : 'text'].deserialize(buf);
57
- }
58
-
59
- const parts = deserializeParts(rawData, deserializePart);
60
- return assemble(parts);
61
- },
62
- serialize: (obj, opts) => {
63
- function serializePart(data, partPath) {
64
- var _a, _b;
65
-
66
- return partSerDes[(_b = (_a = opts.parts[partPath]) === null || _a === void 0 ? void 0 : _a.dataType) !== null && _b !== void 0 ? _b : 'text'].serialize(data);
67
- }
68
-
69
- const parts = disassemble(obj);
70
- return serializeParts(parts, serializePart);
71
- }
72
- };
73
- } // Object flattening and unflattening is based
74
- // on original implementation from Tofandel’s answer: https://stackoverflow.com/a/59787588/247441
75
-
76
- /* Aggregates parts (mapped to slash-separated paths) into a nested object.
77
-
78
- E.g.:
79
-
80
- { /some/path: A, /foo: B, /some/other/path: C }
81
-
82
- gets turned into:
83
-
84
- { foo: B, some: { path: A, other: { path: C } } }
85
- */
86
-
87
-
88
- function unflattenObject(parts) {
89
- const result = {}; // Ideally should be typed as Partial<T>, but that causes problems down the line
90
-
91
- for (const partPath of Object.keys(parts)) {
92
- if (Object.prototype.hasOwnProperty.call(parts, partPath)) {
93
- const keys = partPath.match(/^\/+[^\/]*|[^\/]*\/+$|(?:\/{2,}|[^\/])+(?:\/+$)?/g); // Matches a standalone slash in a key
94
- //const keys = partPath.match(/^\.+[^.]*|[^.]*\.+$|(?:\.{2,}|[^.])+(?:\.+$)?/g);
95
-
96
- if (keys) {
97
- keys.reduce((accumulator, val, idx) => {
98
- return accumulator[val] || (accumulator[val] = isNaN(Number(keys[idx + 1])) ? keys.length - 1 === idx ? parts[partPath] : {} : []);
99
- }, result);
100
- }
101
- }
102
- }
103
-
104
- return result;
105
- }
106
- /* Recursively decomposes an arbitrarily nested object into a flat record
107
- of slash-separated part paths mapped to respective structures.
108
-
109
- E.g.:
110
-
111
- { foo: B, some: { path: A, other: { path: C } } }
112
-
113
- gets turned into:
114
-
115
- { /some/path: A, /foo: B, /some/other/path: C }
116
- */
117
-
118
-
119
- function flattenObject(obj, _prefix = false, _result = null) {
120
- const result = _result || {}; // Preserve empty objects and arrays, they are lost otherwise
121
-
122
- if (_prefix !== false && typeof obj === 'object' && obj !== null && Object.keys(obj).length === 0) {
123
- result[_prefix] = Array.isArray(obj) ? [] : {};
124
- return result;
125
- }
126
-
127
- const prefix = _prefix !== false ? _prefix + _path.default.posix.sep : _path.default.posix.sep;
128
-
129
- for (const i in obj) {
130
- if (Object.prototype.hasOwnProperty.call(obj, i)) {
131
- if (typeof obj[i] === 'object' && obj[i] !== null) {
132
- // Recursion on deeper objects
133
- flattenObject(obj[i], prefix + i, result);
134
- } else {
135
- result[prefix + i] = obj[i];
136
- }
137
- }
138
- }
139
-
140
- return result;
141
- }
142
-
143
- function deserializeParts(buffers, partFromBuffer) {
144
- const result = {};
145
-
146
- for (const [p, buffer] of Object.entries(buffers)) {
147
- result[p] = partFromBuffer(buffer, p);
148
- }
149
-
150
- return result;
151
- }
152
-
153
- function serializeParts(parts, partToBuffer) {
154
- const result = {};
155
-
156
- for (const [p, part] of Object.entries(parts)) {
157
- result[p] = partToBuffer(part, p);
158
- }
159
-
160
- return result;
161
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"paneron-object.js","sourceRoot":"","sources":["../../src/object-specs/paneron-object.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport { SerDesRule } from '../types/object-spec';\nimport { OnlyJSON } from '../util';\n\n\nexport const utf8Decoder = new TextDecoder('utf-8');\n\n\ninterface PartSerDes<T> {\n deserialize: (buf: Uint8Array) => T\n serialize: (obj: T) => Uint8Array\n}\n\n\nconst stringSerDes: PartSerDes<string> = {\n deserialize: (buf) => utf8Decoder.decode(buf),\n serialize: (val) => Buffer.from(val, 'utf-8'),\n};\n\nconst numberSerDes: PartSerDes<number> = {\n deserialize: (buf) => parseInt(utf8Decoder.decode(buf), 10),\n serialize: (val) => Buffer.from(val.toString(), 'utf-8'),\n};\n\nconst partSerDes: { [key in DataType]: PartSerDes<any> } = {\n 'text': stringSerDes,\n 'number': numberSerDes,\n};\n\n\ninterface PartSerDesOptions {\n dataType: DataType\n}\n\ninterface SerDesOptions {\n parts: {\n [propertyPath: string]: PartSerDesOptions\n }\n}\n\ntype DataType = 'text' | 'number';\n\n//const EXT = '.pan';\n\n\n/* Creates a spec for objects where a serialized object\n is represented as a tree of buffers.\n\n An object is represented as comprised from “parts”,\n where each part corresponds to a buffer (e.g., file).\n\n The default behavior is such that e.g.\n\n { title: \"Hello world\", foo: { bar: baz } }\n\n after disassembly (basic flattening) would be represented as:\n\n { \"/title\": \"Hello world\", \"/foo/bar\": \"baz\" }\n\n (On disk, title and foo/bar would be paths to files\n relative to object root path.)\n*/\nexport function makePaneronObjectCompositeSerDesRule\n<T extends Record<string, any> & OnlyJSON<Record<string, any>> = any>\n():\nSerDesRule<T> {\n const assemble: (data: any) => T = unflattenObject;\n const disassemble: (obj: T) => Record<string, any> = flattenObject;\n\n return {\n deserialize: (rawData, opts: SerDesOptions) => {\n function deserializePart(buf: Uint8Array, partPath: string): any {\n return partSerDes[opts.parts[partPath]?.dataType ?? 'text'].deserialize(buf);\n }\n const parts = deserializeParts(rawData, deserializePart);\n return assemble(parts);\n },\n serialize: (obj, opts: SerDesOptions) => {\n function serializePart(data: any, partPath: string): Uint8Array {\n return partSerDes[opts.parts[partPath]?.dataType ?? 'text'].serialize(data);\n }\n const parts = disassemble(obj);\n return serializeParts(parts, serializePart);\n },\n };\n}\n\n\n// Object flattening and unflattening is based\n// on original implementation from Tofandel’s answer: https://stackoverflow.com/a/59787588/247441\n\n/* Aggregates parts (mapped to slash-separated paths) into a nested object.\n\n E.g.:\n\n { /some/path: A, /foo: B, /some/other/path: C }\n \n gets turned into:\n\n { foo: B, some: { path: A, other: { path: C } } }\n*/\n\nexport function unflattenObject<T extends Record<string, any>>\n(parts: Record<string, any>): T {\n const result: Record<string, any> = {};\n // Ideally should be typed as Partial<T>, but that causes problems down the line\n\n for (const partPath of Object.keys(parts)) {\n if (Object.prototype.hasOwnProperty.call(parts, partPath)) {\n\n const keys = partPath.match(/^\\/+[^\\/]*|[^\\/]*\\/+$|(?:\\/{2,}|[^\\/])+(?:\\/+$)?/g);\n // Matches a standalone slash in a key\n //const keys = partPath.match(/^\\.+[^.]*|[^.]*\\.+$|(?:\\.{2,}|[^.])+(?:\\.+$)?/g);\n\n if (keys) {\n keys.reduce((accumulator, val, idx) => {\n return accumulator[val] || (\n (accumulator[val] = isNaN(Number(keys[idx + 1]))\n ? (keys.length - 1 === idx\n ? parts[partPath]\n : {})\n : [])\n );\n }, result);\n }\n }\n }\n\n return result as T;\n}\n\n\n/* Recursively decomposes an arbitrarily nested object into a flat record\n of slash-separated part paths mapped to respective structures.\n\n E.g.:\n\n { foo: B, some: { path: A, other: { path: C } } }\n \n gets turned into:\n\n { /some/path: A, /foo: B, /some/other/path: C }\n*/\nexport function flattenObject(\n obj: Record<string, any>,\n _prefix: false | string = false,\n _result: Record<string, any> | null = null,\n): Record<string, any> {\n const result: Record<string, any> = _result || {};\n\n // Preserve empty objects and arrays, they are lost otherwise\n if (_prefix !== false &&\n typeof obj === 'object' &&\n obj !== null &&\n Object.keys(obj).length === 0) {\n result[_prefix] = Array.isArray(obj) ? [] : {};\n return result;\n }\n\n const prefix = _prefix !== false\n ? (_prefix + path.posix.sep)\n : path.posix.sep;\n\n for (const i in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, i)) {\n if (typeof obj[i] === 'object' && obj[i] !== null) {\n // Recursion on deeper objects\n flattenObject(obj[i], prefix + i, result);\n } else {\n result[prefix + i] = obj[i];\n }\n }\n }\n return result;\n}\n\n\nfunction deserializeParts(\n buffers: Record<string, Uint8Array>,\n partFromBuffer: (buffer: Uint8Array, path: string) => any,\n): Record<string, any> {\n const result: Record<string, any> = {};\n for (const [p, buffer] of Object.entries(buffers)) {\n result[p] = partFromBuffer(buffer, p);\n }\n return result;\n}\n\n\nfunction serializeParts(\n parts: Record<string, any>,\n partToBuffer: (data: any, path: string) => Uint8Array,\n): Record<string, Uint8Array> {\n const result: Record<string, Uint8Array> = {};\n for (const [p, part] of Object.entries(parts)) {\n result[p] = partToBuffer(part, p);\n }\n return result;\n}\n"]}
@@ -1,31 +0,0 @@
1
- /**
2
- * Serialization/deserialization rules describe how physical buffers
3
- * are represented as JS structures at runtime.
4
- *
5
- * This is Node-only code due to use of Buffer API.
6
- */
7
- import { PointerInfo as LFSPointerInfo } from '@riboseinc/isogit-lfs/pointers';
8
- import { SerDesRule, SerDesRuleName, SerDesRuleNameExtensionMap } from '../types/object-spec';
9
- import type { OnlyJSON } from '../util';
10
- import type { BufferDataset } from '../types/buffers';
11
- /** Returns serialization/deserialization rule that works for given object. */
12
- export declare function findSerDesRuleForObject(objPath: string, obj: Record<string, any>, overrides?: {
13
- extensions?: SerDesRuleNameExtensionMap;
14
- }): SerDesRule;
15
- /** Returns serialization/deserialization rule that works for given buffer dataset. */
16
- export declare function findSerDesRuleForBuffers(objPath: string, buffers: BufferDataset, overrides?: {
17
- extensions?: SerDesRuleNameExtensionMap;
18
- }): SerDesRule;
19
- export declare function getSerDesRuleByName(ruleName: SerDesRuleName): SerDesRule;
20
- export declare const lfsPointer: SerDesRule<{
21
- lfsPointerInfo: LFSPointerInfo;
22
- }>;
23
- export declare const textFile: SerDesRule<{
24
- asText: string;
25
- }>;
26
- export declare const jsonFile: SerDesRule<OnlyJSON<Record<string, any>>>;
27
- export declare const yamlFile: SerDesRule<OnlyJSON<Record<string, any>>>;
28
- export declare const binaryFile: SerDesRule<{
29
- binaryData: Uint8Array;
30
- asBase64: string;
31
- }>;
@@ -1,187 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.findSerDesRuleForObject = findSerDesRuleForObject;
7
- exports.findSerDesRuleForBuffers = findSerDesRuleForBuffers;
8
- exports.getSerDesRuleByName = getSerDesRuleByName;
9
- exports.binaryFile = exports.yamlFile = exports.jsonFile = exports.textFile = exports.lfsPointer = void 0;
10
-
11
- var _path = _interopRequireDefault(require("path"));
12
-
13
- var _pointers = require("@riboseinc/isogit-lfs/pointers");
14
-
15
- var _util = require("@riboseinc/isogit-lfs/util");
16
-
17
- var _objectSpec = require("../types/object-spec");
18
-
19
- var _yaml = _interopRequireDefault(require("./yaml"));
20
-
21
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
-
23
- /**
24
- * Serialization/deserialization rules describe how physical buffers
25
- * are represented as JS structures at runtime.
26
- *
27
- * This is Node-only code due to use of Buffer API.
28
- */
29
- // Tools for working with buffers
30
- const utf8Decoder = new TextDecoder('utf-8');
31
- /**
32
- * Cross-platform separator for buffer path components.
33
- * Since buffer paths use POSIX format, this is a POSIX path separator.
34
- */
35
-
36
- const sep = _path.default.posix.sep;
37
- /** Returns whether buffer dataset has only one root buffer at `sep`. */
38
-
39
- function isLeaf(buffers) {
40
- return Object.keys(buffers).length === 1 && buffers[sep] !== undefined;
41
- } // /**
42
- // * Returns whether buffer dataset looks like a tree.
43
- // * A tree won’t have root buffer path mapped to any contents.
44
- // */
45
- // function isTree(buffers: BufferDataset) {
46
- // return Object.keys(buffers).length > 1 && buffers[sep] === undefined;
47
- // }
48
- // Rule query API
49
-
50
- /**
51
- * Returns serialization/deserialization rule corresponding to given object path,
52
- * using provided extension map.
53
- */
54
-
55
-
56
- function findSerDesRuleForExtension(objPath, map) {
57
- const extension = _path.default.extname(objPath).toLowerCase();
58
-
59
- const ruleName = map[extension];
60
- return ruleName ? getSerDesRuleByName(ruleName) : null;
61
- }
62
- /** Returns serialization/deserialization rule that works for given object. */
63
-
64
-
65
- function findSerDesRuleForObject(objPath, obj, overrides) {
66
- var _a, _b, _c, _d;
67
-
68
- const override = (overrides === null || overrides === void 0 ? void 0 : overrides.extensions) ? findSerDesRuleForExtension(objPath, overrides.extensions) : null;
69
- if (override) return override;
70
-
71
- for (const rule of SER_DES_RULES) {
72
- if (((_b = (_a = rule.worksForPath) === null || _a === void 0 ? void 0 : _a.call(rule, objPath)) !== null && _b !== void 0 ? _b : true) && ((_d = (_c = rule.worksForObject) === null || _c === void 0 ? void 0 : _c.call(rule, obj)) !== null && _d !== void 0 ? _d : true)) {
73
- return rule;
74
- }
75
- }
76
-
77
- return getSerDesRuleByName(DEFAULT_RULE);
78
- }
79
- /** Returns serialization/deserialization rule that works for given buffer dataset. */
80
-
81
-
82
- function findSerDesRuleForBuffers(objPath, buffers, overrides) {
83
- var _a, _b, _c, _d;
84
-
85
- const override = (overrides === null || overrides === void 0 ? void 0 : overrides.extensions) ? findSerDesRuleForExtension(objPath, overrides.extensions) : null;
86
- if (override) return override;
87
-
88
- for (const rule of SER_DES_RULES) {
89
- if (((_b = (_a = rule.worksForPath) === null || _a === void 0 ? void 0 : _a.call(rule, objPath)) !== null && _b !== void 0 ? _b : true) && ((_d = (_c = rule.worksForBufferDataset) === null || _c === void 0 ? void 0 : _c.call(rule, buffers)) !== null && _d !== void 0 ? _d : true)) {
90
- return rule;
91
- }
92
- }
93
-
94
- return getSerDesRuleByName(DEFAULT_RULE);
95
- }
96
-
97
- function getSerDesRuleByName(ruleName) {
98
- return SER_DES_RULE_REGISTRY[ruleName];
99
- } // Rule definitions
100
-
101
-
102
- const lfsPointer = {
103
- worksForObject: obj => obj.lfsPointerInfo !== undefined,
104
- worksForBufferDataset: buffers => isLeaf(buffers) && (0, _util.pointsToLFS)(Buffer.from(buffers[sep])),
105
- deserialize: buffers => ({
106
- lfsPointerInfo: (0, _pointers.readPointerInfo)(Buffer.from(buffers[sep]))
107
- }),
108
- serialize: objectData => ({
109
- [sep]: (0, _pointers.formatPointerInfo)(objectData.lfsPointerInfo)
110
- })
111
- };
112
- exports.lfsPointer = lfsPointer;
113
- const textFile = {
114
- worksForBufferDataset: isLeaf,
115
- deserialize: buffers => ({
116
- asText: utf8Decoder.decode(buffers[sep])
117
- }),
118
- serialize: objectData => ({
119
- [sep]: Buffer.from(objectData.asText, 'utf-8')
120
- })
121
- };
122
- exports.textFile = textFile;
123
- const jsonFile = {
124
- worksForPath: path => path.endsWith('.json'),
125
- worksForBufferDataset: isLeaf,
126
- deserialize: buffers => JSON.parse(utf8Decoder.decode(buffers[sep])),
127
- serialize: data => ({
128
- [sep]: Buffer.from(JSON.stringify(data), 'utf8')
129
- })
130
- };
131
- exports.jsonFile = jsonFile;
132
- const yamlFile = {
133
- worksForPath: path => path.endsWith('.yaml') || path.endsWith('.yml'),
134
- worksForBufferDataset: isLeaf,
135
- deserialize: buffers => {
136
- const result = _yaml.default.load(utf8Decoder.decode(buffers[sep]));
137
-
138
- if (result && typeof result !== 'string' && typeof result !== 'number') {
139
- return result;
140
- } else {
141
- throw new Error("Failed to deserialize buffers: got a non-object from yaml.load()");
142
- }
143
- },
144
- serialize: data => ({
145
- [sep]: Buffer.from(_yaml.default.dump(data), 'utf8')
146
- })
147
- };
148
- exports.yamlFile = yamlFile;
149
- const KNOWN_BINARY_EXTENSIONS = new Set(['.jpg', '.jpeg', '.png', '.wav', '.ogg', '.mov', '.mp4', '.webm']);
150
- const binaryFile = {
151
- worksForPath: objPath => KNOWN_BINARY_EXTENSIONS.has(_path.default.extname(objPath).toLowerCase()),
152
- deserialize: buffers => ({
153
- binaryData: buffers[sep],
154
- asBase64: Buffer.from(buffers[sep]).toString('base64')
155
- }),
156
- serialize: data => ({
157
- [sep]: data.binaryData
158
- })
159
- }; // Rule registers
160
-
161
- exports.binaryFile = binaryFile;
162
- const DEFAULT_RULE = _objectSpec.AtomicSerDesRuleName.textFile;
163
- const SER_DES_RULES = [lfsPointer, // LFS pointer rule comes first. Any object/buffer can be a pointer
164
- // regardless of path.
165
- jsonFile, yamlFile, binaryFile, textFile];
166
- const ATOMIC_SER_DES_RULES = {
167
- [_objectSpec.AtomicSerDesRuleName.lfsPointer]: lfsPointer,
168
- [_objectSpec.AtomicSerDesRuleName.jsonFile]: jsonFile,
169
- [_objectSpec.AtomicSerDesRuleName.yamlFile]: yamlFile,
170
- [_objectSpec.AtomicSerDesRuleName.binaryFile]: binaryFile,
171
- [_objectSpec.AtomicSerDesRuleName.textFile]: textFile
172
- };
173
- const SER_DES_RULE_REGISTRY = Object.assign({}, ATOMIC_SER_DES_RULES); //export function getAtomicSerDesRuleForExtension(ext: string): SerDesRule | undefined {
174
- // return Object.values(ATOMIC_SER_DES_RULES).find(rule =>
175
- // rule.extensions.indexOf(ext) >= 0 ||
176
- // Object.keys(rule.extensions).length === 0);
177
- //}
178
- //const EFFECTIVE_SER_DES_RULES: SerDesRuleName[] = [
179
- // AtomicSerDesRuleName.jsonFile,
180
- // AtomicSerDesRuleName.yamlFile,
181
- // AtomicSerDesRuleName.binaryFile,
182
- // AtomicSerDesRuleName.textFile,
183
- //];
184
- //export const SER_DES_RULES: { [key in SerDesRuleName]: SerDesRule } = {
185
- // ...ATOMIC_SER_DES_RULES,
186
- // //[NestedSerDesRuleName.tree]: makeTreeSerDesRule(ATOMIC_SER_DES_RULES),
187
- //};
@@ -1 +0,0 @@
1
- {"version":3,"file":"ser-des.js","sourceRoot":"","sources":["../../src/object-specs/ser-des.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Serialization/deserialization rules describe how physical buffers\n * are represented as JS structures at runtime.\n * \n * This is Node-only code due to use of Buffer API.\n */\n\nimport path from 'path';\n\nimport {\n formatPointerInfo,\n PointerInfo as LFSPointerInfo,\n readPointerInfo,\n} from '@riboseinc/isogit-lfs/pointers';\nimport { pointsToLFS } from '@riboseinc/isogit-lfs/util';\n\nimport {\n SerDesRule,\n AtomicSerDesRuleName,\n SerDesRuleName,\n SerDesRuleNameExtensionMap,\n} from '../types/object-spec';\nimport type { OnlyJSON } from '../util';\nimport type { BufferDataset } from '../types/buffers';\n\nimport yaml from './yaml';\n\n\n// Tools for working with buffers\n\nconst utf8Decoder = new TextDecoder('utf-8');\n\n/**\n * Cross-platform separator for buffer path components.\n * Since buffer paths use POSIX format, this is a POSIX path separator.\n */\nconst sep = path.posix.sep;\n\n/** Returns whether buffer dataset has only one root buffer at `sep`. */\nfunction isLeaf(buffers: BufferDataset) {\n return Object.keys(buffers).length === 1 && buffers[sep] !== undefined;\n}\n\n// /**\n// * Returns whether buffer dataset looks like a tree.\n// * A tree won’t have root buffer path mapped to any contents.\n// */\n// function isTree(buffers: BufferDataset) {\n// return Object.keys(buffers).length > 1 && buffers[sep] === undefined;\n// }\n\n\n// Rule query API\n\n/**\n * Returns serialization/deserialization rule corresponding to given object path,\n * using provided extension map.\n */\nfunction findSerDesRuleForExtension(objPath: string, map: SerDesRuleNameExtensionMap): SerDesRule | null {\n const extension = path.extname(objPath).toLowerCase();\n const ruleName = map[extension];\n return ruleName ? getSerDesRuleByName(ruleName) : null;\n}\n\n\n/** Returns serialization/deserialization rule that works for given object. */\nexport function findSerDesRuleForObject(\n objPath: string,\n obj: Record<string, any>,\n overrides?: { extensions?: SerDesRuleNameExtensionMap },\n): SerDesRule {\n const override = overrides?.extensions\n ? findSerDesRuleForExtension(objPath, overrides.extensions)\n : null;\n if (override) return override;\n\n for (const rule of SER_DES_RULES) {\n if ((rule.worksForPath?.(objPath) ?? true) && (rule.worksForObject?.(obj) ?? true)) {\n return rule;\n }\n }\n return getSerDesRuleByName(DEFAULT_RULE);\n}\n\n/** Returns serialization/deserialization rule that works for given buffer dataset. */\nexport function findSerDesRuleForBuffers(\n objPath: string,\n buffers: BufferDataset,\n overrides?: { extensions?: SerDesRuleNameExtensionMap },\n): SerDesRule {\n const override = overrides?.extensions\n ? findSerDesRuleForExtension(objPath, overrides.extensions)\n : null;\n if (override) return override;\n\n for (const rule of SER_DES_RULES) {\n if ((rule.worksForPath?.(objPath) ?? true) && (rule.worksForBufferDataset?.(buffers) ?? true)) {\n return rule;\n }\n }\n return getSerDesRuleByName(DEFAULT_RULE);\n}\n\nexport function getSerDesRuleByName(ruleName: SerDesRuleName): SerDesRule {\n return SER_DES_RULE_REGISTRY[ruleName];\n}\n\n\n// Rule definitions\n\nexport const lfsPointer: SerDesRule<{ lfsPointerInfo: LFSPointerInfo }> = {\n worksForObject: (obj) => obj.lfsPointerInfo !== undefined,\n worksForBufferDataset: (buffers) =>\n isLeaf(buffers) && pointsToLFS(Buffer.from(buffers[sep]!)),\n\n deserialize: (buffers) =>\n ({ lfsPointerInfo: readPointerInfo(Buffer.from(buffers[sep])) }),\n serialize: (objectData) =>\n ({ [sep]: formatPointerInfo(objectData.lfsPointerInfo) }),\n}\n\nexport const textFile: SerDesRule<{ asText: string }> = {\n worksForBufferDataset: isLeaf,\n deserialize: (buffers) =>\n ({ asText: utf8Decoder.decode(buffers[sep]) }),\n serialize: (objectData) =>\n ({ [sep]: Buffer.from(objectData.asText, 'utf-8') }),\n};\n\n\nexport const jsonFile: SerDesRule<OnlyJSON<Record<string, any>>> = {\n worksForPath: (path) => path.endsWith('.json'),\n worksForBufferDataset: isLeaf,\n deserialize: (buffers) => JSON.parse(utf8Decoder.decode(buffers[sep])),\n serialize: (data) => ({ [sep]: Buffer.from(JSON.stringify(data), 'utf8') }),\n};\n\n\nexport const yamlFile: SerDesRule<OnlyJSON<Record<string, any>>> = {\n worksForPath: (path) => path.endsWith('.yaml') || path.endsWith('.yml'),\n worksForBufferDataset: isLeaf,\n deserialize: (buffers) => {\n const result = yaml.load(utf8Decoder.decode(buffers[sep]));\n if (result && typeof result !== 'string' && typeof result !== 'number') {\n return result;\n } else {\n throw new Error(\"Failed to deserialize buffers: got a non-object from yaml.load()\");\n }\n },\n serialize: (data) =>\n ({ [sep]: Buffer.from(yaml.dump(data), 'utf8') }),\n};\n\n\nconst KNOWN_BINARY_EXTENSIONS: Set<string> = new Set([\n '.jpg',\n '.jpeg',\n '.png',\n '.wav',\n '.ogg',\n '.mov',\n '.mp4',\n '.webm',\n]);\nexport const binaryFile: SerDesRule<{ binaryData: Uint8Array; asBase64: string; }> = {\n worksForPath: (objPath) =>\n KNOWN_BINARY_EXTENSIONS.has(path.extname(objPath).toLowerCase()),\n deserialize: (buffers) => ({\n binaryData: buffers[sep],\n asBase64: Buffer.from(buffers[sep]).toString('base64'),\n }),\n serialize: (data) =>\n ({ [sep]: data.binaryData }),\n};\n\n\n// Rule registers\n\nconst DEFAULT_RULE: SerDesRuleName = AtomicSerDesRuleName.textFile;\n\nconst SER_DES_RULES: SerDesRule[] = [\n lfsPointer,\n // LFS pointer rule comes first. Any object/buffer can be a pointer\n // regardless of path.\n\n jsonFile,\n yamlFile,\n binaryFile,\n textFile,\n];\n\nconst ATOMIC_SER_DES_RULES: { [key in AtomicSerDesRuleName]: SerDesRule } = {\n [AtomicSerDesRuleName.lfsPointer]: lfsPointer,\n [AtomicSerDesRuleName.jsonFile]: jsonFile,\n [AtomicSerDesRuleName.yamlFile]: yamlFile,\n [AtomicSerDesRuleName.binaryFile]: binaryFile,\n [AtomicSerDesRuleName.textFile]: textFile,\n};\n\nconst SER_DES_RULE_REGISTRY: { [key in SerDesRuleName]: SerDesRule } = {\n ...ATOMIC_SER_DES_RULES,\n // [CompositeSerDesRuleName.paneronObject]: makePaneronObjectCompositeSerDesRule(),\n};\n\n\n//export function getAtomicSerDesRuleForExtension(ext: string): SerDesRule | undefined {\n// return Object.values(ATOMIC_SER_DES_RULES).find(rule =>\n// rule.extensions.indexOf(ext) >= 0 ||\n// Object.keys(rule.extensions).length === 0);\n//}\n\n//const EFFECTIVE_SER_DES_RULES: SerDesRuleName[] = [\n// AtomicSerDesRuleName.jsonFile,\n// AtomicSerDesRuleName.yamlFile,\n// AtomicSerDesRuleName.binaryFile,\n// AtomicSerDesRuleName.textFile,\n//];\n\n//export const SER_DES_RULES: { [key in SerDesRuleName]: SerDesRule } = {\n// ...ATOMIC_SER_DES_RULES,\n// //[NestedSerDesRuleName.tree]: makeTreeSerDesRule(ATOMIC_SER_DES_RULES),\n//};\n"]}