diff --git a/.babelrc b/.babelrc
index 71ffb40c..10b220fe 100644
--- a/.babelrc
+++ b/.babelrc
@@ -7,8 +7,5 @@
"corejs": 3
}
]
- ],
- "plugins": [
- "@babel/plugin-proposal-class-properties"
]
}
diff --git a/assets/styles/fonts.css b/assets/styles/fonts.css
index 7cc9488b..4e92a223 100644
--- a/assets/styles/fonts.css
+++ b/assets/styles/fonts.css
@@ -25,6 +25,12 @@
src: url('../fonts/Asterisk.woff2');
}
+@font-face {
+ font-family: 'Burbank Big Regular';
+ font-weight: bold;
+ src: url('../fonts/Burbank Big Regular Bold.woff2');
+}
+
@font-face {
font-family: 'Burbank Small';
src: url('../fonts/Burbank Small Medium.woff2');
@@ -41,6 +47,12 @@
src: url('../fonts/CCComicrazy-Roman.woff2');
}
+@font-face {
+ font-family: 'CCComiccrazy Bold';
+ font-weight: bold;
+ src: url('../fonts/CCComicrazy_Bold.woff2');
+}
+
@font-face {
font-family: 'CCFaceFront';
src: url('../fonts/CCFaceFront.woff2');
diff --git a/index.html b/index.html
index 23c7df77..e656f99c 100644
--- a/index.html
+++ b/index.html
@@ -18,7 +18,7 @@
-
+
diff --git a/package-lock.json b/package-lock.json
index 182da504..a5b980ca 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,29 +1,29 @@
{
"name": "yukon",
- "version": "1.5.0-beta",
+ "version": "1.6.0-beta",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "yukon",
- "version": "1.5.0-beta",
+ "version": "1.6.0-beta",
"license": "MIT",
"devDependencies": {
- "@babel/core": "^7.20.2",
- "@babel/preset-env": "^7.20.2",
- "babel-loader": "^8.3.0",
+ "@babel/core": "^7.23.2",
+ "@babel/preset-env": "^7.23.2",
+ "babel-loader": "^9.1.3",
"compression-webpack-plugin": "^10.0.0",
- "core-js": "^3.26.0",
- "howler": "^2.2.3",
- "html-webpack-plugin": "^5.5.0",
- "javascript-obfuscator": "^4.0.0",
- "phasereditor2d-launcher": "^3.35.1",
+ "core-js": "^3.33.0",
+ "howler": "^2.2.4",
+ "html-webpack-plugin": "^5.5.3",
+ "javascript-obfuscator": "^4.1.0",
+ "phasereditor2d-launcher": "^3.63.0",
"phasereditor2d-ninepatch-plugin": "^1.2.0",
- "socket.io-client": "^4.5.3",
+ "socket.io-client": "^4.7.2",
"source-map": "^0.7.4",
- "webpack": "^5.74.0",
- "webpack-cli": "^4.10.0",
- "webpack-dev-server": "^4.11.1",
+ "webpack": "^5.89.0",
+ "webpack-cli": "^5.1.4",
+ "webpack-dev-server": "^4.15.1",
"webpack-obfuscator": "^3.5.1"
}
},
@@ -41,47 +41,48 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.18.6"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/compat-data": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz",
- "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz",
+ "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz",
- "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.2",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-module-transforms": "^7.20.2",
- "@babel/helpers": "^7.20.1",
- "@babel/parser": "^7.20.2",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.2",
- "convert-source-map": "^1.7.0",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz",
+ "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==",
+ "dev": true,
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.23.0",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helpers": "^7.23.2",
+ "@babel/parser": "^7.23.0",
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.2",
+ "@babel/types": "^7.23.0",
+ "convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -92,13 +93,14 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.2.tgz",
- "integrity": "sha512-SD75PMIK6i9H8G/tfGvB4KKl4Nw6Ssos9nGgYwxbgyTP0iX/Z55DveoH86rmUB/YHTQQ+ZC0F7xxaY8l2OF44Q==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
+ "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.20.2",
+ "@babel/types": "^7.23.0",
"@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
},
"engines": {
@@ -106,9 +108,9 @@
}
},
"node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
@@ -120,61 +122,60 @@
}
},
"node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
- "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
- "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
"dev": true,
"dependencies": {
- "@babel/helper-explode-assignable-expression": "^7.18.6",
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
- "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
+ "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.20.0",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.21.3",
- "semver": "^6.3.0"
+ "@babel/compat-data": "^7.22.9",
+ "@babel/helper-validator-option": "^7.22.15",
+ "browserslist": "^4.21.9",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.18.13",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz",
- "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==",
"dev": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.9",
- "@babel/helper-split-export-declaration": "^7.18.6"
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -184,13 +185,14 @@
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz",
- "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
"dev": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "regexpu-core": "^5.1.0"
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -200,142 +202,128 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
- "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz",
+ "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==",
"dev": true,
"dependencies": {
- "@babel/helper-compilation-targets": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
"debug": "^4.1.1",
"lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2",
- "semver": "^6.1.2"
+ "resolve": "^1.14.2"
},
"peerDependencies": {
- "@babel/core": "^7.4.0-0"
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-explode-assignable-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
- "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
- "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.23.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
- "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz",
+ "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==",
"dev": true,
"dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.20.2",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.2"
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
},
"engines": {
"node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
- "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
- "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
- "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
"dev": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-wrap-function": "^7.18.9",
- "@babel/types": "^7.18.9"
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
},
"engines": {
"node": ">=6.9.0"
@@ -345,121 +333,121 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
- "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
"dev": true,
"dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/traverse": "^7.19.1",
- "@babel/types": "^7.19.0"
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
- "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.20.2"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
- "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
+ "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.18.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz",
- "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
"dev": true,
"dependencies": {
- "@babel/helper-function-name": "^7.18.9",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.18.11",
- "@babel/types": "^7.18.10"
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz",
- "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
+ "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.0"
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.2",
+ "@babel/types": "^7.23.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"engines": {
@@ -467,9 +455,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.2.tgz",
- "integrity": "sha512-afk318kh2uKbo7BEj2QtEi8HVCGrwHUffrYDy7dgVcSa2j9lY3LDjPzcyGdpX7xgm35aWqvciZJ4WKmdF/SxYg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -479,12 +467,12 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
- "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz",
+ "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -494,14 +482,14 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz",
+ "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
@@ -510,17 +498,11 @@
"@babel/core": "^7.13.0"
}
},
- "node_modules/@babel/plugin-proposal-async-generator-functions": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz",
- "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==",
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
"dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-remap-async-to-generator": "^7.18.9",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- },
"engines": {
"node": ">=6.9.0"
},
@@ -528,47 +510,37 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-class-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
- "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-class-static-block": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
- "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@babel/helper-plugin-utils": "^7.12.13"
},
"peerDependencies": {
- "@babel/core": "^7.12.0"
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-dynamic-import": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
- "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
+ "node_modules/@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.14.5"
},
"engines": {
"node": ">=6.9.0"
@@ -577,46 +549,37 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-export-namespace-from": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
- "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-json-strings": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
- "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
+ "node_modules/@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@babel/helper-plugin-utils": "^7.8.3"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
- "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
+ "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -625,14 +588,13 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
- "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
+ "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -641,82 +603,109 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-numeric-separator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
- "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.10.4"
},
- "engines": {
- "node": ">=6.9.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz",
- "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==",
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.20.1",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.20.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
},
- "engines": {
- "node": ">=6.9.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
- "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.10.4"
},
- "engines": {
- "node": ">=6.9.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=6.9.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-private-methods": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
- "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.14.5"
},
"engines": {
"node": ">=6.9.0"
@@ -725,16 +714,13 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
- "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
"dev": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.14.5"
},
"engines": {
"node": ">=6.9.0"
@@ -743,53 +729,47 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-unicode-property-regex": {
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
- "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
"dev": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
},
"engines": {
- "node": ">=4"
+ "node": ">=6.9.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
+ "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz",
+ "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
},
"engines": {
"node": ">=6.9.0"
@@ -798,37 +778,45 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
+ "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-module-imports": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
+ "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
- "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz",
+ "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -837,97 +825,132 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
+ "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz",
+ "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.12.0"
}
},
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz",
+ "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.9",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
+ "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz",
+ "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
+ "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
+ "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz",
+ "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
@@ -936,13 +959,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
+ "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -951,13 +975,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
- "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz",
+ "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
@@ -966,15 +991,13 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
- "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz",
+ "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==",
"dev": true,
"dependencies": {
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-remap-async-to-generator": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -983,13 +1006,15 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
- "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
+ "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-compilation-targets": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -998,13 +1023,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz",
- "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==",
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz",
+ "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.20.2"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1013,21 +1039,13 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz",
- "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/helper-replace-supers": "^7.19.1",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "globals": "^11.1.0"
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
+ "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1036,13 +1054,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
- "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz",
+ "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
},
"engines": {
"node": ">=6.9.0"
@@ -1051,13 +1070,13 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz",
- "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==",
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
+ "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.20.2"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1066,14 +1085,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
- "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz",
+ "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1082,13 +1101,15 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
- "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz",
+ "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1097,14 +1118,16 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
- "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz",
+ "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==",
"dev": true,
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20"
},
"engines": {
"node": ">=6.9.0"
@@ -1113,13 +1136,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
- "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
+ "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-module-transforms": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1128,30 +1152,29 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
- "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
"dev": true,
"dependencies": {
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
- "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
+ "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1160,13 +1183,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
- "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz",
+ "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1175,14 +1199,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz",
- "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==",
+ "node_modules/@babel/plugin-transform-numeric-separator": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz",
+ "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
},
"engines": {
"node": ">=6.9.0"
@@ -1191,15 +1215,17 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz",
- "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==",
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz",
+ "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-simple-access": "^7.19.4"
+ "@babel/compat-data": "^7.22.9",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
@@ -1208,16 +1234,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz",
- "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==",
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
+ "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
"dev": true,
"dependencies": {
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-validator-identifier": "^7.19.1"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1226,14 +1250,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
- "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz",
+ "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1242,29 +1266,30 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz",
- "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==",
+ "node_modules/@babel/plugin-transform-optional-chaining": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz",
+ "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
- "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz",
+ "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1273,14 +1298,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
- "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
+ "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.6"
+ "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1289,13 +1314,16 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz",
- "integrity": "sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ==",
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz",
+ "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1305,12 +1333,12 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
- "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
+ "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1320,13 +1348,13 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
- "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
+ "version": "7.22.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
+ "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "regenerator-transform": "^0.15.0"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
},
"engines": {
"node": ">=6.9.0"
@@ -1336,12 +1364,12 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
- "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
+ "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1351,12 +1379,12 @@
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
- "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
+ "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1366,13 +1394,13 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz",
- "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
+ "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1382,12 +1410,12 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
- "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
+ "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1397,12 +1425,12 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
- "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
+ "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1412,12 +1440,12 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
- "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
+ "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1427,12 +1455,28 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
- "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
+ "version": "7.22.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
+ "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
+ "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1442,13 +1486,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
- "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
+ "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1457,39 +1501,43 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
+ "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/preset-env": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz",
- "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.20.1",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/helper-validator-option": "^7.18.6",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-async-generator-functions": "^7.20.1",
- "@babel/plugin-proposal-class-properties": "^7.18.6",
- "@babel/plugin-proposal-class-static-block": "^7.18.6",
- "@babel/plugin-proposal-dynamic-import": "^7.18.6",
- "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
- "@babel/plugin-proposal-json-strings": "^7.18.6",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
- "@babel/plugin-proposal-numeric-separator": "^7.18.6",
- "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
- "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-private-methods": "^7.18.6",
- "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
- "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz",
+ "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.23.2",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.20.0",
+ "@babel/plugin-syntax-import-assertions": "^7.22.5",
+ "@babel/plugin-syntax-import-attributes": "^7.22.5",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -1499,45 +1547,62 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.18.6",
- "@babel/plugin-transform-async-to-generator": "^7.18.6",
- "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
- "@babel/plugin-transform-block-scoping": "^7.20.2",
- "@babel/plugin-transform-classes": "^7.20.2",
- "@babel/plugin-transform-computed-properties": "^7.18.9",
- "@babel/plugin-transform-destructuring": "^7.20.2",
- "@babel/plugin-transform-dotall-regex": "^7.18.6",
- "@babel/plugin-transform-duplicate-keys": "^7.18.9",
- "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
- "@babel/plugin-transform-for-of": "^7.18.8",
- "@babel/plugin-transform-function-name": "^7.18.9",
- "@babel/plugin-transform-literals": "^7.18.9",
- "@babel/plugin-transform-member-expression-literals": "^7.18.6",
- "@babel/plugin-transform-modules-amd": "^7.19.6",
- "@babel/plugin-transform-modules-commonjs": "^7.19.6",
- "@babel/plugin-transform-modules-systemjs": "^7.19.6",
- "@babel/plugin-transform-modules-umd": "^7.18.6",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1",
- "@babel/plugin-transform-new-target": "^7.18.6",
- "@babel/plugin-transform-object-super": "^7.18.6",
- "@babel/plugin-transform-parameters": "^7.20.1",
- "@babel/plugin-transform-property-literals": "^7.18.6",
- "@babel/plugin-transform-regenerator": "^7.18.6",
- "@babel/plugin-transform-reserved-words": "^7.18.6",
- "@babel/plugin-transform-shorthand-properties": "^7.18.6",
- "@babel/plugin-transform-spread": "^7.19.0",
- "@babel/plugin-transform-sticky-regex": "^7.18.6",
- "@babel/plugin-transform-template-literals": "^7.18.9",
- "@babel/plugin-transform-typeof-symbol": "^7.18.9",
- "@babel/plugin-transform-unicode-escapes": "^7.18.10",
- "@babel/plugin-transform-unicode-regex": "^7.18.6",
- "@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.20.2",
- "babel-plugin-polyfill-corejs2": "^0.3.3",
- "babel-plugin-polyfill-corejs3": "^0.6.0",
- "babel-plugin-polyfill-regenerator": "^0.4.1",
- "core-js-compat": "^3.25.1",
- "semver": "^6.3.0"
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.22.5",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.2",
+ "@babel/plugin-transform-async-to-generator": "^7.22.5",
+ "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
+ "@babel/plugin-transform-block-scoping": "^7.23.0",
+ "@babel/plugin-transform-class-properties": "^7.22.5",
+ "@babel/plugin-transform-class-static-block": "^7.22.11",
+ "@babel/plugin-transform-classes": "^7.22.15",
+ "@babel/plugin-transform-computed-properties": "^7.22.5",
+ "@babel/plugin-transform-destructuring": "^7.23.0",
+ "@babel/plugin-transform-dotall-regex": "^7.22.5",
+ "@babel/plugin-transform-duplicate-keys": "^7.22.5",
+ "@babel/plugin-transform-dynamic-import": "^7.22.11",
+ "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
+ "@babel/plugin-transform-export-namespace-from": "^7.22.11",
+ "@babel/plugin-transform-for-of": "^7.22.15",
+ "@babel/plugin-transform-function-name": "^7.22.5",
+ "@babel/plugin-transform-json-strings": "^7.22.11",
+ "@babel/plugin-transform-literals": "^7.22.5",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.22.11",
+ "@babel/plugin-transform-member-expression-literals": "^7.22.5",
+ "@babel/plugin-transform-modules-amd": "^7.23.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.0",
+ "@babel/plugin-transform-modules-umd": "^7.22.5",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.22.5",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11",
+ "@babel/plugin-transform-numeric-separator": "^7.22.11",
+ "@babel/plugin-transform-object-rest-spread": "^7.22.15",
+ "@babel/plugin-transform-object-super": "^7.22.5",
+ "@babel/plugin-transform-optional-catch-binding": "^7.22.11",
+ "@babel/plugin-transform-optional-chaining": "^7.23.0",
+ "@babel/plugin-transform-parameters": "^7.22.15",
+ "@babel/plugin-transform-private-methods": "^7.22.5",
+ "@babel/plugin-transform-private-property-in-object": "^7.22.11",
+ "@babel/plugin-transform-property-literals": "^7.22.5",
+ "@babel/plugin-transform-regenerator": "^7.22.10",
+ "@babel/plugin-transform-reserved-words": "^7.22.5",
+ "@babel/plugin-transform-shorthand-properties": "^7.22.5",
+ "@babel/plugin-transform-spread": "^7.22.5",
+ "@babel/plugin-transform-sticky-regex": "^7.22.5",
+ "@babel/plugin-transform-template-literals": "^7.22.5",
+ "@babel/plugin-transform-typeof-symbol": "^7.22.5",
+ "@babel/plugin-transform-unicode-escapes": "^7.22.10",
+ "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
+ "@babel/plugin-transform-unicode-regex": "^7.22.5",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "@babel/types": "^7.23.0",
+ "babel-plugin-polyfill-corejs2": "^0.4.6",
+ "babel-plugin-polyfill-corejs3": "^0.8.5",
+ "babel-plugin-polyfill-regenerator": "^0.5.3",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1547,61 +1612,65 @@
}
},
"node_modules/@babel/preset-modules": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
- "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
"@babel/types": "^7.4.4",
"esutils": "^2.0.2"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
}
},
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
+ "dev": true
+ },
"node_modules/@babel/runtime": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
- "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
+ "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
"dev": true,
"dependencies": {
- "regenerator-runtime": "^0.13.4"
+ "regenerator-runtime": "^0.14.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz",
- "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.1",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.1",
- "@babel/types": "^7.20.0",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
+ "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.23.0",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.0",
+ "@babel/types": "^7.23.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -1610,13 +1679,13 @@
}
},
"node_modules/@babel/types": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz",
- "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
"dev": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -1701,9 +1770,9 @@
}
},
"node_modules/@jridgewell/source-map": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
- "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
+ "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.0",
@@ -1711,9 +1780,9 @@
}
},
"node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
@@ -1731,13 +1800,13 @@
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
- "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
"dev": true,
"dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@leichtgewicht/ip-codec": {
@@ -1811,9 +1880,9 @@
}
},
"node_modules/@types/estree": {
- "version": "0.0.51",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
- "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz",
+ "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==",
"dev": true
},
"node_modules/@types/express": {
@@ -1924,190 +1993,204 @@
"@types/node": "*"
}
},
+ "node_modules/@types/validator": {
+ "version": "13.11.5",
+ "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.5.tgz",
+ "integrity": "sha512-xW4qsT4UIYILu+7ZrBnfQdBYniZrMLYYK3wN9M/NdeIHgBN5pZI2/8Q7UfdWIcr5RLJv/OGENsx91JIpUUoC7Q==",
+ "dev": true
+ },
"node_modules/@types/ws": {
- "version": "8.5.3",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
- "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.8.tgz",
+ "integrity": "sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@webassemblyjs/ast": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
- "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
+ "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
"dev": true,
"dependencies": {
- "@webassemblyjs/helper-numbers": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ "@webassemblyjs/helper-numbers": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
}
},
"node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
- "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
+ "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
"dev": true
},
"node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
- "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
+ "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
"dev": true
},
"node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
- "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
+ "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
"dev": true
},
"node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
- "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
+ "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
"dev": true,
"dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/floating-point-hex-parser": "1.11.6",
+ "@webassemblyjs/helper-api-error": "1.11.6",
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
- "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
+ "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
"dev": true
},
"node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
- "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
+ "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6"
}
},
"node_modules/@webassemblyjs/ieee754": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
- "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
+ "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
"dev": true,
"dependencies": {
"@xtuc/ieee754": "^1.2.0"
}
},
"node_modules/@webassemblyjs/leb128": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
- "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
+ "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
"dev": true,
"dependencies": {
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webassemblyjs/utf8": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
- "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
+ "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
"dev": true
},
"node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
- "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
+ "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/helper-wasm-section": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-opt": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
- "@webassemblyjs/wast-printer": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/helper-wasm-section": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6",
+ "@webassemblyjs/wasm-opt": "1.11.6",
+ "@webassemblyjs/wasm-parser": "1.11.6",
+ "@webassemblyjs/wast-printer": "1.11.6"
}
},
"node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
- "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
+ "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
}
},
"node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
- "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
+ "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6",
+ "@webassemblyjs/wasm-parser": "1.11.6"
}
},
"node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
- "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
+ "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-api-error": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
}
},
"node_modules/@webassemblyjs/wast-printer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
- "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
+ "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/ast": "1.11.6",
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webpack-cli/configtest": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz",
- "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
+ "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
"dev": true,
+ "engines": {
+ "node": ">=14.15.0"
+ },
"peerDependencies": {
- "webpack": "4.x.x || 5.x.x",
- "webpack-cli": "4.x.x"
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
}
},
"node_modules/@webpack-cli/info": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz",
- "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
+ "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
"dev": true,
- "dependencies": {
- "envinfo": "^7.7.3"
+ "engines": {
+ "node": ">=14.15.0"
},
"peerDependencies": {
- "webpack-cli": "4.x.x"
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
}
},
"node_modules/@webpack-cli/serve": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz",
- "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
+ "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
"dev": true,
+ "engines": {
+ "node": ">=14.15.0"
+ },
"peerDependencies": {
- "webpack-cli": "4.x.x"
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
},
"peerDependenciesMeta": {
"webpack-dev-server": {
@@ -2141,9 +2224,9 @@
}
},
"node_modules/acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -2153,9 +2236,9 @@
}
},
"node_modules/acorn-import-assertions": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
- "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
+ "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
"dev": true,
"peerDependencies": {
"acorn": "^8"
@@ -2171,14 +2254,14 @@
}
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
"uri-js": "^4.2.2"
},
"funding": {
@@ -2203,35 +2286,16 @@
}
}
},
- "node_modules/ajv-formats/node_modules/ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"dev": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
+ "fast-deep-equal": "^3.1.3"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
"peerDependencies": {
- "ajv": "^6.9.1"
+ "ajv": "^8.8.2"
}
},
"node_modules/amdefine": {
@@ -2347,61 +2411,59 @@
}
},
"node_modules/babel-loader": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
- "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
+ "version": "9.1.3",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz",
+ "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==",
"dev": true,
"dependencies": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.0",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
+ "find-cache-dir": "^4.0.0",
+ "schema-utils": "^4.0.0"
},
"engines": {
- "node": ">= 8.9"
+ "node": ">= 14.15.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0",
- "webpack": ">=2"
+ "@babel/core": "^7.12.0",
+ "webpack": ">=5"
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz",
- "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==",
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz",
+ "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.17.7",
- "@babel/helper-define-polyfill-provider": "^0.3.3",
- "semver": "^6.1.1"
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.4.3",
+ "semver": "^6.3.1"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz",
- "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==",
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz",
+ "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==",
"dev": true,
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.3.3",
- "core-js-compat": "^3.25.1"
+ "@babel/helper-define-polyfill-provider": "^0.4.3",
+ "core-js-compat": "^3.32.2"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz",
- "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz",
+ "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==",
"dev": true,
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.3.3"
+ "@babel/helper-define-polyfill-provider": "^0.4.3"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/balanced-match": {
@@ -2523,9 +2585,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz",
+ "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==",
"dev": true,
"funding": [
{
@@ -2535,13 +2597,17 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001541",
+ "electron-to-chromium": "^1.4.535",
+ "node-releases": "^2.0.13",
+ "update-browserslist-db": "^1.0.13"
},
"bin": {
"browserslist": "cli.js"
@@ -2589,9 +2655,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001430",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz",
- "integrity": "sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==",
+ "version": "1.0.30001550",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001550.tgz",
+ "integrity": "sha512-p82WjBYIypO0ukTsd/FG3Xxs+4tFeaY9pfT4amQL8KWtYH7H9nYwReGAbMTJ0hsmRO8IfDtsS6p3ZWj8+1c2RQ==",
"dev": true,
"funding": [
{
@@ -2601,6 +2667,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
]
},
@@ -2619,9 +2689,9 @@
}
},
"node_modules/chance": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.8.tgz",
- "integrity": "sha512-v7fi5Hj2VbR6dJEGRWLmJBA83LJMS47pkAbmROFxHWd9qmE1esHRZW8Clf1Fhzr3rjxnNZVCjOEv/ivFxeIMtg==",
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.9.tgz",
+ "integrity": "sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==",
"dev": true
},
"node_modules/char-regex": {
@@ -2679,12 +2749,13 @@
}
},
"node_modules/class-validator": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz",
- "integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==",
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz",
+ "integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==",
"dev": true,
"dependencies": {
- "libphonenumber-js": "^1.9.43",
+ "@types/validator": "^13.7.10",
+ "libphonenumber-js": "^1.10.14",
"validator": "^13.7.0"
}
},
@@ -2753,10 +2824,10 @@
"node": ">= 12"
}
},
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "node_modules/common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
"dev": true
},
"node_modules/compressible": {
@@ -2809,59 +2880,6 @@
"webpack": "^5.1.0"
}
},
- "node_modules/compression-webpack-plugin/node_modules/ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/compression-webpack-plugin/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/compression-webpack-plugin/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/compression-webpack-plugin/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/compression/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -2934,13 +2952,10 @@
}
},
"node_modules/convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.1"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
},
"node_modules/cookie": {
"version": "0.5.0",
@@ -2958,9 +2973,9 @@
"dev": true
},
"node_modules/core-js": {
- "version": "3.26.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz",
- "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==",
+ "version": "3.33.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.0.tgz",
+ "integrity": "sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==",
"dev": true,
"hasInstallScript": true,
"funding": {
@@ -2969,12 +2984,12 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.26.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz",
- "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==",
+ "version": "3.33.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.0.tgz",
+ "integrity": "sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==",
"dev": true,
"dependencies": {
- "browserslist": "^4.21.4"
+ "browserslist": "^4.22.1"
},
"funding": {
"type": "opencollective",
@@ -3222,9 +3237,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "version": "1.4.558",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.558.tgz",
+ "integrity": "sha512-j9IcGmfkyN5MBH/0Xzg45GDHasXsnwEJDM6Xnr9H7GlGUni+JH4q6xp6Nk7NV5LjTmoEFBqhILIqg1McJrv6uA==",
"dev": true
},
"node_modules/emojis-list": {
@@ -3246,31 +3261,31 @@
}
},
"node_modules/engine.io-client": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz",
- "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz",
+ "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==",
"dev": true,
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
- "engine.io-parser": "~5.0.3",
- "ws": "~8.2.3",
+ "engine.io-parser": "~5.2.1",
+ "ws": "~8.11.0",
"xmlhttprequest-ssl": "~2.0.0"
}
},
"node_modules/engine.io-parser": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
- "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz",
+ "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==",
"dev": true,
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/enhanced-resolve": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
- "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==",
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
+ "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.4",
@@ -3290,9 +3305,9 @@
}
},
"node_modules/envinfo": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
- "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz",
+ "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==",
"dev": true,
"bin": {
"envinfo": "dist/cli.js"
@@ -3339,9 +3354,9 @@
}
},
"node_modules/es-module-lexer": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
- "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz",
+ "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==",
"dev": true
},
"node_modules/es-to-primitive": {
@@ -3392,9 +3407,9 @@
}
},
"node_modules/eslint-scope": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
- "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
@@ -3405,9 +3420,9 @@
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz",
- "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3671,20 +3686,104 @@
"dev": true
},
"node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
+ "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
"dev": true,
"dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
+ "common-path-prefix": "^3.0.0",
+ "pkg-dir": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^6.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
+ "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=14.16"
},
"funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-up": {
@@ -3995,9 +4094,9 @@
}
},
"node_modules/howler": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/howler/-/howler-2.2.3.tgz",
- "integrity": "sha512-QM0FFkw0LRX1PR8pNzJVAY25JhIWvbKMBFM4gqk+QdV+kPXOhleWGCB6AiAF/goGjIHK2e/nIElplvjQwhr0jg==",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/howler/-/howler-2.2.4.tgz",
+ "integrity": "sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w==",
"dev": true
},
"node_modules/hpack.js": {
@@ -4064,9 +4163,9 @@
}
},
"node_modules/html-webpack-plugin": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
- "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==",
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz",
+ "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==",
"dev": true,
"dependencies": {
"@types/html-minifier-terser": "^6.0.0",
@@ -4242,12 +4341,12 @@
}
},
"node_modules/interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
+ "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
"dev": true,
"engines": {
- "node": ">= 0.10"
+ "node": ">=10.13.0"
}
},
"node_modules/inversify": {
@@ -4340,9 +4439,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
+ "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
"dev": true,
"dependencies": {
"has": "^1.0.3"
@@ -4628,27 +4727,27 @@
}
},
"node_modules/javascript-obfuscator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.0.0.tgz",
- "integrity": "sha512-vS/8w/9eKISzwXNLd+OLMCCwjD+dFMdOlCDOo919iR/MWdBs+7u1ybpwRoWOmODToPQKVYw5GasvZoIiPs5nPw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.1.0.tgz",
+ "integrity": "sha512-ckC0VFKQ0/sFtLH9apW/ZLfsP8LuZqZhVEM4VTJ5KLzyLaodW6C1lTU8808eboDmddKyvd2uyRx5bzc0Me0GYg==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
"@javascript-obfuscator/escodegen": "2.3.0",
"@javascript-obfuscator/estraverse": "5.4.0",
- "acorn": "8.7.0",
+ "acorn": "8.8.2",
"assert": "2.0.0",
"chalk": "4.1.2",
- "chance": "1.1.8",
- "class-validator": "0.13.2",
- "commander": "9.0.0",
- "eslint-scope": "7.1.0",
- "eslint-visitor-keys": "3.2.0",
+ "chance": "1.1.9",
+ "class-validator": "0.14.0",
+ "commander": "10.0.0",
+ "eslint-scope": "7.1.1",
+ "eslint-visitor-keys": "3.3.0",
"fast-deep-equal": "3.1.3",
"inversify": "6.0.1",
"js-string-escape": "1.0.1",
"md5": "2.3.0",
- "mkdirp": "1.0.4",
+ "mkdirp": "2.1.3",
"multimatch": "5.0.0",
"opencollective-postinstall": "2.0.3",
"process": "0.11.10",
@@ -4656,13 +4755,13 @@
"source-map-support": "0.5.21",
"string-template": "1.0.0",
"stringz": "2.1.0",
- "tslib": "2.3.1"
+ "tslib": "2.5.0"
},
"bin": {
"javascript-obfuscator": "bin/javascript-obfuscator"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^12.22.0 || ^14.0.0 || ^16.0.0 || ^17.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
@@ -4719,12 +4818,12 @@
"dev": true
},
"node_modules/javascript-obfuscator/node_modules/commander": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz",
- "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
+ "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
"dev": true,
"engines": {
- "node": "^12.20.0 || >=14"
+ "node": ">=14"
}
},
"node_modules/javascript-obfuscator/node_modules/has-flag": {
@@ -4748,12 +4847,6 @@
"node": ">=8"
}
},
- "node_modules/javascript-obfuscator/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
- "dev": true
- },
"node_modules/jest-worker": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
@@ -4826,15 +4919,15 @@
"dev": true
},
"node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
"node_modules/json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"bin": {
"json5": "lib/cli.js"
@@ -4852,6 +4945,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/launch-editor": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz",
+ "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^1.0.0",
+ "shell-quote": "^1.8.1"
+ }
+ },
"node_modules/levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -4866,9 +4969,9 @@
}
},
"node_modules/libphonenumber-js": {
- "version": "1.10.13",
- "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz",
- "integrity": "sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q==",
+ "version": "1.10.48",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.48.tgz",
+ "integrity": "sha512-Vvcgt4+o8+puIBJZLdMshPYx9nRN3/kTT7HPtOyfYrSQuN9PGBF1KUv0g07fjNzt4E4GuA7FnsLb+WeAMzyRQg==",
"dev": true
},
"node_modules/loader-runner": {
@@ -4881,9 +4984,9 @@
}
},
"node_modules/loader-utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz",
- "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
"dependencies": {
"big.js": "^5.2.2",
@@ -4927,19 +5030,13 @@
"tslib": "^2.0.3"
}
},
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "yallist": "^3.0.2"
}
},
"node_modules/md5": {
@@ -5069,15 +5166,18 @@
}
},
"node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz",
+ "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==",
"dev": true,
"bin": {
- "mkdirp": "bin/cmd.js"
+ "mkdirp": "dist/cjs/src/bin.js"
},
"engines": {
"node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/ms": {
@@ -5174,9 +5274,9 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
+ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
"dev": true
},
"node_modules/normalize-path": {
@@ -5476,9 +5576,9 @@
"dev": true
},
"node_modules/phasereditor2d-launcher": {
- "version": "3.35.1",
- "resolved": "https://registry.npmjs.org/phasereditor2d-launcher/-/phasereditor2d-launcher-3.35.1.tgz",
- "integrity": "sha512-EvI06Qh3vjs7YWWiC/kYAOsIps/xe+OFgmi/KRd+RlAno18zlYS0/WUDsMUasW+jb4FbiV/aJR4N4gtzsEmQNA==",
+ "version": "3.63.0",
+ "resolved": "https://registry.npmjs.org/phasereditor2d-launcher/-/phasereditor2d-launcher-3.63.0.tgz",
+ "integrity": "sha512-O02ZGOaTrOikH+ZTc4WyBTjXvnBQuBg0rifaXHTI2zVeD5Y1zv+nxaq8pgMZe6FWhwgVmF+0D9I47qN1UN0FkA==",
"dev": true,
"dependencies": {
"adm-zip": "^0.5.5"
@@ -5672,15 +5772,15 @@
}
},
"node_modules/rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
"dev": true,
"dependencies": {
- "resolve": "^1.9.0"
+ "resolve": "^1.20.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/reflect-metadata": {
@@ -5696,9 +5796,9 @@
"dev": true
},
"node_modules/regenerate-unicode-properties": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz",
- "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==",
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
"dev": true,
"dependencies": {
"regenerate": "^1.4.2"
@@ -5708,15 +5808,15 @@
}
},
"node_modules/regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
+ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==",
"dev": true
},
"node_modules/regenerator-transform": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
- "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
"dev": true,
"dependencies": {
"@babel/runtime": "^7.8.4"
@@ -5740,32 +5840,26 @@
}
},
"node_modules/regexpu-core": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz",
- "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
"dev": true,
"dependencies": {
+ "@babel/regjsgen": "^0.8.0",
"regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.0.1",
- "regjsgen": "^0.6.0",
- "regjsparser": "^0.8.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
"unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.0.0"
+ "unicode-match-property-value-ecmascript": "^2.1.0"
},
"engines": {
"node": ">=4"
}
},
- "node_modules/regjsgen": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz",
- "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==",
- "dev": true
- },
"node_modules/regjsparser": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz",
- "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
"dev": true,
"dependencies": {
"jsesc": "~0.5.0"
@@ -5821,12 +5915,12 @@
"dev": true
},
"node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -5895,17 +5989,18 @@
"dev": true
},
"node_modules/schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
+ "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
"dependencies": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
},
"engines": {
- "node": ">= 8.9.0"
+ "node": ">= 12.13.0"
},
"funding": {
"type": "opencollective",
@@ -5931,9 +6026,9 @@
}
},
"node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
@@ -5985,9 +6080,9 @@
"dev": true
},
"node_modules/serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
+ "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
"dev": true,
"dependencies": {
"randombytes": "^2.1.0"
@@ -6125,6 +6220,15 @@
"node": ">=8"
}
},
+ "node_modules/shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@@ -6146,24 +6250,24 @@
"dev": true
},
"node_modules/socket.io-client": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.3.tgz",
- "integrity": "sha512-I/hqDYpQ6JKwtJOf5ikM+Qz+YujZPMEl6qBLhxiP0nX+TfXKhW4KZZG8lamrD6Y5ngjmYHreESVasVCgi5Kl3A==",
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz",
+ "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==",
"dev": true,
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.2.3",
- "socket.io-parser": "~4.2.0"
+ "engine.io-client": "~6.5.2",
+ "socket.io-parser": "~4.2.4"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/socket.io-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz",
- "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
"dev": true,
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
@@ -6384,13 +6488,13 @@
}
},
"node_modules/terser": {
- "version": "5.14.2",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
- "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz",
+ "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==",
"dev": true,
"dependencies": {
- "@jridgewell/source-map": "^0.3.2",
- "acorn": "^8.5.0",
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
"commander": "^2.20.0",
"source-map-support": "~0.5.20"
},
@@ -6402,16 +6506,16 @@
}
},
"node_modules/terser-webpack-plugin": {
- "version": "5.3.5",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz",
- "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==",
+ "version": "5.3.9",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz",
+ "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==",
"dev": true,
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.14",
+ "@jridgewell/trace-mapping": "^0.3.17",
"jest-worker": "^27.4.5",
"schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.0",
- "terser": "^5.14.1"
+ "serialize-javascript": "^6.0.1",
+ "terser": "^5.16.8"
},
"engines": {
"node": ">= 10.13.0"
@@ -6435,10 +6539,41 @@
}
}
},
+ "node_modules/terser-webpack-plugin/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
"node_modules/terser-webpack-plugin/node_modules/schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.8",
@@ -6496,9 +6631,9 @@
}
},
"node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
"dev": true
},
"node_modules/type-check": {
@@ -6564,18 +6699,18 @@
}
},
"node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
- "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
"dev": true,
"engines": {
"node": ">=4"
@@ -6591,9 +6726,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
"funding": [
{
@@ -6603,6 +6738,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
@@ -6610,7 +6749,7 @@
"picocolors": "^1.0.0"
},
"bin": {
- "browserslist-lint": "cli.js"
+ "update-browserslist-db": "cli.js"
},
"peerDependencies": {
"browserslist": ">= 4.21.0"
@@ -6670,9 +6809,9 @@
}
},
"node_modules/validator": {
- "version": "13.7.0",
- "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz",
- "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==",
+ "version": "13.11.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz",
+ "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==",
"dev": true,
"engines": {
"node": ">= 0.10"
@@ -6710,22 +6849,22 @@
}
},
"node_modules/webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
+ "version": "5.89.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz",
+ "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==",
"dev": true,
"dependencies": {
"@types/eslint-scope": "^3.7.3",
- "@types/estree": "^0.0.51",
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/wasm-edit": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
+ "@types/estree": "^1.0.0",
+ "@webassemblyjs/ast": "^1.11.5",
+ "@webassemblyjs/wasm-edit": "^1.11.5",
+ "@webassemblyjs/wasm-parser": "^1.11.5",
"acorn": "^8.7.1",
- "acorn-import-assertions": "^1.7.6",
+ "acorn-import-assertions": "^1.9.0",
"browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.10.0",
- "es-module-lexer": "^0.9.0",
+ "enhanced-resolve": "^5.15.0",
+ "es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
@@ -6734,9 +6873,9 @@
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
- "schema-utils": "^3.1.0",
+ "schema-utils": "^3.2.0",
"tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.1.3",
+ "terser-webpack-plugin": "^5.3.7",
"watchpack": "^2.4.0",
"webpack-sources": "^3.2.3"
},
@@ -6757,44 +6896,42 @@
}
},
"node_modules/webpack-cli": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz",
- "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
+ "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
"dev": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.2.0",
- "@webpack-cli/info": "^1.5.0",
- "@webpack-cli/serve": "^1.7.0",
+ "@webpack-cli/configtest": "^2.1.1",
+ "@webpack-cli/info": "^2.0.2",
+ "@webpack-cli/serve": "^2.0.5",
"colorette": "^2.0.14",
- "commander": "^7.0.0",
+ "commander": "^10.0.1",
"cross-spawn": "^7.0.3",
+ "envinfo": "^7.7.3",
"fastest-levenshtein": "^1.0.12",
"import-local": "^3.0.2",
- "interpret": "^2.2.0",
- "rechoir": "^0.7.0",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
"webpack-merge": "^5.7.3"
},
"bin": {
"webpack-cli": "bin/cli.js"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">=14.15.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "webpack": "4.x.x || 5.x.x"
+ "webpack": "5.x.x"
},
"peerDependenciesMeta": {
"@webpack-cli/generators": {
"optional": true
},
- "@webpack-cli/migrate": {
- "optional": true
- },
"webpack-bundle-analyzer": {
"optional": true
},
@@ -6804,12 +6941,12 @@
}
},
"node_modules/webpack-cli/node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
"engines": {
- "node": ">= 10"
+ "node": ">=14"
}
},
"node_modules/webpack-dev-middleware": {
@@ -6835,63 +6972,10 @@
"webpack": "^4.0.0 || ^5.0.0"
}
},
- "node_modules/webpack-dev-middleware/node_modules/ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/webpack-dev-middleware/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/webpack-dev-server": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz",
- "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==",
+ "version": "4.15.1",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz",
+ "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==",
"dev": true,
"dependencies": {
"@types/bonjour": "^3.5.9",
@@ -6900,7 +6984,7 @@
"@types/serve-index": "^1.9.1",
"@types/serve-static": "^1.13.10",
"@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.1",
+ "@types/ws": "^8.5.5",
"ansi-html-community": "^0.0.8",
"bonjour-service": "^1.0.11",
"chokidar": "^3.5.3",
@@ -6913,6 +6997,7 @@
"html-entities": "^2.3.2",
"http-proxy-middleware": "^2.0.3",
"ipaddr.js": "^2.0.1",
+ "launch-editor": "^2.6.0",
"open": "^8.0.9",
"p-retry": "^4.5.0",
"rimraf": "^3.0.2",
@@ -6922,7 +7007,7 @@
"sockjs": "^0.3.24",
"spdy": "^4.0.2",
"webpack-dev-middleware": "^5.3.1",
- "ws": "^8.4.2"
+ "ws": "^8.13.0"
},
"bin": {
"webpack-dev-server": "bin/webpack-dev-server.js"
@@ -6937,76 +7022,26 @@
"peerDependencies": {
"webpack": "^4.37.0 || ^5.0.0"
},
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-dev-server/node_modules/ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/webpack-dev-server/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/webpack-dev-server/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/webpack-dev-server/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "peerDependenciesMeta": {
+ "webpack": {
+ "optional": true
+ },
+ "webpack-cli": {
+ "optional": true
+ }
}
},
"node_modules/webpack-dev-server/node_modules/ws": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
- "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
+ "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
"dev": true,
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
+ "utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
@@ -7081,16 +7116,29 @@
"node": ">=10.13.0"
}
},
- "node_modules/webpack/node_modules/acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "node_modules/webpack/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
- "bin": {
- "acorn": "bin/acorn"
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
},
- "engines": {
- "node": ">=0.4.0"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/webpack/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "peerDependencies": {
+ "ajv": "^6.9.1"
}
},
"node_modules/webpack/node_modules/eslint-scope": {
@@ -7115,10 +7163,16 @@
"node": ">=4.0"
}
},
+ "node_modules/webpack/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
"node_modules/webpack/node_modules/schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.8",
@@ -7214,9 +7268,9 @@
"dev": true
},
"node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -7229,9 +7283,9 @@
"dev": true
},
"node_modules/ws": {
- "version": "8.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
- "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"dev": true,
"engines": {
"node": ">=10.0.0"
@@ -7257,6 +7311,24 @@
"engines": {
"node": ">=0.4.0"
}
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "node_modules/yocto-queue": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
}
},
"dependencies": {
@@ -7271,58 +7343,60 @@
}
},
"@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.18.6"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
}
},
"@babel/compat-data": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz",
- "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz",
+ "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==",
"dev": true
},
"@babel/core": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz",
- "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==",
- "dev": true,
- "requires": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.2",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-module-transforms": "^7.20.2",
- "@babel/helpers": "^7.20.1",
- "@babel/parser": "^7.20.2",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.2",
- "convert-source-map": "^1.7.0",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz",
+ "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==",
+ "dev": true,
+ "requires": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.23.0",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helpers": "^7.23.2",
+ "@babel/parser": "^7.23.0",
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.2",
+ "@babel/types": "^7.23.0",
+ "convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
}
},
"@babel/generator": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.2.tgz",
- "integrity": "sha512-SD75PMIK6i9H8G/tfGvB4KKl4Nw6Ssos9nGgYwxbgyTP0iX/Z55DveoH86rmUB/YHTQQ+ZC0F7xxaY8l2OF44Q==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
+ "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
"dev": true,
"requires": {
- "@babel/types": "^7.20.2",
+ "@babel/types": "^7.23.0",
"@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
},
"dependencies": {
"@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"requires": {
"@jridgewell/set-array": "^1.0.1",
@@ -7333,446 +7407,280 @@
}
},
"@babel/helper-annotate-as-pure": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
- "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
- "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
"dev": true,
"requires": {
- "@babel/helper-explode-assignable-expression": "^7.18.6",
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.22.15"
}
},
"@babel/helper-compilation-targets": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
- "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
+ "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.20.0",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.21.3",
- "semver": "^6.3.0"
+ "@babel/compat-data": "^7.22.9",
+ "@babel/helper-validator-option": "^7.22.15",
+ "browserslist": "^4.21.9",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.18.13",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz",
- "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==",
"dev": true,
"requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.9",
- "@babel/helper-split-export-declaration": "^7.18.6"
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
}
},
"@babel/helper-create-regexp-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz",
- "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
"dev": true,
"requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "regexpu-core": "^5.1.0"
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
}
},
"@babel/helper-define-polyfill-provider": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
- "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz",
+ "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==",
"dev": true,
"requires": {
- "@babel/helper-compilation-targets": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
"debug": "^4.1.1",
"lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2",
- "semver": "^6.1.2"
+ "resolve": "^1.14.2"
}
},
"@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
"dev": true
},
- "@babel/helper-explode-assignable-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
- "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
"@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
"dev": true,
"requires": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
}
},
"@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
- "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.23.0"
}
},
"@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.15"
}
},
"@babel/helper-module-transforms": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
- "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz",
+ "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==",
"dev": true,
"requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.20.2",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.2"
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
}
},
"@babel/helper-optimise-call-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
- "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-plugin-utils": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
- "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
"dev": true
},
"@babel/helper-remap-async-to-generator": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
- "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
"dev": true,
"requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-wrap-function": "^7.18.9",
- "@babel/types": "^7.18.9"
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
}
},
"@babel/helper-replace-supers": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
- "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
"dev": true,
"requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/traverse": "^7.19.1",
- "@babel/types": "^7.19.0"
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
}
},
"@babel/helper-simple-access": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
- "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
"dev": true,
"requires": {
- "@babel/types": "^7.20.2"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
- "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
"dev": true
},
"@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true
},
"@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
+ "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
"dev": true
},
"@babel/helper-wrap-function": {
- "version": "7.18.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz",
- "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
"dev": true,
"requires": {
- "@babel/helper-function-name": "^7.18.9",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.18.11",
- "@babel/types": "^7.18.10"
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
}
},
"@babel/helpers": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz",
- "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
+ "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
"dev": true,
"requires": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.0"
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.2",
+ "@babel/types": "^7.23.0"
}
},
"@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
}
},
"@babel/parser": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.2.tgz",
- "integrity": "sha512-afk318kh2uKbo7BEj2QtEi8HVCGrwHUffrYDy7dgVcSa2j9lY3LDjPzcyGdpX7xgm35aWqvciZJ4WKmdF/SxYg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
"dev": true
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
- "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz",
+ "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9"
- }
- },
- "@babel/plugin-proposal-async-generator-functions": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz",
- "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-remap-async-to-generator": "^7.18.9",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- }
- },
- "@babel/plugin-proposal-class-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
- "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-proposal-class-static-block": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
- "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-dynamic-import": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
- "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-export-namespace-from": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
- "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-json-strings": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
- "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
- "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- }
- },
- "@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
- "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-numeric-separator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
- "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- }
- },
- "@babel/plugin-proposal-object-rest-spread": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz",
- "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.20.1",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.20.1"
- }
- },
- "@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
- "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-private-methods": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
- "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz",
+ "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.22.15"
}
},
"@babel/plugin-proposal-private-property-in-object": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
- "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
- "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
"dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
+ "requires": {}
},
"@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
@@ -7820,12 +7728,30 @@
}
},
"@babel/plugin-syntax-import-assertions": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
- "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
+ "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-syntax-import-attributes": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
+ "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-json-strings": {
@@ -7909,353 +7835,521 @@
"@babel/helper-plugin-utils": "^7.14.5"
}
},
- "@babel/plugin-transform-arrow-functions": {
+ "@babel/plugin-syntax-unicode-sets-regex": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
- "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
"dev": true,
"requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
}
},
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
+ "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-async-generator-functions": {
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz",
+ "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ }
+ },
"@babel/plugin-transform-async-to-generator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
- "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
+ "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-remap-async-to-generator": "^7.18.6"
+ "@babel/helper-module-imports": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.5"
}
},
"@babel/plugin-transform-block-scoped-functions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
- "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
+ "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz",
- "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz",
+ "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.20.2"
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-class-properties": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
+ "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-class-static-block": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz",
+ "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz",
- "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/helper-replace-supers": "^7.19.1",
- "@babel/helper-split-export-declaration": "^7.18.6",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz",
+ "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.9",
+ "@babel/helper-split-export-declaration": "^7.22.6",
"globals": "^11.1.0"
}
},
"@babel/plugin-transform-computed-properties": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
- "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
+ "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.5"
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz",
- "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz",
+ "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.20.2"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-dotall-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
- "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
+ "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-duplicate-keys": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
- "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
+ "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-dynamic-import": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz",
+ "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
}
},
"@babel/plugin-transform-exponentiation-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
- "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
+ "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
"dev": true,
"requires": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-export-namespace-from": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz",
+ "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
}
},
"@babel/plugin-transform-for-of": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
- "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz",
+ "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-function-name": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
- "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
+ "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-json-strings": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz",
+ "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==",
"dev": true,
"requires": {
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
}
},
"@babel/plugin-transform-literals": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
- "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
+ "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz",
+ "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
}
},
"@babel/plugin-transform-member-expression-literals": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
- "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
+ "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz",
- "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz",
+ "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz",
- "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz",
+ "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-simple-access": "^7.19.4"
+ "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz",
- "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz",
+ "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==",
"dev": true,
"requires": {
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-validator-identifier": "^7.19.1"
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20"
}
},
"@babel/plugin-transform-modules-umd": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
- "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
+ "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-module-transforms": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz",
- "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-new-target": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
- "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
+ "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz",
+ "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ }
+ },
+ "@babel/plugin-transform-numeric-separator": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz",
+ "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-object-rest-spread": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz",
+ "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.22.9",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.22.15"
}
},
"@babel/plugin-transform-object-super": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
- "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
+ "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz",
+ "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ }
+ },
+ "@babel/plugin-transform-optional-chaining": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz",
+ "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz",
- "integrity": "sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz",
+ "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-private-methods": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
+ "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-private-property-in-object": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz",
+ "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
}
},
"@babel/plugin-transform-property-literals": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
- "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
+ "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
- "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
+ "version": "7.22.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
+ "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "regenerator-transform": "^0.15.0"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
}
},
"@babel/plugin-transform-reserved-words": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
- "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
+ "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-shorthand-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
- "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
+ "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-spread": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz",
- "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
+ "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
}
},
"@babel/plugin-transform-sticky-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
- "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
+ "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-template-literals": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
- "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
+ "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-typeof-symbol": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
- "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
+ "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-unicode-escapes": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
- "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
+ "version": "7.22.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
+ "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
+ "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/plugin-transform-unicode-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
- "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
+ "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
+ "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/preset-env": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz",
- "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.20.1",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/helper-validator-option": "^7.18.6",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-async-generator-functions": "^7.20.1",
- "@babel/plugin-proposal-class-properties": "^7.18.6",
- "@babel/plugin-proposal-class-static-block": "^7.18.6",
- "@babel/plugin-proposal-dynamic-import": "^7.18.6",
- "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
- "@babel/plugin-proposal-json-strings": "^7.18.6",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
- "@babel/plugin-proposal-numeric-separator": "^7.18.6",
- "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
- "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-private-methods": "^7.18.6",
- "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
- "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz",
+ "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.23.2",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.20.0",
+ "@babel/plugin-syntax-import-assertions": "^7.22.5",
+ "@babel/plugin-syntax-import-attributes": "^7.22.5",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -8265,106 +8359,127 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.18.6",
- "@babel/plugin-transform-async-to-generator": "^7.18.6",
- "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
- "@babel/plugin-transform-block-scoping": "^7.20.2",
- "@babel/plugin-transform-classes": "^7.20.2",
- "@babel/plugin-transform-computed-properties": "^7.18.9",
- "@babel/plugin-transform-destructuring": "^7.20.2",
- "@babel/plugin-transform-dotall-regex": "^7.18.6",
- "@babel/plugin-transform-duplicate-keys": "^7.18.9",
- "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
- "@babel/plugin-transform-for-of": "^7.18.8",
- "@babel/plugin-transform-function-name": "^7.18.9",
- "@babel/plugin-transform-literals": "^7.18.9",
- "@babel/plugin-transform-member-expression-literals": "^7.18.6",
- "@babel/plugin-transform-modules-amd": "^7.19.6",
- "@babel/plugin-transform-modules-commonjs": "^7.19.6",
- "@babel/plugin-transform-modules-systemjs": "^7.19.6",
- "@babel/plugin-transform-modules-umd": "^7.18.6",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1",
- "@babel/plugin-transform-new-target": "^7.18.6",
- "@babel/plugin-transform-object-super": "^7.18.6",
- "@babel/plugin-transform-parameters": "^7.20.1",
- "@babel/plugin-transform-property-literals": "^7.18.6",
- "@babel/plugin-transform-regenerator": "^7.18.6",
- "@babel/plugin-transform-reserved-words": "^7.18.6",
- "@babel/plugin-transform-shorthand-properties": "^7.18.6",
- "@babel/plugin-transform-spread": "^7.19.0",
- "@babel/plugin-transform-sticky-regex": "^7.18.6",
- "@babel/plugin-transform-template-literals": "^7.18.9",
- "@babel/plugin-transform-typeof-symbol": "^7.18.9",
- "@babel/plugin-transform-unicode-escapes": "^7.18.10",
- "@babel/plugin-transform-unicode-regex": "^7.18.6",
- "@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.20.2",
- "babel-plugin-polyfill-corejs2": "^0.3.3",
- "babel-plugin-polyfill-corejs3": "^0.6.0",
- "babel-plugin-polyfill-regenerator": "^0.4.1",
- "core-js-compat": "^3.25.1",
- "semver": "^6.3.0"
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.22.5",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.2",
+ "@babel/plugin-transform-async-to-generator": "^7.22.5",
+ "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
+ "@babel/plugin-transform-block-scoping": "^7.23.0",
+ "@babel/plugin-transform-class-properties": "^7.22.5",
+ "@babel/plugin-transform-class-static-block": "^7.22.11",
+ "@babel/plugin-transform-classes": "^7.22.15",
+ "@babel/plugin-transform-computed-properties": "^7.22.5",
+ "@babel/plugin-transform-destructuring": "^7.23.0",
+ "@babel/plugin-transform-dotall-regex": "^7.22.5",
+ "@babel/plugin-transform-duplicate-keys": "^7.22.5",
+ "@babel/plugin-transform-dynamic-import": "^7.22.11",
+ "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
+ "@babel/plugin-transform-export-namespace-from": "^7.22.11",
+ "@babel/plugin-transform-for-of": "^7.22.15",
+ "@babel/plugin-transform-function-name": "^7.22.5",
+ "@babel/plugin-transform-json-strings": "^7.22.11",
+ "@babel/plugin-transform-literals": "^7.22.5",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.22.11",
+ "@babel/plugin-transform-member-expression-literals": "^7.22.5",
+ "@babel/plugin-transform-modules-amd": "^7.23.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.0",
+ "@babel/plugin-transform-modules-umd": "^7.22.5",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.22.5",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11",
+ "@babel/plugin-transform-numeric-separator": "^7.22.11",
+ "@babel/plugin-transform-object-rest-spread": "^7.22.15",
+ "@babel/plugin-transform-object-super": "^7.22.5",
+ "@babel/plugin-transform-optional-catch-binding": "^7.22.11",
+ "@babel/plugin-transform-optional-chaining": "^7.23.0",
+ "@babel/plugin-transform-parameters": "^7.22.15",
+ "@babel/plugin-transform-private-methods": "^7.22.5",
+ "@babel/plugin-transform-private-property-in-object": "^7.22.11",
+ "@babel/plugin-transform-property-literals": "^7.22.5",
+ "@babel/plugin-transform-regenerator": "^7.22.10",
+ "@babel/plugin-transform-reserved-words": "^7.22.5",
+ "@babel/plugin-transform-shorthand-properties": "^7.22.5",
+ "@babel/plugin-transform-spread": "^7.22.5",
+ "@babel/plugin-transform-sticky-regex": "^7.22.5",
+ "@babel/plugin-transform-template-literals": "^7.22.5",
+ "@babel/plugin-transform-typeof-symbol": "^7.22.5",
+ "@babel/plugin-transform-unicode-escapes": "^7.22.10",
+ "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
+ "@babel/plugin-transform-unicode-regex": "^7.22.5",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "@babel/types": "^7.23.0",
+ "babel-plugin-polyfill-corejs2": "^0.4.6",
+ "babel-plugin-polyfill-corejs3": "^0.8.5",
+ "babel-plugin-polyfill-regenerator": "^0.5.3",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
}
},
"@babel/preset-modules": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
- "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
"@babel/types": "^7.4.4",
"esutils": "^2.0.2"
}
},
+ "@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
+ "dev": true
+ },
"@babel/runtime": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
- "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
+ "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
"dev": true,
"requires": {
- "regenerator-runtime": "^0.13.4"
+ "regenerator-runtime": "^0.14.0"
}
},
"@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
}
},
"@babel/traverse": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz",
- "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.1",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.1",
- "@babel/types": "^7.20.0",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
+ "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.23.0",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.0",
+ "@babel/types": "^7.23.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz",
- "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
"dev": true,
"requires": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
}
},
@@ -8425,9 +8540,9 @@
"dev": true
},
"@jridgewell/source-map": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
- "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
+ "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
"dev": true,
"requires": {
"@jridgewell/gen-mapping": "^0.3.0",
@@ -8435,9 +8550,9 @@
},
"dependencies": {
"@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"requires": {
"@jridgewell/set-array": "^1.0.1",
@@ -8454,13 +8569,13 @@
"dev": true
},
"@jridgewell/trace-mapping": {
- "version": "0.3.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
- "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
"dev": true,
"requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"@leichtgewicht/ip-codec": {
@@ -8534,9 +8649,9 @@
}
},
"@types/estree": {
- "version": "0.0.51",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
- "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz",
+ "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==",
"dev": true
},
"@types/express": {
@@ -8647,181 +8762,185 @@
"@types/node": "*"
}
},
+ "@types/validator": {
+ "version": "13.11.5",
+ "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.5.tgz",
+ "integrity": "sha512-xW4qsT4UIYILu+7ZrBnfQdBYniZrMLYYK3wN9M/NdeIHgBN5pZI2/8Q7UfdWIcr5RLJv/OGENsx91JIpUUoC7Q==",
+ "dev": true
+ },
"@types/ws": {
- "version": "8.5.3",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
- "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.8.tgz",
+ "integrity": "sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@webassemblyjs/ast": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
- "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
+ "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
"dev": true,
"requires": {
- "@webassemblyjs/helper-numbers": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ "@webassemblyjs/helper-numbers": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
}
},
"@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
- "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
+ "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
"dev": true
},
"@webassemblyjs/helper-api-error": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
- "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
+ "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
"dev": true
},
"@webassemblyjs/helper-buffer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
- "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
+ "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
"dev": true
},
"@webassemblyjs/helper-numbers": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
- "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
+ "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
"dev": true,
"requires": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/floating-point-hex-parser": "1.11.6",
+ "@webassemblyjs/helper-api-error": "1.11.6",
"@xtuc/long": "4.2.2"
}
},
"@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
- "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
+ "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
"dev": true
},
"@webassemblyjs/helper-wasm-section": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
- "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
+ "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6"
}
},
"@webassemblyjs/ieee754": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
- "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
+ "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
"dev": true,
"requires": {
"@xtuc/ieee754": "^1.2.0"
}
},
"@webassemblyjs/leb128": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
- "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
+ "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
"dev": true,
"requires": {
"@xtuc/long": "4.2.2"
}
},
"@webassemblyjs/utf8": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
- "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
+ "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
"dev": true
},
"@webassemblyjs/wasm-edit": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
- "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
+ "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/helper-wasm-section": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-opt": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
- "@webassemblyjs/wast-printer": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/helper-wasm-section": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6",
+ "@webassemblyjs/wasm-opt": "1.11.6",
+ "@webassemblyjs/wasm-parser": "1.11.6",
+ "@webassemblyjs/wast-printer": "1.11.6"
}
},
"@webassemblyjs/wasm-gen": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
- "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
+ "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
}
},
"@webassemblyjs/wasm-opt": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
- "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
+ "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6",
+ "@webassemblyjs/wasm-parser": "1.11.6"
}
},
"@webassemblyjs/wasm-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
- "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
+ "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-api-error": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
}
},
"@webassemblyjs/wast-printer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
- "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
+ "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/ast": "1.11.6",
"@xtuc/long": "4.2.2"
}
},
"@webpack-cli/configtest": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz",
- "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
+ "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
"dev": true,
"requires": {}
},
"@webpack-cli/info": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz",
- "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
+ "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
"dev": true,
- "requires": {
- "envinfo": "^7.7.3"
- }
+ "requires": {}
},
"@webpack-cli/serve": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz",
- "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
+ "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
"dev": true,
"requires": {}
},
@@ -8848,15 +8967,15 @@
}
},
"acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true
},
"acorn-import-assertions": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
- "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
+ "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
"dev": true,
"requires": {}
},
@@ -8867,14 +8986,14 @@
"dev": true
},
"ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
"uri-js": "^4.2.2"
}
},
@@ -8885,34 +9004,16 @@
"dev": true,
"requires": {
"ajv": "^8.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- }
}
},
"ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"dev": true,
- "requires": {}
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
},
"amdefine": {
"version": "1.0.1",
@@ -8994,45 +9095,43 @@
"dev": true
},
"babel-loader": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
- "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
+ "version": "9.1.3",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz",
+ "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==",
"dev": true,
"requires": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.0",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
+ "find-cache-dir": "^4.0.0",
+ "schema-utils": "^4.0.0"
}
},
"babel-plugin-polyfill-corejs2": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz",
- "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==",
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz",
+ "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.17.7",
- "@babel/helper-define-polyfill-provider": "^0.3.3",
- "semver": "^6.1.1"
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.4.3",
+ "semver": "^6.3.1"
}
},
"babel-plugin-polyfill-corejs3": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz",
- "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==",
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz",
+ "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==",
"dev": true,
"requires": {
- "@babel/helper-define-polyfill-provider": "^0.3.3",
- "core-js-compat": "^3.25.1"
+ "@babel/helper-define-polyfill-provider": "^0.4.3",
+ "core-js-compat": "^3.32.2"
}
},
"babel-plugin-polyfill-regenerator": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz",
- "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz",
+ "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==",
"dev": true,
"requires": {
- "@babel/helper-define-polyfill-provider": "^0.3.3"
+ "@babel/helper-define-polyfill-provider": "^0.4.3"
}
},
"balanced-match": {
@@ -9140,15 +9239,15 @@
}
},
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz",
+ "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001541",
+ "electron-to-chromium": "^1.4.535",
+ "node-releases": "^2.0.13",
+ "update-browserslist-db": "^1.0.13"
}
},
"buffer-from": {
@@ -9184,9 +9283,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001430",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz",
- "integrity": "sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==",
+ "version": "1.0.30001550",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001550.tgz",
+ "integrity": "sha512-p82WjBYIypO0ukTsd/FG3Xxs+4tFeaY9pfT4amQL8KWtYH7H9nYwReGAbMTJ0hsmRO8IfDtsS6p3ZWj8+1c2RQ==",
"dev": true
},
"chalk": {
@@ -9201,9 +9300,9 @@
}
},
"chance": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.8.tgz",
- "integrity": "sha512-v7fi5Hj2VbR6dJEGRWLmJBA83LJMS47pkAbmROFxHWd9qmE1esHRZW8Clf1Fhzr3rjxnNZVCjOEv/ivFxeIMtg==",
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.9.tgz",
+ "integrity": "sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==",
"dev": true
},
"char-regex": {
@@ -9241,12 +9340,13 @@
"dev": true
},
"class-validator": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz",
- "integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==",
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz",
+ "integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==",
"dev": true,
"requires": {
- "libphonenumber-js": "^1.9.43",
+ "@types/validator": "^13.7.10",
+ "libphonenumber-js": "^1.10.14",
"validator": "^13.7.0"
}
},
@@ -9305,10 +9405,10 @@
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
"dev": true
},
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
"dev": true
},
"compressible": {
@@ -9360,47 +9460,6 @@
"requires": {
"schema-utils": "^4.0.0",
"serialize-javascript": "^6.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
}
},
"concat-map": {
@@ -9439,13 +9498,10 @@
"dev": true
},
"convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.1"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
},
"cookie": {
"version": "0.5.0",
@@ -9460,18 +9516,18 @@
"dev": true
},
"core-js": {
- "version": "3.26.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz",
- "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==",
+ "version": "3.33.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.0.tgz",
+ "integrity": "sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==",
"dev": true
},
"core-js-compat": {
- "version": "3.26.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz",
- "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==",
+ "version": "3.33.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.0.tgz",
+ "integrity": "sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==",
"dev": true,
"requires": {
- "browserslist": "^4.21.4"
+ "browserslist": "^4.22.1"
}
},
"core-util-is": {
@@ -9652,9 +9708,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "version": "1.4.558",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.558.tgz",
+ "integrity": "sha512-j9IcGmfkyN5MBH/0Xzg45GDHasXsnwEJDM6Xnr9H7GlGUni+JH4q6xp6Nk7NV5LjTmoEFBqhILIqg1McJrv6uA==",
"dev": true
},
"emojis-list": {
@@ -9670,28 +9726,28 @@
"dev": true
},
"engine.io-client": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz",
- "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz",
+ "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==",
"dev": true,
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
- "engine.io-parser": "~5.0.3",
- "ws": "~8.2.3",
+ "engine.io-parser": "~5.2.1",
+ "ws": "~8.11.0",
"xmlhttprequest-ssl": "~2.0.0"
}
},
"engine.io-parser": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
- "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz",
+ "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==",
"dev": true
},
"enhanced-resolve": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
- "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==",
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
+ "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
"dev": true,
"requires": {
"graceful-fs": "^4.2.4",
@@ -9705,9 +9761,9 @@
"dev": true
},
"envinfo": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
- "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz",
+ "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==",
"dev": true
},
"es-abstract": {
@@ -9742,9 +9798,9 @@
}
},
"es-module-lexer": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
- "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz",
+ "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==",
"dev": true
},
"es-to-primitive": {
@@ -9783,9 +9839,9 @@
"dev": true
},
"eslint-scope": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
- "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
@@ -9793,9 +9849,9 @@
}
},
"eslint-visitor-keys": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz",
- "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
"dev": true
},
"esprima": {
@@ -10003,14 +10059,67 @@
}
},
"find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
+ "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
"dev": true,
"requires": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
+ "common-path-prefix": "^3.0.0",
+ "pkg-dir": "^7.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^6.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^4.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
+ "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^6.3.0"
+ }
+ }
}
},
"find-up": {
@@ -10225,9 +10334,9 @@
"dev": true
},
"howler": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/howler/-/howler-2.2.3.tgz",
- "integrity": "sha512-QM0FFkw0LRX1PR8pNzJVAY25JhIWvbKMBFM4gqk+QdV+kPXOhleWGCB6AiAF/goGjIHK2e/nIElplvjQwhr0jg==",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/howler/-/howler-2.2.4.tgz",
+ "integrity": "sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w==",
"dev": true
},
"hpack.js": {
@@ -10290,9 +10399,9 @@
}
},
"html-webpack-plugin": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
- "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==",
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz",
+ "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==",
"dev": true,
"requires": {
"@types/html-minifier-terser": "^6.0.0",
@@ -10416,9 +10525,9 @@
}
},
"interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
+ "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
"dev": true
},
"inversify": {
@@ -10484,9 +10593,9 @@
"dev": true
},
"is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
+ "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
"dev": true,
"requires": {
"has": "^1.0.3"
@@ -10670,26 +10779,26 @@
"dev": true
},
"javascript-obfuscator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.0.0.tgz",
- "integrity": "sha512-vS/8w/9eKISzwXNLd+OLMCCwjD+dFMdOlCDOo919iR/MWdBs+7u1ybpwRoWOmODToPQKVYw5GasvZoIiPs5nPw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.1.0.tgz",
+ "integrity": "sha512-ckC0VFKQ0/sFtLH9apW/ZLfsP8LuZqZhVEM4VTJ5KLzyLaodW6C1lTU8808eboDmddKyvd2uyRx5bzc0Me0GYg==",
"dev": true,
"requires": {
"@javascript-obfuscator/escodegen": "2.3.0",
"@javascript-obfuscator/estraverse": "5.4.0",
- "acorn": "8.7.0",
+ "acorn": "8.8.2",
"assert": "2.0.0",
"chalk": "4.1.2",
- "chance": "1.1.8",
- "class-validator": "0.13.2",
- "commander": "9.0.0",
- "eslint-scope": "7.1.0",
- "eslint-visitor-keys": "3.2.0",
+ "chance": "1.1.9",
+ "class-validator": "0.14.0",
+ "commander": "10.0.0",
+ "eslint-scope": "7.1.1",
+ "eslint-visitor-keys": "3.3.0",
"fast-deep-equal": "3.1.3",
"inversify": "6.0.1",
"js-string-escape": "1.0.1",
"md5": "2.3.0",
- "mkdirp": "1.0.4",
+ "mkdirp": "2.1.3",
"multimatch": "5.0.0",
"opencollective-postinstall": "2.0.3",
"process": "0.11.10",
@@ -10697,7 +10806,7 @@
"source-map-support": "0.5.21",
"string-template": "1.0.0",
"stringz": "2.1.0",
- "tslib": "2.3.1"
+ "tslib": "2.5.0"
},
"dependencies": {
"ansi-styles": {
@@ -10735,9 +10844,9 @@
"dev": true
},
"commander": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz",
- "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
+ "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
"dev": true
},
"has-flag": {
@@ -10754,12 +10863,6 @@
"requires": {
"has-flag": "^4.0.0"
}
- },
- "tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
- "dev": true
}
}
},
@@ -10816,15 +10919,15 @@
"dev": true
},
"json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
"json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true
},
"kind-of": {
@@ -10833,6 +10936,16 @@
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
+ "launch-editor": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz",
+ "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==",
+ "dev": true,
+ "requires": {
+ "picocolors": "^1.0.0",
+ "shell-quote": "^1.8.1"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -10844,9 +10957,9 @@
}
},
"libphonenumber-js": {
- "version": "1.10.13",
- "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz",
- "integrity": "sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q==",
+ "version": "1.10.48",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.48.tgz",
+ "integrity": "sha512-Vvcgt4+o8+puIBJZLdMshPYx9nRN3/kTT7HPtOyfYrSQuN9PGBF1KUv0g07fjNzt4E4GuA7FnsLb+WeAMzyRQg==",
"dev": true
},
"loader-runner": {
@@ -10856,9 +10969,9 @@
"dev": true
},
"loader-utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz",
- "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -10896,13 +11009,13 @@
"tslib": "^2.0.3"
}
},
- "make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"requires": {
- "semver": "^6.0.0"
+ "yallist": "^3.0.2"
}
},
"md5": {
@@ -11002,9 +11115,9 @@
}
},
"mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz",
+ "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==",
"dev": true
},
"ms": {
@@ -11085,9 +11198,9 @@
"dev": true
},
"node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
+ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
"dev": true
},
"normalize-path": {
@@ -11309,9 +11422,9 @@
"dev": true
},
"phasereditor2d-launcher": {
- "version": "3.35.1",
- "resolved": "https://registry.npmjs.org/phasereditor2d-launcher/-/phasereditor2d-launcher-3.35.1.tgz",
- "integrity": "sha512-EvI06Qh3vjs7YWWiC/kYAOsIps/xe+OFgmi/KRd+RlAno18zlYS0/WUDsMUasW+jb4FbiV/aJR4N4gtzsEmQNA==",
+ "version": "3.63.0",
+ "resolved": "https://registry.npmjs.org/phasereditor2d-launcher/-/phasereditor2d-launcher-3.63.0.tgz",
+ "integrity": "sha512-O02ZGOaTrOikH+ZTc4WyBTjXvnBQuBg0rifaXHTI2zVeD5Y1zv+nxaq8pgMZe6FWhwgVmF+0D9I47qN1UN0FkA==",
"dev": true,
"requires": {
"adm-zip": "^0.5.5"
@@ -11461,12 +11574,12 @@
}
},
"rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
"dev": true,
"requires": {
- "resolve": "^1.9.0"
+ "resolve": "^1.20.0"
}
},
"reflect-metadata": {
@@ -11482,24 +11595,24 @@
"dev": true
},
"regenerate-unicode-properties": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz",
- "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==",
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
"dev": true,
"requires": {
"regenerate": "^1.4.2"
}
},
"regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
+ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==",
"dev": true
},
"regenerator-transform": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
- "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
"dev": true,
"requires": {
"@babel/runtime": "^7.8.4"
@@ -11517,29 +11630,23 @@
}
},
"regexpu-core": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz",
- "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
"dev": true,
"requires": {
+ "@babel/regjsgen": "^0.8.0",
"regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.0.1",
- "regjsgen": "^0.6.0",
- "regjsparser": "^0.8.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
"unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.0.0"
+ "unicode-match-property-value-ecmascript": "^2.1.0"
}
},
- "regjsgen": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz",
- "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==",
- "dev": true
- },
"regjsparser": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz",
- "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
"dev": true,
"requires": {
"jsesc": "~0.5.0"
@@ -11585,12 +11692,12 @@
"dev": true
},
"resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"requires": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
}
@@ -11638,14 +11745,15 @@
"dev": true
},
"schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
+ "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
"requires": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
}
},
"select-hose": {
@@ -11664,9 +11772,9 @@
}
},
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
},
"send": {
@@ -11716,9 +11824,9 @@
}
},
"serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
+ "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
"dev": true,
"requires": {
"randombytes": "^2.1.0"
@@ -11834,6 +11942,12 @@
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
+ "shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "dev": true
+ },
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@@ -11852,21 +11966,21 @@
"dev": true
},
"socket.io-client": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.3.tgz",
- "integrity": "sha512-I/hqDYpQ6JKwtJOf5ikM+Qz+YujZPMEl6qBLhxiP0nX+TfXKhW4KZZG8lamrD6Y5ngjmYHreESVasVCgi5Kl3A==",
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz",
+ "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==",
"dev": true,
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.2.3",
- "socket.io-parser": "~4.2.0"
+ "engine.io-client": "~6.5.2",
+ "socket.io-parser": "~4.2.4"
}
},
"socket.io-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz",
- "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
"dev": true,
"requires": {
"@socket.io/component-emitter": "~3.1.0",
@@ -12038,13 +12152,13 @@
"dev": true
},
"terser": {
- "version": "5.14.2",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
- "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz",
+ "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==",
"dev": true,
"requires": {
- "@jridgewell/source-map": "^0.3.2",
- "acorn": "^8.5.0",
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
"commander": "^2.20.0",
"source-map-support": "~0.5.20"
},
@@ -12058,22 +12172,47 @@
}
},
"terser-webpack-plugin": {
- "version": "5.3.5",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz",
- "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==",
+ "version": "5.3.9",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz",
+ "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==",
"dev": true,
"requires": {
- "@jridgewell/trace-mapping": "^0.3.14",
+ "@jridgewell/trace-mapping": "^0.3.17",
"jest-worker": "^27.4.5",
"schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.0",
- "terser": "^5.14.1"
+ "serialize-javascript": "^6.0.1",
+ "terser": "^5.16.8"
},
"dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
"schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.8",
@@ -12111,9 +12250,9 @@
"dev": true
},
"tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
"dev": true
},
"type-check": {
@@ -12164,15 +12303,15 @@
}
},
"unicode-match-property-value-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
- "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
"dev": true
},
"unicode-property-aliases-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
"dev": true
},
"unpipe": {
@@ -12182,9 +12321,9 @@
"dev": true
},
"update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
"requires": {
"escalade": "^3.1.1",
@@ -12239,9 +12378,9 @@
"dev": true
},
"validator": {
- "version": "13.7.0",
- "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz",
- "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==",
+ "version": "13.11.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz",
+ "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==",
"dev": true
},
"vary": {
@@ -12270,22 +12409,22 @@
}
},
"webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
+ "version": "5.89.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz",
+ "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.3",
- "@types/estree": "^0.0.51",
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/wasm-edit": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
+ "@types/estree": "^1.0.0",
+ "@webassemblyjs/ast": "^1.11.5",
+ "@webassemblyjs/wasm-edit": "^1.11.5",
+ "@webassemblyjs/wasm-parser": "^1.11.5",
"acorn": "^8.7.1",
- "acorn-import-assertions": "^1.7.6",
+ "acorn-import-assertions": "^1.9.0",
"browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.10.0",
- "es-module-lexer": "^0.9.0",
+ "enhanced-resolve": "^5.15.0",
+ "es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
@@ -12294,18 +12433,31 @@
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
- "schema-utils": "^3.1.0",
+ "schema-utils": "^3.2.0",
"tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.1.3",
+ "terser-webpack-plugin": "^5.3.7",
"watchpack": "^2.4.0",
"webpack-sources": "^3.2.3"
},
"dependencies": {
- "acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
- "dev": true
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "requires": {}
},
"eslint-scope": {
"version": "5.1.1",
@@ -12323,10 +12475,16 @@
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true
},
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
"schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.8",
@@ -12337,29 +12495,30 @@
}
},
"webpack-cli": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz",
- "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
+ "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
"dev": true,
"requires": {
"@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.2.0",
- "@webpack-cli/info": "^1.5.0",
- "@webpack-cli/serve": "^1.7.0",
+ "@webpack-cli/configtest": "^2.1.1",
+ "@webpack-cli/info": "^2.0.2",
+ "@webpack-cli/serve": "^2.0.5",
"colorette": "^2.0.14",
- "commander": "^7.0.0",
+ "commander": "^10.0.1",
"cross-spawn": "^7.0.3",
+ "envinfo": "^7.7.3",
"fastest-levenshtein": "^1.0.12",
"import-local": "^3.0.2",
- "interpret": "^2.2.0",
- "rechoir": "^0.7.0",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
"webpack-merge": "^5.7.3"
},
"dependencies": {
"commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true
}
}
@@ -12375,53 +12534,12 @@
"mime-types": "^2.1.31",
"range-parser": "^1.2.1",
"schema-utils": "^4.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
}
},
"webpack-dev-server": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz",
- "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==",
+ "version": "4.15.1",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz",
+ "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==",
"dev": true,
"requires": {
"@types/bonjour": "^3.5.9",
@@ -12430,7 +12548,7 @@
"@types/serve-index": "^1.9.1",
"@types/serve-static": "^1.13.10",
"@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.1",
+ "@types/ws": "^8.5.5",
"ansi-html-community": "^0.0.8",
"bonjour-service": "^1.0.11",
"chokidar": "^3.5.3",
@@ -12443,6 +12561,7 @@
"html-entities": "^2.3.2",
"http-proxy-middleware": "^2.0.3",
"ipaddr.js": "^2.0.1",
+ "launch-editor": "^2.6.0",
"open": "^8.0.9",
"p-retry": "^4.5.0",
"rimraf": "^3.0.2",
@@ -12452,52 +12571,13 @@
"sockjs": "^0.3.24",
"spdy": "^4.0.2",
"webpack-dev-middleware": "^5.3.1",
- "ws": "^8.4.2"
+ "ws": "^8.13.0"
},
"dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- },
"ws": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
- "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
+ "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
"dev": true,
"requires": {}
}
@@ -12609,9 +12689,9 @@
"dev": true
},
"word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true
},
"wrappy": {
@@ -12621,9 +12701,9 @@
"dev": true
},
"ws": {
- "version": "8.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
- "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"dev": true,
"requires": {}
},
@@ -12632,6 +12712,18 @@
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
"dev": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "yocto-queue": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true
}
}
}
diff --git a/package.json b/package.json
index ebc0d9de..6d741bf4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "yukon",
- "version": "1.5.0-beta",
+ "version": "1.6.0-beta",
"scripts": {
"dev": "webpack serve",
"editor": "phasereditor2d-launcher -project . -max-number-files 5000",
@@ -18,21 +18,21 @@
},
"homepage": "https://github.com/wizguin/yukon#readme",
"devDependencies": {
- "@babel/core": "^7.20.2",
- "@babel/preset-env": "^7.20.2",
- "babel-loader": "^8.3.0",
+ "@babel/core": "^7.23.2",
+ "@babel/preset-env": "^7.23.2",
+ "babel-loader": "^9.1.3",
"compression-webpack-plugin": "^10.0.0",
- "core-js": "^3.26.0",
- "howler": "^2.2.3",
- "html-webpack-plugin": "^5.5.0",
- "javascript-obfuscator": "^4.0.0",
- "phasereditor2d-launcher": "^3.35.1",
+ "core-js": "^3.33.0",
+ "howler": "^2.2.4",
+ "html-webpack-plugin": "^5.5.3",
+ "javascript-obfuscator": "^4.1.0",
+ "phasereditor2d-launcher": "^3.63.0",
"phasereditor2d-ninepatch-plugin": "^1.2.0",
- "socket.io-client": "^4.5.3",
+ "socket.io-client": "^4.7.2",
"source-map": "^0.7.4",
- "webpack": "^5.74.0",
- "webpack-cli": "^4.10.0",
- "webpack-dev-server": "^4.11.1",
+ "webpack": "^5.89.0",
+ "webpack-cli": "^5.1.4",
+ "webpack-dev-server": "^4.15.1",
"webpack-obfuscator": "^3.5.1"
}
}
diff --git a/src/data/fonts.js b/src/data/fonts.js
index 981e3b1f..d422d044 100644
--- a/src/data/fonts.js
+++ b/src/data/fonts.js
@@ -4,8 +4,9 @@ const fonts = {
'Arial:n4,n7',
'Arial Narrow:n4,n7',
'Asterisk:n4',
+ 'Burbank Big Regular:n7',
'Burbank Small:n4,n7',
- 'CCComiccrazy:n4',
+ 'CCComiccrazy:n4,n7',
'CCFaceFront:n4,i7'
],
urls: [
diff --git a/src/data/game.js b/src/data/game.js
index 3465053a..d9a92f7e 100644
--- a/src/data/game.js
+++ b/src/data/game.js
@@ -17,6 +17,9 @@ const game = {
width: 1520,
height: 960,
+ maxWidth: 1520,
+ maxHeight: 960,
+
transparent: true,
roundPixels: true,
diff --git a/src/data/rooms.js b/src/data/rooms.js
index 8f1db880..541a58f4 100644
--- a/src/data/rooms.js
+++ b/src/data/rooms.js
@@ -71,6 +71,12 @@ const rooms = {
x: 828,
y: 520
},
+ 320: {
+ key: 'Dojo',
+ scene: require('@rooms/dojo/Dojo').default,
+ x: 400,
+ y: 680
+ },
321: {
key: 'DojoExt',
scene: require('@rooms/dojoext/DojoExt').default,
@@ -130,6 +136,14 @@ const rooms = {
scene: require('@rooms/cove/Cove').default,
x: 840,
y: 480
+ },
+ 951: {
+ key: 'Sensei',
+ scene: require('@rooms/../games/sensei/Sensei').default
+ },
+ 998: {
+ key: 'CardJitsu',
+ scene: require('@rooms/../games/card/CardJitsu').default
}
}
diff --git a/src/data/widgets.js b/src/data/widgets.js
index f3fc82eb..65e05b88 100644
--- a/src/data/widgets.js
+++ b/src/data/widgets.js
@@ -4,7 +4,12 @@ const widgets = {
'IglooCatalog': require('@scenes/interface/catalogs/igloo/IglooCatalog'),
'FindFour': require('@scenes/games/four/FindFour'),
- 'Map': require('@scenes/interface/game/map/Map')
+ 'Mancala': require('@scenes/games/mancala/Mancala'),
+ 'Map': require('@scenes/interface/game/map/Map'),
+ 'NinjaBelts': require('@scenes/interface/instructions/ninjabelts/NinjaBelts'),
+ 'NinjaInstructions': require('@scenes/interface/instructions/ninjainstructions/NinjaInstructions'),
+ 'NinjaProgress': require('@scenes/games/ninjaprogress/NinjaProgress'),
+ 'Sensei': require('@scenes/games/sensei/widget/SenseiWidget')
}
export default widgets
diff --git a/src/engine/interface/InterfaceController.js b/src/engine/interface/InterfaceController.js
index 10c01d9b..b401b0c3 100644
--- a/src/engine/interface/InterfaceController.js
+++ b/src/engine/interface/InterfaceController.js
@@ -94,8 +94,10 @@ export default class InterfaceController extends BaseScene {
this.bringToTop('IglooEdit')
}
- bringToTop(key) {
- this.scene.bringToTop(key)
+ bringToTop(key = null) {
+ if (key) {
+ this.scene.bringToTop(key)
+ }
// Keeps InterfaceController scene always on top, for prompts
this.scene.bringToTop()
diff --git a/src/engine/loaders/CardLoader.js b/src/engine/loaders/CardLoader.js
new file mode 100644
index 00000000..3faf1b28
--- /dev/null
+++ b/src/engine/loaders/CardLoader.js
@@ -0,0 +1,34 @@
+import BaseLoader from './BaseLoader'
+
+
+export default class CardLoader extends BaseLoader {
+
+ constructor(scene) {
+ super(scene)
+
+ this.baseURL = '/assets/media/games/card/icons/'
+ this.keyPrefix = 'card/icons/'
+ }
+
+ loadCard(card, callback) {
+ let key = this.getKey(card.id)
+
+ if (this.checkComplete('image', key, () => {
+ this.onFileComplete(key, card, callback)
+ })) {
+ return
+ }
+
+ this.image(key, `${card.id}.png`)
+ this.start()
+ }
+
+ onFileComplete(key, card, callback) {
+ if (!this.textureExists(key)) {
+ return
+ }
+
+ callback(key, card)
+ }
+
+}
diff --git a/src/engine/network/plugins/plugins/Item.js b/src/engine/network/plugins/plugins/Item.js
index be937e57..0a767529 100644
--- a/src/engine/network/plugins/plugins/Item.js
+++ b/src/engine/network/plugins/plugins/Item.js
@@ -24,12 +24,14 @@ export default class Item extends Plugin {
}
addItem(args) {
+ const item = parseInt(args.item)
+
// If item already in inventory
- if (this.client.inventory[args.slot].includes(args.item)) return
+ if (this.client.inventory[args.slot].includes(item)) return
// Update player data
this.client.coins = args.coins
- this.client.inventory[args.slot].push(args.item)
+ this.client.inventory[args.slot].push(item)
this.client.inventory[args.slot].sort((a, b) => a - b)
// Update player card
@@ -38,6 +40,12 @@ export default class Item extends Plugin {
// Update catalog coins
this.interface.updateCatalogCoins(args.coins)
+ // Check no purchase popup
+ const data = this.crumbs.items[item]
+ if ('no_purchase_popup' in data && data.no_purchase_popup === 1) {
+ return
+ }
+
// Show prompt
let text = `${args.name}\nhas been added to your inventory.`
this.interface.prompt.showWindow(text, 'single')
diff --git a/src/engine/network/plugins/plugins/MiniGame.js b/src/engine/network/plugins/plugins/MiniGame.js
index ad0cf140..0f15f106 100644
--- a/src/engine/network/plugins/plugins/MiniGame.js
+++ b/src/engine/network/plugins/plugins/MiniGame.js
@@ -11,6 +11,11 @@ export default class MiniGame extends Plugin {
}
gameOver(args) {
+ if (this.world.client.activeSeat) {
+ this.world.events.once('leftseat', () => this.gameOver(args))
+ return
+ }
+
// Difference in coins = coins earned
this.interface.prompt.showCoin(args.coins - this.world.client.coins)
diff --git a/src/engine/network/plugins/plugins/Table.js b/src/engine/network/plugins/plugins/Table.js
index e82edccf..f144faf6 100644
--- a/src/engine/network/plugins/plugins/Table.js
+++ b/src/engine/network/plugins/plugins/Table.js
@@ -10,6 +10,11 @@ export default class Table extends Plugin {
'join_table': this.joinTable,
'update_table': this.updateTable
}
+
+ this.types = {
+ 'four': 'FindFour',
+ 'mancala': 'Mancala'
+ }
}
getTables(args) {
@@ -19,8 +24,7 @@ export default class Table extends Plugin {
joinTable(args) {
this.world.client.sendMoveToSeat(args.table, args.seat)
- // Todo: load different tables
- this.interface.loadWidget('FindFour', true)
+ this.interface.loadWidget(this.types[args.game], true)
}
updateTable(args) {
diff --git a/src/engine/network/plugins/plugins/Waddle.js b/src/engine/network/plugins/plugins/Waddle.js
new file mode 100644
index 00000000..ee44e029
--- /dev/null
+++ b/src/engine/network/plugins/plugins/Waddle.js
@@ -0,0 +1,29 @@
+import Plugin from '../Plugin'
+
+
+export default class Waddle extends Plugin {
+
+ constructor(network) {
+ super(network)
+ this.events = {
+ 'get_waddles': this.getWaddles,
+ 'join_waddle': this.joinWaddle,
+ 'update_waddle': this.updateWaddle
+ }
+ }
+
+ getWaddles(args) {
+ this.world.room.setWaddles(args.waddles)
+ }
+
+ joinWaddle(args) {
+ this.interface.main.waddle.show(args.waddle, args.seat, args.game)
+ }
+
+ updateWaddle(args) {
+ if (this.world.room.isReady) {
+ this.interface.main.waddle.updateWaddle(args.waddle, args.seat, args.username)
+ }
+ }
+
+}
diff --git a/src/engine/world/WorldController.js b/src/engine/world/WorldController.js
index 00046493..c916790d 100644
--- a/src/engine/world/WorldController.js
+++ b/src/engine/world/WorldController.js
@@ -100,6 +100,10 @@ export default class WorldController extends BaseScene {
return buddy.online
}
+ isClientUsername(username) {
+ return username.toLowerCase() === this.client.penguin.username.toLowerCase()
+ }
+
getColor(id) {
return this.crumbs.colors[id - 1] || this.crumbs.colors[0]
}
diff --git a/src/engine/world/penguin/ClientController.js b/src/engine/world/penguin/ClientController.js
index 962d6720..863e8673 100644
--- a/src/engine/world/penguin/ClientController.js
+++ b/src/engine/world/penguin/ClientController.js
@@ -271,14 +271,23 @@ export default class ClientController {
this.network.send('join_table', { table: id })
}
- sendMoveToSeat(table, seat) {
- table = this.world.room.getTable(table)
+ sendMoveToSeat(id, seat, type = 'table') {
+ let container
+
+ switch (type) {
+ case 'table':
+ container = this.world.room.getTable(id)
+ break
+ case 'waddle':
+ container = this.world.room.getWaddle(id)
+ break
+ }
- if (!table) {
+ if (!container) {
return
}
- seat = table[`seat${seat}`]
+ seat = container[`seat${seat}`]
if (seat) {
this.activeSeat = seat
@@ -303,6 +312,7 @@ export default class ClientController {
}
this.activeSeat = null
+ this.world.events.emit('leftseat')
}
getSeatWorldPos(seat) {
diff --git a/src/engine/world/room/RoomFactory.js b/src/engine/world/room/RoomFactory.js
index e2b4e32e..5ff4a148 100644
--- a/src/engine/world/room/RoomFactory.js
+++ b/src/engine/world/room/RoomFactory.js
@@ -49,13 +49,15 @@ export default class RoomFactory {
}
createGame(args) {
- let crumb = this.games[args.game]
+ let config = this.games[args.game]
- if (crumb.flash) {
- this.world.ruffle.bootGame(crumb)
+ if (config.flash) {
+ this.world.ruffle.bootGame(config)
return
}
+
+ return this.createRoom({ room: args.game })
}
}
diff --git a/src/scenes/games/GameScene.js b/src/scenes/games/GameScene.js
index c455e053..57b23f69 100644
--- a/src/scenes/games/GameScene.js
+++ b/src/scenes/games/GameScene.js
@@ -27,7 +27,15 @@ export default class GameScene extends BaseScene {
this._create()
this.setMusic()
+
this.interface.hideLoading()
+ this.interface.bringToTop()
+
+ this.world.client.activeSeat = null
+ }
+
+ preload() {
+ this._preload()
}
stop() {
diff --git a/src/scenes/games/card/CardJitsu.js b/src/scenes/games/card/CardJitsu.js
new file mode 100644
index 00000000..bc67c873
--- /dev/null
+++ b/src/scenes/games/card/CardJitsu.js
@@ -0,0 +1,662 @@
+/* START OF COMPILED CODE */
+
+import GameScene from "../GameScene";
+import CardJitsuPlayer from "./CardJitsuPlayer";
+import Button from "../../components/Button";
+import CardJitsuHelp from "./help/CardJitsuHelp";
+import CardJitsuClock from "./clock/CardJitsuClock";
+/* START-USER-IMPORTS */
+
+import CardLoader from '@engine/loaders/CardLoader'
+import CardJitsuCard from './card/CardJitsuCard'
+import CardJitsuPower from './power/CardJitsuPower'
+
+import Rules from './Rules'
+
+/* END-USER-IMPORTS */
+
+export default class CardJitsu extends GameScene {
+
+ constructor() {
+ super("CardJitsu");
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.bg;
+ /** @type {CardJitsuPlayer} */
+ this.player2;
+ /** @type {CardJitsuPlayer} */
+ this.player1;
+ /** @type {Phaser.GameObjects.Image} */
+ this.closeButton;
+ /** @type {CardJitsuHelp} */
+ this.help;
+ /** @type {Phaser.GameObjects.Image} */
+ this.frame;
+ /** @type {CardJitsuClock} */
+ this.clock;
+ /** @type {Phaser.GameObjects.Image} */
+ this.spinner;
+ /** @type {Phaser.GameObjects.Text} */
+ this.username2;
+ /** @type {Phaser.GameObjects.Text} */
+ this.username1;
+ /** @type {CardJitsuPlayer[]} */
+ this.players;
+ /** @type {Phaser.GameObjects.Text[]} */
+ this.usernames;
+
+
+ /* START-USER-CTR-CODE */
+
+ window.card = this
+
+ this.music = '116'
+
+ /* END-USER-CTR-CODE */
+ }
+
+ /** @returns {void} */
+ _preload() {
+
+ this.load.pack("cardjitsu-pack", "assets/media/games/card/cardjitsu-pack.json");
+ }
+
+ /** @returns {void} */
+ _create() {
+
+ // bg
+ const bg = this.add.image(760, 480, "cardjitsu", "bg");
+
+ // player2
+ const player2 = new CardJitsuPlayer(this, 760, 480);
+ this.add.existing(player2);
+
+ // player1
+ const player1 = new CardJitsuPlayer(this, 760, 480);
+ this.add.existing(player1);
+ player1.scaleX = -1;
+ player1.scaleY = 1;
+
+ // closeButton
+ const closeButton = this.add.image(1464, 57, "cardjitsu", "close");
+
+ // help
+ const help = new CardJitsuHelp(this, 754, 24);
+ this.add.existing(help);
+
+ // panel
+ const panel = this.add.image(760, 854, "cardjitsu", "panel");
+ panel.setOrigin(0.500351370344343, 0.5);
+
+ // frame
+ const frame = this.add.image(758, 480, "cardjitsu", "frame");
+ frame.setOrigin(0.5003261578604045, 0.5005192107995846);
+
+ // clock
+ const clock = new CardJitsuClock(this, 760, 676);
+ this.add.existing(clock);
+ clock.visible = false;
+
+ // spinner
+ const spinner = this.add.image(760, 482, "cardjitsu", "spinner");
+
+ // username2
+ const username2 = this.add.text(1420, 736, "", {});
+ username2.setOrigin(1, 0);
+ username2.setStyle({ "align": "right", "color": "#000", "fixedWidth":410,"fontFamily": "CCComiccrazy", "fontSize": "28px", "fontStyle": "bold" });
+
+ // username1
+ const username1 = this.add.text(100, 736, "", {});
+ username1.setStyle({ "color": "#000", "fixedWidth":410,"fontFamily": "CCComiccrazy", "fontSize": "28px", "fontStyle": "bold" });
+
+ // lists
+ const players = [player1, player2];
+ const usernames = [username1, username2];
+
+ // closeButton (components)
+ const closeButtonButton = new Button(closeButton);
+ closeButtonButton.spriteName = "close";
+ closeButtonButton.callback = () => this.onCloseClick();
+
+ this.bg = bg;
+ this.player2 = player2;
+ this.player1 = player1;
+ this.closeButton = closeButton;
+ this.help = help;
+ this.frame = frame;
+ this.clock = clock;
+ this.spinner = spinner;
+ this.username2 = username2;
+ this.username1 = username1;
+ this.players = players;
+ this.usernames = usernames;
+
+ this.events.emit("scene-awake");
+ }
+
+
+ /* START-USER-CODE */
+
+ async create() {
+ this.container = this.add.dom(760, 480)
+ this.container.visible = false
+
+ this.battlesPath = 'assets/media/games/card/battles/'
+
+ this.events.once('emulator_ready', this.onEmulatorReady, this)
+
+ this.player = await this.loadEmulator()
+
+ super.create()
+
+ this.myPlayer
+ this.opponent
+
+ // Loader
+ this.cardLoader = new CardLoader(this)
+
+ this.onDealCardLoad = this.onDealCardLoad.bind(this)
+ this.onRevealCardLoad = this.onRevealCardLoad.bind(this)
+
+ // Spinner
+ this.tweens.add({
+ targets: this.spinner,
+ angle: { from: 0, to: 180 },
+ duration: 900,
+ repeat: -1,
+ ease: 'Cubic'
+ })
+
+ // Power effects
+ this.activePowers = []
+ this.powersQueue = []
+
+ this.events.on('battle_complete', this.onBattleComplete, this)
+
+ this.started = false
+
+ this.awards = [4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 104]
+ this.rankUp = null
+
+ this.addListeners()
+
+ this.help.depth = 2000
+ this.frame.depth = 2001
+
+ this.closeButton.on('pointerdown', this.playCloseSound, this)
+ }
+
+ // probably a better way than needing 2 functions for this
+ addListeners() {
+ this.network.events.on('start_game', this.handleStartGame, this)
+ this.network.events.on('send_deal', this.handleSendDeal, this)
+ this.network.events.on('send_opponent_deal', this.handleSendOpponentDeal, this)
+ this.network.events.on('pick_card', this.handlePickCard, this)
+ this.network.events.on('reveal_card', this.handleRevealCard, this)
+ this.network.events.on('judge', this.handleJudge, this)
+ this.network.events.on('winner', this.handleWinner, this)
+ this.network.events.on('close_game', this.handleCloseGame, this)
+ this.network.events.on('award', this.handleAward, this)
+ }
+
+ removeListeners() {
+ this.network.events.off('start_game', this.handleStartGame, this)
+ this.network.events.off('send_deal', this.handleSendDeal, this)
+ this.network.events.off('send_opponent_deal', this.handleSendOpponentDeal, this)
+ this.network.events.off('pick_card', this.handlePickCard, this)
+ this.network.events.off('reveal_card', this.handleRevealCard, this)
+ this.network.events.off('judge', this.handleJudge, this)
+ this.network.events.off('winner', this.handleWinner, this)
+ this.network.events.off('close_game', this.handleCloseGame, this)
+ this.network.events.off('close_game', this.handleCloseGame, this)
+ this.network.events.off('award', this.handleAward, this)
+ }
+
+ async loadEmulator() {
+ const ruffle = window.RufflePlayer.newest()
+ const player = ruffle.createPlayer()
+
+ this.container.setElement(player, {
+ width: '100%',
+ height: '100%',
+ pointerEvents: 'auto'
+ })
+
+ // Position dom below canvas
+ this.game.domContainer.style.zIndex = -10
+
+ await player.load({
+ url: 'assets/media/games/card/battle.swf',
+ allowScriptAccess: true,
+ menu: false,
+ contextMenu: false,
+ scale: 'noborder',
+ autoplay: 'on',
+
+ logLevel: 'info',
+ splashScreen: false
+ })
+
+ return player
+ }
+
+ onEmulatorReady() {
+ this.bg.visible = false
+ this.container.visible = true
+
+ this.network.send('start_game')
+ }
+
+ getBattlesPath() {
+ return this.battlesPath
+ }
+
+ getColor(seat) {
+ return this.players[seat].color
+ }
+
+ getSensei(seat) {
+ return this.players[seat].sensei
+ }
+
+ getRank(seat) {
+ return this.players[seat].rank
+ }
+
+ handleStartGame(args) {
+ for (let user of args.users) {
+ this.setPlayer(user, args.users.indexOf(user))
+ }
+
+ this.spinner.visible = false
+ this.playBattle('walk')
+
+ this.started = true
+ }
+
+ handleSendDeal(args) {
+ for (let card of args.cards) {
+ this.cardLoader.loadCard(card, this.onDealCardLoad)
+ }
+ }
+
+ handleSendOpponentDeal(args) {
+ for (let i = 0; i < args.deal; i++) {
+ let cardPrefab = this.createCard()
+
+ cardPrefab.init(this.opponent, 'back')
+ }
+ }
+
+ handlePickCard(args) {
+ if (this.opponent.pick) {
+ this.events.once('remove_pick', () => this.handlePickCard(args))
+ return
+ }
+
+ let card = this.opponent.dealtCards[args.card]
+ this.opponent.pickCard(card)
+ }
+
+ handleRevealCard(args) {
+ this.cardLoader.loadCard(args.card, this.onRevealCardLoad)
+ }
+
+ handleJudge(args) {
+ let cardPrefab = this.opponent.pick
+
+ cardPrefab.setState('reveal')
+
+ this.events.once('flipped', () => this.onFlipped(args.winner))
+ }
+
+ handleWinner(args) {
+ // Remove original handler
+ this.events.off('battle_complete')
+
+ this.events.once('battle_complete', () => this.onLastBattle(args.winner, args.cards))
+ }
+
+ handleCloseGame(args) {
+ this.interface.prompt.showWindow(this.getFormatString('player_quit_prompt', args.username))
+
+ // remove this delay when BUG with 2 players joining the same room at exactly the same time is fixed
+ // currently add_player breaks because the previous room hasn't shut down yet
+ this.time.delayedCall(500, () => this.sendLeaveGame())
+ }
+
+ handleAward(args) {
+ this.rankUp = args.rank
+
+ this.addAward(this.awards[args.rank - 1])
+ }
+
+ addAward(award) {
+ let type = award == 104 ? 'face' : 'body'
+
+ // this should be abstracted, user inventory could be its own class
+ if (this.world.client.inventory[type].includes(award)) {
+ return
+ }
+
+ this.world.client.inventory[type].push(award)
+ this.world.client.inventory[type].sort((a, b) => a - b)
+ }
+
+ setPlayer(user, index) {
+ let player = this.players[index]
+ player.set(user)
+
+ if (this.world.isClientUsername(user.username)) {
+ this.myPlayer = player
+ } else {
+ this.opponent = player
+ }
+ }
+
+ onBattleComplete() {
+ this.playBattle('ambient')
+
+ this.network.send('send_deal')
+ }
+
+ onFlipped(winner) {
+ if (winner == -1) {
+ this.onFlippedTie()
+ } else {
+ this.onFlippedWin(winner)
+ }
+
+ this.checkPowersOnPlayed()
+
+ this.processPowers()
+ }
+
+ onFlippedTie() {
+ this.events.once('powers_complete', this.judgeTie, this)
+ }
+
+ onFlippedWin(winner) {
+ let winCard = this.players[winner].pick
+
+ this.checkPowerOnScored(this.players[winner], winCard)
+
+ this.events.once('powers_complete', () => this.judge(winner, winCard))
+ }
+
+ // powers start
+
+ checkPowersOnPlayed() {
+ this.checkPowerOnPlayed(this.player1, this.player1.pick)
+ this.checkPowerOnPlayed(this.player2, this.player2.pick)
+ }
+
+ checkPowerOnPlayed(player, card) {
+ if (this.hasPower(card) && Rules.onPlayed.includes(card.powerId)) {
+ this.addPower(player, card)
+ }
+ }
+
+ checkPowerOnScored(player, card) {
+ if (this.hasPower(card) && !Rules.onPlayed.includes(card.powerId)) {
+ this.addPower(player, card)
+ }
+ }
+
+ hasPower(card) {
+ return card.powerId > 0
+ }
+
+ addPower(player, card) {
+ if (card.powerId == 1) {
+ let hasReverse = this.activePowers.some(power => power.isReverseEffect & power.isPick)
+
+ if (hasReverse) {
+ return
+ }
+ }
+
+ let power = new CardJitsuPower(this, player, card)
+
+ this.add.existing(power)
+
+ this.activePowers.push(power)
+ }
+
+ removePower(power) {
+ let index = this.activePowers.indexOf(power)
+
+ this.activePowers.splice(index, 1)
+ }
+
+ processPowers() {
+ this.powersQueue = this.activePowers.slice()
+
+ this.nextPower()
+ }
+
+ nextPower() {
+ if (!this.powersQueue.length) {
+ this.events.emit('powers_complete')
+ return
+ }
+
+ let next = this.powersQueue.shift()
+
+ next.process()
+ }
+
+ // powers end
+
+ onDealCardLoad(key, card) {
+ let cardPrefab = this.createCard()
+
+ cardPrefab.init(this.myPlayer, 'front', card)
+ cardPrefab.icon.setTexture(key)
+ }
+
+ onRevealCardLoad(key, card) {
+ let cardPrefab = this.opponent.pick
+
+ cardPrefab.updateCard(card)
+ cardPrefab.icon.setTexture(key)
+ }
+
+ onLastBattle(winSeat, winCards = []) {
+ this.playBattle('ambient')
+
+ let winner = this.players[winSeat]
+ let cards = winner.findWins(winCards)
+
+ for (let i = 0; i < cards.length; i++) {
+ cards[i].tweenToOver(i)
+ }
+
+ this.soundManager.play('end')
+
+ this.time.delayedCall(1000, () => this.playGameOver(winSeat, !winCards.length))
+ }
+
+ onCloseClick() {
+ if (!this.started) {
+ this.sendLeaveGame()
+ return
+ }
+
+ this.showCloseGamePrompt()
+ }
+
+ getOppositeSeat(seat) {
+ return (seat + 1) % 2
+ }
+
+ playBattle(battle, winSeat = null) {
+ this.player.loadBattle(battle, winSeat)
+ }
+
+ createCard() {
+ let card = new CardJitsuCard(this)
+ this.add.existing(card)
+
+ return card
+ }
+
+ allCardsDealt() {
+ this.myPlayer.enableCards()
+ this.updateDisabledCards()
+
+ this.clock.start()
+ this.help.unlock()
+ }
+
+ updateDisabledCards() {
+ let limit = this.activePowers.find(power => power.isLimiter && power.player != this.myPlayer)
+
+ if (limit) {
+ this.disableElement(limit)
+ }
+ }
+
+ disableElement(power) {
+ let element = Rules.limiters[power.powerId]
+
+ this.myPlayer.disableElement(element)
+ }
+
+ timeUp() {
+ let pickable = this.myPlayer.pickableCards
+
+ if (pickable.length) {
+ let random = Phaser.Math.RND.pick(pickable)
+
+ this.pickCard(random)
+ }
+ }
+
+ pickCard(card) {
+ if (this.myPlayer.pick || !this.myPlayer.pickableCards.includes(card)) {
+ return
+ }
+
+ this.myPlayer.pickCard(card)
+ this.network.send('pick_card', { card: card.id })
+
+ this.clock.stop()
+ this.help.lock()
+ }
+
+ judge(winner, winCard) {
+ if (winner == this.myPlayer.seat) {
+ this.judgeWin(winner, winCard)
+ } else {
+ this.judgeLoss(winner, winCard)
+ }
+ }
+
+ judgeTie() {
+ this.players.forEach(player => player.cardLose())
+
+ this.playBattle('tie')
+ this.soundManager.play('tie')
+ }
+
+ judgeWin(winSeat, winCard) {
+ this.myPlayer.cardWin()
+ this.opponent.cardLose()
+
+ this.judgePlayBattle(winSeat, winCard)
+ }
+
+ judgeLoss(winSeat, winCard) {
+ this.myPlayer.cardLose()
+ this.opponent.cardWin()
+
+ this.judgePlayBattle(winSeat, winCard)
+ }
+
+ judgePlayBattle(winSeat, winCard) {
+ let battle = winCard.powerId == 0 ? winCard.elementId : `pow_${winCard.id}`
+
+ this.playBattle(battle, winSeat)
+ }
+
+ playGameOver(winSeat, hasNoCards) {
+ this.playBattle('tie')
+
+ let callback = () => this.time.delayedCall(500, () => this.showGameOverPrompt(winSeat, hasNoCards))
+
+ this.events.once('battle_complete', callback)
+ }
+
+ showCloseGamePrompt() {
+ this.interface.prompt.showWindow(this.getString('quit_game_prompt'), 'dual', () => {
+ this.sendLeaveGame()
+
+ this.interface.prompt.window.visible = false
+ })
+ }
+
+ showGameOverPrompt(winSeat, hasNoCards) {
+ let message = this.getGameOverMessage(winSeat, hasNoCards)
+
+ this.interface.prompt.showWindow(message, 'single', () => {
+ this.winsPromptCallback()
+
+ this.interface.prompt.window.visible = false
+ })
+ }
+
+ getGameOverMessage(winSeat, hasNoCards) {
+ let username = this.players[winSeat].username
+ let message = this.getFormatString('wins', username)
+
+ if (!hasNoCards) {
+ return message
+ }
+
+ let loserUsername = this.players[this.getOppositeSeat(winSeat)].username
+ let loserMessage = this.getFormatString('sudden_death', loserUsername)
+
+ return `${loserMessage}\n${message}`
+ }
+
+ winsPromptCallback() {
+ if (!this.rankUp) {
+ this.sendLeaveGame()
+ return
+ }
+
+ this.interface.events.once('sensei_ready', () => {
+ this.interface.loadedWidgets.Sensei.rankUp(this.rankUp)
+ })
+
+ this.interface.loadWidget('Sensei')
+ }
+
+ sendLeaveGame() {
+ this.network.send('leave_game')
+ this.leaveGame()
+ }
+
+ leaveGame() {
+ this.removeListeners()
+
+ // destroying room scene would remove need to remove these events
+ this.events.off('battle_complete')
+ this.events.off('flipped')
+ this.events.off('remove_pick')
+ this.events.off('powers_complete')
+
+ this.game.domContainer.style.zIndex = 'auto'
+
+ this.world.client.sendJoinLastRoom()
+ }
+
+ playCloseSound() {
+ this.soundManager.play('switch')
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/card/CardJitsu.scene b/src/scenes/games/card/CardJitsu.scene
new file mode 100644
index 00000000..848e3518
--- /dev/null
+++ b/src/scenes/games/card/CardJitsu.scene
@@ -0,0 +1,217 @@
+{
+ "id": "594505eb-e825-43c4-87c4-a1394daaa2e7",
+ "sceneType": "SCENE",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "GameScene",
+ "preloadMethodName": "_preload",
+ "preloadPackFiles": [
+ "yukon/assets/media/games/card/cardjitsu-pack.json"
+ ],
+ "createMethodName": "_create",
+ "sceneKey": "CardJitsu",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Image",
+ "id": "c12c3e43-59eb-4f80-ad9a-810a06c53763",
+ "label": "bg",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "bg"
+ },
+ "x": 760,
+ "y": 480
+ },
+ {
+ "prefabId": "2c95b708-e07e-4a6b-ad34-afb595594583",
+ "id": "3f476cde-316b-42f5-ad18-da70ada1474d",
+ "unlock": [
+ "x",
+ "y",
+ "username",
+ "usernameText"
+ ],
+ "label": "player2",
+ "scope": "CLASS",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "prefabId": "2c95b708-e07e-4a6b-ad34-afb595594583",
+ "id": "6fd982c9-843f-4778-899e-de82fbcde04d",
+ "unlock": [
+ "x",
+ "y",
+ "scaleX",
+ "scaleY",
+ "username",
+ "usernameText"
+ ],
+ "label": "player1",
+ "scope": "CLASS",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "scaleX": -1,
+ "scaleY": 1,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "type": "Image",
+ "id": "7a0d7dac-7b59-4a80-bc52-f98bbe8639bd",
+ "label": "closeButton",
+ "scope": "CLASS",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "close",
+ "Button.callback": "() => this.onCloseClick()",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "close"
+ },
+ "x": 1464,
+ "y": 57
+ },
+ {
+ "prefabId": "94535fbd-178b-46f2-a995-1dd72d803895",
+ "id": "a1e810c2-0719-4c82-b4c9-f0d891121829",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "help",
+ "scope": "CLASS",
+ "components": [],
+ "x": 754,
+ "y": 24,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "type": "Image",
+ "id": "db30b7ad-1640-42d2-836d-9ac3e76bee29",
+ "label": "panel",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "panel"
+ },
+ "x": 760,
+ "y": 854,
+ "originX": 0.500351370344343
+ },
+ {
+ "type": "Image",
+ "id": "9e6b3a10-20e4-48fb-95b7-8e3259b670c4",
+ "label": "frame",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "frame"
+ },
+ "x": 758,
+ "y": 480,
+ "originX": 0.5003261578604045,
+ "originY": 0.5005192107995846
+ },
+ {
+ "prefabId": "ebed3022-bcec-4b40-b9a2-de88069e87b6",
+ "id": "5ae193e4-747e-4c9e-a9b1-33e45c465696",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "clock",
+ "scope": "CLASS",
+ "components": [],
+ "x": 760,
+ "y": 676,
+ "visible": false,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "type": "Image",
+ "id": "0c63a625-f56a-40e1-8863-870ad03ce58f",
+ "label": "spinner",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "spinner"
+ },
+ "x": 760,
+ "y": 482
+ },
+ {
+ "type": "Text",
+ "id": "a3698971-d213-46ce-b701-03bf7dd7a7ed",
+ "label": "username2",
+ "scope": "CLASS",
+ "components": [],
+ "x": 1420,
+ "y": 736,
+ "originX": 1,
+ "fixedWidth": 410,
+ "align": "right",
+ "fontFamily": "CCComiccrazy",
+ "fontSize": "28px",
+ "fontStyle": "bold",
+ "color": "#000"
+ },
+ {
+ "type": "Text",
+ "id": "c54766f1-4ebc-4dc0-b3a4-b119c06d9faf",
+ "label": "username1",
+ "scope": "CLASS",
+ "components": [],
+ "x": 100,
+ "y": 736,
+ "fixedWidth": 410,
+ "fontFamily": "CCComiccrazy",
+ "fontSize": "28px",
+ "fontStyle": "bold",
+ "color": "#000"
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ },
+ "lists": [
+ {
+ "id": "6ce89abe-2ddb-4c0a-a242-5e92240d350e",
+ "label": "players",
+ "objectIds": [
+ "6fd982c9-843f-4778-899e-de82fbcde04d",
+ "3f476cde-316b-42f5-ad18-da70ada1474d"
+ ]
+ },
+ {
+ "id": "612a85bc-48d2-4a9f-a377-75a400da8bca",
+ "label": "usernames",
+ "objectIds": [
+ "c54766f1-4ebc-4dc0-b3a4-b119c06d9faf",
+ "a3698971-d213-46ce-b701-03bf7dd7a7ed"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/games/card/CardJitsuPlayer.js b/src/scenes/games/card/CardJitsuPlayer.js
new file mode 100644
index 00000000..be019531
--- /dev/null
+++ b/src/scenes/games/card/CardJitsuPlayer.js
@@ -0,0 +1,164 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class CardJitsuPlayer extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /* START-USER-CTR-CODE */
+
+ this.seat
+ this.username
+
+ this.color
+ this.sensei
+ this.rank
+
+ this.dealtCards = new Array(5).fill(null)
+ this.pick
+
+ this.wins = []
+ this.losses = []
+
+ /* END-USER-CTR-CODE */
+ }
+
+ /* START-USER-CODE */
+
+ get usernameText() {
+ return this.scene.usernames[this.seat]
+ }
+
+ get dealtNotNull() {
+ return this.dealtCards.filter(Boolean)
+ }
+
+ get pickableCards() {
+ return this.dealtNotNull.filter(card => !card.isDisabled)
+ }
+
+ getElementWins(element) {
+ return this.wins.filter(win => win.elementId == element)
+ }
+
+ getColorWins(color) {
+ return this.wins.filter(win => win.color == color)
+ }
+
+ set(user) {
+ this.seat = this.scene.players.indexOf(this)
+
+ this.username = user.username
+ this.usernameText.text = user.username.toUpperCase()
+
+ this.color = this.world.getColor(user.color)
+
+ this.sensei = user.sensei || false
+
+ this.rank = user.ninjaRank
+ }
+
+ pickCard(card) {
+ this.disableCards()
+
+ let index = this.dealtCards.indexOf(card)
+ this.dealtCards[index] = null
+
+ card.setState('pick')
+ this.pick = card
+ }
+
+ cardWin() {
+ if (!this.pick) {
+ return
+ }
+
+ this.wins.push(this.pick)
+
+ this.pick.setState('thumbnail')
+ this.removePick()
+ }
+
+ cardLose() {
+ if (!this.pick) {
+ return
+ }
+
+ this.losses.push(this.pick)
+
+ this.pick.explode()
+ this.removePick()
+ }
+
+ removePick() {
+ this.pick = null
+
+ if (this === this.scene.opponent) {
+ this.scene.events.emit('remove_pick')
+ }
+ }
+
+ enableCards() {
+ for (let dealt of this.dealtNotNull) {
+ dealt.enableInput()
+ }
+ }
+
+ disableCards() {
+ for (let dealt of this.dealtNotNull) {
+ dealt.disableInput()
+ }
+ }
+
+ findWins(find) {
+ return this.wins.filter(card => find.includes(card.id))
+ }
+
+ disableElement(element) {
+ for (let card of this.dealtNotNull) {
+ if (card.elementId == element) {
+ card.disableCard()
+ }
+ }
+ }
+
+ discardElement(element) {
+ let elementWins = this.getElementWins(element)
+
+ if (elementWins.length) {
+ this.discardCard(elementWins.pop())
+ }
+ }
+
+ discardColor(color) {
+ let colorWins = this.getColorWins(color)
+
+ // Order by element
+ let order = { f: 1, w: 2, s: 3 }
+ colorWins.sort((a, b) => order[a.elementId] - order[b.elementId])
+
+ if (colorWins.length) {
+ this.discardCard(colorWins.shift())
+ }
+ }
+
+ discardCard(card) {
+ this.wins.splice(this.wins.indexOf(card), 1)
+
+ card.destroy()
+ }
+
+ arrangeWinCards() {
+ for (let card of this.wins) {
+ card.tweenToWin()
+ }
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/card/CardJitsuPlayer.scene b/src/scenes/games/card/CardJitsuPlayer.scene
new file mode 100644
index 00000000..0f3c8429
--- /dev/null
+++ b/src/scenes/games/card/CardJitsuPlayer.scene
@@ -0,0 +1,34 @@
+{
+ "id": "2c95b708-e07e-4a6b-ad34-afb595594583",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "b231576b-de89-413b-8255-8a717b8986e4",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": []
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/card/Rules.js b/src/scenes/games/card/Rules.js
new file mode 100644
index 00000000..0d44267a
--- /dev/null
+++ b/src/scenes/games/card/Rules.js
@@ -0,0 +1,29 @@
+export default {
+ onPlayed: [1, 16, 17, 18],
+ currentRound: [4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 17, 18],
+ affectsOwnPlayer: [2],
+
+ discardElements: {
+ 4: 's',
+ 5: 'w',
+ 6: 'f'
+ },
+ discardColors: {
+ 7: 'r',
+ 8: 'b',
+ 9: 'g',
+ 10: 'y',
+ 11: 'o',
+ 12: 'p'
+ },
+ replacements: {
+ 16: ['w', 'f'],
+ 17: ['s', 'w'],
+ 18: ['f', 's']
+ },
+ limiters: {
+ 13: 's',
+ 14: 'f',
+ 15: 'w'
+ }
+}
diff --git a/src/scenes/games/card/card/CardJitsuCard.js b/src/scenes/games/card/card/CardJitsuCard.js
new file mode 100644
index 00000000..9b1910a3
--- /dev/null
+++ b/src/scenes/games/card/card/CardJitsuCard.js
@@ -0,0 +1,450 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import CardJitsuThumb from "./CardJitsuThumb";
+import CardJitsuHint from "./CardJitsuHint";
+import CardJitsuExplosion from "./explosion/CardJitsuExplosion";
+/* START-USER-IMPORTS */
+
+import layout from '../layout'
+
+/* END-USER-IMPORTS */
+
+export default class CardJitsuCard extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 750, y ?? 1000);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.shadow;
+ /** @type {Phaser.GameObjects.Image} */
+ this.hover;
+ /** @type {Phaser.GameObjects.Image} */
+ this.back;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.glow;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.icon;
+ /** @type {Phaser.GameObjects.Image} */
+ this.colorSprite;
+ /** @type {Phaser.GameObjects.Image} */
+ this.element;
+ /** @type {Phaser.GameObjects.Image} */
+ this.disabled;
+ /** @type {Phaser.GameObjects.Text} */
+ this.valueText;
+ /** @type {CardJitsuThumb} */
+ this.thumbnail;
+ /** @type {CardJitsuHint} */
+ this.hint;
+ /** @type {CardJitsuExplosion} */
+ this.explosion;
+
+
+ // shadow
+ const shadow = scene.add.image(99, 111, "cardjitsu", "card/shadow");
+ this.add(shadow);
+
+ // hover
+ const hover = scene.add.image(95, 107, "cardjitsu", "card/hover");
+ hover.visible = false;
+ this.add(hover);
+
+ // back
+ const back = scene.add.image(95, 107, "cardjitsu", "card/back");
+ back.visible = false;
+ this.add(back);
+
+ // glow
+ const glow = scene.add.sprite(95, 105, "cardjitsu", "card/glow0001");
+ glow.visible = false;
+ glow.alpha = 0.5;
+ glow.alphaTopLeft = 0.5;
+ glow.alphaTopRight = 0.5;
+ glow.alphaBottomLeft = 0.5;
+ glow.alphaBottomRight = 0.5;
+ this.add(glow);
+
+ // icon
+ const icon = scene.add.sprite(1, 1, "_MISSING");
+ icon.setOrigin(0, 0);
+ icon.visible = false;
+ this.add(icon);
+
+ // colorSprite
+ const colorSprite = scene.add.image(95, 107, "cardjitsu", "card/color");
+ colorSprite.tintTopLeft = 1132705;
+ colorSprite.tintTopRight = 1132705;
+ colorSprite.tintBottomLeft = 1132705;
+ colorSprite.tintBottomRight = 1132705;
+ this.add(colorSprite);
+
+ // element
+ const element = scene.add.image(28, 28, "cardjitsu", "card/f");
+ element.setOrigin(0.5116279069767442, 0.5128205128205128);
+ this.add(element);
+
+ // disabled
+ const disabled = scene.add.image(95, 107, "cardjitsu", "card/disabled");
+ disabled.visible = false;
+ this.add(disabled);
+
+ // valueText
+ const valueText = scene.add.text(1, 48, "", {});
+ valueText.text = "88";
+ valueText.setStyle({ "align": "center", "color": "#000", "fixedWidth":52,"fontFamily": "Burbank Big Regular", "fontSize": "38px", "fontStyle": "bold" });
+ this.add(valueText);
+
+ // thumbnail
+ const thumbnail = new CardJitsuThumb(scene, 47, 45);
+ thumbnail.visible = false;
+ this.add(thumbnail);
+
+ // hint
+ const hint = new CardJitsuHint(scene, 95, -120);
+ hint.visible = false;
+ this.add(hint);
+
+ // explosion
+ const explosion = new CardJitsuExplosion(scene, 101, 129);
+ explosion.visible = false;
+ this.add(explosion);
+
+ this.shadow = shadow;
+ this.hover = hover;
+ this.back = back;
+ this.glow = glow;
+ this.icon = icon;
+ this.colorSprite = colorSprite;
+ this.element = element;
+ this.disabled = disabled;
+ this.valueText = valueText;
+ this.thumbnail = thumbnail;
+ this.hint = hint;
+ this.explosion = explosion;
+
+ /* START-USER-CTR-CODE */
+
+ this.player
+ this.state
+
+ this.id
+ this.powerId
+ this.description
+ this.elementId
+
+ this.spacer
+ this.color
+ this.glow
+
+ this.tween
+
+ this.glow.anims.play('card/glow')
+
+ this.on('pointerup', this.onUp, this)
+ this.on('pointerover', this.onOver, this)
+ this.on('pointerout', this.onOut, this)
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ get isDisabled() {
+ return this.disabled.visible
+ }
+
+ init(player, state, card = null) {
+ if (!player.dealtCards.includes(null)) {
+ return
+ }
+
+ this.player = player
+
+ let empty = player.dealtCards.indexOf(null)
+ player.dealtCards[empty] = this
+
+ if (card) {
+ this.updateCard(card)
+ }
+
+ this.updateDepth()
+ this.setState(state)
+
+ this.tweenToDealt(empty)
+ }
+
+ get isPowerCard() {
+ return this.powerId > 0
+ }
+
+ updateCard(card) {
+ let tint = layout.colors[card.color].color
+
+ this.id = card.id
+ this.powerId = card.powerId
+ this.elementId = card.element
+ this.value = card.value
+ this.color = card.color
+
+ this.description = this.powerId
+ ? this.getString(`pow_${this.powerId}`)
+ : ''
+
+ this.valueText.text = card.value
+ this.colorSprite.tint = tint
+
+ this.element.setFrame(`card/${card.element}`)
+
+ if (this.isPowerCard) {
+ this.glow.tint = tint
+ }
+
+ this.thumbnail.color.tint = tint
+ this.thumbnail.element.setFrame(`card/thumbnail/${card.element}`)
+ }
+
+ setState(state) {
+ this.state = state
+
+ switch (state) {
+ case 'back':
+ this.setStateBack()
+ break
+ case 'pick':
+ this.setStatePick()
+ break
+ case 'reveal':
+ this.setStateReveal()
+ break
+ case 'thumbnail':
+ this.setStateThumbnail()
+ break
+ default:
+ this.setStateFront()
+ break
+ }
+ }
+
+ setStateFront() {
+ this.scale = layout.scale.front
+ this.spacer = layout.spacer.dealtFront
+
+ this.showFrontSprites(true)
+ }
+
+ setStateBack() {
+ this.scale = layout.scale.back
+ this.spacer = layout.spacer.dealtBack
+
+ this.showFrontSprites(false)
+ }
+
+ setStatePick() {
+ this.scale = layout.scale.pick
+
+ if (!this.tween) {
+ this.tweenToPick()
+ return
+ }
+
+ this.tween.once('complete', this.tweenToPick, this)
+ }
+
+ setStateReveal() {
+ this.scale = layout.scale.pick
+
+ if (!this.tween) {
+ this.revealCard()
+ return
+ }
+
+ this.tween.once('complete', this.revealCard, this)
+ }
+
+ setStateThumbnail() {
+ this.spacer = layout.spacer.win
+
+ this.list.map(sprite => sprite.visible = false)
+ this.thumbnail.visible = true
+
+ this.tweenToWin()
+ }
+
+ showFrontSprites(show) {
+ this.thumbnail.visible = false
+ this.back.visible = !show
+ this.valueText.visible = show
+ this.element.visible = show
+ this.colorSprite.visible = show
+ this.icon.visible = show
+ this.glow.visible = show && this.isPowerCard
+ }
+
+ tweenToDealt(empty) {
+ let seat = this.player.seat
+
+ let pos = layout.pos.dealts[seat]
+
+ let x = (seat === 0)
+ ? pos.x + (this.spacer * empty)
+ : pos.x - (this.spacer * empty) - this.spacer
+
+ this.tweenTo(x, pos.y)
+
+ this.tween.once('complete', this.onTweenToDealtComplete, this)
+ }
+
+ onTweenToDealtComplete() {
+ if (this.player != this.scene.myPlayer) {
+ return
+ }
+
+ for (let card of this.player.dealtNotNull) {
+ if (card.tween) {
+ return
+ }
+ }
+
+ this.scene.allCardsDealt()
+ }
+
+ tweenToPick() {
+ this.scale = layout.scale.pick
+
+ let pos = layout.pos.picks[this.player.seat]
+
+ this.tweenTo(pos.x, pos.y)
+ }
+
+ tweenToWin() {
+ let pos = layout.pos.wins[this.player.seat][this.elementId]
+
+ let wins = this.player.getElementWins(this.elementId)
+ let index = wins.indexOf(this) + 1
+
+ let y = pos.y + (this.spacer * index)
+
+ this.tweenTo(pos.x, y)
+
+ this.tween.once('complete', this.updateDepth, this)
+ }
+
+ tweenToOver(cardIndex) {
+ if (this.tween) {
+ this.tween.once('complete', () => this.tweenToOver(cardIndex))
+ return
+ }
+
+ let spacer = layout.spacer.out
+
+ let pos = layout.pos.over[this.player.seat]
+
+ let x = pos.x + (spacer * cardIndex)
+
+ this.tweenTo(x, pos.y)
+ }
+
+ tweenTo(x, y) {
+ this.tween = this.scene.tweens.add({
+ targets: this,
+ duration: 500,
+
+ x: x,
+ y: y
+ })
+
+ this.tween.once('complete', this.removeTween, this)
+ }
+
+ removeTween() {
+ if (!this.tween) {
+ return
+ }
+
+ this.tween.remove()
+ this.tween = null
+ }
+
+ revealCard() {
+ this.scene.time.delayedCall(1000, () => this.flip())
+ }
+
+ flip() {
+ let timeline = this.scene.tweens.createTimeline({
+ onComplete: () => this.scene.time.delayedCall(500, () => this.scene.events.emit('flipped'))
+ })
+
+ timeline.add({
+ targets: this,
+ duration: 250,
+
+ x: this.x + this.back.width / 2,
+ scaleX: 0,
+
+ onComplete: () => this.showFrontSprites(true)
+ })
+
+ timeline.add({
+ targets: this,
+ duration: 250,
+
+ x: this.x,
+ scaleX: 1,
+ })
+
+ timeline.play()
+ }
+
+ enableInput() {
+ this.setSize(this.colorSprite.width, this.colorSprite.height)
+ this.setInteractive()
+
+ // Offset
+ this.input.hitArea.x = this.colorSprite.x
+ this.input.hitArea.y = this.colorSprite.y
+
+ this.disabled.visible = false
+ }
+
+ disableInput() {
+ this.disableInteractive()
+ this.onOut()
+ }
+
+ disableCard() {
+ this.disableInput()
+ this.disabled.visible = true
+ }
+
+ onUp() {
+ this.scene.pickCard(this)
+ }
+
+ onOver() {
+ this.hover.visible = true
+
+ if (this.isPowerCard) {
+ this.hint.show()
+ }
+ }
+
+ onOut() {
+ this.hover.visible = false
+
+ this.hint.close()
+ }
+
+ updateDepth() {
+ this.depth = this.y
+ }
+
+ explode() {
+ this.explosion.show()
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/card/card/CardJitsuCard.scene b/src/scenes/games/card/card/CardJitsuCard.scene
new file mode 100644
index 00000000..2d873272
--- /dev/null
+++ b/src/scenes/games/card/card/CardJitsuCard.scene
@@ -0,0 +1,202 @@
+{
+ "id": "a407308b-445f-4a78-a4f2-b93495772216",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "6c346f50-1d14-4573-89dc-cad5ae046a9c",
+ "label": "container_1",
+ "x": 750,
+ "y": 1000,
+ "list": [
+ {
+ "type": "Image",
+ "id": "947a2411-722b-4b2f-9f67-60ba43f40807",
+ "label": "shadow",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/shadow"
+ },
+ "x": 99,
+ "y": 111
+ },
+ {
+ "type": "Image",
+ "id": "468a9224-d66e-4a4e-abac-23255c005723",
+ "label": "hover",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/hover"
+ },
+ "x": 95,
+ "y": 107,
+ "visible": false
+ },
+ {
+ "type": "Image",
+ "id": "e2a1144d-f852-45e0-820c-963e0b038b76",
+ "label": "back",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/back"
+ },
+ "x": 95,
+ "y": 107,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "a753f951-e279-4ec6-9e49-d1af7527c434",
+ "label": "glow",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/glow0001"
+ },
+ "x": 95,
+ "y": 105,
+ "visible": false,
+ "alpha": 0.5,
+ "alphaTopLeft": 0.5,
+ "alphaTopRight": 0.5,
+ "alphaBottomLeft": 0.5,
+ "alphaBottomRight": 0.5
+ },
+ {
+ "type": "Sprite",
+ "id": "9aca60f5-218c-4d87-a2ad-c661e35b5f74",
+ "label": "icon",
+ "scope": "CLASS",
+ "texture": {},
+ "x": 1,
+ "y": 1,
+ "originX": 0,
+ "originY": 0,
+ "visible": false
+ },
+ {
+ "type": "Image",
+ "id": "c6c0d21a-8e8a-4c4f-b867-7a5ae4b43e0e",
+ "label": "colorSprite",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/color"
+ },
+ "x": 95,
+ "y": 107,
+ "tintTopLeft": "#1148a1",
+ "tintTopRight": "#1148a1",
+ "tintBottomLeft": "#1148a1",
+ "tintBottomRight": "#1148a1"
+ },
+ {
+ "type": "Image",
+ "id": "28a70a05-3a13-4981-ba5e-01ec1a854dec",
+ "label": "element",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/f"
+ },
+ "x": 28,
+ "y": 28,
+ "originX": 0.5116279069767442,
+ "originY": 0.5128205128205128
+ },
+ {
+ "type": "Image",
+ "id": "efa94a48-8431-4d8e-81e2-294e2a7f2846",
+ "label": "disabled",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/disabled"
+ },
+ "x": 95,
+ "y": 107,
+ "visible": false
+ },
+ {
+ "type": "Text",
+ "id": "10b504e1-dd20-411b-83e8-31df0743d59c",
+ "label": "valueText",
+ "scope": "CLASS",
+ "x": 1,
+ "y": 48,
+ "text": "88",
+ "fixedWidth": 52,
+ "align": "center",
+ "fontFamily": "Burbank Big Regular",
+ "fontSize": "38px",
+ "fontStyle": "bold",
+ "color": "#000"
+ },
+ {
+ "prefabId": "f44f8f17-7031-4845-aaba-fc842a544771",
+ "id": "23b26ff4-5fed-4419-b975-ead0216911c4",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "thumbnail",
+ "scope": "CLASS",
+ "x": 47,
+ "y": 45,
+ "visible": false
+ },
+ {
+ "prefabId": "f7bc21d3-944c-4122-96b0-93ea4388bcff",
+ "id": "0d7b3b9b-993f-444e-83fa-2198e18910f7",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "hint",
+ "scope": "CLASS",
+ "x": 95,
+ "y": -120,
+ "visible": false
+ },
+ {
+ "prefabId": "cb9a1643-8ee1-408f-89d0-0a8bbdb8ecee",
+ "id": "fb57c098-d2be-4f60-acf1-428eeb021c87",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "explosion",
+ "scope": "CLASS",
+ "x": 101,
+ "y": 129,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/card/card/CardJitsuHint.js b/src/scenes/games/card/card/CardJitsuHint.js
new file mode 100644
index 00000000..ac72a325
--- /dev/null
+++ b/src/scenes/games/card/card/CardJitsuHint.js
@@ -0,0 +1,59 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class CardJitsuHint extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.icon;
+ /** @type {Phaser.GameObjects.Text} */
+ this.description;
+
+
+ // hint
+ const hint = scene.add.image(0, 0, "cardjitsu", "card/hint");
+ this.add(hint);
+
+ // icon
+ const icon = scene.add.image(0, -87, "cardjitsu", "card/power/1");
+ icon.setOrigin(0.5, 0.5135135135135135);
+ this.add(icon);
+
+ // description
+ const description = scene.add.text(0, 0, "", {});
+ description.setOrigin(0.5, 0.5);
+ description.setStyle({ "align": "center", "color": "#000", "fixedWidth":300,"fixedHeight":130,"fontFamily": "CCComiccrazy", "fontSize": "24px", "fontStyle": "bold" });
+ description.setLineSpacing(1);
+ description.setWordWrapWidth(300, true);
+ this.add(description);
+
+ this.icon = icon;
+ this.description = description;
+
+ /* START-USER-CTR-CODE */
+
+ this.description.setResolution(1)
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show() {
+ this.icon.setFrame(`card/power/${this.parentContainer.powerId}`)
+
+ this.description.text = this.parentContainer.description
+
+ super.show()
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/card/card/CardJitsuHint.scene b/src/scenes/games/card/card/CardJitsuHint.scene
new file mode 100644
index 00000000..5c6b8df3
--- /dev/null
+++ b/src/scenes/games/card/card/CardJitsuHint.scene
@@ -0,0 +1,77 @@
+{
+ "id": "f7bc21d3-944c-4122-96b0-93ea4388bcff",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "d1a28e21-a0ab-469f-ad9f-3aeeee456248",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "92c4b27a-4d26-4219-b33d-a64e40d6491e",
+ "label": "hint",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/hint"
+ }
+ },
+ {
+ "type": "Image",
+ "id": "0e24a1b2-3bc4-408f-98aa-72a985b57917",
+ "label": "icon",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/power/1"
+ },
+ "y": -87,
+ "originY": 0.5135135135135135
+ },
+ {
+ "type": "Text",
+ "id": "4bfbda05-5539-4e91-ad28-78eb4d2d0cd8",
+ "label": "description",
+ "scope": "CLASS",
+ "components": [],
+ "originX": 0.5,
+ "originY": 0.5,
+ "fixedWidth": 300,
+ "fixedHeight": 130,
+ "lineSpacing": 1,
+ "align": "center",
+ "fontFamily": "CCComiccrazy",
+ "fontSize": "24px",
+ "fontStyle": "bold",
+ "color": "#000",
+ "wordWrapWidth": 300,
+ "wordWrapUseAdvanced": true
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/card/card/CardJitsuThumb.js b/src/scenes/games/card/card/CardJitsuThumb.js
new file mode 100644
index 00000000..9d8b36b0
--- /dev/null
+++ b/src/scenes/games/card/card/CardJitsuThumb.js
@@ -0,0 +1,47 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class CardJitsuThumb extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.color;
+ /** @type {Phaser.GameObjects.Image} */
+ this.element;
+
+
+ // back
+ const back = scene.add.image(0, 0, "cardjitsu", "card/thumbnail/back");
+ this.add(back);
+
+ // color
+ const color = scene.add.image(-2, -2, "cardjitsu", "card/thumbnail/color");
+ color.tintTopLeft = 1132705;
+ color.tintTopRight = 1132705;
+ color.tintBottomLeft = 1132705;
+ color.tintBottomRight = 1132705;
+ this.add(color);
+
+ // element
+ const element = scene.add.image(0, 0, "cardjitsu", "card/thumbnail/f");
+ element.setOrigin(0.5, 0.5102040816326531);
+ this.add(element);
+
+ this.color = color;
+ this.element = element;
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/card/card/CardJitsuThumb.scene b/src/scenes/games/card/card/CardJitsuThumb.scene
new file mode 100644
index 00000000..d077b472
--- /dev/null
+++ b/src/scenes/games/card/card/CardJitsuThumb.scene
@@ -0,0 +1,77 @@
+{
+ "id": "f44f8f17-7031-4845-aaba-fc842a544771",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "snapEnabled": true,
+ "snapWidth": 1533,
+ "snapHeight": 963,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "3d6d8f71-4942-41ab-882c-cbb250278716",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "508731ad-5b4c-455b-a37b-7aedbe538f01",
+ "label": "back",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/thumbnail/back"
+ }
+ },
+ {
+ "type": "Image",
+ "id": "ce66837f-6376-4b3c-aea9-71bb41e10eec",
+ "label": "color",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/thumbnail/color"
+ },
+ "x": -2,
+ "y": -2,
+ "tintTopLeft": "#1148a1",
+ "tintTopRight": "#1148a1",
+ "tintBottomLeft": "#1148a1",
+ "tintBottomRight": "#1148a1"
+ },
+ {
+ "type": "Image",
+ "id": "3ad6fe2a-409a-49fa-94a7-5a40b43330a1",
+ "label": "element",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/thumbnail/f"
+ },
+ "originY": 0.5102040816326531
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/card/card/explosion/CardJitsuExplosion.js b/src/scenes/games/card/card/explosion/CardJitsuExplosion.js
new file mode 100644
index 00000000..d2aa45d8
--- /dev/null
+++ b/src/scenes/games/card/card/explosion/CardJitsuExplosion.js
@@ -0,0 +1,64 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class CardJitsuExplosion extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.poof;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.start;
+
+
+ // poof
+ const poof = scene.add.sprite(8, -24, "cardjitsu", "card/explosion/poof/poof0008");
+ poof.setOrigin(0.5006501950585176, 0.5);
+ poof.visible = false;
+ this.add(poof);
+
+ // start
+ const start = scene.add.sprite(0, 0, "cardjitsu", "card/explosion/start");
+ start.setOrigin(0.5014577259475219, 0.5016722408026756);
+ start.visible = false;
+ this.add(start);
+
+ this.poof = poof;
+ this.start = start;
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show() {
+ super.show()
+
+ this.start.once('animationcomplete', this.showPoof, this)
+ this.start.play('card/explosion/start')
+ }
+
+ showPoof() {
+ this.poof.once('animationcomplete', this.close, this)
+ this.poof.play('card/explosion/poof')
+
+ this.soundManager.play('explosion', { volume: 1.5 })
+ }
+
+ close() {
+ super.close()
+
+ // Destroy card
+ this.parentContainer.destroy()
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/card/card/explosion/CardJitsuExplosion.scene b/src/scenes/games/card/card/explosion/CardJitsuExplosion.scene
new file mode 100644
index 00000000..ec3a57e2
--- /dev/null
+++ b/src/scenes/games/card/card/explosion/CardJitsuExplosion.scene
@@ -0,0 +1,59 @@
+{
+ "id": "cb9a1643-8ee1-408f-89d0-0a8bbdb8ecee",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "e7bfb279-18a7-49e4-9fa8-c3fe4c80d2f6",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "Sprite",
+ "id": "391966aa-0909-4214-b9fd-6150194390dc",
+ "label": "poof",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/explosion/poof/poof0008"
+ },
+ "x": 8,
+ "y": -24,
+ "originX": 0.5006501950585176,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "4d21bfc4-c243-4863-8246-4369a55b0ede",
+ "label": "start",
+ "scope": "CLASS",
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "card/explosion/start"
+ },
+ "originX": 0.5014577259475219,
+ "originY": 0.5016722408026756,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/card/clock/CardJitsuClock.js b/src/scenes/games/card/clock/CardJitsuClock.js
new file mode 100644
index 00000000..b88732da
--- /dev/null
+++ b/src/scenes/games/card/clock/CardJitsuClock.js
@@ -0,0 +1,87 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class CardJitsuClock extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.clock;
+ /** @type {Phaser.GameObjects.Text} */
+ this.time;
+
+
+ // clock
+ const clock = scene.add.image(0, 0, "cardjitsu", "clock/20");
+ this.add(clock);
+
+ // time
+ const time = scene.add.text(0, 0, "", {});
+ time.setOrigin(0.5, 0.5);
+ time.text = "20";
+ time.setStyle({ "align": "center", "color": "#000", "fixedWidth":200,"fontFamily": "CCComiccrazy", "fontSize": "44px", "strokeThickness":5,"shadow.color": "#fff", "shadow.blur":5,"shadow.stroke":true,"shadow.fill":true});
+ this.add(time);
+
+ this.clock = clock;
+ this.time = time;
+
+ /* START-USER-CTR-CODE */
+
+ this.timerConfig = {
+ delay: 1000,
+ callback: this.onTimeEvent,
+ callbackScope: this,
+ repeat: 20,
+ startAt: 1000,
+ paused: true
+ }
+
+ this.timer = scene.time.addEvent(this.timerConfig)
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ start() {
+ this.show()
+
+ this.timer.paused = false
+ }
+
+ stop() {
+ this.close()
+
+ this.timer.reset(this.timerConfig)
+ this.updateClock()
+ }
+
+ onTimeEvent() {
+ if (this.timer.repeatCount == 0) {
+ this.timeUp()
+ return
+ }
+
+ this.updateClock()
+ }
+
+ timeUp() {
+ this.stop()
+ this.scene.timeUp()
+ }
+
+ updateClock() {
+ this.time.text = this.timer.repeatCount
+
+ this.clock.setFrame(`clock/${this.timer.repeatCount}`)
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/card/clock/CardJitsuClock.scene b/src/scenes/games/card/clock/CardJitsuClock.scene
new file mode 100644
index 00000000..d8a2d2fb
--- /dev/null
+++ b/src/scenes/games/card/clock/CardJitsuClock.scene
@@ -0,0 +1,66 @@
+{
+ "id": "ebed3022-bcec-4b40-b9a2-de88069e87b6",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "98f77107-b6ed-43ab-afe7-b671b634fc43",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "38218f7f-cf95-4b0f-b999-1093dd226621",
+ "label": "clock",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "clock/20"
+ }
+ },
+ {
+ "type": "Text",
+ "id": "6cb3e767-0b54-409d-8cd2-d211c434661a",
+ "label": "time",
+ "scope": "CLASS",
+ "components": [],
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "20",
+ "fixedWidth": 200,
+ "align": "center",
+ "fontFamily": "CCComiccrazy",
+ "fontSize": "44px",
+ "color": "#000",
+ "strokeThickness": 5,
+ "shadow.stroke": true,
+ "shadow.fill": true,
+ "shadow.color": "#fff",
+ "shadow.blur": 5
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/card/help/CardJitsuHelp.js b/src/scenes/games/card/help/CardJitsuHelp.js
new file mode 100644
index 00000000..9714b4d9
--- /dev/null
+++ b/src/scenes/games/card/help/CardJitsuHelp.js
@@ -0,0 +1,118 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import SimpleButton from "../../../components/SimpleButton";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class CardJitsuHelp extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ // help
+ const help = scene.add.image(0, 0, "cardjitsu", "help");
+ help.setOrigin(0.5005370569280344, 0.5004436557231589);
+ this.add(help);
+
+ // text
+ const text = scene.add.text(0, -275, "", {});
+ text.setOrigin(0.5, 0.5);
+ text.text = "If tied, the highest number wins.";
+ text.setStyle({ "align": "center", "color": "#333", "fixedWidth":828,"fixedHeight":50,"fontFamily": "Burbank Small", "fontSize": "32px" });
+ this.add(text);
+
+ // help (components)
+ const helpSimpleButton = new SimpleButton(help);
+ helpSimpleButton.hoverCallback = () => this.onOver();
+ helpSimpleButton.hoverOutCallback = () => this.onOut();
+ helpSimpleButton.pixelPerfect = true;
+
+ /* START-USER-CTR-CODE */
+
+ text.text = this.getString('help_card')
+
+ this.closedY = this.y
+ this.openY = this.y + 464
+
+ this.tween
+
+ this.State = {
+ Closed: 0,
+ Open: 1
+ }
+
+ this.currentState = this.State.Closed
+ this.locked = true
+
+ /* END-USER-CTR-CODE */
+ }
+
+ /* START-USER-CODE */
+
+ onOver() {
+ if (this.tween || this.currentState === this.State.Open || this.locked) {
+ return
+ }
+
+ this.tween = this.scene.tweens.add({
+ targets: this,
+ duration: 500,
+ y: this.openY,
+ ease: Phaser.Math.Easing.Cubic.Out,
+
+ onComplete: () => this.onOpened()
+ })
+ }
+
+ onOut() {
+ if (this.tween || this.currentState === this.State.Closed || this.locked) {
+ return
+ }
+
+ this.tween = this.scene.tweens.add({
+ targets: this,
+ duration: 400,
+ y: this.closedY,
+
+ onComplete: () => this.onClosed()
+ })
+ }
+
+ onOpened() {
+ this.currentState = this.State.Open
+ this.removeTween()
+ }
+
+ onClosed() {
+ this.currentState = this.State.Closed
+ this.removeTween()
+ }
+
+ close() {
+ this.y = this.closedY
+ this.onClosed()
+ }
+
+ lock() {
+ this.locked = true
+ this.close()
+ }
+
+ unlock() {
+ this.locked = false
+ }
+
+ removeTween() {
+ if (!this.tween) {
+ return
+ }
+
+ this.tween.remove()
+ this.tween = null
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/card/help/CardJitsuHelp.scene b/src/scenes/games/card/help/CardJitsuHelp.scene
new file mode 100644
index 00000000..3044ce76
--- /dev/null
+++ b/src/scenes/games/card/help/CardJitsuHelp.scene
@@ -0,0 +1,66 @@
+{
+ "id": "94535fbd-178b-46f2-a995-1dd72d803895",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "4645b7a2-5b6f-4953-9ebd-1226540eb5b4",
+ "label": "container_1",
+ "components": [],
+ "list": [
+ {
+ "type": "Image",
+ "id": "ab83195e-cec8-49c5-a5b2-1eb80dc96830",
+ "label": "help",
+ "components": [
+ "SimpleButton"
+ ],
+ "SimpleButton.hoverCallback": "() => this.onOver()",
+ "SimpleButton.hoverOutCallback": "() => this.onOut()",
+ "SimpleButton.pixelPerfect": true,
+ "texture": {
+ "key": "cardjitsu",
+ "frame": "help"
+ },
+ "originX": 0.5005370569280344,
+ "originY": 0.5004436557231589
+ },
+ {
+ "type": "Text",
+ "id": "108802b2-880c-4a19-893e-a4ddb0e4763f",
+ "label": "text",
+ "components": [],
+ "y": -275,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "If tied, the highest number wins.",
+ "fixedWidth": 828,
+ "fixedHeight": 50,
+ "align": "center",
+ "fontFamily": "Burbank Small",
+ "fontSize": "32px",
+ "color": "#333"
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/card/layout.js b/src/scenes/games/card/layout.js
new file mode 100644
index 00000000..5124c13f
--- /dev/null
+++ b/src/scenes/games/card/layout.js
@@ -0,0 +1,123 @@
+const layout = {
+ pos: {
+ dealts: [
+ {
+ x: 100,
+ y: 770
+ },
+ {
+ x: 1420,
+ y: 770
+ }
+ ],
+ picks: [
+ {
+ x: 450,
+ y: 300
+ },
+ {
+ x: 850,
+ y: 300
+ }
+ ],
+ wins: [
+ {
+ f: {
+ x: 100,
+ y: 50
+ },
+ w: {
+ x: 200,
+ y: 50
+ },
+ s: {
+ x: 300,
+ y: 50
+ }
+ },
+ {
+ f: {
+ x: 1100,
+ y: 50
+ },
+ w: {
+ x: 1200,
+ y: 50
+ },
+ s: {
+ x: 1300,
+ y: 50
+ }
+ }
+ ],
+ over: [
+ {
+ x: 90,
+ y: 340
+ },
+ {
+ x: 1140,
+ y: 340
+ }
+ ],
+ power: {
+ top: [
+ {
+ x: 410,
+ y: 70
+ },
+ {
+ x: 950,
+ y: 70
+ },
+ {
+ x: 716,
+ y: 120
+ }
+ ],
+ pick: [
+ {
+ x: 500,
+ y: 220
+ },
+ {
+ x: 900,
+ y: 220
+ }
+ ]
+ }
+ },
+ spacer: {
+ dealtFront: 150,
+ dealtBack: 70,
+ win: 30,
+ out: 100
+ },
+ scale: {
+ front: 0.7,
+ back: 0.375,
+ pick: 1
+ },
+ colors: {
+ r: {
+ color: 0xe23c26
+ },
+ g: {
+ color: 0x61b946
+ },
+ b: {
+ color: 0x1148a1
+ },
+ p: {
+ color: 0xa399ca
+ },
+ o: {
+ color: 0xf7952b
+ },
+ y: {
+ color: 0xfbeb2d
+ }
+ }
+}
+
+export default layout
diff --git a/src/scenes/games/card/power/CardJitsuPower.js b/src/scenes/games/card/power/CardJitsuPower.js
new file mode 100644
index 00000000..6685961f
--- /dev/null
+++ b/src/scenes/games/card/power/CardJitsuPower.js
@@ -0,0 +1,235 @@
+import layout from '../layout'
+import Rules from '../Rules'
+import States from './States'
+
+
+export default class CardJitsuPower extends Phaser.GameObjects.Sprite {
+
+ constructor(scene, player, card) {
+ const pos = layout.pos.power.pick[player.seat]
+ const powerId = card.powerId
+
+ super(scene, pos.x, pos.y, 'cardjitsu', `power/${powerId}`)
+
+ this.player = player
+ this.card = card
+ this.powerId = powerId
+
+ this.state = States.Pick
+ this.tween
+
+ this.visible = false
+
+ this.setOrigin(0, 0)
+ }
+
+ get isCurrentRound() {
+ return Rules.currentRound.includes(this.powerId)
+ }
+
+ get isAffectsOwnPlayer() {
+ return Rules.affectsOwnPlayer.includes(this.powerId)
+ }
+
+ get isDiscardElement() {
+ return this.powerId in Rules.discardElements
+ }
+
+ get isDiscardColor() {
+ return this.powerId in Rules.discardColors
+ }
+
+ get isReplacement() {
+ return this.powerId in Rules.replacements
+ }
+
+ get isLimiter() {
+ return this.powerId in Rules.limiters
+ }
+
+ get isPick() {
+ return this.state == States.Pick
+ }
+
+ get isActive() {
+ return this.state == States.Active
+ }
+
+ get isComplete() {
+ return this.state == States.Complete
+ }
+
+ get isReverseEffect() {
+ return this.powerId == 1
+ }
+
+ process() {
+ this.visible = true
+
+ let target = this.getTarget()
+
+ // No target
+ if (!target) {
+ this.onStateProcessed()
+ return
+ }
+
+ // Target not moved
+ if (this.isTargetSame(target)) {
+ this.scene.time.delayedCall(1000, () => this.onStateProcessed())
+ return
+ }
+
+ this.tweenTo(target.x, target.y)
+
+ this.tween.once('complete', this.onStateProcessed, this)
+ }
+
+ isTargetSame(target) {
+ return target.x == this.x && target.y == this.y
+ }
+
+ tweenTo(x, y) {
+ this.tween = this.scene.tweens.add({
+ targets: this,
+ duration: 1000,
+
+ x: x,
+ y: y,
+
+ ease: 'Cubic.easeOut'
+ })
+ }
+
+ onStateProcessed() {
+ this.updateState()
+
+ switch (this.state) {
+ case States.Active:
+ this.updateActive()
+ break
+
+ case States.Complete:
+ this.removePower()
+ break
+ }
+ }
+
+ updateActive() {
+ if (this.isCurrentRound) {
+ this.startRemove()
+ } else {
+ this.nextPower()
+ }
+ }
+
+ getTarget() {
+ let seat = this.player.seat
+ let oppositeSeat = this.scene.getOppositeSeat(seat)
+
+ return this.isActive
+ ? this.getActiveTarget(seat, oppositeSeat)
+ : this.getPickTarget(seat, oppositeSeat)
+ }
+
+ getPickTarget(seat, oppositeSeat) {
+ let top = layout.pos.power.top
+
+ if (this.isReverseEffect) {
+ return top[2]
+ }
+
+ if (this.isAffectsOwnPlayer) {
+ return top[seat]
+ }
+
+ if (this.isReplacement) {
+ return layout.pos.power.pick[oppositeSeat]
+ }
+
+ return top[oppositeSeat]
+ }
+
+ getActiveTarget(seat, oppositeSeat) {
+ let pick = layout.pos.power.pick
+
+ if (this.isReverseEffect) {
+ return this.getReverseEffectTarget(seat, oppositeSeat)
+ }
+
+ if (this.isAffectsOwnPlayer) {
+ return pick[seat]
+ }
+
+ if (this.isLimiter) {
+ return null
+ }
+
+ return pick[oppositeSeat]
+ }
+
+ getReverseEffectTarget(seat, oppositeSeat) {
+ let opponentCard = this.scene.players[oppositeSeat].pick
+ let pick = layout.pos.power.pick
+
+ if (this.card.elementId != opponentCard.elementId) {
+ this.playPoof()
+ return this
+ }
+
+ if (this.card.value > opponentCard.value) {
+ return pick[oppositeSeat]
+ }
+
+ if (this.card.value < opponentCard.value) {
+ return pick[seat]
+ }
+
+ this.playPoof()
+ return this
+ }
+
+ playPoof() {
+ this.anims.play('power/poof')
+ }
+
+ updateState() {
+ this.state = this.getNextState()
+ }
+
+ getNextState() {
+ return (this.state + 1) % Object.keys(States).length
+ }
+
+ nextPower() {
+ this.scene.nextPower()
+ }
+
+ startRemove() {
+ this.scene.time.delayedCall(500, () => this.removePower())
+ }
+
+ removePower() {
+ this.scene.removePower(this)
+
+ this.nextPower()
+ this.afterRemove()
+
+ this.destroy()
+ }
+
+ afterRemove() {
+ let opponent = this.scene.players[this.scene.getOppositeSeat(this.player.seat)]
+
+ if (this.isDiscardElement) {
+ opponent.discardElement(Rules.discardElements[this.powerId])
+ }
+
+ if (this.isDiscardColor) {
+ opponent.discardColor(Rules.discardColors[this.powerId])
+ }
+
+ opponent.arrangeWinCards()
+ }
+
+}
diff --git a/src/scenes/games/card/power/States.js b/src/scenes/games/card/power/States.js
new file mode 100644
index 00000000..b3ddc078
--- /dev/null
+++ b/src/scenes/games/card/power/States.js
@@ -0,0 +1,5 @@
+export default {
+ Pick: 0,
+ Active: 1,
+ Complete: 2
+}
diff --git a/src/scenes/games/mancala/Mancala.js b/src/scenes/games/mancala/Mancala.js
new file mode 100644
index 00000000..5c82c10f
--- /dev/null
+++ b/src/scenes/games/mancala/Mancala.js
@@ -0,0 +1,592 @@
+import BaseContainer from '@scenes/base/BaseContainer'
+
+import { Button, DraggableContainer, SimpleButton } from '@components/components'
+
+import MancalaHint from './MancalaHint'
+import MancalaPlayer from './MancalaPlayer'
+
+
+export const preload = {
+ key: 'mancala-pack',
+ url: 'assets/media/games/mancala/mancala-pack.json',
+ loadString: 'mancala'
+}
+
+/* START OF COMPILED CODE */
+
+export default class Mancala extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {MancalaPlayer} */
+ this.mancalaPlayer1;
+ /** @type {MancalaPlayer} */
+ this.mancalaPlayer2;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.popup;
+ /** @type {MancalaHint} */
+ this.hint;
+ /** @type {Phaser.GameObjects.Image[]} */
+ this.holes;
+
+
+ // window
+ const window = scene.add.image(0, 0, "mancala", "window");
+ this.add(window);
+
+ // bg2
+ const bg2 = scene.add.image(0, 118, "mancala", "player/bg");
+ bg2.flipY = true;
+ this.add(bg2);
+
+ // bg1
+ const bg1 = scene.add.image(0, -86, "mancala", "player/bg");
+ this.add(bg1);
+
+ // shadow
+ const shadow = scene.add.image(0, 16, "mancala", "shadow");
+ this.add(shadow);
+
+ // board
+ const board = scene.add.image(0, 10, "mancala", "board");
+ this.add(board);
+
+ // hole_13
+ const hole_13 = scene.add.image(-200, 11, "mancala", "hole_1");
+ hole_13.setOrigin(0.5, 0.5047619047619047);
+ this.add(hole_13);
+
+ // hole_12
+ const hole_12 = scene.add.image(-144, -20, "mancala", "hole");
+ hole_12.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_12);
+
+ // hole_11
+ const hole_11 = scene.add.image(-86, -20, "mancala", "hole");
+ hole_11.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_11);
+
+ // hole_10
+ const hole_10 = scene.add.image(-28, -20, "mancala", "hole");
+ hole_10.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_10);
+
+ // hole_9
+ const hole_9 = scene.add.image(30, -20, "mancala", "hole");
+ hole_9.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_9);
+
+ // hole_8
+ const hole_8 = scene.add.image(88, -20, "mancala", "hole");
+ hole_8.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_8);
+
+ // hole_7
+ const hole_7 = scene.add.image(146, -20, "mancala", "hole");
+ hole_7.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_7);
+
+ // hole_6
+ const hole_6 = scene.add.image(200, 11, "mancala", "hole_2");
+ hole_6.setOrigin(0.5, 0.5047619047619047);
+ this.add(hole_6);
+
+ // hole_5
+ const hole_5 = scene.add.image(146, 40, "mancala", "hole");
+ hole_5.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_5);
+
+ // hole_4
+ const hole_4 = scene.add.image(88, 40, "mancala", "hole");
+ hole_4.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_4);
+
+ // hole_3
+ const hole_3 = scene.add.image(30, 40, "mancala", "hole");
+ hole_3.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_3);
+
+ // hole_2
+ const hole_2 = scene.add.image(-28, 40, "mancala", "hole");
+ hole_2.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_2);
+
+ // hole_1
+ const hole_1 = scene.add.image(-86, 40, "mancala", "hole");
+ hole_1.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_1);
+
+ // hole_0
+ const hole_0 = scene.add.image(-144, 40, "mancala", "hole");
+ hole_0.setOrigin(0.5102040816326531, 0.5102040816326531);
+ this.add(hole_0);
+
+ // mancalaPlayer1
+ const mancalaPlayer1 = new MancalaPlayer(scene, -193, 136);
+ this.add(mancalaPlayer1);
+
+ // mancalaPlayer2
+ const mancalaPlayer2 = new MancalaPlayer(scene, -193, -104);
+ this.add(mancalaPlayer2);
+
+ // popup
+ const popup = scene.add.sprite(4, 16, "mancala", "popup/popup0005");
+ popup.visible = false;
+ this.add(popup);
+
+ // hint
+ const hint = new MancalaHint(scene, -144, -20);
+ hint.visible = false;
+ this.add(hint);
+
+ // x_button
+ const x_button = scene.add.image(252, -160, "main", "blue-button");
+ this.add(x_button);
+
+ // blue_x
+ const blue_x = scene.add.image(252, -162, "main", "blue-x");
+ this.add(blue_x);
+
+ // lists
+ const holes = [hole_0, hole_1, hole_2, hole_3, hole_4, hole_5, hole_6, hole_7, hole_8, hole_9, hole_10, hole_11, hole_12, hole_13];
+
+ // this (components)
+ const thisDraggableContainer = new DraggableContainer(this);
+ thisDraggableContainer.handle = window;
+
+ // mancalaPlayer1 (prefab fields)
+ mancalaPlayer1.bg = bg2;
+ mancalaPlayer1.mancala = hole_6;
+
+ // mancalaPlayer2 (prefab fields)
+ mancalaPlayer2.bg = bg1;
+ mancalaPlayer2.mancala = hole_13;
+
+ // x_button (components)
+ const x_buttonButton = new Button(x_button);
+ x_buttonButton.spriteName = "blue-button";
+ x_buttonButton.callback = () => this.close();
+
+ this.mancalaPlayer1 = mancalaPlayer1;
+ this.mancalaPlayer2 = mancalaPlayer2;
+ this.popup = popup;
+ this.hint = hint;
+ this.holes = holes;
+
+ /* START-USER-CTR-CODE */
+
+ this.maxStoneColor = 5
+ this.holeSize = 49
+ this.dropDelay = 168
+ this.captureDelay = 130
+
+ popup.setInteractive()
+ popup.on('animationcomplete', (animation) => this.onPopupComplete(animation))
+
+ this.createButtons()
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ get isMyTurn() {
+ return this.currentTurn === this.myTurn
+ }
+
+ get mancalas() {
+ return [this.mancalaPlayer1.mancala, this.mancalaPlayer2.mancala]
+ }
+
+ get currentPlayer() {
+ return this[`mancalaPlayer${this.currentTurn}`]
+ }
+
+ addListeners() {
+ this.network.events.on('get_game', this.handleGetGame, this)
+ this.network.events.on('join_game', this.handleJoinGame, this)
+ this.network.events.on('update_game', this.handleUpdateGame, this)
+ this.network.events.on('start_game', this.handleStartGame, this)
+ this.network.events.on('send_move', this.handleSendMove, this)
+ this.network.events.on('close_game', this.handleCloseGame, this)
+ }
+
+ removeListeners() {
+ this.network.events.off('get_game', this.handleGetGame, this)
+ this.network.events.off('join_game', this.handleJoinGame, this)
+ this.network.events.off('update_game', this.handleUpdateGame, this)
+ this.network.events.off('start_game', this.handleStartGame, this)
+ this.network.events.off('send_move', this.handleSendMove, this)
+ this.network.events.off('close_game', this.handleCloseGame, this)
+ }
+
+ show() {
+ this.map = null
+ this.currentTurn = 1
+ this.myTurn = null
+ this.started = false
+ this.gameOver = false
+
+ // Waiting for turn to finish
+ this.wait = false
+
+ this.moveQueue = []
+ this.timerEvents = []
+ this.stones = []
+
+ super.show()
+
+ this.addListeners()
+ this.network.send('get_game')
+ }
+
+ close() {
+ if (!this.started) {
+ return this.sendLeaveTable()
+ }
+
+ this.interface.prompt.showWindow(this.getString('quit_game_prompt'), 'dual', () => {
+ this.sendLeaveTable()
+
+ this.interface.prompt.window.visible = false
+ })
+ }
+
+ handleGetGame(args) {
+ this.map = args.map
+ this.currentTurn = args.currentTurn
+
+ for (let user of args.users) {
+ this.setPlayer(user, args.users.indexOf(user) + 1)
+ }
+
+ if (args.started) {
+ return this.setupMap()
+ }
+
+ this.network.send('join_game')
+ }
+
+ handleJoinGame(args) {
+ this.myTurn = args.turn
+ }
+
+ handleUpdateGame(args) {
+ this.setPlayer(args.username, args.turn)
+ }
+
+ handleStartGame() {
+ this.started = true
+ this.setupMap()
+ }
+
+ handleSendMove(args) {
+ this.moveQueue.push(args)
+
+ if (this.moveQueue.length > 1) {
+ return
+ }
+
+ this.moveStones(args)
+ }
+
+ handleCloseGame(args) {
+ if (args.username) {
+ let text = this.getFormatString('player_quit_prompt', args.username)
+ this.interface.prompt.showWindow(text, 'single')
+ }
+
+ // Wait for turn to finish
+ if (args.gameOver) {
+ this.gameOver = true
+ return
+ }
+
+ this.leaveTable()
+ }
+
+ setPlayer(username, turn) {
+ let player = this[`mancalaPlayer${turn}`]
+ player.set(username, turn)
+ }
+
+ setupMap() {
+ let currentColor = 1
+
+ for (let i = 0; i < this.map.length; i++) {
+ let count = this.map[i]
+
+ // Create initial stones
+ for (let j = 0; j < count; j++) {
+ this.createStone(i, currentColor)
+
+ currentColor = (currentColor >= this.maxStoneColor)
+ ? 1
+ : currentColor + 1
+ }
+ }
+
+ this.updateScore()
+
+ this.mancalaPlayer1.setActive()
+ this.mancalaPlayer2.setActive()
+ }
+
+ isMancala(hole) {
+ return this.mancalas.includes(hole)
+ }
+
+ createButtons() {
+ for (let hole of this.holes) {
+ hole.stones = []
+ hole.index = this.holes.indexOf(hole)
+
+ let button = new SimpleButton(hole)
+
+ button.pixelPerfect = false
+
+ if (!this.isMancala(hole)) {
+ button.callback = () => this.onHoleClick(hole)
+ }
+
+ button.hoverCallback = () => this.onHoleOver(hole)
+ button.hoverOutCallback = () => this.onHoleOut(hole)
+ }
+ }
+
+ createStone(index, color) {
+ let hole = this.holes[index]
+ let stone = this.scene.add.sprite(hole.x, hole.y, 'mancala', `stone/${color}/placed`)
+
+ stone.color = color
+
+ this.updateStonePos(stone, hole)
+ this.add(stone)
+
+ this.stones.push(stone)
+ }
+
+ onHoleClick(hole) {
+ if (!this.isMyTurn) {
+ return
+ }
+
+ this.hint.hideHint()
+
+ if (!this.wait && this.currentPlayer.holes.includes(hole) && hole.stones.length) {
+ this.network.send('send_move', { hole: this.holes.indexOf(hole) })
+ }
+ }
+
+ onHoleOver(hole) {
+ if (!this.wait) {
+ this.bringToTop(this.hint)
+
+ this.hint.showHint(hole, this.currentPlayer.holes.includes(hole) && this.isMyTurn)
+ }
+ }
+
+ onHoleOut() {
+ this.hint.hideHint()
+ }
+
+ moveStones(args) {
+ this.currentTurn = args.turn
+ let hole = this.holes[args.hole]
+
+ this.wait = true
+
+ hole.stones.map(stone => this.pickUpStone(stone))
+
+ // Update depths
+ hole.stones.slice(0).reverse().map(stone => this.bringToTop(stone))
+
+ let nextHole = hole.index
+ let i = 1
+
+ // Move stones
+ while (hole.stones.length > 0) {
+ nextHole = this.getNextHole(nextHole)
+ let stone = hole.stones.shift()
+
+ this.dropStone(i, stone, this.holes[nextHole])
+
+ i++
+
+ if (hole.stones.length === 0) {
+ this.delayedCall(i * this.dropDelay, () => {
+ this.updateTurn(nextHole, args.move)
+ })
+ }
+ }
+ }
+
+ pickUpStone(stone) {
+ stone.anims.play(`mancala/stone/${stone.color}/hand`)
+ }
+
+ getNextHole(hole) {
+ hole++
+ let opponentMancala = (this.currentTurn === 1) ? 13 : 6
+
+ if (hole === opponentMancala) {
+ hole++
+ }
+
+ if (hole > this.holes.length - 1) {
+ hole = 0
+ }
+
+ return hole
+ }
+
+ dropStone(i, stone, hole, delay = this.dropDelay) {
+ this.delayedCall(i * delay, () => {
+ stone.anims.play(`mancala/stone/${stone.color}/drop`)
+
+ // Mancala holes play louder sound
+ if (this.isMancala(hole)) {
+ this.soundManager.play('drop', { volume: 0.5 })
+ } else {
+ this.soundManager.play('drop', { volume: 0.2 })
+ }
+
+ this.updateStonePos(stone, hole)
+ })
+ }
+
+ updateStonePos(stone, hole) {
+ let randomNum = Math.random() * 6.283185307179586
+
+ // Randomize position in hole
+ stone.x = hole.x + Math.sin(randomNum) * Phaser.Math.Between(0, this.holeSize / 4)
+ stone.y = hole.y + Math.cos(randomNum) * Phaser.Math.Between(0, this.holeSize / 4)
+
+ hole.stones.push(stone)
+ }
+
+ updateTurn(lastHole = null, move = '') {
+ if (lastHole !== null) {
+ this.checkLastHole(lastHole, move)
+ }
+
+ if (move !== 'capture') {
+ this.updateScore()
+ }
+
+ if (!move) {
+ this.currentTurn = (this.currentTurn === 1) ? 2 : 1
+
+ this.mancalaPlayer1.setActive()
+ this.mancalaPlayer2.setActive()
+
+ this.checkMoveQueue()
+ }
+ }
+
+ checkMoveQueue() {
+ this.moveQueue.shift()
+
+ if (this.moveQueue.length) {
+ return this.moveStones(this.moveQueue[0])
+ }
+
+ this.wait = false
+
+ if (this.gameOver) {
+ this.leaveTable()
+ }
+ }
+
+ checkLastHole(lastHole, move) {
+ switch (move) {
+ case 'free':
+ this.showPopup('free')
+ break
+
+ case 'capture':
+ this.captureStones(lastHole)
+ break
+
+ default:
+ break
+ }
+ }
+
+ captureStones(hole) {
+ let captureHole = this.holes[12 - hole]
+ let currentMancala = this.currentPlayer.mancala
+
+ let i = 1
+
+ // Move stones
+ while (captureHole.stones.length > 0) {
+ let stone = captureHole.stones.shift()
+
+ this.dropStone(i, stone, currentMancala, this.captureDelay)
+
+ i++
+ }
+
+ this.dropStone(i, this.holes[hole].stones.shift(), currentMancala, this.captureDelay)
+
+ this.delayedCall(i * this.captureDelay, () => {
+ this.showPopup('capture')
+ })
+ }
+
+ updateScore() {
+ this.mancalaPlayer1.updateScore()
+ this.mancalaPlayer2.updateScore()
+ }
+
+ showPopup(type) {
+ this.bringToTop(this.popup)
+ this.popup.anims.play(`mancala/popup/${type}`)
+ }
+
+ onPopupComplete(animation) {
+ // End of capture popup moves to next turn
+ if (animation.key === 'mancala/popup/capture') {
+ return this.updateTurn()
+ }
+
+ // Free turn
+ this.checkMoveQueue()
+ }
+
+ sendLeaveTable() {
+ this.network.send('leave_table')
+ this.leaveTable()
+ }
+
+ leaveTable() {
+ this.removeListeners()
+ this.resetGame()
+
+ super.close()
+
+ this.world.client.sendLeaveSeat()
+ }
+
+ resetGame() {
+ this.scene.time.removeEvent(this.timerEvents)
+
+ this.stones.map(stone => stone.destroy())
+ this.holes.map(hole => hole.stones = [])
+
+ this.mancalaPlayer1.reset()
+ this.mancalaPlayer2.reset()
+ }
+
+ delayedCall(delay, callback) {
+ let timerEvent = this.scene.time.delayedCall(delay, callback)
+ this.timerEvents.push(timerEvent)
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/mancala/Mancala.scene b/src/scenes/games/mancala/Mancala.scene
new file mode 100644
index 00000000..af16ddf0
--- /dev/null
+++ b/src/scenes/games/mancala/Mancala.scene
@@ -0,0 +1,407 @@
+{
+ "id": "f4fdbbc7-bf40-42c0-92c9-e80824c1e652",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "snapWidth": 58,
+ "snapHeight": 60,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "2e89319d-c037-4f9f-8b8c-a4af45dadf38",
+ "label": "container_1",
+ "components": [
+ "DraggableContainer"
+ ],
+ "DraggableContainer.handle": "window",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "55d91bff-c9af-40fd-ad97-0bdc375a99d4",
+ "label": "window",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "window"
+ }
+ },
+ {
+ "type": "Image",
+ "id": "76bf3f20-f10a-45ab-b2c6-76fe7a7ba86a",
+ "label": "bg2",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "player/bg"
+ },
+ "y": 118,
+ "flipY": true
+ },
+ {
+ "type": "Image",
+ "id": "001894b7-e6e0-4caf-b9cc-04ce634e5282",
+ "label": "bg1",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "player/bg"
+ },
+ "y": -86
+ },
+ {
+ "type": "Image",
+ "id": "029699bc-46a0-4c39-8794-64b9bac2700a",
+ "label": "shadow",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "shadow"
+ },
+ "y": 16
+ },
+ {
+ "type": "Image",
+ "id": "8a60289b-06e8-4dae-a743-3da28ce00a85",
+ "label": "board",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "board"
+ },
+ "y": 10
+ },
+ {
+ "type": "Image",
+ "id": "d6000b2f-67d1-49df-91c3-49711c59fc64",
+ "label": "hole_13",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole_1"
+ },
+ "x": -200,
+ "y": 11,
+ "originY": 0.5047619047619047
+ },
+ {
+ "type": "Image",
+ "id": "152805b6-0b3d-4b6c-bee7-378c9c5d726f",
+ "label": "hole_12",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": -144,
+ "y": -20,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "36432eed-487c-415d-85b8-fb68cab93e36",
+ "label": "hole_11",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": -86,
+ "y": -20,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "2c5d315e-9b9e-416d-b814-724181ec2064",
+ "label": "hole_10",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": -28,
+ "y": -20,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "ee42fdb0-7cdd-45a7-879a-77f2db75ba4c",
+ "label": "hole_9",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": 30,
+ "y": -20,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "c11152e4-188c-4cbf-a6c3-fdc8945f4151",
+ "label": "hole_8",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": 88,
+ "y": -20,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "12f66ea0-f7b9-47b9-9c6e-76ea297e9495",
+ "label": "hole_7",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": 146,
+ "y": -20,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "6aac4be8-f26c-47fe-ba0c-52d28eefa127",
+ "label": "hole_6",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole_2"
+ },
+ "x": 200,
+ "y": 11,
+ "originY": 0.5047619047619047
+ },
+ {
+ "type": "Image",
+ "id": "0202ccd0-af01-44bb-a24d-0a2bb9384aa8",
+ "label": "hole_5",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": 146,
+ "y": 40,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "efae5d11-1f07-4f2a-b36c-1dbec458382e",
+ "label": "hole_4",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": 88,
+ "y": 40,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "e713e514-0694-489b-a3a2-cfd099f34187",
+ "label": "hole_3",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": 30,
+ "y": 40,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "9f44682c-679f-495b-ae2b-674d1a589c4b",
+ "label": "hole_2",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": -28,
+ "y": 40,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "b8baf473-a75f-4135-a894-537390a919a9",
+ "label": "hole_1",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": -86,
+ "y": 40,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "type": "Image",
+ "id": "9389f3d3-994d-43d1-92c5-4024661b79f4",
+ "label": "hole_0",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hole"
+ },
+ "x": -144,
+ "y": 40,
+ "originX": 0.5102040816326531,
+ "originY": 0.5102040816326531
+ },
+ {
+ "prefabId": "bb969ff5-2103-4d09-a09b-4cad958047d4",
+ "id": "f52d5978-c409-4410-b4ab-487c7096d3cb",
+ "unlock": [
+ "x",
+ "y",
+ "bg",
+ "mancala"
+ ],
+ "label": "mancalaPlayer1",
+ "scope": "CLASS",
+ "bg": "bg2",
+ "mancala": "hole_6",
+ "components": [],
+ "x": -193,
+ "y": 136,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "prefabId": "bb969ff5-2103-4d09-a09b-4cad958047d4",
+ "id": "ad4829d1-d06f-453a-a05e-aa2401544ad2",
+ "unlock": [
+ "x",
+ "y",
+ "bg",
+ "mancala"
+ ],
+ "label": "mancalaPlayer2",
+ "scope": "CLASS",
+ "bg": "bg1",
+ "mancala": "hole_13",
+ "components": [],
+ "x": -193,
+ "y": -104,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "type": "Sprite",
+ "id": "09ec3328-6878-41df-9d53-721df330da61",
+ "label": "popup",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "popup/popup0005"
+ },
+ "x": 4,
+ "y": 16,
+ "visible": false
+ },
+ {
+ "prefabId": "325c2f02-83fe-4592-9a90-32228cab6f13",
+ "id": "e864d2f5-b71b-4106-ace2-d974512d3eff",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "hint",
+ "scope": "CLASS",
+ "components": [],
+ "x": -144,
+ "y": -20,
+ "visible": false,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "type": "Image",
+ "id": "f0061852-6a3b-4abe-b30f-17ab057412d8",
+ "label": "x_button",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "blue-button",
+ "Button.callback": "() => this.close()",
+ "texture": {
+ "key": "main",
+ "frame": "blue-button"
+ },
+ "x": 252,
+ "y": -160
+ },
+ {
+ "type": "Image",
+ "id": "50799ffa-d7f7-4746-9483-ea71c5beeedd",
+ "label": "blue_x",
+ "components": [],
+ "texture": {
+ "key": "main",
+ "frame": "blue-x"
+ },
+ "x": 252,
+ "y": -162
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ },
+ "lists": [
+ {
+ "id": "0cc252c2-494b-4324-baf9-ad1f2bf25c77",
+ "label": "holes",
+ "objectIds": [
+ "9389f3d3-994d-43d1-92c5-4024661b79f4",
+ "b8baf473-a75f-4135-a894-537390a919a9",
+ "9f44682c-679f-495b-ae2b-674d1a589c4b",
+ "e713e514-0694-489b-a3a2-cfd099f34187",
+ "efae5d11-1f07-4f2a-b36c-1dbec458382e",
+ "0202ccd0-af01-44bb-a24d-0a2bb9384aa8",
+ "6aac4be8-f26c-47fe-ba0c-52d28eefa127",
+ "12f66ea0-f7b9-47b9-9c6e-76ea297e9495",
+ "c11152e4-188c-4cbf-a6c3-fdc8945f4151",
+ "ee42fdb0-7cdd-45a7-879a-77f2db75ba4c",
+ "2c5d315e-9b9e-416d-b814-724181ec2064",
+ "36432eed-487c-415d-85b8-fb68cab93e36",
+ "152805b6-0b3d-4b6c-bee7-378c9c5d726f",
+ "d6000b2f-67d1-49df-91c3-49711c59fc64"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/games/mancala/MancalaHint.js b/src/scenes/games/mancala/MancalaHint.js
new file mode 100644
index 00000000..faebee99
--- /dev/null
+++ b/src/scenes/games/mancala/MancalaHint.js
@@ -0,0 +1,69 @@
+/* START OF COMPILED CODE */
+
+export default class MancalaHint extends Phaser.GameObjects.Container {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.hint;
+ /** @type {Phaser.GameObjects.Text} */
+ this.text;
+
+
+ // hint
+ const hint = scene.add.sprite(0, 0, "mancala", "hint/hint0011");
+ hint.setOrigin(0.49056603773584906, 0.9294117647058824);
+ this.add(hint);
+
+ // text
+ const text = scene.add.text(0, -39, "", {});
+ text.setOrigin(0.5, 0.5);
+ text.visible = false;
+ text.text = "99";
+ text.setStyle({ "align": "center", "color": "#000", "fixedWidth":64,"fontFamily": "Arial", "fontSize": "32px" });
+ this.add(text);
+
+ this.hint = hint;
+ this.text = text;
+
+ /* START-USER-CTR-CODE */
+
+ hint.on('animationcomplete', () => this.text.visible = true)
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ showHint(hole, enabled) {
+ if (!hole.stones.length) {
+ return
+ }
+
+ this.x = hole.x
+ this.y = hole.y
+
+ let color = (enabled) ? '#000' : '#fff'
+ this.text.text = hole.stones.length
+ this.text.setColor(color)
+
+ this.visible = true
+
+ let anim = (enabled) ? 'enabled' : 'disabled'
+ this.hint.anims.play(`hint/${anim}`)
+
+ }
+
+ hideHint() {
+ this.hint.anims.stop()
+
+ this.visible = false
+ this.text.visible = false
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/mancala/MancalaHint.scene b/src/scenes/games/mancala/MancalaHint.scene
new file mode 100644
index 00000000..b3d46a51
--- /dev/null
+++ b/src/scenes/games/mancala/MancalaHint.scene
@@ -0,0 +1,63 @@
+{
+ "id": "325c2f02-83fe-4592-9a90-32228cab6f13",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "b003f2ee-88af-4169-8a8d-f5a41c5b3fbf",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Sprite",
+ "id": "ce3caf58-2a72-44b9-8734-38eb48372b37",
+ "label": "hint",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "hint/hint0011"
+ },
+ "originX": 0.49056603773584906,
+ "originY": 0.9294117647058824
+ },
+ {
+ "type": "Text",
+ "id": "fb2c6be3-4511-45b7-940c-f8ca7be5bd09",
+ "label": "text",
+ "scope": "CLASS",
+ "components": [],
+ "y": -39,
+ "originX": 0.5,
+ "originY": 0.5,
+ "visible": false,
+ "text": "99",
+ "fixedWidth": 64,
+ "align": "center",
+ "fontFamily": "Arial",
+ "fontSize": "32px",
+ "color": "#000"
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/mancala/MancalaPlayer.js b/src/scenes/games/mancala/MancalaPlayer.js
new file mode 100644
index 00000000..383c41d2
--- /dev/null
+++ b/src/scenes/games/mancala/MancalaPlayer.js
@@ -0,0 +1,152 @@
+/* START OF COMPILED CODE */
+
+export default class MancalaPlayer extends Phaser.GameObjects.Container {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.spinner;
+ /** @type {Phaser.GameObjects.Text} */
+ this.waiting;
+ /** @type {Phaser.GameObjects.Text} */
+ this.username;
+ /** @type {Phaser.GameObjects.Text} */
+ this.score;
+ /** @type {any} */
+ this.bg;
+ /** @type {any} */
+ this.mancala;
+
+
+ // spinner
+ const spinner = scene.add.image(0, 0, "mancala", "player/spinner");
+ this.add(spinner);
+
+ // waiting
+ const waiting = scene.add.text(52, 0, "", {});
+ waiting.setOrigin(0, 0.5);
+ waiting.text = "Waiting for Player";
+ waiting.setStyle({ "fontFamily": "Arial", "fontSize": "24px" });
+ this.add(waiting);
+
+ // username
+ const username = scene.add.text(-47, -30, "", {});
+ username.visible = false;
+ username.text = "USERNAME";
+ username.setStyle({ "color": "#D5E1FF", "fixedWidth":330,"fontFamily": "CCFaceFront", "fontSize": "32px", "fontStyle": "bold italic", "stroke": "#006699", "strokeThickness":9});
+ this.add(username);
+
+ // score
+ const score = scene.add.text(432, 0, "", {});
+ score.setOrigin(1, 0.5);
+ score.visible = false;
+ score.text = "Score: 0";
+ score.setStyle({ "align": "right", "color": "#000", "fontFamily": "Arial", "fontSize": "24px" });
+ this.add(score);
+
+ this.spinner = spinner;
+ this.waiting = waiting;
+ this.username = username;
+ this.score = score;
+
+ /* START-USER-CTR-CODE */
+
+ this.turnId
+
+ // Spinner
+ this.spinnerTween = scene.tweens.add({
+ targets: spinner,
+ angle: { from: 0, to: 180 },
+ duration: 900,
+ repeat: -1,
+ ease: 'Cubic'
+ })
+
+ this.inactiveColor = username.style.color
+ this.inactiveStroke = username.style.stroke
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ get holes() {
+ if (this.turnId === 1) {
+ return this.parentContainer.holes.slice(0, 7)
+ }
+
+ if (this.turnId === 2) {
+ return this.parentContainer.holes.slice(7, 14)
+ }
+
+ return []
+ }
+
+ get stones() {
+ return this.holes.map(hole => hole.stones)
+ }
+
+ set(username, turn) {
+ this.turnId = turn
+
+ this.spinner.visible = false
+ this.waiting.visible = false
+
+ this.username.text = username.toUpperCase()
+ this.username.visible = true
+ this.score.visible = true
+ }
+
+ reset() {
+ this.turnId = null
+
+ this.spinner.visible = true
+ this.waiting.visible = true
+
+ this.username.text = ''
+ this.username.visible = false
+ this.score.visible = false
+
+ this.setActive(true)
+ this.setScoreText(0)
+ }
+
+ setActive(reset = false) {
+ let active = (reset)
+ ? false
+ : this.turnId === this.parentContainer.currentTurn
+
+ let color = (active) ? '#fff' : this.inactiveColor
+ let stroke = (active) ? '#000' : this.inactiveStroke
+
+ let bgFrame = active ? '_turn' : ''
+
+ this.username.setColor(color)
+ this.username.setStroke(stroke)
+
+ this.bg.setFrame(`player/bg${bgFrame}`)
+ }
+
+ updateScore() {
+ if (!this.turnId) {
+ return
+ }
+
+ let score = 0
+ for (let stones of this.stones) {
+ score += stones.length
+ }
+
+ this.setScoreText(score)
+ }
+
+ setScoreText(score) {
+ this.score.text = `Score: ${score}`
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/mancala/MancalaPlayer.scene b/src/scenes/games/mancala/MancalaPlayer.scene
new file mode 100644
index 00000000..86b71cb7
--- /dev/null
+++ b/src/scenes/games/mancala/MancalaPlayer.scene
@@ -0,0 +1,114 @@
+{
+ "id": "bb969ff5-2103-4d09-a09b-4cad958047d4",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "fbe440e4-3c46-44fd-a3df-22cbec77387c",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "145c1cb0-bf8b-4f3e-9476-356a8b9170ec",
+ "label": "spinner",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "mancala",
+ "frame": "player/spinner"
+ }
+ },
+ {
+ "type": "Text",
+ "id": "f47ca1f1-d476-415e-9191-c59c11b8937c",
+ "label": "waiting",
+ "scope": "CLASS",
+ "components": [],
+ "x": 52,
+ "originY": 0.5,
+ "text": "Waiting for Player",
+ "fontFamily": "Arial",
+ "fontSize": "24px"
+ },
+ {
+ "type": "Text",
+ "id": "922fa1fd-ccd9-4ddb-a9d4-3b871943b0f4",
+ "label": "username",
+ "scope": "CLASS",
+ "components": [],
+ "x": -47,
+ "y": -30,
+ "visible": false,
+ "text": "USERNAME",
+ "fixedWidth": 330,
+ "fontFamily": "CCFaceFront",
+ "fontSize": "32px",
+ "fontStyle": "bold italic",
+ "color": "#D5E1FF",
+ "stroke": "#006699",
+ "strokeThickness": 9
+ },
+ {
+ "type": "Text",
+ "id": "9dc99cde-1ca7-4fd4-b015-73c17698ffe2",
+ "label": "score",
+ "scope": "CLASS",
+ "components": [],
+ "x": 432,
+ "originX": 1,
+ "originY": 0.5,
+ "visible": false,
+ "text": "Score: 0",
+ "align": "right",
+ "fontFamily": "Arial",
+ "fontSize": "24px",
+ "color": "#000"
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ },
+ "prefabProperties": [
+ {
+ "name": "bg",
+ "label": "bg",
+ "tooltip": "bg",
+ "defValue": "",
+ "customDefinition": false,
+ "type": {
+ "id": "expression",
+ "expressionType": "any"
+ }
+ },
+ {
+ "name": "mancala",
+ "label": "mancala",
+ "tooltip": "mancala",
+ "defValue": "",
+ "customDefinition": false,
+ "type": {
+ "id": "expression",
+ "expressionType": "any"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/games/ninjaprogress/NinjaProgress.js b/src/scenes/games/ninjaprogress/NinjaProgress.js
new file mode 100644
index 00000000..a23452a0
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/NinjaProgress.js
@@ -0,0 +1,174 @@
+export const preload = {
+ key: 'ninjaprogress-pack',
+ url: 'assets/media/games/ninjaprogress/ninjaprogress-pack.json',
+ loadString: ['loading', 'ninjaprogress']
+}
+
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../base/BaseContainer";
+import Interactive from "../../components/Interactive";
+import ProgressView from "./views/ProgressView";
+import Separator from "./Separator";
+import Button from "../../components/Button";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class NinjaProgress extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Rectangle} */
+ this.cardsViewRect;
+ /** @type {ProgressView} */
+ this.progress;
+ /** @type {Separator} */
+ this.separator;
+
+
+ // block
+ const block = scene.add.rectangle(0, 0, 1520, 960);
+ block.isFilled = true;
+ block.fillColor = 0;
+ block.fillAlpha = 0.2;
+ this.add(block);
+
+ // bg
+ const bg = scene.add.image(0, 51, "ninjaprogress", "bg/1");
+ this.add(bg);
+
+ // cardsViewRect
+ const cardsViewRect = scene.add.rectangle(-584, -210, 1168, 542);
+ cardsViewRect.setOrigin(0, 0);
+ cardsViewRect.visible = false;
+ cardsViewRect.isFilled = true;
+ this.add(cardsViewRect);
+
+ // progress
+ const progress = new ProgressView(scene, 0, 0);
+ progress.visible = false;
+ this.add(progress);
+
+ // frame2
+ const frame2 = scene.add.image(0, -2, "ninjaprogress", "frame/2");
+ frame2.setOrigin(0.500374531835206, 0.5);
+ this.add(frame2);
+
+ // separator
+ const separator = new Separator(scene, -18, -214);
+ separator.visible = true;
+ this.add(separator);
+
+ // frame1
+ const frame1 = scene.add.image(2, 23, "ninjaprogress", "frame/1");
+ this.add(frame1);
+
+ // xButton
+ const xButton = scene.add.image(541, -305, "ninjaprogress", "close");
+ this.add(xButton);
+
+ // block (components)
+ new Interactive(block);
+
+ // xButton (components)
+ const xButtonButton = new Button(xButton);
+ xButtonButton.spriteName = "close";
+ xButtonButton.callback = () => this.close();
+
+ this.cardsViewRect = cardsViewRect;
+ this.progress = progress;
+ this.separator = separator;
+
+ /* START-USER-CTR-CODE */
+
+ this.ninjaRank
+ this.ninjaProgress
+ this.ninjaCards
+
+ this.createCardsViewMask()
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ addListeners() {
+ this.network.events.on('get_ninja', this.handleGetNinja, this)
+ }
+
+ removeListeners() {
+ this.network.events.off('get_ninja', this.handleGetNinja, this)
+ }
+
+ show() {
+ this.addListeners()
+
+ this.network.send('get_ninja')
+
+ super.show()
+ }
+
+ close() {
+ this.removeListeners()
+ this.reset()
+
+ super.close()
+ }
+
+ reset() {
+ this.separator.close()
+ this.separator.cards.setCards([])
+
+ this.progress.close()
+ this.progress.setCardsNum(0)
+
+ this.separator.cards.page = 1
+ }
+
+ handleGetNinja(args) {
+ this.ninjaRank = args.rank
+ this.ninjaProgress = args.progress
+ this.ninjaCards = args.cards
+
+ this.progress.setCardsNum(args.cards.length)
+ this.showProgress()
+
+ this.setCards()
+
+ this.separator.setEnable(true)
+ }
+
+ showProgress() {
+ if (!this.progress.down) {
+ this.progress.show(this.ninjaRank, this.ninjaProgress)
+ }
+ }
+
+ hideProgress() {
+ this.progress.close()
+ }
+
+ setCards() {
+ this.separator.cards.setCards(this.ninjaCards)
+ }
+
+ createCardsViewMask() {
+ let rect = this.cardsViewRect
+ let graphics = this.scene.make.graphics()
+
+ // World position
+ let matrix = rect.getWorldTransformMatrix()
+
+ graphics.fillRect(matrix.getX(0, 0), matrix.getY(0, 0), rect.width, rect.height)
+
+ let mask = graphics.createGeometryMask()
+
+ this.separator.cards.setMask(mask)
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/ninjaprogress/NinjaProgress.scene b/src/scenes/games/ninjaprogress/NinjaProgress.scene
new file mode 100644
index 00000000..afd20f6f
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/NinjaProgress.scene
@@ -0,0 +1,148 @@
+{
+ "id": "9c33734a-197d-4f67-a819-ddfed17122cb",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "24a2f1b7-2511-43fa-a48d-fdd3ce8acf40",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Rectangle",
+ "id": "fa964fba-f465-4781-ac56-f5ed6a276e3a",
+ "label": "block",
+ "components": [
+ "Interactive"
+ ],
+ "isFilled": true,
+ "fillColor": "#000000",
+ "fillAlpha": 0.2,
+ "width": 1520,
+ "height": 960
+ },
+ {
+ "type": "Image",
+ "id": "ad799b05-40ff-4e8c-a56e-dc291a18cd30",
+ "label": "bg",
+ "components": [],
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "bg/1"
+ },
+ "y": 51
+ },
+ {
+ "type": "Rectangle",
+ "id": "f4dfcd8f-5bc5-4f39-9f7a-963abaae952a",
+ "label": "cardsViewRect",
+ "scope": "CLASS",
+ "components": [],
+ "x": -584,
+ "y": -210,
+ "originX": 0,
+ "originY": 0,
+ "visible": false,
+ "isFilled": true,
+ "width": 1168,
+ "height": 542
+ },
+ {
+ "prefabId": "69fb792c-79d1-47f9-a9aa-152d9e190c9d",
+ "id": "eb43e92d-7d06-471a-a937-c8b14e00548f",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "progress",
+ "scope": "CLASS",
+ "components": [],
+ "x": 0,
+ "y": 0,
+ "visible": false,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "type": "Image",
+ "id": "e5afcad6-4320-4997-ae48-b1aa760a21a5",
+ "label": "frame2",
+ "components": [],
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "frame/2"
+ },
+ "y": -2,
+ "originX": 0.500374531835206
+ },
+ {
+ "prefabId": "4f090387-6719-455f-887b-a8bf5946be9f",
+ "id": "bd670da4-42f1-471a-9318-85ff9dbdae60",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "separator",
+ "scope": "CLASS",
+ "components": [],
+ "x": -18,
+ "y": -214,
+ "visible": true,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "type": "Image",
+ "id": "b59f681c-846b-436f-a297-0239e4c83f62",
+ "label": "frame1",
+ "components": [],
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "frame/1"
+ },
+ "x": 2,
+ "y": 23
+ },
+ {
+ "type": "Image",
+ "id": "0972ddd2-bf0a-4b96-9f03-b2243200659b",
+ "label": "xButton",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "close",
+ "Button.callback": "() => this.close()",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "close"
+ },
+ "x": 541,
+ "y": -305
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/ninjaprogress/Separator.js b/src/scenes/games/ninjaprogress/Separator.js
new file mode 100644
index 00000000..a719c565
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/Separator.js
@@ -0,0 +1,123 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../base/BaseContainer";
+import CardsView from "./views/CardsView";
+import SimpleButton from "../../components/SimpleButton";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class Separator extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {CardsView} */
+ this.cards;
+ /** @type {Phaser.GameObjects.Image} */
+ this.arrow;
+
+
+ // cards
+ const cards = new CardsView(scene, 18, -322);
+ this.add(cards);
+
+ // sep
+ const sep = scene.add.image(18, -3, "ninjaprogress", "separator/separator");
+ this.add(sep);
+
+ // button
+ const button = scene.add.image(0, -3, "ninjaprogress", "separator/button");
+ this.add(button);
+
+ // arrow
+ const arrow = scene.add.image(0, 6, "ninjaprogress", "separator/arrow");
+ arrow.setOrigin(0.5, 0.5454545454545454);
+ this.add(arrow);
+
+ // button (components)
+ const buttonSimpleButton = new SimpleButton(button);
+ buttonSimpleButton.callback = () => this.onClick();
+
+ this.cards = cards;
+ this.arrow = arrow;
+
+ /* START-USER-CTR-CODE */
+
+ this.enable = false
+
+ this.tween
+ this.down = false
+
+ this.startX = this.x
+ this.startY = this.y
+
+ this.yDiff = 574
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ setEnable(enable) {
+ this.enable = enable
+ }
+
+ onClick() {
+ if (this.tween || !this.enable) {
+ return
+ }
+
+ this.cards.disableButtons()
+
+ let duration = this.down ? 325 : 500
+ let y = this.down ? this.y - this.yDiff : this.y + this.yDiff
+ let ease = this.down ? 'Quad.easeOut' : 'Quad.easeIn'
+
+ this.down = !this.down
+
+ if (this.down) {
+ this.parentContainer.hideProgress()
+ }
+
+ this.tween = this.scene.tweens.add({
+ targets: this,
+ duration: duration,
+ y: y,
+ ease: ease,
+
+ onComplete: this.onTweenComplete,
+ onCompleteScope: this
+ })
+ }
+
+ onTweenComplete() {
+ this.arrow.flipY = this.down
+ this.tween = null
+
+ if (!this.down) {
+ this.parentContainer.showProgress()
+ }
+
+ this.cards.updateButtons()
+ }
+
+ close() {
+ if (this.tween) {
+ this.tween.remove()
+ this.tween = null
+ }
+
+ this.down = false
+ this.arrow.flipY = false
+
+ this.x = this.startX
+ this.y = this.startY
+
+ this.setEnable(false)
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/ninjaprogress/Separator.scene b/src/scenes/games/ninjaprogress/Separator.scene
new file mode 100644
index 00000000..f707964d
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/Separator.scene
@@ -0,0 +1,87 @@
+{
+ "id": "4f090387-6719-455f-887b-a8bf5946be9f",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "c6d135e1-2a4a-4b77-a666-bcdae81665f9",
+ "label": "container_1",
+ "components": [],
+ "list": [
+ {
+ "prefabId": "eebb7e39-e8a3-4ccc-b5b3-6241aca388da",
+ "id": "ecd14e47-fbbf-4cfa-8a9b-988be08f4c61",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "cards",
+ "scope": "CLASS",
+ "components": [],
+ "x": 18,
+ "y": -322,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "type": "Image",
+ "id": "2d5f8b75-0c0b-4a5e-90a4-6abe9db5cc71",
+ "label": "sep",
+ "components": [],
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "separator/separator"
+ },
+ "x": 18,
+ "y": -3
+ },
+ {
+ "type": "Image",
+ "id": "9727adbe-155c-48f6-b03b-79b85dcaf0a4",
+ "label": "button",
+ "components": [
+ "SimpleButton"
+ ],
+ "SimpleButton.callback": "() => this.onClick()",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "separator/button"
+ },
+ "y": -3
+ },
+ {
+ "type": "Image",
+ "id": "91643b28-6d46-4265-9b91-21400c869581",
+ "label": "arrow",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "separator/arrow"
+ },
+ "y": 6,
+ "originY": 0.5454545454545454
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/ninjaprogress/views/CardsView.js b/src/scenes/games/ninjaprogress/views/CardsView.js
new file mode 100644
index 00000000..7e77a6a7
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/views/CardsView.js
@@ -0,0 +1,203 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Button from "../../../components/Button";
+/* START-USER-IMPORTS */
+
+import CardLoader from '@engine/loaders/CardLoader'
+import CardsViewCard from './CardsViewCard'
+
+/* END-USER-IMPORTS */
+
+export default class CardsView extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.bg;
+ /** @type {Phaser.GameObjects.Image} */
+ this.down;
+ /** @type {Phaser.GameObjects.Image} */
+ this.up;
+ /** @type {Array} */
+ this.cards;
+
+
+ // bg
+ const bg = scene.add.image(0, 0, "ninjaprogress", "bg/2");
+ this.add(bg);
+
+ // scroll
+ const scroll = scene.add.image(470, 21, "ninjaprogress", "scroll/scroll");
+ this.add(scroll);
+
+ // down
+ const down = scene.add.image(470, 238, "ninjaprogress", "scroll/down");
+ this.add(down);
+
+ // up
+ const up = scene.add.image(470, -193, "ninjaprogress", "scroll/up");
+ this.add(up);
+
+ // lists
+ const cards = [];
+
+ // down (components)
+ const downButton = new Button(down);
+ downButton.spriteName = "scroll/down";
+ downButton.callback = () => this.nextPage();
+
+ // up (components)
+ const upButton = new Button(up);
+ upButton.spriteName = "scroll/up";
+ upButton.callback = () => this.prevPage();
+
+ this.bg = bg;
+ this.down = down;
+ this.up = up;
+ this.cards = cards;
+
+ /* START-USER-CTR-CODE */
+
+ this.startX = -478
+ this.startY = -146
+
+ this.width = 5
+ this.height = 3
+
+ this.cellWidth = 188
+ this.cellHeight = 166
+
+ this.page = 1
+ this.pageSize = this.width * this.height
+
+ this.ninjaCards = []
+
+ this.cardLoader = new CardLoader(scene)
+ this.createCards()
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ get maxPage() {
+ return Math.ceil(this.ninjaCards.length / this.pageSize)
+ }
+
+ createCards() {
+ for (let i = 0; i < this.pageSize; i++) {
+ let card = new CardsViewCard(this.scene, this.startX, this.startY)
+
+ this.add(card)
+ this.cards.push(card)
+ }
+
+ this.createGrid()
+ }
+
+ createGrid() {
+ Phaser.Actions.GridAlign(this.cards, {
+ width: this.width,
+ height: this.height,
+
+ cellWidth: this.cellWidth,
+ cellHeight: this.cellHeight,
+
+ position: Phaser.Display.Align.CENTER,
+
+ x: this.startX,
+ y: this.startY
+ })
+ }
+
+ setCards(ninjaCards) {
+ this.ninjaCards = ninjaCards
+
+ this.showPage()
+ }
+
+ showPage() {
+ let page = this.ninjaCards.slice((this.page - 1) * this.pageSize, this.page * this.pageSize)
+
+ for (let i = 0; i < this.cards.length; i++) {
+ let prefab = this.cards[i]
+
+ prefab.removeIcon()
+
+ if (!page[i]) {
+ prefab.id = null
+ prefab.close()
+
+ continue
+ }
+
+ let card = page[i]
+ let key = this.cardLoader.getKey(card.id)
+
+ prefab.id = card.id
+
+ this.cardLoader.loadCard(card, () => this.onCardLoad(key, card, prefab))
+
+ prefab.show(card)
+ }
+
+ this.updateButtons()
+ }
+
+ prevPage() {
+ let page = this.page - 1
+ if (page < 1) {
+ return
+ }
+
+ this.page = page
+ this.showPage()
+ }
+
+ nextPage() {
+ let page = this.page + 1
+ if (page > this.maxPage) {
+ return
+ }
+
+ this.page = page
+ this.showPage()
+ }
+
+ onCardLoad(key, card, prefab) {
+ if (prefab.id == card.id) {
+ prefab.setIcon(key)
+ }
+ }
+
+ updateButtons() {
+ if (!this.parentContainer.down) {
+ this.disableButtons()
+ return
+ }
+
+ let upEnabled = this.page > 1
+ let downEnabled = this.page < this.maxPage
+
+ this.setButtons(upEnabled, downEnabled)
+ }
+
+ disableButtons() {
+ this.setButtons(false, false)
+ }
+
+ setButtons(upEnabled, downEnabled) {
+ this.up.input.enabled = upEnabled
+ this.down.input.enabled = downEnabled
+
+ this.up.alpha = upEnabled ? 1 : 0.5
+ this.down.alpha = downEnabled ? 1 : 0.5
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/ninjaprogress/views/CardsView.scene b/src/scenes/games/ninjaprogress/views/CardsView.scene
new file mode 100644
index 00000000..df230c44
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/views/CardsView.scene
@@ -0,0 +1,98 @@
+{
+ "id": "eebb7e39-e8a3-4ccc-b5b3-6241aca388da",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "f2796d25-cfcd-4029-aa65-b5959b3df19b",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "bcdbd623-a5b9-4c7b-ba61-e5929f6e594d",
+ "label": "bg",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "bg/2"
+ }
+ },
+ {
+ "type": "Image",
+ "id": "6c6a4641-6550-4814-855c-b9ccb30ce606",
+ "label": "scroll",
+ "components": [],
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "scroll/scroll"
+ },
+ "x": 470,
+ "y": 21
+ },
+ {
+ "type": "Image",
+ "id": "12eaafd0-60f0-4c74-8499-f5f82274178b",
+ "label": "down",
+ "scope": "CLASS",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "scroll/down",
+ "Button.callback": "() => this.nextPage()",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "scroll/down"
+ },
+ "x": 470,
+ "y": 238
+ },
+ {
+ "type": "Image",
+ "id": "5d509cd6-a79e-419b-94fb-6a8fed349bdf",
+ "label": "up",
+ "scope": "CLASS",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "scroll/up",
+ "Button.callback": "() => this.prevPage()",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "scroll/up"
+ },
+ "x": 470,
+ "y": -193
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ },
+ "lists": [
+ {
+ "id": "5f9fb9e1-bb62-4599-b6e1-05cdd4f4555c",
+ "label": "cards"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/games/ninjaprogress/views/CardsViewCard.js b/src/scenes/games/ninjaprogress/views/CardsViewCard.js
new file mode 100644
index 00000000..49f33087
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/views/CardsViewCard.js
@@ -0,0 +1,123 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+
+import layout from '@scenes/games/card/layout'
+
+/* END-USER-IMPORTS */
+
+export default class CardsViewCard extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.glow;
+ /** @type {Phaser.GameObjects.Image} */
+ this.back;
+ /** @type {Phaser.GameObjects.Image} */
+ this.icon;
+ /** @type {Phaser.GameObjects.Image} */
+ this.color;
+ /** @type {Phaser.GameObjects.Image} */
+ this.element;
+ /** @type {Phaser.GameObjects.Text} */
+ this.value;
+
+
+ // glow
+ const glow = scene.add.sprite(1, 0, "ninjaprogress", "card/glow0001");
+ glow.setOrigin(0.503030303030303, 0.5);
+ glow.visible = false;
+ this.add(glow);
+
+ // back
+ const back = scene.add.image(0, 0, "ninjaprogress", "card/back");
+ back.scaleX = 0.95;
+ back.scaleY = 0.95;
+ back.setOrigin(0.5038167938931297, 0.5);
+ this.add(back);
+
+ // shadow
+ const shadow = scene.add.image(3, 3, "ninjaprogress", "card/shadow");
+ shadow.setOrigin(0.5038167938931297, 0.5);
+ this.add(shadow);
+
+ // icon
+ const icon = scene.add.image(-66, -74, "_MISSING");
+ icon.scaleX = 0.7;
+ icon.scaleY = 0.7;
+ icon.setOrigin(0, 0);
+ icon.visible = false;
+ this.add(icon);
+
+ // color
+ const color = scene.add.image(0, 0, "ninjaprogress", "card/color");
+ color.setOrigin(0.5038167938931297, 0.5);
+ color.tintTopLeft = 1132705;
+ color.tintTopRight = 1132705;
+ color.tintBottomLeft = 1132705;
+ color.tintBottomRight = 1132705;
+ this.add(color);
+
+ // element
+ const element = scene.add.image(-47, -54, "ninjaprogress", "card/f");
+ element.setOrigin(0.5, 0.5185185185185185);
+ this.add(element);
+
+ // value
+ const value = scene.add.text(-66, -40, "", {});
+ value.text = "88";
+ value.setStyle({ "align": "center", "color": "#000", "fixedWidth":36,"fontFamily": "Burbank Big Regular", "fontSize": "26px", "fontStyle": "bold" });
+ this.add(value);
+
+ this.glow = glow;
+ this.back = back;
+ this.icon = icon;
+ this.color = color;
+ this.element = element;
+ this.value = value;
+
+ /* START-USER-CTR-CODE */
+
+ this.id
+
+ this.glow.anims.play('ninjaprogress/glow')
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show(card) {
+ let tint = layout.colors[card.color].color
+
+ this.value.text = card.value
+ this.color.tint = tint
+
+ this.element.setFrame(`card/${card.element}`)
+
+ if (card.powerId > 0) {
+ this.glow.tint = tint
+ }
+
+ this.glow.visible = card.powerId > 0
+
+ super.show()
+ }
+
+ setIcon(key) {
+ this.icon.setTexture(key)
+ this.icon.visible = true
+ }
+
+ removeIcon() {
+ this.icon.visible = false
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/ninjaprogress/views/CardsViewCard.scene b/src/scenes/games/ninjaprogress/views/CardsViewCard.scene
new file mode 100644
index 00000000..4dce8b09
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/views/CardsViewCard.scene
@@ -0,0 +1,129 @@
+{
+ "id": "9f9b5b6f-5629-4026-a28d-0bfd8b2ac1e4",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "f9520288-babf-4d1e-9df3-6de2014f5bf8",
+ "label": "container_1",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Sprite",
+ "id": "695f8494-eea7-464d-97fa-98dec9180ffe",
+ "label": "glow",
+ "scope": "CLASS",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "card/glow0001"
+ },
+ "x": 1,
+ "originX": 0.503030303030303,
+ "visible": false
+ },
+ {
+ "type": "Image",
+ "id": "0b8f3a7d-39ce-44f5-96ed-57f43fb888e7",
+ "label": "back",
+ "scope": "CLASS",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "card/back"
+ },
+ "scaleX": 0.95,
+ "scaleY": 0.95,
+ "originX": 0.5038167938931297
+ },
+ {
+ "type": "Image",
+ "id": "e1ca6d79-b0a8-49ef-a40a-2d60d05bdf90",
+ "label": "shadow",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "card/shadow"
+ },
+ "x": 3,
+ "y": 3,
+ "originX": 0.5038167938931297
+ },
+ {
+ "type": "Image",
+ "id": "3aa33900-d940-437c-8155-e66c64f3b560",
+ "label": "icon",
+ "scope": "CLASS",
+ "texture": {},
+ "x": -66,
+ "y": -74,
+ "scaleX": 0.7,
+ "scaleY": 0.7,
+ "originX": 0,
+ "originY": 0,
+ "visible": false
+ },
+ {
+ "type": "Image",
+ "id": "30e60b4b-9fe0-40bf-b4a7-b2d698495564",
+ "label": "color",
+ "scope": "CLASS",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "card/color"
+ },
+ "originX": 0.5038167938931297,
+ "tintTopLeft": "#1148a1",
+ "tintTopRight": "#1148a1",
+ "tintBottomLeft": "#1148a1",
+ "tintBottomRight": "#1148a1"
+ },
+ {
+ "type": "Image",
+ "id": "229219ee-a4bd-4dc7-a844-2977401125c8",
+ "label": "element",
+ "scope": "CLASS",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "card/f"
+ },
+ "x": -47,
+ "y": -54,
+ "originY": 0.5185185185185185
+ },
+ {
+ "type": "Text",
+ "id": "eed3170b-7b07-4cdc-adcd-133f2a8e8bb7",
+ "label": "value",
+ "scope": "CLASS",
+ "x": -66,
+ "y": -40,
+ "text": "88",
+ "fixedWidth": 36,
+ "align": "center",
+ "fontFamily": "Burbank Big Regular",
+ "fontSize": "26px",
+ "fontStyle": "bold",
+ "color": "#000"
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/ninjaprogress/views/ProgressView.js b/src/scenes/games/ninjaprogress/views/ProgressView.js
new file mode 100644
index 00000000..1d0ff4c5
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/views/ProgressView.js
@@ -0,0 +1,214 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Button from "../../../components/Button";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class ProgressView extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Text} */
+ this.cardsNum;
+ /** @type {Phaser.GameObjects.Image} */
+ this.nextBelt;
+ /** @type {Phaser.GameObjects.Image} */
+ this.currentBelt;
+ /** @type {Phaser.GameObjects.Text} */
+ this.nextText;
+ /** @type {Phaser.GameObjects.Text} */
+ this.currentText;
+ /** @type {Phaser.GameObjects.Image} */
+ this.bar;
+ /** @type {Phaser.GameObjects.Text} */
+ this.progressText;
+ /** @type {Phaser.GameObjects.Container} */
+ this.sensei;
+ /** @type {Phaser.GameObjects.Container} */
+ this.hideout;
+
+
+ // cardsButton
+ const cardsButton = scene.add.image(0, 254, "ninjaprogress", "button");
+ cardsButton.setOrigin(0.5, 0.5060240963855421);
+ this.add(cardsButton);
+
+ // cards
+ const cards = scene.add.image(68, 245, "ninjaprogress", "cards");
+ this.add(cards);
+
+ // cardsNum
+ const cardsNum = scene.add.text(64, 248, "", {});
+ cardsNum.setOrigin(0.5, 0.5);
+ cardsNum.text = "0";
+ cardsNum.setStyle({ "align": "center", "fixedWidth":100,"fontFamily": "Burbank Big Regular", "fontSize": "48px", "fontStyle": "bold", "stroke": "#000", "strokeThickness":8,"shadow.blur":2,"shadow.stroke":true,"shadow.fill":true});
+ this.add(cardsNum);
+
+ // cardsText
+ const cardsText = scene.add.text(-81, 254, "", {});
+ cardsText.setOrigin(0.5, 0.5);
+ cardsText.text = "VIEW YOUR\nCARDS";
+ cardsText.setStyle({ "align": "center", "color": "#736357", "fixedWidth":140,"fontFamily": "CCFaceFront", "fontSize": "20px", "fontStyle": "bold italic" });
+ this.add(cardsText);
+
+ // progressBg
+ const progressBg = scene.add.image(0, 0, "ninjaprogress", "progress");
+ this.add(progressBg);
+
+ // nextBelt
+ const nextBelt = scene.add.image(436, 27, "ninjaprogress", "next/1");
+ nextBelt.setOrigin(0.5042735042735043, 0.5052631578947369);
+ this.add(nextBelt);
+
+ // currentBelt
+ const currentBelt = scene.add.image(-399, 66, "ninjaprogress", "belt/1");
+ currentBelt.setOrigin(0.502262443438914, 0.5);
+ this.add(currentBelt);
+
+ // nextText
+ const nextText = scene.add.text(244, -42, "", {});
+ nextText.setOrigin(0.5, 1);
+ nextText.text = "Next Belt";
+ nextText.setStyle({ "align": "right", "color": "#333", "fixedWidth":500,"fontFamily": "Burbank Small", "fontSize": "26px", "fontStyle": "bold" });
+ this.add(nextText);
+
+ // currentText
+ const currentText = scene.add.text(-256, -42, "", {});
+ currentText.setOrigin(0.5, 1);
+ currentText.text = "Current Belt";
+ currentText.setStyle({ "color": "#333", "fixedWidth":500,"fontFamily": "Burbank Small", "fontSize": "32px", "fontStyle": "bold" });
+ this.add(currentText);
+
+ // bar
+ const bar = scene.add.image(46, 7, "ninjaprogress", "progress/1");
+ bar.setOrigin(0.5008347245409015, 0.5);
+ this.add(bar);
+
+ // progressText
+ const progressText = scene.add.text(-192, 8, "", {});
+ progressText.setOrigin(1, 0.5);
+ progressText.visible = false;
+ progressText.text = "0%";
+ progressText.setStyle({ "align": "right", "color": "#333", "fixedWidth":80,"fontFamily": "Burbank Small", "fontSize": "28px", "fontStyle": "bold" });
+ this.add(progressText);
+
+ // sensei
+ const sensei = scene.add.container(12, -14);
+ sensei.visible = false;
+ this.add(sensei);
+
+ // senseiImage
+ const senseiImage = scene.add.image(116, 0, "ninjaprogress", "sensei");
+ senseiImage.setOrigin(0.5, 0.5023255813953489);
+ sensei.add(senseiImage);
+
+ // senseiText
+ const senseiText = scene.add.text(0, 20, "", {});
+ senseiText.setOrigin(0.5, 0.5);
+ senseiText.text = "Well done, grasshopper. You have earned your\nblack belt. Take the next step of your training\njourney and challenge Sensei to become a ninja.";
+ senseiText.setStyle({ "align": "center", "color": "#333", "fixedWidth":600,"fontFamily": "Burbank Small", "fontSize": "26px" });
+ senseiText.setLineSpacing(8);
+ sensei.add(senseiText);
+
+ // hideout
+ const hideout = scene.add.container(-26, -6);
+ hideout.visible = false;
+ this.add(hideout);
+
+ // hideoutImage
+ const hideoutImage = scene.add.image(0, 0, "ninjaprogress", "hideout");
+ hideout.add(hideoutImage);
+
+ // hideoutText
+ const hideoutText = scene.add.text(132, 10, "", {});
+ hideoutText.setOrigin(0.5, 0.5);
+ hideoutText.text = "Congratulations, ninja! You are a wise Card-Jitsu\nmaster and you now have access to the Ninja Hideout.";
+ hideoutText.setStyle({ "align": "center", "color": "#333", "fixedWidth":800,"fontFamily": "Burbank Small", "fontSize": "26px" });
+ hideoutText.setLineSpacing(8);
+ hideout.add(hideoutText);
+
+ // cardsButton (components)
+ const cardsButtonButton = new Button(cardsButton);
+ cardsButtonButton.spriteName = "button";
+ cardsButtonButton.callback = () => this.onButtonClick();
+
+ this.cardsNum = cardsNum;
+ this.nextBelt = nextBelt;
+ this.currentBelt = currentBelt;
+ this.nextText = nextText;
+ this.currentText = currentText;
+ this.bar = bar;
+ this.progressText = progressText;
+ this.sensei = sensei;
+ this.hideout = hideout;
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show(rank, progress) {
+ this.setRank(rank)
+ this.setProgress(progress)
+
+ super.show()
+ }
+
+ setRank(rank) {
+ this.setVisibleElements(rank)
+ this.setCurrentBelt(rank)
+ this.setNextBelt(rank)
+ }
+
+ setCurrentBelt(rank) {
+ this.currentBelt.alpha = rank > 0 ? 1 : 0.25
+
+ rank = Phaser.Math.Clamp(rank, 1, 9)
+
+ this.currentBelt.setFrame(`belt/${rank}`)
+ }
+
+ setNextBelt(rank) {
+ rank = Phaser.Math.Clamp(rank + 1, 1, 9)
+
+ this.nextBelt.setFrame(`next/${rank}`)
+ }
+
+ setProgress(progress) {
+ progress = Phaser.Math.Clamp(progress, 1, 100)
+
+ this.bar.setFrame(`progress/${progress}`)
+ }
+
+ setCardsNum(num) {
+ this.cardsNum.text = num
+ }
+
+ setVisibleElements(rank) {
+ let nextVisible = rank < 9
+ let senseiVisible = rank == 9
+ let ninjaVisible = rank == 10
+
+ this.bar.visible = nextVisible
+ this.nextText.visible = nextVisible
+ this.nextBelt.visible = nextVisible
+
+ this.sensei.visible = senseiVisible
+ this.hideout.visible = ninjaVisible
+
+ this.currentText.visible = !ninjaVisible
+ this.currentBelt.visible = !ninjaVisible
+ }
+
+ onButtonClick() {
+ this.parentContainer.separator.onClick()
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/ninjaprogress/views/ProgressView.scene b/src/scenes/games/ninjaprogress/views/ProgressView.scene
new file mode 100644
index 00000000..c98c88a5
--- /dev/null
+++ b/src/scenes/games/ninjaprogress/views/ProgressView.scene
@@ -0,0 +1,271 @@
+{
+ "id": "69fb792c-79d1-47f9-a9aa-152d9e190c9d",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "e79a212e-9595-46b8-930e-6c5f2e0e62c0",
+ "label": "container_1",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "ceff7150-8ae8-4b1a-ba67-c7018433f491",
+ "label": "cardsButton",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "button",
+ "Button.callback": "() => this.onButtonClick()",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "button"
+ },
+ "y": 254,
+ "originY": 0.5060240963855421
+ },
+ {
+ "type": "Image",
+ "id": "7b9b4fe8-ae89-45a4-abb5-b027bf877c8b",
+ "label": "cards",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "cards"
+ },
+ "x": 68,
+ "y": 245
+ },
+ {
+ "type": "Text",
+ "id": "179eb58d-0975-484c-b228-cc6276263375",
+ "label": "cardsNum",
+ "scope": "CLASS",
+ "x": 64,
+ "y": 248,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "0",
+ "fixedWidth": 100,
+ "align": "center",
+ "fontFamily": "Burbank Big Regular",
+ "fontSize": "48px",
+ "fontStyle": "bold",
+ "stroke": "#000",
+ "strokeThickness": 8,
+ "shadow.stroke": true,
+ "shadow.fill": true,
+ "shadow.blur": 2
+ },
+ {
+ "type": "Text",
+ "id": "928a8a3c-c2c0-4c2b-8b73-0b1bcd0cfe0e",
+ "label": "cardsText",
+ "x": -81,
+ "y": 254,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "VIEW YOUR\nCARDS",
+ "fixedWidth": 140,
+ "align": "center",
+ "fontFamily": "CCFaceFront",
+ "fontSize": "20px",
+ "fontStyle": "bold italic",
+ "color": "#736357"
+ },
+ {
+ "type": "Image",
+ "id": "076ce9cb-e64c-4dcc-be8a-e351954f6d6a",
+ "label": "progressBg",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "progress"
+ }
+ },
+ {
+ "type": "Image",
+ "id": "d269ba3b-46d9-4af2-8920-62965ed19bf6",
+ "label": "nextBelt",
+ "scope": "CLASS",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "next/1"
+ },
+ "x": 436,
+ "y": 27,
+ "originX": 0.5042735042735043,
+ "originY": 0.5052631578947369
+ },
+ {
+ "type": "Image",
+ "id": "a85434a7-54ef-4c09-99d2-857f010bf8fc",
+ "label": "currentBelt",
+ "scope": "CLASS",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "belt/1"
+ },
+ "x": -399,
+ "y": 66,
+ "originX": 0.502262443438914
+ },
+ {
+ "type": "Text",
+ "id": "21d65873-cc17-4483-be74-d80f8a55abad",
+ "label": "nextText",
+ "scope": "CLASS",
+ "x": 244,
+ "y": -42,
+ "originX": 0.5,
+ "originY": 1,
+ "text": "Next Belt",
+ "fixedWidth": 500,
+ "align": "right",
+ "fontFamily": "Burbank Small",
+ "fontSize": "26px",
+ "fontStyle": "bold",
+ "color": "#333"
+ },
+ {
+ "type": "Text",
+ "id": "d70717d1-7680-46ce-9783-b2a5963bcbdd",
+ "label": "currentText",
+ "scope": "CLASS",
+ "x": -256,
+ "y": -42,
+ "originX": 0.5,
+ "originY": 1,
+ "text": "Current Belt",
+ "fixedWidth": 500,
+ "fontFamily": "Burbank Small",
+ "fontSize": "32px",
+ "fontStyle": "bold",
+ "color": "#333"
+ },
+ {
+ "type": "Image",
+ "id": "429725a8-bb97-4868-9739-0025aa45eead",
+ "label": "bar",
+ "scope": "CLASS",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "progress/1"
+ },
+ "x": 46,
+ "y": 7,
+ "originX": 0.5008347245409015
+ },
+ {
+ "type": "Text",
+ "id": "c60c1252-f381-4260-b587-06924e6e85b7",
+ "label": "progressText",
+ "scope": "CLASS",
+ "x": -192,
+ "y": 8,
+ "originX": 1,
+ "originY": 0.5,
+ "visible": false,
+ "text": "0%",
+ "fixedWidth": 80,
+ "align": "right",
+ "fontFamily": "Burbank Small",
+ "fontSize": "28px",
+ "fontStyle": "bold",
+ "color": "#333"
+ },
+ {
+ "type": "Container",
+ "id": "a91499ce-58e4-4159-866a-6074a3bd6bd8",
+ "label": "sensei",
+ "scope": "CLASS",
+ "x": 12,
+ "y": -14,
+ "visible": false,
+ "list": [
+ {
+ "type": "Image",
+ "id": "a8b59277-06bc-450f-a0c6-408956531166",
+ "label": "senseiImage",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "sensei"
+ },
+ "x": 116,
+ "originY": 0.5023255813953489
+ },
+ {
+ "type": "Text",
+ "id": "57ed6934-c5fb-4f95-8746-20adfbcdfd66",
+ "label": "senseiText",
+ "y": 20,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "Well done, grasshopper. You have earned your\nblack belt. Take the next step of your training\njourney and challenge Sensei to become a ninja.",
+ "fixedWidth": 600,
+ "lineSpacing": 8,
+ "align": "center",
+ "fontFamily": "Burbank Small",
+ "fontSize": "26px",
+ "color": "#333"
+ }
+ ]
+ },
+ {
+ "type": "Container",
+ "id": "73fc1120-7bec-42f7-a3ff-c1ef70dbdf4b",
+ "label": "hideout",
+ "scope": "CLASS",
+ "x": -26,
+ "y": -6,
+ "visible": false,
+ "list": [
+ {
+ "type": "Image",
+ "id": "29c6e148-233f-4cbc-959a-f4b295425d1f",
+ "label": "hideoutImage",
+ "texture": {
+ "key": "ninjaprogress",
+ "frame": "hideout"
+ }
+ },
+ {
+ "type": "Text",
+ "id": "7b63e695-ade2-4079-9399-8ac8fa14d8b7",
+ "label": "hideoutText",
+ "x": 132,
+ "y": 10,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "Congratulations, ninja! You are a wise Card-Jitsu\nmaster and you now have access to the Ninja Hideout.",
+ "fixedWidth": 800,
+ "lineSpacing": 8,
+ "align": "center",
+ "fontFamily": "Burbank Small",
+ "fontSize": "26px",
+ "color": "#333"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/Sensei.js b/src/scenes/games/sensei/Sensei.js
new file mode 100644
index 00000000..2f920959
--- /dev/null
+++ b/src/scenes/games/sensei/Sensei.js
@@ -0,0 +1,154 @@
+/* START OF COMPILED CODE */
+
+import GameScene from "../GameScene";
+import SenseiWidget from "./widget/SenseiWidget";
+import SenseiMenu from "./menu/SenseiMenu";
+import Button from "../../components/Button";
+import SenseiMatch from "./match/SenseiMatch";
+/* START-USER-IMPORTS */
+
+import SenseiInstructions from './instructions/SenseiInstructions'
+import { intro } from './config/SenseiSequences'
+
+/* END-USER-IMPORTS */
+
+export default class Sensei extends GameScene {
+
+ constructor() {
+ super("Sensei");
+
+ /** @type {SenseiWidget} */
+ this.widget;
+ /** @type {SenseiMenu} */
+ this.menu;
+ /** @type {SenseiMatch} */
+ this.match;
+
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+ /** @returns {void} */
+ _preload() {
+
+ this.load.pack("sensei-pack", "assets/media/games/sensei/sensei-pack.json");
+ this.load.pack("senseiinstructions-pack", "assets/media/games/sensei/instructions/senseiinstructions-pack.json");
+ }
+
+ /** @returns {void} */
+ _create() {
+
+ // widget
+ const widget = new SenseiWidget(this);
+ this.add.existing(widget);
+ widget.visible = true;
+
+ // menu
+ const menu = new SenseiMenu(this, 1060, 774);
+ this.add.existing(menu);
+
+ // xButton
+ const xButton = this.add.image(1474, 43, "main", "grey-button");
+
+ // x
+ this.add.image(1474, 41, "main", "grey-x");
+
+ // match
+ const match = new SenseiMatch(this, 1024, 424);
+ this.add.existing(match);
+ match.visible = false;
+
+ // xButton (components)
+ const xButtonButton = new Button(xButton);
+ xButtonButton.spriteName = "grey-button";
+ xButtonButton.callback = () => this.world.client.sendJoinLastRoom();
+
+ this.widget = widget;
+ this.menu = menu;
+ this.match = match;
+
+ this.events.emit("scene-awake");
+ }
+
+
+ /* START-USER-CODE */
+
+ get userHasDeck() {
+ return this.world.client.inventory.award.includes(821)
+ }
+
+ create() {
+ super.create()
+
+ this.widget.addBackgroundEvent('pointerover', this.onBackgroundOver, this)
+
+ this.instructions = new SenseiInstructions(this)
+
+ // Add instructions into widget
+ this.widget.addAt(this.instructions, this.widget.speechIndex)
+
+ if (!this.userHasDeck) {
+ this.startSequence(intro)
+ return
+ }
+
+ this.showStartMenu()
+ }
+
+ onBackgroundOver() {
+ // Speech displayed when there is no menu should stick
+ if (!this.menu.visible) return
+
+ // Speech displayed during menus other than the start menu should stick
+ if (!this.menu.isStartMenuActive) return
+
+ this.widget.hideSpeech()
+ }
+
+ startSequence(sequence) {
+ this.menu.close()
+ this.widget.startSequence(sequence)
+ }
+
+ showMenu(menu) {
+ this.widget.playWait()
+ this.menu.show(menu)
+ }
+
+ showStartMenu() {
+ this.menu.showStartMenu()
+ }
+
+ showPreviousMenu() {
+ this.menu.showPreviousMenu()
+ }
+
+ showMatch() {
+ this.menu.close()
+ this.hideSpeech()
+ this.match.show()
+ }
+
+ showSpeech(text) {
+ this.widget.showSpeech(text)
+ }
+
+ hideSpeech() {
+ this.widget.hideSpeech()
+ }
+
+ hideInstructions() {
+ this.instructions.hideAll()
+ }
+
+ stop() {
+ this.match.close()
+
+ super.stop()
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/Sensei.scene b/src/scenes/games/sensei/Sensei.scene
new file mode 100644
index 00000000..575e5c85
--- /dev/null
+++ b/src/scenes/games/sensei/Sensei.scene
@@ -0,0 +1,92 @@
+{
+ "id": "0ac4158a-df71-4a5d-8d9f-1540ef2542cf",
+ "sceneType": "SCENE",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "GameScene",
+ "preloadMethodName": "_preload",
+ "preloadPackFiles": [
+ "yukon/assets/media/games/sensei/sensei-pack.json",
+ "yukon/assets/media/games/sensei/instructions/senseiinstructions-pack.json"
+ ],
+ "createMethodName": "_create",
+ "sceneKey": "Sensei",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "prefabId": "fbf6af33-9518-47c9-b5a9-fd3beb3a5292",
+ "id": "ab620860-d6bf-4dea-bfcc-879f38ee00ab",
+ "unlock": [
+ "visible"
+ ],
+ "label": "widget",
+ "scope": "CLASS",
+ "visible": true
+ },
+ {
+ "prefabId": "717f221e-2a49-41a0-a3d4-1aabab9d9a0f",
+ "id": "7d7ebac3-5625-4b21-9b9c-18c356cc56f3",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "menu",
+ "scope": "CLASS",
+ "x": 1060,
+ "y": 774
+ },
+ {
+ "type": "Image",
+ "id": "931acc13-5748-49c2-b341-63c5e9242a42",
+ "label": "xButton",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "grey-button",
+ "Button.callback": "() => this.world.client.sendJoinLastRoom()",
+ "texture": {
+ "key": "main",
+ "frame": "grey-button"
+ },
+ "x": 1474,
+ "y": 43
+ },
+ {
+ "type": "Image",
+ "id": "42c44031-0283-493f-84b0-702119a7182b",
+ "label": "x",
+ "texture": {
+ "key": "main",
+ "frame": "grey-x"
+ },
+ "x": 1474,
+ "y": 41
+ },
+ {
+ "prefabId": "d658d0fb-b2e2-4eee-ba26-d33156d4eee1",
+ "id": "a3de0ee2-1b7a-4a18-a3a3-afa1e39efcb7",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "match",
+ "scope": "CLASS",
+ "x": 1024,
+ "y": 424,
+ "visible": false
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/config/BeltColors.js b/src/scenes/games/sensei/config/BeltColors.js
new file mode 100644
index 00000000..c28ac830
--- /dev/null
+++ b/src/scenes/games/sensei/config/BeltColors.js
@@ -0,0 +1 @@
+export default [16777215, 16776960, 16737792, 3394560, 13260, 13369344, 6684927, 6697728, 4473924]
diff --git a/src/scenes/games/sensei/config/SenseiMenus.js b/src/scenes/games/sensei/config/SenseiMenus.js
new file mode 100644
index 00000000..ac7a29a4
--- /dev/null
+++ b/src/scenes/games/sensei/config/SenseiMenus.js
@@ -0,0 +1,135 @@
+import * as sequences from './SenseiSequences'
+
+
+export function start(menu) {
+ return [
+ {
+ text: menu.getString('menu_title_competition'),
+ icon: 'menu/icon/belt',
+
+ over: () => {
+ menu.showSpeech(menu.getString('menu_description_competition'))
+ },
+ up: () => {
+ menu.showMatch()
+ }
+ },
+ {
+ text: menu.getString('menu_title_sensei'),
+ icon: 'menu/icon/sensei',
+
+ over: () => {
+ menu.showSpeech(menu.getString('menu_description_sensei'))
+ },
+ up: () => {
+ menu.network.send('join_sensei')
+ }
+ },
+ {
+ text: menu.getString('menu_title_instructions'),
+ icon: 'menu/icon/instructions',
+
+ over: () => {
+ menu.showSpeech(menu.getString('menu_description_instructions'))
+ },
+ up: () => {
+ menu.startSequence(sequences.instrHowToPlay)
+ }
+ }
+ ]
+}
+
+export function instrWhatDoIDo(menu) {
+ return [
+ {
+ text: menu.getString('help_response_whatdoido'),
+
+ up: () => {
+ menu.startSequence(sequences.instrWhatDoIDo)
+ }
+ }
+ ]
+}
+
+export function instrYesPlease(menu) {
+ return [
+ {
+ text: menu.getString('help_response_yes'),
+
+ up: () => {
+ menu.startSequence(sequences.instrHowToPlay)
+ }
+ },
+ {
+ text: menu.getString('help_response_no', 'help_response_play'),
+
+ up: () => {
+ menu.showMatch()
+ }
+ }
+ ]
+}
+
+export function instrHowToWin(menu) {
+ return [
+ {
+ text: menu.getString('help_response_howtowin'),
+
+ up: () => {
+ menu.startSequence(sequences.instrHowToWin)
+ }
+ },
+ {
+ text: menu.getString('help_response_cantwait', 'help_response_play'),
+
+ up: () => {
+ menu.showMatch()
+ }
+ }
+ ]
+}
+
+export function instrHowToNinja(menu) {
+ return [
+ {
+ text: menu.getString('help_response_becomeninja'),
+
+ up: () => {
+ menu.startSequence(sequences.instrHowToNinja)
+ }
+ },
+ {
+ text: menu.getString('help_response_cantwait', 'help_response_play'),
+
+ up: () => {
+ menu.showMatch()
+ }
+ }
+ ]
+}
+
+export function instrCountMeIn(menu) {
+ return [
+ {
+ text: menu.getString('help_response_countmein'),
+
+ up: () => {
+ menu.showMatch()
+ }
+ },
+ {
+ text: menu.getString('help_response_tellmeagain'),
+
+ up: () => {
+ menu.startSequence(sequences.introCards)
+ }
+ },
+ {
+ text: menu.getString('help_response_havetogo'),
+
+ up: () => {
+ menu.world.client.sendJoinLastRoom()
+ }
+ }
+ ]
+}
diff --git a/src/scenes/games/sensei/config/SenseiSequences.js b/src/scenes/games/sensei/config/SenseiSequences.js
new file mode 100644
index 00000000..add5f07d
--- /dev/null
+++ b/src/scenes/games/sensei/config/SenseiSequences.js
@@ -0,0 +1,166 @@
+import * as menus from './SenseiMenus'
+
+
+export function beltAward(widget) {
+ return [
+ () => {
+ widget.showSpeech(widget.getString('help_award_congratulations'))
+ },
+ () => {
+ widget.showSpeech(widget.getFormatString('help_award_belt_earned', widget.beltString))
+ widget.showBelt()
+ },
+ () => {
+ widget.leaveGame()
+ }
+ ]
+}
+
+export function maskAward(widget) {
+ return [
+ () => {
+ widget.showSpeech(widget.getString('help_defeat_sensei_intro'))
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_defeat_sensei_kowtows'))
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_defeat_sensei_gift'))
+ widget.showMask()
+ },
+ () => {
+ widget.hideAward()
+ widget.showHideout()
+ widget.showSpeech(widget.getString('help_defeat_sensei_final'))
+ },
+ () => {
+ widget.leaveGame()
+ }
+ ]
+}
+
+export function intro(widget) {
+ return [
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_welcome'))
+ },
+ () => {
+ widget.startSequence(introCards)
+ }
+ ]
+}
+
+export function introCards(widget) {
+ return [
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_tobegin'))
+ widget.scene.instructions.showCards()
+ },
+ () => {
+ widget.network.send('add_starter_deck')
+
+ widget.scene.instructions.hideCards()
+ widget.scene.showMenu(menus.instrWhatDoIDo)
+ }
+ ]
+}
+
+export function instrWhatDoIDo(widget) {
+ return [
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_improve'))
+ widget.scene.instructions.showCompete()
+ },
+ () => {
+ widget.scene.hideInstructions()
+ widget.showSpeech(widget.getString('help_firsttime_areyouready'))
+ },
+ () => {
+ widget.scene.hideInstructions()
+ widget.scene.showMenu(menus.instrYesPlease)
+ }
+ ]
+}
+
+export function instrHowToPlay(widget) {
+ return [
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_pickacard'))
+ widget.scene.instructions.showPick()
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_water'))
+ widget.scene.instructions.showWater()
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_snow'))
+ widget.scene.instructions.showSnow()
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_fire'))
+ widget.scene.instructions.showFire()
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_tie'))
+ widget.scene.instructions.showTie()
+ },
+ () => {
+ widget.hideSpeech()
+ widget.scene.hideInstructions()
+ widget.scene.showMenu(menus.instrHowToWin)
+ }
+ ]
+}
+
+export function instrHowToWin(widget) {
+ return [
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_howtowin'))
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_winsame'))
+ widget.scene.instructions.showWinSame()
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_windifferent'))
+ widget.scene.instructions.showWinDifferent()
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_ingamehelp'))
+ widget.scene.instructions.showHelp()
+ },
+ () => {
+ widget.hideSpeech()
+ widget.scene.hideInstructions()
+ widget.scene.showMenu(menus.instrHowToNinja)
+ }
+ ]
+}
+
+export function instrHowToNinja(widget) {
+ return [
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_joking'))
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_gainexp'))
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_belts'))
+ widget.scene.instructions.showBelt()
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_fightme'))
+ widget.scene.instructions.showBlackBelt()
+ },
+ () => {
+ widget.showSpeech(widget.getString('help_firsttime_ninja'))
+ widget.scene.instructions.showNinja()
+ },
+ () => {
+ widget.hideSpeech()
+ widget.scene.hideInstructions()
+ widget.scene.showMenu(menus.instrCountMeIn)
+ }
+ ]
+}
diff --git a/src/scenes/games/sensei/instructions/SenseiInstructions.js b/src/scenes/games/sensei/instructions/SenseiInstructions.js
new file mode 100644
index 00000000..6f4b4f3f
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/SenseiInstructions.js
@@ -0,0 +1,216 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import SenseiBubble from "./bubble/SenseiBubble";
+import SenseiBelt from "./belt/SenseiBelt";
+import SenseiCards from "./cards/SenseiCards";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class SenseiInstructions extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.ninja;
+ /** @type {SenseiBubble} */
+ this.bubble;
+ /** @type {SenseiBelt} */
+ this.belt;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.help;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.winDifferent;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.winSame;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.tie;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.fire;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.snow;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.water;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.pick;
+ /** @type {SenseiCards} */
+ this.cards;
+
+
+ // ninja
+ const ninja = scene.add.sprite(1025, 558, "senseiinstructions", "ninja/ninja0035");
+ ninja.setOrigin(0.5006226650062267, 0.5008976660682226);
+ ninja.visible = false;
+ this.add(ninja);
+
+ // bubble
+ const bubble = new SenseiBubble(scene, 1025, 558);
+ bubble.visible = false;
+ this.add(bubble);
+
+ // belt
+ const belt = new SenseiBelt(scene, 979, 547);
+ belt.visible = false;
+ this.add(belt);
+
+ // help
+ const help = scene.add.sprite(1150, 646, "senseiinstructions", "help/help0001");
+ help.setOrigin(0.5003996802557954, 0.5);
+ help.visible = false;
+ this.add(help);
+
+ // winDifferent
+ const winDifferent = scene.add.sprite(987, 1335, "senseiinstructions", "win_different/win0091");
+ winDifferent.visible = false;
+ this.add(winDifferent);
+
+ // winSame
+ const winSame = scene.add.sprite(1826, 484, "senseiinstructions", "win_same/win0090");
+ winSame.setOrigin(0.5002171081198437, 0.5);
+ winSame.visible = false;
+ this.add(winSame);
+
+ // tie
+ const tie = scene.add.sprite(1093, 483, "senseiinstructions", "tie/tie0040");
+ tie.setOrigin(0.5006353240152478, 0.5);
+ tie.visible = false;
+ this.add(tie);
+
+ // fire
+ const fire = scene.add.sprite(1057, 440, "senseiinstructions", "fire/fire0056");
+ fire.setOrigin(0.5007704160246533, 0.5016835016835017);
+ fire.visible = false;
+ this.add(fire);
+
+ // snow
+ const snow = scene.add.sprite(949, 441, "senseiinstructions", "snow/snow0056");
+ snow.setOrigin(0.5007898894154819, 0.5016835016835017);
+ snow.visible = false;
+ this.add(snow);
+
+ // water
+ const water = scene.add.sprite(1057, 440, "senseiinstructions", "water/water0056");
+ water.setOrigin(0.5007704160246533, 0.5016835016835017);
+ water.visible = false;
+ this.add(water);
+
+ // pick
+ const pick = scene.add.sprite(1564, 1004, "senseiinstructions", "pick/pick0001");
+ pick.visible = false;
+ this.add(pick);
+
+ // cards
+ const cards = new SenseiCards(scene, 1378, 658);
+ cards.visible = false;
+ this.add(cards);
+
+ this.ninja = ninja;
+ this.bubble = bubble;
+ this.belt = belt;
+ this.help = help;
+ this.winDifferent = winDifferent;
+ this.winSame = winSame;
+ this.tie = tie;
+ this.fire = fire;
+ this.snow = snow;
+ this.water = water;
+ this.pick = pick;
+ this.cards = cards;
+
+ /* START-USER-CTR-CODE */
+
+ this.hideAll()
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ showCards() {
+ this.hideAll()
+
+ this.cards.show()
+ }
+
+ hideCards() {
+ this.cards.close()
+ }
+
+ showPick() {
+ this.showAndPlaySprite(this.pick, 'instructions/pick')
+ }
+
+ showWater() {
+ this.showAndPlaySprite(this.water, 'instructions/water')
+ }
+
+ showSnow() {
+ this.showAndPlaySprite(this.snow, 'instructions/snow')
+ }
+
+ showFire() {
+ this.showAndPlaySprite(this.fire, 'instructions/fire')
+ }
+
+ showTie() {
+ this.showAndPlaySprite(this.tie, 'instructions/tie')
+ }
+
+ showWinSame() {
+ this.showAndPlaySprite(this.winSame, 'instructions/win_same')
+ }
+
+ showWinDifferent() {
+ this.showAndPlaySprite(this.winDifferent, 'instructions/win_different')
+ }
+
+ showHelp() {
+ this.showAndPlaySprite(this.help, 'instructions/help_start')
+
+ this.help.once('animationcomplete-instructions/help_start', () => {
+ this.help.play('instructions/help_loop')
+ })
+ }
+
+ showCompete() {
+ this.hideAll()
+
+ this.bubble.showCompete()
+ }
+
+ showBelt() {
+ this.hideAll()
+
+ this.belt.show()
+ }
+
+ showBlackBelt() {
+ this.hideAll()
+
+ this.bubble.showBlackBelt()
+ }
+
+ showNinja() {
+ this.showAndPlaySprite(this.ninja, 'instructions/ninja')
+ }
+
+ showAndPlaySprite(sprite, animKey) {
+ this.hideAll()
+
+ sprite.visible = true
+ sprite.play(animKey)
+ }
+
+ hideAll() {
+ this.each(child => {
+ child.stop()
+ child.visible = false
+ })
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/instructions/SenseiInstructions.scene b/src/scenes/games/sensei/instructions/SenseiInstructions.scene
new file mode 100644
index 00000000..703e086f
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/SenseiInstructions.scene
@@ -0,0 +1,202 @@
+{
+ "id": "7b12f529-40c2-42c2-a0a5-f84d3040a7fe",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "9c2d42b1-a753-45da-8ac2-31cf4a41cddc",
+ "label": "instructions",
+ "list": [
+ {
+ "type": "Sprite",
+ "id": "26e917db-c028-470c-ba9e-317f90ba68b9",
+ "label": "ninja",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "ninja/ninja0035"
+ },
+ "x": 1025,
+ "y": 558,
+ "originX": 0.5006226650062267,
+ "originY": 0.5008976660682226,
+ "visible": false
+ },
+ {
+ "prefabId": "522cce2c-95b0-443c-8abd-e776fae3b36a",
+ "id": "d594291c-4950-4a6b-a4d9-2e444b76a38e",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "bubble",
+ "scope": "CLASS",
+ "x": 1025,
+ "y": 558,
+ "visible": false
+ },
+ {
+ "prefabId": "4f8d4522-9b0f-44e6-b42b-864b442c8610",
+ "id": "854bd9ca-ac7f-4714-bca1-ab60f0459c73",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "belt",
+ "scope": "CLASS",
+ "x": 979,
+ "y": 547,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "aa86bf5a-4948-48e1-89da-ca19e1002398",
+ "label": "help",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "help/help0001"
+ },
+ "x": 1150,
+ "y": 646,
+ "originX": 0.5003996802557954,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "5338c6ce-8dc9-4623-b334-53b971478d7c",
+ "label": "winDifferent",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "win_different/win0091"
+ },
+ "x": 987,
+ "y": 1335,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "5e425442-0702-407d-9d28-a059391f8ce3",
+ "label": "winSame",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "win_same/win0090"
+ },
+ "x": 1826,
+ "y": 484,
+ "originX": 0.5002171081198437,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "c89b4d82-979c-43dd-9196-62ee7c16a495",
+ "label": "tie",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "tie/tie0040"
+ },
+ "x": 1093,
+ "y": 483,
+ "originX": 0.5006353240152478,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "90c0fd72-05a3-47e5-a4d6-5899099ed769",
+ "label": "fire",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "fire/fire0056"
+ },
+ "x": 1057,
+ "y": 440,
+ "originX": 0.5007704160246533,
+ "originY": 0.5016835016835017,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "42e6ab7c-2bf1-4fd6-890c-85ffb6586851",
+ "label": "snow",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "snow/snow0056"
+ },
+ "x": 949,
+ "y": 441,
+ "originX": 0.5007898894154819,
+ "originY": 0.5016835016835017,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "92e15995-dd48-4803-be48-7798b79c1b2b",
+ "label": "water",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "water/water0056"
+ },
+ "x": 1057,
+ "y": 440,
+ "originX": 0.5007704160246533,
+ "originY": 0.5016835016835017,
+ "visible": false
+ },
+ {
+ "type": "Sprite",
+ "id": "3339fcf5-d715-4ff5-8d81-db0b8c3a477e",
+ "label": "pick",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "pick/pick0001"
+ },
+ "x": 1564,
+ "y": 1004,
+ "visible": false
+ },
+ {
+ "prefabId": "222ec92d-eefc-4309-a7b6-c43572c61a60",
+ "id": "7702a0ab-d806-4596-be2d-7e15c4e692c1",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "cards",
+ "scope": "CLASS",
+ "x": 1378,
+ "y": 658,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/instructions/belt/SenseiBelt.js b/src/scenes/games/sensei/instructions/belt/SenseiBelt.js
new file mode 100644
index 00000000..05f029cb
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/belt/SenseiBelt.js
@@ -0,0 +1,90 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+import SimpleButton from "../../../../components/SimpleButton";
+/* START-USER-IMPORTS */
+
+import BeltColors from '../../config/BeltColors'
+
+/* END-USER-IMPORTS */
+
+export default class SenseiBelt extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.color;
+
+
+ // belt
+ const belt = scene.add.image(0, 0, "senseiinstructions", "belt/belt");
+ belt.setOrigin(0.503030303030303, 0.5037037037037037);
+ this.add(belt);
+
+ // color
+ const color = scene.add.image(1, -1, "senseiinstructions", "belt/color");
+ color.setOrigin(0.503448275862069, 0.5);
+ this.add(color);
+
+ // shadow
+ const shadow = scene.add.image(1, 4, "senseiinstructions", "belt/shadow");
+ shadow.setOrigin(0.503448275862069, 0.5);
+ this.add(shadow);
+
+ // belt (components)
+ const beltSimpleButton = new SimpleButton(belt);
+ beltSimpleButton.callback = () => this.onBeltClick();
+
+ this.color = color;
+
+ /* START-USER-CTR-CODE */
+
+ this.current = 0
+ this.tween = null
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show() {
+ this.current = 0
+
+ // Float
+ this.tween = this.scene.tweens.add({
+ targets: this,
+ y: this.y + 10,
+ duration: 333,
+ repeat: -1,
+ yoyo: true,
+ ease: Phaser.Math.Easing.Quadratic.InOut
+ })
+
+ this.updateColor()
+
+ super.show()
+ }
+
+ onBeltClick() {
+ this.current = (this.current + 1) % BeltColors.length
+
+ this.updateColor()
+ }
+
+ updateColor() {
+ this.color.tint = BeltColors[this.current]
+ }
+
+ stop() {
+ if (this.tween) {
+ this.tween.remove()
+ this.tween = null
+ }
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/instructions/belt/SenseiBelt.scene b/src/scenes/games/sensei/instructions/belt/SenseiBelt.scene
new file mode 100644
index 00000000..340d2455
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/belt/SenseiBelt.scene
@@ -0,0 +1,72 @@
+{
+ "id": "4f8d4522-9b0f-44e6-b42b-864b442c8610",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "a003baf5-af83-437e-b5a5-b9e160ffe729",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "Image",
+ "id": "fa0da86e-f10c-45db-9fcc-5cc2bb7e828f",
+ "label": "belt",
+ "components": [
+ "SimpleButton"
+ ],
+ "SimpleButton.callback": "() => this.onBeltClick()",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "belt/belt"
+ },
+ "originX": 0.503030303030303,
+ "originY": 0.5037037037037037
+ },
+ {
+ "type": "Image",
+ "id": "26263dde-bd9a-4b97-be6e-73708819290f",
+ "label": "color",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "belt/color"
+ },
+ "x": 1,
+ "y": -1,
+ "originX": 0.503448275862069
+ },
+ {
+ "type": "Image",
+ "id": "3d77bfd2-99f5-4d34-bf08-b3aeccb56d78",
+ "label": "shadow",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "belt/shadow"
+ },
+ "x": 1,
+ "y": 4,
+ "originX": 0.503448275862069
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/instructions/bubble/SenseiBubble.js b/src/scenes/games/sensei/instructions/bubble/SenseiBubble.js
new file mode 100644
index 00000000..73342bfd
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/bubble/SenseiBubble.js
@@ -0,0 +1,140 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+import SenseiBubbleWalk from "./SenseiBubbleWalk";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class SenseiBubble extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.bubble;
+ /** @type {SenseiBubbleWalk} */
+ this.senseiBubbleWalk2;
+ /** @type {SenseiBubbleWalk} */
+ this.senseiBubbleWalk1;
+ /** @type {Phaser.GameObjects.Image} */
+ this.maskImage;
+ /** @type {SenseiBubbleWalk[]} */
+ this.walks;
+
+
+ // bubble
+ const bubble = scene.add.sprite(0, 0, "senseiinstructions", "bubble/bubble0030");
+ bubble.setOrigin(0.5006226650062267, 0.5008976660682226);
+ this.add(bubble);
+
+ // senseiBubbleWalk2
+ const senseiBubbleWalk2 = new SenseiBubbleWalk(scene, 226, 11);
+ this.add(senseiBubbleWalk2);
+
+ // senseiBubbleWalk1
+ const senseiBubbleWalk1 = new SenseiBubbleWalk(scene, -102, 11);
+ senseiBubbleWalk1.scaleX = -1;
+ senseiBubbleWalk1.scaleY = 1;
+ this.add(senseiBubbleWalk1);
+
+ // maskImage
+ const maskImage = scene.add.image(0, 0, "senseiinstructions", "bubble/mask");
+ maskImage.setOrigin(0.5006226650062267, 0.5008976660682226);
+ maskImage.visible = false;
+ this.add(maskImage);
+
+ // lists
+ const walks = [senseiBubbleWalk1, senseiBubbleWalk2];
+
+ this.bubble = bubble;
+ this.senseiBubbleWalk2 = senseiBubbleWalk2;
+ this.senseiBubbleWalk1 = senseiBubbleWalk1;
+ this.maskImage = maskImage;
+ this.walks = walks;
+
+ /* START-USER-CTR-CODE */
+
+ this.startWalkIndex = 29
+ this.endWalkIndex = 87
+
+ bubble.on('animationupdate', this.onBubbleAnimUpdate, this)
+
+ this.setMask()
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show() {
+ super.show()
+
+ this.bubble.play('instructions/bubble')
+ }
+
+ get clientColor() {
+ return this.world.client.penguin.items.all.color.id
+ }
+
+ showCompete() {
+ this.setPlayerWalk(0)
+ this.setOpponentWalk(6, 2)
+
+ this.show()
+ }
+
+ showBlackBelt() {
+ this.setPlayerWalk(9)
+ this.setOpponentWalk(14, 0, true)
+
+ this.show()
+ }
+
+ setPlayerWalk(rank) {
+ this.setWalk(this.walks[0], this.clientColor, rank)
+ }
+
+ setOpponentWalk(color, rank, sensei = false) {
+ this.setWalk(this.walks[1], color, rank, sensei)
+ }
+
+ setWalk(walk, color, rank, sensei = false) {
+ walk.setColor(color)
+ walk.setBelt(rank)
+ walk.setSensei(sensei)
+ }
+
+ setMask() {
+ const matrix = this.maskImage.getWorldTransformMatrix()
+
+ // Set correct mask position
+ this.maskImage.x = matrix.getX(0, 0)
+ this.maskImage.y = matrix.getY(0, 0)
+
+ const mask = this.maskImage.createBitmapMask()
+
+ this.walks.forEach(walk => walk.setMask(mask))
+ }
+
+ onBubbleAnimUpdate(_, frame) {
+ switch (frame.index) {
+ case this.startWalkIndex:
+ this.walks.forEach(walk => walk.show())
+ break
+
+ case this.endWalkIndex:
+ this.walks.forEach(walk => walk.close())
+ break
+ }
+ }
+
+ stop() {
+ this.bubble.stop()
+ this.walks.forEach(walk => walk.close())
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/instructions/bubble/SenseiBubble.scene b/src/scenes/games/sensei/instructions/bubble/SenseiBubble.scene
new file mode 100644
index 00000000..98a0a535
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/bubble/SenseiBubble.scene
@@ -0,0 +1,95 @@
+{
+ "id": "522cce2c-95b0-443c-8abd-e776fae3b36a",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "ed22e9d6-0163-442d-9108-d016721a9d38",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "Sprite",
+ "id": "e84fd791-8652-4ec9-b010-e739f9ba3f91",
+ "label": "bubble",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/bubble0030"
+ },
+ "originX": 0.5006226650062267,
+ "originY": 0.5008976660682226
+ },
+ {
+ "prefabId": "22a41d6c-54a1-45d7-b3ae-580a36389586",
+ "id": "4af4b1a6-f931-4986-9d71-401e2d976546",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "senseiBubbleWalk2",
+ "scope": "CLASS",
+ "x": 226,
+ "y": 11
+ },
+ {
+ "prefabId": "22a41d6c-54a1-45d7-b3ae-580a36389586",
+ "id": "1488d3e7-9e54-4d92-8641-6e0a434aec0c",
+ "unlock": [
+ "x",
+ "y",
+ "scaleX",
+ "scaleY"
+ ],
+ "label": "senseiBubbleWalk1",
+ "scope": "CLASS",
+ "x": -102,
+ "y": 11,
+ "scaleX": -1,
+ "scaleY": 1
+ },
+ {
+ "type": "Image",
+ "id": "047fedb6-2c67-4b2f-9cb0-3033708b696c",
+ "label": "maskImage",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/mask"
+ },
+ "originX": 0.5006226650062267,
+ "originY": 0.5008976660682226,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ },
+ "lists": [
+ {
+ "id": "e48b384d-d017-4550-8aa7-33ee9a1985cb",
+ "label": "walks",
+ "objectIds": [
+ "1488d3e7-9e54-4d92-8641-6e0a434aec0c",
+ "4af4b1a6-f931-4986-9d71-401e2d976546"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/instructions/bubble/SenseiBubbleWalk.js b/src/scenes/games/sensei/instructions/bubble/SenseiBubbleWalk.js
new file mode 100644
index 00000000..0bf84f93
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/bubble/SenseiBubbleWalk.js
@@ -0,0 +1,188 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+
+import BeltColors from '../../config/BeltColors'
+
+/* END-USER-IMPORTS */
+
+export default class SenseiBubbleWalk extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.backArm;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.body;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.sensei;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.beltLine;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.belt;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.frontArm;
+ /** @type {Phaser.GameObjects.Sprite[]} */
+ this.colorSprites;
+ /** @type {Phaser.GameObjects.Sprite[]} */
+ this.beltSprites;
+
+
+ // backFoot
+ const backFoot = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/1_instance3_1");
+ this.add(backFoot);
+
+ // frontFoot
+ const frontFoot = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/2_instance5_1");
+ this.add(frontFoot);
+
+ // backArmLine
+ const backArmLine = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/3_instance7_1");
+ this.add(backArmLine);
+
+ // backArm
+ const backArm = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/4_backarm_1");
+ this.add(backArm);
+
+ // bodyLine
+ const bodyLine = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/5_instance8_1");
+ this.add(bodyLine);
+
+ // body
+ const body = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/6_body_1");
+ this.add(body);
+
+ // shadow
+ const shadow = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/7_instance10_1");
+ this.add(shadow);
+
+ // eye
+ const eye = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/8_instance11_1");
+ this.add(eye);
+
+ // pupil
+ const pupil = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/9_instance13_1");
+ this.add(pupil);
+
+ // sensei
+ const sensei = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/10_sensei_1");
+ this.add(sensei);
+
+ // beak
+ const beak = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/11_instance18_1");
+ this.add(beak);
+
+ // beltLine
+ const beltLine = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/12_beltline_1");
+ this.add(beltLine);
+
+ // belt
+ const belt = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/13_belt_1");
+ this.add(belt);
+
+ // frontArmLine
+ const frontArmLine = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/14_instance22_1");
+ this.add(frontArmLine);
+
+ // frontArm
+ const frontArm = scene.add.sprite(0, 0, "senseiinstructions", "bubble/walk/15_frontarm_1");
+ this.add(frontArm);
+
+ // lists
+ const colorSprites = [body, frontArm, backArm];
+ const beltSprites = [belt, beltLine];
+
+ this.backArm = backArm;
+ this.body = body;
+ this.sensei = sensei;
+ this.beltLine = beltLine;
+ this.belt = belt;
+ this.frontArm = frontArm;
+ this.colorSprites = colorSprites;
+ this.beltSprites = beltSprites;
+
+ /* START-USER-CTR-CODE */
+
+ this.end = 70
+
+ this.createAnims()
+
+ // Start hidden
+ this.close()
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ setColor(color) {
+ this.colorSprites.forEach(sprite => sprite.tint = this.world.getColor(color))
+ }
+
+ setBelt(rank) {
+ const hasBelt = rank > 0
+
+ this.beltSprites.forEach(sprite => sprite.visible = hasBelt)
+
+ if (hasBelt) {
+ this.belt.tint = BeltColors[rank - 1]
+ }
+ }
+
+ setSensei(sensei) {
+ this.sensei.visible = sensei
+ }
+
+ createAnims() {
+ this.list.forEach(child => this.createAnim(child))
+ }
+
+ createAnim(child) {
+ const animKey = this.getAnimKey(child)
+
+ const frameNames = this.scene.anims.generateFrameNames('senseiinstructions', {
+ prefix: `${animKey}_`,
+ start: 1,
+ end: this.end
+ })
+
+ this.scene.anims.create({
+ key: animKey,
+ frames: frameNames,
+ frameRate: 24,
+ repeat: 0
+ })
+ }
+
+ playAnim(child) {
+ const animKey = this.getAnimKey(child)
+
+ child.play(animKey)
+ }
+
+ getAnimKey(child) {
+ const frameName = child.frame.name
+
+ // Remove frame number (_1) from frameName
+ return frameName.split('_').slice(0, -1).join('_')
+ }
+
+ show() {
+ this.list.forEach(child => this.playAnim(child))
+
+ super.show()
+ }
+
+ close() {
+ super.close()
+
+ this.list.forEach(child => child.stop())
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/instructions/bubble/SenseiBubbleWalk.scene b/src/scenes/games/sensei/instructions/bubble/SenseiBubbleWalk.scene
new file mode 100644
index 00000000..dd094eb5
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/bubble/SenseiBubbleWalk.scene
@@ -0,0 +1,192 @@
+{
+ "id": "22a41d6c-54a1-45d7-b3ae-580a36389586",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "86cdbc54-b5fc-4f5e-8838-6ba02ddec0ec",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "Sprite",
+ "id": "5d85551b-e50c-4b54-ab8a-a160d89c1115",
+ "label": "backFoot",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/1_instance3_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "e6d7478e-cf80-4fd1-a855-cd86e90aca1f",
+ "label": "frontFoot",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/2_instance5_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "ac1d2cc7-2274-4d78-a8d5-695f8c94d1af",
+ "label": "backArmLine",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/3_instance7_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "95574afd-4503-46de-adf3-cee52bccec64",
+ "label": "backArm",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/4_backarm_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "7eba80ed-9087-49e1-84c2-01880626f3d3",
+ "label": "bodyLine",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/5_instance8_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "4e1d6789-c309-4469-8fb4-21a090ad217d",
+ "label": "body",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/6_body_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "8cd82544-a3da-402a-bc39-e81b876d9dd5",
+ "label": "shadow",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/7_instance10_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "9475c700-6ed4-4d94-8fe8-a95c6943d2f3",
+ "label": "eye",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/8_instance11_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "796fb263-66db-4602-9e3b-382a7978b006",
+ "label": "pupil",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/9_instance13_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "3eb3e714-566f-4467-9b67-3d81f5d9e2d4",
+ "label": "sensei",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/10_sensei_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "9fe3e127-2e32-44f3-8f68-7f258d254035",
+ "label": "beak",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/11_instance18_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "d566321a-b1d5-4a57-9160-8348d14945dd",
+ "label": "beltLine",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/12_beltline_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "11bc2ebc-2fe3-4b7b-8d6d-2be4e6b78c71",
+ "label": "belt",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/13_belt_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "57c75665-de10-4c11-9a8d-671445622e44",
+ "label": "frontArmLine",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/14_instance22_1"
+ }
+ },
+ {
+ "type": "Sprite",
+ "id": "46e37fd7-de04-4caa-a063-987cb236c355",
+ "label": "frontArm",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "bubble/walk/15_frontarm_1"
+ }
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ },
+ "lists": [
+ {
+ "id": "f960adb1-5d55-452f-89d3-8adcfcf1119f",
+ "label": "colorSprites",
+ "objectIds": [
+ "4e1d6789-c309-4469-8fb4-21a090ad217d",
+ "46e37fd7-de04-4caa-a063-987cb236c355",
+ "95574afd-4503-46de-adf3-cee52bccec64"
+ ]
+ },
+ {
+ "id": "0c502c58-3bf0-401b-afb4-6ef8cf3fe967",
+ "label": "beltSprites",
+ "objectIds": [
+ "11bc2ebc-2fe3-4b7b-8d6d-2be4e6b78c71",
+ "d566321a-b1d5-4a57-9160-8348d14945dd"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/instructions/cards/SenseiCards.js b/src/scenes/games/sensei/instructions/cards/SenseiCards.js
new file mode 100644
index 00000000..66df06ba
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/cards/SenseiCards.js
@@ -0,0 +1,126 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class SenseiCards extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.glow;
+
+
+ // glow
+ const glow = scene.add.sprite(-62, -70, "senseiinstructions", "cards/glow/glow0001");
+ this.add(glow);
+
+ // cards
+ const cards = scene.add.image(-317, -158, "senseiinstructions", "cards/cards");
+ cards.setOrigin(0.5007874015748032, 0.5);
+ this.add(cards);
+
+ this.glow = glow;
+
+ /* START-USER-CTR-CODE */
+
+ // Slide in from right
+ this.startX = this.x + 1046
+ this.endX = this.x
+
+ // Slide out to bottom
+ this.startY = this.y
+ this.endY = this.y + 792
+
+ this.tween = null
+
+ this.bounceDelay = (1 / 24) * 1000
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show() {
+ this.removeTween()
+
+ this.x = this.startX
+ this.y = this.startY
+
+ this.glow.play('instructions/cards/glow')
+
+ super.show()
+
+ this.playShow()
+ }
+
+ playShow() {
+ this.tween = this.scene.tweens.add({
+ targets: this,
+
+ x: { from: this.startX, to: this.endX },
+ duration: 542,
+
+ onComplete: () => this.onShowTweenComplete(),
+ })
+ }
+
+ onShowTweenComplete() {
+ // Create bounce effect at end of tween
+ this.scaleX = 1.035
+
+ // Reset scale
+ this.scene.time.delayedCall(this.bounceDelay, () => this.resetScale())
+ }
+
+ close() {
+ this.removeTween()
+
+ this.x = this.endX
+ this.y = this.startY
+
+ this.scaleY = 1.08
+
+ this.scene.time.delayedCall(this.bounceDelay, () => this.playClose())
+ }
+
+ playClose() {
+ this.resetScale()
+
+ this.tween = this.scene.tweens.add({
+ targets: this,
+
+ y: { from: this.startY, to: this.endY },
+ duration: 417
+ })
+ }
+
+ stop() {
+ this.glow.stop()
+
+ if (this.tween) {
+ this.removeTween()
+ }
+ }
+
+ removeTween() {
+ if (!this.tween) {
+ return
+ }
+
+ this.tween.remove()
+ this.tween = null
+ }
+
+ resetScale() {
+ this.scaleX = 1
+ this.scaleY = 1
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/instructions/cards/SenseiCards.scene b/src/scenes/games/sensei/instructions/cards/SenseiCards.scene
new file mode 100644
index 00000000..274ae82a
--- /dev/null
+++ b/src/scenes/games/sensei/instructions/cards/SenseiCards.scene
@@ -0,0 +1,56 @@
+{
+ "id": "222ec92d-eefc-4309-a7b6-c43572c61a60",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "a02827a6-649c-410a-895b-8393db17fcdd",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "Sprite",
+ "id": "5056498b-5368-4fda-8832-dd946f2c2564",
+ "label": "glow",
+ "scope": "CLASS",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "cards/glow/glow0001"
+ },
+ "x": -62,
+ "y": -70
+ },
+ {
+ "type": "Image",
+ "id": "741b5789-3f18-450c-9821-fcdb70ec480e",
+ "label": "cards",
+ "texture": {
+ "key": "senseiinstructions",
+ "frame": "cards/cards"
+ },
+ "x": -317,
+ "y": -158,
+ "originX": 0.5007874015748032
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/match/SenseiMatch.js b/src/scenes/games/sensei/match/SenseiMatch.js
new file mode 100644
index 00000000..1ebf439c
--- /dev/null
+++ b/src/scenes/games/sensei/match/SenseiMatch.js
@@ -0,0 +1,153 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import DraggableContainer from "../../../components/DraggableContainer";
+import SenseiMatchItem from "./SenseiMatchItem";
+import Button from "../../../components/Button";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class SenseiMatch extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {SenseiMatchItem} */
+ this.opponent;
+ /** @type {SenseiMatchItem} */
+ this.myPlayer;
+ /** @type {Phaser.GameObjects.Text} */
+ this.message;
+ /** @type {Phaser.GameObjects.Text} */
+ this.time;
+ /** @type {Phaser.GameObjects.Image} */
+ this.spinner;
+
+
+ // bg
+ const bg = scene.add.image(0, 0, "sensei", "match/window");
+ this.add(bg);
+
+ // opponent
+ const opponent = new SenseiMatchItem(scene, 0, 98);
+ this.add(opponent);
+
+ // myPlayer
+ const myPlayer = new SenseiMatchItem(scene, 0, 46);
+ this.add(myPlayer);
+
+ // message
+ const message = scene.add.text(0, -20, "", {});
+ message.setOrigin(0.5, 0.5);
+ message.text = "Waiting for more players";
+ message.setStyle({ "align": "center", "fixedWidth":460,"fontFamily": "Arial Narrow", "fontSize": "32px" });
+ this.add(message);
+
+ // time
+ const time = scene.add.text(0, -100, "", {});
+ time.setOrigin(0.5, 0.5);
+ time.text = "10";
+ time.setStyle({ "align": "center", "fixedWidth":60,"fontFamily": "Arial", "fontSize": "32px", "fontStyle": "bold" });
+ this.add(time);
+
+ // spinner
+ const spinner = scene.add.image(0, -100, "sensei", "match/spinner");
+ spinner.setOrigin(0.5, 0.5063291139240507);
+ this.add(spinner);
+
+ // xButton
+ const xButton = scene.add.image(234, -124, "main", "blue-button");
+ this.add(xButton);
+
+ // xIcon
+ const xIcon = scene.add.image(234, -126, "main", "blue-x");
+ this.add(xIcon);
+
+ // this (components)
+ const thisDraggableContainer = new DraggableContainer(this);
+ thisDraggableContainer.handle = bg;
+
+ // xButton (components)
+ const xButtonButton = new Button(xButton);
+ xButtonButton.spriteName = "blue-button";
+ xButtonButton.callback = () => this.close();
+
+ this.opponent = opponent;
+ this.myPlayer = myPlayer;
+ this.message = message;
+ this.time = time;
+ this.spinner = spinner;
+
+ /* START-USER-CTR-CODE */
+
+ message.text = this.getString('widget_wait')
+
+ // Spinner
+ scene.tweens.add({
+ targets: spinner,
+ angle: { from: 0, to: 180 },
+ duration: 900,
+ repeat: -1,
+ ease: 'Cubic'
+ })
+
+ this.originalX = this.x
+ this.originalY = this.y
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ addListeners() {
+ this.network.events.on('join_matchmaking', this.handleJoinMatchmaking, this)
+ this.network.events.on('tick_matchmaking', this.handleTickMatchmaking, this)
+ }
+
+ removeListeners() {
+ this.network.events.off('join_matchmaking', this.handleJoinMatchmaking, this)
+ this.network.events.off('tick_matchmaking', this.handleTickMatchmaking, this)
+ }
+
+ show() {
+ this.showWaitingElements(true)
+
+ this.x = this.originalX
+ this.y = this.originalY
+
+ this.addListeners()
+ this.scene.network.send('join_matchmaking')
+
+ super.show()
+ }
+
+ close() {
+ this.scene.network.send('leave_matchmaking')
+ this.removeListeners()
+
+ super.close()
+
+ this.scene.showPreviousMenu()
+ }
+
+ handleJoinMatchmaking() {
+ this.myPlayer.setItem(this.world.client.penguin.username)
+ }
+
+ handleTickMatchmaking(args) {
+ this.showWaitingElements(false)
+
+ this.time.text = args.tick
+ }
+
+ showWaitingElements(show) {
+ this.spinner.visible = !show
+ this.time.visible = !show
+ this.message.visible = show
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/match/SenseiMatch.scene b/src/scenes/games/sensei/match/SenseiMatch.scene
new file mode 100644
index 00000000..485ac270
--- /dev/null
+++ b/src/scenes/games/sensei/match/SenseiMatch.scene
@@ -0,0 +1,141 @@
+{
+ "id": "d658d0fb-b2e2-4eee-ba26-d33156d4eee1",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "snapWidth": 80,
+ "snapHeight": 79,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "e37bfe4e-e273-4274-9d00-41841d00298a",
+ "label": "container_1",
+ "components": [
+ "DraggableContainer"
+ ],
+ "DraggableContainer.handle": "bg",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "5688e8cb-f7d7-45bc-b786-59a8031f6dc7",
+ "label": "bg",
+ "texture": {
+ "key": "sensei",
+ "frame": "match/window"
+ }
+ },
+ {
+ "prefabId": "07fe953a-6cae-4a48-aa0d-6ab406415f4e",
+ "id": "c80802ff-9240-44e6-9512-d6cb00e47373",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "opponent",
+ "scope": "CLASS",
+ "x": 0,
+ "y": 98
+ },
+ {
+ "prefabId": "07fe953a-6cae-4a48-aa0d-6ab406415f4e",
+ "id": "12bc02a8-5618-461e-83de-1a00a7412997",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "myPlayer",
+ "scope": "CLASS",
+ "x": 0,
+ "y": 46
+ },
+ {
+ "type": "Text",
+ "id": "7b204eaf-dbd4-42cb-8322-ce985fdd95fd",
+ "label": "message",
+ "scope": "CLASS",
+ "y": -20,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "Waiting for more players",
+ "fixedWidth": 460,
+ "align": "center",
+ "fontFamily": "Arial Narrow",
+ "fontSize": "32px"
+ },
+ {
+ "type": "Text",
+ "id": "150d74b5-74fe-4764-9d54-4a697e9eda43",
+ "label": "time",
+ "scope": "CLASS",
+ "y": -100,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "10",
+ "fixedWidth": 60,
+ "align": "center",
+ "fontFamily": "Arial",
+ "fontSize": "32px",
+ "fontStyle": "bold"
+ },
+ {
+ "type": "Image",
+ "id": "fd40b908-3817-45e9-9d72-e9fa95d657f1",
+ "label": "spinner",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "match/spinner"
+ },
+ "y": -100,
+ "originY": 0.5063291139240507
+ },
+ {
+ "type": "Image",
+ "id": "1e74f682-47c7-48d3-b696-f422a26ef831",
+ "label": "xButton",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "blue-button",
+ "Button.callback": "() => this.close()",
+ "texture": {
+ "key": "main",
+ "frame": "blue-button"
+ },
+ "x": 234,
+ "y": -124
+ },
+ {
+ "type": "Image",
+ "id": "931e5701-f927-410a-9586-ec26268a6b61",
+ "label": "xIcon",
+ "texture": {
+ "key": "main",
+ "frame": "blue-x"
+ },
+ "x": 234,
+ "y": -126
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/match/SenseiMatchItem.js b/src/scenes/games/sensei/match/SenseiMatchItem.js
new file mode 100644
index 00000000..84989e9c
--- /dev/null
+++ b/src/scenes/games/sensei/match/SenseiMatchItem.js
@@ -0,0 +1,82 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class SenseiMatchItem extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.icon;
+ /** @type {Phaser.GameObjects.Image} */
+ this.spinner;
+ /** @type {Phaser.GameObjects.Text} */
+ this.username;
+
+
+ // item
+ const item = scene.add.image(0, 0, "main", "buddy/item");
+ this.add(item);
+
+ // icon
+ const icon = scene.add.image(-137, 0, "main", "buddy/icon-player");
+ icon.visible = false;
+ this.add(icon);
+
+ // spinner
+ const spinner = scene.add.image(-137, 0, "main", "buddy/icon-load");
+ this.add(spinner);
+
+ // username
+ const username = scene.add.text(25, 0, "", {});
+ username.setOrigin(0.5, 0.5);
+ username.setStyle({ "fixedWidth":270,"fontFamily": "Arial", "fontSize": "24px" });
+ this.add(username);
+
+ this.icon = icon;
+ this.spinner = spinner;
+ this.username = username;
+
+ /* START-USER-CTR-CODE */
+
+ // Spinner
+ scene.tweens.add({
+ targets: this.spinner,
+ angle: { from: 0, to: 180 },
+ duration: 900,
+ repeat: -1,
+ ease: 'Cubic'
+ })
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ setItem(player) {
+ if (!player) {
+ clearItem()
+ return
+ }
+
+ this.username.text = player
+
+ this.spinner.visible = false
+ this.icon.visible = true
+ }
+
+ clearItem() {
+ this.username.text = ''
+
+ this.icon.visible = false
+ this.spinner.visible = true
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/match/SenseiMatchItem.scene b/src/scenes/games/sensei/match/SenseiMatchItem.scene
new file mode 100644
index 00000000..d801a8a5
--- /dev/null
+++ b/src/scenes/games/sensei/match/SenseiMatchItem.scene
@@ -0,0 +1,83 @@
+{
+ "id": "07fe953a-6cae-4a48-aa0d-6ab406415f4e",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "dd60dc30-073d-45d0-a9ee-dd562211f7f5",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "a26cef61-4e6e-48e6-bf95-9462fb1949c6",
+ "label": "item",
+ "components": [],
+ "texture": {
+ "key": "main",
+ "frame": "buddy/item"
+ }
+ },
+ {
+ "type": "Image",
+ "id": "940a9878-56ab-4312-903e-18df2c2c58a0",
+ "label": "icon",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "main",
+ "frame": "buddy/icon-player"
+ },
+ "x": -137,
+ "visible": false
+ },
+ {
+ "type": "Image",
+ "id": "b4fdaa43-9dc9-4152-a95e-28f3de2b805e",
+ "label": "spinner",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "main",
+ "frame": "buddy/icon-load"
+ },
+ "x": -137
+ },
+ {
+ "type": "Text",
+ "id": "f366378c-85d3-48fe-b1e9-a20d9b0e482f",
+ "label": "username",
+ "scope": "CLASS",
+ "components": [],
+ "x": 25,
+ "originX": 0.5,
+ "originY": 0.5,
+ "fixedWidth": 270,
+ "fontFamily": "Arial",
+ "fontSize": "24px"
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/menu/SenseiMenu.js b/src/scenes/games/sensei/menu/SenseiMenu.js
new file mode 100644
index 00000000..5f9a9be8
--- /dev/null
+++ b/src/scenes/games/sensei/menu/SenseiMenu.js
@@ -0,0 +1,138 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import SenseiMenuItem from "./SenseiMenuItem";
+/* START-USER-IMPORTS */
+
+import * as menus from '../config/SenseiMenus'
+
+/* END-USER-IMPORTS */
+
+export default class SenseiMenu extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {NinePatchContainer} */
+ this.bg;
+ /** @type {SenseiMenuItem[]} */
+ this.items;
+
+
+ // bg
+ const bg = scene.add.ninePatchContainer(0, -162, 848, 323, "sensei", "menu/bg");
+ bg.marginLeft = 60;
+ bg.marginTop = 40;
+ bg.marginRight = 60;
+ bg.marginBottom = 45;
+ bg.ninePatchContainerOriginY = 0;
+ this.add(bg);
+
+ // senseiMenuItem4
+ const senseiMenuItem4 = new SenseiMenuItem(scene, 0, 92);
+ senseiMenuItem4.visible = false;
+ this.add(senseiMenuItem4);
+
+ // senseiMenuItem3
+ const senseiMenuItem3 = new SenseiMenuItem(scene, 0, 30);
+ senseiMenuItem3.visible = false;
+ this.add(senseiMenuItem3);
+
+ // senseiMenuItem2
+ const senseiMenuItem2 = new SenseiMenuItem(scene, 0, -32);
+ senseiMenuItem2.visible = false;
+ this.add(senseiMenuItem2);
+
+ // senseiMenuItem1
+ const senseiMenuItem1 = new SenseiMenuItem(scene, 0, -94);
+ senseiMenuItem1.visible = false;
+ this.add(senseiMenuItem1);
+
+ // lists
+ const items = [senseiMenuItem1, senseiMenuItem2, senseiMenuItem3, senseiMenuItem4];
+
+ this.bg = bg;
+ this.items = items;
+
+ /* START-USER-CTR-CODE */
+
+ this.currentMenu
+ this.currentItems
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show(menu) {
+ this.reset()
+
+ this.currentMenu = menu
+ // Pass SenseiMenu dependency
+ this.currentItems = this.currentMenu(this)
+
+ this.updateMenu()
+
+ super.show()
+ }
+
+ get isStartMenuActive() {
+ return this.currentMenu === menus.start
+ }
+
+ showStartMenu() {
+ this.show(menus.start)
+ }
+
+ showPreviousMenu() {
+ if (!this.currentMenu) {
+ this.showStartMenu()
+ return
+ }
+
+ // Use last menu stored in this.currentMenu
+ this.show(this.currentMenu)
+ }
+
+ updateMenu() {
+ for (let i = 0; i < this.currentItems.length; i++) {
+ const config = this.currentItems[i]
+ const item = this.items[i]
+
+ item.show(config)
+ }
+
+ this.resizeMenu()
+ }
+
+ resizeMenu() {
+ this.bg.resize(this.bg.width, (this.currentItems.length * 61) + 78)
+ }
+
+ startSequence(sequence) {
+ this.scene.startSequence(sequence)
+ }
+
+ showSpeech(text) {
+ this.scene.showSpeech(text)
+ }
+
+ hideSpeech() {
+ this.scene.hideSpeech()
+ }
+
+ showMatch() {
+ this.scene.showMatch()
+ }
+
+ reset() {
+ for (const item of this.items) {
+ item.close()
+ }
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/menu/SenseiMenu.scene b/src/scenes/games/sensei/menu/SenseiMenu.scene
new file mode 100644
index 00000000..f1c19302
--- /dev/null
+++ b/src/scenes/games/sensei/menu/SenseiMenu.scene
@@ -0,0 +1,114 @@
+{
+ "id": "717f221e-2a49-41a0-a3d4-1aabab9d9a0f",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "cc188231-2b7e-4bcd-a7bc-6da884837ac6",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "NinePatchContainer",
+ "id": "907491ca-6c4a-4227-a8f0-fd5774fb38af",
+ "label": "bg",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "menu/bg"
+ },
+ "y": -162,
+ "width": 848,
+ "height": 323,
+ "marginLeft": 60,
+ "marginRight": 60,
+ "marginTop": 40,
+ "marginBottom": 45,
+ "ninePatchContainerOriginY": 0
+ },
+ {
+ "prefabId": "09107910-1b0d-415a-80fe-5bf424b8d97a",
+ "id": "d7db7652-6890-4681-a0c5-b03d3dcb9aef",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "senseiMenuItem4",
+ "x": 0,
+ "y": 92,
+ "visible": false
+ },
+ {
+ "prefabId": "09107910-1b0d-415a-80fe-5bf424b8d97a",
+ "id": "6030acca-d185-4087-8b80-de8730932721",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "senseiMenuItem3",
+ "x": 0,
+ "y": 30,
+ "visible": false
+ },
+ {
+ "prefabId": "09107910-1b0d-415a-80fe-5bf424b8d97a",
+ "id": "5790a6f6-fa4c-4dcc-b87f-f561cf423691",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "senseiMenuItem2",
+ "x": 0,
+ "y": -32,
+ "visible": false
+ },
+ {
+ "prefabId": "09107910-1b0d-415a-80fe-5bf424b8d97a",
+ "id": "fa3ec168-e4e1-4a50-8685-29a2d6e96874",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "senseiMenuItem1",
+ "x": 0,
+ "y": -94,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ },
+ "lists": [
+ {
+ "id": "916431eb-b2a5-475a-9067-6b83e8e6ed16",
+ "label": "items",
+ "objectIds": [
+ "fa3ec168-e4e1-4a50-8685-29a2d6e96874",
+ "5790a6f6-fa4c-4dcc-b87f-f561cf423691",
+ "6030acca-d185-4087-8b80-de8730932721",
+ "d7db7652-6890-4681-a0c5-b03d3dcb9aef"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/menu/SenseiMenuItem.js b/src/scenes/games/sensei/menu/SenseiMenuItem.js
new file mode 100644
index 00000000..a444c9c6
--- /dev/null
+++ b/src/scenes/games/sensei/menu/SenseiMenuItem.js
@@ -0,0 +1,97 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Button from "../../../components/Button";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class SenseiMenuItem extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Text} */
+ this.text;
+ /** @type {Phaser.GameObjects.Image} */
+ this.icon;
+
+
+ // item
+ const item = scene.add.image(0, 0, "sensei", "menu/item");
+ this.add(item);
+
+ // text
+ const text = scene.add.text(0, 0, "", {});
+ text.setOrigin(0.5, 0.5);
+ text.text = "This is a menu item!";
+ text.setStyle({ "color": "#000", "fixedWidth":720,"fontFamily": "CCComiccrazy", "fontSize": "26px" });
+ this.add(text);
+
+ // icon
+ const icon = scene.add.image(-342, 0, "sensei", "menu/icon/belt");
+ icon.setOrigin(0.5106382978723404, 0.5106382978723404);
+ icon.visible = false;
+ this.add(icon);
+
+ // item (components)
+ const itemButton = new Button(item);
+ itemButton.spriteName = "menu/item";
+ itemButton.hoverCallback = () => this.onOver();
+ itemButton.hoverOutCallback = () => this.onOut();
+ itemButton.callback = () => this.onUp();
+ itemButton.activeFrame = false;
+
+ this.text = text;
+ this.icon = icon;
+
+ /* START-USER-CTR-CODE */
+
+ this.onOver = () => {}
+ this.onOut = () => {}
+ this.onUp = () => {}
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show(config) {
+ this.text.text = config.text
+
+ this.setCallbacks(config)
+
+ if (config.icon) {
+ this.showIcon(config.icon)
+ } else {
+ this.hideIcon()
+ }
+
+ super.show()
+ }
+
+ setCallbacks(config) {
+ let empty = () => {}
+
+ this.onOver = config.over || empty
+ this.onOut = config.out || empty
+ this.onUp = config.up || empty
+ }
+
+ showIcon(icon) {
+ this.icon.visible = true
+ this.icon.setFrame(icon)
+
+ this.text.x = 50
+ }
+
+ hideIcon() {
+ this.icon.visible = false
+
+ this.text.x = 0
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/menu/SenseiMenuItem.scene b/src/scenes/games/sensei/menu/SenseiMenuItem.scene
new file mode 100644
index 00000000..e7c32933
--- /dev/null
+++ b/src/scenes/games/sensei/menu/SenseiMenuItem.scene
@@ -0,0 +1,79 @@
+{
+ "id": "09107910-1b0d-415a-80fe-5bf424b8d97a",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "8aaa5e07-e214-4a10-9b85-d7015b5bbea1",
+ "label": "container_1",
+ "components": [],
+ "list": [
+ {
+ "type": "Image",
+ "id": "e7941825-34f8-48c0-a2b3-90bb401eb0a7",
+ "label": "item",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "menu/item",
+ "Button.hoverCallback": "() => this.onOver()",
+ "Button.hoverOutCallback": "() => this.onOut()",
+ "Button.callback": "() => this.onUp()",
+ "Button.activeFrame": false,
+ "texture": {
+ "key": "sensei",
+ "frame": "menu/item"
+ }
+ },
+ {
+ "type": "Text",
+ "id": "6cf0380e-497d-4d1a-b1cf-89d06a966ee5",
+ "label": "text",
+ "scope": "CLASS",
+ "components": [],
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "This is a menu item!",
+ "fixedWidth": 720,
+ "fontFamily": "CCComiccrazy",
+ "fontSize": "26px",
+ "color": "#000"
+ },
+ {
+ "type": "Image",
+ "id": "45287d6d-9695-479a-92e0-873e03a1f6af",
+ "label": "icon",
+ "scope": "CLASS",
+ "components": [],
+ "texture": {
+ "key": "sensei",
+ "frame": "menu/icon/belt"
+ },
+ "x": -342,
+ "originX": 0.5106382978723404,
+ "originY": 0.5106382978723404,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/widget/SenseiWidget.js b/src/scenes/games/sensei/widget/SenseiWidget.js
new file mode 100644
index 00000000..1fd3f692
--- /dev/null
+++ b/src/scenes/games/sensei/widget/SenseiWidget.js
@@ -0,0 +1,206 @@
+export const preload = {
+ key: 'sensei-pack',
+ url: 'assets/media/games/sensei/sensei-pack.json',
+ loadString: ['loading', 'sensei']
+}
+
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Interactive from "../../../components/Interactive";
+import SenseiSprite from "./sprite/SenseiSprite";
+import SenseiAward from "./award/SenseiAward";
+import SenseiSpeech from "./speech/SenseiSpeech";
+/* START-USER-IMPORTS */
+
+import * as sequences from '../config/SenseiSequences'
+
+/* END-USER-IMPORTS */
+
+export default class SenseiWidget extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.bg;
+ /** @type {SenseiSprite} */
+ this.senseiSprite;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.hideout;
+ /** @type {SenseiAward} */
+ this.award;
+ /** @type {SenseiSpeech} */
+ this.speech;
+
+
+ // bg
+ const bg = scene.add.image(604, 565, "sensei", "bg");
+ this.add(bg);
+
+ // senseiSprite
+ const senseiSprite = new SenseiSprite(scene, 178, 332);
+ this.add(senseiSprite);
+
+ // hideout
+ const hideout = scene.add.sprite(988, 486, "sensei", "hideout/hideout0001");
+ hideout.setOrigin(0.5005599104143337, 0.5);
+ hideout.visible = false;
+ this.add(hideout);
+
+ // award
+ const award = new SenseiAward(scene, 1112, 571);
+ award.visible = false;
+ this.add(award);
+
+ // speech
+ const speech = new SenseiSpeech(scene, 937, 204);
+ speech.visible = false;
+ this.add(speech);
+
+ // bg (components)
+ new Interactive(bg);
+
+ this.bg = bg;
+ this.senseiSprite = senseiSprite;
+ this.hideout = hideout;
+ this.award = award;
+ this.speech = speech;
+
+ /* START-USER-CTR-CODE */
+
+ this.currentSequence
+ this.currentSequenceIndex = 0
+
+ this.rankId = 1
+
+ this.addBackgroundEvent('pointerup', this.forwardSequence, this)
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ get beltString() {
+ return this.getString(`belt_${this.rankId}`)
+ }
+
+ get speechIndex() {
+ return this.getIndex(this.speech)
+ }
+
+ show() {
+ this.hideAll()
+
+ super.show()
+
+ this.scene.events.emit('sensei_ready')
+ }
+
+ close() {
+ this.currentSequence = null
+ this.currentSequenceIndex = 0
+
+ this.hideAll()
+
+ super.close()
+ }
+
+ addBackgroundEvent(event, callback, context) {
+ this.bg.on(event, callback, context)
+ }
+
+ rankUp(rank) {
+ this.rankId = Phaser.Math.Clamp(rank, 1, 9)
+
+ if (rank > 9) {
+ this.startSequence(sequences.maskAward)
+ } else {
+ this.startSequence(sequences.beltAward)
+ }
+ }
+
+ startSequence(sequence) {
+ // Pass SenseiWidget dependency
+ this.currentSequence = sequence(this)
+
+ this.currentSequenceIndex = 0
+ this.updateSequence()
+ }
+
+ forwardSequence() {
+ if (!this.currentSequence) {
+ return
+ }
+
+ if (this.currentSequenceIndex === this.currentSequence.length - 1) {
+ return
+ }
+
+ this.currentSequenceIndex++
+ this.updateSequence()
+ }
+
+ updateSequence() {
+ if (!this.currentSequence) {
+ return
+ }
+
+ this.currentSequence[this.currentSequenceIndex]()
+ }
+
+ showSpeech(text) {
+ this.speech.show(text)
+ this.playTalk()
+ }
+
+ hideSpeech() {
+ this.speech.close()
+ this.playWait()
+ }
+
+ playTalk() {
+ this.senseiSprite.playTalk()
+ }
+
+ playWait() {
+ this.senseiSprite.playWait()
+ }
+
+ showBelt() {
+ this.award.showBelt(this.rankId)
+ }
+
+ showMask() {
+ this.award.showMask()
+ }
+
+ hideAward() {
+ this.award.close()
+ }
+
+ showHideout() {
+ this.hideout.visible = true
+ this.hideout.play('hideout')
+ }
+
+ hideHideout() {
+ this.hideout.visible = false
+ }
+
+ hideAll() {
+ this.hideSpeech()
+ this.hideAward()
+ this.hideHideout()
+ }
+
+ leaveGame() {
+ this.close()
+ this.world.room.sendLeaveGame()
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/widget/SenseiWidget.scene b/src/scenes/games/sensei/widget/SenseiWidget.scene
new file mode 100644
index 00000000..2f24c083
--- /dev/null
+++ b/src/scenes/games/sensei/widget/SenseiWidget.scene
@@ -0,0 +1,101 @@
+{
+ "id": "fbf6af33-9518-47c9-b5a9-fd3beb3a5292",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "6c8b4abc-527b-4fb7-86e5-ce92b00f7ca6",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "Image",
+ "id": "06e66bb6-5a49-4833-8a26-681a8126ce3b",
+ "label": "bg",
+ "scope": "CLASS",
+ "components": [
+ "Interactive"
+ ],
+ "texture": {
+ "key": "sensei",
+ "frame": "bg"
+ },
+ "x": 604,
+ "y": 565
+ },
+ {
+ "prefabId": "05d04137-c915-4f19-ba6c-2d937cd558d7",
+ "id": "e7df3b1d-4174-48f4-a459-8ee32d5c0805",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "senseiSprite",
+ "scope": "CLASS",
+ "x": 178,
+ "y": 332
+ },
+ {
+ "type": "Sprite",
+ "id": "285d21e7-04d7-4494-a425-7cff536c0c7a",
+ "label": "hideout",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "hideout/hideout0001"
+ },
+ "x": 988,
+ "y": 486,
+ "originX": 0.5005599104143337,
+ "visible": false
+ },
+ {
+ "prefabId": "897d8990-9358-4074-882a-e64ab2e43e6d",
+ "id": "d7b7ee82-0eb5-4a93-9f9f-ebb2c2c4eb8d",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "award",
+ "scope": "CLASS",
+ "x": 1112,
+ "y": 571,
+ "visible": false
+ },
+ {
+ "prefabId": "21b5b7fb-31dc-48aa-beea-a780ae0fe510",
+ "id": "536fa4b4-a12b-4d0c-8c76-00af7f45305c",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "speech",
+ "scope": "CLASS",
+ "x": 937,
+ "y": 204,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/widget/award/SenseiAward.js b/src/scenes/games/sensei/widget/award/SenseiAward.js
new file mode 100644
index 00000000..97426ec9
--- /dev/null
+++ b/src/scenes/games/sensei/widget/award/SenseiAward.js
@@ -0,0 +1,105 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+
+import BeltColors from '../../config/BeltColors'
+
+/* END-USER-IMPORTS */
+
+export default class SenseiAward extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.belt;
+ /** @type {Phaser.GameObjects.Image} */
+ this.color;
+ /** @type {Phaser.GameObjects.Image} */
+ this.shadow;
+ /** @type {Phaser.GameObjects.Image} */
+ this.ninja;
+
+
+ // belt
+ const belt = scene.add.image(0, 0, "sensei", "belt/belt");
+ belt.setOrigin(0.5009784735812133, 0.5);
+ this.add(belt);
+
+ // color
+ const color = scene.add.image(4, -1, "sensei", "belt/color");
+ color.setOrigin(0.503448275862069, 0.5);
+ this.add(color);
+
+ // shadow
+ const shadow = scene.add.image(1, 6, "sensei", "belt/shadow");
+ shadow.setOrigin(0.5, 0.5014492753623189);
+ this.add(shadow);
+
+ // ninja
+ const ninja = scene.add.image(0, 0, "sensei", "mask/mask");
+ ninja.setOrigin(0.500823723228995, 0.5);
+ ninja.visible = false;
+ this.add(ninja);
+
+ this.belt = belt;
+ this.color = color;
+ this.shadow = shadow;
+ this.ninja = ninja;
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ showBelt(rank) {
+ this.showBeltSprites(true)
+ this.color.tint = BeltColors[rank - 1]
+
+ this.show()
+ }
+
+ showMask() {
+ this.showBeltSprites(false)
+ this.show()
+ }
+
+ show() {
+ super.show()
+
+ this.addTweens()
+ }
+
+ showBeltSprites(show) {
+ this.ninja.visible = !show
+ this.shadow.visible = show
+ this.color.visible = show
+ this.belt.visible = show
+ }
+
+ addTweens() {
+ // Fade
+ this.scene.tweens.add({
+ targets: this,
+ alpha: { from: 0, to: 1 },
+ duration: 1450
+ })
+
+ // Float
+ this.scene.tweens.add({
+ targets: this,
+ y: this.y + 10,
+ duration: 333,
+ repeat: -1,
+ yoyo: true,
+ ease: Phaser.Math.Easing.Quadratic.InOut
+ })
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/widget/award/SenseiAward.scene b/src/scenes/games/sensei/widget/award/SenseiAward.scene
new file mode 100644
index 00000000..7feb2d8e
--- /dev/null
+++ b/src/scenes/games/sensei/widget/award/SenseiAward.scene
@@ -0,0 +1,83 @@
+{
+ "id": "897d8990-9358-4074-882a-e64ab2e43e6d",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "4293c1e1-13e0-421c-b2c6-9861f7b3a64d",
+ "label": "container_2",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "5c3eb48a-06c1-43a3-b1de-e46dd3528d27",
+ "label": "belt",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "belt/belt"
+ },
+ "originX": 0.5009784735812133
+ },
+ {
+ "type": "Image",
+ "id": "6e2bd2fb-89af-4878-80f3-f79d68a62080",
+ "label": "color",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "belt/color"
+ },
+ "x": 4,
+ "y": -1,
+ "originX": 0.503448275862069
+ },
+ {
+ "type": "Image",
+ "id": "562d5386-43e0-4b1c-aa6e-cfa33c8928f6",
+ "label": "shadow",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "belt/shadow"
+ },
+ "x": 1,
+ "y": 6,
+ "originY": 0.5014492753623189
+ },
+ {
+ "type": "Image",
+ "id": "ef2c6293-d6b9-4fc4-9d07-cbcbd5d7faa7",
+ "label": "ninja",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "mask/mask"
+ },
+ "originX": 0.500823723228995,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/widget/speech/SenseiSpeech.js b/src/scenes/games/sensei/widget/speech/SenseiSpeech.js
new file mode 100644
index 00000000..e0068d6f
--- /dev/null
+++ b/src/scenes/games/sensei/widget/speech/SenseiSpeech.js
@@ -0,0 +1,46 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class SenseiSpeech extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Text} */
+ this.dialog;
+
+
+ // bubble
+ const bubble = scene.add.image(0, 0, "sensei", "bubble");
+ bubble.setOrigin(0.5004574565416285, 0.5);
+ this.add(bubble);
+
+ // dialog
+ const dialog = scene.add.text(26, -72, "", {});
+ dialog.setOrigin(0.5, 0.5);
+ dialog.text = "This example text\nI have put it on three lines\nNot a good haiku";
+ dialog.setStyle({ "align": "center", "color": "#000", "fixedWidth":1030,"fontFamily": "CCComiccrazy", "fontSize": "40px" });
+ this.add(dialog);
+
+ this.dialog = dialog;
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ show(text) {
+ this.dialog.text = text
+
+ super.show()
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/widget/speech/SenseiSpeech.scene b/src/scenes/games/sensei/widget/speech/SenseiSpeech.scene
new file mode 100644
index 00000000..bca75c92
--- /dev/null
+++ b/src/scenes/games/sensei/widget/speech/SenseiSpeech.scene
@@ -0,0 +1,60 @@
+{
+ "id": "21b5b7fb-31dc-48aa-beea-a780ae0fe510",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "e5d528fa-be3b-4a85-ad3b-5d125d347631",
+ "label": "container_2",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "39370fe4-3a26-44fa-b7ac-a9ed6d763109",
+ "label": "bubble",
+ "texture": {
+ "key": "sensei",
+ "frame": "bubble"
+ },
+ "originX": 0.5004574565416285
+ },
+ {
+ "type": "Text",
+ "id": "9914f859-c661-4847-9b24-1a350014193a",
+ "label": "dialog",
+ "scope": "CLASS",
+ "x": 26,
+ "y": -72,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "This example text\nI have put it on three lines\nNot a good haiku",
+ "fixedWidth": 1030,
+ "align": "center",
+ "fontFamily": "CCComiccrazy",
+ "fontSize": "40px",
+ "color": "#000"
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/games/sensei/widget/sprite/SenseiSprite.js b/src/scenes/games/sensei/widget/sprite/SenseiSprite.js
new file mode 100644
index 00000000..5d90fcb3
--- /dev/null
+++ b/src/scenes/games/sensei/widget/sprite/SenseiSprite.js
@@ -0,0 +1,91 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class SenseiSprite extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.base;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.beard;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.beak;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.eyebrows;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.front;
+
+
+ // base
+ const base = scene.add.sprite(0, 0, "sensei", "sensei/talk/base/base0001");
+ base.setOrigin(0.501039501039501, 0.5);
+ this.add(base);
+
+ // beard
+ const beard = scene.add.sprite(66, 118, "sensei", "sensei/talk/beard/beard0001");
+ this.add(beard);
+
+ // beak
+ const beak = scene.add.sprite(84, -111, "sensei", "sensei/talk/beak/beak0001");
+ beak.setOrigin(0.5, 0.5037593984962406);
+ this.add(beak);
+
+ // eyebrows
+ const eyebrows = scene.add.sprite(45, -148, "sensei", "sensei/talk/eyebrows/eyebrows0001");
+ eyebrows.setOrigin(0.5, 0.5027624309392266);
+ this.add(eyebrows);
+
+ // front
+ const front = scene.add.sprite(71, 182, "sensei", "sensei/talk/front/front0001");
+ front.setOrigin(0.5009487666034156, 0.5);
+ this.add(front);
+
+ this.base = base;
+ this.beard = beard;
+ this.beak = beak;
+ this.eyebrows = eyebrows;
+ this.front = front;
+
+ /* START-USER-CTR-CODE */
+
+ this.currentAnim
+
+ this.playWait()
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ playTalk() {
+ this.playAnims('talk')
+ }
+
+ playWait() {
+ this.playAnims('wait')
+ }
+
+ playAnims(key) {
+ if (key === this.currentAnim) {
+ return
+ }
+
+ this.currentAnim = key
+
+ this.base.play(`${key}/base`)
+ this.beak.play(`${key}/beak`)
+ this.beard.play(`${key}/beard`)
+ this.eyebrows.play(`${key}/eyebrows`)
+ this.front.play(`${key}/front`)
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/games/sensei/widget/sprite/SenseiSprite.scene b/src/scenes/games/sensei/widget/sprite/SenseiSprite.scene
new file mode 100644
index 00000000..4fe81e1b
--- /dev/null
+++ b/src/scenes/games/sensei/widget/sprite/SenseiSprite.scene
@@ -0,0 +1,94 @@
+{
+ "id": "05d04137-c915-4f19-ba6c-2d937cd558d7",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "cd072e2a-a2e4-46a5-8808-9f05596ea6bf",
+ "label": "container_2",
+ "list": [
+ {
+ "type": "Sprite",
+ "id": "239209aa-cd82-49d7-bc0d-7e1526fcf9a0",
+ "label": "base",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "sensei/talk/base/base0001"
+ },
+ "originX": 0.501039501039501
+ },
+ {
+ "type": "Sprite",
+ "id": "10bcd89a-7f3b-422c-95a3-591f6bdfd528",
+ "label": "beard",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "sensei/talk/beard/beard0001"
+ },
+ "x": 66,
+ "y": 118
+ },
+ {
+ "type": "Sprite",
+ "id": "1f15b8e8-4bc2-4d8d-be15-5da03a121018",
+ "label": "beak",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "sensei/talk/beak/beak0001"
+ },
+ "x": 84,
+ "y": -111,
+ "originY": 0.5037593984962406
+ },
+ {
+ "type": "Sprite",
+ "id": "8368fd3d-03ce-4524-b9cd-84f9b22c76b8",
+ "label": "eyebrows",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "sensei/talk/eyebrows/eyebrows0001"
+ },
+ "x": 45,
+ "y": -148,
+ "originY": 0.5027624309392266
+ },
+ {
+ "type": "Sprite",
+ "id": "f8ddd89e-07bd-4d19-a71e-2f7c0ccb247c",
+ "label": "front",
+ "scope": "CLASS",
+ "texture": {
+ "key": "sensei",
+ "frame": "sensei/talk/front/front0001"
+ },
+ "x": 71,
+ "y": 182,
+ "originX": 0.5009487666034156
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/interface/game/main/Main.js b/src/scenes/interface/game/main/Main.js
index a209f91e..270f631c 100644
--- a/src/scenes/interface/game/main/Main.js
+++ b/src/scenes/interface/game/main/Main.js
@@ -14,6 +14,7 @@ import Moderator from '../moderator/Moderator'
import PlayerCard from '../playercard/PlayerCard'
import Safe from '../floating/safe/Safe'
import Settings from '../settings/Settings'
+import Waddle from '../waddle/Waddle'
/* START OF COMPILED CODE */
@@ -23,12 +24,12 @@ export default class Main extends BaseScene {
constructor() {
super("Main");
- /** @type {Phaser.GameObjects.Container} */
- this.onlinePopup;
/** @type {Phaser.GameObjects.Image} */
this.popup;
/** @type {Phaser.GameObjects.Text} */
this.popupText;
+ /** @type {Phaser.GameObjects.Container} */
+ this.onlinePopup;
/** @type {ChatLog} */
this.chatLog;
/** @type {Phaser.GameObjects.Image} */
@@ -37,12 +38,14 @@ export default class Main extends BaseScene {
this.request_button;
/** @type {Phaser.GameObjects.Sprite} */
this.mod_m;
- /** @type {Phaser.GameObjects.Layer} */
- this.widgetLayer;
+ /** @type {Waddle} */
+ this.waddle;
/** @type {Buddy} */
this.buddy;
/** @type {PlayerCard} */
this.playerCard;
+ /** @type {Phaser.GameObjects.Layer} */
+ this.widgetLayer;
/** @type {ActionsMenu} */
this.actionsMenu;
/** @type {EmotesMenu} */
@@ -53,7 +56,7 @@ export default class Main extends BaseScene {
this.moderator;
/** @type {Settings} */
this.settings;
- /** @type {Array} */
+ /** @type {Array} */
this.hideOnSleep;
@@ -168,6 +171,11 @@ export default class Main extends BaseScene {
// widgetLayer
const widgetLayer = this.add.layer();
+ // waddle
+ const waddle = new Waddle(this, 1099, 332);
+ waddle.visible = false;
+ widgetLayer.add(waddle);
+
// buddy
const buddy = new Buddy(this, 1140, 436);
buddy.visible = false;
@@ -204,7 +212,7 @@ export default class Main extends BaseScene {
settings.visible = false;
// lists
- const hideOnSleep = [settings, moderator, playerCard, buddy];
+ const hideOnSleep = [settings, moderator, playerCard, buddy, waddle];
// dock (components)
new Interactive(dock);
@@ -307,16 +315,17 @@ export default class Main extends BaseScene {
mod_buttonSimpleButton.hoverOutCallback = () => this.onModOut();
mod_buttonSimpleButton.callback = () => this.onModClick();
- this.onlinePopup = onlinePopup;
this.popup = popup;
this.popupText = popupText;
+ this.onlinePopup = onlinePopup;
this.chatLog = chatLog;
this.crosshair = crosshair;
this.request_button = request_button;
this.mod_m = mod_m;
- this.widgetLayer = widgetLayer;
+ this.waddle = waddle;
this.buddy = buddy;
this.playerCard = playerCard;
+ this.widgetLayer = widgetLayer;
this.actionsMenu = actionsMenu;
this.emotesMenu = emotesMenu;
this.safe = safe;
diff --git a/src/scenes/interface/game/main/Main.scene b/src/scenes/interface/game/main/Main.scene
index 67ab7134..01b1f080 100644
--- a/src/scenes/interface/game/main/Main.scene
+++ b/src/scenes/interface/game/main/Main.scene
@@ -65,7 +65,6 @@
"type": "Image",
"id": "aa9caccb-a731-4b3b-bfe5-984fe2f6d4ac",
"label": "chat_icon",
- "components": [],
"texture": {
"key": "main",
"frame": "chat-icon"
@@ -95,7 +94,6 @@
"type": "Image",
"id": "b192506d-5e8d-4220-98d0-60ad0d1e2e65",
"label": "emote_icon",
- "components": [],
"texture": {
"key": "main",
"frame": "emote-icon"
@@ -125,7 +123,6 @@
"type": "Image",
"id": "e48d913a-1f46-4bcc-ae4b-2bb6b5e7add7",
"label": "action_icon",
- "components": [],
"texture": {
"key": "main",
"frame": "action-icon"
@@ -155,7 +152,6 @@
"type": "Image",
"id": "0b686bbe-3796-4b9d-b965-ee59d7380e1f",
"label": "snowball_icon",
- "components": [],
"texture": {
"key": "main",
"frame": "snowball-icon"
@@ -185,7 +181,6 @@
"type": "Image",
"id": "9891188b-feea-49f2-8a70-4d5e85546a7c",
"label": "chat_send_icon",
- "components": [],
"texture": {
"key": "main",
"frame": "chat-icon"
@@ -215,7 +210,6 @@
"type": "Image",
"id": "71da470c-c4ad-4f6e-9aa1-ddc2aed0743f",
"label": "badge_member",
- "components": [],
"texture": {
"key": "main",
"frame": "badge-member"
@@ -245,7 +239,6 @@
"type": "Image",
"id": "9fe13e03-fd99-450c-81f6-cf6220c3c28c",
"label": "buddies_icon",
- "components": [],
"texture": {
"key": "main",
"frame": "buddies-icon"
@@ -275,7 +268,6 @@
"type": "Image",
"id": "c3de3562-d313-43a0-b5c1-fa0cc197473a",
"label": "igloo_icon",
- "components": [],
"texture": {
"key": "main",
"frame": "igloo-icon"
@@ -305,7 +297,6 @@
"type": "Image",
"id": "2dd95bb8-62eb-4d8a-916e-734bc44b3c9d",
"label": "help_icon",
- "components": [],
"texture": {
"key": "main",
"frame": "help-icon"
@@ -318,7 +309,6 @@
"id": "fcd23835-76eb-4b24-bcc1-920fa5429d8f",
"label": "onlinePopup",
"scope": "CLASS",
- "components": [],
"x": 1155,
"y": 849,
"visible": false,
@@ -328,7 +318,6 @@
"id": "795c7f78-2f45-46e5-b2dd-de88c796aa68",
"label": "popup",
"scope": "CLASS",
- "components": [],
"texture": {
"key": "main",
"frame": "buddy-online"
@@ -340,7 +329,6 @@
"id": "7cf83357-cb16-4ae2-94c0-49e37796db74",
"label": "popupText",
"scope": "CLASS",
- "components": [],
"x": -6,
"originX": 0.5,
"originY": 0.5,
@@ -361,10 +349,8 @@
],
"label": "chatLog",
"scope": "CLASS",
- "components": [],
"x": 760,
- "y": 12,
- "nestedPrefabs": []
+ "y": 12
},
{
"type": "Image",
@@ -472,7 +458,6 @@
"id": "6dca3f2a-91a7-4ed4-8cf2-5a0ddf89d4c9",
"label": "mod_m",
"scope": "CLASS",
- "components": [],
"texture": {
"key": "main",
"frame": "mod/m"
@@ -485,8 +470,21 @@
"id": "a205badf-674d-4f0f-bb3e-e687b24d30e9",
"label": "widgetLayer",
"scope": "CLASS",
- "components": [],
"list": [
+ {
+ "prefabId": "032db1d9-1eac-4321-b4b3-ef359e514589",
+ "id": "0040eb03-91ac-4caf-8c26-67b736b50f60",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "waddle",
+ "scope": "CLASS",
+ "x": 1099,
+ "y": 332,
+ "visible": false
+ },
{
"prefabId": "27889184-8ae4-4103-ab57-1cbad21b7401",
"id": "9acd4a58-cbf9-4751-b96a-2822f121af9c",
@@ -497,11 +495,9 @@
],
"label": "buddy",
"scope": "CLASS",
- "components": [],
"x": 1140,
"y": 436,
- "visible": false,
- "nestedPrefabs": []
+ "visible": false
},
{
"prefabId": "aa26f680-5a55-46f1-b89f-e40211af8a8d",
@@ -513,11 +509,9 @@
],
"label": "playerCard",
"scope": "CLASS",
- "components": [],
"x": 446,
"y": 436,
- "visible": false,
- "nestedPrefabs": []
+ "visible": false
}
]
},
@@ -531,11 +525,9 @@
],
"label": "actionsMenu",
"scope": "CLASS",
- "components": [],
"x": 366,
"y": 864,
- "visible": false,
- "nestedPrefabs": []
+ "visible": false
},
{
"prefabId": "0dee3174-7c8b-4158-b686-0fbea0d0c1f1",
@@ -547,11 +539,9 @@
],
"label": "emotesMenu",
"scope": "CLASS",
- "components": [],
"x": 306,
"y": 864,
- "visible": false,
- "nestedPrefabs": []
+ "visible": false
},
{
"prefabId": "847139cb-5cc3-48bc-be0b-14aabf820c56",
@@ -563,11 +553,9 @@
],
"label": "safe",
"scope": "CLASS",
- "components": [],
"x": 246,
"y": 925,
- "visible": false,
- "nestedPrefabs": []
+ "visible": false
},
{
"prefabId": "d44a536e-8824-4c11-8cdd-649f5629a29c",
@@ -579,11 +567,9 @@
],
"label": "moderator",
"scope": "CLASS",
- "components": [],
"x": 760,
"y": 480,
- "visible": false,
- "nestedPrefabs": []
+ "visible": false
},
{
"prefabId": "f2e8b538-6469-4a45-b23d-beac8cbf03a0",
@@ -595,11 +581,9 @@
],
"label": "settings",
"scope": "CLASS",
- "components": [],
"x": 760,
"y": 480,
- "visible": false,
- "nestedPrefabs": []
+ "visible": false
}
],
"plainObjects": [],
@@ -607,7 +591,7 @@
"app": "Phaser Editor 2D - Scene Editor",
"url": "https://phasereditor2d.com",
"contentType": "phasereditor2d.core.scene.SceneContentType",
- "version": 3
+ "version": 4
},
"lists": [
{
@@ -617,7 +601,8 @@
"4904443b-abe1-429f-9557-f064db674790",
"7b10953c-f288-40da-8b3f-44af0dea100d",
"9770a528-0c5a-4720-a6db-eabd53c787e1",
- "9acd4a58-cbf9-4751-b96a-2822f121af9c"
+ "9acd4a58-cbf9-4751-b96a-2822f121af9c",
+ "0040eb03-91ac-4caf-8c26-67b736b50f60"
]
}
]
diff --git a/src/scenes/interface/game/playercard/inventory/Inventory.js b/src/scenes/interface/game/playercard/inventory/Inventory.js
index 84e42a84..33a4cc87 100644
--- a/src/scenes/interface/game/playercard/inventory/Inventory.js
+++ b/src/scenes/interface/game/playercard/inventory/Inventory.js
@@ -234,6 +234,8 @@ export default class Inventory extends BaseContainer {
this.pageSize = 12
this.filter = null
+ this.cardDeckId = 821
+
this.inventoryLoader = new InventoryLoader(scene, this)
this.inventory_bg.setInteractive({ pixelPerfect: true })
@@ -302,6 +304,11 @@ export default class Inventory extends BaseContainer {
if (!item || !item.id || !item.active) return
+ if (item.id === this.cardDeckId) {
+ this.interface.loadWidget('NinjaProgress')
+ return
+ }
+
this.network.send('update_player', { item: item.id })
}
diff --git a/src/scenes/interface/game/waddle/Waddle.js b/src/scenes/interface/game/waddle/Waddle.js
new file mode 100644
index 00000000..0306ef78
--- /dev/null
+++ b/src/scenes/interface/game/waddle/Waddle.js
@@ -0,0 +1,149 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import DraggableContainer from "../../../components/DraggableContainer";
+import WaddleItem from "./waddle_item/WaddleItem";
+import Button from "../../../components/Button";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class Waddle extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Text} */
+ this.text;
+ /** @type {WaddleItem[]} */
+ this.items;
+
+
+ // bg
+ const bg = scene.add.image(0, -16, "main", "waddle");
+ this.add(bg);
+
+ // tab
+ const tab = scene.add.image(0, -190, "main", "tab-2");
+ this.add(tab);
+
+ // waddle_item_3
+ const waddle_item_3 = new WaddleItem(scene, 0, 100);
+ this.add(waddle_item_3);
+
+ // waddle_item_2
+ const waddle_item_2 = new WaddleItem(scene, 0, 48);
+ this.add(waddle_item_2);
+
+ // waddle_item_1
+ const waddle_item_1 = new WaddleItem(scene, 0, -4);
+ this.add(waddle_item_1);
+
+ // waddle_item
+ const waddle_item = new WaddleItem(scene, 0, -56);
+ this.add(waddle_item);
+
+ // text
+ const text = scene.add.text(0, -122, "", {});
+ text.setOrigin(0.5, 0.5);
+ text.setStyle({ "align": "center", "color": "#000000", "fixedWidth":420,"fontFamily": "Arial Narrow", "fontSize": "32px" });
+ this.add(text);
+
+ // x_button
+ const x_button = scene.add.image(178, -126, "main", "blue-button");
+ this.add(x_button);
+
+ // blue_x
+ const blue_x = scene.add.image(178, -128, "main", "blue-x");
+ this.add(blue_x);
+
+ // lists
+ const items = [waddle_item, waddle_item_1, waddle_item_2, waddle_item_3];
+
+ // this (components)
+ const thisDraggableContainer = new DraggableContainer(this);
+ thisDraggableContainer.handle = bg;
+
+ // x_button (components)
+ const x_buttonButton = new Button(x_button);
+ x_buttonButton.spriteName = "blue-button";
+ x_buttonButton.callback = () => this.close();
+
+ this.text = text;
+ this.items = items;
+
+ /* START-USER-CTR-CODE */
+
+ this.activeWaddleId = null
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ get activeWaddle() {
+ return this.world.room.waddles[this.activeWaddleId]
+ }
+
+ get activeWaddleContainer() {
+ return this.getWaddleContainer(this.activeWaddleId)
+ }
+
+ getWaddleContainer(waddle) {
+ return this.world.room.getWaddle(waddle)
+ }
+
+ getSeatPoint(waddle, seat) {
+ return this.getWaddleContainer(waddle)[`seat${seat}`]
+ }
+
+ getDonePoint() {
+ return this.getWaddleContainer(waddle)[`done${seat}`]
+ }
+
+ setText(game) {
+ this.text.text = this.getString(game)
+ }
+
+ show(waddle, seat, game) {
+ this.activeWaddleId = waddle
+ this.enterSeat(waddle, seat)
+
+ this.setText(game)
+
+ this.items.map(item => item.hideItem())
+
+ for (let [index, username] of this.activeWaddle.entries()) {
+ this.items[index].setItem(username)
+ }
+
+ super.show()
+ }
+
+ close() {
+ this.network.send('leave_waddle')
+
+ this.leaveSeat()
+ this.activeWaddleId = null
+
+ super.close()
+ }
+
+ updateWaddle(waddle, seat, username) {
+ if (waddle === this.activeWaddleId) {
+ this.items[seat].setItem(username)
+ }
+ }
+
+ enterSeat(waddle, seat) {
+ this.world.client.sendMoveToSeat(waddle, seat, 'waddle')
+ }
+
+ leaveSeat() {
+ this.world.client.sendLeaveSeat()
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/interface/game/waddle/Waddle.scene b/src/scenes/interface/game/waddle/Waddle.scene
new file mode 100644
index 00000000..1c39bfee
--- /dev/null
+++ b/src/scenes/interface/game/waddle/Waddle.scene
@@ -0,0 +1,155 @@
+{
+ "id": "032db1d9-1eac-4321-b4b3-ef359e514589",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "729c65f6-2998-4823-97ff-2ba3f648dd9a",
+ "label": "container_1",
+ "components": [
+ "DraggableContainer"
+ ],
+ "DraggableContainer.handle": "bg",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "0cec3224-ef6f-45d5-923a-3dbff900f144",
+ "label": "bg",
+ "texture": {
+ "key": "main",
+ "frame": "waddle"
+ },
+ "y": -16
+ },
+ {
+ "type": "Image",
+ "id": "d38ec65c-43c9-47d1-8bba-246ed197fe3e",
+ "label": "tab",
+ "texture": {
+ "key": "main",
+ "frame": "tab-2"
+ },
+ "y": -190
+ },
+ {
+ "prefabId": "64de3f26-671d-4f1f-acbf-49ffc1eeaa13",
+ "id": "bbf90d57-ecc8-4fb3-8815-2baa1aec66a7",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "waddle_item_3",
+ "x": 0,
+ "y": 100
+ },
+ {
+ "prefabId": "64de3f26-671d-4f1f-acbf-49ffc1eeaa13",
+ "id": "3588c486-0906-4565-b511-30925e03b354",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "waddle_item_2",
+ "x": 0,
+ "y": 48
+ },
+ {
+ "prefabId": "64de3f26-671d-4f1f-acbf-49ffc1eeaa13",
+ "id": "d72de3b8-e1eb-4a3d-9f4a-438af119150a",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "waddle_item_1",
+ "x": 0,
+ "y": -4
+ },
+ {
+ "prefabId": "64de3f26-671d-4f1f-acbf-49ffc1eeaa13",
+ "id": "7fb1cdfc-e641-4100-8c14-86058fbefa78",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "waddle_item",
+ "x": 0,
+ "y": -56
+ },
+ {
+ "type": "Text",
+ "id": "635f3877-d38a-4af7-b58d-0687b7fec219",
+ "label": "text",
+ "scope": "CLASS",
+ "y": -122,
+ "originX": 0.5,
+ "originY": 0.5,
+ "fixedWidth": 420,
+ "align": "center",
+ "fontFamily": "Arial Narrow",
+ "fontSize": "32px",
+ "color": "#000000"
+ },
+ {
+ "type": "Image",
+ "id": "0de71d0d-c87f-4d7c-b0c5-3b77c406342c",
+ "label": "x_button",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "blue-button",
+ "Button.callback": "() => this.close()",
+ "texture": {
+ "key": "main",
+ "frame": "blue-button"
+ },
+ "x": 178,
+ "y": -126
+ },
+ {
+ "type": "Image",
+ "id": "fd73af25-c9a4-4206-b587-e346a9db89b5",
+ "label": "blue_x",
+ "texture": {
+ "key": "main",
+ "frame": "blue-x"
+ },
+ "x": 178,
+ "y": -128
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ },
+ "lists": [
+ {
+ "id": "17823bb3-1f2a-4ce2-9ec2-ca96304c0105",
+ "label": "items",
+ "objectIds": [
+ "7fb1cdfc-e641-4100-8c14-86058fbefa78",
+ "d72de3b8-e1eb-4a3d-9f4a-438af119150a",
+ "3588c486-0906-4565-b511-30925e03b354",
+ "bbf90d57-ecc8-4fb3-8815-2baa1aec66a7"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/interface/game/waddle/waddle_item/WaddleItem.js b/src/scenes/interface/game/waddle/waddle_item/WaddleItem.js
new file mode 100644
index 00000000..e5773e38
--- /dev/null
+++ b/src/scenes/interface/game/waddle/waddle_item/WaddleItem.js
@@ -0,0 +1,93 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../../base/BaseContainer";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class WaddleItem extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.icon;
+ /** @type {Phaser.GameObjects.Text} */
+ this.username;
+
+
+ // waddle_item
+ const waddle_item = scene.add.image(0, 0, "main", "buddy/item");
+ this.add(waddle_item);
+
+ // icon
+ const icon = scene.add.image(-137, 0, "main", "buddy/icon-load");
+ this.add(icon);
+
+ // username
+ const username = scene.add.text(25, 0, "", {});
+ username.setOrigin(0.5, 0.5);
+ username.text = "Empty";
+ username.setStyle({ "fixedWidth":270,"fontFamily": "Arial", "fontSize": "24px" });
+ this.add(username);
+
+ this.icon = icon;
+ this.username = username;
+
+ /* START-USER-CTR-CODE */
+
+ this.id = null
+
+ this.spinnerTween = scene.tweens.add({
+ targets: this.icon,
+ angle: { from: 0, to: 180 },
+ duration: 900,
+ repeat: -1,
+ ease: 'Cubic'
+ })
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+
+ setItem(username) {
+ this.show()
+
+ this.username.text = username ? username : 'Empty'
+
+ if (username) {
+ this.stopSpinner()
+
+ let texture = username.toLowerCase() == this.world.client.penguin.username.toLowerCase()
+ ? 'player'
+ : 'none'
+
+ this.icon.setTexture('main', `buddy/icon-${texture}`)
+
+ } else {
+ this.startSpinner()
+
+ this.icon.setTexture('main', 'buddy/icon-load')
+ }
+ }
+
+ hideItem() {
+ this.close()
+ this.stopSpinner()
+ }
+
+ startSpinner() {
+ this.spinnerTween.seek(0)
+ this.spinnerTween.resume()
+ }
+
+ stopSpinner() {
+ this.spinnerTween.pause()
+ this.icon.angle = 0
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/interface/game/waddle/waddle_item/WaddleItem.scene b/src/scenes/interface/game/waddle/waddle_item/WaddleItem.scene
new file mode 100644
index 00000000..a9031aa6
--- /dev/null
+++ b/src/scenes/interface/game/waddle/waddle_item/WaddleItem.scene
@@ -0,0 +1,67 @@
+{
+ "id": "64de3f26-671d-4f1f-acbf-49ffc1eeaa13",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "460fe828-2a5c-48b5-8e64-374780777136",
+ "label": "container_1",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "13a92a5e-3ca1-4352-a27b-7613c2243d6b",
+ "label": "waddle_item",
+ "texture": {
+ "key": "main",
+ "frame": "buddy/item"
+ }
+ },
+ {
+ "type": "Image",
+ "id": "93bfe9fd-2100-410e-928f-454002f9117d",
+ "label": "icon",
+ "scope": "CLASS",
+ "texture": {
+ "key": "main",
+ "frame": "buddy/icon-load"
+ },
+ "x": -137
+ },
+ {
+ "type": "Text",
+ "id": "730363a5-60c9-4711-80a6-53256a41c9bd",
+ "label": "username",
+ "scope": "CLASS",
+ "x": 25,
+ "originX": 0.5,
+ "originY": 0.5,
+ "text": "Empty",
+ "fixedWidth": 270,
+ "fontFamily": "Arial",
+ "fontSize": "24px"
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/interface/instructions/ninjabelts/NinjaBelts.js b/src/scenes/interface/instructions/ninjabelts/NinjaBelts.js
new file mode 100644
index 00000000..5e00bef0
--- /dev/null
+++ b/src/scenes/interface/instructions/ninjabelts/NinjaBelts.js
@@ -0,0 +1,51 @@
+export const preload = {
+ key: 'ninjabelts-pack',
+ url: 'assets/media/interface/instructions/ninjabelts/ninjabelts-pack.json',
+ loadString: ['loading', 'ninjabelts']
+}
+
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Interactive from "../../../components/Interactive";
+import Button from "../../../components/Button";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class NinjaBelts extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ // block
+ const block = scene.add.rectangle(0, 0, 1520, 960);
+ block.isFilled = true;
+ block.fillColor = 0;
+ block.fillAlpha = 0.2;
+ this.add(block);
+
+ // bg
+ const bg = scene.add.image(0, -24, "ninjabelts", "bg");
+ this.add(bg);
+
+ // close
+ const close = scene.add.image(216, -399, "ninjabelts", "close");
+ this.add(close);
+
+ // block (components)
+ new Interactive(block);
+
+ // close (components)
+ const closeButton = new Button(close);
+ closeButton.spriteName = "close";
+ closeButton.callback = () => this.close();
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+ /* START-USER-CODE */
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/interface/instructions/ninjabelts/NinjaBelts.scene b/src/scenes/interface/instructions/ninjabelts/NinjaBelts.scene
new file mode 100644
index 00000000..0d561672
--- /dev/null
+++ b/src/scenes/interface/instructions/ninjabelts/NinjaBelts.scene
@@ -0,0 +1,73 @@
+{
+ "id": "0b35598f-c5d1-4f33-afad-43fd460f959a",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "37458a2b-3844-483f-b834-fac9d35b618b",
+ "label": "container_1",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Rectangle",
+ "id": "b7cfc003-3ecc-487f-8eee-a2571916ac7f",
+ "label": "block",
+ "components": [
+ "Interactive"
+ ],
+ "isFilled": true,
+ "fillColor": "#000000",
+ "fillAlpha": 0.2,
+ "width": 1520,
+ "height": 960
+ },
+ {
+ "type": "Image",
+ "id": "19d25413-a385-4e9f-9857-51bd99aff7c4",
+ "label": "bg",
+ "texture": {
+ "key": "ninjabelts",
+ "frame": "bg"
+ },
+ "y": -24
+ },
+ {
+ "type": "Image",
+ "id": "b7aac7a3-2340-4824-99cc-eae0a589dd3d",
+ "label": "close",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "close",
+ "Button.callback": "() => this.close()",
+ "texture": {
+ "key": "ninjabelts",
+ "frame": "close"
+ },
+ "x": 216,
+ "y": -399
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/interface/instructions/ninjainstructions/NinjaInstructions.js b/src/scenes/interface/instructions/ninjainstructions/NinjaInstructions.js
new file mode 100644
index 00000000..8fd03b87
--- /dev/null
+++ b/src/scenes/interface/instructions/ninjainstructions/NinjaInstructions.js
@@ -0,0 +1,51 @@
+export const preload = {
+ key: 'ninjainstructions-pack',
+ url: 'assets/media/interface/instructions/ninjainstructions/ninjainstructions-pack.json',
+ loadString: ['loading', 'ninjainstructions']
+}
+
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Interactive from "../../../components/Interactive";
+import Button from "../../../components/Button";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class NinjaInstructions extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ // block
+ const block = scene.add.rectangle(0, 0, 1520, 960);
+ block.isFilled = true;
+ block.fillColor = 0;
+ block.fillAlpha = 0.2;
+ this.add(block);
+
+ // bg
+ const bg = scene.add.image(0, -24, "ninjainstructions", "bg");
+ this.add(bg);
+
+ // close
+ const close = scene.add.image(216, -399, "ninjainstructions", "close");
+ this.add(close);
+
+ // block (components)
+ new Interactive(block);
+
+ // close (components)
+ const closeButton = new Button(close);
+ closeButton.spriteName = "close";
+ closeButton.callback = () => this.close();
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+ /* START-USER-CODE */
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/interface/instructions/ninjainstructions/NinjaInstructions.scene b/src/scenes/interface/instructions/ninjainstructions/NinjaInstructions.scene
new file mode 100644
index 00000000..b459dc72
--- /dev/null
+++ b/src/scenes/interface/instructions/ninjainstructions/NinjaInstructions.scene
@@ -0,0 +1,73 @@
+{
+ "id": "1df77fc4-8fe1-4fbe-9607-335bbd0715d1",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "90f3b620-7810-4e32-ae43-6e0cb91084d9",
+ "label": "container_1",
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Rectangle",
+ "id": "62f29b87-a3db-4de4-8c18-c156a2b82e9b",
+ "label": "block",
+ "components": [
+ "Interactive"
+ ],
+ "isFilled": true,
+ "fillColor": "#000000",
+ "fillAlpha": 0.2,
+ "width": 1520,
+ "height": 960
+ },
+ {
+ "type": "Image",
+ "id": "c1995031-6189-41a1-87ce-c923fe14fdfa",
+ "label": "bg",
+ "texture": {
+ "key": "ninjainstructions",
+ "frame": "bg"
+ },
+ "y": -24
+ },
+ {
+ "type": "Image",
+ "id": "cabb9816-92a8-4c33-9252-32bf2511ecf5",
+ "label": "close",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "close",
+ "Button.callback": "() => this.close()",
+ "texture": {
+ "key": "ninjainstructions",
+ "frame": "close"
+ },
+ "x": 216,
+ "y": -399
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/rooms/RoomScene.js b/src/scenes/rooms/RoomScene.js
index e7a58d02..bd4a5b8d 100644
--- a/src/scenes/rooms/RoomScene.js
+++ b/src/scenes/rooms/RoomScene.js
@@ -21,6 +21,7 @@ export default class RoomScene extends BaseScene {
this.waiting = []
this.tables
+ this.waddles
}
get client() {
@@ -46,6 +47,7 @@ export default class RoomScene extends BaseScene {
this.setMusic()
if (this.tables) this.sendGetTables()
+ if (this.waddles) this.sendGetWaddles()
this.interface.showInterface()
}
@@ -102,10 +104,18 @@ export default class RoomScene extends BaseScene {
this.network.send('get_tables')
}
+ sendGetWaddles() {
+ this.network.send('get_waddles')
+ }
+
getTable(id) {
return this[`table${id}`]
}
+ getWaddle(id) {
+ return this[`waddle${id}`]
+ }
+
setTables(tables) {
this.tables = tables
@@ -133,6 +143,10 @@ export default class RoomScene extends BaseScene {
}
}
+ setWaddles(waddles) {
+ this.waddles = waddles
+ }
+
onSnowballComplete(x, y) {
// To be overridden in derived class
}
diff --git a/src/scenes/rooms/book/Book.js b/src/scenes/rooms/book/Book.js
index 71fb0c59..37e97536 100644
--- a/src/scenes/rooms/book/Book.js
+++ b/src/scenes/rooms/book/Book.js
@@ -1,6 +1,8 @@
import RoomScene from '../RoomScene'
-import { Button, MoveTo, ShowHint } from '@components/components'
+import { Button } from '@components/components'
+
+import MancalaTable from '@scenes/shared_prefabs/tables/mancala/MancalaTable'
/* START OF COMPILED CODE */
@@ -10,14 +12,29 @@ export default class Book extends RoomScene {
constructor() {
super("Book");
- /** @type {Phaser.GameObjects.Image[]} */
+ /** @type {MancalaTable} */
+ this.table104;
+ /** @type {MancalaTable} */
+ this.table103;
+ /** @type {MancalaTable} */
+ this.table102;
+ /** @type {MancalaTable} */
+ this.table101;
+ /** @type {MancalaTable} */
+ this.table100;
+ /** @type {Array} */
this.sort;
/* START-USER-CTR-CODE */
this.roomTriggers = {
- 'coffee': () => this.triggerRoom(110, 1120, 800)
+ 'coffee': () => this.triggerRoom(110, 1120, 800),
+ 'table100': () => this.triggerTable('mancala', 100),
+ 'table101': () => this.triggerTable('mancala', 101),
+ 'table102': () => this.triggerTable('mancala', 102),
+ 'table103': () => this.triggerTable('mancala', 103),
+ 'table104': () => this.triggerTable('mancala', 104)
}
this.music = '1'
@@ -57,28 +74,32 @@ export default class Book extends RoomScene {
const poster = this.add.image(720, 97, "book", "poster");
poster.setOrigin(0, 0);
- // table
- const table = this.add.image(951, 446, "book", "table");
- table.setOrigin(0.5043478260869565, 0.46);
+ // table104
+ const table104 = new MancalaTable(this, 1208, 755);
+ this.add.existing(table104);
+ table104.visible = true;
- // table_1
- const table_1 = this.add.image(652, 444, "book", "table");
- table_1.setOrigin(0.5043478260869565, 0.46);
+ // table103
+ const table103 = new MancalaTable(this, 806, 690);
+ this.add.existing(table103);
+ table103.visible = true;
- // table_2
- const table_2 = this.add.image(426, 646, "book", "table");
- table_2.setOrigin(0.5043478260869565, 0.46);
+ // table102
+ const table102 = new MancalaTable(this, 426, 652);
+ this.add.existing(table102);
+ table102.visible = true;
- // table_3
- const table_3 = this.add.image(806, 684, "book", "table");
- table_3.setOrigin(0.5043478260869565, 0.46);
+ // table101
+ const table101 = new MancalaTable(this, 951, 453);
+ this.add.existing(table101);
+ table101.visible = true;
- // table_4
- const table_4 = this.add.image(1208, 748, "book", "table");
- table_4.setOrigin(0.5043478260869565, 0.46);
+ // table100
+ const table100 = new MancalaTable(this, 651, 450);
+ this.add.existing(table100);
// lists
- const sort = [table_4, table_3, table_2, table_1, table, chair_table, chair_front, chair_back];
+ const sort = [chair_table, chair_front, chair_back, table100, table101, table102, table103, table104];
// books (components)
const booksButton = new Button(books);
@@ -91,51 +112,11 @@ export default class Book extends RoomScene {
posterButton.activeFrame = false;
posterButton.pixelPerfect = true;
- // table (components)
- const tableButton = new Button(table);
- tableButton.spriteName = "table";
- tableButton.activeFrame = false;
- tableButton.pixelPerfect = true;
- new MoveTo(table);
- const tableShowHint = new ShowHint(table);
- tableShowHint.text = "mancala_hint";
-
- // table_1 (components)
- const table_1Button = new Button(table_1);
- table_1Button.spriteName = "table";
- table_1Button.activeFrame = false;
- table_1Button.pixelPerfect = true;
- new MoveTo(table_1);
- const table_1ShowHint = new ShowHint(table_1);
- table_1ShowHint.text = "mancala_hint";
-
- // table_2 (components)
- const table_2Button = new Button(table_2);
- table_2Button.spriteName = "table";
- table_2Button.activeFrame = false;
- table_2Button.pixelPerfect = true;
- new MoveTo(table_2);
- const table_2ShowHint = new ShowHint(table_2);
- table_2ShowHint.text = "mancala_hint";
-
- // table_3 (components)
- const table_3Button = new Button(table_3);
- table_3Button.spriteName = "table";
- table_3Button.activeFrame = false;
- table_3Button.pixelPerfect = true;
- new MoveTo(table_3);
- const table_3ShowHint = new ShowHint(table_3);
- table_3ShowHint.text = "mancala_hint";
-
- // table_4 (components)
- const table_4Button = new Button(table_4);
- table_4Button.spriteName = "table";
- table_4Button.activeFrame = false;
- table_4Button.pixelPerfect = true;
- new MoveTo(table_4);
- const table_4ShowHint = new ShowHint(table_4);
- table_4ShowHint.text = "mancala_hint";
-
+ this.table104 = table104;
+ this.table103 = table103;
+ this.table102 = table102;
+ this.table101 = table101;
+ this.table100 = table100;
this.sort = sort;
this.events.emit("scene-awake");
diff --git a/src/scenes/rooms/book/Book.scene b/src/scenes/rooms/book/Book.scene
index 23adf885..797369e6 100644
--- a/src/scenes/rooms/book/Book.scene
+++ b/src/scenes/rooms/book/Book.scene
@@ -109,114 +109,87 @@
"originY": 0
},
{
- "type": "Image",
- "id": "3121adc6-b8d0-49cc-80b9-fb0f907a2521",
- "label": "table",
- "components": [
- "Button",
- "MoveTo",
- "ShowHint"
+ "prefabId": "a31bdfcd-9fee-4e6e-b421-7edb8b8c7008",
+ "id": "fd51e368-47f4-47df-a384-50368708110b",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
],
- "Button.spriteName": "table",
- "Button.activeFrame": false,
- "Button.pixelPerfect": true,
- "ShowHint.text": "mancala_hint",
- "texture": {
- "key": "book",
- "frame": "table"
- },
- "x": 951,
- "y": 446,
- "originX": 0.5043478260869565,
- "originY": 0.46
+ "label": "table104",
+ "scope": "CLASS",
+ "components": [],
+ "x": 1208,
+ "y": 755,
+ "visible": true,
+ "nestedPrefabs": [],
+ "list": []
},
{
- "type": "Image",
- "id": "7c76f0f6-08ce-42ce-95ce-ee2bf30214e8",
- "label": "table_1",
- "components": [
- "Button",
- "MoveTo",
- "ShowHint"
+ "prefabId": "a31bdfcd-9fee-4e6e-b421-7edb8b8c7008",
+ "id": "62ad80e4-03cd-46be-bc97-88dde203d0d1",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
],
- "Button.spriteName": "table",
- "Button.activeFrame": false,
- "Button.pixelPerfect": true,
- "ShowHint.text": "mancala_hint",
- "texture": {
- "key": "book",
- "frame": "table"
- },
- "x": 652,
- "y": 444,
- "originX": 0.5043478260869565,
- "originY": 0.46
+ "label": "table103",
+ "scope": "CLASS",
+ "components": [],
+ "x": 806,
+ "y": 690,
+ "visible": true,
+ "nestedPrefabs": [],
+ "list": []
},
{
- "type": "Image",
- "id": "69f50215-4fae-4002-ab73-5ae417038520",
- "label": "table_2",
- "components": [
- "Button",
- "MoveTo",
- "ShowHint"
+ "prefabId": "a31bdfcd-9fee-4e6e-b421-7edb8b8c7008",
+ "id": "026d8187-0e90-4d76-a2e4-3ab5b5463b36",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
],
- "Button.spriteName": "table",
- "Button.activeFrame": false,
- "Button.pixelPerfect": true,
- "ShowHint.text": "mancala_hint",
- "texture": {
- "key": "book",
- "frame": "table"
- },
+ "label": "table102",
+ "scope": "CLASS",
+ "components": [],
"x": 426,
- "y": 646,
- "originX": 0.5043478260869565,
- "originY": 0.46
+ "y": 652,
+ "visible": true,
+ "nestedPrefabs": [],
+ "list": []
},
{
- "type": "Image",
- "id": "83d3b05f-42f9-41da-afe7-f1970727b41c",
- "label": "table_3",
- "components": [
- "Button",
- "MoveTo",
- "ShowHint"
+ "prefabId": "a31bdfcd-9fee-4e6e-b421-7edb8b8c7008",
+ "id": "3c0f4d88-d38f-49e0-b90d-2389d36e4d50",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
],
- "Button.spriteName": "table",
- "Button.activeFrame": false,
- "Button.pixelPerfect": true,
- "ShowHint.text": "mancala_hint",
- "texture": {
- "key": "book",
- "frame": "table"
- },
- "x": 806,
- "y": 684,
- "originX": 0.5043478260869565,
- "originY": 0.46
+ "label": "table101",
+ "scope": "CLASS",
+ "components": [],
+ "x": 951,
+ "y": 453,
+ "visible": true,
+ "nestedPrefabs": [],
+ "list": []
},
{
- "type": "Image",
- "id": "2f6c3924-ae43-4b24-b896-637751ef5008",
- "label": "table_4",
- "components": [
- "Button",
- "MoveTo",
- "ShowHint"
+ "prefabId": "a31bdfcd-9fee-4e6e-b421-7edb8b8c7008",
+ "id": "641156f5-cc76-4144-8f1a-e4648f3ddfc7",
+ "unlock": [
+ "x",
+ "y"
],
- "Button.spriteName": "table",
- "Button.activeFrame": false,
- "Button.pixelPerfect": true,
- "ShowHint.text": "mancala_hint",
- "texture": {
- "key": "book",
- "frame": "table"
- },
- "x": 1208,
- "y": 748,
- "originX": 0.5043478260869565,
- "originY": 0.46
+ "label": "table100",
+ "scope": "CLASS",
+ "components": [],
+ "x": 651,
+ "y": 450,
+ "nestedPrefabs": [],
+ "list": []
}
],
"plainObjects": [],
@@ -231,14 +204,14 @@
"id": "8bce6f73-b3e7-48cf-9a02-7e5412e5397d",
"label": "sort",
"objectIds": [
- "2f6c3924-ae43-4b24-b896-637751ef5008",
- "83d3b05f-42f9-41da-afe7-f1970727b41c",
- "69f50215-4fae-4002-ab73-5ae417038520",
- "7c76f0f6-08ce-42ce-95ce-ee2bf30214e8",
- "3121adc6-b8d0-49cc-80b9-fb0f907a2521",
"c9532f84-c85e-4dc4-bae4-aaaf8557e69e",
"587577af-f9ef-471a-849a-09a07bc115b1",
- "3f068263-f4f5-4b66-88b0-078006583a4c"
+ "3f068263-f4f5-4b66-88b0-078006583a4c",
+ "641156f5-cc76-4144-8f1a-e4648f3ddfc7",
+ "3c0f4d88-d38f-49e0-b90d-2389d36e4d50",
+ "026d8187-0e90-4d76-a2e4-3ab5b5463b36",
+ "62ad80e4-03cd-46be-bc97-88dde203d0d1",
+ "fd51e368-47f4-47df-a384-50368708110b"
]
}
]
diff --git a/src/scenes/rooms/dojo/Dojo.js b/src/scenes/rooms/dojo/Dojo.js
new file mode 100644
index 00000000..f22ebf20
--- /dev/null
+++ b/src/scenes/rooms/dojo/Dojo.js
@@ -0,0 +1,238 @@
+/* START OF COMPILED CODE */
+
+import RoomScene from "../RoomScene";
+import Button from "../../components/Button";
+import MoveTo from "../../components/MoveTo";
+import Waddle203 from "./waddle/Waddle203";
+import Waddle202 from "./waddle/Waddle202";
+import Waddle201 from "./waddle/Waddle201";
+import Waddle200 from "./waddle/Waddle200";
+import Zone from "../../components/Zone";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class Dojo extends RoomScene {
+
+ constructor() {
+ super("Dojo");
+
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.sensei;
+ /** @type {Waddle203} */
+ this.waddle203;
+ /** @type {Waddle202} */
+ this.waddle202;
+ /** @type {Waddle201} */
+ this.waddle201;
+ /** @type {Waddle200} */
+ this.waddle200;
+ /** @type {Phaser.GameObjects.Image} */
+ this.cards;
+ /** @type {Phaser.GameObjects.Sprite} */
+ this.cauldronSmoke;
+
+
+ /* START-USER-CTR-CODE */
+
+ this.roomTriggers = {
+ 'door': () => this.triggerRoom(321, 780, 640),
+ 'sensei': () => this.triggerGame(951),
+ 'table200': () => this.triggerMat(200),
+ 'table201': () => this.triggerMat(201),
+ 'table202': () => this.triggerMat(202),
+ 'table203': () => this.triggerMat(203)
+ }
+
+ this.roomAnims = true
+ this.music = 21
+
+ this.waddles = {}
+
+ /* END-USER-CTR-CODE */
+ }
+
+ /** @returns {void} */
+ _preload() {
+
+ this.load.pack("dojo-pack", "assets/media/rooms/dojo/dojo-pack.json");
+ }
+
+ /** @returns {void} */
+ _create() {
+
+ // bg
+ const bg = this.add.image(-4, -2, "dojo", "bg");
+ bg.setOrigin(0, 0);
+
+ // door
+ const door = this.add.image(358, 421, "dojo", "door");
+ door.setOrigin(0, 0);
+
+ // sensei
+ const sensei = this.add.sprite(973, 372, "dojo", "sensei/sensei0001");
+ sensei.setOrigin(0, 0);
+
+ // tree
+ const tree = this.add.image(1198, 451, "dojo", "tree");
+ tree.setOrigin(0, 0);
+
+ // instructionsPoster
+ const instructionsPoster = this.add.image(631, 375, "dojo", "instructions_poster");
+ instructionsPoster.setOrigin(0, 0);
+
+ // instructions
+ const instructions = this.add.image(647, 381, "dojo", "instructions");
+ instructions.setOrigin(0, 0);
+
+ // legendPoster
+ const legendPoster = this.add.image(512, 375, "dojo", "legend_poster");
+ legendPoster.setOrigin(0, 0);
+
+ // legend
+ const legend = this.add.image(534, 382, "dojo", "legend");
+ legend.setOrigin(0, 0);
+
+ // waddle203
+ const waddle203 = new Waddle203(this, 1188, 813);
+ this.add.existing(waddle203);
+
+ // waddle202
+ const waddle202 = new Waddle202(this, 358, 813);
+ this.add.existing(waddle202);
+
+ // waddle201
+ const waddle201 = new Waddle201(this, 930, 706);
+ this.add.existing(waddle201);
+
+ // waddle200
+ const waddle200 = new Waddle200(this, 616, 706);
+ this.add.existing(waddle200);
+
+ // zone
+ const zone = this.add.rectangle(1096, 490, 246, 217);
+ zone.alpha = 0.5;
+ zone.isFilled = true;
+ zone.fillColor = 65280;
+
+ // cards
+ const cards = this.add.image(1342, 819, "dojo", "cards");
+ cards.setOrigin(0, 0);
+ cards.visible = false;
+
+ // cauldronBack
+ const cauldronBack = this.add.image(918, 540, "dojo", "cauldron/back");
+ cauldronBack.setOrigin(0, 0);
+
+ // cauldronSmoke
+ const cauldronSmoke = this.add.sprite(954, 511, "dojo", "cauldron/smoke/smoke0001");
+
+ // cauldronFront
+ const cauldronFront = this.add.image(926, 550, "dojo", "cauldron/front");
+ cauldronFront.setOrigin(0, 0);
+
+ // door (components)
+ const doorButton = new Button(door);
+ doorButton.spriteName = "door";
+ doorButton.activeFrame = false;
+ doorButton.pixelPerfect = true;
+ const doorMoveTo = new MoveTo(door);
+ doorMoveTo.x = 400;
+ doorMoveTo.y = 570;
+
+ // instructionsPoster (components)
+ const instructionsPosterButton = new Button(instructionsPoster);
+ instructionsPosterButton.spriteName = "instructions_poster";
+ instructionsPosterButton.callback = () => this.interface.loadWidget('NinjaInstructions');
+ instructionsPosterButton.activeFrame = false;
+
+ // legendPoster (components)
+ const legendPosterButton = new Button(legendPoster);
+ legendPosterButton.spriteName = "legend_poster";
+ legendPosterButton.callback = () => this.interface.loadWidget('NinjaBelts');
+ legendPosterButton.activeFrame = false;
+
+ // waddle203 (prefab fields)
+ waddle203.moveToX = 1160;
+ waddle203.moveToY = 750;
+
+ // waddle202 (prefab fields)
+ waddle202.moveToX = 380;
+ waddle202.moveToY = 750;
+
+ // waddle201 (prefab fields)
+ waddle201.moveToX = 920;
+ waddle201.moveToY = 650;
+
+ // waddle200 (prefab fields)
+ waddle200.moveToX = 620;
+ waddle200.moveToY = 650;
+
+ // zone (components)
+ const zoneZone = new Zone(zone);
+ zoneZone.hoverCallback = () => this.onSenseiOver();
+ zoneZone.hoverOutCallback = () => this.onSenseiOut();
+ const zoneMoveTo = new MoveTo(zone);
+ zoneMoveTo.x = 1096;
+ zoneMoveTo.y = 640;
+
+ // cards (components)
+ const cardsButton = new Button(cards);
+ cardsButton.spriteName = "cards";
+ cardsButton.callback = () => this.interface.loadWidget('NinjaProgress');
+ cardsButton.activeFrame = false;
+ cardsButton.pixelPerfect = true;
+
+ this.sensei = sensei;
+ this.waddle203 = waddle203;
+ this.waddle202 = waddle202;
+ this.waddle201 = waddle201;
+ this.waddle200 = waddle200;
+ this.cards = cards;
+ this.cauldronSmoke = cauldronSmoke;
+
+ this.events.emit("scene-awake");
+ }
+
+
+ /* START-USER-CODE */
+
+ get userHasDeck() {
+ return this.world.client.inventory.award.includes(821)
+ }
+
+ create() {
+ super.create()
+
+ this.cauldronSmoke.play('smoke')
+
+ this.cards.depth = 960
+ this.cards.visible = this.userHasDeck
+ }
+
+ onSenseiOver() {
+ this.sensei.play('sensei_over')
+ }
+
+ onSenseiOut() {
+ this.sensei.play('sensei_out')
+ }
+
+ triggerMat(id) {
+ if (!this.userHasDeck) {
+ this.interface.prompt.showWindow(this.getString('starter_deck_prompt'))
+ return
+ }
+
+ const text = this.getString('card_prompt')
+
+ this.interface.prompt.showWindow(text, 'dual', () => {
+ this.network.send('join_waddle', { waddle: id })
+
+ this.interface.prompt.window.visible = false
+ })
+ }
+
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/rooms/dojo/Dojo.scene b/src/scenes/rooms/dojo/Dojo.scene
new file mode 100644
index 00000000..71048e85
--- /dev/null
+++ b/src/scenes/rooms/dojo/Dojo.scene
@@ -0,0 +1,298 @@
+{
+ "id": "96e2fae2-4efb-453e-b4a7-eb969252c5bd",
+ "sceneType": "SCENE",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "RoomScene",
+ "preloadMethodName": "_preload",
+ "preloadPackFiles": [
+ "yukon/assets/media/rooms/dojo/dojo-pack.json"
+ ],
+ "createMethodName": "_create",
+ "sceneKey": "Dojo",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Image",
+ "id": "cdad28c5-a6ef-4041-b7a2-d1b67c1d0477",
+ "label": "bg",
+ "texture": {
+ "key": "dojo",
+ "frame": "bg"
+ },
+ "x": -4,
+ "y": -2,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "type": "Image",
+ "id": "33712c63-4115-4d75-9703-cdd091474e6f",
+ "label": "door",
+ "components": [
+ "Button",
+ "MoveTo"
+ ],
+ "Button.spriteName": "door",
+ "Button.activeFrame": false,
+ "Button.pixelPerfect": true,
+ "MoveTo.x": "400",
+ "MoveTo.y": "570",
+ "texture": {
+ "key": "dojo",
+ "frame": "door"
+ },
+ "x": 358,
+ "y": 421,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "type": "Sprite",
+ "id": "779d8848-0d5a-4c38-93b2-1a51b4c294ed",
+ "label": "sensei",
+ "scope": "CLASS",
+ "texture": {
+ "key": "dojo",
+ "frame": "sensei/sensei0001"
+ },
+ "x": 973,
+ "y": 372,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "type": "Image",
+ "id": "11187da2-2046-47b4-8601-6631421f43ee",
+ "label": "tree",
+ "texture": {
+ "key": "dojo",
+ "frame": "tree"
+ },
+ "x": 1198,
+ "y": 451,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "type": "Image",
+ "id": "cd9d3eb7-a7fe-4f75-9077-53b8c1a6eae5",
+ "label": "instructionsPoster",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "instructions_poster",
+ "Button.callback": "() => this.interface.loadWidget('NinjaInstructions')",
+ "Button.activeFrame": false,
+ "texture": {
+ "key": "dojo",
+ "frame": "instructions_poster"
+ },
+ "x": 631,
+ "y": 375,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "type": "Image",
+ "id": "88e43778-3321-4a69-98e8-eadd7d082a6c",
+ "label": "instructions",
+ "texture": {
+ "key": "dojo",
+ "frame": "instructions"
+ },
+ "x": 647,
+ "y": 381,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "type": "Image",
+ "id": "6532e5fe-0d2d-483d-9631-2f8abf2f93e1",
+ "label": "legendPoster",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "legend_poster",
+ "Button.callback": "() => this.interface.loadWidget('NinjaBelts')",
+ "Button.activeFrame": false,
+ "texture": {
+ "key": "dojo",
+ "frame": "legend_poster"
+ },
+ "x": 512,
+ "y": 375,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "type": "Image",
+ "id": "89add8ea-3226-4101-914b-de9e1f6c0d4f",
+ "label": "legend",
+ "texture": {
+ "key": "dojo",
+ "frame": "legend"
+ },
+ "x": 534,
+ "y": 382,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "prefabId": "d60128ff-4079-4464-b688-dbdea3c52e20",
+ "id": "4ed85538-b1e1-4391-864a-12165867f2d7",
+ "unlock": [
+ "x",
+ "y",
+ "moveToX",
+ "moveToY"
+ ],
+ "label": "waddle203",
+ "scope": "CLASS",
+ "moveToX": 1160,
+ "moveToY": 750,
+ "x": 1188,
+ "y": 813
+ },
+ {
+ "prefabId": "d6d50181-a9a9-48b9-b4a2-6096b1ad8542",
+ "id": "930e64d7-509f-4b66-b069-17ddd8228123",
+ "unlock": [
+ "x",
+ "y",
+ "moveToX",
+ "moveToY"
+ ],
+ "label": "waddle202",
+ "scope": "CLASS",
+ "moveToX": 380,
+ "moveToY": 750,
+ "x": 358,
+ "y": 813
+ },
+ {
+ "prefabId": "7554bcf3-656c-48ed-97c0-e431350f8ba5",
+ "id": "7353dd85-f3a9-44e6-a1b5-efce0d80b611",
+ "unlock": [
+ "x",
+ "y",
+ "moveToX",
+ "moveToY"
+ ],
+ "label": "waddle201",
+ "scope": "CLASS",
+ "moveToX": 920,
+ "moveToY": 650,
+ "x": 930,
+ "y": 706
+ },
+ {
+ "prefabId": "20915166-b810-4ea6-b9c1-62e694ee975c",
+ "id": "fb495e97-de4b-464b-91cc-e79480e53d2d",
+ "unlock": [
+ "x",
+ "y",
+ "moveToX",
+ "moveToY"
+ ],
+ "label": "waddle200",
+ "scope": "CLASS",
+ "moveToX": 620,
+ "moveToY": 650,
+ "x": 616,
+ "y": 706
+ },
+ {
+ "type": "Rectangle",
+ "id": "ddcfe359-2530-437e-8de5-d24516fa0c13",
+ "label": "zone",
+ "components": [
+ "Zone",
+ "MoveTo"
+ ],
+ "Zone.hoverCallback": "() => this.onSenseiOver()",
+ "Zone.hoverOutCallback": "() => this.onSenseiOut()",
+ "MoveTo.x": "1096",
+ "MoveTo.y": "640",
+ "x": 1096,
+ "y": 490,
+ "alpha": 0.5,
+ "isFilled": true,
+ "fillColor": "#00ff00",
+ "width": 246,
+ "height": 217
+ },
+ {
+ "type": "Image",
+ "id": "f8368dcf-c97e-4fd6-8b91-a1e62e7bd9c1",
+ "label": "cards",
+ "scope": "CLASS",
+ "components": [
+ "Button"
+ ],
+ "Button.spriteName": "cards",
+ "Button.callback": "() => this.interface.loadWidget('NinjaProgress')",
+ "Button.activeFrame": false,
+ "Button.pixelPerfect": true,
+ "texture": {
+ "key": "dojo",
+ "frame": "cards"
+ },
+ "x": 1342,
+ "y": 819,
+ "originX": 0,
+ "originY": 0,
+ "visible": false
+ },
+ {
+ "type": "Image",
+ "id": "f254b723-f462-4cbf-b100-dadcf1b8e2a0",
+ "label": "cauldronBack",
+ "texture": {
+ "key": "dojo",
+ "frame": "cauldron/back"
+ },
+ "x": 918,
+ "y": 540,
+ "originX": 0,
+ "originY": 0
+ },
+ {
+ "type": "Sprite",
+ "id": "af14ada9-4962-47b2-a360-9f49189a5894",
+ "label": "cauldronSmoke",
+ "scope": "CLASS",
+ "texture": {
+ "key": "dojo",
+ "frame": "cauldron/smoke/smoke0001"
+ },
+ "x": 954,
+ "y": 511
+ },
+ {
+ "type": "Image",
+ "id": "cb465f3b-f7c4-491c-9b8b-035cccf288c1",
+ "label": "cauldronFront",
+ "texture": {
+ "key": "dojo",
+ "frame": "cauldron/front"
+ },
+ "x": 926,
+ "y": 550,
+ "originX": 0,
+ "originY": 0
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ }
+}
\ No newline at end of file
diff --git a/src/scenes/rooms/dojo/waddle/Waddle200.js b/src/scenes/rooms/dojo/waddle/Waddle200.js
new file mode 100644
index 00000000..c59ac331
--- /dev/null
+++ b/src/scenes/rooms/dojo/waddle/Waddle200.js
@@ -0,0 +1,93 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Button from "../../../components/Button";
+import ShowHint from "../../../components/ShowHint";
+import SeatPoint from "../../../shared_prefabs/seat/SeatPoint";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class Waddle200 extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {SeatPoint} */
+ this.done1;
+ /** @type {SeatPoint} */
+ this.done0;
+ /** @type {SeatPoint} */
+ this.seat1;
+ /** @type {SeatPoint} */
+ this.seat0;
+ /** @type {number} */
+ this.moveToX = 0;
+ /** @type {number} */
+ this.moveToY = 0;
+
+
+ // mat
+ const mat = scene.add.image(0, 0, "dojo", "mat/mat_2");
+ mat.setOrigin(0.5018450184501845, 0.5);
+ this.add(mat);
+
+ // done1
+ const done1 = new SeatPoint(scene, 51, -70);
+ done1.visible = false;
+ this.add(done1);
+
+ // done0
+ const done0 = new SeatPoint(scene, -49, -70);
+ done0.visible = false;
+ this.add(done0);
+
+ // seat1
+ const seat1 = new SeatPoint(scene, 71, -15);
+ seat1.visible = false;
+ this.add(seat1);
+
+ // seat0
+ const seat0 = new SeatPoint(scene, -60, -15);
+ seat0.visible = false;
+ this.add(seat0);
+
+ // mat (components)
+ const matButton = new Button(mat);
+ matButton.spriteName = "mat/mat_2";
+ matButton.activeFrame = false;
+ matButton.pixelPerfect = true;
+ const matShowHint = new ShowHint(mat);
+ matShowHint.text = "card_hint";
+
+ // seat1 (prefab fields)
+ seat1.sitFrame = 3;
+ seat1.donePoint = done1;
+
+ // seat0 (prefab fields)
+ seat0.sitFrame = 7;
+ seat0.donePoint = done0;
+
+ this.done1 = done1;
+ this.done0 = done0;
+ this.seat1 = seat1;
+ this.seat0 = seat0;
+
+ /* START-USER-CTR-CODE */
+
+ mat.on('pointerup', (pointer) => {
+ if (pointer.button !== 0) {
+ return
+ }
+
+ this.scene.world.client.sendMove(this.moveToX, this.moveToY)
+ })
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/rooms/dojo/waddle/Waddle200.scene b/src/scenes/rooms/dojo/waddle/Waddle200.scene
new file mode 100644
index 00000000..5cc71baa
--- /dev/null
+++ b/src/scenes/rooms/dojo/waddle/Waddle200.scene
@@ -0,0 +1,136 @@
+{
+ "id": "20915166-b810-4ea6-b9c1-62e694ee975c",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "92e98aa4-f6b1-4b7b-bee2-08bc6a7b7bef",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "Image",
+ "id": "dd831ee5-3fa1-4d8e-adf4-273bf9ac6372",
+ "label": "mat",
+ "components": [
+ "Button",
+ "ShowHint"
+ ],
+ "Button.spriteName": "mat/mat_2",
+ "Button.activeFrame": false,
+ "Button.pixelPerfect": true,
+ "ShowHint.text": "card_hint",
+ "texture": {
+ "key": "dojo",
+ "frame": "mat/mat_2"
+ },
+ "originX": 0.5018450184501845
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "8f21b06e-4da5-476f-b271-43aa77e5fe8a",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "done1",
+ "scope": "CLASS",
+ "x": 51,
+ "y": -70,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "8792809f-6079-417f-bf2c-dc42c7f25042",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "done0",
+ "scope": "CLASS",
+ "x": -49,
+ "y": -70,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "b3111e02-4116-43ee-98a5-e560f362f912",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint",
+ "visible"
+ ],
+ "label": "seat1",
+ "scope": "CLASS",
+ "sitFrame": 3,
+ "donePoint": "done1",
+ "x": 71,
+ "y": -15,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "996b84da-2630-4710-9b87-35e06176a0d1",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint",
+ "visible"
+ ],
+ "label": "seat0",
+ "scope": "CLASS",
+ "sitFrame": 7,
+ "donePoint": "done0",
+ "x": -60,
+ "y": -15,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ },
+ "prefabProperties": [
+ {
+ "name": "moveToX",
+ "label": "moveToX",
+ "tooltip": "moveToX",
+ "defValue": 0,
+ "customDefinition": false,
+ "type": {
+ "id": "number"
+ }
+ },
+ {
+ "name": "moveToY",
+ "label": "moveToY",
+ "tooltip": "moveToY",
+ "defValue": 0,
+ "customDefinition": false,
+ "type": {
+ "id": "number"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/rooms/dojo/waddle/Waddle201.js b/src/scenes/rooms/dojo/waddle/Waddle201.js
new file mode 100644
index 00000000..b2d9f364
--- /dev/null
+++ b/src/scenes/rooms/dojo/waddle/Waddle201.js
@@ -0,0 +1,95 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Button from "../../../components/Button";
+import ShowHint from "../../../components/ShowHint";
+import SeatPoint from "../../../shared_prefabs/seat/SeatPoint";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class Waddle201 extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {SeatPoint} */
+ this.done1;
+ /** @type {SeatPoint} */
+ this.done0;
+ /** @type {SeatPoint} */
+ this.seat1;
+ /** @type {SeatPoint} */
+ this.seat0;
+ /** @type {number} */
+ this.moveToX = 0;
+ /** @type {number} */
+ this.moveToY = 0;
+
+
+ this.scaleX = -1;
+
+ // mat
+ const mat = scene.add.image(0, 0, "dojo", "mat/mat_2");
+ mat.setOrigin(0.5018450184501845, 0.5);
+ this.add(mat);
+
+ // done1
+ const done1 = new SeatPoint(scene, -49, -70);
+ done1.visible = false;
+ this.add(done1);
+
+ // done0
+ const done0 = new SeatPoint(scene, 51, -70);
+ done0.visible = false;
+ this.add(done0);
+
+ // seat1
+ const seat1 = new SeatPoint(scene, -60, -15);
+ seat1.visible = false;
+ this.add(seat1);
+
+ // seat0
+ const seat0 = new SeatPoint(scene, 71, -15);
+ seat0.visible = false;
+ this.add(seat0);
+
+ // mat (components)
+ const matButton = new Button(mat);
+ matButton.spriteName = "mat/mat_2";
+ matButton.activeFrame = false;
+ matButton.pixelPerfect = true;
+ const matShowHint = new ShowHint(mat);
+ matShowHint.text = "card_hint";
+
+ // seat1 (prefab fields)
+ seat1.sitFrame = 7;
+ seat1.donePoint = done0;
+
+ // seat0 (prefab fields)
+ seat0.sitFrame = 7;
+ seat0.donePoint = done1;
+
+ this.done1 = done1;
+ this.done0 = done0;
+ this.seat1 = seat1;
+ this.seat0 = seat0;
+
+ /* START-USER-CTR-CODE */
+
+ mat.on('pointerup', (pointer) => {
+ if (pointer.button !== 0) {
+ return
+ }
+
+ this.scene.world.client.sendMove(this.moveToX, this.moveToY)
+ })
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/rooms/dojo/waddle/Waddle201.scene b/src/scenes/rooms/dojo/waddle/Waddle201.scene
new file mode 100644
index 00000000..74fdd14f
--- /dev/null
+++ b/src/scenes/rooms/dojo/waddle/Waddle201.scene
@@ -0,0 +1,137 @@
+{
+ "id": "7554bcf3-656c-48ed-97c0-e431350f8ba5",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "92e98aa4-f6b1-4b7b-bee2-08bc6a7b7bef",
+ "label": "container_1",
+ "scaleX": -1,
+ "list": [
+ {
+ "type": "Image",
+ "id": "dd831ee5-3fa1-4d8e-adf4-273bf9ac6372",
+ "label": "mat",
+ "components": [
+ "Button",
+ "ShowHint"
+ ],
+ "Button.spriteName": "mat/mat_2",
+ "Button.activeFrame": false,
+ "Button.pixelPerfect": true,
+ "ShowHint.text": "card_hint",
+ "texture": {
+ "key": "dojo",
+ "frame": "mat/mat_2"
+ },
+ "originX": 0.5018450184501845
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "c336d9d0-0e2b-4870-b1e8-2f5c9af610b1",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "done1",
+ "scope": "CLASS",
+ "x": -49,
+ "y": -70,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "28d94049-6730-4144-99b5-1c292edddc84",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "done0",
+ "scope": "CLASS",
+ "x": 51,
+ "y": -70,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "857d21c9-ecc6-4bdb-a431-92b238a712b0",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint",
+ "visible"
+ ],
+ "label": "seat1",
+ "scope": "CLASS",
+ "sitFrame": 7,
+ "donePoint": "done0",
+ "x": -60,
+ "y": -15,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "6221be4c-7fee-4007-96f7-1b1500e20dd7",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint",
+ "visible"
+ ],
+ "label": "seat0",
+ "scope": "CLASS",
+ "sitFrame": 7,
+ "donePoint": "done1",
+ "x": 71,
+ "y": -15,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ },
+ "prefabProperties": [
+ {
+ "name": "moveToX",
+ "label": "moveToX",
+ "tooltip": "moveToX",
+ "defValue": 0,
+ "customDefinition": false,
+ "type": {
+ "id": "number"
+ }
+ },
+ {
+ "name": "moveToY",
+ "label": "moveToY",
+ "tooltip": "moveToY",
+ "defValue": 0,
+ "customDefinition": false,
+ "type": {
+ "id": "number"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/rooms/dojo/waddle/Waddle202.js b/src/scenes/rooms/dojo/waddle/Waddle202.js
new file mode 100644
index 00000000..98ae59af
--- /dev/null
+++ b/src/scenes/rooms/dojo/waddle/Waddle202.js
@@ -0,0 +1,93 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Button from "../../../components/Button";
+import ShowHint from "../../../components/ShowHint";
+import SeatPoint from "../../../shared_prefabs/seat/SeatPoint";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class Waddle202 extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {SeatPoint} */
+ this.done1;
+ /** @type {SeatPoint} */
+ this.done0;
+ /** @type {SeatPoint} */
+ this.seat1;
+ /** @type {SeatPoint} */
+ this.seat0;
+ /** @type {number} */
+ this.moveToX = 0;
+ /** @type {number} */
+ this.moveToY = 0;
+
+
+ // mat
+ const mat = scene.add.image(0, 0, "dojo", "mat/mat_1");
+ mat.setOrigin(0.5018450184501845, 0.5);
+ this.add(mat);
+
+ // done1
+ const done1 = new SeatPoint(scene, 69, -78);
+ done1.visible = false;
+ this.add(done1);
+
+ // done0
+ const done0 = new SeatPoint(scene, -30, -78);
+ done0.visible = false;
+ this.add(done0);
+
+ // seat1
+ const seat1 = new SeatPoint(scene, 77, -16);
+ seat1.visible = false;
+ this.add(seat1);
+
+ // seat0
+ const seat0 = new SeatPoint(scene, -54, -16);
+ seat0.visible = false;
+ this.add(seat0);
+
+ // mat (components)
+ const matButton = new Button(mat);
+ matButton.spriteName = "mat/mat_1";
+ matButton.activeFrame = false;
+ matButton.pixelPerfect = true;
+ const matShowHint = new ShowHint(mat);
+ matShowHint.text = "card_hint";
+
+ // seat1 (prefab fields)
+ seat1.sitFrame = 3;
+ seat1.donePoint = done1;
+
+ // seat0 (prefab fields)
+ seat0.sitFrame = 7;
+ seat0.donePoint = done0;
+
+ this.done1 = done1;
+ this.done0 = done0;
+ this.seat1 = seat1;
+ this.seat0 = seat0;
+
+ /* START-USER-CTR-CODE */
+
+ mat.on('pointerup', (pointer) => {
+ if (pointer.button !== 0) {
+ return
+ }
+
+ this.scene.world.client.sendMove(this.moveToX, this.moveToY)
+ })
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/rooms/dojo/waddle/Waddle202.scene b/src/scenes/rooms/dojo/waddle/Waddle202.scene
new file mode 100644
index 00000000..b892ae6a
--- /dev/null
+++ b/src/scenes/rooms/dojo/waddle/Waddle202.scene
@@ -0,0 +1,136 @@
+{
+ "id": "d6d50181-a9a9-48b9-b4a2-6096b1ad8542",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "92e98aa4-f6b1-4b7b-bee2-08bc6a7b7bef",
+ "label": "container_1",
+ "list": [
+ {
+ "type": "Image",
+ "id": "dd831ee5-3fa1-4d8e-adf4-273bf9ac6372",
+ "label": "mat",
+ "components": [
+ "Button",
+ "ShowHint"
+ ],
+ "Button.spriteName": "mat/mat_1",
+ "Button.activeFrame": false,
+ "Button.pixelPerfect": true,
+ "ShowHint.text": "card_hint",
+ "texture": {
+ "key": "dojo",
+ "frame": "mat/mat_1"
+ },
+ "originX": 0.5018450184501845
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "15d4098a-2e57-4056-9c9e-14a81ad3362e",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "done1",
+ "scope": "CLASS",
+ "x": 69,
+ "y": -78,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "dbfd168d-a0ff-4e9b-a3c1-dc79843e1c10",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "done0",
+ "scope": "CLASS",
+ "x": -30,
+ "y": -78,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "e2529f8b-9377-4329-81b1-8038dbd04fcd",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint",
+ "visible"
+ ],
+ "label": "seat1",
+ "scope": "CLASS",
+ "sitFrame": 3,
+ "donePoint": "done1",
+ "x": 77,
+ "y": -16,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "c5ebb9a9-0910-4792-b474-60a809e6e3ee",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint",
+ "visible"
+ ],
+ "label": "seat0",
+ "scope": "CLASS",
+ "sitFrame": 7,
+ "donePoint": "done0",
+ "x": -54,
+ "y": -16,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ },
+ "prefabProperties": [
+ {
+ "name": "moveToX",
+ "label": "moveToX",
+ "tooltip": "moveToX",
+ "defValue": 0,
+ "customDefinition": false,
+ "type": {
+ "id": "number"
+ }
+ },
+ {
+ "name": "moveToY",
+ "label": "moveToY",
+ "tooltip": "moveToY",
+ "defValue": 0,
+ "customDefinition": false,
+ "type": {
+ "id": "number"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/rooms/dojo/waddle/Waddle203.js b/src/scenes/rooms/dojo/waddle/Waddle203.js
new file mode 100644
index 00000000..68feda0e
--- /dev/null
+++ b/src/scenes/rooms/dojo/waddle/Waddle203.js
@@ -0,0 +1,95 @@
+/* START OF COMPILED CODE */
+
+import BaseContainer from "../../../base/BaseContainer";
+import Button from "../../../components/Button";
+import ShowHint from "../../../components/ShowHint";
+import SeatPoint from "../../../shared_prefabs/seat/SeatPoint";
+/* START-USER-IMPORTS */
+/* END-USER-IMPORTS */
+
+export default class Waddle203 extends BaseContainer {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 0, y ?? 0);
+
+ /** @type {SeatPoint} */
+ this.done1;
+ /** @type {SeatPoint} */
+ this.done0;
+ /** @type {SeatPoint} */
+ this.seat1;
+ /** @type {SeatPoint} */
+ this.seat0;
+ /** @type {number} */
+ this.moveToX = 0;
+ /** @type {number} */
+ this.moveToY = 0;
+
+
+ this.scaleX = -1;
+
+ // mat
+ const mat = scene.add.image(0, 0, "dojo", "mat/mat_1");
+ mat.setOrigin(0.5018450184501845, 0.5);
+ this.add(mat);
+
+ // done1
+ const done1 = new SeatPoint(scene, -30, -78);
+ done1.visible = false;
+ this.add(done1);
+
+ // done0
+ const done0 = new SeatPoint(scene, 69, -78);
+ done0.visible = false;
+ this.add(done0);
+
+ // seat1
+ const seat1 = new SeatPoint(scene, -54, -16);
+ seat1.visible = false;
+ this.add(seat1);
+
+ // seat0
+ const seat0 = new SeatPoint(scene, 77, -16);
+ seat0.visible = false;
+ this.add(seat0);
+
+ // mat (components)
+ const matButton = new Button(mat);
+ matButton.spriteName = "mat/mat_1";
+ matButton.activeFrame = false;
+ matButton.pixelPerfect = true;
+ const matShowHint = new ShowHint(mat);
+ matShowHint.text = "card_hint";
+
+ // seat1 (prefab fields)
+ seat1.sitFrame = 3;
+ seat1.donePoint = done0;
+
+ // seat0 (prefab fields)
+ seat0.sitFrame = 7;
+ seat0.donePoint = done1;
+
+ this.done1 = done1;
+ this.done0 = done0;
+ this.seat1 = seat1;
+ this.seat0 = seat0;
+
+ /* START-USER-CTR-CODE */
+
+ mat.on('pointerup', (pointer) => {
+ if (pointer.button !== 0) {
+ return
+ }
+
+ this.scene.world.client.sendMove(this.moveToX, this.moveToY)
+ })
+
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/rooms/dojo/waddle/Waddle203.scene b/src/scenes/rooms/dojo/waddle/Waddle203.scene
new file mode 100644
index 00000000..4f623fac
--- /dev/null
+++ b/src/scenes/rooms/dojo/waddle/Waddle203.scene
@@ -0,0 +1,137 @@
+{
+ "id": "d60128ff-4079-4464-b688-dbdea3c52e20",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "autoImport": true,
+ "superClassName": "BaseContainer",
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "92e98aa4-f6b1-4b7b-bee2-08bc6a7b7bef",
+ "label": "container_1",
+ "scaleX": -1,
+ "list": [
+ {
+ "type": "Image",
+ "id": "dd831ee5-3fa1-4d8e-adf4-273bf9ac6372",
+ "label": "mat",
+ "components": [
+ "Button",
+ "ShowHint"
+ ],
+ "Button.spriteName": "mat/mat_1",
+ "Button.activeFrame": false,
+ "Button.pixelPerfect": true,
+ "ShowHint.text": "card_hint",
+ "texture": {
+ "key": "dojo",
+ "frame": "mat/mat_1"
+ },
+ "originX": 0.5018450184501845
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "dbfd168d-a0ff-4e9b-a3c1-dc79843e1c10",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "done1",
+ "scope": "CLASS",
+ "x": -30,
+ "y": -78,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "15d4098a-2e57-4056-9c9e-14a81ad3362e",
+ "unlock": [
+ "x",
+ "y",
+ "visible"
+ ],
+ "label": "done0",
+ "scope": "CLASS",
+ "x": 69,
+ "y": -78,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "c5ebb9a9-0910-4792-b474-60a809e6e3ee",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint",
+ "visible"
+ ],
+ "label": "seat1",
+ "scope": "CLASS",
+ "sitFrame": 3,
+ "donePoint": "done0",
+ "x": -54,
+ "y": -16,
+ "visible": false
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "e2529f8b-9377-4329-81b1-8038dbd04fcd",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint",
+ "visible"
+ ],
+ "label": "seat0",
+ "scope": "CLASS",
+ "sitFrame": 7,
+ "donePoint": "done1",
+ "x": 77,
+ "y": -16,
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 4
+ },
+ "prefabProperties": [
+ {
+ "name": "moveToX",
+ "label": "moveToX",
+ "tooltip": "moveToX",
+ "defValue": 0,
+ "customDefinition": false,
+ "type": {
+ "id": "number"
+ }
+ },
+ {
+ "name": "moveToY",
+ "label": "moveToY",
+ "tooltip": "moveToY",
+ "defValue": 0,
+ "customDefinition": false,
+ "type": {
+ "id": "number"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/scenes/rooms/dojoext/DojoExt.js b/src/scenes/rooms/dojoext/DojoExt.js
index 3a9e3302..ef75ca28 100644
--- a/src/scenes/rooms/dojoext/DojoExt.js
+++ b/src/scenes/rooms/dojoext/DojoExt.js
@@ -18,7 +18,7 @@ export default class DojoExt extends RoomScene {
this.roomTriggers = {
'map': () => this.interface.loadWidget('Map'),
- 'dojo': null,
+ 'dojo': () => this.triggerRoom(320, 400, 660),
'dojohide': null
}
diff --git a/src/scenes/shared_prefabs/tables/mancala/MancalaTable.js b/src/scenes/shared_prefabs/tables/mancala/MancalaTable.js
new file mode 100644
index 00000000..e70cff2a
--- /dev/null
+++ b/src/scenes/shared_prefabs/tables/mancala/MancalaTable.js
@@ -0,0 +1,78 @@
+import { Button, MoveTo, ShowHint } from '@components/components'
+
+import SeatPoint from '@scenes/shared_prefabs/seat/SeatPoint'
+
+
+/* START OF COMPILED CODE */
+
+export default class MancalaTable extends Phaser.GameObjects.Container {
+
+ constructor(scene, x, y) {
+ super(scene, x ?? 760, y ?? 480);
+
+ /** @type {Phaser.GameObjects.Image} */
+ this.game;
+ /** @type {SeatPoint} */
+ this.seat2;
+ /** @type {SeatPoint} */
+ this.seat1;
+
+
+ // table
+ const table = scene.add.image(0, 0, "book", "table/table");
+ table.setOrigin(0.5043478260869565, 0.4838709677419355);
+ this.add(table);
+
+ // game
+ const game = scene.add.image(-2, -29, "book", "table/game");
+ game.setOrigin(0.5046728971962616, 0.5102040816326531);
+ this.add(game);
+
+ // done2
+ const done2 = new SeatPoint(scene, -8, 89);
+ this.add(done2);
+
+ // done1
+ const done1 = new SeatPoint(scene, -114, 47);
+ this.add(done1);
+
+ // seat2
+ const seat2 = new SeatPoint(scene, 73, 22);
+ this.add(seat2);
+
+ // seat1
+ const seat1 = new SeatPoint(scene, -66, -29);
+ this.add(seat1);
+
+ // game (components)
+ const gameButton = new Button(game);
+ gameButton.spriteName = "table/game";
+ gameButton.activeFrame = false;
+ const gameMoveTo = new MoveTo(game);
+ gameMoveTo.x = this.x;
+ gameMoveTo.y = this.y;
+ const gameShowHint = new ShowHint(game);
+ gameShowHint.text = "mancala_hint";
+
+ // seat2 (prefab fields)
+ seat2.sitFrame = 20;
+ seat2.donePoint = done2;
+
+ // seat1 (prefab fields)
+ seat1.sitFrame = 24;
+ seat1.donePoint = done1;
+
+ this.game = game;
+ this.seat2 = seat2;
+ this.seat1 = seat1;
+
+ /* START-USER-CTR-CODE */
+ /* END-USER-CTR-CODE */
+ }
+
+
+ /* START-USER-CODE */
+ /* END-USER-CODE */
+}
+
+/* END OF COMPILED CODE */
diff --git a/src/scenes/shared_prefabs/tables/mancala/MancalaTable.scene b/src/scenes/shared_prefabs/tables/mancala/MancalaTable.scene
new file mode 100644
index 00000000..87b9ef19
--- /dev/null
+++ b/src/scenes/shared_prefabs/tables/mancala/MancalaTable.scene
@@ -0,0 +1,135 @@
+{
+ "id": "a31bdfcd-9fee-4e6e-b421-7edb8b8c7008",
+ "sceneType": "PREFAB",
+ "settings": {
+ "compilerInsertSpaces": true,
+ "javaScriptInitFieldsInConstructor": true,
+ "exportClass": true,
+ "preloadMethodName": "",
+ "preloadPackFiles": [],
+ "createMethodName": "",
+ "borderWidth": 1520,
+ "borderHeight": 960
+ },
+ "displayList": [
+ {
+ "type": "Container",
+ "id": "1ea9b4a8-891e-41b1-9e51-dc480b7d635c",
+ "label": "container_1",
+ "components": [],
+ "x": 760,
+ "y": 480,
+ "list": [
+ {
+ "type": "Image",
+ "id": "1be28fd3-9b42-4599-84e2-c2a1f87246a2",
+ "label": "table",
+ "components": [],
+ "texture": {
+ "key": "book",
+ "frame": "table/table"
+ },
+ "originX": 0.5043478260869565,
+ "originY": 0.4838709677419355
+ },
+ {
+ "type": "Image",
+ "id": "e5ab1cc4-03c9-4f3f-af98-c434b0b7d459",
+ "label": "game",
+ "scope": "CLASS",
+ "components": [
+ "Button",
+ "MoveTo",
+ "ShowHint"
+ ],
+ "Button.spriteName": "table/game",
+ "Button.activeFrame": false,
+ "MoveTo.x": "this.x",
+ "MoveTo.y": "this.y",
+ "ShowHint.text": "mancala_hint",
+ "texture": {
+ "key": "book",
+ "frame": "table/game"
+ },
+ "x": -2,
+ "y": -29,
+ "originX": 0.5046728971962616,
+ "originY": 0.5102040816326531
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "6912ed84-8287-4eb7-9cb7-18e74c7e37a8",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "done2",
+ "components": [],
+ "x": -8,
+ "y": 89,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "6bd50828-cf73-4817-ac81-da6521228aa6",
+ "unlock": [
+ "x",
+ "y"
+ ],
+ "label": "done1",
+ "components": [],
+ "x": -114,
+ "y": 47,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "1977c67d-f603-4e04-aca6-72a5efe07015",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint"
+ ],
+ "label": "seat2",
+ "scope": "CLASS",
+ "sitFrame": 20,
+ "donePoint": "done2",
+ "components": [],
+ "x": 73,
+ "y": 22,
+ "nestedPrefabs": [],
+ "list": []
+ },
+ {
+ "prefabId": "3d402c83-0ef8-4993-bf56-3e076074ec9e",
+ "id": "2134e9a9-d340-4e4d-a453-d487de816890",
+ "unlock": [
+ "x",
+ "y",
+ "sitFrame",
+ "donePoint"
+ ],
+ "label": "seat1",
+ "scope": "CLASS",
+ "sitFrame": 24,
+ "donePoint": "done1",
+ "components": [],
+ "x": -66,
+ "y": -29,
+ "nestedPrefabs": [],
+ "list": []
+ }
+ ]
+ }
+ ],
+ "plainObjects": [],
+ "meta": {
+ "app": "Phaser Editor 2D - Scene Editor",
+ "url": "https://phasereditor2d.com",
+ "contentType": "phasereditor2d.core.scene.SceneContentType",
+ "version": 3
+ }
+}
\ No newline at end of file
diff --git a/webpack.config.js b/webpack.config.js
index a4122eae..7517b6ef 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -24,8 +24,14 @@ let config = {
},
devServer: {
static: {
- directory: path.join(__dirname),
- publicPath: '/'
+ directory: path.resolve(__dirname),
+ publicPath: '/',
+ watch: {
+ ignored: [
+ path.resolve(__dirname, '.git'),
+ path.resolve(__dirname, 'node_modules')
+ ]
+ }
},
devMiddleware: {
writeToDisk: true