document-model 1.0.54 → 1.1.0-debug.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/browser/cjs/_virtual/_commonjsHelpers.js +7 -0
  3. package/dist/browser/cjs/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/browser/cjs/_virtual/browser.js +35 -0
  5. package/dist/browser/cjs/_virtual/browser.js.map +1 -0
  6. package/dist/browser/cjs/_virtual/index.js +5 -0
  7. package/dist/browser/cjs/_virtual/index.js.map +1 -0
  8. package/dist/browser/cjs/_virtual/index2.js +5 -0
  9. package/dist/browser/cjs/_virtual/index2.js.map +1 -0
  10. package/dist/browser/cjs/_virtual/index3.js +5 -0
  11. package/dist/browser/cjs/_virtual/index3.js.map +1 -0
  12. package/dist/browser/cjs/_virtual/index4.js +5 -0
  13. package/dist/browser/cjs/_virtual/index4.js.map +1 -0
  14. package/dist/browser/cjs/_virtual/index5.js +5 -0
  15. package/dist/browser/cjs/_virtual/index5.js.map +1 -0
  16. package/dist/browser/cjs/_virtual/inherits_browser.js +5 -0
  17. package/dist/browser/cjs/_virtual/inherits_browser.js.map +1 -0
  18. package/dist/browser/cjs/document-model.js +41 -1
  19. package/dist/browser/cjs/document-model.js.map +1 -0
  20. package/dist/browser/cjs/document.js +15 -1
  21. package/dist/browser/cjs/document.js.map +1 -0
  22. package/dist/browser/cjs/index.js +14 -1
  23. package/dist/browser/cjs/index.js.map +1 -0
  24. package/dist/browser/cjs/src/document/actions/creators.js +46 -0
  25. package/dist/browser/cjs/src/document/actions/creators.js.map +1 -0
  26. package/dist/browser/cjs/src/document/actions/index.js +173 -0
  27. package/dist/browser/cjs/src/document/actions/index.js.map +1 -0
  28. package/dist/browser/cjs/src/document/actions/types.js +15 -0
  29. package/dist/browser/cjs/src/document/actions/types.js.map +1 -0
  30. package/dist/browser/cjs/src/document/object.js +190 -0
  31. package/dist/browser/cjs/src/document/object.js.map +1 -0
  32. package/dist/browser/cjs/src/document/reducer.js +192 -0
  33. package/dist/browser/cjs/src/document/reducer.js.map +1 -0
  34. package/dist/browser/cjs/src/document/schema/zod.js +137 -0
  35. package/dist/browser/cjs/src/document/schema/zod.js.map +1 -0
  36. package/dist/browser/cjs/src/document/utils/base.js +220 -0
  37. package/dist/browser/cjs/src/document/utils/base.js.map +1 -0
  38. package/dist/browser/cjs/src/document/utils/document-helpers.js +324 -0
  39. package/dist/browser/cjs/src/document/utils/document-helpers.js.map +1 -0
  40. package/dist/browser/cjs/src/document/utils/file.js +135 -0
  41. package/dist/browser/cjs/src/document/utils/file.js.map +1 -0
  42. package/dist/browser/cjs/src/document/utils/index.js +33 -0
  43. package/dist/browser/cjs/src/document/utils/index.js.map +1 -0
  44. package/dist/browser/cjs/src/document/utils/validation.js +24 -0
  45. package/dist/browser/cjs/src/document/utils/validation.js.map +1 -0
  46. package/dist/browser/cjs/src/document-model/custom/reducers/header.js +26 -0
  47. package/dist/browser/cjs/src/document-model/custom/reducers/header.js.map +1 -0
  48. package/dist/browser/cjs/src/document-model/custom/reducers/module.js +46 -0
  49. package/dist/browser/cjs/src/document-model/custom/reducers/module.js.map +1 -0
  50. package/dist/browser/cjs/src/document-model/custom/reducers/operation-error.js +95 -0
  51. package/dist/browser/cjs/src/document-model/custom/reducers/operation-error.js.map +1 -0
  52. package/dist/browser/cjs/src/document-model/custom/reducers/operation-example.js +58 -0
  53. package/dist/browser/cjs/src/document-model/custom/reducers/operation-example.js.map +1 -0
  54. package/dist/browser/cjs/src/document-model/custom/reducers/operation.js +123 -0
  55. package/dist/browser/cjs/src/document-model/custom/reducers/operation.js.map +1 -0
  56. package/dist/browser/cjs/src/document-model/custom/reducers/state.js +66 -0
  57. package/dist/browser/cjs/src/document-model/custom/reducers/state.js.map +1 -0
  58. package/dist/browser/cjs/src/document-model/custom/reducers/versioning.js +31 -0
  59. package/dist/browser/cjs/src/document-model/custom/reducers/versioning.js.map +1 -0
  60. package/dist/browser/cjs/src/document-model/custom/utils.js +117 -0
  61. package/dist/browser/cjs/src/document-model/custom/utils.js.map +1 -0
  62. package/dist/browser/cjs/src/document-model/gen/creators.js +53 -0
  63. package/dist/browser/cjs/src/document-model/gen/creators.js.map +1 -0
  64. package/dist/browser/cjs/src/document-model/gen/document-model.js +545 -0
  65. package/dist/browser/cjs/src/document-model/gen/document-model.js.map +1 -0
  66. package/dist/browser/cjs/src/document-model/gen/header/creators.js +39 -0
  67. package/dist/browser/cjs/src/document-model/gen/header/creators.js.map +1 -0
  68. package/dist/browser/cjs/src/document-model/gen/header/object.js +26 -0
  69. package/dist/browser/cjs/src/document-model/gen/header/object.js.map +1 -0
  70. package/dist/browser/cjs/src/document-model/gen/module/creators.js +34 -0
  71. package/dist/browser/cjs/src/document-model/gen/module/creators.js.map +1 -0
  72. package/dist/browser/cjs/src/document-model/gen/module/object.js +23 -0
  73. package/dist/browser/cjs/src/document-model/gen/module/object.js.map +1 -0
  74. package/dist/browser/cjs/src/document-model/gen/object.js +47 -0
  75. package/dist/browser/cjs/src/document-model/gen/object.js.map +1 -0
  76. package/dist/browser/cjs/src/document-model/gen/operation/creators.js +59 -0
  77. package/dist/browser/cjs/src/document-model/gen/operation/creators.js.map +1 -0
  78. package/dist/browser/cjs/src/document-model/gen/operation/object.js +38 -0
  79. package/dist/browser/cjs/src/document-model/gen/operation/object.js.map +1 -0
  80. package/dist/browser/cjs/src/document-model/gen/operation-error/creators.js +44 -0
  81. package/dist/browser/cjs/src/document-model/gen/operation-error/creators.js.map +1 -0
  82. package/dist/browser/cjs/src/document-model/gen/operation-error/object.js +29 -0
  83. package/dist/browser/cjs/src/document-model/gen/operation-error/object.js.map +1 -0
  84. package/dist/browser/cjs/src/document-model/gen/operation-example/creators.js +29 -0
  85. package/dist/browser/cjs/src/document-model/gen/operation-example/creators.js.map +1 -0
  86. package/dist/browser/cjs/src/document-model/gen/operation-example/object.js +20 -0
  87. package/dist/browser/cjs/src/document-model/gen/operation-example/object.js.map +1 -0
  88. package/dist/browser/cjs/src/document-model/gen/reducer.js +255 -0
  89. package/dist/browser/cjs/src/document-model/gen/reducer.js.map +1 -0
  90. package/dist/browser/cjs/src/document-model/gen/schema/zod.js +449 -0
  91. package/dist/browser/cjs/src/document-model/gen/schema/zod.js.map +1 -0
  92. package/dist/browser/cjs/src/document-model/gen/state/creators.js +39 -0
  93. package/dist/browser/cjs/src/document-model/gen/state/creators.js.map +1 -0
  94. package/dist/browser/cjs/src/document-model/gen/state/object.js +26 -0
  95. package/dist/browser/cjs/src/document-model/gen/state/object.js.map +1 -0
  96. package/dist/browser/cjs/src/document-model/gen/utils.js +75 -0
  97. package/dist/browser/cjs/src/document-model/gen/utils.js.map +1 -0
  98. package/dist/browser/cjs/src/document-model/gen/versioning/creators.js +33 -0
  99. package/dist/browser/cjs/src/document-model/gen/versioning/creators.js.map +1 -0
  100. package/dist/browser/cjs/src/document-model/gen/versioning/object.js +23 -0
  101. package/dist/browser/cjs/src/document-model/gen/versioning/object.js.map +1 -0
  102. package/dist/browser/es/_virtual/_commonjsHelpers.js +7 -0
  103. package/dist/browser/es/_virtual/_commonjsHelpers.js.map +1 -0
  104. package/dist/browser/es/_virtual/browser.js +35 -0
  105. package/dist/browser/es/_virtual/browser.js.map +1 -0
  106. package/dist/browser/es/_virtual/index.js +5 -0
  107. package/dist/browser/es/_virtual/index.js.map +1 -0
  108. package/dist/browser/es/_virtual/index2.js +5 -0
  109. package/dist/browser/es/_virtual/index2.js.map +1 -0
  110. package/dist/browser/es/_virtual/index3.js +5 -0
  111. package/dist/browser/es/_virtual/index3.js.map +1 -0
  112. package/dist/browser/es/_virtual/index4.js +5 -0
  113. package/dist/browser/es/_virtual/index4.js.map +1 -0
  114. package/dist/browser/es/_virtual/index5.js +5 -0
  115. package/dist/browser/es/_virtual/index5.js.map +1 -0
  116. package/dist/browser/es/_virtual/inherits_browser.js +5 -0
  117. package/dist/browser/es/_virtual/inherits_browser.js.map +1 -0
  118. package/dist/browser/es/document-model.js +38 -16
  119. package/dist/browser/es/document-model.js.map +1 -0
  120. package/dist/browser/es/document.js +13 -12
  121. package/dist/browser/es/document.js.map +1 -0
  122. package/dist/browser/es/index.js +12 -14
  123. package/dist/browser/es/index.js.map +1 -0
  124. package/dist/browser/es/src/document/actions/creators.js +46 -0
  125. package/dist/browser/es/src/document/actions/creators.js.map +1 -0
  126. package/dist/browser/es/src/document/actions/index.js +174 -0
  127. package/dist/browser/es/src/document/actions/index.js.map +1 -0
  128. package/dist/browser/es/src/document/actions/types.js +15 -0
  129. package/dist/browser/es/src/document/actions/types.js.map +1 -0
  130. package/dist/browser/es/src/document/object.js +190 -0
  131. package/dist/browser/es/src/document/object.js.map +1 -0
  132. package/dist/browser/es/src/document/reducer.js +192 -0
  133. package/dist/browser/es/src/document/reducer.js.map +1 -0
  134. package/dist/browser/es/src/document/schema/zod.js +137 -0
  135. package/dist/browser/es/src/document/schema/zod.js.map +1 -0
  136. package/dist/browser/es/src/document/utils/base.js +220 -0
  137. package/dist/browser/es/src/document/utils/base.js.map +1 -0
  138. package/dist/browser/es/src/document/utils/document-helpers.js +324 -0
  139. package/dist/browser/es/src/document/utils/document-helpers.js.map +1 -0
  140. package/dist/browser/es/src/document/utils/file.js +135 -0
  141. package/dist/browser/es/src/document/utils/file.js.map +1 -0
  142. package/dist/browser/es/src/document/utils/index.js +33 -0
  143. package/dist/browser/es/src/document/utils/index.js.map +1 -0
  144. package/dist/browser/es/src/document/utils/validation.js +24 -0
  145. package/dist/browser/es/src/document/utils/validation.js.map +1 -0
  146. package/dist/browser/es/src/document-model/custom/reducers/header.js +26 -0
  147. package/dist/browser/es/src/document-model/custom/reducers/header.js.map +1 -0
  148. package/dist/browser/es/src/document-model/custom/reducers/module.js +46 -0
  149. package/dist/browser/es/src/document-model/custom/reducers/module.js.map +1 -0
  150. package/dist/browser/es/src/document-model/custom/reducers/operation-error.js +95 -0
  151. package/dist/browser/es/src/document-model/custom/reducers/operation-error.js.map +1 -0
  152. package/dist/browser/es/src/document-model/custom/reducers/operation-example.js +58 -0
  153. package/dist/browser/es/src/document-model/custom/reducers/operation-example.js.map +1 -0
  154. package/dist/browser/es/src/document-model/custom/reducers/operation.js +123 -0
  155. package/dist/browser/es/src/document-model/custom/reducers/operation.js.map +1 -0
  156. package/dist/browser/es/src/document-model/custom/reducers/state.js +66 -0
  157. package/dist/browser/es/src/document-model/custom/reducers/state.js.map +1 -0
  158. package/dist/browser/es/src/document-model/custom/reducers/versioning.js +31 -0
  159. package/dist/browser/es/src/document-model/custom/reducers/versioning.js.map +1 -0
  160. package/dist/browser/es/src/document-model/custom/utils.js +117 -0
  161. package/dist/browser/es/src/document-model/custom/utils.js.map +1 -0
  162. package/dist/browser/es/src/document-model/gen/creators.js +53 -0
  163. package/dist/browser/es/src/document-model/gen/creators.js.map +1 -0
  164. package/dist/browser/es/src/document-model/gen/document-model.js +545 -0
  165. package/dist/browser/es/src/document-model/gen/document-model.js.map +1 -0
  166. package/dist/browser/es/src/document-model/gen/header/creators.js +39 -0
  167. package/dist/browser/es/src/document-model/gen/header/creators.js.map +1 -0
  168. package/dist/browser/es/src/document-model/gen/header/object.js +26 -0
  169. package/dist/browser/es/src/document-model/gen/header/object.js.map +1 -0
  170. package/dist/browser/es/src/document-model/gen/module/creators.js +34 -0
  171. package/dist/browser/es/src/document-model/gen/module/creators.js.map +1 -0
  172. package/dist/browser/es/src/document-model/gen/module/object.js +23 -0
  173. package/dist/browser/es/src/document-model/gen/module/object.js.map +1 -0
  174. package/dist/browser/es/src/document-model/gen/object.js +47 -0
  175. package/dist/browser/es/src/document-model/gen/object.js.map +1 -0
  176. package/dist/browser/es/src/document-model/gen/operation/creators.js +59 -0
  177. package/dist/browser/es/src/document-model/gen/operation/creators.js.map +1 -0
  178. package/dist/browser/es/src/document-model/gen/operation/object.js +38 -0
  179. package/dist/browser/es/src/document-model/gen/operation/object.js.map +1 -0
  180. package/dist/browser/es/src/document-model/gen/operation-error/creators.js +44 -0
  181. package/dist/browser/es/src/document-model/gen/operation-error/creators.js.map +1 -0
  182. package/dist/browser/es/src/document-model/gen/operation-error/object.js +29 -0
  183. package/dist/browser/es/src/document-model/gen/operation-error/object.js.map +1 -0
  184. package/dist/browser/es/src/document-model/gen/operation-example/creators.js +29 -0
  185. package/dist/browser/es/src/document-model/gen/operation-example/creators.js.map +1 -0
  186. package/dist/browser/es/src/document-model/gen/operation-example/object.js +20 -0
  187. package/dist/browser/es/src/document-model/gen/operation-example/object.js.map +1 -0
  188. package/dist/browser/es/src/document-model/gen/reducer.js +255 -0
  189. package/dist/browser/es/src/document-model/gen/reducer.js.map +1 -0
  190. package/dist/browser/es/src/document-model/gen/schema/zod.js +449 -0
  191. package/dist/browser/es/src/document-model/gen/schema/zod.js.map +1 -0
  192. package/dist/browser/es/src/document-model/gen/state/creators.js +39 -0
  193. package/dist/browser/es/src/document-model/gen/state/creators.js.map +1 -0
  194. package/dist/browser/es/src/document-model/gen/state/object.js +26 -0
  195. package/dist/browser/es/src/document-model/gen/state/object.js.map +1 -0
  196. package/dist/browser/es/src/document-model/gen/utils.js +75 -0
  197. package/dist/browser/es/src/document-model/gen/utils.js.map +1 -0
  198. package/dist/browser/es/src/document-model/gen/versioning/creators.js +33 -0
  199. package/dist/browser/es/src/document-model/gen/versioning/creators.js.map +1 -0
  200. package/dist/browser/es/src/document-model/gen/versioning/object.js +23 -0
  201. package/dist/browser/es/src/document-model/gen/versioning/object.js.map +1 -0
  202. package/dist/browser/src/document/reducer.d.ts +13 -2
  203. package/dist/browser/src/document/utils/base.d.ts +1 -1
  204. package/dist/browser/src/document/utils/document-helpers.d.ts +53 -0
  205. package/dist/browser/src/document/utils/index.d.ts +1 -0
  206. package/dist/node/cjs/_virtual/_commonjsHelpers.js +7 -0
  207. package/dist/node/cjs/_virtual/_commonjsHelpers.js.map +1 -0
  208. package/dist/node/cjs/_virtual/index.js +5 -0
  209. package/dist/node/cjs/_virtual/index.js.map +1 -0
  210. package/dist/node/cjs/document-model.js +43 -1
  211. package/dist/node/cjs/document-model.js.map +1 -0
  212. package/dist/node/cjs/document.js +15 -1
  213. package/dist/node/cjs/document.js.map +1 -0
  214. package/dist/node/cjs/index.js +14 -1
  215. package/dist/node/cjs/index.js.map +1 -0
  216. package/dist/node/cjs/src/document/actions/creators.js +46 -0
  217. package/dist/node/cjs/src/document/actions/creators.js.map +1 -0
  218. package/dist/node/cjs/src/document/actions/index.js +173 -0
  219. package/dist/node/cjs/src/document/actions/index.js.map +1 -0
  220. package/dist/node/cjs/src/document/actions/types.js +15 -0
  221. package/dist/node/cjs/src/document/actions/types.js.map +1 -0
  222. package/dist/node/cjs/src/document/object.js +190 -0
  223. package/dist/node/cjs/src/document/object.js.map +1 -0
  224. package/dist/node/cjs/src/document/reducer.js +194 -0
  225. package/dist/node/cjs/src/document/reducer.js.map +1 -0
  226. package/dist/node/cjs/src/document/schema/zod.js +137 -0
  227. package/dist/node/cjs/src/document/schema/zod.js.map +1 -0
  228. package/dist/node/cjs/src/document/utils/base.js +220 -0
  229. package/dist/node/cjs/src/document/utils/base.js.map +1 -0
  230. package/dist/node/cjs/src/document/utils/document-helpers.js +324 -0
  231. package/dist/node/cjs/src/document/utils/document-helpers.js.map +1 -0
  232. package/dist/node/cjs/src/document/utils/file.js +136 -0
  233. package/dist/node/cjs/src/document/utils/file.js.map +1 -0
  234. package/dist/node/cjs/src/document/utils/index.js +33 -0
  235. package/dist/node/cjs/src/document/utils/index.js.map +1 -0
  236. package/dist/node/cjs/src/document/utils/node.js +54 -0
  237. package/dist/node/cjs/src/document/utils/node.js.map +1 -0
  238. package/dist/node/cjs/src/document/utils/validation.js +24 -0
  239. package/dist/node/cjs/src/document/utils/validation.js.map +1 -0
  240. package/dist/node/cjs/src/document-model/custom/reducers/header.js +26 -0
  241. package/dist/node/cjs/src/document-model/custom/reducers/header.js.map +1 -0
  242. package/dist/node/cjs/src/document-model/custom/reducers/module.js +46 -0
  243. package/dist/node/cjs/src/document-model/custom/reducers/module.js.map +1 -0
  244. package/dist/node/cjs/src/document-model/custom/reducers/operation-error.js +95 -0
  245. package/dist/node/cjs/src/document-model/custom/reducers/operation-error.js.map +1 -0
  246. package/dist/node/cjs/src/document-model/custom/reducers/operation-example.js +58 -0
  247. package/dist/node/cjs/src/document-model/custom/reducers/operation-example.js.map +1 -0
  248. package/dist/node/cjs/src/document-model/custom/reducers/operation.js +123 -0
  249. package/dist/node/cjs/src/document-model/custom/reducers/operation.js.map +1 -0
  250. package/dist/node/cjs/src/document-model/custom/reducers/state.js +66 -0
  251. package/dist/node/cjs/src/document-model/custom/reducers/state.js.map +1 -0
  252. package/dist/node/cjs/src/document-model/custom/reducers/versioning.js +31 -0
  253. package/dist/node/cjs/src/document-model/custom/reducers/versioning.js.map +1 -0
  254. package/dist/node/cjs/src/document-model/custom/utils.js +117 -0
  255. package/dist/node/cjs/src/document-model/custom/utils.js.map +1 -0
  256. package/dist/node/cjs/src/document-model/gen/creators.js +53 -0
  257. package/dist/node/cjs/src/document-model/gen/creators.js.map +1 -0
  258. package/dist/node/cjs/src/document-model/gen/document-model.js +545 -0
  259. package/dist/node/cjs/src/document-model/gen/document-model.js.map +1 -0
  260. package/dist/node/cjs/src/document-model/gen/header/creators.js +41 -0
  261. package/dist/node/cjs/src/document-model/gen/header/creators.js.map +1 -0
  262. package/dist/node/cjs/src/document-model/gen/header/object.js +26 -0
  263. package/dist/node/cjs/src/document-model/gen/header/object.js.map +1 -0
  264. package/dist/node/cjs/src/document-model/gen/module/creators.js +36 -0
  265. package/dist/node/cjs/src/document-model/gen/module/creators.js.map +1 -0
  266. package/dist/node/cjs/src/document-model/gen/module/object.js +23 -0
  267. package/dist/node/cjs/src/document-model/gen/module/object.js.map +1 -0
  268. package/dist/node/cjs/src/document-model/gen/object.js +47 -0
  269. package/dist/node/cjs/src/document-model/gen/object.js.map +1 -0
  270. package/dist/node/cjs/src/document-model/gen/operation/creators.js +61 -0
  271. package/dist/node/cjs/src/document-model/gen/operation/creators.js.map +1 -0
  272. package/dist/node/cjs/src/document-model/gen/operation/object.js +38 -0
  273. package/dist/node/cjs/src/document-model/gen/operation/object.js.map +1 -0
  274. package/dist/node/cjs/src/document-model/gen/operation-error/creators.js +46 -0
  275. package/dist/node/cjs/src/document-model/gen/operation-error/creators.js.map +1 -0
  276. package/dist/node/cjs/src/document-model/gen/operation-error/object.js +29 -0
  277. package/dist/node/cjs/src/document-model/gen/operation-error/object.js.map +1 -0
  278. package/dist/node/cjs/src/document-model/gen/operation-example/creators.js +31 -0
  279. package/dist/node/cjs/src/document-model/gen/operation-example/creators.js.map +1 -0
  280. package/dist/node/cjs/src/document-model/gen/operation-example/object.js +20 -0
  281. package/dist/node/cjs/src/document-model/gen/operation-example/object.js.map +1 -0
  282. package/dist/node/cjs/src/document-model/gen/reducer.js +257 -0
  283. package/dist/node/cjs/src/document-model/gen/reducer.js.map +1 -0
  284. package/dist/node/cjs/src/document-model/gen/schema/zod.js +449 -0
  285. package/dist/node/cjs/src/document-model/gen/schema/zod.js.map +1 -0
  286. package/dist/node/cjs/src/document-model/gen/state/creators.js +41 -0
  287. package/dist/node/cjs/src/document-model/gen/state/creators.js.map +1 -0
  288. package/dist/node/cjs/src/document-model/gen/state/object.js +26 -0
  289. package/dist/node/cjs/src/document-model/gen/state/object.js.map +1 -0
  290. package/dist/node/cjs/src/document-model/gen/utils.js +75 -0
  291. package/dist/node/cjs/src/document-model/gen/utils.js.map +1 -0
  292. package/dist/node/cjs/src/document-model/gen/versioning/creators.js +35 -0
  293. package/dist/node/cjs/src/document-model/gen/versioning/creators.js.map +1 -0
  294. package/dist/node/cjs/src/document-model/gen/versioning/object.js +23 -0
  295. package/dist/node/cjs/src/document-model/gen/versioning/object.js.map +1 -0
  296. package/dist/node/es/_virtual/_commonjsHelpers.js +7 -0
  297. package/dist/node/es/_virtual/_commonjsHelpers.js.map +1 -0
  298. package/dist/node/es/_virtual/index.js +5 -0
  299. package/dist/node/es/_virtual/index.js.map +1 -0
  300. package/dist/node/es/document-model.js +37 -17
  301. package/dist/node/es/document-model.js.map +1 -0
  302. package/dist/node/es/document.js +13 -16
  303. package/dist/node/es/document.js.map +1 -0
  304. package/dist/node/es/index.js +12 -18
  305. package/dist/node/es/index.js.map +1 -0
  306. package/dist/node/es/src/document/actions/creators.js +46 -0
  307. package/dist/node/es/src/document/actions/creators.js.map +1 -0
  308. package/dist/node/es/src/document/actions/index.js +174 -0
  309. package/dist/node/es/src/document/actions/index.js.map +1 -0
  310. package/dist/node/es/src/document/actions/types.js +15 -0
  311. package/dist/node/es/src/document/actions/types.js.map +1 -0
  312. package/dist/node/es/src/document/object.js +190 -0
  313. package/dist/node/es/src/document/object.js.map +1 -0
  314. package/dist/node/es/src/document/reducer.js +194 -0
  315. package/dist/node/es/src/document/reducer.js.map +1 -0
  316. package/dist/node/es/src/document/schema/zod.js +137 -0
  317. package/dist/node/es/src/document/schema/zod.js.map +1 -0
  318. package/dist/node/es/src/document/utils/base.js +220 -0
  319. package/dist/node/es/src/document/utils/base.js.map +1 -0
  320. package/dist/node/es/src/document/utils/document-helpers.js +324 -0
  321. package/dist/node/es/src/document/utils/document-helpers.js.map +1 -0
  322. package/dist/node/es/src/document/utils/file.js +136 -0
  323. package/dist/node/es/src/document/utils/file.js.map +1 -0
  324. package/dist/node/es/src/document/utils/index.js +33 -0
  325. package/dist/node/es/src/document/utils/index.js.map +1 -0
  326. package/dist/node/es/src/document/utils/node.js +54 -0
  327. package/dist/node/es/src/document/utils/node.js.map +1 -0
  328. package/dist/node/es/src/document/utils/validation.js +24 -0
  329. package/dist/node/es/src/document/utils/validation.js.map +1 -0
  330. package/dist/node/es/src/document-model/custom/reducers/header.js +26 -0
  331. package/dist/node/es/src/document-model/custom/reducers/header.js.map +1 -0
  332. package/dist/node/es/src/document-model/custom/reducers/module.js +46 -0
  333. package/dist/node/es/src/document-model/custom/reducers/module.js.map +1 -0
  334. package/dist/node/es/src/document-model/custom/reducers/operation-error.js +95 -0
  335. package/dist/node/es/src/document-model/custom/reducers/operation-error.js.map +1 -0
  336. package/dist/node/es/src/document-model/custom/reducers/operation-example.js +58 -0
  337. package/dist/node/es/src/document-model/custom/reducers/operation-example.js.map +1 -0
  338. package/dist/node/es/src/document-model/custom/reducers/operation.js +123 -0
  339. package/dist/node/es/src/document-model/custom/reducers/operation.js.map +1 -0
  340. package/dist/node/es/src/document-model/custom/reducers/state.js +66 -0
  341. package/dist/node/es/src/document-model/custom/reducers/state.js.map +1 -0
  342. package/dist/node/es/src/document-model/custom/reducers/versioning.js +31 -0
  343. package/dist/node/es/src/document-model/custom/reducers/versioning.js.map +1 -0
  344. package/dist/node/es/src/document-model/custom/utils.js +117 -0
  345. package/dist/node/es/src/document-model/custom/utils.js.map +1 -0
  346. package/dist/node/es/src/document-model/gen/creators.js +53 -0
  347. package/dist/node/es/src/document-model/gen/creators.js.map +1 -0
  348. package/dist/node/es/src/document-model/gen/document-model.js +545 -0
  349. package/dist/node/es/src/document-model/gen/document-model.js.map +1 -0
  350. package/dist/node/es/src/document-model/gen/header/creators.js +41 -0
  351. package/dist/node/es/src/document-model/gen/header/creators.js.map +1 -0
  352. package/dist/node/es/src/document-model/gen/header/object.js +26 -0
  353. package/dist/node/es/src/document-model/gen/header/object.js.map +1 -0
  354. package/dist/node/es/src/document-model/gen/module/creators.js +36 -0
  355. package/dist/node/es/src/document-model/gen/module/creators.js.map +1 -0
  356. package/dist/node/es/src/document-model/gen/module/object.js +23 -0
  357. package/dist/node/es/src/document-model/gen/module/object.js.map +1 -0
  358. package/dist/node/es/src/document-model/gen/object.js +47 -0
  359. package/dist/node/es/src/document-model/gen/object.js.map +1 -0
  360. package/dist/node/es/src/document-model/gen/operation/creators.js +61 -0
  361. package/dist/node/es/src/document-model/gen/operation/creators.js.map +1 -0
  362. package/dist/node/es/src/document-model/gen/operation/object.js +38 -0
  363. package/dist/node/es/src/document-model/gen/operation/object.js.map +1 -0
  364. package/dist/node/es/src/document-model/gen/operation-error/creators.js +46 -0
  365. package/dist/node/es/src/document-model/gen/operation-error/creators.js.map +1 -0
  366. package/dist/node/es/src/document-model/gen/operation-error/object.js +29 -0
  367. package/dist/node/es/src/document-model/gen/operation-error/object.js.map +1 -0
  368. package/dist/node/es/src/document-model/gen/operation-example/creators.js +31 -0
  369. package/dist/node/es/src/document-model/gen/operation-example/creators.js.map +1 -0
  370. package/dist/node/es/src/document-model/gen/operation-example/object.js +20 -0
  371. package/dist/node/es/src/document-model/gen/operation-example/object.js.map +1 -0
  372. package/dist/node/es/src/document-model/gen/reducer.js +257 -0
  373. package/dist/node/es/src/document-model/gen/reducer.js.map +1 -0
  374. package/dist/node/es/src/document-model/gen/schema/zod.js +449 -0
  375. package/dist/node/es/src/document-model/gen/schema/zod.js.map +1 -0
  376. package/dist/node/es/src/document-model/gen/state/creators.js +41 -0
  377. package/dist/node/es/src/document-model/gen/state/creators.js.map +1 -0
  378. package/dist/node/es/src/document-model/gen/state/object.js +26 -0
  379. package/dist/node/es/src/document-model/gen/state/object.js.map +1 -0
  380. package/dist/node/es/src/document-model/gen/utils.js +75 -0
  381. package/dist/node/es/src/document-model/gen/utils.js.map +1 -0
  382. package/dist/node/es/src/document-model/gen/versioning/creators.js +35 -0
  383. package/dist/node/es/src/document-model/gen/versioning/creators.js.map +1 -0
  384. package/dist/node/es/src/document-model/gen/versioning/object.js +23 -0
  385. package/dist/node/es/src/document-model/gen/versioning/object.js.map +1 -0
  386. package/dist/node/src/document/reducer.d.ts +13 -2
  387. package/dist/node/src/document/utils/base.d.ts +1 -1
  388. package/dist/node/src/document/utils/document-helpers.d.ts +53 -0
  389. package/dist/node/src/document/utils/index.d.ts +1 -0
  390. package/package.json +7 -2
  391. package/dist/browser/cjs/internal/index-BVWyYyNE.js +0 -1
  392. package/dist/browser/cjs/internal/index-CnVGNZ9_.js +0 -22
  393. package/dist/browser/cjs/internal/object-5l5_pTNL.js +0 -25
  394. package/dist/browser/es/internal/index-CF0d1_Cg.js +0 -42
  395. package/dist/browser/es/internal/index-aS_vqu4O.js +0 -2104
  396. package/dist/browser/es/internal/object-BdaEhPk1.js +0 -2507
  397. package/dist/node/cjs/internal/index-B9gc2lPN.js +0 -1
  398. package/dist/node/cjs/internal/index-JtuONOcD.js +0 -22
  399. package/dist/node/cjs/internal/object-D6wRzEDN.js +0 -20
  400. package/dist/node/es/internal/index-BclkoIYP.js +0 -2108
  401. package/dist/node/es/internal/index-EY0PPZnJ.js +0 -42
  402. package/dist/node/es/internal/object-BxC3xMqY.js +0 -1405
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const JSZip = require("jszip");
4
+ const index_lite = require("../../../node_modules/.pnpm/mime@4.0.1/node_modules/mime/dist/src/index_lite.js");
5
+ const browser = require("../../../_virtual/browser.js");
6
+ const base = require("./base.js");
7
+ const validation = require("./validation.js");
8
+ const createZip = async (document) => {
9
+ const zip = new JSZip();
10
+ const { name, revision, documentType, created, lastModified } = document;
11
+ const header = {
12
+ name,
13
+ revision,
14
+ documentType,
15
+ created,
16
+ lastModified
17
+ };
18
+ zip.file("header.json", JSON.stringify(header, null, 2));
19
+ zip.file(
20
+ "state.json",
21
+ JSON.stringify(document.initialState || {}, null, 2)
22
+ );
23
+ zip.file("operations.json", JSON.stringify(document.operations, null, 2));
24
+ const attachments = Object.keys(document.attachments);
25
+ attachments.forEach((key) => {
26
+ const { data, ...attributes } = document.attachments[key];
27
+ zip.file(key, data, {
28
+ base64: true,
29
+ createFolders: true,
30
+ comment: JSON.stringify(attributes)
31
+ });
32
+ });
33
+ return zip;
34
+ };
35
+ const saveToFile = async (document, path, extension, name) => {
36
+ const zip = await createZip(document);
37
+ await zip.generateAsync({
38
+ type: "uint8array",
39
+ streamFiles: true
40
+ });
41
+ const fileName = name ?? document.name;
42
+ const fileExtension = `.${extension}.zip`;
43
+ return browser.writeFile(
44
+ path,
45
+ fileName.endsWith(fileExtension) ? fileName : `${fileName}${fileExtension}`
46
+ );
47
+ };
48
+ const saveToFileHandle = async (document, input) => {
49
+ const zip = await createZip(document);
50
+ const blob = await zip.generateAsync({ type: "blob" });
51
+ const writable = await input.createWritable();
52
+ await writable.write(blob);
53
+ await writable.close();
54
+ };
55
+ const loadFromFile = async (path, reducer, options) => {
56
+ const file = browser.readFile();
57
+ return loadFromInput(file, reducer, options);
58
+ };
59
+ const loadFromInput = async (input, reducer, options) => {
60
+ const zip = new JSZip();
61
+ await zip.loadAsync(input);
62
+ return loadFromZip(zip, reducer, options);
63
+ };
64
+ async function loadFromZip(zip, reducer, options) {
65
+ const initialStateZip = zip.file("state.json");
66
+ if (!initialStateZip) {
67
+ throw new Error("Initial state not found");
68
+ }
69
+ const initialStateStr = await initialStateZip.async("string");
70
+ const initialState = JSON.parse(initialStateStr);
71
+ const headerZip = zip.file("header.json");
72
+ let header = void 0;
73
+ if (headerZip) {
74
+ header = JSON.parse(await headerZip.async("string"));
75
+ }
76
+ const operationsZip = zip.file("operations.json");
77
+ if (!operationsZip) {
78
+ throw new Error("Operations history not found");
79
+ }
80
+ const operations = JSON.parse(
81
+ await operationsZip.async("string")
82
+ );
83
+ const operationsError = validation.validateOperations(operations);
84
+ if (operationsError.length) {
85
+ const errorMessages = operationsError.map((err) => err.message);
86
+ throw new Error(errorMessages.join("\n"));
87
+ }
88
+ let result = base.replayDocument(
89
+ initialState,
90
+ operations,
91
+ reducer,
92
+ void 0,
93
+ header,
94
+ {},
95
+ options
96
+ );
97
+ if (header) {
98
+ result = {
99
+ ...result,
100
+ ...header
101
+ };
102
+ }
103
+ return result;
104
+ }
105
+ function getFileAttributes(file) {
106
+ const extension = file.replace(/^.*\./, "") || void 0;
107
+ const fileName = file.replace(/^.*[/\\]/, "") || void 0;
108
+ return { extension, fileName };
109
+ }
110
+ async function getRemoteFile(url) {
111
+ const { buffer, mimeType = "application/octet-stream" } = await browser.fetchFile();
112
+ const attributes = getFileAttributes(url);
113
+ const data = buffer.toString("base64");
114
+ return {
115
+ data,
116
+ hash: browser.hash(data),
117
+ mimeType,
118
+ ...attributes
119
+ };
120
+ }
121
+ async function getLocalFile(path) {
122
+ const buffer = await browser.getFile();
123
+ const mimeType = index_lite.default.getType(path) || "application/octet-stream";
124
+ const attributes = getFileAttributes(path);
125
+ const data = buffer.toString("base64");
126
+ return { data, hash: browser.hash(data), mimeType, ...attributes };
127
+ }
128
+ exports.createZip = createZip;
129
+ exports.getLocalFile = getLocalFile;
130
+ exports.getRemoteFile = getRemoteFile;
131
+ exports.loadFromFile = loadFromFile;
132
+ exports.loadFromInput = loadFromInput;
133
+ exports.saveToFile = saveToFile;
134
+ exports.saveToFileHandle = saveToFileHandle;
135
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sources":["../../../../../../src/document/utils/file.ts"],"sourcesContent":["import JSZip from 'jszip';\nimport mime from 'mime/lite';\nimport type {\n Action,\n Attachment,\n AttachmentInput,\n Document,\n DocumentHeader,\n DocumentOperations,\n ExtendedState,\n Reducer,\n} from '../types';\nimport { fetchFile, getFile, hash, readFile, writeFile } from './node';\nimport { replayDocument, ReplayDocumentOptions } from './base';\nimport { validateOperations } from './validation';\n\nexport type FileInput = string | number[] | Uint8Array | ArrayBuffer | Blob;\n\nexport const createZip = async (document: Document) => {\n // create zip file\n const zip = new JSZip();\n\n const { name, revision, documentType, created, lastModified } = document;\n const header: DocumentHeader = {\n name,\n revision,\n documentType,\n created,\n lastModified,\n };\n zip.file('header.json', JSON.stringify(header, null, 2));\n zip.file(\n 'state.json',\n JSON.stringify(document.initialState || {}, null, 2),\n );\n zip.file('operations.json', JSON.stringify(document.operations, null, 2));\n\n const attachments = Object.keys(document.attachments);\n attachments.forEach(key => {\n const { data, ...attributes } = document.attachments[key];\n zip.file(key, data, {\n base64: true,\n createFolders: true,\n comment: JSON.stringify(attributes),\n });\n });\n return zip;\n};\n\n/**\n * Saves a document to a ZIP file.\n *\n * @remarks\n * This function creates a ZIP file containing the document's state, operations,\n * and file attachments. The file is saved to the specified path.\n *\n * @param document - The document to save to the file.\n * @param path - The path to save the file to.\n * @param extension - The extension to use for the file.\n * @returns A promise that resolves to the path of the saved file.\n */\nexport const saveToFile = async (\n document: Document,\n path: string,\n extension: string,\n name?: string,\n): Promise<string> => {\n // create zip file\n const zip = await createZip(document);\n const file = await zip.generateAsync({\n type: 'uint8array',\n streamFiles: true,\n });\n const fileName = name ?? document.name;\n const fileExtension = `.${extension}.zip`;\n\n return writeFile(\n path,\n fileName.endsWith(fileExtension)\n ? fileName\n : `${fileName}${fileExtension}`,\n file,\n );\n};\n\nexport const saveToFileHandle = async (\n document: Document,\n input: FileSystemFileHandle,\n) => {\n const zip = await createZip(document);\n const blob = await zip.generateAsync({ type: 'blob' });\n const writable = await input.createWritable();\n await writable.write(blob);\n await writable.close();\n};\n\n/**\n * Loads a document from a ZIP file.\n *\n * @remarks\n * This function reads a ZIP file and returns the document state after\n * applying all the operations. The reducer is used to apply the operations.\n *\n * @typeParam S - The type of the state object.\n * @typeParam A - The type of the actions that can be applied to the state object.\n *\n * @param path - The path to the ZIP file.\n * @param reducer - The reducer to apply the operations to the state object.\n * @returns A promise that resolves to the document state after applying all the operations.\n * @throws An error if the initial state or the operations history is not found in the ZIP file.\n */\nexport const loadFromFile = async <S, A extends Action, L>(\n path: string,\n reducer: Reducer<S, A, L>,\n options?: ReplayDocumentOptions,\n) => {\n const file = readFile(path);\n return loadFromInput(file, reducer, options);\n};\n\nexport const loadFromInput = async <S, A extends Action, L>(\n input: FileInput,\n reducer: Reducer<S, A, L>,\n options?: ReplayDocumentOptions,\n) => {\n const zip = new JSZip();\n await zip.loadAsync(input);\n return loadFromZip(zip, reducer, options);\n};\n\nasync function loadFromZip<S, A extends Action, L>(\n zip: JSZip,\n reducer: Reducer<S, A, L>,\n options?: ReplayDocumentOptions,\n) {\n const initialStateZip = zip.file('state.json');\n if (!initialStateZip) {\n throw new Error('Initial state not found');\n }\n const initialStateStr = await initialStateZip.async('string');\n const initialState = JSON.parse(initialStateStr) as ExtendedState<S, L>;\n\n const headerZip = zip.file('header.json');\n let header: DocumentHeader | undefined = undefined;\n if (headerZip) {\n header = JSON.parse(await headerZip.async('string')) as DocumentHeader;\n }\n\n const operationsZip = zip.file('operations.json');\n if (!operationsZip) {\n throw new Error('Operations history not found');\n }\n\n const operations = JSON.parse(\n await operationsZip.async('string'),\n ) as DocumentOperations<A>;\n\n const operationsError = validateOperations(operations);\n if (operationsError.length) {\n const errorMessages = operationsError.map(err => err.message);\n throw new Error(errorMessages.join('\\n'));\n }\n\n let result = replayDocument(\n initialState,\n operations,\n reducer,\n undefined,\n header,\n {},\n options,\n );\n if (header) {\n result = {\n ...result,\n ...header,\n };\n }\n return result;\n}\n\nfunction getFileAttributes(\n file: string,\n): Omit<Attachment, 'data' | 'mimeType'> {\n const extension = file.replace(/^.*\\./, '') || undefined;\n const fileName = file.replace(/^.*[/\\\\]/, '') || undefined;\n return { extension, fileName };\n}\n\n/**\n * Fetches an attachment from a URL and returns its base64-encoded data and MIME type.\n * @param url - The URL of the attachment to fetch.\n * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.\n */\nexport async function getRemoteFile(url: string): Promise<AttachmentInput> {\n const { buffer, mimeType = 'application/octet-stream' } =\n await fetchFile(url);\n const attributes = getFileAttributes(url);\n const data = buffer.toString('base64');\n return {\n data,\n hash: hash(data),\n mimeType,\n ...attributes,\n };\n}\n\n/**\n * Reads an attachment from a file and returns its base64-encoded data and MIME type.\n * @param path - The path of the attachment file to read.\n * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.\n */\nexport async function getLocalFile(path: string): Promise<AttachmentInput> {\n const buffer = await getFile(path);\n const mimeType = mime.getType(path) || 'application/octet-stream';\n const attributes = getFileAttributes(path);\n const data = buffer.toString('base64');\n return { data, hash: hash(data), mimeType, ...attributes };\n}\n"],"names":["writeFile","readFile","validateOperations","replayDocument","fetchFile","hash","getFile","mime"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const base = require("./base.js");
4
+ const file = require("./file.js");
5
+ const validation = require("./validation.js");
6
+ const documentHelpers = require("./document-helpers.js");
7
+ exports.calculateSkipsLeft = base.calculateSkipsLeft;
8
+ exports.createAction = base.createAction;
9
+ exports.createDocument = base.createDocument;
10
+ exports.createExtendedState = base.createExtendedState;
11
+ exports.createReducer = base.createReducer;
12
+ exports.hashDocument = base.hashDocument;
13
+ exports.hashKey = base.hashKey;
14
+ exports.isBaseAction = base.isBaseAction;
15
+ exports.isNoopOperation = base.isNoopOperation;
16
+ exports.isSameDocument = base.isSameDocument;
17
+ exports.isUndoRedo = base.isUndoRedo;
18
+ exports.mapSkippedOperations = base.mapSkippedOperations;
19
+ exports.readOnly = base.readOnly;
20
+ exports.replayDocument = base.replayDocument;
21
+ exports.replayOperations = base.replayOperations;
22
+ exports.sortMappedOperations = base.sortMappedOperations;
23
+ exports.sortOperations = base.sortOperations;
24
+ exports.createZip = file.createZip;
25
+ exports.getLocalFile = file.getLocalFile;
26
+ exports.getRemoteFile = file.getRemoteFile;
27
+ exports.loadFromFile = file.loadFromFile;
28
+ exports.loadFromInput = file.loadFromInput;
29
+ exports.saveToFile = file.saveToFile;
30
+ exports.saveToFileHandle = file.saveToFileHandle;
31
+ exports.validateOperations = validation.validateOperations;
32
+ exports.documentHelpers = documentHelpers;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function validateOperations(operations) {
4
+ const errors = [];
5
+ const scopes = Object.keys(operations);
6
+ for (const scope of scopes) {
7
+ const ops = operations[scope].sort((a, b) => a.index - b.index);
8
+ for (let i = 0; i < ops.length; i++) {
9
+ if (ops[i].index !== i) {
10
+ errors.push({
11
+ message: `Invalid operation index ${ops[i].index} at position ${i}`,
12
+ details: {
13
+ position: i,
14
+ operation: ops[i],
15
+ scope: ops[i].scope
16
+ }
17
+ });
18
+ }
19
+ }
20
+ }
21
+ return errors;
22
+ }
23
+ exports.validateOperations = validateOperations;
24
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sources":["../../../../../../src/document/utils/validation.ts"],"sourcesContent":["import {\n DocumentOperations,\n Action,\n ValidationError,\n OperationScope,\n} from '../types';\n\nexport function validateOperations<A extends Action>(\n operations: DocumentOperations<A>,\n) {\n const errors: ValidationError[] = [];\n const scopes = Object.keys(operations) as OperationScope[];\n\n for (const scope of scopes) {\n const ops = operations[scope].sort((a, b) => a.index - b.index);\n\n for (let i = 0; i < ops.length; i++) {\n if (ops[i].index !== i) {\n errors.push({\n message: `Invalid operation index ${ops[i].index} at position ${i}`,\n details: {\n position: i,\n operation: ops[i],\n scope: ops[i].scope,\n },\n });\n }\n }\n }\n\n return errors;\n}\n"],"names":[],"mappings":";;AAOO,SAAS,mBACZ,YACF;AACE,QAAM,SAA4B,CAAA;AAC5B,QAAA,SAAS,OAAO,KAAK,UAAU;AAErC,aAAW,SAAS,QAAQ;AAClB,UAAA,MAAM,WAAW,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AAE9D,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,UAAI,IAAI,CAAC,EAAE,UAAU,GAAG;AACpB,eAAO,KAAK;AAAA,UACR,SAAS,2BAA2B,IAAI,CAAC,EAAE,KAAK,gBAAgB,CAAC;AAAA,UACjE,SAAS;AAAA,YACL,UAAU;AAAA,YACV,WAAW,IAAI,CAAC;AAAA,YAChB,OAAO,IAAI,CAAC,EAAE;AAAA,UAClB;AAAA,QAAA,CACH;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEO,SAAA;AACX;;"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const reducer = {
4
+ setModelNameOperation(state, action) {
5
+ state.name = action.input.name;
6
+ },
7
+ setModelIdOperation(state, action) {
8
+ state.id = action.input.id;
9
+ },
10
+ setModelExtensionOperation(state, action) {
11
+ state.extension = action.input.extension;
12
+ },
13
+ setModelDescriptionOperation(state, action) {
14
+ state.description = action.input.description;
15
+ },
16
+ setAuthorNameOperation(state, action) {
17
+ state.author = state.author || { name: "", website: null };
18
+ state.author.name = action.input.authorName;
19
+ },
20
+ setAuthorWebsiteOperation(state, action) {
21
+ state.author = state.author || { name: "", website: null };
22
+ state.author.website = action.input.authorWebsite;
23
+ }
24
+ };
25
+ exports.reducer = reducer;
26
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sources":["../../../../../../../src/document-model/custom/reducers/header.ts"],"sourcesContent":["import { DocumentModelHeaderOperations } from '../../gen/header/operations';\n\nexport const reducer: DocumentModelHeaderOperations = {\n setModelNameOperation(state, action) {\n state.name = action.input.name;\n },\n\n setModelIdOperation(state, action) {\n state.id = action.input.id;\n },\n\n setModelExtensionOperation(state, action) {\n state.extension = action.input.extension;\n },\n\n setModelDescriptionOperation(state, action) {\n state.description = action.input.description;\n },\n\n setAuthorNameOperation(state, action) {\n state.author = state.author || { name: '', website: null };\n state.author.name = action.input.authorName;\n },\n\n setAuthorWebsiteOperation(state, action) {\n state.author = state.author || { name: '', website: null };\n state.author.website = action.input.authorWebsite;\n },\n};\n"],"names":[],"mappings":";;AAEO,MAAM,UAAyC;AAAA,EAClD,sBAAsB,OAAO,QAAQ;AAC3B,UAAA,OAAO,OAAO,MAAM;AAAA,EAC9B;AAAA,EAEA,oBAAoB,OAAO,QAAQ;AACzB,UAAA,KAAK,OAAO,MAAM;AAAA,EAC5B;AAAA,EAEA,2BAA2B,OAAO,QAAQ;AAChC,UAAA,YAAY,OAAO,MAAM;AAAA,EACnC;AAAA,EAEA,6BAA6B,OAAO,QAAQ;AAClC,UAAA,cAAc,OAAO,MAAM;AAAA,EACrC;AAAA,EAEA,uBAAuB,OAAO,QAAQ;AAClC,UAAM,SAAS,MAAM,UAAU,EAAE,MAAM,IAAI,SAAS;AAC9C,UAAA,OAAO,OAAO,OAAO,MAAM;AAAA,EACrC;AAAA,EAEA,0BAA0B,OAAO,QAAQ;AACrC,UAAM,SAAS,MAAM,UAAU,EAAE,MAAM,IAAI,SAAS;AAC9C,UAAA,OAAO,UAAU,OAAO,MAAM;AAAA,EACxC;AACJ;;"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const moduleSorter = (order) => {
4
+ const mapping = {};
5
+ order.forEach((key, index) => mapping[key] = index);
6
+ return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);
7
+ };
8
+ const reducer = {
9
+ addModuleOperation(state, action) {
10
+ const latestSpec = state.specifications[state.specifications.length - 1];
11
+ latestSpec.modules.push({
12
+ id: action.input.id,
13
+ name: action.input.name,
14
+ description: action.input.description || "",
15
+ operations: []
16
+ });
17
+ },
18
+ setModuleNameOperation(state, action) {
19
+ const latestSpec = state.specifications[state.specifications.length - 1];
20
+ for (let i = 0; i < latestSpec.modules.length; i++) {
21
+ if (latestSpec.modules[i].id === action.input.id) {
22
+ latestSpec.modules[i].name = action.input.name || "";
23
+ }
24
+ }
25
+ },
26
+ setModuleDescriptionOperation(state, action) {
27
+ const latestSpec = state.specifications[state.specifications.length - 1];
28
+ for (let i = 0; i < latestSpec.modules.length; i++) {
29
+ if (latestSpec.modules[i].id === action.input.id) {
30
+ latestSpec.modules[i].description = action.input.description || "";
31
+ }
32
+ }
33
+ },
34
+ deleteModuleOperation(state, action) {
35
+ const latestSpec = state.specifications[state.specifications.length - 1];
36
+ latestSpec.modules = latestSpec.modules.filter(
37
+ (m) => m.id != action.input.id
38
+ );
39
+ },
40
+ reorderModulesOperation(state, action) {
41
+ const latestSpec = state.specifications[state.specifications.length - 1];
42
+ latestSpec.modules.sort(moduleSorter(action.input.order));
43
+ }
44
+ };
45
+ exports.reducer = reducer;
46
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sources":["../../../../../../../src/document-model/custom/reducers/module.ts"],"sourcesContent":["import { Module } from '../../gen';\nimport { DocumentModelModuleOperations } from '../../gen/module/operations';\n\nconst moduleSorter = (order: string[]) => {\n const mapping: Record<string, number> = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a: Module, b: Module) =>\n (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\n\nexport const reducer: DocumentModelModuleOperations = {\n addModuleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n latestSpec.modules.push({\n id: action.input.id,\n name: action.input.name,\n description: action.input.description || '',\n operations: [],\n });\n },\n\n setModuleNameOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id === action.input.id) {\n latestSpec.modules[i].name = action.input.name || '';\n }\n }\n },\n\n setModuleDescriptionOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id === action.input.id) {\n latestSpec.modules[i].description =\n action.input.description || '';\n }\n }\n },\n\n deleteModuleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n latestSpec.modules = latestSpec.modules.filter(\n m => m.id != action.input.id,\n );\n },\n\n reorderModulesOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n latestSpec.modules.sort(moduleSorter(action.input.order));\n },\n};\n"],"names":[],"mappings":";;AAGA,MAAM,eAAe,CAAC,UAAoB;AACtC,QAAM,UAAkC,CAAA;AACxC,QAAM,QAAQ,CAAC,KAAK,UAAW,QAAQ,GAAG,IAAI,KAAM;AAC7C,SAAA,CAAC,GAAW,OACd,QAAQ,EAAE,EAAE,KAAK,WAAW,QAAQ,EAAE,EAAE,KAAK;AACtD;AAEO,MAAM,UAAyC;AAAA,EAClD,mBAAmB,OAAO,QAAQ;AAC9B,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,eAAW,QAAQ,KAAK;AAAA,MACpB,IAAI,OAAO,MAAM;AAAA,MACjB,MAAM,OAAO,MAAM;AAAA,MACnB,aAAa,OAAO,MAAM,eAAe;AAAA,MACzC,YAAY,CAAC;AAAA,IAAA,CAChB;AAAA,EACL;AAAA,EAEA,uBAAuB,OAAO,QAAQ;AAClC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AAChD,UAAI,WAAW,QAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,IAAI;AAC9C,mBAAW,QAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,QAAQ;AAAA,MACtD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,8BAA8B,OAAO,QAAQ;AACzC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AAChD,UAAI,WAAW,QAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,IAAI;AAC9C,mBAAW,QAAQ,CAAC,EAAE,cAClB,OAAO,MAAM,eAAe;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,sBAAsB,OAAO,QAAQ;AACjC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AAC7C,eAAA,UAAU,WAAW,QAAQ;AAAA,MACpC,CAAK,MAAA,EAAE,MAAM,OAAO,MAAM;AAAA,IAAA;AAAA,EAElC;AAAA,EAEA,wBAAwB,OAAO,QAAQ;AACnC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,eAAW,QAAQ,KAAK,aAAa,OAAO,MAAM,KAAK,CAAC;AAAA,EAC5D;AACJ;;"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const errorSorter = (order) => {
4
+ const mapping = {};
5
+ order.forEach((key, index) => mapping[key] = index);
6
+ return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);
7
+ };
8
+ const reducer = {
9
+ addOperationErrorOperation(state, action) {
10
+ const latestSpec = state.specifications[state.specifications.length - 1];
11
+ for (let i = 0; i < latestSpec.modules.length; i++) {
12
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
13
+ if (latestSpec.modules[i].operations[j].id == action.input.operationId) {
14
+ latestSpec.modules[i].operations[j].errors.push({
15
+ id: action.input.id,
16
+ name: action.input.errorName || "",
17
+ code: action.input.errorCode || "",
18
+ description: action.input.errorDescription || "",
19
+ template: action.input.errorTemplate || ""
20
+ });
21
+ }
22
+ }
23
+ }
24
+ },
25
+ setOperationErrorCodeOperation(state, action) {
26
+ const latestSpec = state.specifications[state.specifications.length - 1];
27
+ for (let i = 0; i < latestSpec.modules.length; i++) {
28
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
29
+ for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {
30
+ if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {
31
+ latestSpec.modules[i].operations[j].errors[k].code = action.input.errorCode || "";
32
+ }
33
+ }
34
+ }
35
+ }
36
+ },
37
+ setOperationErrorNameOperation(state, action) {
38
+ const latestSpec = state.specifications[state.specifications.length - 1];
39
+ for (let i = 0; i < latestSpec.modules.length; i++) {
40
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
41
+ for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {
42
+ if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {
43
+ latestSpec.modules[i].operations[j].errors[k].name = action.input.errorName || "";
44
+ }
45
+ }
46
+ }
47
+ }
48
+ },
49
+ setOperationErrorDescriptionOperation(state, action) {
50
+ const latestSpec = state.specifications[state.specifications.length - 1];
51
+ for (let i = 0; i < latestSpec.modules.length; i++) {
52
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
53
+ for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {
54
+ if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {
55
+ latestSpec.modules[i].operations[j].errors[k].description = action.input.errorDescription || "";
56
+ }
57
+ }
58
+ }
59
+ }
60
+ },
61
+ setOperationErrorTemplateOperation(state, action) {
62
+ const latestSpec = state.specifications[state.specifications.length - 1];
63
+ for (let i = 0; i < latestSpec.modules.length; i++) {
64
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
65
+ for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {
66
+ if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {
67
+ latestSpec.modules[i].operations[j].errors[k].template = action.input.errorTemplate || "";
68
+ }
69
+ }
70
+ }
71
+ }
72
+ },
73
+ deleteOperationErrorOperation(state, action) {
74
+ const latestSpec = state.specifications[state.specifications.length - 1];
75
+ for (let i = 0; i < latestSpec.modules.length; i++) {
76
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
77
+ latestSpec.modules[i].operations[j].errors = latestSpec.modules[i].operations[j].errors.filter((e) => e.id != action.input.id);
78
+ }
79
+ }
80
+ },
81
+ reorderOperationErrorsOperation(state, action) {
82
+ const latestSpec = state.specifications[state.specifications.length - 1];
83
+ for (let i = 0; i < latestSpec.modules.length; i++) {
84
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
85
+ if (latestSpec.modules[i].operations[j].id == action.input.operationId) {
86
+ latestSpec.modules[i].operations[j].errors.sort(
87
+ errorSorter(action.input.order)
88
+ );
89
+ }
90
+ }
91
+ }
92
+ }
93
+ };
94
+ exports.reducer = reducer;
95
+ //# sourceMappingURL=operation-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-error.js","sources":["../../../../../../../src/document-model/custom/reducers/operation-error.ts"],"sourcesContent":["import { OperationError } from '../../gen';\nimport { DocumentModelOperationErrorOperations } from '../../gen/operation-error/operations';\n\nconst errorSorter = (order: string[]) => {\n const mapping: Record<string, number> = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a: OperationError, b: OperationError) =>\n (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\n\nexport const reducer: DocumentModelOperationErrorOperations = {\n addOperationErrorOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (\n latestSpec.modules[i].operations[j].id ==\n action.input.operationId\n ) {\n latestSpec.modules[i].operations[j].errors.push({\n id: action.input.id,\n name: action.input.errorName || '',\n code: action.input.errorCode || '',\n description: action.input.errorDescription || '',\n template: action.input.errorTemplate || '',\n });\n }\n }\n }\n },\n\n setOperationErrorCodeOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].errors.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].errors[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].errors[k].code =\n action.input.errorCode || '';\n }\n }\n }\n }\n },\n\n setOperationErrorNameOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].errors.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].errors[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].errors[k].name =\n action.input.errorName || '';\n }\n }\n }\n }\n },\n\n setOperationErrorDescriptionOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].errors.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].errors[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].errors[\n k\n ].description = action.input.errorDescription || '';\n }\n }\n }\n }\n },\n\n setOperationErrorTemplateOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].errors.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].errors[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].errors[k].template =\n action.input.errorTemplate || '';\n }\n }\n }\n }\n },\n\n deleteOperationErrorOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n latestSpec.modules[i].operations[j].errors = latestSpec.modules[\n i\n ].operations[j].errors.filter(e => e.id != action.input.id);\n }\n }\n },\n\n reorderOperationErrorsOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (\n latestSpec.modules[i].operations[j].id ==\n action.input.operationId\n ) {\n latestSpec.modules[i].operations[j].errors.sort(\n errorSorter(action.input.order),\n );\n }\n }\n }\n },\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const exampleSorter = (order) => {
4
+ const mapping = {};
5
+ order.forEach((key, index) => mapping[key] = index);
6
+ return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);
7
+ };
8
+ const reducer = {
9
+ addOperationExampleOperation(state, action) {
10
+ const latestSpec = state.specifications[state.specifications.length - 1];
11
+ for (let i = 0; i < latestSpec.modules.length; i++) {
12
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
13
+ if (latestSpec.modules[i].operations[j].id == action.input.operationId) {
14
+ latestSpec.modules[i].operations[j].examples.push({
15
+ id: action.input.id,
16
+ value: action.input.example
17
+ });
18
+ }
19
+ }
20
+ }
21
+ },
22
+ updateOperationExampleOperation(state, action) {
23
+ const latestSpec = state.specifications[state.specifications.length - 1];
24
+ for (let i = 0; i < latestSpec.modules.length; i++) {
25
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
26
+ for (let k = 0; k < latestSpec.modules[i].operations[j].examples.length; k++) {
27
+ if (latestSpec.modules[i].operations[j].examples[k].id == action.input.id) {
28
+ latestSpec.modules[i].operations[j].examples[k].value = action.input.example;
29
+ }
30
+ }
31
+ }
32
+ }
33
+ },
34
+ deleteOperationExampleOperation(state, action) {
35
+ const latestSpec = state.specifications[state.specifications.length - 1];
36
+ for (let i = 0; i < latestSpec.modules.length; i++) {
37
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
38
+ latestSpec.modules[i].operations[j].examples = latestSpec.modules[i].operations[j].examples.filter(
39
+ (e) => e.id != action.input.id
40
+ );
41
+ }
42
+ }
43
+ },
44
+ reorderOperationExamplesOperation(state, action) {
45
+ const latestSpec = state.specifications[state.specifications.length - 1];
46
+ for (let i = 0; i < latestSpec.modules.length; i++) {
47
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
48
+ if (latestSpec.modules[i].operations[j].id == action.input.operationId) {
49
+ latestSpec.modules[i].operations[j].examples.sort(
50
+ exampleSorter(action.input.order)
51
+ );
52
+ }
53
+ }
54
+ }
55
+ }
56
+ };
57
+ exports.reducer = reducer;
58
+ //# sourceMappingURL=operation-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-example.js","sources":["../../../../../../../src/document-model/custom/reducers/operation-example.ts"],"sourcesContent":["import { CodeExample } from '../../gen';\nimport { DocumentModelOperationExampleOperations } from '../../gen/operation-example/operations';\n\nconst exampleSorter = (order: string[]) => {\n const mapping: Record<string, number> = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a: CodeExample, b: CodeExample) =>\n (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\n\nexport const reducer: DocumentModelOperationExampleOperations = {\n addOperationExampleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (\n latestSpec.modules[i].operations[j].id ==\n action.input.operationId\n ) {\n latestSpec.modules[i].operations[j].examples.push({\n id: action.input.id,\n value: action.input.example,\n });\n }\n }\n }\n },\n\n updateOperationExampleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (\n let k = 0;\n k < latestSpec.modules[i].operations[j].examples.length;\n k++\n ) {\n if (\n latestSpec.modules[i].operations[j].examples[k].id ==\n action.input.id\n ) {\n latestSpec.modules[i].operations[j].examples[k].value =\n action.input.example;\n }\n }\n }\n }\n },\n\n deleteOperationExampleOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n latestSpec.modules[i].operations[j].examples =\n latestSpec.modules[i].operations[j].examples.filter(\n e => e.id != action.input.id,\n );\n }\n }\n },\n\n reorderOperationExamplesOperation(state, action) {\n const latestSpec =\n state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (\n latestSpec.modules[i].operations[j].id ==\n action.input.operationId\n ) {\n latestSpec.modules[i].operations[j].examples.sort(\n exampleSorter(action.input.order),\n );\n }\n }\n }\n },\n};\n"],"names":[],"mappings":";;AAGA,MAAM,gBAAgB,CAAC,UAAoB;AACvC,QAAM,UAAkC,CAAA;AACxC,QAAM,QAAQ,CAAC,KAAK,UAAW,QAAQ,GAAG,IAAI,KAAM;AAC7C,SAAA,CAAC,GAAgB,OACnB,QAAQ,EAAE,EAAE,KAAK,WAAW,QAAQ,EAAE,EAAE,KAAK;AACtD;AAEO,MAAM,UAAmD;AAAA,EAC5D,6BAA6B,OAAO,QAAQ;AACxC,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AACvC,eAAA,IAAI,GAAG,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,QAAQ,KAAK;AAE1D,YAAA,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,MACpC,OAAO,MAAM,aACf;AACE,qBAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,KAAK;AAAA,YAC9C,IAAI,OAAO,MAAM;AAAA,YACjB,OAAO,OAAO,MAAM;AAAA,UAAA,CACvB;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,gCAAgC,OAAO,QAAQ;AAC3C,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AACvC,eAAA,IAAI,GAAG,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,QAAQ,KAAK;AAC9D,iBACQ,IAAI,GACR,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,QACjD,KACF;AACE,cACI,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,MAChD,OAAO,MAAM,IACf;AACa,uBAAA,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,QAC5C,OAAO,MAAM;AAAA,UACrB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,gCAAgC,OAAO,QAAQ;AAC3C,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AACvC,eAAA,IAAI,GAAG,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,QAAQ,KAAK;AAC9D,mBAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,WAChC,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS;AAAA,UACzC,CAAK,MAAA,EAAE,MAAM,OAAO,MAAM;AAAA,QAAA;AAAA,MAEtC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,kCAAkC,OAAO,QAAQ;AAC7C,UAAM,aACF,MAAM,eAAe,MAAM,eAAe,SAAS,CAAC;AACxD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK;AACvC,eAAA,IAAI,GAAG,IAAI,WAAW,QAAQ,CAAC,EAAE,WAAW,QAAQ,KAAK;AAE1D,YAAA,WAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,MACpC,OAAO,MAAM,aACf;AACE,qBAAW,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS;AAAA,YACzC,cAAc,OAAO,MAAM,KAAK;AAAA,UAAA;AAAA,QAExC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const operationSorter = (order) => {
4
+ const mapping = {};
5
+ order.forEach((key, index) => mapping[key] = index);
6
+ return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);
7
+ };
8
+ const reducer = {
9
+ addOperationOperation(state, action) {
10
+ const latestSpec = state.specifications[state.specifications.length - 1];
11
+ for (let i = 0; i < latestSpec.modules.length; i++) {
12
+ if (latestSpec.modules[i].id == action.input.moduleId) {
13
+ latestSpec.modules[i].operations.push({
14
+ id: action.input.id,
15
+ name: action.input.name,
16
+ description: action.input.description || "",
17
+ schema: action.input.schema || "",
18
+ template: action.input.template || action.input.description || "",
19
+ reducer: action.input.reducer || "",
20
+ errors: [],
21
+ examples: [],
22
+ scope: action.input.scope || "global"
23
+ });
24
+ }
25
+ }
26
+ },
27
+ setOperationNameOperation(state, action) {
28
+ const latestSpec = state.specifications[state.specifications.length - 1];
29
+ for (let i = 0; i < latestSpec.modules.length; i++) {
30
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
31
+ if (latestSpec.modules[i].operations[j].id == action.input.id) {
32
+ latestSpec.modules[i].operations[j].name = action.input.name || "";
33
+ }
34
+ }
35
+ }
36
+ },
37
+ setOperationScopeOperation(state, action) {
38
+ const latestSpec = state.specifications[state.specifications.length - 1];
39
+ for (let i = 0; i < latestSpec.modules.length; i++) {
40
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
41
+ if (latestSpec.modules[i].operations[j].id == action.input.id) {
42
+ latestSpec.modules[i].operations[j].scope = action.input.scope || "global";
43
+ }
44
+ }
45
+ }
46
+ },
47
+ setOperationSchemaOperation(state, action) {
48
+ const latestSpec = state.specifications[state.specifications.length - 1];
49
+ for (let i = 0; i < latestSpec.modules.length; i++) {
50
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
51
+ if (latestSpec.modules[i].operations[j].id == action.input.id) {
52
+ latestSpec.modules[i].operations[j].schema = action.input.schema || "";
53
+ }
54
+ }
55
+ }
56
+ },
57
+ setOperationDescriptionOperation(state, action) {
58
+ const latestSpec = state.specifications[state.specifications.length - 1];
59
+ for (let i = 0; i < latestSpec.modules.length; i++) {
60
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
61
+ if (latestSpec.modules[i].operations[j].id == action.input.id) {
62
+ latestSpec.modules[i].operations[j].description = action.input.description || "";
63
+ }
64
+ }
65
+ }
66
+ },
67
+ setOperationTemplateOperation(state, action) {
68
+ const latestSpec = state.specifications[state.specifications.length - 1];
69
+ for (let i = 0; i < latestSpec.modules.length; i++) {
70
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
71
+ if (latestSpec.modules[i].operations[j].id == action.input.id) {
72
+ latestSpec.modules[i].operations[j].template = action.input.template || "";
73
+ }
74
+ }
75
+ }
76
+ },
77
+ setOperationReducerOperation(state, action) {
78
+ const latestSpec = state.specifications[state.specifications.length - 1];
79
+ for (let i = 0; i < latestSpec.modules.length; i++) {
80
+ for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {
81
+ if (latestSpec.modules[i].operations[j].id == action.input.id) {
82
+ latestSpec.modules[i].operations[j].reducer = action.input.reducer || "";
83
+ }
84
+ }
85
+ }
86
+ },
87
+ moveOperationOperation(state, action) {
88
+ const moveOperations = [];
89
+ const latestSpec = state.specifications[state.specifications.length - 1];
90
+ for (let i = 0; i < latestSpec.modules.length; i++) {
91
+ latestSpec.modules[i].operations = latestSpec.modules[i].operations.filter((operation) => {
92
+ if (operation.id == action.input.operationId) {
93
+ moveOperations.push(operation);
94
+ return false;
95
+ }
96
+ return true;
97
+ });
98
+ }
99
+ for (let i = 0; i < latestSpec.modules.length; i++) {
100
+ if (latestSpec.modules[i].id == action.input.newModuleId) {
101
+ latestSpec.modules[i].operations.push(...moveOperations);
102
+ }
103
+ }
104
+ },
105
+ deleteOperationOperation(state, action) {
106
+ const latestSpec = state.specifications[state.specifications.length - 1];
107
+ for (let i = 0; i < latestSpec.modules.length; i++) {
108
+ latestSpec.modules[i].operations = latestSpec.modules[i].operations.filter((operation) => operation.id != action.input.id);
109
+ }
110
+ },
111
+ reorderModuleOperationsOperation(state, action) {
112
+ const latestSpec = state.specifications[state.specifications.length - 1];
113
+ for (let i = 0; i < latestSpec.modules.length; i++) {
114
+ if (latestSpec.modules[i].id == action.input.moduleId) {
115
+ latestSpec.modules[i].operations.sort(
116
+ operationSorter(action.input.order)
117
+ );
118
+ }
119
+ }
120
+ }
121
+ };
122
+ exports.reducer = reducer;
123
+ //# sourceMappingURL=operation.js.map