@nice2dev/ui-graphics 1.3.15 → 1.3.16

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 (294) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/animation/AnimatedPerson.js +470 -143
  3. package/dist/cjs/animation/AnimationEditor.js +289 -101
  4. package/dist/cjs/animation/Audience.js +83 -61
  5. package/dist/cjs/animation/BodyRenderer.js +69 -28
  6. package/dist/cjs/animation/animationHelper.js +281 -288
  7. package/dist/cjs/animation/characterTypes.js +200 -203
  8. package/dist/cjs/animation/choreoDSL.js +205 -219
  9. package/dist/cjs/animation/choreography.js +4 -32
  10. package/dist/cjs/animation/karaokeIntegration.js +68 -77
  11. package/dist/cjs/animation/lottieExport.js +108 -114
  12. package/dist/cjs/animation/motionPath.js +225 -248
  13. package/dist/cjs/animation/physics.js +227 -254
  14. package/dist/cjs/animation/rig/RigPlayer.js +53 -56
  15. package/dist/cjs/animation/rig/RiggedBody.js +71 -26
  16. package/dist/cjs/animation/rig/choreoRigBridge.js +72 -77
  17. package/dist/cjs/animation/rig/ik.js +13 -18
  18. package/dist/cjs/animation/rig/poseOps.js +34 -41
  19. package/dist/cjs/animation/rig/presets.js +64 -72
  20. package/dist/cjs/animation/rig/rigMath.js +25 -32
  21. package/dist/cjs/animation/rig/rigTypes.js +59 -63
  22. package/dist/cjs/animation/shapes/arms.js +31 -13
  23. package/dist/cjs/animation/shapes/eyes.js +129 -47
  24. package/dist/cjs/animation/shapes/hair.js +72 -45
  25. package/dist/cjs/animation/shapes/heads.js +131 -57
  26. package/dist/cjs/animation/shapes/headwear.js +47 -38
  27. package/dist/cjs/animation/shapes/legs.js +31 -13
  28. package/dist/cjs/animation/shapes/mouths.js +120 -44
  29. package/dist/cjs/animation/shapes/noses.js +80 -25
  30. package/dist/cjs/animation/shapes/outfits.js +101 -39
  31. package/dist/cjs/animation/shapes/torsos.js +15 -11
  32. package/dist/cjs/animation/spineExport.js +103 -121
  33. package/dist/cjs/core/LocalUI.js +108 -43
  34. package/dist/cjs/core/NiceBrushEngine.js +758 -552
  35. package/dist/cjs/core/collaboration.js +249 -251
  36. package/dist/cjs/core/colorBlindness.js +100 -115
  37. package/dist/cjs/core/dragDrop.js +155 -158
  38. package/dist/cjs/core/editorAsk.js +51 -41
  39. package/dist/cjs/core/fixes.js +140 -171
  40. package/dist/cjs/core/gridGuides.js +166 -201
  41. package/dist/cjs/core/historyVisual.js +156 -135
  42. package/dist/cjs/core/i18n.js +13 -14
  43. package/dist/cjs/core/integrations.js +238 -249
  44. package/dist/cjs/core/minimap.js +149 -151
  45. package/dist/cjs/core/plugins.js +98 -113
  46. package/dist/cjs/core/rtl.js +71 -83
  47. package/dist/cjs/core/shortcuts.js +196 -225
  48. package/dist/cjs/core/theme.js +142 -149
  49. package/dist/cjs/core/yjsCollaboration.js +232 -293
  50. package/dist/cjs/design/design-tools.js +12 -22
  51. package/dist/cjs/font/NiceFontEditor.js +877 -316
  52. package/dist/cjs/font/fontFormatUtils.js +388 -448
  53. package/dist/cjs/game/GameAsset2dEditor.js +1201 -392
  54. package/dist/cjs/game/GameAsset2dEditor.module.css.js +146 -5
  55. package/dist/cjs/game/gameAssetTypes.js +7 -16
  56. package/dist/cjs/game/gameAssetUtils.js +390 -413
  57. package/dist/cjs/game/useGameAssetEditor.js +820 -763
  58. package/dist/cjs/index.js +81 -84
  59. package/dist/cjs/nice2dev-ui-graphics.css +1 -1
  60. package/dist/cjs/node_modules/lib0/array.js +8 -70
  61. package/dist/cjs/node_modules/lib0/binary.js +3 -20
  62. package/dist/cjs/node_modules/lib0/broadcastchannel.js +24 -86
  63. package/dist/cjs/node_modules/lib0/buffer.js +15 -82
  64. package/dist/cjs/node_modules/lib0/conditions.js +3 -16
  65. package/dist/cjs/node_modules/lib0/decoding.js +108 -287
  66. package/dist/cjs/node_modules/lib0/dom.js +14 -44
  67. package/dist/cjs/node_modules/lib0/encoding.js +68 -418
  68. package/dist/cjs/node_modules/lib0/environment.js +26 -92
  69. package/dist/cjs/node_modules/lib0/error.js +5 -29
  70. package/dist/cjs/node_modules/lib0/function.js +27 -66
  71. package/dist/cjs/node_modules/lib0/iterator.js +8 -33
  72. package/dist/cjs/node_modules/lib0/logging.common.js +12 -22
  73. package/dist/cjs/node_modules/lib0/logging.js +32 -71
  74. package/dist/cjs/node_modules/lib0/map.js +16 -86
  75. package/dist/cjs/node_modules/lib0/math.js +3 -32
  76. package/dist/cjs/node_modules/lib0/number.js +4 -15
  77. package/dist/cjs/node_modules/lib0/object.js +14 -88
  78. package/dist/cjs/node_modules/lib0/observable.js +38 -78
  79. package/dist/cjs/node_modules/lib0/pair.js +3 -20
  80. package/dist/cjs/node_modules/lib0/prng.js +8 -77
  81. package/dist/cjs/node_modules/lib0/promise.js +6 -30
  82. package/dist/cjs/node_modules/lib0/random.js +8 -23
  83. package/dist/cjs/node_modules/lib0/schema.js +313 -687
  84. package/dist/cjs/node_modules/lib0/set.js +3 -10
  85. package/dist/cjs/node_modules/lib0/storage.js +20 -55
  86. package/dist/cjs/node_modules/lib0/string.js +17 -72
  87. package/dist/cjs/node_modules/lib0/symbol.js +2 -12
  88. package/dist/cjs/node_modules/lib0/time.js +2 -15
  89. package/dist/cjs/node_modules/lib0/trait/equality.js +3 -28
  90. package/dist/cjs/node_modules/lib0/url.js +4 -18
  91. package/dist/cjs/node_modules/lib0/webcrypto.js +2 -5
  92. package/dist/cjs/node_modules/y-protocols/auth.js +5 -19
  93. package/dist/cjs/node_modules/y-protocols/awareness.js +53 -116
  94. package/dist/cjs/node_modules/y-protocols/sync.js +16 -103
  95. package/dist/cjs/node_modules/y-websocket/src/y-websocket.js +77 -219
  96. package/dist/cjs/node_modules/yjs/dist/yjs.js +2128 -4868
  97. package/dist/cjs/photo/FilterThumb.js +37 -25
  98. package/dist/cjs/photo/NiceAITools.js +679 -467
  99. package/dist/cjs/photo/PhotoEditor.js +34 -20
  100. package/dist/cjs/photo/PhotoEditor.module.css.js +296 -5
  101. package/dist/cjs/photo/PhotoEditorCanvas.js +250 -91
  102. package/dist/cjs/photo/PhotoEditorLeftPanel.js +1086 -224
  103. package/dist/cjs/photo/PhotoEditorToolbar.js +135 -19
  104. package/dist/cjs/photo/photoEditorActions.js +89 -72
  105. package/dist/cjs/photo/photoEditorTypes.js +29 -32
  106. package/dist/cjs/photo/photoFilters.js +959 -985
  107. package/dist/cjs/photo/photoOverlays.js +899 -945
  108. package/dist/cjs/photo/photoSelection.js +427 -499
  109. package/dist/cjs/photo/usePhotoEditor.js +739 -741
  110. package/dist/cjs/pixel/HSVPicker.js +191 -175
  111. package/dist/cjs/pixel/PixelEditor.js +159 -48
  112. package/dist/cjs/pixel/PixelEditor.module.css.js +209 -5
  113. package/dist/cjs/pixel/PixelEditorCanvas.js +29 -16
  114. package/dist/cjs/pixel/PixelEditorMenuBar.js +160 -162
  115. package/dist/cjs/pixel/PixelEditorRightPanel.js +377 -45
  116. package/dist/cjs/pixel/PixelEditorStatusBar.js +47 -20
  117. package/dist/cjs/pixel/PixelEditorTimeline.js +106 -23
  118. package/dist/cjs/pixel/PixelEditorToolbar.js +99 -21
  119. package/dist/cjs/pixel/SpriteGeneratorPanel.js +483 -303
  120. package/dist/cjs/pixel/animalGeneratorPresets.js +776 -601
  121. package/dist/cjs/pixel/asepriteFormat.js +511 -560
  122. package/dist/cjs/pixel/buildingGeneratorPresets.js +693 -520
  123. package/dist/cjs/pixel/characterGeneratorPresets.js +644 -544
  124. package/dist/cjs/pixel/pixel-pro.js +52 -63
  125. package/dist/cjs/pixel/pixelEditorExports.js +388 -428
  126. package/dist/cjs/pixel/pixelEditorTypes.js +91 -108
  127. package/dist/cjs/pixel/pixelEditorUtils.js +519 -561
  128. package/dist/cjs/pixel/spriteGeneratorCore.js +206 -257
  129. package/dist/cjs/pixel/usePixelEditor.js +1321 -1343
  130. package/dist/cjs/texture/Nice3DTexturePainter.js +707 -440
  131. package/dist/cjs/ui/NiceUIDesigner.js +954 -527
  132. package/dist/cjs/vector/NiceSvgToCode.js +586 -446
  133. package/dist/cjs/vector/VectorEditor.js +290 -117
  134. package/dist/cjs/vector/VectorEditor.module.css.js +86 -5
  135. package/dist/cjs/vector/VectorEditorMenuBar.js +333 -275
  136. package/dist/cjs/vector/VectorEditorRightPanel.js +1094 -371
  137. package/dist/cjs/vector/VectorEditorShapeRenderer.js +198 -60
  138. package/dist/cjs/vector/VectorEditorStatusBar.js +39 -13
  139. package/dist/cjs/vector/useVectorEditor.js +848 -889
  140. package/dist/cjs/vector/vectorAnimation.js +110 -137
  141. package/dist/cjs/vector/vectorBooleanOps.js +398 -485
  142. package/dist/cjs/vector/vectorEditorExport.js +201 -203
  143. package/dist/cjs/vector/vectorEditorImport.js +173 -189
  144. package/dist/cjs/vector/vectorEditorTypes.js +42 -49
  145. package/dist/cjs/vector/vectorGradients.js +151 -174
  146. package/dist/cjs/vector/vectorIconExport.js +52 -59
  147. package/dist/cjs/vector/vectorIconImport.js +169 -219
  148. package/dist/esm/animation/AnimatedPerson.js +470 -141
  149. package/dist/esm/animation/AnimationEditor.js +290 -100
  150. package/dist/esm/animation/Audience.js +83 -59
  151. package/dist/esm/animation/BodyRenderer.js +71 -25
  152. package/dist/esm/animation/animationHelper.js +284 -287
  153. package/dist/esm/animation/characterTypes.js +204 -202
  154. package/dist/esm/animation/choreoDSL.js +212 -218
  155. package/dist/esm/animation/choreography.js +8 -31
  156. package/dist/esm/animation/karaokeIntegration.js +74 -76
  157. package/dist/esm/animation/lottieExport.js +112 -113
  158. package/dist/esm/animation/motionPath.js +235 -247
  159. package/dist/esm/animation/physics.js +235 -253
  160. package/dist/esm/animation/rig/RigPlayer.js +53 -54
  161. package/dist/esm/animation/rig/RiggedBody.js +71 -24
  162. package/dist/esm/animation/rig/choreoRigBridge.js +74 -76
  163. package/dist/esm/animation/rig/ik.js +14 -17
  164. package/dist/esm/animation/rig/poseOps.js +37 -40
  165. package/dist/esm/animation/rig/presets.js +70 -71
  166. package/dist/esm/animation/rig/rigMath.js +28 -31
  167. package/dist/esm/animation/rig/rigTypes.js +62 -62
  168. package/dist/esm/animation/shapes/arms.js +32 -12
  169. package/dist/esm/animation/shapes/eyes.js +135 -46
  170. package/dist/esm/animation/shapes/hair.js +80 -44
  171. package/dist/esm/animation/shapes/heads.js +140 -56
  172. package/dist/esm/animation/shapes/headwear.js +54 -37
  173. package/dist/esm/animation/shapes/legs.js +32 -12
  174. package/dist/esm/animation/shapes/mouths.js +127 -43
  175. package/dist/esm/animation/shapes/noses.js +87 -24
  176. package/dist/esm/animation/shapes/outfits.js +106 -38
  177. package/dist/esm/animation/shapes/torsos.js +16 -10
  178. package/dist/esm/animation/spineExport.js +106 -120
  179. package/dist/esm/core/LocalUI.js +111 -42
  180. package/dist/esm/core/NiceBrushEngine.js +761 -551
  181. package/dist/esm/core/collaboration.js +255 -250
  182. package/dist/esm/core/colorBlindness.js +106 -114
  183. package/dist/esm/core/dragDrop.js +157 -157
  184. package/dist/esm/core/editorAsk.js +53 -40
  185. package/dist/esm/core/fixes.js +145 -170
  186. package/dist/esm/core/gridGuides.js +178 -200
  187. package/dist/esm/core/historyVisual.js +158 -134
  188. package/dist/esm/core/i18n.js +15 -13
  189. package/dist/esm/core/integrations.js +244 -248
  190. package/dist/esm/core/minimap.js +151 -150
  191. package/dist/esm/core/plugins.js +102 -112
  192. package/dist/esm/core/rtl.js +77 -82
  193. package/dist/esm/core/shortcuts.js +200 -224
  194. package/dist/esm/core/theme.js +150 -148
  195. package/dist/esm/core/yjsCollaboration.js +240 -292
  196. package/dist/esm/design/design-tools.js +13 -21
  197. package/dist/esm/font/NiceFontEditor.js +880 -315
  198. package/dist/esm/font/fontFormatUtils.js +394 -447
  199. package/dist/esm/game/GameAsset2dEditor.js +1202 -391
  200. package/dist/esm/game/GameAsset2dEditor.module.css.js +146 -3
  201. package/dist/esm/game/gameAssetTypes.js +8 -15
  202. package/dist/esm/game/gameAssetUtils.js +408 -412
  203. package/dist/esm/game/useGameAssetEditor.js +821 -762
  204. package/dist/esm/index.js +332 -69
  205. package/dist/esm/nice2dev-ui-graphics.css +1 -1
  206. package/dist/esm/node_modules/lib0/array.js +15 -69
  207. package/dist/esm/node_modules/lib0/binary.js +14 -19
  208. package/dist/esm/node_modules/lib0/broadcastchannel.js +27 -85
  209. package/dist/esm/node_modules/lib0/buffer.js +20 -80
  210. package/dist/esm/node_modules/lib0/conditions.js +4 -15
  211. package/dist/esm/node_modules/lib0/decoding.js +128 -286
  212. package/dist/esm/node_modules/lib0/dom.js +20 -43
  213. package/dist/esm/node_modules/lib0/encoding.js +90 -415
  214. package/dist/esm/node_modules/lib0/environment.js +33 -91
  215. package/dist/esm/node_modules/lib0/error.js +8 -28
  216. package/dist/esm/node_modules/lib0/function.js +31 -65
  217. package/dist/esm/node_modules/lib0/iterator.js +11 -32
  218. package/dist/esm/node_modules/lib0/logging.common.js +22 -21
  219. package/dist/esm/node_modules/lib0/logging.js +44 -70
  220. package/dist/esm/node_modules/lib0/map.js +21 -85
  221. package/dist/esm/node_modules/lib0/math.js +9 -31
  222. package/dist/esm/node_modules/lib0/number.js +7 -14
  223. package/dist/esm/node_modules/lib0/object.js +26 -87
  224. package/dist/esm/node_modules/lib0/observable.js +40 -77
  225. package/dist/esm/node_modules/lib0/pair.js +5 -19
  226. package/dist/esm/node_modules/lib0/prng.js +15 -76
  227. package/dist/esm/node_modules/lib0/promise.js +7 -29
  228. package/dist/esm/node_modules/lib0/random.js +10 -22
  229. package/dist/esm/node_modules/lib0/schema.js +367 -686
  230. package/dist/esm/node_modules/lib0/set.js +4 -9
  231. package/dist/esm/node_modules/lib0/storage.js +23 -54
  232. package/dist/esm/node_modules/lib0/string.js +26 -71
  233. package/dist/esm/node_modules/lib0/symbol.js +3 -11
  234. package/dist/esm/node_modules/lib0/time.js +3 -14
  235. package/dist/esm/node_modules/lib0/trait/equality.js +5 -27
  236. package/dist/esm/node_modules/lib0/url.js +5 -17
  237. package/dist/esm/node_modules/lib0/webcrypto.js +3 -4
  238. package/dist/esm/node_modules/y-protocols/auth.js +7 -18
  239. package/dist/esm/node_modules/y-protocols/awareness.js +58 -115
  240. package/dist/esm/node_modules/y-protocols/sync.js +26 -102
  241. package/dist/esm/node_modules/y-websocket/src/y-websocket.js +82 -218
  242. package/dist/esm/node_modules/yjs/dist/yjs.js +2263 -4899
  243. package/dist/esm/photo/FilterThumb.js +37 -23
  244. package/dist/esm/photo/NiceAITools.js +685 -466
  245. package/dist/esm/photo/PhotoEditor.js +34 -18
  246. package/dist/esm/photo/PhotoEditor.module.css.js +296 -3
  247. package/dist/esm/photo/PhotoEditorCanvas.js +250 -89
  248. package/dist/esm/photo/PhotoEditorLeftPanel.js +1086 -222
  249. package/dist/esm/photo/PhotoEditorToolbar.js +135 -17
  250. package/dist/esm/photo/photoEditorActions.js +93 -71
  251. package/dist/esm/photo/photoEditorTypes.js +32 -31
  252. package/dist/esm/photo/photoFilters.js +967 -984
  253. package/dist/esm/photo/photoOverlays.js +913 -944
  254. package/dist/esm/photo/photoSelection.js +438 -498
  255. package/dist/esm/photo/usePhotoEditor.js +740 -740
  256. package/dist/esm/pixel/HSVPicker.js +192 -174
  257. package/dist/esm/pixel/PixelEditor.js +160 -47
  258. package/dist/esm/pixel/PixelEditor.module.css.js +209 -3
  259. package/dist/esm/pixel/PixelEditorCanvas.js +29 -14
  260. package/dist/esm/pixel/PixelEditorMenuBar.js +160 -160
  261. package/dist/esm/pixel/PixelEditorRightPanel.js +377 -43
  262. package/dist/esm/pixel/PixelEditorStatusBar.js +47 -18
  263. package/dist/esm/pixel/PixelEditorTimeline.js +106 -21
  264. package/dist/esm/pixel/PixelEditorToolbar.js +99 -19
  265. package/dist/esm/pixel/SpriteGeneratorPanel.js +483 -301
  266. package/dist/esm/pixel/animalGeneratorPresets.js +782 -600
  267. package/dist/esm/pixel/asepriteFormat.js +517 -559
  268. package/dist/esm/pixel/buildingGeneratorPresets.js +699 -519
  269. package/dist/esm/pixel/characterGeneratorPresets.js +650 -543
  270. package/dist/esm/pixel/pixel-pro.js +53 -62
  271. package/dist/esm/pixel/pixelEditorExports.js +397 -427
  272. package/dist/esm/pixel/pixelEditorTypes.js +103 -107
  273. package/dist/esm/pixel/pixelEditorUtils.js +551 -560
  274. package/dist/esm/pixel/spriteGeneratorCore.js +223 -256
  275. package/dist/esm/pixel/usePixelEditor.js +1322 -1342
  276. package/dist/esm/texture/Nice3DTexturePainter.js +709 -439
  277. package/dist/esm/ui/NiceUIDesigner.js +957 -526
  278. package/dist/esm/vector/NiceSvgToCode.js +589 -445
  279. package/dist/esm/vector/VectorEditor.js +291 -116
  280. package/dist/esm/vector/VectorEditor.module.css.js +86 -3
  281. package/dist/esm/vector/VectorEditorMenuBar.js +333 -273
  282. package/dist/esm/vector/VectorEditorRightPanel.js +1094 -369
  283. package/dist/esm/vector/VectorEditorShapeRenderer.js +199 -59
  284. package/dist/esm/vector/VectorEditorStatusBar.js +39 -11
  285. package/dist/esm/vector/useVectorEditor.js +849 -888
  286. package/dist/esm/vector/vectorAnimation.js +115 -136
  287. package/dist/esm/vector/vectorBooleanOps.js +401 -484
  288. package/dist/esm/vector/vectorEditorExport.js +207 -202
  289. package/dist/esm/vector/vectorEditorImport.js +174 -188
  290. package/dist/esm/vector/vectorEditorTypes.js +50 -48
  291. package/dist/esm/vector/vectorGradients.js +158 -173
  292. package/dist/esm/vector/vectorIconExport.js +53 -58
  293. package/dist/esm/vector/vectorIconImport.js +171 -218
  294. package/package.json +9 -15
@@ -1,372 +1,202 @@
1
- 'use strict';
2
-
3
- var binary = require('./binary.js');
4
- var math = require('./math.js');
5
- var number = require('./number.js');
6
- var string = require('./string.js');
7
- var error = require('./error.js');
8
-
9
- /**
10
- * Efficient schema-less binary decoding with support for variable length encoding.
11
- *
12
- * Use [lib0/decoding] with [lib0/encoding]. Every encoding function has a corresponding decoding function.
13
- *
14
- * Encodes numbers in little-endian order (least to most significant byte order)
15
- * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)
16
- * which is also used in Protocol Buffers.
17
- *
18
- * ```js
19
- * // encoding step
20
- * const encoder = encoding.createEncoder()
21
- * encoding.writeVarUint(encoder, 256)
22
- * encoding.writeVarString(encoder, 'Hello world!')
23
- * const buf = encoding.toUint8Array(encoder)
24
- * ```
25
- *
26
- * ```js
27
- * // decoding step
28
- * const decoder = decoding.createDecoder(buf)
29
- * decoding.readVarUint(decoder) // => 256
30
- * decoding.readVarString(decoder) // => 'Hello world!'
31
- * decoding.hasContent(decoder) // => false - all data is read
32
- * ```
33
- *
34
- * @module decoding
35
- */
36
-
37
-
38
- const errorUnexpectedEndOfArray = error.create('Unexpected end of array');
39
- const errorIntegerOutOfRange = error.create('Integer out of Range');
40
-
41
- /**
42
- * A Decoder handles the decoding of an Uint8Array.
43
- * @template {ArrayBufferLike} [Buf=ArrayBufferLike]
44
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const binary = require("./binary.js");
4
+ const math = require("./math.js");
5
+ const number = require("./number.js");
6
+ const string = require("./string.js");
7
+ const error = require("./error.js");
8
+ const errorUnexpectedEndOfArray = error.create("Unexpected end of array");
9
+ const errorIntegerOutOfRange = error.create("Integer out of Range");
10
+ const subarray = (arr, begin, len) => {
11
+ if (begin < 0 || len < 0 || begin + len > arr.length) {
12
+ throw errorUnexpectedEndOfArray;
13
+ }
14
+ return new Uint8Array(arr.buffer, arr.byteOffset + begin, len);
15
+ };
16
+ const subdataview = (arr, begin, len) => {
17
+ if (begin < 0 || len < 0 || begin + len > arr.length) {
18
+ throw errorUnexpectedEndOfArray;
19
+ }
20
+ return new DataView(arr.buffer, arr.byteOffset + begin, len);
21
+ };
45
22
  class Decoder {
46
23
  /**
47
24
  * @param {Uint8Array<Buf>} uint8Array Binary data to decode
48
25
  */
49
- constructor (uint8Array) {
50
- /**
51
- * Decoding target.
52
- *
53
- * @type {Uint8Array<Buf>}
54
- */
26
+ constructor(uint8Array) {
55
27
  this.arr = uint8Array;
56
- /**
57
- * Current decoding position.
58
- *
59
- * @type {number}
60
- */
61
28
  this.pos = 0;
62
29
  }
63
30
  }
64
-
65
- /**
66
- * @function
67
- * @template {ArrayBufferLike} Buf
68
- * @param {Uint8Array<Buf>} uint8Array
69
- * @return {Decoder<Buf>}
70
- */
71
- const createDecoder = uint8Array => new Decoder(uint8Array);
72
-
73
- /**
74
- * @function
75
- * @param {Decoder} decoder
76
- * @return {boolean}
77
- */
78
- const hasContent = decoder => decoder.pos !== decoder.arr.length;
79
-
80
- /**
81
- * Create an Uint8Array view of the next `len` bytes and advance the position by `len`.
82
- *
83
- * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.
84
- * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.
85
- *
86
- * @function
87
- * @template {ArrayBufferLike} Buf
88
- * @param {Decoder<Buf>} decoder The decoder instance
89
- * @param {number} len The length of bytes to read
90
- * @return {Uint8Array<Buf>}
91
- */
31
+ const createDecoder = (uint8Array) => new Decoder(uint8Array);
32
+ const hasContent = (decoder) => decoder.pos !== decoder.arr.length;
92
33
  const readUint8Array = (decoder, len) => {
93
- const view = new Uint8Array(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len);
34
+ const view = subarray(decoder.arr, decoder.pos, len);
94
35
  decoder.pos += len;
95
- return view
36
+ return view;
96
37
  };
97
-
98
- /**
99
- * Read variable length Uint8Array.
100
- *
101
- * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.
102
- * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.
103
- *
104
- * @function
105
- * @template {ArrayBufferLike} Buf
106
- * @param {Decoder<Buf>} decoder
107
- * @return {Uint8Array<Buf>}
108
- */
109
- const readVarUint8Array = decoder => readUint8Array(decoder, readVarUint(decoder));
110
-
111
- /**
112
- * Read one byte as unsigned integer.
113
- * @function
114
- * @param {Decoder} decoder The decoder instance
115
- * @return {number} Unsigned 8-bit integer
116
- */
117
- const readUint8 = decoder => decoder.arr[decoder.pos++];
118
-
119
- /**
120
- * Read unsigned integer (32bit) with variable length.
121
- * 1/8th of the storage is used as encoding overhead.
122
- * * numbers < 2^7 is stored in one bytlength
123
- * * numbers < 2^14 is stored in two bylength
124
- *
125
- * @function
126
- * @param {Decoder} decoder
127
- * @return {number} An unsigned integer.length
128
- */
129
- const readVarUint = decoder => {
38
+ const readVarUint8Array = (decoder) => readUint8Array(decoder, readVarUint(decoder));
39
+ const readUint8 = (decoder) => decoder.arr[decoder.pos++];
40
+ const readVarUint = (decoder) => {
130
41
  let num = 0;
131
42
  let mult = 1;
132
43
  const len = decoder.arr.length;
133
44
  while (decoder.pos < len) {
134
45
  const r = decoder.arr[decoder.pos++];
135
- // num = num | ((r & binary.BITS7) << len)
136
- num = num + (r & binary.BITS7) * mult; // shift $r << (7*#iterations) and add it to num
137
- mult *= 128; // next iteration, shift 7 "more" to the left
46
+ num = num + (r & binary.BITS7) * mult;
47
+ mult *= 128;
138
48
  if (r < binary.BIT8) {
139
- return num
49
+ return num;
140
50
  }
141
- /* c8 ignore start */
142
51
  if (num > number.MAX_SAFE_INTEGER) {
143
- throw errorIntegerOutOfRange
52
+ throw errorIntegerOutOfRange;
144
53
  }
145
- /* c8 ignore stop */
146
54
  }
147
- throw errorUnexpectedEndOfArray
55
+ throw errorUnexpectedEndOfArray;
148
56
  };
149
-
150
- /**
151
- * Read signed integer (32bit) with variable length.
152
- * 1/8th of the storage is used as encoding overhead.
153
- * * numbers < 2^7 is stored in one bytlength
154
- * * numbers < 2^14 is stored in two bylength
155
- * @todo This should probably create the inverse ~num if number is negative - but this would be a breaking change.
156
- *
157
- * @function
158
- * @param {Decoder} decoder
159
- * @return {number} An unsigned integer.length
160
- */
161
- const readVarInt = decoder => {
57
+ const readVarInt = (decoder) => {
162
58
  let r = decoder.arr[decoder.pos++];
163
59
  let num = r & binary.BITS6;
164
60
  let mult = 64;
165
61
  const sign = (r & binary.BIT7) > 0 ? -1 : 1;
166
62
  if ((r & binary.BIT8) === 0) {
167
- // don't continue reading
168
- return sign * num
63
+ return sign * num;
169
64
  }
170
65
  const len = decoder.arr.length;
171
66
  while (decoder.pos < len) {
172
67
  r = decoder.arr[decoder.pos++];
173
- // num = num | ((r & binary.BITS7) << len)
174
68
  num = num + (r & binary.BITS7) * mult;
175
69
  mult *= 128;
176
70
  if (r < binary.BIT8) {
177
- return sign * num
71
+ return sign * num;
178
72
  }
179
- /* c8 ignore start */
180
73
  if (num > number.MAX_SAFE_INTEGER) {
181
- throw errorIntegerOutOfRange
74
+ throw errorIntegerOutOfRange;
182
75
  }
183
- /* c8 ignore stop */
184
76
  }
185
- throw errorUnexpectedEndOfArray
77
+ throw errorUnexpectedEndOfArray;
186
78
  };
187
-
188
- /**
189
- * We don't test this function anymore as we use native decoding/encoding by default now.
190
- * Better not modify this anymore..
191
- *
192
- * Transforming utf8 to a string is pretty expensive. The code performs 10x better
193
- * when String.fromCodePoint is fed with all characters as arguments.
194
- * But most environments have a maximum number of arguments per functions.
195
- * For effiency reasons we apply a maximum of 10000 characters at once.
196
- *
197
- * @function
198
- * @param {Decoder} decoder
199
- * @return {String} The read String.
200
- */
201
- /* c8 ignore start */
202
- const _readVarStringPolyfill = decoder => {
79
+ const _readVarStringPolyfill = (decoder) => {
203
80
  let remainingLen = readVarUint(decoder);
204
81
  if (remainingLen === 0) {
205
- return ''
82
+ return "";
206
83
  } else {
207
- let encodedString = String.fromCodePoint(readUint8(decoder)); // remember to decrease remainingLen
208
- if (--remainingLen < 100) { // do not create a Uint8Array for small strings
84
+ let encodedString = String.fromCodePoint(readUint8(decoder));
85
+ if (--remainingLen < 100) {
209
86
  while (remainingLen--) {
210
87
  encodedString += String.fromCodePoint(readUint8(decoder));
211
88
  }
212
89
  } else {
213
90
  while (remainingLen > 0) {
214
- const nextLen = remainingLen < 10000 ? remainingLen : 10000;
215
- // this is dangerous, we create a fresh array view from the existing buffer
91
+ const nextLen = remainingLen < 1e4 ? remainingLen : 1e4;
216
92
  const bytes = decoder.arr.subarray(decoder.pos, decoder.pos + nextLen);
217
93
  decoder.pos += nextLen;
218
- // Starting with ES5.1 we can supply a generic array-like object as arguments
219
- encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes));
94
+ encodedString += String.fromCodePoint.apply(
95
+ null,
96
+ /** @type {any} */
97
+ bytes
98
+ );
220
99
  remainingLen -= nextLen;
221
100
  }
222
101
  }
223
- return decodeURIComponent(escape(encodedString))
102
+ return decodeURIComponent(escape(encodedString));
224
103
  }
225
104
  };
226
- /* c8 ignore stop */
227
-
228
- /**
229
- * @function
230
- * @param {Decoder} decoder
231
- * @return {String} The read String
232
- */
233
- const _readVarStringNative = decoder =>
234
- /** @type any */ (string.utf8TextDecoder).decode(readVarUint8Array(decoder));
235
-
236
- /**
237
- * Read string of variable length
238
- * * varUint is used to store the length of the string
239
- *
240
- * @function
241
- * @param {Decoder} decoder
242
- * @return {String} The read String
243
- *
244
- */
245
- /* c8 ignore next */
105
+ const _readVarStringNative = (decoder) => (
106
+ /** @type any */
107
+ string.utf8TextDecoder.decode(readVarUint8Array(decoder))
108
+ );
246
109
  const readVarString = string.utf8TextDecoder ? _readVarStringNative : _readVarStringPolyfill;
247
-
248
- /**
249
- * @param {Decoder} decoder
250
- * @param {number} len
251
- * @return {DataView}
252
- */
253
110
  const readFromDataView = (decoder, len) => {
254
- const dv = new DataView(decoder.arr.buffer, decoder.arr.byteOffset + decoder.pos, len);
111
+ const dv = subdataview(decoder.arr, decoder.pos, len);
255
112
  decoder.pos += len;
256
- return dv
113
+ return dv;
257
114
  };
258
-
259
- /**
260
- * @param {Decoder} decoder
261
- */
262
- const readFloat32 = decoder => readFromDataView(decoder, 4).getFloat32(0, false);
263
-
264
- /**
265
- * @param {Decoder} decoder
266
- */
267
- const readFloat64 = decoder => readFromDataView(decoder, 8).getFloat64(0, false);
268
-
269
- /**
270
- * @param {Decoder} decoder
271
- */
272
- const readBigInt64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigInt64(0, false);
273
-
274
- /**
275
- * @type {Array<function(Decoder):any>}
276
- */
115
+ const readFloat32 = (decoder) => readFromDataView(decoder, 4).getFloat32(0, false);
116
+ const readFloat64 = (decoder) => readFromDataView(decoder, 8).getFloat64(0, false);
117
+ const readBigInt64 = (decoder) => (
118
+ /** @type {any} */
119
+ readFromDataView(decoder, 8).getBigInt64(0, false)
120
+ );
277
121
  const readAnyLookupTable = [
278
- decoder => undefined, // CASE 127: undefined
279
- decoder => null, // CASE 126: null
280
- readVarInt, // CASE 125: integer
281
- readFloat32, // CASE 124: float32
282
- readFloat64, // CASE 123: float64
283
- readBigInt64, // CASE 122: bigint
284
- decoder => false, // CASE 121: boolean (false)
285
- decoder => true, // CASE 120: boolean (true)
286
- readVarString, // CASE 119: string
287
- decoder => { // CASE 118: object<string,any>
122
+ (decoder) => void 0,
123
+ // CASE 127: undefined
124
+ (decoder) => null,
125
+ // CASE 126: null
126
+ readVarInt,
127
+ // CASE 125: integer
128
+ readFloat32,
129
+ // CASE 124: float32
130
+ readFloat64,
131
+ // CASE 123: float64
132
+ readBigInt64,
133
+ // CASE 122: bigint
134
+ (decoder) => false,
135
+ // CASE 121: boolean (false)
136
+ (decoder) => true,
137
+ // CASE 120: boolean (true)
138
+ readVarString,
139
+ // CASE 119: string
140
+ (decoder) => {
288
141
  const len = readVarUint(decoder);
289
- /**
290
- * @type {Object<string,any>}
291
- */
292
142
  const obj = {};
293
143
  for (let i = 0; i < len; i++) {
294
144
  const key = readVarString(decoder);
295
145
  obj[key] = readAny(decoder);
296
146
  }
297
- return obj
147
+ return obj;
298
148
  },
299
- decoder => { // CASE 117: array<any>
149
+ (decoder) => {
300
150
  const len = readVarUint(decoder);
301
151
  const arr = [];
302
152
  for (let i = 0; i < len; i++) {
303
153
  arr.push(readAny(decoder));
304
154
  }
305
- return arr
155
+ return arr;
306
156
  },
307
- readVarUint8Array // CASE 116: Uint8Array
157
+ readVarUint8Array
158
+ // CASE 116: Uint8Array
308
159
  ];
309
-
310
- /**
311
- * @param {Decoder} decoder
312
- */
313
- const readAny = decoder => readAnyLookupTable[127 - readUint8(decoder)](decoder);
314
-
315
- /**
316
- * T must not be null.
317
- *
318
- * @template T
319
- */
160
+ const readAny = (decoder) => readAnyLookupTable[127 - readUint8(decoder)](decoder);
320
161
  class RleDecoder extends Decoder {
321
162
  /**
322
163
  * @param {Uint8Array} uint8Array
323
164
  * @param {function(Decoder):T} reader
324
165
  */
325
- constructor (uint8Array, reader) {
166
+ constructor(uint8Array, reader) {
326
167
  super(uint8Array);
327
- /**
328
- * The reader
329
- */
330
168
  this.reader = reader;
331
- /**
332
- * Current state
333
- * @type {T|null}
334
- */
335
169
  this.s = null;
336
170
  this.count = 0;
337
171
  }
338
-
339
- read () {
172
+ read() {
340
173
  if (this.count === 0) {
341
174
  this.s = this.reader(this);
342
175
  if (hasContent(this)) {
343
- this.count = readVarUint(this) + 1; // see encoder implementation for the reason why this is incremented
176
+ this.count = readVarUint(this) + 1;
344
177
  } else {
345
- this.count = -1; // read the current value forever
178
+ this.count = -1;
346
179
  }
347
180
  }
348
181
  this.count--;
349
- return /** @type {T} */ (this.s)
182
+ return (
183
+ /** @type {T} */
184
+ this.s
185
+ );
350
186
  }
351
187
  }
352
-
353
188
  class UintOptRleDecoder extends Decoder {
354
189
  /**
355
190
  * @param {Uint8Array} uint8Array
356
191
  */
357
- constructor (uint8Array) {
192
+ constructor(uint8Array) {
358
193
  super(uint8Array);
359
- /**
360
- * @type {number}
361
- */
362
194
  this.s = 0;
363
195
  this.count = 0;
364
196
  }
365
-
366
- read () {
197
+ read() {
367
198
  if (this.count === 0) {
368
199
  this.s = readVarInt(this);
369
- // if the sign is negative, we read the count too, otherwise count is 1
370
200
  const isNegative = math.isNegativeZero(this.s);
371
201
  this.count = 1;
372
202
  if (isNegative) {
@@ -375,33 +205,30 @@ class UintOptRleDecoder extends Decoder {
375
205
  }
376
206
  }
377
207
  this.count--;
378
- return /** @type {number} */ (this.s)
208
+ return (
209
+ /** @type {number} */
210
+ this.s
211
+ );
379
212
  }
380
213
  }
381
-
382
214
  class IntDiffOptRleDecoder extends Decoder {
383
215
  /**
384
216
  * @param {Uint8Array} uint8Array
385
217
  */
386
- constructor (uint8Array) {
218
+ constructor(uint8Array) {
387
219
  super(uint8Array);
388
- /**
389
- * @type {number}
390
- */
391
220
  this.s = 0;
392
221
  this.count = 0;
393
222
  this.diff = 0;
394
223
  }
395
-
396
224
  /**
397
225
  * @return {number}
398
226
  */
399
- read () {
227
+ read() {
400
228
  if (this.count === 0) {
401
229
  const diff = readVarInt(this);
402
- // if the first bit is set, we read more data
403
230
  const hasCount = diff & 1;
404
- this.diff = math.floor(diff / 2); // shift >> 1
231
+ this.diff = math.floor(diff / 2);
405
232
  this.count = 1;
406
233
  if (hasCount) {
407
234
  this.count = readVarUint(this) + 2;
@@ -409,34 +236,28 @@ class IntDiffOptRleDecoder extends Decoder {
409
236
  }
410
237
  this.s += this.diff;
411
238
  this.count--;
412
- return this.s
239
+ return this.s;
413
240
  }
414
241
  }
415
-
416
242
  class StringDecoder {
417
243
  /**
418
244
  * @param {Uint8Array} uint8Array
419
245
  */
420
- constructor (uint8Array) {
246
+ constructor(uint8Array) {
421
247
  this.decoder = new UintOptRleDecoder(uint8Array);
422
248
  this.str = readVarString(this.decoder);
423
- /**
424
- * @type {number}
425
- */
426
249
  this.spos = 0;
427
250
  }
428
-
429
251
  /**
430
252
  * @return {string}
431
253
  */
432
- read () {
254
+ read() {
433
255
  const end = this.spos + this.decoder.read();
434
256
  const res = this.str.slice(this.spos, end);
435
257
  this.spos = end;
436
- return res
258
+ return res;
437
259
  }
438
260
  }
439
-
440
261
  exports.Decoder = Decoder;
441
262
  exports.IntDiffOptRleDecoder = IntDiffOptRleDecoder;
442
263
  exports.RleDecoder = RleDecoder;
@@ -1,51 +1,21 @@
1
- 'use strict';
2
-
3
- var map = require('./map.js');
4
- var schema = require('./schema.js');
5
-
6
- /* eslint-env browser */
7
-
8
-
9
- /* c8 ignore start */
10
- /**
11
- * @type {Document}
12
- */
13
- const doc = /** @type {Document} */ (typeof document !== 'undefined' ? document : {});
14
-
15
- /**
16
- * @type {$.Schema<DocumentFragment>}
17
- */
18
- schema.$custom(el => el.nodeType === DOCUMENT_FRAGMENT_NODE);
19
-
20
- /** @type {DOMParser} */ (typeof DOMParser !== 'undefined' ? new DOMParser() : null);
21
-
22
- /**
23
- * @type {$.Schema<Element>}
24
- */
25
- schema.$custom(el => el.nodeType === ELEMENT_NODE);
26
-
27
- /**
28
- * @type {$.Schema<Text>}
29
- */
30
- schema.$custom(el => el.nodeType === TEXT_NODE);
31
-
32
- /**
33
- * @param {Map<string,string>} m
34
- * @return {string}
35
- */
36
- const mapToStyleString = m => map.map(m, (value, key) => `${key}:${value};`).join('');
37
-
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const map = require("./map.js");
4
+ const schema = require("./schema.js");
5
+ const doc = (
6
+ /** @type {Document} */
7
+ typeof document !== "undefined" ? document : {}
8
+ );
9
+ schema.$custom((el) => el.nodeType === DOCUMENT_FRAGMENT_NODE);
10
+ typeof DOMParser !== "undefined" ? new DOMParser() : null;
11
+ schema.$custom((el) => el.nodeType === ELEMENT_NODE);
12
+ schema.$custom((el) => el.nodeType === TEXT_NODE);
13
+ const mapToStyleString = (m) => map.map(m, (value, key) => `${key}:${value};`).join("");
38
14
  const ELEMENT_NODE = doc.ELEMENT_NODE;
39
15
  const TEXT_NODE = doc.TEXT_NODE;
40
16
  const DOCUMENT_NODE = doc.DOCUMENT_NODE;
41
17
  const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE;
42
-
43
- /**
44
- * @type {$.Schema<Node>}
45
- */
46
- schema.$custom(el => el.nodeType === DOCUMENT_NODE);
47
- /* c8 ignore stop */
48
-
18
+ schema.$custom((el) => el.nodeType === DOCUMENT_NODE);
49
19
  exports.DOCUMENT_FRAGMENT_NODE = DOCUMENT_FRAGMENT_NODE;
50
20
  exports.DOCUMENT_NODE = DOCUMENT_NODE;
51
21
  exports.ELEMENT_NODE = ELEMENT_NODE;