@tsparticles/engine 4.0.0-alpha.25 → 4.0.0-alpha.27

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 (140) hide show
  1. package/164.min.js +1 -0
  2. package/README.md +3 -3
  3. package/browser/Core/Canvas.js +7 -4
  4. package/browser/Core/Engine.js +6 -16
  5. package/browser/Core/Particle.js +10 -35
  6. package/browser/Core/Particles.js +0 -23
  7. package/browser/Core/Utils/Constants.js +1 -1
  8. package/browser/Core/Utils/Ranges.js +2 -2
  9. package/browser/Core/Utils/Vectors.js +10 -7
  10. package/browser/Options/Classes/ColorAnimation.js +11 -1
  11. package/browser/Options/Classes/HslAnimation.js +4 -3
  12. package/browser/Options/Classes/Options.js +38 -1
  13. package/browser/Options/Classes/Particles/Effect/Effect.js +0 -5
  14. package/browser/Options/Classes/Particles/Fill.js +28 -0
  15. package/browser/Options/Classes/Particles/Move/Move.js +0 -4
  16. package/browser/Options/Classes/Particles/ParticlesOptions.js +12 -6
  17. package/browser/Options/Classes/Particles/Shape/Shape.js +0 -5
  18. package/browser/Utils/CanvasUtils.js +33 -36
  19. package/browser/Utils/ColorUtils.js +22 -19
  20. package/browser/Utils/MathUtils.js +8 -1
  21. package/browser/Utils/Utils.js +93 -24
  22. package/browser/exports.js +1 -1
  23. package/cjs/Core/Canvas.js +7 -4
  24. package/cjs/Core/Engine.js +6 -16
  25. package/cjs/Core/Particle.js +10 -35
  26. package/cjs/Core/Particles.js +0 -23
  27. package/cjs/Core/Utils/Constants.js +1 -1
  28. package/cjs/Core/Utils/Ranges.js +2 -2
  29. package/cjs/Core/Utils/Vectors.js +10 -7
  30. package/cjs/Options/Classes/ColorAnimation.js +11 -1
  31. package/cjs/Options/Classes/HslAnimation.js +4 -3
  32. package/cjs/Options/Classes/Options.js +38 -1
  33. package/cjs/Options/Classes/Particles/Effect/Effect.js +0 -5
  34. package/cjs/Options/Classes/Particles/Fill.js +28 -0
  35. package/cjs/Options/Classes/Particles/Move/Move.js +0 -4
  36. package/cjs/Options/Classes/Particles/ParticlesOptions.js +12 -6
  37. package/cjs/Options/Classes/Particles/Shape/Shape.js +0 -5
  38. package/cjs/Utils/CanvasUtils.js +33 -36
  39. package/cjs/Utils/ColorUtils.js +22 -19
  40. package/cjs/Utils/MathUtils.js +8 -1
  41. package/cjs/Utils/Utils.js +93 -24
  42. package/cjs/exports.js +1 -1
  43. package/dist_browser_Core_Container_js.js +4 -4
  44. package/esm/Core/Canvas.js +7 -4
  45. package/esm/Core/Engine.js +6 -16
  46. package/esm/Core/Particle.js +10 -35
  47. package/esm/Core/Particles.js +0 -23
  48. package/esm/Core/Utils/Constants.js +1 -1
  49. package/esm/Core/Utils/Ranges.js +2 -2
  50. package/esm/Core/Utils/Vectors.js +10 -7
  51. package/esm/Options/Classes/ColorAnimation.js +11 -1
  52. package/esm/Options/Classes/HslAnimation.js +4 -3
  53. package/esm/Options/Classes/Options.js +38 -1
  54. package/esm/Options/Classes/Particles/Effect/Effect.js +0 -5
  55. package/esm/Options/Classes/Particles/Fill.js +28 -0
  56. package/esm/Options/Classes/Particles/Move/Move.js +0 -4
  57. package/esm/Options/Classes/Particles/ParticlesOptions.js +12 -6
  58. package/esm/Options/Classes/Particles/Shape/Shape.js +0 -5
  59. package/esm/Utils/CanvasUtils.js +33 -36
  60. package/esm/Utils/ColorUtils.js +22 -19
  61. package/esm/Utils/MathUtils.js +8 -1
  62. package/esm/Utils/Utils.js +93 -24
  63. package/esm/exports.js +1 -1
  64. package/package.json +1 -1
  65. package/report.html +1 -1
  66. package/scripts/install.js +4 -20
  67. package/tsparticles.engine.js +34 -34
  68. package/tsparticles.engine.min.js +2 -2
  69. package/types/Core/Engine.d.ts +5 -9
  70. package/types/Core/Interfaces/IPalette.d.ts +7 -0
  71. package/types/Core/Interfaces/IParticleOpacityData.d.ts +1 -0
  72. package/types/Core/Interfaces/IParticleValueAnimation.d.ts +3 -3
  73. package/types/Core/Interfaces/IShapeValues.d.ts +0 -1
  74. package/types/Core/Particle.d.ts +3 -7
  75. package/types/Core/Particles.d.ts +0 -5
  76. package/types/Core/Utils/Constants.d.ts +1 -1
  77. package/types/Core/Utils/Vectors.d.ts +6 -6
  78. package/types/Options/Classes/ColorAnimation.d.ts +3 -1
  79. package/types/Options/Classes/Options.d.ts +2 -0
  80. package/types/Options/Classes/Particles/Effect/Effect.d.ts +0 -1
  81. package/types/Options/Classes/Particles/Fill.d.ts +12 -0
  82. package/types/Options/Classes/Particles/Move/Move.d.ts +0 -2
  83. package/types/Options/Classes/Particles/ParticlesOptions.d.ts +2 -2
  84. package/types/Options/Classes/Particles/Shape/Shape.d.ts +0 -1
  85. package/types/Options/Interfaces/IColorAnimation.d.ts +2 -0
  86. package/types/Options/Interfaces/IOptions.d.ts +1 -0
  87. package/types/Options/Interfaces/Particles/Effect/IEffect.d.ts +0 -1
  88. package/types/Options/Interfaces/Particles/IFill.d.ts +9 -0
  89. package/types/Options/Interfaces/Particles/IParticlesOptions.d.ts +2 -2
  90. package/types/Options/Interfaces/Particles/IStroke.d.ts +2 -2
  91. package/types/Options/Interfaces/Particles/Move/IMove.d.ts +0 -2
  92. package/types/Options/Interfaces/Particles/Shape/IShape.d.ts +0 -1
  93. package/types/Types/EngineInitializers.d.ts +0 -6
  94. package/types/Utils/CanvasUtils.d.ts +6 -7
  95. package/types/Utils/ColorUtils.d.ts +1 -2
  96. package/types/Utils/MathUtils.d.ts +2 -0
  97. package/types/Utils/Utils.d.ts +7 -0
  98. package/types/export-types.d.ts +2 -4
  99. package/types/exports.d.ts +1 -1
  100. package/umd/Core/Canvas.js +6 -3
  101. package/umd/Core/Engine.js +6 -16
  102. package/umd/Core/Particle.js +11 -36
  103. package/umd/Core/Particles.js +0 -23
  104. package/umd/Core/Utils/Constants.js +2 -2
  105. package/umd/Core/Utils/Ranges.js +1 -1
  106. package/umd/Core/Utils/Vectors.js +10 -7
  107. package/umd/Options/Classes/ColorAnimation.js +11 -1
  108. package/umd/Options/Classes/HslAnimation.js +5 -4
  109. package/umd/Options/Classes/Options.js +38 -1
  110. package/umd/Options/Classes/Particles/Effect/Effect.js +0 -5
  111. package/umd/Options/Classes/Particles/Fill.js +42 -0
  112. package/umd/Options/Classes/Particles/Move/Move.js +1 -5
  113. package/umd/Options/Classes/Particles/ParticlesOptions.js +13 -7
  114. package/umd/Options/Classes/Particles/Shape/Shape.js +0 -5
  115. package/umd/Utils/CanvasUtils.js +33 -36
  116. package/umd/Utils/ColorUtils.js +21 -18
  117. package/umd/Utils/MathUtils.js +10 -1
  118. package/umd/Utils/Utils.js +94 -24
  119. package/umd/exports.js +2 -2
  120. package/152.min.js +0 -1
  121. package/browser/Options/Classes/Particles/Move/MoveAttract.js +0 -36
  122. package/cjs/Options/Classes/Particles/Move/MoveAttract.js +0 -36
  123. package/esm/Core/Interfaces/IMovePathGenerator.js +0 -1
  124. package/esm/Core/Interfaces/IParticleMover.js +0 -1
  125. package/esm/Options/Classes/Particles/Move/MoveAttract.js +0 -36
  126. package/esm/Options/Interfaces/Particles/Move/IMoveAttract.js +0 -1
  127. package/types/Core/Interfaces/IMovePathGenerator.d.ts +0 -9
  128. package/types/Core/Interfaces/IParticleMover.d.ts +0 -7
  129. package/types/Options/Classes/Particles/Move/MoveAttract.d.ts +0 -12
  130. package/types/Options/Interfaces/Particles/Move/IMoveAttract.d.ts +0 -7
  131. package/umd/Options/Classes/Particles/Move/MoveAttract.js +0 -50
  132. package/umd/Options/Interfaces/Particles/Move/IMoveAttract.js +0 -12
  133. /package/browser/Core/Interfaces/{IMovePathGenerator.js → IPalette.js} +0 -0
  134. /package/browser/{Core/Interfaces/IParticleMover.js → Options/Interfaces/Particles/IFill.js} +0 -0
  135. /package/{browser/Options/Interfaces/Particles/Move/IMoveAttract.js → cjs/Core/Interfaces/IPalette.js} +0 -0
  136. /package/cjs/{Core/Interfaces/IMovePathGenerator.js → Options/Interfaces/Particles/IFill.js} +0 -0
  137. /package/{cjs/Core/Interfaces/IParticleMover.js → esm/Core/Interfaces/IPalette.js} +0 -0
  138. /package/{cjs/Options/Interfaces/Particles/Move/IMoveAttract.js → esm/Options/Interfaces/Particles/IFill.js} +0 -0
  139. /package/umd/Core/Interfaces/{IMovePathGenerator.js → IPalette.js} +0 -0
  140. /package/umd/{Core/Interfaces/IParticleMover.js → Options/Interfaces/Particles/IFill.js} +0 -0
@@ -69,8 +69,15 @@ export function getDistances(pointA, pointB) {
69
69
  const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y;
70
70
  return { dx: dx, dy: dy, distance: Math.hypot(dx, dy) };
71
71
  }
72
+ export function getDistanceSq(pointA, pointB) {
73
+ const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y;
74
+ return dx * dx + dy * dy;
75
+ }
72
76
  export function getDistance(pointA, pointB) {
73
- return getDistances(pointA, pointB).distance;
77
+ return Math.sqrt(getDistanceSq(pointA, pointB));
78
+ }
79
+ export function checkDistance(pointA, pointB, distance) {
80
+ return getDistanceSq(pointA, pointB) <= distance * distance;
74
81
  }
75
82
  export function degToRad(degrees) {
76
83
  return degrees * degToRadFactor;
@@ -8,16 +8,70 @@ import { OutModeDirection } from "../Enums/Directions/OutModeDirection.js";
8
8
  import { PixelMode } from "../Enums/Modes/PixelMode.js";
9
9
  import { StartValueType } from "../Enums/Types/StartValueType.js";
10
10
  import { Vector } from "../Core/Utils/Vectors.js";
11
- const minRadius = 0;
12
- function memoize(fn) {
13
- const cache = new Map();
11
+ const minRadius = 0, minMemoizeSize = 0;
12
+ export function memoize(fn, options) {
13
+ const cache = new Map(), maxSize = options?.maxSize, ttlMs = options?.ttlMs, keyFn = options?.keyFn, stableStringify = (obj, seen = new WeakSet()) => {
14
+ if (obj === null) {
15
+ return "null";
16
+ }
17
+ const t = typeof obj;
18
+ if (t === "undefined") {
19
+ return "undefined";
20
+ }
21
+ if (t === "number" || t === "boolean" || t === "string") {
22
+ return JSON.stringify(obj);
23
+ }
24
+ if (t === "function") {
25
+ try {
26
+ const fn = obj;
27
+ return fn.toString();
28
+ }
29
+ catch {
30
+ return '"[Function]"';
31
+ }
32
+ }
33
+ if (t === "symbol") {
34
+ try {
35
+ return obj.toString();
36
+ }
37
+ catch {
38
+ return '"[Symbol]"';
39
+ }
40
+ }
41
+ if (Array.isArray(obj)) {
42
+ return `[${obj.map(i => stableStringify(i, seen)).join(",")}]`;
43
+ }
44
+ if (seen.has(obj)) {
45
+ return '"[Circular]"';
46
+ }
47
+ seen.add(obj);
48
+ const keys = Object.keys(obj).sort();
49
+ return `{${keys.map(k => `${JSON.stringify(k)}:${stableStringify(obj[k], seen)}`).join(",")}}`;
50
+ }, defaultKeyer = (args) => stableStringify(args), makeKey = (args) => (keyFn ? keyFn(args) : defaultKeyer(args)), ensureBounds = () => {
51
+ if (typeof maxSize === "number" && maxSize >= minMemoizeSize) {
52
+ while (cache.size > maxSize) {
53
+ const firstKey = cache.keys().next().value;
54
+ if (firstKey === undefined)
55
+ break;
56
+ cache.delete(firstKey);
57
+ }
58
+ }
59
+ };
14
60
  return (...args) => {
15
- const key = JSON.stringify(args);
16
- if (cache.has(key)) {
17
- return cache.get(key);
61
+ const key = makeKey(args), now = Date.now(), entry = cache.get(key);
62
+ if (entry !== undefined) {
63
+ if (ttlMs && now - entry.ts > ttlMs) {
64
+ cache.delete(key);
65
+ }
66
+ else {
67
+ cache.delete(key);
68
+ cache.set(key, { value: entry.value, ts: entry.ts });
69
+ return entry.value;
70
+ }
18
71
  }
19
72
  const result = fn(...args);
20
- cache.set(key, result);
73
+ cache.set(key, { value: result, ts: now });
74
+ ensureBounds();
21
75
  return result;
22
76
  };
23
77
  }
@@ -83,33 +137,48 @@ export function calculateBounds(point, radius) {
83
137
  }
84
138
  export function deepExtend(destination, ...sources) {
85
139
  for (const source of sources) {
86
- if (source === undefined || source === null) {
140
+ if (isNull(source)) {
87
141
  continue;
88
142
  }
89
143
  if (!isObject(source)) {
90
144
  destination = source;
91
145
  continue;
92
146
  }
93
- const sourceIsArray = Array.isArray(source);
94
- if (sourceIsArray) {
147
+ if (Array.isArray(source)) {
95
148
  if (!Array.isArray(destination)) {
96
149
  destination = [];
97
150
  }
98
151
  }
99
- else {
100
- if (!isObject(destination) || Array.isArray(destination)) {
101
- destination = {};
152
+ else if (!isObject(destination) || Array.isArray(destination)) {
153
+ destination = {};
154
+ }
155
+ const sourceKeys = Object.keys(source), dangerousKeys = new Set(["__proto__", "constructor", "prototype"]), hasNested = sourceKeys.some(k => {
156
+ const v = source[k];
157
+ return isObject(v) || Array.isArray(v);
158
+ });
159
+ if (!hasNested) {
160
+ const sourceDict = source, destDict = destination;
161
+ for (const key of sourceKeys) {
162
+ if (dangerousKeys.has(key)) {
163
+ continue;
164
+ }
165
+ if (key in sourceDict) {
166
+ const v = sourceDict[key];
167
+ if (v !== undefined) {
168
+ destDict[key] = v;
169
+ }
170
+ }
102
171
  }
172
+ continue;
103
173
  }
104
- for (const key in source) {
105
- if (key === "__proto__") {
174
+ for (const key of sourceKeys) {
175
+ if (dangerousKeys.has(key)) {
106
176
  continue;
107
177
  }
108
- const sourceDict = source, value = sourceDict[key], destDict = destination;
109
- destDict[key] =
110
- isObject(value) && Array.isArray(value)
111
- ? value.map(v => deepExtend(destDict[key], v))
112
- : deepExtend(destDict[key], value);
178
+ const sourceDict = source, destDict = destination, value = sourceDict[key];
179
+ destDict[key] = Array.isArray(value)
180
+ ? value.map(v => deepExtend(undefined, v))
181
+ : deepExtend(destDict[key], value);
113
182
  }
114
183
  }
115
184
  return destination;
@@ -301,7 +370,7 @@ export function cloneStyle(style) {
301
370
  const clonedStyle = safeDocument().createElement("div").style;
302
371
  for (const key in style) {
303
372
  const styleKey = style[key];
304
- if (!Object.hasOwn(style, key) || isNull(styleKey)) {
373
+ if (!(key in style) || isNull(styleKey)) {
305
374
  continue;
306
375
  }
307
376
  const styleValue = style.getPropertyValue?.(styleKey);
@@ -309,11 +378,11 @@ export function cloneStyle(style) {
309
378
  continue;
310
379
  }
311
380
  const stylePriority = style.getPropertyPriority?.(styleKey);
312
- if (!stylePriority) {
313
- clonedStyle.setProperty(styleKey, styleValue);
381
+ if (stylePriority) {
382
+ clonedStyle.setProperty(styleKey, styleValue, stylePriority);
314
383
  }
315
384
  else {
316
- clonedStyle.setProperty(styleKey, styleValue, stylePriority);
385
+ clonedStyle.setProperty(styleKey, styleValue);
317
386
  }
318
387
  }
319
388
  return clonedStyle;
package/esm/exports.js CHANGED
@@ -27,8 +27,8 @@ export * from "./Options/Classes/OptionsColor.js";
27
27
  export * from "./Options/Classes/Particles/Bounce/ParticlesBounce.js";
28
28
  export * from "./Options/Classes/Particles/Bounce/ParticlesBounceFactor.js";
29
29
  export * from "./Options/Classes/Particles/ParticlesOptions.js";
30
+ export * from "./Options/Classes/Particles/Fill.js";
30
31
  export * from "./Options/Classes/Particles/Stroke.js";
31
- export * from "./Options/Classes/Particles/Move/MoveAttract.js";
32
32
  export * from "./Options/Classes/Particles/Move/Move.js";
33
33
  export * from "./Options/Classes/Particles/Move/MoveAngle.js";
34
34
  export * from "./Options/Classes/Particles/Move/MoveCenter.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/engine",
3
- "version": "4.0.0-alpha.25",
3
+ "version": "4.0.0-alpha.27",
4
4
  "description": "Easily create highly customizable particle, confetti and fireworks animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
5
5
  "homepage": "https://particles.js.org",
6
6
  "scripts": {
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/engine [21 Feb 2026 at 12:47]</title>
6
+ <title>@tsparticles/engine [9 Mar 2026 at 17:21]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -1,5 +1,5 @@
1
- import path from "path";
2
- import { fileURLToPath } from "url";
1
+ import path from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
3
  import fs from "fs-extra";
4
4
 
5
5
  async function checkErrors() {
@@ -8,7 +8,6 @@ async function checkErrors() {
8
8
  reactParticlesJsFoundError = "react-particles-js-found",
9
9
  reactParticlesFoundError = "react-particles-found",
10
10
  reactTsParticlesFoundError = "react-tsparticles-found",
11
- svelteParticlesFoundError = "svelte-particles-found",
12
11
  vue2ParticlesFoundError = "vue2-particles-found",
13
12
  vue3ParticlesFoundError = "vue3-particles-found";
14
13
 
@@ -187,20 +186,6 @@ async function checkErrors() {
187
186
  }
188
187
 
189
188
  if (dependencies["svelte"]) {
190
- if (dependencies["svelte-particles"]) {
191
- console.error(
192
- "\x1b[31m%s\x1b[0m",
193
- "The package svelte-particles has been deprecated and is not supported anymore."
194
- );
195
- console.error("\x1b[31m%s\x1b[0m", "Please consider switching to @tsparticles/svelte package.");
196
- console.error(
197
- "\x1b[31m%s\x1b[0m",
198
- "This error will be fixed once svelte-particles is removed from the package.json file."
199
- );
200
-
201
- throw new Error(svelteParticlesFoundError);
202
- }
203
-
204
189
  if (!dependencies["@tsparticles/svelte"]) {
205
190
  console.warn(
206
191
  "\x1b[43m\x1b[30m%s\x1b[0m",
@@ -254,8 +239,7 @@ async function checkErrors() {
254
239
  error.message === reactTsParticlesFoundError ||
255
240
  error.message === angularParticlesFoundError ||
256
241
  error.message === vue2ParticlesFoundError ||
257
- error.message === vue3ParticlesFoundError ||
258
- error.message === svelteParticlesFoundError
242
+ error.message === vue3ParticlesFoundError
259
243
  ) {
260
244
  throw error;
261
245
  }
@@ -264,4 +248,4 @@ async function checkErrors() {
264
248
  }
265
249
  }
266
250
 
267
- checkErrors();
251
+ checkErrors();