@erikwatson/snowfall 3.1.1 → 4.0.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.
package/package.json CHANGED
@@ -1,36 +1,74 @@
1
1
  {
2
2
  "name": "@erikwatson/snowfall",
3
- "version": "3.1.1",
4
- "description": "Nice snow in a JS Canvas.",
5
- "main": "dist/snowfall.min.js",
3
+ "version": "4.0.0",
4
+ "description": "A beautiful and highly configurable snow effect for your winter themed project",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "module": "dist/index.js",
8
+ "files": [
9
+ "dist/**/*"
10
+ ],
6
11
  "repository": "git@github.com:erikwatson/snowfall.js.git",
7
12
  "author": "Erik Watson <erik@erikwatson.me>",
8
13
  "license": "MIT",
14
+ "scripts": {
15
+ "build": "pnpm exec webpack --config webpack.dev.js",
16
+ "build:production": "pnpm exec webpack --config webpack.prod.js",
17
+ "build:all": "pnpm run build && pnpm run build:production",
18
+ "build:docs": "pnpm exec typedoc --out ../snowfall-docs src/snowfall.ts --readme README.md",
19
+ "watch": "pnpm exec webpack --config webpack.dev.js --watch",
20
+ "pub": "pnpm run build:all && npm publish --access public",
21
+ "prepare": "husky"
22
+ },
23
+ "devDependencies": {
24
+ "@babel/core": "^7.25.2",
25
+ "@babel/preset-env": "^7.25.2",
26
+ "@types/jest": "^29.5.14",
27
+ "@types/node": "^22.10.2",
28
+ "@types/seedrandom": "^3.0.8",
29
+ "husky": "^9.0.11",
30
+ "jest": "^29.7.0",
31
+ "jest-environment-jsdom": "^29.7.0",
32
+ "prettier": "^3.2.5",
33
+ "pretty-quick": "^4.0.0",
34
+ "ts-jest": "^29.2.5",
35
+ "ts-loader": "^9.5.1",
36
+ "typedoc": "^0.26.3",
37
+ "typescript": "^5.5.4",
38
+ "webpack": "^5.93.0",
39
+ "webpack-cli": "^5.1.4",
40
+ "webpack-merge": "^6.0.1"
41
+ },
42
+ "dependencies": {
43
+ "@erikwatson/bramble": "^0.8.0",
44
+ "@tweenjs/tween.js": "^23.1.2",
45
+ "seedrandom": "^3.0.5"
46
+ },
47
+ "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912",
9
48
  "keywords": [
10
- "winter",
11
49
  "snow",
50
+ "snowfall",
12
51
  "christmas",
13
- "effect"
52
+ "winter",
53
+ "canvas",
54
+ "particles",
55
+ "holiday",
56
+ "seasonal"
14
57
  ],
15
- "scripts": {
16
- "build": "yarn webpack --config ./webpack.development.js",
17
- "build:production": "yarn webpack --config ./webpack.production.js",
18
- "build:all": "yarn build && yarn build:production",
19
- "build:docs": "yarn jsdoc src/snowfall.js -d ./docs README.md",
20
- "watch": "yarn run build --watch",
21
- "pub": "yarn build:all && npm publish"
58
+ "homepage": "https://github.com/erikwatson/snowfall.js",
59
+ "bugs": {
60
+ "url": "https://github.com/erikwatson/snowfall.js/issues"
22
61
  },
23
- "devDependencies": {
24
- "@babel/core": "^7.4.3",
25
- "@babel/plugin-external-helpers": "^7.2.0",
26
- "@babel/preset-env": "^7.4.3",
27
- "husky": "^3.0.2",
28
- "jsdoc": "^3.6.6",
29
- "prettier": "1.18.2",
30
- "pretty-quick": "^1.11.1",
31
- "webpack": "^4.29.6",
32
- "webpack-cli": "^3.3.0",
33
- "webpack-merge": "^4.2.1"
62
+ "sideEffects": false,
63
+ "exports": {
64
+ ".": {
65
+ "import": "./dist/index.js",
66
+ "require": "./dist/index.js",
67
+ "types": "./dist/index.d.ts"
68
+ }
34
69
  },
35
- "dependencies": {}
70
+ "funding": {
71
+ "type": "github",
72
+ "url": "https://github.com/sponsors/erikwatson"
73
+ }
36
74
  }
@@ -1 +0,0 @@
1
- window.snowfall=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){const i=n(1),{lerp:r}=n(2),o=document.querySelector("#snow-container"),a=document.createElement("canvas"),d=a.getContext("2d");let s=i.create(0,.7),l=i.create(0,0),c=200,u=[],f="#0d0014",h="#8d90b7",y="#ffffff",g=1,p=.02,v=!1,m=!1;function w(e,t){(s=i.fromDegrees(e)).multiplyScalar(t)}function x(e,t){(l=i.fromDegrees(e)).multiplyScalar(t)}function S(){a.width=o.offsetWidth,a.height=o.offsetHeight,u=O(q())}function b(){u.forEach(e=>{z.x=l.x,z.y=l.y,z.multiplyScalar(e.size+e.random),e.pos.add(z),P.x=s.x,P.y=s.y,P.multiplyScalar(e.size+e.random),e.pos.add(P);const t=e.noise;let n=i.create(g*Math.sin(p*M+t),0);e.pos.add(n),e.pos.x>a.width&&(e.pos.x=0),e.pos.x<0&&(e.pos.x=a.width),e.pos.y>a.height&&(e.pos.y=e.pos.y-a.height,e.pos.x=Math.random()*a.width),e.pos.y<0&&(e.pos.y=a.height-e.pos.y,e.pos.x=Math.random()*a.width),e.renderedSize<e.size&&(e.renderedSize=r(e.renderedSize,e.size,.025))}),previousPageYOffset=window.pageYOffset,M+=1,function(){d.clearRect(0,0,a.width,a.height),f&&(d.fillStyle=f,d.fillRect(0,0,a.width,a.height));const e=u.filter(e=>e.size>=7),t=u.filter(e=>e.size<7);d.fillStyle=h,t.forEach(e=>{d.beginPath(),j(e.pos,e.renderedSize),d.fill()}),d.fillStyle=y,e.forEach(e=>{d.beginPath(),j(e.pos,e.renderedSize),d.fill()})}(),window.requestAnimationFrame(b)}let M=0;const z=i.create(0,0),P=i.create(0,0);function O(e){let t=[];for(;e--;){const e=3+5*Math.random(),n=!0===v?0:e;t.push({pos:i.create(Math.random()*a.width,Math.random()*a.height),size:e,renderedSize:n,noise:10*Math.random(),amplitude:2*Math.random(),frequency:.01*Math.random(),random:Math.random()})}return t}function q(){const e=a.width*a.height;return Math.round(c*(e/2073600))}function j(e,t){d.arc(e.x,e.y,t,0,2*Math.PI,!1)}function _(){u=O(q())}e.exports={setAmplitude:function(e){g=e},setBackground:function(e){f=e},setDensity:function(e){c=e,_()},setFade:function(e){v=e,_()},setScroll:function(e){m=e},setFrequency:function(e){p=e},setGravity:w,setPrimary:function(e){h=e},setSecondary:function(e){y=e},setWind:x,start:function(e={}){void 0!==e.bg&&(f=e.bg),void 0!==e.primary&&(h=e.primary),void 0!==e.secondary&&(y=e.secondary),void 0!==e.density&&(c=e.density),void 0!==e.fadeIn&&(v=e.fadeIn),void 0!==e.scroll&&(m=e.scroll),void 0!==e.wave&&(void 0!==e.wave.amplitude&&(g=e.wave.amplitude),void 0!==e.wave.frequency&&(p=e.wave.frequency)),void 0!==e.gravity&&(void 0!==e.gravity.angle&&void 0!==e.gravity.strength&&w(e.gravity.angle,e.gravity.strength),void 0!==e.gravity.angle&&void 0===e.gravity.strength&&w(e.gravity.angle,.7),void 0===e.gravity.angle&&void 0!==e.gravity.strength&&w(90,e.gravity.strength)),void 0!==e.wind&&(void 0!==e.wind.angle&&void 0!==e.wind.strength&&x(e.wind.angle,e.wind.strength),void 0!==e.wind.angle&&void 0===e.wind.strength&&x(e.wind.angle,0),void 0===e.wind.angle&&void 0!==e.wind.strength&&x(0,e.wind.strength)),a.width=o.offsetWidth,a.height=o.offsetHeight,o.appendChild(a),u=O(q()),window.onresize=S,window.requestAnimationFrame(b)}}},function(e,t){function n(e,t){let r=e,o=t;const a=()=>Math.sqrt(r*r+o*o),d=e=>{r*=e,o*=e},s=()=>{let e=a();r/=e,o/=e};return{add:e=>{r+=e.x,o+=e.y},addScalar:e=>{r+=e,o+=e},clone:i,divide:e=>{r/=e.x,o/=e.y},divideScalar:e=>{r/=e,o/=e},dot:e=>r*e.x+o*e.y,getLength:a,getOpposite:e=>n(-e.x,-e.y),getPerp:()=>n(-o,r),isEqualTo:e=>r==e.x&&o==e.y,multiply:e=>{r*=e.x,o*=e.y},multiplyScalar:d,normalise:s,setLength:e=>{s(),d(e)},subtract:e=>{r-=e.x,o-=e.y},subtractScalar:e=>{r-=e,o-=e},set x(e){r=e},get x(){return r},set y(e){o=e},get y(){return o}}}const i=e=>n(e.x,e.y);e.exports={clone:i,create:n,fromDegrees:e=>{const t=e*(Math.PI/180);return n(Math.cos(t),Math.sin(t))}}},function(e,t){e.exports={lerp:function(e,t,n){return e*(1-n)+t*n}}}]);