From 28e40828443587ae3cfaad3d5c481941e8089338 Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Fri, 3 Oct 2025 17:21:58 +0200 Subject: [PATCH] wip: clicking experience launches webxr client --- .gitignore | 1 + README.md | 2 +- clients/webxr | 1 + clients/webxr/aframe/index.js | 49 -- clients/webxr/dist/xrforge.html | 44 - clients/webxr/dist/xrforge/xrforge.html | 44 - clients/webxr/package-lock.json | 28 - clients/webxr/package.json | 15 - clients/webxr/xrforge.html | 44 - manyfold/README.md | 1 + manyfold/cli/manyfold.sh | 10 +- manyfold/root/hook.d/boot/aframe.sh | 20 + .../src/app/public/webxr/dist/xrforge.html | 51 ++ .../webxr/dist/xrforge/play-c89r1cs1.svg | 0 .../webxr/dist/xrforge/xrforge-gent5bnt.js | 0 .../public/webxr/dist/xrforge/xrforge.html | 51 ++ .../app/public/webxr/lib}/aframe/index.html | 0 .../src/app/public/webxr/lib/aframe/index.js | 11 + .../src/app/public/webxr/lib/assets}/play.svg | 0 .../src/app/public/webxr/lib/xrforge/util.js | 19 +- .../src/app/public/webxr/package-lock.json | 754 ++++++++++++++++++ .../usr/src/app/public/webxr/package.json | 16 + .../usr/src/app/public}/webxr/shell.nix | 0 .../usr/src/app/public/webxr/xrforge.html | 51 ++ 24 files changed, 972 insertions(+), 240 deletions(-) create mode 120000 clients/webxr delete mode 100644 clients/webxr/aframe/index.js delete mode 100644 clients/webxr/dist/xrforge.html delete mode 100644 clients/webxr/dist/xrforge/xrforge.html delete mode 100644 clients/webxr/package-lock.json delete mode 100644 clients/webxr/package.json delete mode 100644 clients/webxr/xrforge.html create mode 100755 manyfold/root/hook.d/boot/aframe.sh create mode 100644 manyfold/usr/src/app/public/webxr/dist/xrforge.html rename {clients => manyfold/usr/src/app/public}/webxr/dist/xrforge/play-c89r1cs1.svg (100%) rename {clients => manyfold/usr/src/app/public}/webxr/dist/xrforge/xrforge-gent5bnt.js (100%) create mode 100644 manyfold/usr/src/app/public/webxr/dist/xrforge/xrforge.html rename {clients/webxr => manyfold/usr/src/app/public/webxr/lib}/aframe/index.html (100%) create mode 100644 manyfold/usr/src/app/public/webxr/lib/aframe/index.js rename {clients/webxr/aframe => manyfold/usr/src/app/public/webxr/lib/assets}/play.svg (100%) rename clients/webxr/aframe/plugin.xrforge.js => manyfold/usr/src/app/public/webxr/lib/xrforge/util.js (75%) create mode 100644 manyfold/usr/src/app/public/webxr/package-lock.json create mode 100644 manyfold/usr/src/app/public/webxr/package.json rename {clients => manyfold/usr/src/app/public}/webxr/shell.nix (100%) create mode 100644 manyfold/usr/src/app/public/webxr/xrforge.html diff --git a/.gitignore b/.gitignore index eaaad8e..437467b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +node_modules manyfold/usr manyfold/.env diff --git a/README.md b/README.md index f5bce94..cfa43ca 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ![](https://i.imgur.com/0NA7MMg.png) -* View [index.html](https://coderofsalvation.codeberg.page/xrforge/) for the official docs +* View [index.html](https://coderofsalvation.codeberg.page/xrforge) for the official docs * Click [here](manyfold/README.md) for backend-installation instructions. Powered by: diff --git a/clients/webxr b/clients/webxr new file mode 120000 index 0000000..19fe0ce --- /dev/null +++ b/clients/webxr @@ -0,0 +1 @@ +../manyfold/usr/src/app/public/webxr \ No newline at end of file diff --git a/clients/webxr/aframe/index.js b/clients/webxr/aframe/index.js deleted file mode 100644 index 0d7c136..0000000 --- a/clients/webxr/aframe/index.js +++ /dev/null @@ -1,49 +0,0 @@ - -import * as xrforge from './plugin.xrforge.js'; -import * as level0 from 'xrf/level0'; - -const widget = new Proxy({ - - backend: null, - player: document.querySelector("#player"), - src: document.location.search.substr(1), - ext: {}, - - init(opts){ - for( var i in opts) this[i] = opts[i] - }, - - play(){ - // set URL - player.setAttribute("gltf-model", `url(${widget.src})` ) - - document.querySelector("#btn_play").style.display = 'none' - - let script = document.createElement("script") - script.src = "https://aframe.io/releases/1.7.0/aframe.min.js" - document.head.appendChild(script) - - script = document.createElement("script") - script.src = "backend.xrforge.js" - document.head.appendChild(script) - } - -}, - { - get(me,k){ return me[k] }, - - set(me,k,v){ - me[k] = v - return true - } - - }) - -xrforge.init(widget) -//level0.init(widget) - -document.querySelector("#btn_play").addEventListener("click", () => widget.play() ) - -//document.body.style.background = `url(${src.replace( /\.(glb|usdz|gltf|obj|col)$/ , ".png")})` - - diff --git a/clients/webxr/dist/xrforge.html b/clients/webxr/dist/xrforge.html deleted file mode 100644 index 8671a56..0000000 --- a/clients/webxr/dist/xrforge.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/clients/webxr/dist/xrforge/xrforge.html b/clients/webxr/dist/xrforge/xrforge.html deleted file mode 100644 index e0da36e..0000000 --- a/clients/webxr/dist/xrforge/xrforge.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/clients/webxr/package-lock.json b/clients/webxr/package-lock.json deleted file mode 100644 index ce72d98..0000000 --- a/clients/webxr/package-lock.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "webxr", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "webxr", - "version": "1.0.0", - "license": "AGPL3", - "dependencies": { - "xrf": "^0.0.1" - } - }, - "../../../xrfragment/xrf.js": { - "name": "xrf", - "version": "0.0.1", - "extraneous": true, - "license": "MIT" - }, - "node_modules/xrf": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/xrf/-/xrf-0.0.1.tgz", - "integrity": "sha512-uYa8M73z45DRTymga+48gTDEeur+iM3jPktVBnaOHopb17VvZxJ6yZy6TAhMURMrliHB48mYUUSC5J5NRF8wZA==", - "license": "MIT" - } - } -} diff --git a/clients/webxr/package.json b/clients/webxr/package.json deleted file mode 100644 index 6295598..0000000 --- a/clients/webxr/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "webxr", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "build": "npm run build-xrforge", - "build-xrforge": "mkdir -p dist/xrforge && bun build --outdir=dist/xrforge xrforge.html && monolith dist/xrforge/xrforge.html --output dist/xrforge.html" - }, - "author": "Leon van Kammen", - "license": "", - "description": "", - "dependencies": { - "xrf": "^0.0.1" - } -} diff --git a/clients/webxr/xrforge.html b/clients/webxr/xrforge.html deleted file mode 100644 index aa195ec..0000000 --- a/clients/webxr/xrforge.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/manyfold/README.md b/manyfold/README.md index b192394..1ce80fd 100644 --- a/manyfold/README.md +++ b/manyfold/README.md @@ -51,6 +51,7 @@ $ manyfold/cli/manyfold run -v ./experiences:/mnt/experiences | `APPNAME` | `manyfold` | manyfold instance name | | `HOMEPAGE` | `/models` | show '/models' URL as homepage (use `/` for manyfold default) | | `THEME` | `default` | bootstrap theme | +| `AFRAME_VERSION` | `1.7.0` | AFRAME version | | `GODOT_VERSION` | `4.4.1-stable`| godot editor version | | `GODOT_TEMPLATE_ZIP` | `` | godot template zip URL or file (default is empty godot project) | | `RUNTESTS` | `0` | set to `1` to run XRForge related [/test](test) scripts | diff --git a/manyfold/cli/manyfold.sh b/manyfold/cli/manyfold.sh index 5987692..7f9d0c6 100755 --- a/manyfold/cli/manyfold.sh +++ b/manyfold/cli/manyfold.sh @@ -1,10 +1,10 @@ #!/bin/sh oci=$(which podman || which docker) -test -n "$APPNAME" || APPNAME=xrforge -test -n "$UPLOAD_PATH" || UPLOAD_PATH=/mnt/experiences -test -n "$THEME" || THEME=slate -test -n "$HOMEPAGE" || HOMEPAGE=/models -test -n "$GODOT_VERSION" || GODOT_VERSION=4.4.1-stable +test -n "$APPNAME" || export APPNAME=xrforge +test -n "$UPLOAD_PATH" || export UPLOAD_PATH=/mnt/experiences +test -n "$THEME" || export THEME=slate +test -n "$HOMEPAGE" || export HOMEPAGE=/models +test -n "$GODOT_VERSION" || export GODOT_VERSION=4.4.1-stable db=/config/manyfold.sqlite3 # utility funcs diff --git a/manyfold/root/hook.d/boot/aframe.sh b/manyfold/root/hook.d/boot/aframe.sh new file mode 100755 index 0000000..79af8d9 --- /dev/null +++ b/manyfold/root/hook.d/boot/aframe.sh @@ -0,0 +1,20 @@ +#!/bin/sh +test -z "$AFRAME_VERSION" && exit 0 # nothing to do +mkdir /usr/src/app/public/aframe || true +wget "https://aframe.io/releases/${AFRAME_VERSION}/aframe.min.js" -O /usr/src/app/public/aframe/aframe.min.js + +test -f /usr/src/app/public/aframe/index.html || echo ' + + + + + + + + + + + + + +' > /usr/src/app/public/aframe/index.html diff --git a/manyfold/usr/src/app/public/webxr/dist/xrforge.html b/manyfold/usr/src/app/public/webxr/dist/xrforge.html new file mode 100644 index 0000000..0357224 --- /dev/null +++ b/manyfold/usr/src/app/public/webxr/dist/xrforge.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/clients/webxr/dist/xrforge/play-c89r1cs1.svg b/manyfold/usr/src/app/public/webxr/dist/xrforge/play-c89r1cs1.svg similarity index 100% rename from clients/webxr/dist/xrforge/play-c89r1cs1.svg rename to manyfold/usr/src/app/public/webxr/dist/xrforge/play-c89r1cs1.svg diff --git a/clients/webxr/dist/xrforge/xrforge-gent5bnt.js b/manyfold/usr/src/app/public/webxr/dist/xrforge/xrforge-gent5bnt.js similarity index 100% rename from clients/webxr/dist/xrforge/xrforge-gent5bnt.js rename to manyfold/usr/src/app/public/webxr/dist/xrforge/xrforge-gent5bnt.js diff --git a/manyfold/usr/src/app/public/webxr/dist/xrforge/xrforge.html b/manyfold/usr/src/app/public/webxr/dist/xrforge/xrforge.html new file mode 100644 index 0000000..d9fe94c --- /dev/null +++ b/manyfold/usr/src/app/public/webxr/dist/xrforge/xrforge.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/clients/webxr/aframe/index.html b/manyfold/usr/src/app/public/webxr/lib/aframe/index.html similarity index 100% rename from clients/webxr/aframe/index.html rename to manyfold/usr/src/app/public/webxr/lib/aframe/index.html diff --git a/manyfold/usr/src/app/public/webxr/lib/aframe/index.js b/manyfold/usr/src/app/public/webxr/lib/aframe/index.js new file mode 100644 index 0000000..d7725f0 --- /dev/null +++ b/manyfold/usr/src/app/public/webxr/lib/aframe/index.js @@ -0,0 +1,11 @@ + +import * as level0 from 'xrf/level0'; + +function init(){ + let file = document.location.search.substr(1) + import('aframe') // window.AFRAME will be exposed +} + +export {init} +//level0.init(widget) + diff --git a/clients/webxr/aframe/play.svg b/manyfold/usr/src/app/public/webxr/lib/assets/play.svg similarity index 100% rename from clients/webxr/aframe/play.svg rename to manyfold/usr/src/app/public/webxr/lib/assets/play.svg diff --git a/clients/webxr/aframe/plugin.xrforge.js b/manyfold/usr/src/app/public/webxr/lib/xrforge/util.js similarity index 75% rename from clients/webxr/aframe/plugin.xrforge.js rename to manyfold/usr/src/app/public/webxr/lib/xrforge/util.js index 77c1dac..d2dbeb7 100644 --- a/clients/webxr/aframe/plugin.xrforge.js +++ b/manyfold/usr/src/app/public/webxr/lib/xrforge/util.js @@ -1,10 +1,6 @@ -function init(widget){ - inferSource(widget.src) -} - async function inferSource(src){ - response = await fetch(src, { + let response = await fetch(src, { method: 'HEAD' }); @@ -13,15 +9,18 @@ async function inferSource(src){ } // 1. Get the Content-Disposition header value - contentDisposition = response.headers.get('Content-Disposition'); + let contentDisposition = response.headers.get('Content-Disposition'); // 2. Process the value to extract the filename - console.log(widget.src) - widget.src = extractFilename(contentDisposition) - console.log("detected: "+widget.src) + let file = extractFilename(contentDisposition) + let srcParts = src.split("/") + srcParts.pop() + srcParts.push(file) + return srcParts.join("/") } function extractFilename(contentDispositionHeader) { + if( !contentDispositionHeader ) return "" // Check for the preferred 'filename*' (UTF-8 encoded) // This looks for 'filename*=' followed by the encoding and the filename const utf8Match = contentDispositionHeader.match(/filename\*=(?:utf-8|UTF-8)''(.+?)(?:;|$)/i); @@ -41,4 +40,4 @@ function extractFilename(contentDispositionHeader) { return null; } -export { init }; +export { inferSource }; diff --git a/manyfold/usr/src/app/public/webxr/package-lock.json b/manyfold/usr/src/app/public/webxr/package-lock.json new file mode 100644 index 0000000..b391db9 --- /dev/null +++ b/manyfold/usr/src/app/public/webxr/package-lock.json @@ -0,0 +1,754 @@ +{ + "name": "webxr", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "webxr", + "version": "1.0.0", + "dependencies": { + "aframe": "^1.7.1", + "xrf": "^0.0.1" + } + }, + "../../../xrfragment/xrf.js": { + "name": "xrf", + "version": "0.0.1", + "extraneous": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/aframe": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/aframe/-/aframe-1.7.1.tgz", + "integrity": "sha512-dcc7PWI5z8pyJ0s2W0mUd8d83339frgMXhUvWr1yxkdgg6zSExkuQwsSJjiNn7XWKMUUqKYDvV/WzQQRA+OBXA==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "debug": "^4.3.4", + "deep-assign": "^2.0.0", + "load-bmfont": "^1.2.3", + "super-animejs": "^3.1.0", + "three": "npm:super-three@0.173.5", + "three-bmfont-text": "github:dmarcos/three-bmfont-text#eed4878795be9b3e38cf6aec6b903f56acd1f695" + }, + "engines": { + "node": ">= 4.6.0", + "npm": ">= 2.15.9" + } + }, + "node_modules/an-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/an-array/-/an-array-1.0.0.tgz", + "integrity": "sha512-M175GYI7RmsYu24Ok383yZQa3eveDfNnmhTe3OQ3bm70bEovz2gWenH+ST/n32M8lrwLWk74hcPds5CDRPe2wg==", + "license": "MIT" + }, + "node_modules/array-shuffle": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-1.0.1.tgz", + "integrity": "sha512-PBqgo1Y2XWSksBzq3GFPEb798ZrW2snAcmr4drbVeF/6MT/5aBlkGJEvu5A/CzXHf4EjbHOj/ZowatjlIiVidA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/as-number": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/as-number/-/as-number-1.0.0.tgz", + "integrity": "sha512-HkI/zLo2AbSRO4fqVkmyf3hms0bJDs3iboHqTrNuwTiCRvdYXM7HFhfhB6Dk51anV2LM/IMB83mtK9mHw4FlAg==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/centra": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/centra/-/centra-2.7.0.tgz", + "integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-assign": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-2.0.0.tgz", + "integrity": "sha512-2QhG3Kxulu4XIF3WL5C5x0sc/S17JLgm1SfvDfIRsR/5m7ZGmcejII7fZ2RyWhN0UWIJm0TNM/eKow6LAn3evQ==", + "license": "MIT", + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "license": "MIT" + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "license": "BSD-3-Clause" + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/end-of-stream/node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "license": "MIT" + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "license": "MIT" + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/layout-bmfont-text": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/layout-bmfont-text/-/layout-bmfont-text-1.3.4.tgz", + "integrity": "sha512-mceomHZ8W7pSKQhTdLvOe1Im4n37u8xa5Gr0J3KPCHRMO/9o7+goWIOzZcUUd+Xgzy3+22bvoIQ0OaN3LRtgaw==", + "license": "MIT", + "dependencies": { + "as-number": "^1.0.0", + "word-wrapper": "^1.0.7", + "xtend": "^4.0.0" + } + }, + "node_modules/load-bmfont": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.2.tgz", + "integrity": "sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==", + "license": "MIT", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^3.7.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "license": "MIT", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/new-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz", + "integrity": "sha512-K5AyFYbuHZ4e/ti52y7k18q8UHsS78FlRd85w2Fmsd6AkuLipDihPflKC0p3PN5i8II7+uHxo+CtkLiJDfmS5A==", + "license": "MIT" + }, + "node_modules/nice-color-palettes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-3.0.0.tgz", + "integrity": "sha512-lL4AjabAAFi313tjrtmgm/bxCRzp4l3vCshojfV/ij3IPdtnRqv6Chcw+SqJUhbe7g3o3BecaqCJYUNLswGBhQ==", + "license": "MIT", + "dependencies": { + "got": "^9.2.2", + "map-limit": "0.0.1", + "minimist": "^1.2.0", + "new-array": "^1.0.0" + }, + "bin": { + "nice-color-palettes": "bin/index.js" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==", + "license": "MIT" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==", + "license": "MIT" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "license": "MIT", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, + "node_modules/parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", + "license": "MIT" + }, + "node_modules/phin": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/phin/-/phin-3.7.1.tgz", + "integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==", + "license": "MIT", + "dependencies": { + "centra": "^2.7.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/quad-indices": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/quad-indices/-/quad-indices-2.0.1.tgz", + "integrity": "sha512-6jtmCsEbGAh5npThXrBaubbTjPcF0rMbn57XCJVI7LkW8PUT56V+uIrRCCWCn85PSgJC9v8Pm5tnJDwmOBewvA==", + "license": "MIT", + "dependencies": { + "an-array": "^1.0.0", + "dtype": "^2.0.0", + "is-buffer": "^1.0.2" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, + "node_modules/super-animejs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/super-animejs/-/super-animejs-3.1.0.tgz", + "integrity": "sha512-6MFAFJDRuvwkovxQZPruuyHinTa4rgj4hNLOndjcYYhZLckoXtVRY9rJPuq8p6c/tgZJrFYEAYAfJ2/hhNtUCA==", + "license": "MIT" + }, + "node_modules/three": { + "name": "super-three", + "version": "0.173.5", + "resolved": "https://registry.npmjs.org/super-three/-/super-three-0.173.5.tgz", + "integrity": "sha512-ecjojbhUg/5QrixwqF4s6gvtJap9XQz7TcnFUX/J8Yosgb2eE2ZUqsyqr/JczFG//6hwIaZPeAa9M5DNaM1dmQ==", + "license": "MIT" + }, + "node_modules/three-bmfont-text": { + "version": "3.0.0", + "resolved": "git+ssh://git@github.com/dmarcos/three-bmfont-text.git#eed4878795be9b3e38cf6aec6b903f56acd1f695", + "integrity": "sha512-FDlyR8SyHQ0Ek38qBx5Hg/AwPuBI/1w/QWpMgzw19Vn81xsDNFTOXJpU0HcvI78C72wwXjJ3T7+EX7k2geDV4Q==", + "license": "MIT", + "dependencies": { + "array-shuffle": "^1.0.1", + "layout-bmfont-text": "^1.2.0", + "nice-color-palettes": "^3.0.0", + "quad-indices": "^2.0.1" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/word-wrapper": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/word-wrapper/-/word-wrapper-1.0.7.tgz", + "integrity": "sha512-VOPBFCm9b6FyYKQYfn9AVn2dQvdR/YOVFV6IBRA1TBMJWKffvhEX1af6FMGrttILs2Q9ikCRhLqkbY2weW6dOQ==", + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "license": "MIT", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==", + "license": "MIT" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xrf": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/xrf/-/xrf-0.0.1.tgz", + "integrity": "sha512-uYa8M73z45DRTymga+48gTDEeur+iM3jPktVBnaOHopb17VvZxJ6yZy6TAhMURMrliHB48mYUUSC5J5NRF8wZA==", + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + } + } +} diff --git a/manyfold/usr/src/app/public/webxr/package.json b/manyfold/usr/src/app/public/webxr/package.json new file mode 100644 index 0000000..228367e --- /dev/null +++ b/manyfold/usr/src/app/public/webxr/package.json @@ -0,0 +1,16 @@ +{ + "name": "webxr", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "build": "echo -e \"hint: pass bun args via: BARG='--minify' npm run build'\n\n\" && BARG=$BARG npm run build-xrforge", + "build-xrforge": "mkdir -p dist/xrforge && bun build ${BARG} --outdir=dist/xrforge xrforge.html && monolith dist/xrforge/xrforge.html --output dist/xrforge.html && sed -i 's|data:module|data:text/javascript;|g' dist/xrforge.html # https://github.com/Y2Z/monolith/issues/474 " + }, + "author": "Leon van Kammen", + "license": "", + "description": "", + "dependencies": { + "aframe": "^1.7.1", + "xrf": "^0.0.1" + } +} diff --git a/clients/webxr/shell.nix b/manyfold/usr/src/app/public/webxr/shell.nix similarity index 100% rename from clients/webxr/shell.nix rename to manyfold/usr/src/app/public/webxr/shell.nix diff --git a/manyfold/usr/src/app/public/webxr/xrforge.html b/manyfold/usr/src/app/public/webxr/xrforge.html new file mode 100644 index 0000000..5e70064 --- /dev/null +++ b/manyfold/usr/src/app/public/webxr/xrforge.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + +