melonjs 17.1.0 → 17.3.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 (262) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  2. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/re.js +1 -1
  6. package/dist/melonjs.mjs/application/application.js +7 -7
  7. package/dist/melonjs.mjs/application/header.js +2 -2
  8. package/dist/melonjs.mjs/application/resize.js +1 -1
  9. package/dist/melonjs.mjs/application/settings.js +29 -32
  10. package/dist/melonjs.mjs/audio/audio.js +13 -9
  11. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  14. package/dist/melonjs.mjs/geometries/line.js +1 -1
  15. package/dist/melonjs.mjs/geometries/path2d.js +17 -17
  16. package/dist/melonjs.mjs/geometries/point.js +1 -1
  17. package/dist/melonjs.mjs/geometries/poly.js +1 -1
  18. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  19. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  20. package/dist/melonjs.mjs/geometries/toarccanvas.js +1 -1
  21. package/dist/melonjs.mjs/index.js +4 -4
  22. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  23. package/dist/melonjs.mjs/input/input.js +1 -1
  24. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  25. package/dist/melonjs.mjs/input/pointer.js +1 -1
  26. package/dist/melonjs.mjs/input/pointerevent.js +1 -1
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +29 -2
  29. package/dist/melonjs.mjs/level/level.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -2
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +2 -2
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +3 -3
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +5 -5
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +3 -3
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +5 -2
  46. package/dist/melonjs.mjs/loader/loader.js +34 -5
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +2 -4
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parsers/binary.js +1 -1
  50. package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +1 -1
  51. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +1 -1
  52. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +1 -1
  53. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +1 -1
  54. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +1 -1
  55. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +1 -1
  56. package/dist/melonjs.mjs/loader/parsers/fetchdata.js +1 -1
  57. package/dist/melonjs.mjs/loader/parsers/fontface.js +25 -15
  58. package/dist/melonjs.mjs/loader/parsers/image.js +3 -3
  59. package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
  60. package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
  61. package/dist/melonjs.mjs/loader/parsers/tmx.js +2 -9
  62. package/dist/melonjs.mjs/loader/parsers/video.js +1 -1
  63. package/dist/melonjs.mjs/math/color.js +6 -6
  64. package/dist/melonjs.mjs/math/math.js +1 -1
  65. package/dist/melonjs.mjs/math/matrix2.js +7 -7
  66. package/dist/melonjs.mjs/math/matrix3.js +2 -2
  67. package/dist/melonjs.mjs/math/observable_vector2.js +3 -3
  68. package/dist/melonjs.mjs/math/observable_vector3.js +4 -4
  69. package/dist/melonjs.mjs/math/vector2.js +3 -3
  70. package/dist/melonjs.mjs/math/vector3.js +4 -4
  71. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  72. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  73. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  74. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  75. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  76. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  77. package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
  78. package/dist/melonjs.mjs/node_modules/semver/classes/range.js +6 -5
  79. package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +2 -2
  80. package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
  81. package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
  82. package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
  83. package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
  84. package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
  85. package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
  86. package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
  87. package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
  88. package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
  89. package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
  90. package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
  91. package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
  92. package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
  93. package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
  94. package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
  95. package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
  96. package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
  97. package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
  98. package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
  99. package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
  100. package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
  101. package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
  102. package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
  103. package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
  104. package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
  105. package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
  106. package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
  107. package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
  108. package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +49 -0
  109. package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
  110. package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
  111. package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
  112. package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
  113. package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
  114. package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
  115. package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
  116. package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
  117. package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
  118. package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
  119. package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
  120. package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
  121. package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
  122. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  123. package/dist/melonjs.mjs/particles/particle.js +1 -1
  124. package/dist/melonjs.mjs/particles/settings.js +1 -1
  125. package/dist/melonjs.mjs/physics/body.js +4 -4
  126. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  127. package/dist/melonjs.mjs/physics/collision.js +1 -1
  128. package/dist/melonjs.mjs/physics/detector.js +2 -2
  129. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  130. package/dist/melonjs.mjs/physics/response.js +1 -1
  131. package/dist/melonjs.mjs/physics/sat.js +1 -1
  132. package/dist/melonjs.mjs/physics/world.js +2 -2
  133. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  134. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  135. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  136. package/dist/melonjs.mjs/renderable/container.js +2 -2
  137. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  138. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  139. package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
  140. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  141. package/dist/melonjs.mjs/renderable/light2d.js +7 -7
  142. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  143. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  144. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  145. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
  146. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
  147. package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
  148. package/dist/melonjs.mjs/renderable/text/text.js +1 -1
  149. package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
  150. package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
  151. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  152. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  153. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  154. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  155. package/dist/melonjs.mjs/state/stage.js +1 -1
  156. package/dist/melonjs.mjs/state/state.js +5 -5
  157. package/dist/melonjs.mjs/system/device.js +6 -6
  158. package/dist/melonjs.mjs/system/dom.js +1 -1
  159. package/dist/melonjs.mjs/system/event.js +1 -1
  160. package/dist/melonjs.mjs/system/platform.js +4 -2
  161. package/dist/melonjs.mjs/system/pooling.js +2 -2
  162. package/dist/melonjs.mjs/system/save.js +2 -2
  163. package/dist/melonjs.mjs/system/timer.js +2 -2
  164. package/dist/melonjs.mjs/tweens/easing.js +68 -70
  165. package/dist/melonjs.mjs/tweens/interpolation.js +29 -29
  166. package/dist/melonjs.mjs/tweens/tween.js +43 -43
  167. package/dist/melonjs.mjs/utils/agent.js +1 -1
  168. package/dist/melonjs.mjs/utils/array.js +1 -1
  169. package/dist/melonjs.mjs/utils/file.js +1 -1
  170. package/dist/melonjs.mjs/utils/function.js +1 -1
  171. package/dist/melonjs.mjs/utils/string.js +1 -1
  172. package/dist/melonjs.mjs/utils/utils.js +1 -1
  173. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +18 -10
  174. package/dist/melonjs.mjs/video/renderer.js +18 -70
  175. package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +12 -6
  176. package/dist/melonjs.mjs/video/texture/atlas.js +13 -4
  177. package/dist/melonjs.mjs/video/texture/cache.js +57 -38
  178. package/dist/melonjs.mjs/video/texture/parser/aseprite.js +1 -1
  179. package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +1 -1
  180. package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +1 -1
  181. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  182. package/dist/melonjs.mjs/video/video.js +4 -3
  183. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  184. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  185. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  186. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  187. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  188. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  189. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  190. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  191. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  192. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  193. package/dist/melonjs.mjs/video/webgl/utils/precision.js +5 -5
  194. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  195. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  196. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  197. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +47 -21
  198. package/dist/melonjs.module.js +607 -1294
  199. package/dist/types/application/application.d.ts +7 -6
  200. package/dist/types/application/settings.d.ts +40 -23
  201. package/dist/types/audio/audio.d.ts +8 -4
  202. package/dist/types/loader/cache.d.ts +1 -0
  203. package/dist/types/loader/loader.d.ts +7 -0
  204. package/dist/types/physics/world.d.ts +1 -1
  205. package/dist/types/system/platform.d.ts +2 -0
  206. package/dist/types/video/canvas/canvas_renderer.d.ts +6 -3
  207. package/dist/types/video/renderer.d.ts +6 -16
  208. package/dist/types/video/rendertarget/canvasrendertarget.d.ts +6 -9
  209. package/dist/types/video/texture/atlas.d.ts +6 -0
  210. package/dist/types/video/texture/cache.d.ts +7 -5
  211. package/dist/types/video/video.d.ts +3 -2
  212. package/dist/types/video/webgl/webgl_renderer.d.ts +8 -6
  213. package/package.json +16 -16
  214. package/src/application/application.js +6 -6
  215. package/src/application/header.js +1 -1
  216. package/src/application/settings.js +27 -30
  217. package/src/audio/audio.js +12 -8
  218. package/src/geometries/path2d.js +16 -16
  219. package/src/index.js +2 -2
  220. package/src/lang/deprecated.js +28 -1
  221. package/src/level/tiled/TMXObject.js +1 -1
  222. package/src/level/tiled/TMXTileMap.js +1 -1
  223. package/src/level/tiled/TMXUtils.js +2 -2
  224. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +4 -4
  225. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  226. package/src/loader/cache.js +3 -0
  227. package/src/loader/loader.js +33 -3
  228. package/src/loader/parsers/fontface.js +24 -14
  229. package/src/loader/parsers/image.js +2 -2
  230. package/src/loader/parsers/tmx.js +1 -8
  231. package/src/math/color.js +5 -5
  232. package/src/math/matrix2.js +6 -6
  233. package/src/math/matrix3.js +1 -1
  234. package/src/math/observable_vector2.js +2 -2
  235. package/src/math/observable_vector3.js +3 -3
  236. package/src/math/vector2.js +2 -2
  237. package/src/math/vector3.js +3 -3
  238. package/src/physics/body.js +3 -3
  239. package/src/physics/detector.js +1 -1
  240. package/src/physics/world.js +1 -1
  241. package/src/renderable/container.js +1 -1
  242. package/src/renderable/light2d.js +6 -6
  243. package/src/state/state.js +4 -4
  244. package/src/system/device.js +5 -5
  245. package/src/system/platform.js +2 -0
  246. package/src/system/pooling.js +1 -1
  247. package/src/system/save.js +1 -1
  248. package/src/system/timer.js +1 -1
  249. package/src/tweens/easing.js +67 -69
  250. package/src/tweens/interpolation.js +28 -28
  251. package/src/tweens/tween.js +42 -42
  252. package/src/video/canvas/canvas_renderer.js +17 -9
  253. package/src/video/renderer.js +17 -69
  254. package/src/video/rendertarget/canvasrendertarget.js +11 -5
  255. package/src/video/texture/atlas.js +12 -3
  256. package/src/video/texture/cache.js +56 -37
  257. package/src/video/video.js +3 -2
  258. package/src/video/webgl/utils/precision.js +4 -4
  259. package/src/video/webgl/webgl_renderer.js +46 -20
  260. package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +0 -352
  261. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +0 -24
  262. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/yallist.js +0 -444
@@ -1,444 +0,0 @@
1
- /*!
2
- * melonJS Game Engine - v17.1.0
3
- * http://www.melonjs.org
4
- * melonjs is licensed under the MIT License.
5
- * http://www.opensource.org/licenses/mit-license
6
- * @copyright (C) 2011 - 2024 Olivier Biot (AltByte Pte Ltd)
7
- */
8
- import { __require as requireIterator } from './iterator.js';
9
-
10
- var yallist;
11
- var hasRequiredYallist;
12
-
13
- function requireYallist () {
14
- if (hasRequiredYallist) return yallist;
15
- hasRequiredYallist = 1;
16
- yallist = Yallist;
17
-
18
- Yallist.Node = Node;
19
- Yallist.create = Yallist;
20
-
21
- function Yallist (list) {
22
- var self = this;
23
- if (!(self instanceof Yallist)) {
24
- self = new Yallist();
25
- }
26
-
27
- self.tail = null;
28
- self.head = null;
29
- self.length = 0;
30
-
31
- if (list && typeof list.forEach === 'function') {
32
- list.forEach(function (item) {
33
- self.push(item);
34
- });
35
- } else if (arguments.length > 0) {
36
- for (var i = 0, l = arguments.length; i < l; i++) {
37
- self.push(arguments[i]);
38
- }
39
- }
40
-
41
- return self
42
- }
43
-
44
- Yallist.prototype.removeNode = function (node) {
45
- if (node.list !== this) {
46
- throw new Error('removing node which does not belong to this list')
47
- }
48
-
49
- var next = node.next;
50
- var prev = node.prev;
51
-
52
- if (next) {
53
- next.prev = prev;
54
- }
55
-
56
- if (prev) {
57
- prev.next = next;
58
- }
59
-
60
- if (node === this.head) {
61
- this.head = next;
62
- }
63
- if (node === this.tail) {
64
- this.tail = prev;
65
- }
66
-
67
- node.list.length--;
68
- node.next = null;
69
- node.prev = null;
70
- node.list = null;
71
-
72
- return next
73
- };
74
-
75
- Yallist.prototype.unshiftNode = function (node) {
76
- if (node === this.head) {
77
- return
78
- }
79
-
80
- if (node.list) {
81
- node.list.removeNode(node);
82
- }
83
-
84
- var head = this.head;
85
- node.list = this;
86
- node.next = head;
87
- if (head) {
88
- head.prev = node;
89
- }
90
-
91
- this.head = node;
92
- if (!this.tail) {
93
- this.tail = node;
94
- }
95
- this.length++;
96
- };
97
-
98
- Yallist.prototype.pushNode = function (node) {
99
- if (node === this.tail) {
100
- return
101
- }
102
-
103
- if (node.list) {
104
- node.list.removeNode(node);
105
- }
106
-
107
- var tail = this.tail;
108
- node.list = this;
109
- node.prev = tail;
110
- if (tail) {
111
- tail.next = node;
112
- }
113
-
114
- this.tail = node;
115
- if (!this.head) {
116
- this.head = node;
117
- }
118
- this.length++;
119
- };
120
-
121
- Yallist.prototype.push = function () {
122
- for (var i = 0, l = arguments.length; i < l; i++) {
123
- push(this, arguments[i]);
124
- }
125
- return this.length
126
- };
127
-
128
- Yallist.prototype.unshift = function () {
129
- for (var i = 0, l = arguments.length; i < l; i++) {
130
- unshift(this, arguments[i]);
131
- }
132
- return this.length
133
- };
134
-
135
- Yallist.prototype.pop = function () {
136
- if (!this.tail) {
137
- return undefined
138
- }
139
-
140
- var res = this.tail.value;
141
- this.tail = this.tail.prev;
142
- if (this.tail) {
143
- this.tail.next = null;
144
- } else {
145
- this.head = null;
146
- }
147
- this.length--;
148
- return res
149
- };
150
-
151
- Yallist.prototype.shift = function () {
152
- if (!this.head) {
153
- return undefined
154
- }
155
-
156
- var res = this.head.value;
157
- this.head = this.head.next;
158
- if (this.head) {
159
- this.head.prev = null;
160
- } else {
161
- this.tail = null;
162
- }
163
- this.length--;
164
- return res
165
- };
166
-
167
- Yallist.prototype.forEach = function (fn, thisp) {
168
- thisp = thisp || this;
169
- for (var walker = this.head, i = 0; walker !== null; i++) {
170
- fn.call(thisp, walker.value, i, this);
171
- walker = walker.next;
172
- }
173
- };
174
-
175
- Yallist.prototype.forEachReverse = function (fn, thisp) {
176
- thisp = thisp || this;
177
- for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {
178
- fn.call(thisp, walker.value, i, this);
179
- walker = walker.prev;
180
- }
181
- };
182
-
183
- Yallist.prototype.get = function (n) {
184
- for (var i = 0, walker = this.head; walker !== null && i < n; i++) {
185
- // abort out of the list early if we hit a cycle
186
- walker = walker.next;
187
- }
188
- if (i === n && walker !== null) {
189
- return walker.value
190
- }
191
- };
192
-
193
- Yallist.prototype.getReverse = function (n) {
194
- for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {
195
- // abort out of the list early if we hit a cycle
196
- walker = walker.prev;
197
- }
198
- if (i === n && walker !== null) {
199
- return walker.value
200
- }
201
- };
202
-
203
- Yallist.prototype.map = function (fn, thisp) {
204
- thisp = thisp || this;
205
- var res = new Yallist();
206
- for (var walker = this.head; walker !== null;) {
207
- res.push(fn.call(thisp, walker.value, this));
208
- walker = walker.next;
209
- }
210
- return res
211
- };
212
-
213
- Yallist.prototype.mapReverse = function (fn, thisp) {
214
- thisp = thisp || this;
215
- var res = new Yallist();
216
- for (var walker = this.tail; walker !== null;) {
217
- res.push(fn.call(thisp, walker.value, this));
218
- walker = walker.prev;
219
- }
220
- return res
221
- };
222
-
223
- Yallist.prototype.reduce = function (fn, initial) {
224
- var acc;
225
- var walker = this.head;
226
- if (arguments.length > 1) {
227
- acc = initial;
228
- } else if (this.head) {
229
- walker = this.head.next;
230
- acc = this.head.value;
231
- } else {
232
- throw new TypeError('Reduce of empty list with no initial value')
233
- }
234
-
235
- for (var i = 0; walker !== null; i++) {
236
- acc = fn(acc, walker.value, i);
237
- walker = walker.next;
238
- }
239
-
240
- return acc
241
- };
242
-
243
- Yallist.prototype.reduceReverse = function (fn, initial) {
244
- var acc;
245
- var walker = this.tail;
246
- if (arguments.length > 1) {
247
- acc = initial;
248
- } else if (this.tail) {
249
- walker = this.tail.prev;
250
- acc = this.tail.value;
251
- } else {
252
- throw new TypeError('Reduce of empty list with no initial value')
253
- }
254
-
255
- for (var i = this.length - 1; walker !== null; i--) {
256
- acc = fn(acc, walker.value, i);
257
- walker = walker.prev;
258
- }
259
-
260
- return acc
261
- };
262
-
263
- Yallist.prototype.toArray = function () {
264
- var arr = new Array(this.length);
265
- for (var i = 0, walker = this.head; walker !== null; i++) {
266
- arr[i] = walker.value;
267
- walker = walker.next;
268
- }
269
- return arr
270
- };
271
-
272
- Yallist.prototype.toArrayReverse = function () {
273
- var arr = new Array(this.length);
274
- for (var i = 0, walker = this.tail; walker !== null; i++) {
275
- arr[i] = walker.value;
276
- walker = walker.prev;
277
- }
278
- return arr
279
- };
280
-
281
- Yallist.prototype.slice = function (from, to) {
282
- to = to || this.length;
283
- if (to < 0) {
284
- to += this.length;
285
- }
286
- from = from || 0;
287
- if (from < 0) {
288
- from += this.length;
289
- }
290
- var ret = new Yallist();
291
- if (to < from || to < 0) {
292
- return ret
293
- }
294
- if (from < 0) {
295
- from = 0;
296
- }
297
- if (to > this.length) {
298
- to = this.length;
299
- }
300
- for (var i = 0, walker = this.head; walker !== null && i < from; i++) {
301
- walker = walker.next;
302
- }
303
- for (; walker !== null && i < to; i++, walker = walker.next) {
304
- ret.push(walker.value);
305
- }
306
- return ret
307
- };
308
-
309
- Yallist.prototype.sliceReverse = function (from, to) {
310
- to = to || this.length;
311
- if (to < 0) {
312
- to += this.length;
313
- }
314
- from = from || 0;
315
- if (from < 0) {
316
- from += this.length;
317
- }
318
- var ret = new Yallist();
319
- if (to < from || to < 0) {
320
- return ret
321
- }
322
- if (from < 0) {
323
- from = 0;
324
- }
325
- if (to > this.length) {
326
- to = this.length;
327
- }
328
- for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {
329
- walker = walker.prev;
330
- }
331
- for (; walker !== null && i > from; i--, walker = walker.prev) {
332
- ret.push(walker.value);
333
- }
334
- return ret
335
- };
336
-
337
- Yallist.prototype.splice = function (start, deleteCount, ...nodes) {
338
- if (start > this.length) {
339
- start = this.length - 1;
340
- }
341
- if (start < 0) {
342
- start = this.length + start;
343
- }
344
-
345
- for (var i = 0, walker = this.head; walker !== null && i < start; i++) {
346
- walker = walker.next;
347
- }
348
-
349
- var ret = [];
350
- for (var i = 0; walker && i < deleteCount; i++) {
351
- ret.push(walker.value);
352
- walker = this.removeNode(walker);
353
- }
354
- if (walker === null) {
355
- walker = this.tail;
356
- }
357
-
358
- if (walker !== this.head && walker !== this.tail) {
359
- walker = walker.prev;
360
- }
361
-
362
- for (var i = 0; i < nodes.length; i++) {
363
- walker = insert(this, walker, nodes[i]);
364
- }
365
- return ret;
366
- };
367
-
368
- Yallist.prototype.reverse = function () {
369
- var head = this.head;
370
- var tail = this.tail;
371
- for (var walker = head; walker !== null; walker = walker.prev) {
372
- var p = walker.prev;
373
- walker.prev = walker.next;
374
- walker.next = p;
375
- }
376
- this.head = tail;
377
- this.tail = head;
378
- return this
379
- };
380
-
381
- function insert (self, node, value) {
382
- var inserted = node === self.head ?
383
- new Node(value, null, node, self) :
384
- new Node(value, node, node.next, self);
385
-
386
- if (inserted.next === null) {
387
- self.tail = inserted;
388
- }
389
- if (inserted.prev === null) {
390
- self.head = inserted;
391
- }
392
-
393
- self.length++;
394
-
395
- return inserted
396
- }
397
-
398
- function push (self, item) {
399
- self.tail = new Node(item, self.tail, null, self);
400
- if (!self.head) {
401
- self.head = self.tail;
402
- }
403
- self.length++;
404
- }
405
-
406
- function unshift (self, item) {
407
- self.head = new Node(item, null, self.head, self);
408
- if (!self.tail) {
409
- self.tail = self.head;
410
- }
411
- self.length++;
412
- }
413
-
414
- function Node (value, prev, next, list) {
415
- if (!(this instanceof Node)) {
416
- return new Node(value, prev, next, list)
417
- }
418
-
419
- this.list = list;
420
- this.value = value;
421
-
422
- if (prev) {
423
- prev.next = this;
424
- this.prev = prev;
425
- } else {
426
- this.prev = null;
427
- }
428
-
429
- if (next) {
430
- next.prev = this;
431
- this.next = next;
432
- } else {
433
- this.next = null;
434
- }
435
- }
436
-
437
- try {
438
- // add if support for Symbol.iterator is present
439
- requireIterator()(Yallist);
440
- } catch (er) {}
441
- return yallist;
442
- }
443
-
444
- export { requireYallist as __require };