@creative-introvert/tons-of-tests 0.4.0

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 (266) hide show
  1. package/README.md +273 -0
  2. package/dist/cjs/Classify.js +36 -0
  3. package/dist/cjs/Classify.js.map +1 -0
  4. package/dist/cjs/DisplayConfig.js +34 -0
  5. package/dist/cjs/DisplayConfig.js.map +1 -0
  6. package/dist/cjs/Error.js +35 -0
  7. package/dist/cjs/Error.js.map +1 -0
  8. package/dist/cjs/Show.js +27 -0
  9. package/dist/cjs/Show.js.map +1 -0
  10. package/dist/cjs/Test.js +36 -0
  11. package/dist/cjs/Test.js.map +1 -0
  12. package/dist/cjs/Test.repository.js +37 -0
  13. package/dist/cjs/Test.repository.js.map +1 -0
  14. package/dist/cjs/index.js +51 -0
  15. package/dist/cjs/index.js.map +1 -0
  16. package/dist/cjs/internal/Classify.js +123 -0
  17. package/dist/cjs/internal/Classify.js.map +1 -0
  18. package/dist/cjs/internal/DisplayConfig.js +23 -0
  19. package/dist/cjs/internal/DisplayConfig.js.map +1 -0
  20. package/dist/cjs/internal/Test.js +178 -0
  21. package/dist/cjs/internal/Test.js.map +1 -0
  22. package/dist/cjs/internal/Test.repository.sqlite.js +230 -0
  23. package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -0
  24. package/dist/cjs/internal/Test.repository.sqlite.spec.js +96 -0
  25. package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +1 -0
  26. package/dist/cjs/internal/common.js +70 -0
  27. package/dist/cjs/internal/common.js.map +1 -0
  28. package/dist/cjs/internal/diff.js +86 -0
  29. package/dist/cjs/internal/diff.js.map +1 -0
  30. package/dist/cjs/internal/format-diff.js +162 -0
  31. package/dist/cjs/internal/format-diff.js.map +1 -0
  32. package/dist/cjs/internal/format-diff.spec.js +102 -0
  33. package/dist/cjs/internal/format-diff.spec.js.map +1 -0
  34. package/dist/cjs/internal/lib/Schema.js +39 -0
  35. package/dist/cjs/internal/lib/Schema.js.map +1 -0
  36. package/dist/cjs/internal/lib/jsondiffpatch/clone.js +35 -0
  37. package/dist/cjs/internal/lib/jsondiffpatch/clone.js.map +1 -0
  38. package/dist/cjs/internal/lib/jsondiffpatch/contexts/context.js +47 -0
  39. package/dist/cjs/internal/lib/jsondiffpatch/contexts/context.js.map +1 -0
  40. package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js +42 -0
  41. package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -0
  42. package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js +26 -0
  43. package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -0
  44. package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js +25 -0
  45. package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -0
  46. package/dist/cjs/internal/lib/jsondiffpatch/date-reviver.js +18 -0
  47. package/dist/cjs/internal/lib/jsondiffpatch/date-reviver.js.map +1 -0
  48. package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js +76 -0
  49. package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -0
  50. package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js +388 -0
  51. package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -0
  52. package/dist/cjs/internal/lib/jsondiffpatch/filters/dates.js +24 -0
  53. package/dist/cjs/internal/lib/jsondiffpatch/filters/dates.js.map +1 -0
  54. package/dist/cjs/internal/lib/jsondiffpatch/filters/lcs.js +78 -0
  55. package/dist/cjs/internal/lib/jsondiffpatch/filters/lcs.js.map +1 -0
  56. package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js +157 -0
  57. package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js.map +1 -0
  58. package/dist/cjs/internal/lib/jsondiffpatch/filters/texts.js +123 -0
  59. package/dist/cjs/internal/lib/jsondiffpatch/filters/texts.js.map +1 -0
  60. package/dist/cjs/internal/lib/jsondiffpatch/filters/trivial.js +108 -0
  61. package/dist/cjs/internal/lib/jsondiffpatch/filters/trivial.js.map +1 -0
  62. package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js +169 -0
  63. package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -0
  64. package/dist/cjs/internal/lib/jsondiffpatch/formatters/base.js +198 -0
  65. package/dist/cjs/internal/lib/jsondiffpatch/formatters/base.js.map +1 -0
  66. package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js +243 -0
  67. package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js.map +1 -0
  68. package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js +178 -0
  69. package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -0
  70. package/dist/cjs/internal/lib/jsondiffpatch/index.js +65 -0
  71. package/dist/cjs/internal/lib/jsondiffpatch/index.js.map +1 -0
  72. package/dist/cjs/internal/lib/jsondiffpatch/pipe.js +110 -0
  73. package/dist/cjs/internal/lib/jsondiffpatch/pipe.js.map +1 -0
  74. package/dist/cjs/internal/lib/jsondiffpatch/processor.js +71 -0
  75. package/dist/cjs/internal/lib/jsondiffpatch/processor.js.map +1 -0
  76. package/dist/cjs/internal/lib/jsondiffpatch/types.js +6 -0
  77. package/dist/cjs/internal/lib/jsondiffpatch/types.js.map +1 -0
  78. package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js +92 -0
  79. package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -0
  80. package/dist/cjs/internal/pack.js +81 -0
  81. package/dist/cjs/internal/pack.js.map +1 -0
  82. package/dist/cjs/internal/stats.js +144 -0
  83. package/dist/cjs/internal/stats.js.map +1 -0
  84. package/dist/cjs/internal/summarize.js +173 -0
  85. package/dist/cjs/internal/summarize.js.map +1 -0
  86. package/dist/cjs/pack.js +33 -0
  87. package/dist/cjs/pack.js.map +1 -0
  88. package/dist/cjs/prelude.js +95 -0
  89. package/dist/cjs/prelude.js.map +1 -0
  90. package/dist/dts/Classify.d.ts +20 -0
  91. package/dist/dts/Classify.d.ts.map +1 -0
  92. package/dist/dts/DisplayConfig.d.ts +19 -0
  93. package/dist/dts/DisplayConfig.d.ts.map +1 -0
  94. package/dist/dts/Error.d.ts +10 -0
  95. package/dist/dts/Error.d.ts.map +1 -0
  96. package/dist/dts/Show.d.ts +37 -0
  97. package/dist/dts/Show.d.ts.map +1 -0
  98. package/dist/dts/Test.d.ts +48 -0
  99. package/dist/dts/Test.d.ts.map +1 -0
  100. package/dist/dts/Test.repository.d.ts +40 -0
  101. package/dist/dts/Test.repository.d.ts.map +1 -0
  102. package/dist/dts/index.d.ts +8 -0
  103. package/dist/dts/index.d.ts.map +1 -0
  104. package/dist/dts/internal/Classify.d.ts +34 -0
  105. package/dist/dts/internal/Classify.d.ts.map +1 -0
  106. package/dist/dts/internal/DisplayConfig.d.ts +3 -0
  107. package/dist/dts/internal/DisplayConfig.d.ts.map +1 -0
  108. package/dist/dts/internal/Test.d.ts +39 -0
  109. package/dist/dts/internal/Test.d.ts.map +1 -0
  110. package/dist/dts/internal/Test.repository.sqlite.d.ts +10 -0
  111. package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -0
  112. package/dist/dts/internal/Test.repository.sqlite.spec.d.ts +2 -0
  113. package/dist/dts/internal/Test.repository.sqlite.spec.d.ts.map +1 -0
  114. package/dist/dts/internal/common.d.ts +11 -0
  115. package/dist/dts/internal/common.d.ts.map +1 -0
  116. package/dist/dts/internal/diff.d.ts +9 -0
  117. package/dist/dts/internal/diff.d.ts.map +1 -0
  118. package/dist/dts/internal/format-diff.d.ts +3 -0
  119. package/dist/dts/internal/format-diff.d.ts.map +1 -0
  120. package/dist/dts/internal/format-diff.spec.d.ts +2 -0
  121. package/dist/dts/internal/format-diff.spec.d.ts.map +1 -0
  122. package/dist/dts/internal/lib/Schema.d.ts +4 -0
  123. package/dist/dts/internal/lib/Schema.d.ts.map +1 -0
  124. package/dist/dts/internal/lib/jsondiffpatch/clone.d.ts +2 -0
  125. package/dist/dts/internal/lib/jsondiffpatch/clone.d.ts.map +1 -0
  126. package/dist/dts/internal/lib/jsondiffpatch/contexts/context.d.ts +18 -0
  127. package/dist/dts/internal/lib/jsondiffpatch/contexts/context.d.ts.map +1 -0
  128. package/dist/dts/internal/lib/jsondiffpatch/contexts/diff.d.ts +15 -0
  129. package/dist/dts/internal/lib/jsondiffpatch/contexts/diff.d.ts.map +1 -0
  130. package/dist/dts/internal/lib/jsondiffpatch/contexts/patch.d.ts +11 -0
  131. package/dist/dts/internal/lib/jsondiffpatch/contexts/patch.d.ts.map +1 -0
  132. package/dist/dts/internal/lib/jsondiffpatch/contexts/reverse.d.ts +11 -0
  133. package/dist/dts/internal/lib/jsondiffpatch/contexts/reverse.d.ts.map +1 -0
  134. package/dist/dts/internal/lib/jsondiffpatch/date-reviver.d.ts +2 -0
  135. package/dist/dts/internal/lib/jsondiffpatch/date-reviver.d.ts.map +1 -0
  136. package/dist/dts/internal/lib/jsondiffpatch/diffpatcher.d.ts +14 -0
  137. package/dist/dts/internal/lib/jsondiffpatch/diffpatcher.d.ts.map +1 -0
  138. package/dist/dts/internal/lib/jsondiffpatch/filters/arrays.d.ts +16 -0
  139. package/dist/dts/internal/lib/jsondiffpatch/filters/arrays.d.ts.map +1 -0
  140. package/dist/dts/internal/lib/jsondiffpatch/filters/dates.d.ts +4 -0
  141. package/dist/dts/internal/lib/jsondiffpatch/filters/dates.d.ts.map +1 -0
  142. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts +11 -0
  143. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -0
  144. package/dist/dts/internal/lib/jsondiffpatch/filters/nested.d.ts +11 -0
  145. package/dist/dts/internal/lib/jsondiffpatch/filters/nested.d.ts.map +1 -0
  146. package/dist/dts/internal/lib/jsondiffpatch/filters/texts.d.ts +8 -0
  147. package/dist/dts/internal/lib/jsondiffpatch/filters/texts.d.ts.map +1 -0
  148. package/dist/dts/internal/lib/jsondiffpatch/filters/trivial.d.ts +8 -0
  149. package/dist/dts/internal/lib/jsondiffpatch/filters/trivial.d.ts.map +1 -0
  150. package/dist/dts/internal/lib/jsondiffpatch/formatters/annotated.d.ts +30 -0
  151. package/dist/dts/internal/lib/jsondiffpatch/formatters/annotated.d.ts.map +1 -0
  152. package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts +60 -0
  153. package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts.map +1 -0
  154. package/dist/dts/internal/lib/jsondiffpatch/formatters/html.d.ts +28 -0
  155. package/dist/dts/internal/lib/jsondiffpatch/formatters/html.d.ts.map +1 -0
  156. package/dist/dts/internal/lib/jsondiffpatch/formatters/jsonpatch.d.ts +62 -0
  157. package/dist/dts/internal/lib/jsondiffpatch/formatters/jsonpatch.d.ts.map +1 -0
  158. package/dist/dts/internal/lib/jsondiffpatch/index.d.ts +17 -0
  159. package/dist/dts/internal/lib/jsondiffpatch/index.d.ts.map +1 -0
  160. package/dist/dts/internal/lib/jsondiffpatch/pipe.d.ts +25 -0
  161. package/dist/dts/internal/lib/jsondiffpatch/pipe.d.ts.map +1 -0
  162. package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts +20 -0
  163. package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts.map +1 -0
  164. package/dist/dts/internal/lib/jsondiffpatch/types.d.ts +36 -0
  165. package/dist/dts/internal/lib/jsondiffpatch/types.d.ts.map +1 -0
  166. package/dist/dts/internal/lib/jsondiffpatch/with-text-diffs.d.ts +19 -0
  167. package/dist/dts/internal/lib/jsondiffpatch/with-text-diffs.d.ts.map +1 -0
  168. package/dist/dts/internal/pack.d.ts +2 -0
  169. package/dist/dts/internal/pack.d.ts.map +1 -0
  170. package/dist/dts/internal/stats.d.ts +9 -0
  171. package/dist/dts/internal/stats.d.ts.map +1 -0
  172. package/dist/dts/internal/summarize.d.ts +11 -0
  173. package/dist/dts/internal/summarize.d.ts.map +1 -0
  174. package/dist/dts/pack.d.ts +2 -0
  175. package/dist/dts/pack.d.ts.map +1 -0
  176. package/dist/dts/prelude.d.ts +24 -0
  177. package/dist/dts/prelude.d.ts.map +1 -0
  178. package/dist/esm/Classify.js +13 -0
  179. package/dist/esm/Classify.js.map +1 -0
  180. package/dist/esm/DisplayConfig.js +11 -0
  181. package/dist/esm/DisplayConfig.js.map +1 -0
  182. package/dist/esm/Error.js +12 -0
  183. package/dist/esm/Error.js.map +1 -0
  184. package/dist/esm/Show.js +27 -0
  185. package/dist/esm/Show.js.map +1 -0
  186. package/dist/esm/Test.js +13 -0
  187. package/dist/esm/Test.js.map +1 -0
  188. package/dist/esm/Test.repository.js +14 -0
  189. package/dist/esm/Test.repository.js.map +1 -0
  190. package/dist/esm/index.js +28 -0
  191. package/dist/esm/index.js.map +1 -0
  192. package/dist/esm/internal/Classify.js +100 -0
  193. package/dist/esm/internal/Classify.js.map +1 -0
  194. package/dist/esm/internal/DisplayConfig.js +23 -0
  195. package/dist/esm/internal/DisplayConfig.js.map +1 -0
  196. package/dist/esm/internal/Test.js +155 -0
  197. package/dist/esm/internal/Test.js.map +1 -0
  198. package/dist/esm/internal/Test.repository.sqlite.js +207 -0
  199. package/dist/esm/internal/Test.repository.sqlite.js.map +1 -0
  200. package/dist/esm/internal/Test.repository.sqlite.spec.js +73 -0
  201. package/dist/esm/internal/Test.repository.sqlite.spec.js.map +1 -0
  202. package/dist/esm/internal/common.js +66 -0
  203. package/dist/esm/internal/common.js.map +1 -0
  204. package/dist/esm/internal/diff.js +82 -0
  205. package/dist/esm/internal/diff.js.map +1 -0
  206. package/dist/esm/internal/format-diff.js +158 -0
  207. package/dist/esm/internal/format-diff.js.map +1 -0
  208. package/dist/esm/internal/format-diff.spec.js +79 -0
  209. package/dist/esm/internal/format-diff.spec.js.map +1 -0
  210. package/dist/esm/internal/lib/Schema.js +16 -0
  211. package/dist/esm/internal/lib/Schema.js.map +1 -0
  212. package/dist/esm/internal/lib/jsondiffpatch/clone.js +35 -0
  213. package/dist/esm/internal/lib/jsondiffpatch/clone.js.map +1 -0
  214. package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js +47 -0
  215. package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js.map +1 -0
  216. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js +38 -0
  217. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -0
  218. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js +22 -0
  219. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -0
  220. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js +21 -0
  221. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -0
  222. package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js +18 -0
  223. package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js.map +1 -0
  224. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js +49 -0
  225. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -0
  226. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js +384 -0
  227. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -0
  228. package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js +24 -0
  229. package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js.map +1 -0
  230. package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js +78 -0
  231. package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js.map +1 -0
  232. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js +153 -0
  233. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js.map +1 -0
  234. package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js +123 -0
  235. package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js.map +1 -0
  236. package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js +108 -0
  237. package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js.map +1 -0
  238. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js +165 -0
  239. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -0
  240. package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js +198 -0
  241. package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js.map +1 -0
  242. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js +239 -0
  243. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js.map +1 -0
  244. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js +174 -0
  245. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -0
  246. package/dist/esm/internal/lib/jsondiffpatch/index.js +61 -0
  247. package/dist/esm/internal/lib/jsondiffpatch/index.js.map +1 -0
  248. package/dist/esm/internal/lib/jsondiffpatch/pipe.js +110 -0
  249. package/dist/esm/internal/lib/jsondiffpatch/pipe.js.map +1 -0
  250. package/dist/esm/internal/lib/jsondiffpatch/processor.js +71 -0
  251. package/dist/esm/internal/lib/jsondiffpatch/processor.js.map +1 -0
  252. package/dist/esm/internal/lib/jsondiffpatch/types.js +6 -0
  253. package/dist/esm/internal/lib/jsondiffpatch/types.js.map +1 -0
  254. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js +88 -0
  255. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -0
  256. package/dist/esm/internal/pack.js +58 -0
  257. package/dist/esm/internal/pack.js.map +1 -0
  258. package/dist/esm/internal/stats.js +117 -0
  259. package/dist/esm/internal/stats.js.map +1 -0
  260. package/dist/esm/internal/summarize.js +146 -0
  261. package/dist/esm/internal/summarize.js.map +1 -0
  262. package/dist/esm/pack.js +10 -0
  263. package/dist/esm/pack.js.map +1 -0
  264. package/dist/esm/prelude.js +72 -0
  265. package/dist/esm/prelude.js.map +1 -0
  266. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffpatcher.js","names":["_processor","_interopRequireDefault","require","_pipe","_diff","_patch","_reverse","_clone","trivial","_interopRequireWildcard","nested","arrays","dates","texts","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","obj","DiffPatcher","processor","constructor","options","Processor","pipe","Pipe","append","collectChildrenDiffFilter","diffFilter","objectsDiffFilter","shouldHaveResult","collectChildrenPatchFilter","patchFilter","collectChildrenReverseFilter","reverseFilter","diff","left","right","process","DiffContext","patch","delta","PatchContext","reverse","ReverseContext","unpatch","clone","value","_default","exports"],"sources":["../../../../../src/internal/lib/jsondiffpatch/diffpatcher.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,gBAAAC,sBAAA,eAAAC,OAAA;AACA,IAAAC,KAAA,gBAAAF,sBAAA,eAAAC,OAAA;AACA,IAAAE,KAAA,gBAAAH,sBAAA,eAAAC,OAAA;AACA,IAAAG,MAAA,gBAAAJ,sBAAA,eAAAC,OAAA;AACA,IAAAI,QAAA,gBAAAL,sBAAA,eAAAC,OAAA;AACA,IAAAK,MAAA,gBAAAN,sBAAA,eAAAC,OAAA;AAEA,IAAAM,OAAA,gBAAAC,uBAAA,eAAAP,OAAA;AACA,IAAAQ,MAAA,gBAAAD,uBAAA,eAAAP,OAAA;AACA,IAAAS,MAAA,gBAAAF,uBAAA,eAAAP,OAAA;AACA,IAAAU,KAAA,gBAAAH,uBAAA,eAAAP,OAAA;AACA,IAAAW,KAAA,gBAAAJ,uBAAA,eAAAP,OAAA;AAA4C,SAAAY,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAtB,uBAAAiC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAf,UAAA,GAAAe,GAAA,KAAAd,OAAA,EAAAc,GAAA;AAG5C,MAAMC,WAAW;EACfC,SAAS;EAETC,YAAYC,OAAiB;IAC3B,IAAI,CAACF,SAAS,GAAG,IAAIG,kBAAS,CAACD,OAAO,CAAC;IACvC,IAAI,CAACF,SAAS,CAACI,IAAI,CACjB,IAAIC,aAAI,CAAc,MAAM,CAAC,CAC1BC,MAAM,CACLhC,MAAM,CAACiC,yBAAyB,EAChCnC,OAAO,CAACoC,UAAU,EAClBhC,KAAK,CAACgC,UAAU,EAChB/B,KAAK,CAAC+B,UAAU,EAChBlC,MAAM,CAACmC,iBAAiB,EACxBlC,MAAM,CAACiC,UAAU,CAClB,CACAE,gBAAgB,EAAG,CACvB;IACD,IAAI,CAACV,SAAS,CAACI,IAAI,CACjB,IAAIC,aAAI,CAAe,OAAO,CAAC,CAC5BC,MAAM,CACLhC,MAAM,CAACqC,0BAA0B,EACjCpC,MAAM,CAACoC,0BAA0B,EACjCvC,OAAO,CAACwC,WAAW,EACnBnC,KAAK,CAACmC,WAAW,EACjBtC,MAAM,CAACsC,WAAW,EAClBrC,MAAM,CAACqC,WAAW,CACnB,CACAF,gBAAgB,EAAG,CACvB;IACD,IAAI,CAACV,SAAS,CAACI,IAAI,CACjB,IAAIC,aAAI,CAAiB,SAAS,CAAC,CAChCC,MAAM,CACLhC,MAAM,CAACuC,4BAA4B,EACnCtC,MAAM,CAACsC,4BAA4B,EACnCzC,OAAO,CAAC0C,aAAa,EACrBrC,KAAK,CAACqC,aAAa,EACnBxC,MAAM,CAACwC,aAAa,EACpBvC,MAAM,CAACuC,aAAa,CACrB,CACAJ,gBAAgB,EAAG,CACvB;EACH;EAEAR,OAAOA,CAACA,OAAgB;IACtB,OAAO,IAAI,CAACF,SAAS,CAACE,OAAO,CAACA,OAAO,CAAC;EACxC;EAEAa,IAAIA,CAACC,IAAa,EAAEC,KAAc;IAChC,OAAO,IAAI,CAACjB,SAAS,CAACkB,OAAO,CAAC,IAAIC,aAAW,CAACH,IAAI,EAAEC,KAAK,CAAC,CAAC;EAC7D;EAEAG,KAAKA,CAACJ,IAAa,EAAEK,KAAY;IAC/B,OAAO,IAAI,CAACrB,SAAS,CAACkB,OAAO,CAAC,IAAII,cAAY,CAACN,IAAI,EAAEK,KAAK,CAAC,CAAC;EAC9D;EAEAE,OAAOA,CAACF,KAAY;IAClB,OAAO,IAAI,CAACrB,SAAS,CAACkB,OAAO,CAAC,IAAIM,gBAAc,CAACH,KAAK,CAAC,CAAC;EAC1D;EAEAI,OAAOA,CAACR,KAAc,EAAEI,KAAY;IAClC,OAAO,IAAI,CAACD,KAAK,CAACH,KAAK,EAAE,IAAI,CAACM,OAAO,CAACF,KAAK,CAAC,CAAC;EAC/C;EAEAK,KAAKA,CAACC,KAAc;IAClB,OAAO,IAAAD,cAAK,EAACC,KAAK,CAAC;EACrB;;AACD,IAAAC,QAAA,GAAAC,OAAA,CAAA7C,OAAA,GAEce,WAAW","ignoreList":[]}
@@ -0,0 +1,384 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.reverseFilter = exports.patchFilter = exports.diffFilter = exports.collectChildrenReverseFilter = exports.collectChildrenPatchFilter = void 0;
7
+ var _diff = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("../contexts/diff.js"));
8
+ var _patch = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("../contexts/patch.js"));
9
+ var _reverse = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("../contexts/reverse.js"));
10
+ var _lcs = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("./lcs.js"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ const ARRAY_MOVE = 3;
13
+ function arraysHaveMatchByRef(array1, array2, len1, len2) {
14
+ for (let index1 = 0; index1 < len1; index1++) {
15
+ const val1 = array1[index1];
16
+ for (let index2 = 0; index2 < len2; index2++) {
17
+ const val2 = array2[index2];
18
+ if (index1 !== index2 && val1 === val2) {
19
+ return true;
20
+ }
21
+ }
22
+ }
23
+ }
24
+ function matchItems(array1, array2, index1, index2, context) {
25
+ const value1 = array1[index1];
26
+ const value2 = array2[index2];
27
+ if (value1 === value2) {
28
+ return true;
29
+ }
30
+ if (typeof value1 !== 'object' || typeof value2 !== 'object') {
31
+ return false;
32
+ }
33
+ const objectHash = context.objectHash;
34
+ if (!objectHash) {
35
+ // no way to match objects was provided, try match by position
36
+ return context.matchByPosition && index1 === index2;
37
+ }
38
+ context.hashCache1 = context.hashCache1 || [];
39
+ let hash1 = context.hashCache1[index1];
40
+ if (typeof hash1 === 'undefined') {
41
+ context.hashCache1[index1] = hash1 = objectHash(value1, index1);
42
+ }
43
+ if (typeof hash1 === 'undefined') {
44
+ return false;
45
+ }
46
+ context.hashCache2 = context.hashCache2 || [];
47
+ let hash2 = context.hashCache2[index2];
48
+ if (typeof hash2 === 'undefined') {
49
+ context.hashCache2[index2] = hash2 = objectHash(value2, index2);
50
+ }
51
+ if (typeof hash2 === 'undefined') {
52
+ return false;
53
+ }
54
+ return hash1 === hash2;
55
+ }
56
+ const diffFilter = exports.diffFilter = function arraysDiffFilter(context) {
57
+ if (!context.leftIsArray) {
58
+ return;
59
+ }
60
+ const matchContext = {
61
+ objectHash: context.options && context.options.objectHash,
62
+ matchByPosition: context.options && context.options.matchByPosition
63
+ };
64
+ let commonHead = 0;
65
+ let commonTail = 0;
66
+ let index;
67
+ let index1;
68
+ let index2;
69
+ const array1 = context.left;
70
+ const array2 = context.right;
71
+ const len1 = array1.length;
72
+ const len2 = array2.length;
73
+ let child;
74
+ if (len1 > 0 && len2 > 0 && !matchContext.objectHash && typeof matchContext.matchByPosition !== 'boolean') {
75
+ matchContext.matchByPosition = !arraysHaveMatchByRef(array1, array2, len1, len2);
76
+ }
77
+ // separate common head
78
+ while (commonHead < len1 && commonHead < len2 && matchItems(array1, array2, commonHead, commonHead, matchContext)) {
79
+ index = commonHead;
80
+ child = new _diff.default(array1[index], array2[index]);
81
+ context.push(child, index);
82
+ commonHead++;
83
+ }
84
+ // separate common tail
85
+ while (commonTail + commonHead < len1 && commonTail + commonHead < len2 && matchItems(array1, array2, len1 - 1 - commonTail, len2 - 1 - commonTail, matchContext)) {
86
+ index1 = len1 - 1 - commonTail;
87
+ index2 = len2 - 1 - commonTail;
88
+ child = new _diff.default(array1[index1], array2[index2]);
89
+ context.push(child, index2);
90
+ commonTail++;
91
+ }
92
+ let result;
93
+ if (commonHead + commonTail === len1) {
94
+ if (len1 === len2) {
95
+ // arrays are identical
96
+ context.setResult(undefined).exit();
97
+ return;
98
+ }
99
+ // trivial case, a block (1 or more consecutive items) was added
100
+ result = result || {
101
+ _t: 'a'
102
+ };
103
+ for (index = commonHead; index < len2 - commonTail; index++) {
104
+ result[index] = [array2[index]];
105
+ }
106
+ context.setResult(result).exit();
107
+ return;
108
+ }
109
+ if (commonHead + commonTail === len2) {
110
+ // trivial case, a block (1 or more consecutive items) was removed
111
+ result = result || {
112
+ _t: 'a'
113
+ };
114
+ for (index = commonHead; index < len1 - commonTail; index++) {
115
+ result[`_${index}`] = [array1[index], 0, 0];
116
+ }
117
+ context.setResult(result).exit();
118
+ return;
119
+ }
120
+ // reset hash cache
121
+ delete matchContext.hashCache1;
122
+ delete matchContext.hashCache2;
123
+ // diff is not trivial, find the LCS (Longest Common Subsequence)
124
+ const trimmed1 = array1.slice(commonHead, len1 - commonTail);
125
+ const trimmed2 = array2.slice(commonHead, len2 - commonTail);
126
+ const seq = _lcs.default.get(trimmed1, trimmed2, matchItems, matchContext);
127
+ const removedItems = [];
128
+ result = result || {
129
+ _t: 'a'
130
+ };
131
+ for (index = commonHead; index < len1 - commonTail; index++) {
132
+ if (seq.indices1.indexOf(index - commonHead) < 0) {
133
+ // removed
134
+ result[`_${index}`] = [array1[index], 0, 0];
135
+ removedItems.push(index);
136
+ }
137
+ }
138
+ let detectMove = true;
139
+ if (context.options && context.options.arrays && context.options.arrays.detectMove === false) {
140
+ detectMove = false;
141
+ }
142
+ let includeValueOnMove = false;
143
+ if (context.options && context.options.arrays && context.options.arrays.includeValueOnMove) {
144
+ includeValueOnMove = true;
145
+ }
146
+ const removedItemsLength = removedItems.length;
147
+ for (index = commonHead; index < len2 - commonTail; index++) {
148
+ const indexOnArray2 = seq.indices2.indexOf(index - commonHead);
149
+ if (indexOnArray2 < 0) {
150
+ // added, try to match with a removed item and register as position move
151
+ let isMove = false;
152
+ if (detectMove && removedItemsLength > 0) {
153
+ for (let removeItemIndex1 = 0; removeItemIndex1 < removedItemsLength; removeItemIndex1++) {
154
+ index1 = removedItems[removeItemIndex1];
155
+ if (matchItems(trimmed1, trimmed2, index1 - commonHead, index - commonHead, matchContext)) {
156
+ // store position move as: [originalValue, newPosition, ARRAY_MOVE]
157
+ result[`_${index1}`].splice(1, 2, index, ARRAY_MOVE);
158
+ if (!includeValueOnMove) {
159
+ // don't include moved value on diff, to save bytes
160
+ result[`_${index1}`][0] = '';
161
+ }
162
+ index2 = index;
163
+ child = new _diff.default(array1[index1], array2[index2]);
164
+ context.push(child, index2);
165
+ removedItems.splice(removeItemIndex1, 1);
166
+ isMove = true;
167
+ break;
168
+ }
169
+ }
170
+ }
171
+ if (!isMove) {
172
+ // added
173
+ result[index] = [array2[index]];
174
+ }
175
+ } else {
176
+ // match, do inner diff
177
+ index1 = seq.indices1[indexOnArray2] + commonHead;
178
+ index2 = seq.indices2[indexOnArray2] + commonHead;
179
+ child = new _diff.default(array1[index1], array2[index2]);
180
+ context.push(child, index2);
181
+ }
182
+ }
183
+ context.setResult(result).exit();
184
+ };
185
+ diffFilter.filterName = 'arrays';
186
+ const compare = {
187
+ numerically(a, b) {
188
+ return a - b;
189
+ },
190
+ numericallyBy(name) {
191
+ return (a, b) => a[name] - b[name];
192
+ }
193
+ };
194
+ const patchFilter = exports.patchFilter = function nestedPatchFilter(context) {
195
+ if (!context.nested) {
196
+ return;
197
+ }
198
+ const nestedDelta = context.delta;
199
+ if (nestedDelta._t !== 'a') {
200
+ return;
201
+ }
202
+ let index;
203
+ let index1;
204
+ const delta = nestedDelta;
205
+ const array = context.left;
206
+ // first, separate removals, insertions and modifications
207
+ let toRemove = [];
208
+ let toInsert = [];
209
+ const toModify = [];
210
+ for (index in delta) {
211
+ if (index !== '_t') {
212
+ if (index[0] === '_') {
213
+ const removedOrMovedIndex = index;
214
+ // removed item from original array
215
+ if (delta[removedOrMovedIndex][2] === 0 || delta[removedOrMovedIndex][2] === ARRAY_MOVE) {
216
+ toRemove.push(parseInt(index.slice(1), 10));
217
+ } else {
218
+ throw new Error('only removal or move can be applied at original array indices,' + ` invalid diff type: ${delta[removedOrMovedIndex][2]}`);
219
+ }
220
+ } else {
221
+ const numberIndex = index;
222
+ if (delta[numberIndex].length === 1) {
223
+ // added item at new array
224
+ toInsert.push({
225
+ index: parseInt(numberIndex, 10),
226
+ value: delta[numberIndex][0]
227
+ });
228
+ } else {
229
+ // modified item at new array
230
+ toModify.push({
231
+ index: parseInt(numberIndex, 10),
232
+ delta: delta[numberIndex]
233
+ });
234
+ }
235
+ }
236
+ }
237
+ }
238
+ // remove items, in reverse order to avoid sawing our own floor
239
+ toRemove = toRemove.sort(compare.numerically);
240
+ for (index = toRemove.length - 1; index >= 0; index--) {
241
+ index1 = toRemove[index];
242
+ const indexDiff = delta[`_${index1}`];
243
+ const removedValue = array.splice(index1, 1)[0];
244
+ if (indexDiff[2] === ARRAY_MOVE) {
245
+ // reinsert later
246
+ toInsert.push({
247
+ index: indexDiff[1],
248
+ value: removedValue
249
+ });
250
+ }
251
+ }
252
+ // insert items, in reverse order to avoid moving our own floor
253
+ toInsert = toInsert.sort(compare.numericallyBy('index'));
254
+ const toInsertLength = toInsert.length;
255
+ for (index = 0; index < toInsertLength; index++) {
256
+ const insertion = toInsert[index];
257
+ array.splice(insertion.index, 0, insertion.value);
258
+ }
259
+ // apply modifications
260
+ const toModifyLength = toModify.length;
261
+ let child;
262
+ if (toModifyLength > 0) {
263
+ for (index = 0; index < toModifyLength; index++) {
264
+ const modification = toModify[index];
265
+ child = new _patch.default(array[modification.index], modification.delta);
266
+ context.push(child, modification.index);
267
+ }
268
+ }
269
+ if (!context.children) {
270
+ context.setResult(array).exit();
271
+ return;
272
+ }
273
+ context.exit();
274
+ };
275
+ patchFilter.filterName = 'arrays';
276
+ const collectChildrenPatchFilter = exports.collectChildrenPatchFilter = function collectChildrenPatchFilter(context) {
277
+ if (!context || !context.children) {
278
+ return;
279
+ }
280
+ const deltaWithChildren = context.delta;
281
+ if (deltaWithChildren._t !== 'a') {
282
+ return;
283
+ }
284
+ const array = context.left;
285
+ const length = context.children.length;
286
+ let child;
287
+ for (let index = 0; index < length; index++) {
288
+ child = context.children[index];
289
+ const arrayIndex = child.childName;
290
+ array[arrayIndex] = child.result;
291
+ }
292
+ context.setResult(array).exit();
293
+ };
294
+ collectChildrenPatchFilter.filterName = 'arraysCollectChildren';
295
+ const reverseFilter = exports.reverseFilter = function arraysReverseFilter(context) {
296
+ if (!context.nested) {
297
+ const nonNestedDelta = context.delta;
298
+ if (nonNestedDelta[2] === ARRAY_MOVE) {
299
+ const arrayMoveDelta = nonNestedDelta;
300
+ context.newName = `_${arrayMoveDelta[1]}`;
301
+ context.setResult([arrayMoveDelta[0], parseInt(context.childName.substring(1), 10), ARRAY_MOVE]).exit();
302
+ }
303
+ return;
304
+ }
305
+ const nestedDelta = context.delta;
306
+ if (nestedDelta._t !== 'a') {
307
+ return;
308
+ }
309
+ const arrayDelta = nestedDelta;
310
+ let name;
311
+ let child;
312
+ for (name in arrayDelta) {
313
+ if (name === '_t') {
314
+ continue;
315
+ }
316
+ child = new _reverse.default(arrayDelta[name]);
317
+ context.push(child, name);
318
+ }
319
+ context.exit();
320
+ };
321
+ reverseFilter.filterName = 'arrays';
322
+ const reverseArrayDeltaIndex = (delta, index, itemDelta) => {
323
+ if (typeof index === 'string' && index[0] === '_') {
324
+ return parseInt(index.substring(1), 10);
325
+ } else if (Array.isArray(itemDelta) && itemDelta[2] === 0) {
326
+ return `_${index}`;
327
+ }
328
+ let reverseIndex = +index;
329
+ for (const deltaIndex in delta) {
330
+ const deltaItem = delta[deltaIndex];
331
+ if (Array.isArray(deltaItem)) {
332
+ if (deltaItem[2] === ARRAY_MOVE) {
333
+ const moveFromIndex = parseInt(deltaIndex.substring(1), 10);
334
+ const moveToIndex = deltaItem[1];
335
+ if (moveToIndex === +index) {
336
+ return moveFromIndex;
337
+ }
338
+ if (moveFromIndex <= reverseIndex && moveToIndex > reverseIndex) {
339
+ reverseIndex++;
340
+ } else if (moveFromIndex >= reverseIndex && moveToIndex < reverseIndex) {
341
+ reverseIndex--;
342
+ }
343
+ } else if (deltaItem[2] === 0) {
344
+ const deleteIndex = parseInt(deltaIndex.substring(1), 10);
345
+ if (deleteIndex <= reverseIndex) {
346
+ reverseIndex++;
347
+ }
348
+ } else if (deltaItem.length === 1 && parseInt(deltaIndex, 10) <= reverseIndex) {
349
+ reverseIndex--;
350
+ }
351
+ }
352
+ }
353
+ return reverseIndex;
354
+ };
355
+ const collectChildrenReverseFilter = context => {
356
+ if (!context || !context.children) {
357
+ return;
358
+ }
359
+ const deltaWithChildren = context.delta;
360
+ if (deltaWithChildren._t !== 'a') {
361
+ return;
362
+ }
363
+ const arrayDelta = deltaWithChildren;
364
+ const length = context.children.length;
365
+ let child;
366
+ const delta = {
367
+ _t: 'a'
368
+ };
369
+ for (let index = 0; index < length; index++) {
370
+ child = context.children[index];
371
+ let name = child.newName;
372
+ if (typeof name === 'undefined') {
373
+ name = reverseArrayDeltaIndex(arrayDelta, child.childName, child.result);
374
+ }
375
+ if (delta[name] !== child.result) {
376
+ // There's no way to type this well.
377
+ delta[name] = child.result;
378
+ }
379
+ }
380
+ context.setResult(delta).exit();
381
+ };
382
+ exports.collectChildrenReverseFilter = collectChildrenReverseFilter;
383
+ collectChildrenReverseFilter.filterName = 'arraysCollectChildren';
384
+ //# sourceMappingURL=arrays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays.js","names":["_diff","_interopRequireDefault","require","_patch","_reverse","_lcs","obj","__esModule","default","ARRAY_MOVE","arraysHaveMatchByRef","array1","array2","len1","len2","index1","val1","index2","val2","matchItems","context","value1","value2","objectHash","matchByPosition","hashCache1","hash1","hashCache2","hash2","diffFilter","exports","arraysDiffFilter","leftIsArray","matchContext","options","commonHead","commonTail","index","left","right","length","child","DiffContext","push","result","setResult","undefined","exit","_t","trimmed1","slice","trimmed2","seq","lcs","get","removedItems","indices1","indexOf","detectMove","arrays","includeValueOnMove","removedItemsLength","indexOnArray2","indices2","isMove","removeItemIndex1","splice","filterName","compare","numerically","a","b","numericallyBy","name","patchFilter","nestedPatchFilter","nested","nestedDelta","delta","array","toRemove","toInsert","toModify","removedOrMovedIndex","parseInt","Error","numberIndex","value","sort","indexDiff","removedValue","toInsertLength","insertion","toModifyLength","modification","PatchContext","children","collectChildrenPatchFilter","deltaWithChildren","arrayIndex","childName","reverseFilter","arraysReverseFilter","nonNestedDelta","arrayMoveDelta","newName","substring","arrayDelta","ReverseContext","reverseArrayDeltaIndex","itemDelta","Array","isArray","reverseIndex","deltaIndex","deltaItem","moveFromIndex","moveToIndex","deleteIndex","collectChildrenReverseFilter"],"sources":["../../../../../../src/internal/lib/jsondiffpatch/filters/arrays.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.diffFilter = void 0;
7
+ const diffFilter = exports.diffFilter = function datesDiffFilter(context) {
8
+ if (context.left instanceof Date) {
9
+ if (context.right instanceof Date) {
10
+ if (context.left.getTime() !== context.right.getTime()) {
11
+ context.setResult([context.left, context.right]);
12
+ } else {
13
+ context.setResult(undefined);
14
+ }
15
+ } else {
16
+ context.setResult([context.left, context.right]);
17
+ }
18
+ context.exit();
19
+ } else if (context.right instanceof Date) {
20
+ context.setResult([context.left, context.right]).exit();
21
+ }
22
+ };
23
+ diffFilter.filterName = 'dates';
24
+ //# sourceMappingURL=dates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dates.js","names":["diffFilter","exports","datesDiffFilter","context","left","Date","right","getTime","setResult","undefined","exit","filterName"],"sources":["../../../../../../src/internal/lib/jsondiffpatch/filters/dates.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGO,MAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAwB,SAASE,eAAeA,CACrEC,OAAO;EAEP,IAAIA,OAAO,CAACC,IAAI,YAAYC,IAAI,EAAE;IAChC,IAAIF,OAAO,CAACG,KAAK,YAAYD,IAAI,EAAE;MACjC,IAAIF,OAAO,CAACC,IAAI,CAACG,OAAO,EAAE,KAAKJ,OAAO,CAACG,KAAK,CAACC,OAAO,EAAE,EAAE;QACtDJ,OAAO,CAACK,SAAS,CAAC,CAACL,OAAO,CAACC,IAAI,EAAED,OAAO,CAACG,KAAK,CAAC,CAAC;MAClD,CAAC,MAAM;QACLH,OAAO,CAACK,SAAS,CAACC,SAAS,CAAC;MAC9B;IACF,CAAC,MAAM;MACLN,OAAO,CAACK,SAAS,CAAC,CAACL,OAAO,CAACC,IAAI,EAAED,OAAO,CAACG,KAAK,CAAC,CAAC;IAClD;IACAH,OAAO,CAACO,IAAI,EAAE;EAChB,CAAC,MAAM,IAAIP,OAAO,CAACG,KAAK,YAAYD,IAAI,EAAE;IACxCF,OAAO,CAACK,SAAS,CAAC,CAACL,OAAO,CAACC,IAAI,EAAED,OAAO,CAACG,KAAK,CAAC,CAAC,CAACI,IAAI,EAAE;EACzD;AACF,CAAC;AACDV,UAAU,CAACW,UAAU,GAAG,OAAO","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ /*
8
+
9
+ LCS implementation that supports arrays or strings
10
+
11
+ reference: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem
12
+
13
+ */
14
+ const defaultMatch = function (array1, array2, index1, index2) {
15
+ return array1[index1] === array2[index2];
16
+ };
17
+ const lengthMatrix = function (array1, array2, match, context) {
18
+ const len1 = array1.length;
19
+ const len2 = array2.length;
20
+ let x, y;
21
+ // initialize empty matrix of len1+1 x len2+1
22
+ const matrix = new Array(len1 + 1);
23
+ for (x = 0; x < len1 + 1; x++) {
24
+ matrix[x] = new Array(len2 + 1);
25
+ for (y = 0; y < len2 + 1; y++) {
26
+ matrix[x][y] = 0;
27
+ }
28
+ }
29
+ matrix.match = match;
30
+ // save sequence lengths for each coordinate
31
+ for (x = 1; x < len1 + 1; x++) {
32
+ for (y = 1; y < len2 + 1; y++) {
33
+ if (match(array1, array2, x - 1, y - 1, context)) {
34
+ matrix[x][y] = matrix[x - 1][y - 1] + 1;
35
+ } else {
36
+ matrix[x][y] = Math.max(matrix[x - 1][y], matrix[x][y - 1]);
37
+ }
38
+ }
39
+ }
40
+ return matrix;
41
+ };
42
+ const backtrack = function (matrix, array1, array2, context) {
43
+ let index1 = array1.length;
44
+ let index2 = array2.length;
45
+ const subsequence = {
46
+ sequence: [],
47
+ indices1: [],
48
+ indices2: []
49
+ };
50
+ while (index1 !== 0 && index2 !== 0) {
51
+ const sameLetter = matrix.match(array1, array2, index1 - 1, index2 - 1, context);
52
+ if (sameLetter) {
53
+ subsequence.sequence.unshift(array1[index1 - 1]);
54
+ subsequence.indices1.unshift(index1 - 1);
55
+ subsequence.indices2.unshift(index2 - 1);
56
+ --index1;
57
+ --index2;
58
+ } else {
59
+ const valueAtMatrixAbove = matrix[index1][index2 - 1];
60
+ const valueAtMatrixLeft = matrix[index1 - 1][index2];
61
+ if (valueAtMatrixAbove > valueAtMatrixLeft) {
62
+ --index2;
63
+ } else {
64
+ --index1;
65
+ }
66
+ }
67
+ }
68
+ return subsequence;
69
+ };
70
+ const get = function (array1, array2, match, context) {
71
+ const innerContext = context || {};
72
+ const matrix = lengthMatrix(array1, array2, match || defaultMatch, innerContext);
73
+ return backtrack(matrix, array1, array2, innerContext);
74
+ };
75
+ var _default = exports.default = {
76
+ get
77
+ };
78
+ //# sourceMappingURL=lcs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lcs.js","names":["defaultMatch","array1","array2","index1","index2","lengthMatrix","match","context","len1","length","len2","x","y","matrix","Array","Math","max","backtrack","subsequence","sequence","indices1","indices2","sameLetter","unshift","valueAtMatrixAbove","valueAtMatrixLeft","get","innerContext","_default","exports","default"],"sources":["../../../../../../src/internal/lib/jsondiffpatch/filters/lcs.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}