diff --git a/.eslintrc.json b/.eslintrc.json
index 592c053ef..a760820a1 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -16,6 +16,7 @@
"import/no-unresolved": "off",
"@typescript-eslint/switch-exhaustiveness-check": "error",
"@typescript-eslint/no-inferrable-types": "off",
- "eqeqeq": "error"
+ "eqeqeq": "error",
+ "camelcase": "warn"
}
}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e9080e2f2..dff30e399 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,6 @@
-# Contributing to CosmosJourneyer
+# Contributing to Cosmos Journeyer
-CosmosJourneyer is an open source project and contributions are welcome! There is too much to do for one person alone. If you want to contribute, please read the following guidelines first.
+Cosmos Journeyer is an open source project and contributions are welcome! There is too much to do for one person alone. If you want to contribute, please read the following guidelines first.
## How to contribute
@@ -31,7 +31,7 @@ Code that does not pass the linter or the unit tests will not be merged.
## Contribution ideas
-There is still plenty to do on CosmosJourneyer. Here are some ideas of contributions you can make (with stars indicating the difficulty of the task):
+There is still plenty to do on Cosmos Journeyer. Here are some ideas of contributions you can make (with stars indicating the difficulty of the task):
### Visuals
diff --git a/README.md b/README.md
index 6a80a168c..a534828e8 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
-# CosmosJourneyer
+# Cosmos Journeyer
[![NodeJS with Webpack](https://github.com/BarthPaleologue/planetEngine/actions/workflows/webpack.yml/badge.svg)](https://github.com/BarthPaleologue/planetEngine/actions/workflows/webpack.yml)
[![pages-build-deployment](https://github.com/BarthPaleologue/planetEngine/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/BarthPaleologue/planetEngine/actions/workflows/pages/pages-build-deployment)
[![Jest Coverage](https://github.com/BarthPaleologue/CosmosJourneyer/actions/workflows/tests.yml/badge.svg)](https://github.com/BarthPaleologue/CosmosJourneyer/actions/workflows/tests.yml)
[![License](https://img.shields.io/github/license/BarthPaleologue/planetEngine)](./LICENSE.md)
-CosmosJourneyer is the procedural universe running inside a web page that makes space exploration accessible for everyone.
+Cosmos Journeyer is the procedural universe running inside a web page that makes space exploration accessible for everyone.
The main website of the project is online at https://cosmosjourneyer.com/
@@ -33,7 +33,7 @@ Every telluric planet and moon has a surface that can be explored by the player
![From Space](./coverImages/space.png)
-CosmosJourneyer allows to travel from one celestial body to another without any loading screen, giving the player a seamless experience while exploring.
+Cosmos Journeyer allows to travel from one celestial body to another without any loading screen, giving the player a seamless experience while exploring.
![A little bit closer](./coverImages/moon.png)
@@ -41,13 +41,13 @@ Planet surfaces are filled with procedural vegetation and rocks and butterflies
![On the surface](./coverImages/ground.png)
-CosmosJourneyer generates a virtually infinite amount of star systems that all have a star, often planets, and sometimes moons.
+Cosmos Journeyer generates a virtually infinite amount of star systems that all have a star, often planets, and sometimes moons.
![Star map](./coverImages/starmap.png)
## Contributors
-Thank you to all the people who have contributed to CosmosJourneyer!
+Thank you to all the people who have contributed to Cosmos Journeyer!
![Contributors](https://contrib.rocks/image?repo=BarthPaleologue/CosmosJourneyer)
diff --git a/package.json b/package.json
index 19158d140..af323bba6 100644
--- a/package.json
+++ b/package.json
@@ -1,20 +1,20 @@
{
"devDependencies": {
- "@babel/preset-env": "^7.23.8",
+ "@babel/preset-env": "^7.23.9",
"@babel/preset-typescript": "^7.23.3",
- "@babylonjs/core": "^6.39.0",
- "@babylonjs/gui": "^6.39.0",
- "@babylonjs/havok": "^1.3.0",
- "@babylonjs/loaders": "^6.39.0",
+ "@babylonjs/core": "^6.42.0",
+ "@babylonjs/gui": "^6.42.0",
+ "@babylonjs/havok": "^1.3.1",
+ "@babylonjs/loaders": "^6.42.0",
"@jest/types": "^29.6.3",
- "@types/jest": "^29.5.11",
+ "@types/jest": "^29.5.12",
"@types/seedrandom": "^3.0.8",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"@webpack-cli/generators": "^3.0.7",
"babel": "^6.23.0",
"babel-jest": "^29.7.0",
- "css-loader": "^6.9.1",
+ "css-loader": "^6.10.0",
"eslint": "^8.56.0",
"eslint-plugin-import": "^2.29.1",
"extended-random": "^1.2.2",
@@ -26,7 +26,7 @@
"http-server": "^14.1.1",
"jest": "^29.7.0",
"jest-transform-stub": "^2.0.0",
- "mini-css-extract-plugin": "^2.7.7",
+ "mini-css-extract-plugin": "^2.8.0",
"ml-matrix": "^6.11.0",
"prettier": "^2.8.8",
"raw-loader": "^4.0.2",
@@ -35,18 +35,20 @@
"squirrel-noise": "^1.0.0",
"style-loader": "^3.3.4",
"terrain-generation": "^1.8.0",
- "ts-jest": "^29.1.1",
+ "ts-jest": "^29.1.2",
"ts-loader": "^9.5.1",
"ts-node": "^10.9.2",
"ts-shader-loader": "^2.0.2",
- "typedoc": "^0.24.8",
- "typescript": "^5.1.6",
- "typescript-plugin-css-modules": "^5.0.2",
- "webpack": "^5.89.0",
+ "typedoc": "^0.25.8",
+ "typedoc-material-theme": "^1.0.2",
+ "typedoc-plugin-missing-exports": "^2.2.0",
+ "typescript": "^5.3.3",
+ "typescript-plugin-css-modules": "^5.1.0",
+ "webpack": "^5.90.1",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1"
},
- "version": "1.4.2",
+ "version": "1.5.0",
"description": "CosmosJourneyer",
"name": "cosmos-journeyer",
"scripts": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 196b5d187..b9c738c04 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,50 +6,50 @@ settings:
devDependencies:
'@babel/preset-env':
- specifier: ^7.23.8
- version: 7.23.8(@babel/core@7.23.7)
+ specifier: ^7.23.9
+ version: 7.23.9(@babel/core@7.23.9)
'@babel/preset-typescript':
specifier: ^7.23.3
- version: 7.23.3(@babel/core@7.23.7)
+ version: 7.23.3(@babel/core@7.23.9)
'@babylonjs/core':
- specifier: ^6.39.0
- version: 6.39.0
+ specifier: ^6.42.0
+ version: 6.42.0
'@babylonjs/gui':
- specifier: ^6.39.0
- version: 6.39.0(@babylonjs/core@6.39.0)
+ specifier: ^6.42.0
+ version: 6.42.0(@babylonjs/core@6.42.0)
'@babylonjs/havok':
- specifier: ^1.3.0
- version: 1.3.0
+ specifier: ^1.3.1
+ version: 1.3.1
'@babylonjs/loaders':
- specifier: ^6.39.0
- version: 6.39.0(@babylonjs/core@6.39.0)(babylonjs-gltf2interface@6.39.0)
+ specifier: ^6.42.0
+ version: 6.42.0(@babylonjs/core@6.42.0)(babylonjs-gltf2interface@6.42.0)
'@jest/types':
specifier: ^29.6.3
version: 29.6.3
'@types/jest':
- specifier: ^29.5.11
- version: 29.5.11
+ specifier: ^29.5.12
+ version: 29.5.12
'@types/seedrandom':
specifier: ^3.0.8
version: 3.0.8
'@typescript-eslint/eslint-plugin':
specifier: ^5.62.0
- version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.1.6)
+ version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: ^5.62.0
- version: 5.62.0(eslint@8.56.0)(typescript@5.1.6)
+ version: 5.62.0(eslint@8.56.0)(typescript@5.3.3)
'@webpack-cli/generators':
specifier: ^3.0.7
- version: 3.0.7(prettier@2.8.8)(webpack-cli@5.1.4)(webpack@5.89.0)
+ version: 3.0.7(prettier@2.8.8)(webpack-cli@5.1.4)(webpack@5.90.1)
babel:
specifier: ^6.23.0
version: 6.23.0
babel-jest:
specifier: ^29.7.0
- version: 29.7.0(@babel/core@7.23.7)
+ version: 29.7.0(@babel/core@7.23.9)
css-loader:
- specifier: ^6.9.1
- version: 6.9.1(webpack@5.89.0)
+ specifier: ^6.10.0
+ version: 6.10.0(webpack@5.90.1)
eslint:
specifier: ^8.56.0
version: 8.56.0
@@ -70,22 +70,22 @@ devDependencies:
version: 1.3.1
html-loader:
specifier: ^4.2.0
- version: 4.2.0(webpack@5.89.0)
+ version: 4.2.0(webpack@5.90.1)
html-webpack-plugin:
specifier: ^5.6.0
- version: 5.6.0(webpack@5.89.0)
+ version: 5.6.0(webpack@5.90.1)
http-server:
specifier: ^14.1.1
version: 14.1.1
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.11.5)(ts-node@10.9.2)
+ version: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2)
jest-transform-stub:
specifier: ^2.0.0
version: 2.0.0
mini-css-extract-plugin:
- specifier: ^2.7.7
- version: 2.7.7(webpack@5.89.0)
+ specifier: ^2.8.0
+ version: 2.8.0(webpack@5.90.1)
ml-matrix:
specifier: ^6.11.0
version: 6.11.0
@@ -94,52 +94,58 @@ devDependencies:
version: 2.8.8
raw-loader:
specifier: ^4.0.2
- version: 4.0.2(webpack@5.89.0)
+ version: 4.0.2(webpack@5.90.1)
sass:
specifier: ^1.70.0
version: 1.70.0
sass-loader:
specifier: ^13.3.3
- version: 13.3.3(sass@1.70.0)(webpack@5.89.0)
+ version: 13.3.3(sass@1.70.0)(webpack@5.90.1)
squirrel-noise:
specifier: ^1.0.0
version: 1.0.0
style-loader:
specifier: ^3.3.4
- version: 3.3.4(webpack@5.89.0)
+ version: 3.3.4(webpack@5.90.1)
terrain-generation:
specifier: ^1.8.0
version: 1.8.0
ts-jest:
- specifier: ^29.1.1
- version: 29.1.1(@babel/core@7.23.7)(@jest/types@29.6.3)(babel-jest@29.7.0)(jest@29.7.0)(typescript@5.1.6)
+ specifier: ^29.1.2
+ version: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0)(jest@29.7.0)(typescript@5.3.3)
ts-loader:
specifier: ^9.5.1
- version: 9.5.1(typescript@5.1.6)(webpack@5.89.0)
+ version: 9.5.1(typescript@5.3.3)(webpack@5.90.1)
ts-node:
specifier: ^10.9.2
- version: 10.9.2(@types/node@20.11.5)(typescript@5.1.6)
+ version: 10.9.2(@types/node@20.11.17)(typescript@5.3.3)
ts-shader-loader:
specifier: ^2.0.2
version: 2.0.2
typedoc:
- specifier: ^0.24.8
- version: 0.24.8(typescript@5.1.6)
+ specifier: ^0.25.8
+ version: 0.25.8(typescript@5.3.3)
+ typedoc-material-theme:
+ specifier: ^1.0.2
+ version: 1.0.2(typedoc@0.25.8)
+ typedoc-plugin-missing-exports:
+ specifier: ^2.2.0
+ version: 2.2.0(typedoc@0.25.8)
typescript:
- specifier: ^5.1.6
- version: 5.1.6
+ specifier: ^5.3.3
+ version: 5.3.3
typescript-plugin-css-modules:
- specifier: ^5.0.2
- version: 5.0.2(ts-node@10.9.2)(typescript@5.1.6)
+ specifier: ^5.1.0
+ version: 5.1.0(ts-node@10.9.2)(typescript@5.3.3)
webpack:
- specifier: ^5.89.0
- version: 5.89.0(webpack-cli@5.1.4)
+ specifier: ^5.90.1
+ version: 5.90.1(webpack-cli@5.1.4)
webpack-cli:
specifier: ^5.1.4
- version: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.89.0)
+ version: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.90.1)
webpack-dev-server:
specifier: ^4.15.1
- version: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0)
+ version: 4.15.1(webpack-cli@5.1.4)(webpack@5.90.1)
packages:
@@ -148,8 +154,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /@adobe/css-tools@4.3.2:
- resolution: {integrity: sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==}
+ /@adobe/css-tools@4.3.3:
+ resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==}
dev: true
/@ampproject/remapping@2.2.1:
@@ -157,7 +163,7 @@ packages:
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.21
+ '@jridgewell/trace-mapping': 0.3.22
dev: true
/@babel/code-frame@7.23.5:
@@ -173,20 +179,20 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /@babel/core@7.23.7:
- resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==}
+ /@babel/core@7.23.9:
+ resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.1
'@babel/code-frame': 7.23.5
'@babel/generator': 7.23.6
'@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7)
- '@babel/helpers': 7.23.8
- '@babel/parser': 7.23.6
- '@babel/template': 7.22.15
- '@babel/traverse': 7.23.7
- '@babel/types': 7.23.6
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
+ '@babel/helpers': 7.23.9
+ '@babel/parser': 7.23.9
+ '@babel/template': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@@ -200,9 +206,9 @@ packages:
resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
'@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.21
+ '@jridgewell/trace-mapping': 0.3.22
jsesc: 2.5.2
dev: true
@@ -210,14 +216,14 @@ packages:
resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-compilation-targets@7.23.6:
@@ -226,62 +232,47 @@ packages:
dependencies:
'@babel/compat-data': 7.23.5
'@babel/helper-validator-option': 7.23.5
- browserslist: 4.22.2
+ browserslist: 4.22.3
lru-cache: 5.1.1
semver: 6.3.1
dev: true
- /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7):
- resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==}
+ /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9):
+ resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-member-expression-to-functions': 7.23.0
'@babel/helper-optimise-call-expression': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7)
+ '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9)
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
semver: 6.3.1
dev: true
- /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7):
+ /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9):
resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-annotate-as-pure': 7.22.5
regexpu-core: 5.3.2
semver: 6.3.1
dev: true
- /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7):
- resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==}
- peerDependencies:
- '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- debug: 4.3.4
- lodash.debounce: 4.0.8
- resolve: 1.22.8
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.7):
+ /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9):
resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.22.5
debug: 4.3.4
@@ -300,38 +291,38 @@ packages:
resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.22.15
- '@babel/types': 7.23.6
+ '@babel/template': 7.23.9
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-hoist-variables@7.22.5:
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-member-expression-to-functions@7.23.0:
resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-module-imports@7.22.15:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
- /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7):
+ /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-module-imports': 7.22.15
'@babel/helper-simple-access': 7.22.5
@@ -343,7 +334,7 @@ packages:
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-plugin-utils@7.22.5:
@@ -351,25 +342,25 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7):
+ /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9):
resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-wrap-function': 7.22.20
dev: true
- /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7):
+ /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9):
resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-member-expression-to-functions': 7.23.0
'@babel/helper-optimise-call-expression': 7.22.5
@@ -379,21 +370,21 @@ packages:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-skip-transparent-expression-wrappers@7.22.5:
resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-split-export-declaration@7.22.6:
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-string-parser@7.23.4:
@@ -416,17 +407,17 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-function-name': 7.23.0
- '@babel/template': 7.22.15
- '@babel/types': 7.23.6
+ '@babel/template': 7.23.9
+ '@babel/types': 7.23.9
dev: true
- /@babel/helpers@7.23.8:
- resolution: {integrity: sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==}
+ /@babel/helpers@7.23.9:
+ resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.22.15
- '@babel/traverse': 7.23.7
- '@babel/types': 7.23.6
+ '@babel/template': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
transitivePeerDependencies:
- supports-color
dev: true
@@ -440,937 +431,937 @@ packages:
js-tokens: 4.0.0
dev: true
- /@babel/parser@7.23.6:
- resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==}
+ /@babel/parser@7.23.9:
+ resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
- /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.13.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7)
+ '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9)
dev: true
- /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7):
+ /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9):
resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7):
+ /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9):
resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
dev: true
- /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7):
+ /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9):
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.9):
resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7):
+ /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9):
resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7):
+ /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9):
resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9):
resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9):
resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7):
+ /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9):
resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9):
resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7):
+ /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9):
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9):
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7):
+ /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9):
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9):
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9):
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9):
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7):
+ /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9):
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7):
+ /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9):
resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7):
+ /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9):
resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7):
- resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==}
+ /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9):
+ resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7)
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-module-imports': 7.22.15
'@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7)
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.7):
+ /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9):
resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7)
+ '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9)
'@babel/helper-split-export-declaration': 7.22.6
globals: 11.12.0
dev: true
- /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/template': 7.22.15
+ '@babel/template': 7.23.9
dev: true
- /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7):
+ /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9):
resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
dev: true
- /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-function-name': 7.23.0
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
'@babel/helper-simple-access': 7.22.5
dev: true
- /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7):
- resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==}
+ /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9):
+ resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7)
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
'@babel/helper-validator-identifier': 7.22.20
dev: true
- /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7):
+ /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9):
resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/compat-data': 7.23.5
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7)
+ '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@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/core@7.23.7)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7):
+ /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7)
+ '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
regenerator-transform: 0.15.2
dev: true
- /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
dev: true
- /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.7):
+ /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.9):
resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7)
+ '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7)
+ '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9)
dev: true
- /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7):
+ /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/preset-env@7.23.8(@babel/core@7.23.7):
- resolution: {integrity: sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==}
+ /@babel/preset-env@7.23.9(@babel/core@7.23.9):
+ resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/compat-data': 7.23.5
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.22.5
'@babel/helper-validator-option': 7.23.5
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7)
- '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7)
- '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.7)
- '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7)
- '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7)
- '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7)
- '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7)
- babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.7)
- babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7)
- babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.7)
- core-js-compat: 3.35.0
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9)
+ '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9)
+ '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9)
+ '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9)
+ '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9)
+ '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9)
+ '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9)
+ '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9)
+ babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9)
+ babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9)
+ babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9)
+ core-js-compat: 3.35.1
semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7):
+ /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9):
resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
peerDependencies:
'@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
esutils: 2.0.3
dev: true
- /@babel/preset-typescript@7.23.3(@babel/core@7.23.7):
+ /@babel/preset-typescript@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.22.5
'@babel/helper-validator-option': 7.23.5
- '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7)
+ '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9)
dev: true
/@babel/regjsgen@0.8.0:
resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
dev: true
- /@babel/runtime@7.23.8:
- resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==}
+ /@babel/runtime@7.23.9:
+ resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.1
dev: true
- /@babel/template@7.22.15:
- resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
+ /@babel/template@7.23.9:
+ resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.23.5
- '@babel/parser': 7.23.6
- '@babel/types': 7.23.6
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
dev: true
- /@babel/traverse@7.23.7:
- resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==}
+ /@babel/traverse@7.23.9:
+ resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.23.5
@@ -1379,16 +1370,16 @@ packages:
'@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.6
- '@babel/types': 7.23.6
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/types@7.23.6:
- resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==}
+ /@babel/types@7.23.9:
+ resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.23.4
@@ -1396,32 +1387,32 @@ packages:
to-fast-properties: 2.0.0
dev: true
- /@babylonjs/core@6.39.0:
- resolution: {integrity: sha512-ZlE/vyeEdUp3sXnkhRg282sGn+UnEy5wutg2Ng2ttRLj+RD4PusRn9avAmkr/W4Ms6pAUnDw2rTv3+nFF0inBA==}
+ /@babylonjs/core@6.42.0:
+ resolution: {integrity: sha512-HNffInqQilrjrbKzjUv1iW5XdN31G8rw/FT5Lk/IlD6wK9vwSjxXaFUn5qCTCNUkGhU8gzpyxHrhsFtpy1X1yA==}
dev: true
- /@babylonjs/gui@6.39.0(@babylonjs/core@6.39.0):
- resolution: {integrity: sha512-ggtJVtyC3FTizApdi3Chd8Ge2BTf+J4PdoMa6Hn2+AmrMPseXmCq4K91psOBXl8gLAKZvzhvF8bInbTM2XYoog==}
+ /@babylonjs/gui@6.42.0(@babylonjs/core@6.42.0):
+ resolution: {integrity: sha512-CkzIvGHIFTM5vQK2IWigimKx19Imx2PnLKXDa6Q1shCQMk4TvuuLJ71fBhGToSiTrWngdcwI9tolQSktZlkpHw==}
peerDependencies:
'@babylonjs/core': ^6.0.0
dependencies:
- '@babylonjs/core': 6.39.0
+ '@babylonjs/core': 6.42.0
dev: true
- /@babylonjs/havok@1.3.0:
- resolution: {integrity: sha512-mnSe/0A+JJ1vVjDOd1MkysLOW6WB96n3+ALiGTTXzhDLRfMEjG7P8+qC9SL+TSWj2HgaiDzpwsMDZjqLBDIdWw==}
+ /@babylonjs/havok@1.3.1:
+ resolution: {integrity: sha512-ctaAQ2RN7hzE2vukGiA27//08YE4RNqH4RN26fCd8q0q7Qn+pXg4P61ZgakWYox/YS4VqHrB3ovZUDtPt2Scxg==}
dependencies:
'@types/emscripten': 1.39.10
dev: true
- /@babylonjs/loaders@6.39.0(@babylonjs/core@6.39.0)(babylonjs-gltf2interface@6.39.0):
- resolution: {integrity: sha512-ohFjqpjnDCvdqkSQYJfM4v4nJAYERpCWCI0SD0UOayQYQFcCbHRa0yKowMXynqbtMrUTsrEyK0wi+3NrZnYBxw==}
+ /@babylonjs/loaders@6.42.0(@babylonjs/core@6.42.0)(babylonjs-gltf2interface@6.42.0):
+ resolution: {integrity: sha512-lbc5SsE4znUVyM+IA4mgmSCKT7GI/6Trf5+zgXGBN6INbBbMgfoRw01/fj6RSxZrDtrCYWE9a2xyw5fogaxoWA==}
peerDependencies:
'@babylonjs/core': ^6.0.0
babylonjs-gltf2interface: ^6.0.0
dependencies:
- '@babylonjs/core': 6.39.0
- babylonjs-gltf2interface: 6.39.0
+ '@babylonjs/core': 6.42.0
+ babylonjs-gltf2interface: 6.42.0
dev: true
/@bcoe/v8-coverage@0.2.3:
@@ -1470,7 +1461,7 @@ packages:
debug: 4.3.4
espree: 9.6.1
globals: 13.24.0
- ignore: 5.3.0
+ ignore: 5.3.1
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@@ -1545,7 +1536,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
@@ -1566,14 +1557,14 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.9.0
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@20.11.5)(ts-node@10.9.2)
+ jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -1601,7 +1592,7 @@ packages:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
jest-mock: 29.7.0
dev: true
@@ -1628,7 +1619,7 @@ packages:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -1660,8 +1651,8 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.21
- '@types/node': 20.11.5
+ '@jridgewell/trace-mapping': 0.3.22
+ '@types/node': 20.11.17
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit: 0.1.2
@@ -1694,7 +1685,7 @@ packages:
resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jridgewell/trace-mapping': 0.3.21
+ '@jridgewell/trace-mapping': 0.3.22
callsites: 3.1.0
graceful-fs: 4.2.11
dev: true
@@ -1723,9 +1714,9 @@ packages:
resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.21
+ '@jridgewell/trace-mapping': 0.3.22
babel-plugin-istanbul: 6.1.1
chalk: 4.1.2
convert-source-map: 2.0.0
@@ -1749,7 +1740,7 @@ packages:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
'@types/yargs': 17.0.32
chalk: 4.1.2
dev: true
@@ -1760,7 +1751,7 @@ packages:
dependencies:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.15
- '@jridgewell/trace-mapping': 0.3.21
+ '@jridgewell/trace-mapping': 0.3.22
dev: true
/@jridgewell/resolve-uri@3.1.1:
@@ -1777,15 +1768,15 @@ packages:
resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
dependencies:
'@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.21
+ '@jridgewell/trace-mapping': 0.3.22
dev: true
/@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
dev: true
- /@jridgewell/trace-mapping@0.3.21:
- resolution: {integrity: sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==}
+ /@jridgewell/trace-mapping@0.3.22:
+ resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==}
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
@@ -1802,6 +1793,10 @@ packages:
resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
dev: true
+ /@material/material-color-utilities@0.2.7:
+ resolution: {integrity: sha512-0FCeqG6WvK4/Cc06F/xXMd/pv4FeisI0c1tUpBbfhA2n9Y8eZEv4Karjbmf2ZqQCPUWMrGp8A571tCjizxoTiQ==}
+ dev: true
+
/@nodelib/fs.scandir@2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -1820,7 +1815,7 @@ packages:
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.16.0
+ fastq: 1.17.1
dev: true
/@npmcli/arborist@4.3.1:
@@ -1856,7 +1851,7 @@ packages:
read-package-json-fast: 2.0.3
readdir-scoped-modules: 1.1.0
rimraf: 3.0.2
- semver: 7.5.4
+ semver: 7.6.0
ssri: 8.0.1
treeverse: 1.0.4
walk-up-path: 1.0.0
@@ -1869,7 +1864,7 @@ packages:
resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
dependencies:
'@gar/promisify': 1.1.3
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/@npmcli/fs@2.1.2:
@@ -1877,14 +1872,14 @@ packages:
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
dependencies:
'@gar/promisify': 1.1.3
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/@npmcli/fs@3.1.0:
resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
dependencies:
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/@npmcli/git@2.1.0:
@@ -1896,7 +1891,7 @@ packages:
npm-pick-manifest: 6.1.1
promise-inflight: 1.0.1
promise-retry: 2.0.1
- semver: 7.5.4
+ semver: 7.6.0
which: 2.0.2
transitivePeerDependencies:
- bluebird
@@ -1912,7 +1907,7 @@ packages:
proc-log: 3.0.0
promise-inflight: 1.0.1
promise-retry: 2.0.1
- semver: 7.5.4
+ semver: 7.6.0
which: 3.0.1
transitivePeerDependencies:
- bluebird
@@ -1953,7 +1948,7 @@ packages:
cacache: 15.3.0
json-parse-even-better-errors: 2.3.1
pacote: 12.0.3
- semver: 7.5.4
+ semver: 7.6.0
transitivePeerDependencies:
- bluebird
- supports-color
@@ -2186,8 +2181,8 @@ packages:
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
dev: true
- /@sinonjs/commons@3.0.0:
- resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==}
+ /@sinonjs/commons@3.0.1:
+ resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
dependencies:
type-detect: 4.0.8
dev: true
@@ -2195,7 +2190,7 @@ packages:
/@sinonjs/fake-timers@10.3.0:
resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
dependencies:
- '@sinonjs/commons': 3.0.0
+ '@sinonjs/commons': 3.0.1
dev: true
/@tootallnate/once@1.1.2:
@@ -2240,8 +2235,8 @@ packages:
/@types/babel__core@7.20.5:
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
dependencies:
- '@babel/parser': 7.23.6
- '@babel/types': 7.23.6
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
'@types/babel__generator': 7.6.8
'@types/babel__template': 7.4.4
'@types/babel__traverse': 7.20.5
@@ -2250,46 +2245,46 @@ packages:
/@types/babel__generator@7.6.8:
resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@types/babel__template@7.4.4:
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
dependencies:
- '@babel/parser': 7.23.6
- '@babel/types': 7.23.6
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
dev: true
/@types/babel__traverse@7.20.5:
resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@types/body-parser@1.19.5:
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
dependencies:
'@types/connect': 3.4.38
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/bonjour@3.5.13:
resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/connect-history-api-fallback@1.5.4:
resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
dependencies:
- '@types/express-serve-static-core': 4.17.41
- '@types/node': 20.11.5
+ '@types/express-serve-static-core': 4.17.43
+ '@types/node': 20.11.17
dev: true
/@types/connect@3.4.38:
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/emscripten@1.39.10:
@@ -2318,10 +2313,10 @@ packages:
resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
dev: true
- /@types/express-serve-static-core@4.17.41:
- resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==}
+ /@types/express-serve-static-core@4.17.43:
+ resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
'@types/qs': 6.9.11
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -2331,7 +2326,7 @@ packages:
resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
dependencies:
'@types/body-parser': 1.19.5
- '@types/express-serve-static-core': 4.17.41
+ '@types/express-serve-static-core': 4.17.43
'@types/qs': 6.9.11
'@types/serve-static': 1.15.5
dev: true
@@ -2339,7 +2334,7 @@ packages:
/@types/graceful-fs@4.1.9:
resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/html-minifier-terser@6.1.0:
@@ -2353,7 +2348,7 @@ packages:
/@types/http-proxy@1.17.14:
resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/istanbul-lib-coverage@2.0.6:
@@ -2372,8 +2367,8 @@ packages:
'@types/istanbul-lib-report': 3.0.3
dev: true
- /@types/jest@29.5.11:
- resolution: {integrity: sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==}
+ /@types/jest@29.5.12:
+ resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==}
dependencies:
expect: 29.7.0
pretty-format: 29.7.0
@@ -2402,15 +2397,15 @@ packages:
/@types/node-forge@1.3.11:
resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/node@15.14.9:
resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==}
dev: true
- /@types/node@20.11.5:
- resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==}
+ /@types/node@20.11.17:
+ resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==}
dependencies:
undici-types: 5.26.5
dev: true
@@ -2422,13 +2417,13 @@ packages:
/@types/postcss-modules-local-by-default@4.0.2:
resolution: {integrity: sha512-CtYCcD+L+trB3reJPny+bKWKMzPfxEyQpKIwit7kErnOexf5/faaGpkFy4I5AwbV4hp1sk7/aTg0tt0B67VkLQ==}
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.35
dev: true
/@types/postcss-modules-scope@3.0.4:
resolution: {integrity: sha512-//ygSisVq9kVI0sqx3UPLzWIMCmtSVrzdljtuaAEJtGoGnpjBikZ2sXO5MpH9SnWX9HRfXxHifDAXcQjupWnIQ==}
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.35
dev: true
/@types/qs@6.9.11:
@@ -2447,15 +2442,15 @@ packages:
resolution: {integrity: sha512-TY1eezMU2zH2ozQoAFAQFOPpvP15g+ZgSfTZt31AUUH/Rxtnz3H+A/Sv1Snw2/amp//omibc+AEkTaA8KUeOLQ==}
dev: true
- /@types/semver@7.5.6:
- resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
+ /@types/semver@7.5.7:
+ resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==}
dev: true
/@types/send@0.17.4:
resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
dependencies:
'@types/mime': 1.3.5
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/serve-index@1.9.4:
@@ -2469,13 +2464,13 @@ packages:
dependencies:
'@types/http-errors': 2.0.4
'@types/mime': 3.0.4
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/sockjs@0.3.36:
resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/stack-utils@2.0.3:
@@ -2492,7 +2487,7 @@ packages:
/@types/ws@8.5.10:
resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
dev: true
/@types/yargs-parser@21.0.3:
@@ -2505,7 +2500,7 @@ packages:
'@types/yargs-parser': 21.0.3
dev: true
- /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.1.6):
+ /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3):
resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2517,23 +2512,23 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/scope-manager': 5.62.0
- '@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)(typescript@5.1.6)
- '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.1.6)
+ '@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3)
debug: 4.3.4
eslint: 8.56.0
graphemer: 1.4.0
- ignore: 5.3.0
+ ignore: 5.3.1
natural-compare-lite: 1.4.0
- semver: 7.5.4
- tsutils: 3.21.0(typescript@5.1.6)
- typescript: 5.1.6
+ semver: 7.6.0
+ tsutils: 3.21.0(typescript@5.3.3)
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.1.6):
+ /@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3):
resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2545,10 +2540,10 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
- '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3)
debug: 4.3.4
eslint: 8.56.0
- typescript: 5.1.6
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -2561,7 +2556,7 @@ packages:
'@typescript-eslint/visitor-keys': 5.62.0
dev: true
- /@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.1.6):
+ /@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3):
resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2571,12 +2566,12 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
- '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.1.6)
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3)
debug: 4.3.4
eslint: 8.56.0
- tsutils: 3.21.0(typescript@5.1.6)
- typescript: 5.1.6
+ tsutils: 3.21.0(typescript@5.3.3)
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -2586,7 +2581,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6):
+ /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3):
resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2600,14 +2595,14 @@ packages:
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.5.4
- tsutils: 3.21.0(typescript@5.1.6)
- typescript: 5.1.6
+ semver: 7.6.0
+ tsutils: 3.21.0(typescript@5.3.3)
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.1.6):
+ /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3):
resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2615,13 +2610,13 @@ packages:
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@types/json-schema': 7.0.15
- '@types/semver': 7.5.6
+ '@types/semver': 7.5.7
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
- '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3)
eslint: 8.56.0
eslint-scope: 5.1.1
- semver: 7.5.4
+ semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -2745,18 +2740,18 @@ packages:
'@xtuc/long': 4.2.2
dev: true
- /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.89.0):
+ /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.1):
resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
engines: {node: '>=14.15.0'}
peerDependencies:
webpack: 5.x.x
webpack-cli: 5.x.x
dependencies:
- webpack: 5.89.0(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.89.0)
+ webpack: 5.90.1(webpack-cli@5.1.4)
+ webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.90.1)
dev: true
- /@webpack-cli/generators@3.0.7(prettier@2.8.8)(webpack-cli@5.1.4)(webpack@5.89.0):
+ /@webpack-cli/generators@3.0.7(prettier@2.8.8)(webpack-cli@5.1.4)(webpack@5.90.1):
resolution: {integrity: sha512-H4dlEX8CzO5EHBYYZQop9x4w6lG9FenSF/1spLRlvRAULDgTs0VfmwOuwp03tTLml9jpMsouuVw6vEN8KpwE/w==}
engines: {node: '>=14.15.0'}
peerDependencies:
@@ -2768,8 +2763,8 @@ packages:
optional: true
dependencies:
prettier: 2.8.8
- webpack: 5.89.0(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.89.0)
+ webpack: 5.90.1(webpack-cli@5.1.4)
+ webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.90.1)
yeoman-environment: 3.19.3
yeoman-generator: 5.10.0(yeoman-environment@3.19.3)
transitivePeerDependencies:
@@ -2779,18 +2774,18 @@ packages:
- supports-color
dev: true
- /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.89.0):
+ /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.1):
resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
engines: {node: '>=14.15.0'}
peerDependencies:
webpack: 5.x.x
webpack-cli: 5.x.x
dependencies:
- webpack: 5.89.0(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.89.0)
+ webpack: 5.90.1(webpack-cli@5.1.4)
+ webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.90.1)
dev: true
- /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.89.0):
+ /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.90.1):
resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
engines: {node: '>=14.15.0'}
peerDependencies:
@@ -2801,9 +2796,9 @@ packages:
webpack-dev-server:
optional: true
dependencies:
- webpack: 5.89.0(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.89.0)
- webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0)
+ webpack: 5.90.1(webpack-cli@5.1.4)
+ webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.90.1)
+ webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.90.1)
dev: true
/@xtuc/ieee754@1.2.0:
@@ -3023,11 +3018,12 @@ packages:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
- /array-buffer-byte-length@1.0.0:
- resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
+ /array-buffer-byte-length@1.0.1:
+ resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- is-array-buffer: 3.0.2
+ call-bind: 1.0.7
+ is-array-buffer: 3.0.4
dev: true
/array-differ@3.0.0:
@@ -3043,10 +3039,10 @@ packages:
resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
- get-intrinsic: 1.2.2
+ get-intrinsic: 1.2.4
is-string: 1.0.7
dev: true
@@ -3055,22 +3051,33 @@ packages:
engines: {node: '>=8'}
dev: true
- /array.prototype.findlastindex@1.2.3:
- resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==}
+ /array.prototype.filter@1.0.3:
+ resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ es-array-method-boxes-properly: 1.0.0
+ is-string: 1.0.7
+ dev: true
+
+ /array.prototype.findlastindex@1.2.4:
+ resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
+ es-errors: 1.3.0
es-shim-unscopables: 1.0.2
- get-intrinsic: 1.2.2
dev: true
/array.prototype.flat@1.3.2:
resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
es-shim-unscopables: 1.0.2
@@ -3080,22 +3087,23 @@ packages:
resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
es-shim-unscopables: 1.0.2
dev: true
- /arraybuffer.prototype.slice@1.0.2:
- resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
+ /arraybuffer.prototype.slice@1.0.3:
+ resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
engines: {node: '>= 0.4'}
dependencies:
- array-buffer-byte-length: 1.0.0
- call-bind: 1.0.5
+ array-buffer-byte-length: 1.0.1
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
- get-intrinsic: 1.2.2
- is-array-buffer: 3.0.2
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ is-array-buffer: 3.0.4
is-shared-array-buffer: 1.0.2
dev: true
@@ -3118,22 +3126,22 @@ packages:
resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
dev: true
- /available-typed-arrays@1.0.5:
- resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
+ /available-typed-arrays@1.0.6:
+ resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==}
engines: {node: '>= 0.4'}
dev: true
- /babel-jest@29.7.0(@babel/core@7.23.7):
+ /babel-jest@29.7.0(@babel/core@7.23.9):
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.8.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@jest/transform': 29.7.0
'@types/babel__core': 7.20.5
babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.6.3(@babel/core@7.23.7)
+ babel-preset-jest: 29.6.3(@babel/core@7.23.9)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
@@ -3158,77 +3166,77 @@ packages:
resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/template': 7.22.15
- '@babel/types': 7.23.6
+ '@babel/template': 7.23.9
+ '@babel/types': 7.23.9
'@types/babel__core': 7.20.5
'@types/babel__traverse': 7.20.5
dev: true
- /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.7):
+ /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9):
resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
'@babel/compat-data': 7.23.5
- '@babel/core': 7.23.7
- '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7):
- resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==}
+ /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9):
+ resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7)
- core-js-compat: 3.35.0
+ '@babel/core': 7.23.9
+ '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9)
+ core-js-compat: 3.35.1
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.7):
+ /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9):
resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.7)
+ '@babel/core': 7.23.9
+ '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9)
transitivePeerDependencies:
- supports-color
dev: true
- /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.7):
+ /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.9):
resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7)
- dev: true
-
- /babel-preset-jest@29.6.3(@babel/core@7.23.7):
+ '@babel/core': 7.23.9
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9)
+ dev: true
+
+ /babel-preset-jest@29.6.3(@babel/core@7.23.9):
resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
babel-plugin-jest-hoist: 29.6.3
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.9)
dev: true
/babel@6.23.0:
@@ -3237,8 +3245,8 @@ packages:
hasBin: true
dev: true
- /babylonjs-gltf2interface@6.39.0:
- resolution: {integrity: sha512-EWGGecmo5dGV44bumrPSnYKTP26avGIrd+nW+Ugxyu3LNQD5Kqi7e5T54opjx+/U+H2ZyISL72CAT//EQzjeBg==}
+ /babylonjs-gltf2interface@6.42.0:
+ resolution: {integrity: sha512-JbAn+AK+0VPN6V9MNd2GGktYPP36CwKRv8E+KXhS7NqqudMrN1TKZ+RaqboGi+ICk5JeqbSBCkzCHLMbkrCltg==}
dev: true
/balanced-match@1.0.2:
@@ -3349,15 +3357,15 @@ packages:
fill-range: 7.0.1
dev: true
- /browserslist@4.22.2:
- resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==}
+ /browserslist@4.22.3:
+ resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001579
- electron-to-chromium: 1.4.639
+ caniuse-lite: 1.0.30001587
+ electron-to-chromium: 1.4.667
node-releases: 2.0.14
- update-browserslist-db: 1.0.13(browserslist@4.22.2)
+ update-browserslist-db: 1.0.13(browserslist@4.22.3)
dev: true
/bs-logger@0.2.6:
@@ -3398,7 +3406,7 @@ packages:
/builtins@5.0.1:
resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
dependencies:
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/bytes@3.0.0:
@@ -3481,12 +3489,15 @@ packages:
unique-filename: 3.0.0
dev: true
- /call-bind@1.0.5:
- resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
+ /call-bind@1.0.7:
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
+ engines: {node: '>= 0.4'}
dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.2
- set-function-length: 1.2.0
+ get-intrinsic: 1.2.4
+ set-function-length: 1.2.1
dev: true
/callsites@3.1.0:
@@ -3511,8 +3522,8 @@ packages:
engines: {node: '>=10'}
dev: true
- /caniuse-lite@1.0.30001579:
- resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==}
+ /caniuse-lite@1.0.30001587:
+ resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==}
dev: true
/chalk@2.4.2:
@@ -3541,8 +3552,8 @@ packages:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true
- /chokidar@3.5.3:
- resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ /chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
dependencies:
anymatch: 3.1.3
@@ -3800,10 +3811,10 @@ packages:
is-what: 3.14.1
dev: true
- /core-js-compat@3.35.0:
- resolution: {integrity: sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==}
+ /core-js-compat@3.35.1:
+ resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==}
dependencies:
- browserslist: 4.22.2
+ browserslist: 4.22.3
dev: true
/core-util-is@1.0.3:
@@ -3815,7 +3826,7 @@ packages:
engines: {node: '>= 0.4.0'}
dev: true
- /create-jest@29.7.0(@types/node@20.11.5)(ts-node@10.9.2):
+ /create-jest@29.7.0(@types/node@20.11.17)(ts-node@10.9.2):
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -3824,7 +3835,7 @@ packages:
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@20.11.5)(ts-node@10.9.2)
+ jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -3847,21 +3858,27 @@ packages:
which: 2.0.2
dev: true
- /css-loader@6.9.1(webpack@5.89.0):
- resolution: {integrity: sha512-OzABOh0+26JKFdMzlK6PY1u5Zx8+Ck7CVRlcGNZoY9qwJjdfu2VWFuprTIpPW+Av5TZTVViYWcFQaEEQURLknQ==}
+ /css-loader@6.10.0(webpack@5.90.1):
+ resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
engines: {node: '>= 12.13.0'}
peerDependencies:
+ '@rspack/core': 0.x || 1.x
webpack: ^5.0.0
+ peerDependenciesMeta:
+ '@rspack/core':
+ optional: true
+ webpack:
+ optional: true
dependencies:
- icss-utils: 5.1.0(postcss@8.4.33)
- postcss: 8.4.33
- postcss-modules-extract-imports: 3.0.0(postcss@8.4.33)
- postcss-modules-local-by-default: 4.0.4(postcss@8.4.33)
- postcss-modules-scope: 3.1.1(postcss@8.4.33)
- postcss-modules-values: 4.0.0(postcss@8.4.33)
+ icss-utils: 5.1.0(postcss@8.4.35)
+ postcss: 8.4.35
+ postcss-modules-extract-imports: 3.0.0(postcss@8.4.35)
+ postcss-modules-local-by-default: 4.0.4(postcss@8.4.35)
+ postcss-modules-scope: 3.1.1(postcss@8.4.35)
+ postcss-modules-values: 4.0.0(postcss@8.4.35)
postcss-value-parser: 4.2.0
- semver: 7.5.4
- webpack: 5.89.0(webpack-cli@5.1.4)
+ semver: 7.6.0
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
/css-select@4.3.0:
@@ -3969,13 +3986,13 @@ packages:
clone: 1.0.4
dev: true
- /define-data-property@1.1.1:
- resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
+ /define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.2
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
gopd: 1.0.1
- has-property-descriptors: 1.0.1
dev: true
/define-lazy-prop@2.0.0:
@@ -3987,8 +4004,8 @@ packages:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.1
- has-property-descriptors: 1.0.1
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
object-keys: 1.1.1
dev: true
@@ -4041,8 +4058,8 @@ packages:
engines: {node: '>=0.3.1'}
dev: true
- /diff@5.1.0:
- resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
+ /diff@5.2.0:
+ resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
engines: {node: '>=0.3.1'}
dev: true
@@ -4114,8 +4131,8 @@ packages:
tslib: 2.6.2
dev: true
- /dotenv@16.3.1:
- resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
+ /dotenv@16.4.4:
+ resolution: {integrity: sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==}
engines: {node: '>=12'}
dev: true
@@ -4135,8 +4152,8 @@ packages:
jake: 10.8.7
dev: true
- /electron-to-chromium@1.4.639:
- resolution: {integrity: sha512-CkKf3ZUVZchr+zDpAlNLEEy2NJJ9T64ULWaDgy3THXXlPVPkLu3VOs9Bac44nebVtdwl2geSj6AxTtGDOxoXhg==}
+ /electron-to-chromium@1.4.667:
+ resolution: {integrity: sha512-66L3pLlWhTNVUhnmSA5+qDM3fwnXsM6KAqE36e2w4KN0g6pkEtlT5bs41FQtQwVwKnfhNBXiWRLPs30HSxd7Kw==}
dev: true
/emittery@0.13.1:
@@ -4192,8 +4209,8 @@ packages:
engines: {node: '>=6'}
dev: true
- /envinfo@7.11.0:
- resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==}
+ /envinfo@7.11.1:
+ resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
engines: {node: '>=4'}
hasBin: true
dev: true
@@ -4225,45 +4242,61 @@ packages:
resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
engines: {node: '>= 0.4'}
dependencies:
- array-buffer-byte-length: 1.0.0
- arraybuffer.prototype.slice: 1.0.2
- available-typed-arrays: 1.0.5
- call-bind: 1.0.5
+ array-buffer-byte-length: 1.0.1
+ arraybuffer.prototype.slice: 1.0.3
+ available-typed-arrays: 1.0.6
+ call-bind: 1.0.7
es-set-tostringtag: 2.0.2
es-to-primitive: 1.2.1
function.prototype.name: 1.1.6
- get-intrinsic: 1.2.2
- get-symbol-description: 1.0.0
+ get-intrinsic: 1.2.4
+ get-symbol-description: 1.0.2
globalthis: 1.0.3
gopd: 1.0.1
- has-property-descriptors: 1.0.1
+ has-property-descriptors: 1.0.2
has-proto: 1.0.1
has-symbols: 1.0.3
- hasown: 2.0.0
- internal-slot: 1.0.6
- is-array-buffer: 3.0.2
+ hasown: 2.0.1
+ internal-slot: 1.0.7
+ is-array-buffer: 3.0.4
is-callable: 1.2.7
is-negative-zero: 2.0.2
is-regex: 1.1.4
is-shared-array-buffer: 1.0.2
is-string: 1.0.7
- is-typed-array: 1.1.12
+ is-typed-array: 1.1.13
is-weakref: 1.0.2
object-inspect: 1.13.1
object-keys: 1.1.1
object.assign: 4.1.5
- regexp.prototype.flags: 1.5.1
+ regexp.prototype.flags: 1.5.2
safe-array-concat: 1.1.0
- safe-regex-test: 1.0.2
+ safe-regex-test: 1.0.3
string.prototype.trim: 1.2.8
string.prototype.trimend: 1.0.7
string.prototype.trimstart: 1.0.7
- typed-array-buffer: 1.0.0
+ typed-array-buffer: 1.0.1
typed-array-byte-length: 1.0.0
typed-array-byte-offset: 1.0.0
typed-array-length: 1.0.4
unbox-primitive: 1.0.2
- which-typed-array: 1.1.13
+ which-typed-array: 1.1.14
+ dev: true
+
+ /es-array-method-boxes-properly@1.0.0:
+ resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==}
+ dev: true
+
+ /es-define-property@1.0.0:
+ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.4
+ dev: true
+
+ /es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
dev: true
/es-module-lexer@1.4.1:
@@ -4274,15 +4307,15 @@ packages:
resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.2
- has-tostringtag: 1.0.0
- hasown: 2.0.0
+ get-intrinsic: 1.2.4
+ has-tostringtag: 1.0.2
+ hasown: 2.0.1
dev: true
/es-shim-unscopables@1.0.2:
resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
dependencies:
- hasown: 2.0.0
+ hasown: 2.0.1
dev: true
/es-to-primitive@1.2.1:
@@ -4294,8 +4327,8 @@ packages:
is-symbol: 1.0.4
dev: true
- /escalade@3.1.1:
- resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ /escalade@3.1.2:
+ resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
engines: {node: '>=6'}
dev: true
@@ -4349,7 +4382,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3)
debug: 3.2.7
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
@@ -4367,9 +4400,9 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3)
array-includes: 3.1.7
- array.prototype.findlastindex: 1.2.3
+ array.prototype.findlastindex: 1.2.4
array.prototype.flat: 1.3.2
array.prototype.flatmap: 1.3.2
debug: 3.2.7
@@ -4377,12 +4410,12 @@ packages:
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
- hasown: 2.0.0
+ hasown: 2.0.1
is-core-module: 2.13.1
is-glob: 4.0.3
minimatch: 3.1.2
object.fromentries: 2.0.7
- object.groupby: 1.0.1
+ object.groupby: 1.0.2
object.values: 1.1.7
semver: 6.3.1
tsconfig-paths: 3.15.0
@@ -4443,7 +4476,7 @@ packages:
glob-parent: 6.0.2
globals: 13.24.0
graphemer: 1.4.0
- ignore: 5.3.0
+ ignore: 5.3.1
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
@@ -4642,8 +4675,8 @@ packages:
engines: {node: '>= 4.9.1'}
dev: true
- /fastq@1.16.0:
- resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==}
+ /fastq@1.17.1:
+ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
dependencies:
reusify: 1.0.4
dev: true
@@ -4823,7 +4856,7 @@ packages:
resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
functions-have-names: 1.2.3
@@ -4872,13 +4905,15 @@ packages:
engines: {node: 6.* || 8.* || >= 10.*}
dev: true
- /get-intrinsic@1.2.2:
- resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
+ /get-intrinsic@1.2.4:
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
+ engines: {node: '>= 0.4'}
dependencies:
+ es-errors: 1.3.0
function-bind: 1.1.2
has-proto: 1.0.1
has-symbols: 1.0.3
- hasown: 2.0.0
+ hasown: 2.0.1
dev: true
/get-package-type@0.1.0:
@@ -4891,12 +4926,13 @@ packages:
engines: {node: '>=10'}
dev: true
- /get-symbol-description@1.0.0:
- resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
+ /get-symbol-description@1.0.2:
+ resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
dev: true
/github-username@6.0.0:
@@ -4986,7 +5022,7 @@ packages:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.2
- ignore: 5.3.0
+ ignore: 5.3.1
merge2: 1.4.1
slash: 3.0.0
dev: true
@@ -5096,7 +5132,7 @@ packages:
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
- get-intrinsic: 1.2.2
+ get-intrinsic: 1.2.4
dev: true
/graceful-fs@4.2.11:
@@ -5134,10 +5170,10 @@ packages:
engines: {node: '>=8'}
dev: true
- /has-property-descriptors@1.0.1:
- resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
+ /has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies:
- get-intrinsic: 1.2.2
+ es-define-property: 1.0.0
dev: true
/has-proto@1.0.1:
@@ -5150,8 +5186,8 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /has-tostringtag@1.0.0:
- resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
+ /has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: '>= 0.4'}
dependencies:
has-symbols: 1.0.3
@@ -5161,8 +5197,8 @@ packages:
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
dev: true
- /hasown@2.0.0:
- resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
+ /hasown@2.0.1:
+ resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
engines: {node: '>= 0.4'}
dependencies:
function-bind: 1.1.2
@@ -5215,7 +5251,7 @@ packages:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
dev: true
- /html-loader@4.2.0(webpack@5.89.0):
+ /html-loader@4.2.0(webpack@5.90.1):
resolution: {integrity: sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==}
engines: {node: '>= 14.15.0'}
peerDependencies:
@@ -5223,7 +5259,7 @@ packages:
dependencies:
html-minifier-terser: 7.2.0
parse5: 7.1.2
- webpack: 5.89.0(webpack-cli@5.1.4)
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
/html-minifier-terser@6.1.0:
@@ -5254,7 +5290,7 @@ packages:
terser: 5.27.0
dev: true
- /html-webpack-plugin@5.6.0(webpack@5.89.0):
+ /html-webpack-plugin@5.6.0(webpack@5.90.1):
resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
engines: {node: '>=10.13.0'}
peerDependencies:
@@ -5271,7 +5307,7 @@ packages:
lodash: 4.17.21
pretty-error: 4.0.0
tapable: 2.2.1
- webpack: 5.89.0(webpack-cli@5.1.4)
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
/htmlparser2@6.1.0:
@@ -5426,13 +5462,13 @@ packages:
safer-buffer: 2.1.2
dev: true
- /icss-utils@5.1.0(postcss@8.4.33):
+ /icss-utils@5.1.0(postcss@8.4.35):
resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.35
dev: true
/ieee754@1.2.1:
@@ -5453,8 +5489,8 @@ packages:
minimatch: 9.0.3
dev: true
- /ignore@5.3.0:
- resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
+ /ignore@5.3.1:
+ resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
dev: true
@@ -5466,8 +5502,8 @@ packages:
dev: true
optional: true
- /immutable@4.3.4:
- resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==}
+ /immutable@4.3.5:
+ resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==}
dev: true
/import-fresh@3.3.0:
@@ -5537,13 +5573,13 @@ packages:
wrap-ansi: 6.2.0
dev: true
- /internal-slot@1.0.6:
- resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
+ /internal-slot@1.0.7:
+ resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.2
- hasown: 2.0.0
- side-channel: 1.0.4
+ es-errors: 1.3.0
+ hasown: 2.0.1
+ side-channel: 1.0.5
dev: true
/interpret@1.4.0:
@@ -5556,8 +5592,12 @@ packages:
engines: {node: '>=10.13.0'}
dev: true
- /ip@2.0.0:
- resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
+ /ip-address@9.0.5:
+ resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
+ engines: {node: '>= 12'}
+ dependencies:
+ jsbn: 1.1.0
+ sprintf-js: 1.1.3
dev: true
/ipaddr.js@1.9.1:
@@ -5574,12 +5614,12 @@ packages:
resolution: {integrity: sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==}
dev: true
- /is-array-buffer@3.0.2:
- resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
+ /is-array-buffer@3.0.4:
+ resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
- is-typed-array: 1.1.12
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
dev: true
/is-arrayish@0.2.1:
@@ -5603,8 +5643,8 @@ packages:
resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- has-tostringtag: 1.0.0
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
dev: true
/is-callable@1.2.7:
@@ -5615,14 +5655,14 @@ packages:
/is-core-module@2.13.1:
resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
dependencies:
- hasown: 2.0.0
+ hasown: 2.0.1
dev: true
/is-date-object@1.0.5:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
engines: {node: '>= 0.4'}
dependencies:
- has-tostringtag: 1.0.0
+ has-tostringtag: 1.0.2
dev: true
/is-docker@2.2.1:
@@ -5671,7 +5711,7 @@ packages:
resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
engines: {node: '>= 0.4'}
dependencies:
- has-tostringtag: 1.0.0
+ has-tostringtag: 1.0.2
dev: true
/is-number@7.0.0:
@@ -5710,8 +5750,8 @@ packages:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- has-tostringtag: 1.0.0
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
dev: true
/is-scoped@2.1.0:
@@ -5724,7 +5764,7 @@ packages:
/is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
dev: true
/is-stream@2.0.1:
@@ -5736,7 +5776,7 @@ packages:
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
engines: {node: '>= 0.4'}
dependencies:
- has-tostringtag: 1.0.0
+ has-tostringtag: 1.0.2
dev: true
/is-symbol@1.0.4:
@@ -5746,11 +5786,11 @@ packages:
has-symbols: 1.0.3
dev: true
- /is-typed-array@1.1.12:
- resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
+ /is-typed-array@1.1.13:
+ resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
engines: {node: '>= 0.4'}
dependencies:
- which-typed-array: 1.1.13
+ which-typed-array: 1.1.14
dev: true
/is-unicode-supported@0.1.0:
@@ -5765,7 +5805,7 @@ packages:
/is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
dev: true
/is-what@3.14.1:
@@ -5819,8 +5859,8 @@ packages:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
engines: {node: '>=8'}
dependencies:
- '@babel/core': 7.23.7
- '@babel/parser': 7.23.6
+ '@babel/core': 7.23.9
+ '@babel/parser': 7.23.9
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@@ -5832,11 +5872,11 @@ packages:
resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==}
engines: {node: '>=10'}
dependencies:
- '@babel/core': 7.23.7
- '@babel/parser': 7.23.6
+ '@babel/core': 7.23.9
+ '@babel/parser': 7.23.9
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
- semver: 7.5.4
+ semver: 7.6.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -5906,7 +5946,7 @@ packages:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
chalk: 4.1.2
co: 4.6.0
dedent: 1.5.1
@@ -5927,7 +5967,7 @@ packages:
- supports-color
dev: true
- /jest-cli@29.7.0(@types/node@20.11.5)(ts-node@10.9.2):
+ /jest-cli@29.7.0(@types/node@20.11.17)(ts-node@10.9.2):
resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -5941,10 +5981,10 @@ packages:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@20.11.5)(ts-node@10.9.2)
+ create-jest: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2)
exit: 0.1.2
import-local: 3.1.0
- jest-config: 29.7.0(@types/node@20.11.5)(ts-node@10.9.2)
+ jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -5955,7 +5995,7 @@ packages:
- ts-node
dev: true
- /jest-config@29.7.0(@types/node@20.11.5)(ts-node@10.9.2):
+ /jest-config@29.7.0(@types/node@20.11.17)(ts-node@10.9.2):
resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
@@ -5967,11 +6007,11 @@ packages:
ts-node:
optional: true
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.5
- babel-jest: 29.7.0(@babel/core@7.23.7)
+ '@types/node': 20.11.17
+ babel-jest: 29.7.0(@babel/core@7.23.9)
chalk: 4.1.2
ci-info: 3.9.0
deepmerge: 4.3.1
@@ -5990,7 +6030,7 @@ packages:
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
- ts-node: 10.9.2(@types/node@20.11.5)(typescript@5.1.6)
+ ts-node: 10.9.2(@types/node@20.11.17)(typescript@5.3.3)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -6031,7 +6071,7 @@ packages:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
jest-mock: 29.7.0
jest-util: 29.7.0
dev: true
@@ -6047,7 +6087,7 @@ packages:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.9
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -6098,7 +6138,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
jest-util: 29.7.0
dev: true
@@ -6153,7 +6193,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -6184,7 +6224,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
chalk: 4.1.2
cjs-module-lexer: 1.2.3
collect-v8-coverage: 1.0.2
@@ -6207,15 +6247,15 @@ packages:
resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/generator': 7.23.6
- '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7)
- '@babel/types': 7.23.6
+ '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9)
+ '@babel/types': 7.23.9
'@jest/expect-utils': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.9)
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
@@ -6226,7 +6266,7 @@ packages:
jest-util: 29.7.0
natural-compare: 1.4.0
pretty-format: 29.7.0
- semver: 7.5.4
+ semver: 7.6.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -6240,7 +6280,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -6265,7 +6305,7 @@ packages:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -6277,7 +6317,7 @@ packages:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
@@ -6286,13 +6326,13 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
- /jest@29.7.0(@types/node@20.11.5)(ts-node@10.9.2):
+ /jest@29.7.0(@types/node@20.11.17)(ts-node@10.9.2):
resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -6305,7 +6345,7 @@ packages:
'@jest/core': 29.7.0(ts-node@10.9.2)
'@jest/types': 29.6.3
import-local: 3.1.0
- jest-cli: 29.7.0(@types/node@20.11.5)(ts-node@10.9.2)
+ jest-cli: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -6332,6 +6372,10 @@ packages:
argparse: 2.0.1
dev: true
+ /jsbn@1.1.0:
+ resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+ dev: true
+
/jsesc@0.5.0:
resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
hasBin: true
@@ -6385,8 +6429,8 @@ packages:
hasBin: true
dev: true
- /jsonc-parser@3.2.0:
- resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+ /jsonc-parser@3.2.1:
+ resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
dev: true
/jsonparse@1.3.1:
@@ -6551,8 +6595,8 @@ packages:
tslib: 2.6.2
dev: true
- /lru-cache@10.1.0:
- resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==}
+ /lru-cache@10.2.0:
+ resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
engines: {node: 14 || >=16.14}
dev: true
@@ -6592,7 +6636,7 @@ packages:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
dependencies:
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/make-error@1.3.6:
@@ -6783,14 +6827,15 @@ packages:
engines: {node: '>=6'}
dev: true
- /mini-css-extract-plugin@2.7.7(webpack@5.89.0):
- resolution: {integrity: sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw==}
+ /mini-css-extract-plugin@2.8.0(webpack@5.90.1):
+ resolution: {integrity: sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==}
engines: {node: '>= 12.13.0'}
peerDependencies:
webpack: ^5.0.0
dependencies:
schema-utils: 4.2.0
- webpack: 5.89.0(webpack-cli@5.1.4)
+ tapable: 2.2.1
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
/minimalistic-assert@1.0.1:
@@ -7079,7 +7124,7 @@ packages:
nopt: 5.0.0
npmlog: 6.0.2
rimraf: 3.0.2
- semver: 7.5.4
+ semver: 7.6.0
tar: 6.2.0
which: 2.0.2
transitivePeerDependencies:
@@ -7100,7 +7145,7 @@ packages:
nopt: 6.0.0
npmlog: 6.0.2
rimraf: 3.0.2
- semver: 7.5.4
+ semver: 7.6.0
tar: 6.2.0
which: 2.0.2
transitivePeerDependencies:
@@ -7147,7 +7192,7 @@ packages:
dependencies:
hosted-git-info: 6.1.1
is-core-module: 2.13.1
- semver: 7.5.4
+ semver: 7.6.0
validate-npm-package-license: 3.0.4
dev: true
@@ -7173,14 +7218,14 @@ packages:
resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==}
engines: {node: '>=10'}
dependencies:
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/npm-install-checks@6.3.0:
resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
dependencies:
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/npm-normalize-package-bin@1.0.1:
@@ -7203,7 +7248,7 @@ packages:
dependencies:
hosted-git-info: 6.1.1
proc-log: 3.0.0
- semver: 7.5.4
+ semver: 7.6.0
validate-npm-package-name: 5.0.0
dev: true
@@ -7212,7 +7257,7 @@ packages:
engines: {node: '>=10'}
dependencies:
hosted-git-info: 4.1.0
- semver: 7.5.4
+ semver: 7.6.0
validate-npm-package-name: 3.0.0
dev: true
@@ -7240,7 +7285,7 @@ packages:
npm-install-checks: 4.0.0
npm-normalize-package-bin: 1.0.1
npm-package-arg: 8.1.5
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/npm-pick-manifest@8.0.2:
@@ -7250,7 +7295,7 @@ packages:
npm-install-checks: 6.3.0
npm-normalize-package-bin: 3.0.1
npm-package-arg: 10.1.0
- semver: 7.5.4
+ semver: 7.6.0
dev: true
/npm-registry-fetch@12.0.2:
@@ -7333,7 +7378,7 @@ packages:
resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
has-symbols: 1.0.3
object-keys: 1.1.1
@@ -7343,25 +7388,26 @@ packages:
resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
dev: true
- /object.groupby@1.0.1:
- resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
+ /object.groupby@1.0.2:
+ resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==}
dependencies:
- call-bind: 1.0.5
+ array.prototype.filter: 1.0.3
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
- get-intrinsic: 1.2.2
+ es-errors: 1.3.0
dev: true
/object.values@1.1.7:
resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
dev: true
@@ -7661,7 +7707,7 @@ packages:
resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
- lru-cache: 10.1.0
+ lru-cache: 10.2.0
minipass: 7.0.4
dev: true
@@ -7716,7 +7762,7 @@ packages:
- supports-color
dev: true
- /postcss-load-config@3.1.4(postcss@8.4.33)(ts-node@10.9.2):
+ /postcss-load-config@3.1.4(postcss@8.4.35)(ts-node@10.9.2):
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'}
peerDependencies:
@@ -7729,50 +7775,50 @@ packages:
optional: true
dependencies:
lilconfig: 2.1.0
- postcss: 8.4.33
- ts-node: 10.9.2(@types/node@20.11.5)(typescript@5.1.6)
+ postcss: 8.4.35
+ ts-node: 10.9.2(@types/node@20.11.17)(typescript@5.3.3)
yaml: 1.10.2
dev: true
- /postcss-modules-extract-imports@3.0.0(postcss@8.4.33):
+ /postcss-modules-extract-imports@3.0.0(postcss@8.4.35):
resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.35
dev: true
- /postcss-modules-local-by-default@4.0.4(postcss@8.4.33):
+ /postcss-modules-local-by-default@4.0.4(postcss@8.4.35):
resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
- icss-utils: 5.1.0(postcss@8.4.33)
- postcss: 8.4.33
+ icss-utils: 5.1.0(postcss@8.4.35)
+ postcss: 8.4.35
postcss-selector-parser: 6.0.15
postcss-value-parser: 4.2.0
dev: true
- /postcss-modules-scope@3.1.1(postcss@8.4.33):
+ /postcss-modules-scope@3.1.1(postcss@8.4.35):
resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.35
postcss-selector-parser: 6.0.15
dev: true
- /postcss-modules-values@4.0.0(postcss@8.4.33):
+ /postcss-modules-values@4.0.0(postcss@8.4.35):
resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
- icss-utils: 5.1.0(postcss@8.4.33)
- postcss: 8.4.33
+ icss-utils: 5.1.0(postcss@8.4.35)
+ postcss: 8.4.35
dev: true
/postcss-selector-parser@6.0.15:
@@ -7787,8 +7833,8 @@ packages:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
- /postcss@8.4.33:
- resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
+ /postcss@8.4.35:
+ resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
@@ -7915,14 +7961,14 @@ packages:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
engines: {node: '>=0.6'}
dependencies:
- side-channel: 1.0.4
+ side-channel: 1.0.5
dev: true
/qs@6.11.2:
resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==}
engines: {node: '>=0.6'}
dependencies:
- side-channel: 1.0.4
+ side-channel: 1.0.5
dev: true
/queue-microtask@1.2.3:
@@ -7950,7 +7996,7 @@ packages:
unpipe: 1.0.0
dev: true
- /raw-loader@4.0.2(webpack@5.89.0):
+ /raw-loader@4.0.2(webpack@5.90.1):
resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==}
engines: {node: '>= 10.13.0'}
peerDependencies:
@@ -7958,7 +8004,7 @@ packages:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.89.0(webpack-cli@5.1.4)
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
/react-is@18.2.0:
@@ -8105,15 +8151,16 @@ packages:
/regenerator-transform@0.15.2:
resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
dependencies:
- '@babel/runtime': 7.23.8
+ '@babel/runtime': 7.23.9
dev: true
- /regexp.prototype.flags@1.5.1:
- resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
+ /regexp.prototype.flags@1.5.2:
+ resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
+ es-errors: 1.3.0
set-function-name: 2.0.1
dev: true
@@ -8264,8 +8311,8 @@ packages:
resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==}
engines: {node: '>=0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
has-symbols: 1.0.3
isarray: 2.0.5
dev: true
@@ -8278,12 +8325,12 @@ packages:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: true
- /safe-regex-test@1.0.2:
- resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==}
+ /safe-regex-test@1.0.3:
+ resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
+ call-bind: 1.0.7
+ es-errors: 1.3.0
is-regex: 1.1.4
dev: true
@@ -8291,7 +8338,7 @@ packages:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
- /sass-loader@13.3.3(sass@1.70.0)(webpack@5.89.0):
+ /sass-loader@13.3.3(sass@1.70.0)(webpack@5.90.1):
resolution: {integrity: sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==}
engines: {node: '>= 14.15.0'}
peerDependencies:
@@ -8312,7 +8359,7 @@ packages:
dependencies:
neo-async: 2.6.2
sass: 1.70.0
- webpack: 5.89.0(webpack-cli@5.1.4)
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
/sass@1.70.0:
@@ -8320,19 +8367,14 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
- chokidar: 3.5.3
- immutable: 4.3.4
+ chokidar: 3.6.0
+ immutable: 4.3.5
source-map-js: 1.0.2
dev: true
- /sax@1.2.4:
- resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
- dev: true
-
/sax@1.3.0:
resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
dev: true
- optional: true
/schema-utils@3.3.0:
resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
@@ -8384,8 +8426,8 @@ packages:
hasBin: true
dev: true
- /semver@7.5.4:
- resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ /semver@7.6.0:
+ resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@@ -8450,24 +8492,25 @@ packages:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
dev: true
- /set-function-length@1.2.0:
- resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==}
+ /set-function-length@1.2.1:
+ resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.1
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.2
+ get-intrinsic: 1.2.4
gopd: 1.0.1
- has-property-descriptors: 1.0.1
+ has-property-descriptors: 1.0.2
dev: true
/set-function-name@2.0.1:
resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.1
+ define-data-property: 1.1.4
functions-have-names: 1.2.3
- has-property-descriptors: 1.0.1
+ has-property-descriptors: 1.0.2
dev: true
/setprototypeof@1.1.0:
@@ -8519,16 +8562,18 @@ packages:
resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==}
dependencies:
ansi-sequence-parser: 1.1.1
- jsonc-parser: 3.2.0
+ jsonc-parser: 3.2.1
vscode-oniguruma: 1.7.0
vscode-textmate: 8.0.0
dev: true
- /side-channel@1.0.4:
- resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
+ /side-channel@1.0.5:
+ resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
object-inspect: 1.13.1
dev: true
@@ -8583,7 +8628,7 @@ packages:
dependencies:
agent-base: 6.0.2
debug: 4.3.4
- socks: 2.7.1
+ socks: 2.7.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -8594,16 +8639,16 @@ packages:
dependencies:
agent-base: 6.0.2
debug: 4.3.4
- socks: 2.7.1
+ socks: 2.7.3
transitivePeerDependencies:
- supports-color
dev: true
- /socks@2.7.1:
- resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==}
- engines: {node: '>= 10.13.0', npm: '>= 3.0.0'}
+ /socks@2.7.3:
+ resolution: {integrity: sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==}
+ engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
dependencies:
- ip: 2.0.0
+ ip-address: 9.0.5
smart-buffer: 4.2.0
dev: true
@@ -8647,22 +8692,22 @@ packages:
resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
dependencies:
spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.16
+ spdx-license-ids: 3.0.17
dev: true
- /spdx-exceptions@2.3.0:
- resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
+ /spdx-exceptions@2.4.0:
+ resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==}
dev: true
/spdx-expression-parse@3.0.1:
resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
dependencies:
- spdx-exceptions: 2.3.0
- spdx-license-ids: 3.0.16
+ spdx-exceptions: 2.4.0
+ spdx-license-ids: 3.0.17
dev: true
- /spdx-license-ids@3.0.16:
- resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==}
+ /spdx-license-ids@3.0.17:
+ resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
dev: true
/spdy-transport@3.0.0:
@@ -8695,6 +8740,10 @@ packages:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
dev: true
+ /sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+ dev: true
+
/squirrel-noise@1.0.0:
resolution: {integrity: sha512-/nXWlW2nymr447PW4ZVHo84NgR9dLKZUoNwz4c17sn+aWhw+e3Jcr/kFIpQ8lT1dQ5c4XSdrDq2aPzIAgmAnHg==}
dev: true
@@ -8767,7 +8816,7 @@ packages:
resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
dev: true
@@ -8775,7 +8824,7 @@ packages:
/string.prototype.trimend@1.0.7:
resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
dev: true
@@ -8783,7 +8832,7 @@ packages:
/string.prototype.trimstart@1.0.7:
resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.3
dev: true
@@ -8860,23 +8909,23 @@ packages:
engines: {node: '>=8'}
dev: true
- /style-loader@3.3.4(webpack@5.89.0):
+ /style-loader@3.3.4(webpack@5.90.1):
resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
engines: {node: '>= 12.13.0'}
peerDependencies:
webpack: ^5.0.0
dependencies:
- webpack: 5.89.0(webpack-cli@5.1.4)
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
- /stylus@0.59.0:
- resolution: {integrity: sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==}
+ /stylus@0.62.0:
+ resolution: {integrity: sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==}
hasBin: true
dependencies:
- '@adobe/css-tools': 4.3.2
+ '@adobe/css-tools': 4.3.3
debug: 4.3.4
glob: 7.2.3
- sax: 1.2.4
+ sax: 1.3.0
source-map: 0.7.4
transitivePeerDependencies:
- supports-color
@@ -8929,7 +8978,7 @@ packages:
resolution: {integrity: sha512-5YTRxvkxp//MERkp7ABzFfNViKXUoWxpVTGAI80d4sV2w5TDcLzh7ZkemXQGYvwQq4+yXdRwwJzrbPac4k0nrA==}
dev: true
- /terser-webpack-plugin@5.3.10(webpack@5.89.0):
+ /terser-webpack-plugin@5.3.10(webpack@5.90.1):
resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
engines: {node: '>= 10.13.0'}
peerDependencies:
@@ -8945,12 +8994,12 @@ packages:
uglify-js:
optional: true
dependencies:
- '@jridgewell/trace-mapping': 0.3.21
+ '@jridgewell/trace-mapping': 0.3.22
jest-worker: 27.5.1
schema-utils: 3.3.0
serialize-javascript: 6.0.2
terser: 5.27.0
- webpack: 5.89.0(webpack-cli@5.1.4)
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
/terser@5.27.0:
@@ -9033,9 +9082,9 @@ packages:
resolution: {integrity: sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==}
dev: true
- /ts-jest@29.1.1(@babel/core@7.23.7)(@jest/types@29.6.3)(babel-jest@29.7.0)(jest@29.7.0)(typescript@5.1.6):
- resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ /ts-jest@29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0)(jest@29.7.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
+ engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@babel/core': '>=7.0.0-beta.0 <8'
@@ -9054,22 +9103,22 @@ packages:
esbuild:
optional: true
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.23.7)
+ babel-jest: 29.7.0(@babel/core@7.23.9)
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
- jest: 29.7.0(@types/node@20.11.5)(ts-node@10.9.2)
+ jest: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2)
jest-util: 29.7.0
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
- semver: 7.5.4
- typescript: 5.1.6
+ semver: 7.6.0
+ typescript: 5.3.3
yargs-parser: 21.1.1
dev: true
- /ts-loader@9.5.1(typescript@5.1.6)(webpack@5.89.0):
+ /ts-loader@9.5.1(typescript@5.3.3)(webpack@5.90.1):
resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -9079,13 +9128,13 @@ packages:
chalk: 4.1.2
enhanced-resolve: 5.15.0
micromatch: 4.0.5
- semver: 7.5.4
+ semver: 7.6.0
source-map: 0.7.4
- typescript: 5.1.6
- webpack: 5.89.0(webpack-cli@5.1.4)
+ typescript: 5.3.3
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
- /ts-node@10.9.2(@types/node@20.11.5)(typescript@5.1.6):
+ /ts-node@10.9.2(@types/node@20.11.17)(typescript@5.3.3):
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
peerDependencies:
@@ -9104,14 +9153,14 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 20.11.5
+ '@types/node': 20.11.17
acorn: 8.11.3
acorn-walk: 8.3.2
arg: 4.1.3
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
- typescript: 5.1.6
+ typescript: 5.3.3
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
dev: true
@@ -9148,14 +9197,14 @@ packages:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
dev: true
- /tsutils@3.21.0(typescript@5.1.6):
+ /tsutils@3.21.0(typescript@5.3.3):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
- typescript: 5.1.6
+ typescript: 5.3.3
dev: true
/tuf-js@1.1.7:
@@ -9209,87 +9258,105 @@ packages:
mime-types: 2.1.35
dev: true
- /typed-array-buffer@1.0.0:
- resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
+ /typed-array-buffer@1.0.1:
+ resolution: {integrity: sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
- is-typed-array: 1.1.12
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-typed-array: 1.1.13
dev: true
/typed-array-byte-length@1.0.0:
resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
for-each: 0.3.3
has-proto: 1.0.1
- is-typed-array: 1.1.12
+ is-typed-array: 1.1.13
dev: true
/typed-array-byte-offset@1.0.0:
resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
engines: {node: '>= 0.4'}
dependencies:
- available-typed-arrays: 1.0.5
- call-bind: 1.0.5
+ available-typed-arrays: 1.0.6
+ call-bind: 1.0.7
for-each: 0.3.3
has-proto: 1.0.1
- is-typed-array: 1.1.12
+ is-typed-array: 1.1.13
dev: true
/typed-array-length@1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
for-each: 0.3.3
- is-typed-array: 1.1.12
+ is-typed-array: 1.1.13
+ dev: true
+
+ /typedoc-material-theme@1.0.2(typedoc@0.25.8):
+ resolution: {integrity: sha512-/nH/twYeHrnz5sZaaXzYJ85EOgKqnbl1ivzBKmuEAga1dBsARttwQUTPKAT7XrCPD+rRcoqxuCOdXZ6EGiqRQA==}
+ engines: {node: '>=18.0.0', npm: '>=8.6.0'}
+ peerDependencies:
+ typedoc: ^0.25.3
+ dependencies:
+ '@material/material-color-utilities': 0.2.7
+ typedoc: 0.25.8(typescript@5.3.3)
+ dev: true
+
+ /typedoc-plugin-missing-exports@2.2.0(typedoc@0.25.8):
+ resolution: {integrity: sha512-2+XR1IcyQ5UwXZVJe9NE6HrLmNufT9i5OwoIuuj79VxuA3eYq+Y6itS9rnNV1D7UeQnUSH8kISYD73gHE5zw+w==}
+ peerDependencies:
+ typedoc: 0.24.x || 0.25.x
+ dependencies:
+ typedoc: 0.25.8(typescript@5.3.3)
dev: true
- /typedoc@0.24.8(typescript@5.1.6):
- resolution: {integrity: sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==}
- engines: {node: '>= 14.14'}
+ /typedoc@0.25.8(typescript@5.3.3):
+ resolution: {integrity: sha512-mh8oLW66nwmeB9uTa0Bdcjfis+48bAjSH3uqdzSuSawfduROQLlXw//WSNZLYDdhmMVB7YcYZicq6e8T0d271A==}
+ engines: {node: '>= 16'}
hasBin: true
peerDependencies:
- typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x
+ typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x
dependencies:
lunr: 2.3.9
marked: 4.3.0
minimatch: 9.0.3
shiki: 0.14.7
- typescript: 5.1.6
+ typescript: 5.3.3
dev: true
- /typescript-plugin-css-modules@5.0.2(ts-node@10.9.2)(typescript@5.1.6):
- resolution: {integrity: sha512-ej/Og4Y8mF+43P14P9Ik1MGqNXcXBVgO1TltkESegdnZsaaRXnaJ5CoJmTPRkg25ysQlOV6P94wNhI4VxIzlkw==}
+ /typescript-plugin-css-modules@5.1.0(ts-node@10.9.2)(typescript@5.3.3):
+ resolution: {integrity: sha512-6h+sLBa4l+XYSTn/31vZHd/1c3SvAbLpobY6FxDiUOHJQG1eD9Gh3eCs12+Eqc+TCOAdxcO+zAPvUq0jBfdciw==}
peerDependencies:
typescript: '>=4.0.0'
dependencies:
'@types/postcss-modules-local-by-default': 4.0.2
'@types/postcss-modules-scope': 3.0.4
- dotenv: 16.3.1
- icss-utils: 5.1.0(postcss@8.4.33)
+ dotenv: 16.4.4
+ icss-utils: 5.1.0(postcss@8.4.35)
less: 4.2.0
lodash.camelcase: 4.3.0
- postcss: 8.4.33
- postcss-load-config: 3.1.4(postcss@8.4.33)(ts-node@10.9.2)
- postcss-modules-extract-imports: 3.0.0(postcss@8.4.33)
- postcss-modules-local-by-default: 4.0.4(postcss@8.4.33)
- postcss-modules-scope: 3.1.1(postcss@8.4.33)
+ postcss: 8.4.35
+ postcss-load-config: 3.1.4(postcss@8.4.35)(ts-node@10.9.2)
+ postcss-modules-extract-imports: 3.0.0(postcss@8.4.35)
+ postcss-modules-local-by-default: 4.0.4(postcss@8.4.35)
+ postcss-modules-scope: 3.1.1(postcss@8.4.35)
reserved-words: 0.1.2
sass: 1.70.0
source-map-js: 1.0.2
- stylus: 0.59.0
+ stylus: 0.62.0
tsconfig-paths: 4.2.0
- typescript: 5.1.6
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- ts-node
dev: true
- /typescript@5.1.6:
- resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
+ /typescript@5.3.3:
+ resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
engines: {node: '>=14.17'}
hasBin: true
dev: true
@@ -9297,7 +9364,7 @@ packages:
/unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
has-bigints: 1.0.2
has-symbols: 1.0.3
which-boxed-primitive: 1.0.2
@@ -9391,14 +9458,14 @@ packages:
engines: {node: '>=8'}
dev: true
- /update-browserslist-db@1.0.13(browserslist@4.22.2):
+ /update-browserslist-db@1.0.13(browserslist@4.22.3):
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.22.2
- escalade: 3.1.1
+ browserslist: 4.22.3
+ escalade: 3.1.2
picocolors: 1.0.0
dev: true
@@ -9438,7 +9505,7 @@ packages:
resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
engines: {node: '>=10.12.0'}
dependencies:
- '@jridgewell/trace-mapping': 0.3.21
+ '@jridgewell/trace-mapping': 0.3.22
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
dev: true
@@ -9533,7 +9600,7 @@ packages:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
dev: true
- /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.89.0):
+ /webpack-cli@5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.90.1):
resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
engines: {node: '>=14.15.0'}
hasBin: true
@@ -9551,24 +9618,24 @@ packages:
optional: true
dependencies:
'@discoveryjs/json-ext': 0.5.7
- '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.89.0)
- '@webpack-cli/generators': 3.0.7(prettier@2.8.8)(webpack-cli@5.1.4)(webpack@5.89.0)
- '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.89.0)
- '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.89.0)
+ '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.90.1)
+ '@webpack-cli/generators': 3.0.7(prettier@2.8.8)(webpack-cli@5.1.4)(webpack@5.90.1)
+ '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.90.1)
+ '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.90.1)
colorette: 2.0.20
commander: 10.0.1
cross-spawn: 7.0.3
- envinfo: 7.11.0
+ envinfo: 7.11.1
fastest-levenshtein: 1.0.16
import-local: 3.1.0
interpret: 3.1.1
rechoir: 0.8.0
- webpack: 5.89.0(webpack-cli@5.1.4)
- webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0)
+ webpack: 5.90.1(webpack-cli@5.1.4)
+ webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.90.1)
webpack-merge: 5.10.0
dev: true
- /webpack-dev-middleware@5.3.3(webpack@5.89.0):
+ /webpack-dev-middleware@5.3.3(webpack@5.90.1):
resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==}
engines: {node: '>= 12.13.0'}
peerDependencies:
@@ -9579,10 +9646,10 @@ packages:
mime-types: 2.1.35
range-parser: 1.2.1
schema-utils: 4.2.0
- webpack: 5.89.0(webpack-cli@5.1.4)
+ webpack: 5.90.1(webpack-cli@5.1.4)
dev: true
- /webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.89.0):
+ /webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.90.1):
resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==}
engines: {node: '>= 12.13.0'}
hasBin: true
@@ -9604,7 +9671,7 @@ packages:
'@types/ws': 8.5.10
ansi-html-community: 0.0.8
bonjour-service: 1.2.1
- chokidar: 3.5.3
+ chokidar: 3.6.0
colorette: 2.0.20
compression: 1.7.4
connect-history-api-fallback: 2.0.0
@@ -9623,9 +9690,9 @@ packages:
serve-index: 1.9.1
sockjs: 0.3.24
spdy: 4.0.2
- webpack: 5.89.0(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.89.0)
- webpack-dev-middleware: 5.3.3(webpack@5.89.0)
+ webpack: 5.90.1(webpack-cli@5.1.4)
+ webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.90.1)
+ webpack-dev-middleware: 5.3.3(webpack@5.90.1)
ws: 8.16.0
transitivePeerDependencies:
- bufferutil
@@ -9648,8 +9715,8 @@ packages:
engines: {node: '>=10.13.0'}
dev: true
- /webpack@5.89.0(webpack-cli@5.1.4):
- resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==}
+ /webpack@5.90.1(webpack-cli@5.1.4):
+ resolution: {integrity: sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -9665,7 +9732,7 @@ packages:
'@webassemblyjs/wasm-parser': 1.11.6
acorn: 8.11.3
acorn-import-assertions: 1.9.0(acorn@8.11.3)
- browserslist: 4.22.2
+ browserslist: 4.22.3
chrome-trace-event: 1.0.3
enhanced-resolve: 5.15.0
es-module-lexer: 1.4.1
@@ -9679,9 +9746,9 @@ packages:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
- terser-webpack-plugin: 5.3.10(webpack@5.89.0)
+ terser-webpack-plugin: 5.3.10(webpack@5.90.1)
watchpack: 2.4.0
- webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.89.0)
+ webpack-cli: 5.1.4(@webpack-cli/generators@3.0.7)(webpack-dev-server@4.15.1)(webpack@5.90.1)
webpack-sources: 3.2.3
transitivePeerDependencies:
- '@swc/core'
@@ -9735,15 +9802,15 @@ packages:
path-exists: 4.0.0
dev: true
- /which-typed-array@1.1.13:
- resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==}
+ /which-typed-array@1.1.14:
+ resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==}
engines: {node: '>= 0.4'}
dependencies:
- available-typed-arrays: 1.0.5
- call-bind: 1.0.5
+ available-typed-arrays: 1.0.6
+ call-bind: 1.0.7
for-each: 0.3.3
gopd: 1.0.1
- has-tostringtag: 1.0.0
+ has-tostringtag: 1.0.2
dev: true
/which@2.0.2:
@@ -9862,7 +9929,7 @@ packages:
engines: {node: '>=12'}
dependencies:
cliui: 8.0.1
- escalade: 3.1.1
+ escalade: 3.1.2
get-caller-file: 2.0.5
require-directory: 2.1.1
string-width: 4.2.3
@@ -9884,7 +9951,7 @@ packages:
commander: 7.1.0
dateformat: 4.6.3
debug: 4.3.4
- diff: 5.1.0
+ diff: 5.2.0
error: 10.4.0
escape-string-regexp: 4.0.0
execa: 5.1.1
@@ -9906,7 +9973,7 @@ packages:
preferred-pm: 3.1.2
pretty-bytes: 5.6.0
readable-stream: 4.5.2
- semver: 7.5.4
+ semver: 7.6.0
slash: 3.0.0
strip-ansi: 6.0.1
text-table: 0.2.0
@@ -9937,7 +10004,7 @@ packages:
pacote: 15.2.0
read-pkg-up: 7.0.1
run-async: 2.4.1
- semver: 7.5.4
+ semver: 7.6.0
shelljs: 0.8.5
sort-keys: 4.2.0
text-table: 0.2.0
diff --git a/src/asset/character.glb b/src/asset/character.glb
index 74173b21a..fd1874a42 100644
Binary files a/src/asset/character.glb and b/src/asset/character.glb differ
diff --git a/src/html/index.html b/src/html/index.html
index ee32bcd2f..aa052a2ce 100644
--- a/src/html/index.html
+++ b/src/html/index.html
@@ -5,12 +5,12 @@
-
-
+
+
-
CosmosJourneyer
+ Cosmos Journeyer
diff --git a/src/html/mainMenu.html b/src/html/mainMenu.html
index 935fbda5e..087f4220c 100644
--- a/src/html/mainMenu.html
+++ b/src/html/mainMenu.html
@@ -1,5 +1,5 @@
-
CosmosJourneyer
+
Cosmos Journeyer
diff --git a/src/shaders/atmosphericScatteringFragment.glsl b/src/shaders/atmosphericScatteringFragment.glsl
index 327641cd1..2f9e84990 100644
--- a/src/shaders/atmosphericScatteringFragment.glsl
+++ b/src/shaders/atmosphericScatteringFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/butterflyMaterial/butterflyFragment.glsl b/src/shaders/butterflyMaterial/butterflyFragment.glsl
index 8ffa5ef6b..a3dbc59b8 100644
--- a/src/shaders/butterflyMaterial/butterflyFragment.glsl
+++ b/src/shaders/butterflyMaterial/butterflyFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/butterflyMaterial/butterflyVertex.glsl b/src/shaders/butterflyMaterial/butterflyVertex.glsl
index 15631c7bc..602f7cdcd 100644
--- a/src/shaders/butterflyMaterial/butterflyVertex.glsl
+++ b/src/shaders/butterflyMaterial/butterflyVertex.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/colorCorrection.glsl b/src/shaders/colorCorrection.glsl
index 6a44d2400..2982e0e9d 100644
--- a/src/shaders/colorCorrection.glsl
+++ b/src/shaders/colorCorrection.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/flatCloudsFragment.glsl b/src/shaders/flatCloudsFragment.glsl
index 034df06e0..e3a3b5b49 100644
--- a/src/shaders/flatCloudsFragment.glsl
+++ b/src/shaders/flatCloudsFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -139,11 +139,14 @@ float computeCloudCoverage(vec3 rayOrigin, vec3 rayDir, float maximumDistance, o
float cloudShadows(vec3 closestPoint) {
float lightAmount = 1.0;
for (int i = 0; i < nbStars; i++) {
+ // direction to sun from point
vec3 sunDir = normalize(star_positions[i] - closestPoint);
+ // if ray toward sun does not intersect the cloud layer, then there can't be any cloud shadow
float t0, t1;
if (!rayIntersectSphere(closestPoint, sunDir, object_position, clouds_layerRadius, t0, t1)) continue;
+ // get the point of intersection with the cloud layer
vec3 samplePoint = normalize(closestPoint + t1 * sunDir - object_position);
if (dot(samplePoint, sunDir) < 0.0) continue;
samplePoint = removeAxialTilt(samplePoint, object_rotationAxis);
@@ -151,7 +154,7 @@ float cloudShadows(vec3 closestPoint) {
lightAmount -= density;
}
- return 0.4 + saturate(lightAmount) / 0.6;
+ return 0.4 + saturate(lightAmount) * 0.6;
}
void main() {
@@ -167,8 +170,14 @@ void main() {
vec3 rayDir = normalize(pixelWorldPosition - camera_position);// normalized direction of the ray
vec3 closestPoint = camera_position + rayDir * maximumDistance;
+ float t0, t1;
+ if (rayIntersectSphere(camera_position, rayDir, object_position, object_radius, t0, t1)) {
+ closestPoint = camera_position + rayDir * min(t0, maximumDistance);
+ }
vec4 finalColor = screenColor;
+
+ // if the closest point is below the cloud layer, we must account for shadows
if (length(closestPoint - object_position) < clouds_layerRadius) finalColor.rgb *= cloudShadows(closestPoint);
vec3 cloudNormal;
diff --git a/src/shaders/gasPlanetMaterial/fragment.glsl b/src/shaders/gasPlanetMaterial/fragment.glsl
index 7a4030e9b..ac0a5d317 100644
--- a/src/shaders/gasPlanetMaterial/fragment.glsl
+++ b/src/shaders/gasPlanetMaterial/fragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/gasPlanetMaterial/vertex.glsl b/src/shaders/gasPlanetMaterial/vertex.glsl
index c75159e5f..fab66e59f 100644
--- a/src/shaders/gasPlanetMaterial/vertex.glsl
+++ b/src/shaders/gasPlanetMaterial/vertex.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/grassMaterial/grassFragment.glsl b/src/shaders/grassMaterial/grassFragment.glsl
index a2663a4ce..c9b190841 100644
--- a/src/shaders/grassMaterial/grassFragment.glsl
+++ b/src/shaders/grassMaterial/grassFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/grassMaterial/grassVertex.glsl b/src/shaders/grassMaterial/grassVertex.glsl
index f58c53cbb..51c5b1404 100644
--- a/src/shaders/grassMaterial/grassVertex.glsl
+++ b/src/shaders/grassMaterial/grassVertex.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/mandelbulb.glsl b/src/shaders/mandelbulb.glsl
index 5d549cd7d..2acbc8e6e 100644
--- a/src/shaders/mandelbulb.glsl
+++ b/src/shaders/mandelbulb.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/matterjet.glsl b/src/shaders/matterjet.glsl
index b04bb1139..bd70ac5dd 100644
--- a/src/shaders/matterjet.glsl
+++ b/src/shaders/matterjet.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/oceanFragment.glsl b/src/shaders/oceanFragment.glsl
index aa8fe2cb6..97c23a25b 100644
--- a/src/shaders/oceanFragment.glsl
+++ b/src/shaders/oceanFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -32,7 +32,7 @@ uniform sampler2D normalMap2;
#include "./utils/object.glsl";
-uniform vec4 planetInverseRotationQuaternion;
+uniform mat4 planetInverseRotationMatrix;
uniform float ocean_radius;
uniform float ocean_smoothness;
@@ -57,6 +57,8 @@ uniform float time;
#include "./utils/computeSpecularHighlight.glsl";
+#include "./utils/refraction.glsl";
+
void main() {
vec4 screenColor = texture2D(textureSampler, vUV);// the current screen color
@@ -72,9 +74,7 @@ void main() {
vec4 finalColor = screenColor;
- float waveAmplitude = 20.0;
- float waveOmega = 1.0/7.0;
- float actualRadius = ocean_radius + waveAmplitude * sin(time * waveOmega);
+ float actualRadius = ocean_radius;
float impactPoint, escapePoint;
if (rayIntersectSphere(camera_position, rayDir, object_position, actualRadius, impactPoint, escapePoint) && impactPoint < maximumDistance) {
@@ -85,30 +85,52 @@ void main() {
vec3 samplePoint = camera_position + impactPoint * rayDir - object_position;
- vec3 samplePointPlanetSpace = applyQuaternion(planetInverseRotationQuaternion, samplePoint);
+ vec3 samplePointPlanetSpace = mat3(planetInverseRotationMatrix) * samplePoint;
vec3 unitSamplePoint = normalize(samplePointPlanetSpace);
vec3 planetNormal = normalize(samplePoint);
- vec3 normalWave = triplanarNormal(samplePointPlanetSpace + vec3(time, time, -time) * 100.0, planetNormal, normalMap2, 0.00015, ocean_waveBlendingSharpness, 1.0);
- normalWave = triplanarNormal(samplePointPlanetSpace + vec3(-time, time, -time) * 100.0, normalWave, normalMap1, 0.0001, ocean_waveBlendingSharpness, 1.0);
+ vec3 normalWave = planetNormal;
+ /*normalWave = triplanarNormal(samplePointPlanetSpace + vec3(time, time, -time) * 0.2, normalWave, normalMap2, 0.15, ocean_waveBlendingSharpness, 1.0);
+ normalWave = triplanarNormal(samplePointPlanetSpace + vec3(-time, time, -time) * 0.2, normalWave, normalMap1, 0.1, ocean_waveBlendingSharpness, 1.0);
- normalWave = triplanarNormal(samplePointPlanetSpace + vec3(time, -time, -time) * 300.0, normalWave, normalMap1, 0.000025, ocean_waveBlendingSharpness, 0.5);
- normalWave = triplanarNormal(samplePointPlanetSpace + vec3(-time, -time, time) * 300.0, normalWave, normalMap2, 0.00002, ocean_waveBlendingSharpness, 0.5);
+ normalWave = triplanarNormal(samplePointPlanetSpace + vec3(time, -time, -time) * 0.6, normalWave, normalMap1, 0.025, ocean_waveBlendingSharpness, 0.5);
+ normalWave = triplanarNormal(samplePointPlanetSpace + vec3(-time, -time, time) * 0.6, normalWave, normalMap2, 0.02, ocean_waveBlendingSharpness, 0.5);*/
- normalWave = triplanarNormal(samplePointPlanetSpace + vec3(time, -time, -time) * 500.0, normalWave, normalMap2, 0.000010, ocean_waveBlendingSharpness, 0.5);
- normalWave = triplanarNormal(samplePointPlanetSpace + vec3(-time, -time, time) * 500.0, normalWave, normalMap1, 0.000005, ocean_waveBlendingSharpness, 0.5);
+ normalWave = triplanarNormal(samplePointPlanetSpace + vec3(time, -time, -time) * 1.0, normalWave, normalMap2, 0.010, ocean_waveBlendingSharpness, 0.5);
+ normalWave = triplanarNormal(samplePointPlanetSpace + vec3(-time, -time, time) * 1.0, normalWave, normalMap1, 0.005, ocean_waveBlendingSharpness, 0.5);
float opticalDepth01 = 1.0 - exp(-distanceThroughOcean * ocean_depthModifier);
float alpha = exp(-distanceThroughOcean * ocean_alphaModifier);
vec3 deepColor = vec3(0.0, 22.0, 82.0)/255.0;
vec3 shallowColor = vec3(32.0, 193.0, 180.0)/255.0;
- vec3 oceanColor = mix(shallowColor, deepColor, opticalDepth01) * star_colors[0];
+ vec3 oceanColor = mix(shallowColor, deepColor, opticalDepth01);
vec3 ambiant = mix(oceanColor, screenColor.rgb, alpha);
- float foamSize = 30.0;
+ // if the camera is not inside the ocean
+ if(impactPoint > 0.0) {
+ // color of the sky
+ vec3 reflectedSkyColor = vec3(0.6, 0.8, 0.95);
+
+ // refraction
+ float nAir = 1.0;
+ float nWater = 1.33;
+ float eta = nAir / nWater;
+ vec3 incidentRay = rayDir;
+ vec3 refractedRay = refract(incidentRay, normalWave, eta);
+
+ float cosThetaI = dot(-incidentRay, normalWave);
+ float cosThetaT = dot(refractedRay, -normalWave);
+
+ float amountReflected = fractionReflected(cosThetaI, cosThetaT, nAir, nWater);
+
+ ambiant = mix(ambiant, reflectedSkyColor, amountReflected);
+ }
+
+ float foamSize = 10.0;
float foamFactor = saturate((foamSize - distanceThroughOcean) / foamSize);
+ foamFactor = smoothstep(0.01, 1.0, foamFactor);
vec3 foamColor = vec3(0.8);
ambiant = mix(ambiant, foamColor, foamFactor);
@@ -117,7 +139,7 @@ void main() {
vec3 sunDir = normalize(star_positions[i] - samplePoint);
float ndl = max(dot(planetNormal, sunDir), 0.0);
- finalColor.rgb += ambiant * ndl;
+ finalColor.rgb += ambiant * ndl * star_colors[i];
if (length(camera_position - object_position) > ocean_radius) {
// if above ocean surface then specular highlight
diff --git a/src/shaders/rings/rings.glsl b/src/shaders/rings/rings.glsl
index 8e7235d95..28d59baba 100644
--- a/src/shaders/rings/rings.glsl
+++ b/src/shaders/rings/rings.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/rings/ringsDensity.glsl b/src/shaders/rings/ringsDensity.glsl
index 47d06a505..16b9d9e85 100644
--- a/src/shaders/rings/ringsDensity.glsl
+++ b/src/shaders/rings/ringsDensity.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/ringsFragment.glsl b/src/shaders/ringsFragment.glsl
index b0b441e90..41910a849 100644
--- a/src/shaders/ringsFragment.glsl
+++ b/src/shaders/ringsFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/shadowFragment.glsl b/src/shaders/shadowFragment.glsl
index cbf045d67..c378bc25f 100644
--- a/src/shaders/shadowFragment.glsl
+++ b/src/shaders/shadowFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/sierpinski.glsl b/src/shaders/sierpinski.glsl
index 001a061f1..69b632deb 100644
--- a/src/shaders/sierpinski.glsl
+++ b/src/shaders/sierpinski.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/starMaterial/fragment.glsl b/src/shaders/starMaterial/fragment.glsl
index 47af5e494..9434f0c37 100644
--- a/src/shaders/starMaterial/fragment.glsl
+++ b/src/shaders/starMaterial/fragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/starMaterial/utils/lut.glsl b/src/shaders/starMaterial/utils/lut.glsl
index ac45c5418..ae7c2804f 100644
--- a/src/shaders/starMaterial/utils/lut.glsl
+++ b/src/shaders/starMaterial/utils/lut.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/starMaterial/vertex.glsl b/src/shaders/starMaterial/vertex.glsl
index a784f105d..2d08400f7 100644
--- a/src/shaders/starMaterial/vertex.glsl
+++ b/src/shaders/starMaterial/vertex.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -26,7 +26,6 @@ varying vec3 vPositionW;
varying vec3 vPosition;
varying vec3 vUnitSamplePoint;
-uniform vec4 starInverseRotationQuaternion;
uniform vec3 starPosition;
#include "../utils/applyQuaternion.glsl";
@@ -40,5 +39,5 @@ void main() {
vPosition = vPositionW - starPosition;
- vUnitSamplePoint = applyQuaternion(starInverseRotationQuaternion, normalize(vPosition));
+ vUnitSamplePoint = normalize(position);
}
\ No newline at end of file
diff --git a/src/shaders/starfieldFragment.glsl b/src/shaders/starfieldFragment.glsl
index bdfaf0378..0b31858c7 100644
--- a/src/shaders/starfieldFragment.glsl
+++ b/src/shaders/starfieldFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/telluricPlanetMaterial/fragment.glsl b/src/shaders/telluricPlanetMaterial/fragment.glsl
index ec335dc2f..6b032c631 100644
--- a/src/shaders/telluricPlanetMaterial/fragment.glsl
+++ b/src/shaders/telluricPlanetMaterial/fragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/telluricPlanetMaterial/utils/computeTemperature01.glsl b/src/shaders/telluricPlanetMaterial/utils/computeTemperature01.glsl
index 97428bdce..08f63bf28 100644
--- a/src/shaders/telluricPlanetMaterial/utils/computeTemperature01.glsl
+++ b/src/shaders/telluricPlanetMaterial/utils/computeTemperature01.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/telluricPlanetMaterial/utils/lut.glsl b/src/shaders/telluricPlanetMaterial/utils/lut.glsl
index 5328c6c51..472b13337 100644
--- a/src/shaders/telluricPlanetMaterial/utils/lut.glsl
+++ b/src/shaders/telluricPlanetMaterial/utils/lut.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/telluricPlanetMaterial/utils/waterBoilingPointCelsius.glsl b/src/shaders/telluricPlanetMaterial/utils/waterBoilingPointCelsius.glsl
index e0af4baf2..e0cb4056d 100644
--- a/src/shaders/telluricPlanetMaterial/utils/waterBoilingPointCelsius.glsl
+++ b/src/shaders/telluricPlanetMaterial/utils/waterBoilingPointCelsius.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/telluricPlanetMaterial/vertex.glsl b/src/shaders/telluricPlanetMaterial/vertex.glsl
index bfde8d3ae..c18610359 100644
--- a/src/shaders/telluricPlanetMaterial/vertex.glsl
+++ b/src/shaders/telluricPlanetMaterial/vertex.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/textures/atmosphereLUT.glsl b/src/shaders/textures/atmosphereLUT.glsl
index e747f4eec..10264db91 100644
--- a/src/shaders/textures/atmosphereLUT.glsl
+++ b/src/shaders/textures/atmosphereLUT.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/textures/flatCloudLUT.glsl b/src/shaders/textures/flatCloudLUT.glsl
index 57322b632..efd5dde78 100644
--- a/src/shaders/textures/flatCloudLUT.glsl
+++ b/src/shaders/textures/flatCloudLUT.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/textures/ringsLUT.glsl b/src/shaders/textures/ringsLUT.glsl
index a82b9483c..e45f9eecc 100644
--- a/src/shaders/textures/ringsLUT.glsl
+++ b/src/shaders/textures/ringsLUT.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/applyQuaternion.glsl b/src/shaders/utils/applyQuaternion.glsl
index c945f5b7c..f27ac5c9c 100644
--- a/src/shaders/utils/applyQuaternion.glsl
+++ b/src/shaders/utils/applyQuaternion.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/atmosphere.glsl b/src/shaders/utils/atmosphere.glsl
index 23d0d5249..1cd52ce14 100644
--- a/src/shaders/utils/atmosphere.glsl
+++ b/src/shaders/utils/atmosphere.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/camera.glsl b/src/shaders/utils/camera.glsl
index 4e66ffbb7..b66d95bc2 100644
--- a/src/shaders/utils/camera.glsl
+++ b/src/shaders/utils/camera.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/computeSpecularHighlight.glsl b/src/shaders/utils/computeSpecularHighlight.glsl
index 7be715032..3ae177ca3 100644
--- a/src/shaders/utils/computeSpecularHighlight.glsl
+++ b/src/shaders/utils/computeSpecularHighlight.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/fastAcos.glsl b/src/shaders/utils/fastAcos.glsl
index 31690de1f..162a1b915 100644
--- a/src/shaders/utils/fastAcos.glsl
+++ b/src/shaders/utils/fastAcos.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/fractalNoise1D.glsl b/src/shaders/utils/fractalNoise1D.glsl
index f53185921..d3eb7f262 100644
--- a/src/shaders/utils/fractalNoise1D.glsl
+++ b/src/shaders/utils/fractalNoise1D.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/fractalNoise2D.glsl b/src/shaders/utils/fractalNoise2D.glsl
index f5c10f0e2..865a62f6e 100644
--- a/src/shaders/utils/fractalNoise2D.glsl
+++ b/src/shaders/utils/fractalNoise2D.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/lineIntersectSphere.glsl b/src/shaders/utils/lineIntersectSphere.glsl
index 2d933f965..4c9b3110a 100644
--- a/src/shaders/utils/lineIntersectSphere.glsl
+++ b/src/shaders/utils/lineIntersectSphere.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/noise.glsl b/src/shaders/utils/noise.glsl
index 6508bcf03..bc95ed779 100644
--- a/src/shaders/utils/noise.glsl
+++ b/src/shaders/utils/noise.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/noise1D.glsl b/src/shaders/utils/noise1D.glsl
index 6837d149e..25a8e9232 100644
--- a/src/shaders/utils/noise1D.glsl
+++ b/src/shaders/utils/noise1D.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/object.glsl b/src/shaders/utils/object.glsl
index 6268b0a2b..ed35a90ce 100644
--- a/src/shaders/utils/object.glsl
+++ b/src/shaders/utils/object.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/perlin3.glsl b/src/shaders/utils/perlin3.glsl
index b8734ebb0..564f5964e 100644
--- a/src/shaders/utils/perlin3.glsl
+++ b/src/shaders/utils/perlin3.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/rayIntersectCube.glsl b/src/shaders/utils/rayIntersectCube.glsl
index 826c44a57..cfd371336 100644
--- a/src/shaders/utils/rayIntersectCube.glsl
+++ b/src/shaders/utils/rayIntersectCube.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/rayIntersectSphere.glsl b/src/shaders/utils/rayIntersectSphere.glsl
index 824b249a5..a1a62772e 100644
--- a/src/shaders/utils/rayIntersectSphere.glsl
+++ b/src/shaders/utils/rayIntersectSphere.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/rayIntersectsPlane.glsl b/src/shaders/utils/rayIntersectsPlane.glsl
index 20e3521ef..518eff03c 100644
--- a/src/shaders/utils/rayIntersectsPlane.glsl
+++ b/src/shaders/utils/rayIntersectsPlane.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/refraction.glsl b/src/shaders/utils/refraction.glsl
new file mode 100644
index 000000000..223493695
--- /dev/null
+++ b/src/shaders/utils/refraction.glsl
@@ -0,0 +1,6 @@
+// see https://farside.ph.utexas.edu/teaching/em/lectures/node104.html
+float fractionReflected(float cosThetaI, float cosThetaT, float n1, float n2) {
+ float alpha = abs(cosThetaI) > 0.01 ? cosThetaT / cosThetaI : 0.0;
+ float beta = n2 / n1;
+ return (1.0 - alpha * beta) * (1.0 - alpha * beta) / ((1.0 + alpha * beta) * (1.0 + alpha * beta));
+}
\ No newline at end of file
diff --git a/src/shaders/utils/remap.glsl b/src/shaders/utils/remap.glsl
index 17820cd5d..fd6cfbee6 100644
--- a/src/shaders/utils/remap.glsl
+++ b/src/shaders/utils/remap.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/removeAxialTilt.glsl b/src/shaders/utils/removeAxialTilt.glsl
index 41955debb..98b9b033e 100644
--- a/src/shaders/utils/removeAxialTilt.glsl
+++ b/src/shaders/utils/removeAxialTilt.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/rotateAround.glsl b/src/shaders/utils/rotateAround.glsl
index 09a5cfd71..1a8527402 100644
--- a/src/shaders/utils/rotateAround.glsl
+++ b/src/shaders/utils/rotateAround.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/saturate.glsl b/src/shaders/utils/saturate.glsl
index 0c40a3ddd..07550960b 100644
--- a/src/shaders/utils/saturate.glsl
+++ b/src/shaders/utils/saturate.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/simplex4.glsl b/src/shaders/utils/simplex4.glsl
index 4e3fd31ec..3e0dc2bd9 100644
--- a/src/shaders/utils/simplex4.glsl
+++ b/src/shaders/utils/simplex4.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/smoothSharpener.glsl b/src/shaders/utils/smoothSharpener.glsl
index f3b31f397..cef4ab302 100644
--- a/src/shaders/utils/smoothSharpener.glsl
+++ b/src/shaders/utils/smoothSharpener.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/stars.glsl b/src/shaders/utils/stars.glsl
index 15471b13c..3af2889b1 100644
--- a/src/shaders/utils/stars.glsl
+++ b/src/shaders/utils/stars.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/theMessage.glsl b/src/shaders/utils/theMessage.glsl
index 4331d63df..c1764a3b9 100644
--- a/src/shaders/utils/theMessage.glsl
+++ b/src/shaders/utils/theMessage.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/toSphere.glsl b/src/shaders/utils/toSphere.glsl
index 504f39c85..c53ff12e7 100644
--- a/src/shaders/utils/toSphere.glsl
+++ b/src/shaders/utils/toSphere.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/toUV.glsl b/src/shaders/utils/toUV.glsl
index ba5d54d61..5f9e4b871 100644
--- a/src/shaders/utils/toUV.glsl
+++ b/src/shaders/utils/toUV.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/triplanarNormal.glsl b/src/shaders/utils/triplanarNormal.glsl
index 1ed8cd919..1fdce1d13 100644
--- a/src/shaders/utils/triplanarNormal.glsl
+++ b/src/shaders/utils/triplanarNormal.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/uvFromWorld.glsl b/src/shaders/utils/uvFromWorld.glsl
index 693e8ac18..2c6f4c463 100644
--- a/src/shaders/utils/uvFromWorld.glsl
+++ b/src/shaders/utils/uvFromWorld.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/vec3Lerp.glsl b/src/shaders/utils/vec3Lerp.glsl
index aa2f81b70..5d878ac3e 100644
--- a/src/shaders/utils/vec3Lerp.glsl
+++ b/src/shaders/utils/vec3Lerp.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/worldFromUV.glsl b/src/shaders/utils/worldFromUV.glsl
index 74b146687..1c51ef37c 100644
--- a/src/shaders/utils/worldFromUV.glsl
+++ b/src/shaders/utils/worldFromUV.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/utils/worley.glsl b/src/shaders/utils/worley.glsl
index 3a63bea9c..4075f10ad 100644
--- a/src/shaders/utils/worley.glsl
+++ b/src/shaders/utils/worley.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/shaders/volumetricCloudsFragment.glsl b/src/shaders/volumetricCloudsFragment.glsl
index 65e6e83d1..54df926b7 100644
--- a/src/shaders/volumetricCloudsFragment.glsl
+++ b/src/shaders/volumetricCloudsFragment.glsl
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/bodyEditor/nav.scss b/src/styles/bodyEditor/nav.scss
index 3b8f98ba7..b51fb06c9 100644
--- a/src/styles/bodyEditor/nav.scss
+++ b/src/styles/bodyEditor/nav.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/bodyEditor/panels.scss b/src/styles/bodyEditor/panels.scss
index daac3715e..7b0974dc3 100644
--- a/src/styles/bodyEditor/panels.scss
+++ b/src/styles/bodyEditor/panels.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/bodyEditor/toolbar.scss b/src/styles/bodyEditor/toolbar.scss
index 17fa54d14..18dea3e1a 100644
--- a/src/styles/bodyEditor/toolbar.scss
+++ b/src/styles/bodyEditor/toolbar.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/helmetOverlay/helmetOverlay.scss b/src/styles/helmetOverlay/helmetOverlay.scss
index cc6d0da26..da3f1a784 100644
--- a/src/styles/helmetOverlay/helmetOverlay.scss
+++ b/src/styles/helmetOverlay/helmetOverlay.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/index.scss b/src/styles/index.scss
index a9cd21542..2b66b46ac 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/mainMenu.scss b/src/styles/mainMenu.scss
index a1d78e104..5dcef7927 100644
--- a/src/styles/mainMenu.scss
+++ b/src/styles/mainMenu.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/pauseMenu/index.scss b/src/styles/pauseMenu/index.scss
index 0cc616bb0..ff5be9ea6 100644
--- a/src/styles/pauseMenu/index.scss
+++ b/src/styles/pauseMenu/index.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/utils/checkbox.scss b/src/styles/utils/checkbox.scss
index e6cb15057..219165517 100644
--- a/src/styles/utils/checkbox.scss
+++ b/src/styles/utils/checkbox.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/styles/utils/colorPicker.scss b/src/styles/utils/colorPicker.scss
index 9a5754900..c57945f9a 100644
--- a/src/styles/utils/colorPicker.scss
+++ b/src/styles/utils/colorPicker.scss
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/alphaTestis.ts b/src/ts/alphaTestis.ts
index daa0689c3..2cf7cfa85 100644
--- a/src/ts/alphaTestis.ts
+++ b/src/ts/alphaTestis.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -35,7 +35,6 @@ import { RingsUniforms } from "./postProcesses/rings/ringsUniform";
import { getMoonSeed } from "./planets/common";
import { SystemSeed } from "./utils/systemSeed";
import { SpaceStation } from "./spacestation/spaceStation";
-import { PhysicsViewer } from "@babylonjs/core/Debug/physicsViewer";
const engine = await CosmosJourneyer.CreateAsync();
@@ -57,7 +56,7 @@ starSystem.model.setName("Alpha Testis");
starSystemView.setStarSystem(starSystem, false);
const sunModel = new StarModel(0.51);
-const sun = StarSystemHelper.makeStar(starSystem, sunModel);
+const sun = StarSystemHelper.MakeStar(starSystem, sunModel);
sun.model.orbit.period = 60 * 60 * 24;
/*const secundaModel = new StarModel(-672446, sunModel);
@@ -71,14 +70,14 @@ terminaModel.orbit.period = 60 * 60;
const termina = StarSystemHelper.makeStar(starSystem, terminaModel);*/
const planetModel = new TelluricPlanetModel(0.4233609183800225, sunModel);
-planetModel.physicalProperties.minTemperature = -55;
+planetModel.physicalProperties.minTemperature = -40;
planetModel.physicalProperties.maxTemperature = 30;
planetModel.orbit.period = 60 * 60 * 24 * 365.25;
planetModel.orbit.radius = 4000 * planetModel.radius;
planetModel.orbit.normalToPlane = Vector3.Up();
-const planet = StarSystemHelper.makeTelluricPlanet(starSystem, planetModel);
+const planet = StarSystemHelper.MakeTelluricPlanet(starSystem, planetModel);
planet.model.ringsUniforms = new RingsUniforms(planet.model.rng);
planet.postProcesses.push(PostProcessType.RING);
@@ -101,14 +100,14 @@ moonModel.orbit.period = moonModel.physicalProperties.rotationPeriod;
moonModel.orbit.radius = 8 * planet.getRadius();
moonModel.orbit.normalToPlane = Vector3.Up();
-const moon = StarSystemHelper.makeSatellite(starSystem, planet, moonModel);
+const moon = StarSystemHelper.MakeSatellite(starSystem, planet, moonModel);
moon.material.colorSettings.plainColor.copyFromFloats(0.67, 0.67, 0.67);
moon.material.colorSettings.desertColor.copyFrom(new Color3(116, 134, 121).scale(1 / 255));
moon.material.colorSettings.steepColor.copyFrom(new Color3(92, 92, 92).scale(1 / 255));
-moon.material.setTexture("plainNormalMap", Assets.DirtNormalMap);
-moon.material.setTexture("bottomNormalMap", Assets.DirtNormalMap);
+moon.material.setTexture("plainNormalMap", Assets.DIRT_NORMAL_MAP);
+moon.material.setTexture("bottomNormalMap", Assets.DIRT_NORMAL_MAP);
moon.material.updateConstants();
const aresModel = new TelluricPlanetModel(0.3725, sunModel);
@@ -128,7 +127,7 @@ aresModel.orbit.normalToPlane = Vector3.Up();
//aresModel.terrainSettings.continent_base_height = 10e3;
//aresModel.terrainSettings.max_mountain_height = 20e3;
-const ares = StarSystemHelper.makeTelluricPlanet(starSystem, aresModel);
+const ares = StarSystemHelper.MakeTelluricPlanet(starSystem, aresModel);
ares.postProcesses.splice(ares.postProcesses.indexOf(PostProcessType.OCEAN), 1);
ares.postProcesses.splice(ares.postProcesses.indexOf(PostProcessType.CLOUDS), 1);
@@ -144,7 +143,7 @@ andromaqueModel.orbit.period = 60 * 60 * 24 * 365.25;
andromaqueModel.orbit.radius = 4300 * ares.getRadius();
andromaqueModel.orbit.normalToPlane = Vector3.Up();
-const andromaque = StarSystemHelper.makeGasPlanet(starSystem, andromaqueModel);
+const andromaque = StarSystemHelper.MakeGasPlanet(starSystem, andromaqueModel);
/*const blackHoleModel = new BlackHoleModel(0.5, sunModel);
blackHoleModel.orbit.period = 60 * 60 * 24 * 365.25;
@@ -167,9 +166,9 @@ if (aresAtmosphere) {
document.addEventListener("keydown", (e) => {
if (engine.isPaused()) return;
- if(e.key === "o") {
+ if (e.key === "o") {
const landingPad = spacestation.handleDockingRequest();
- if(landingPad !== null && starSystemView.scene.getActiveController() === spaceshipController) {
+ if (landingPad !== null && starSystemView.scene.getActiveController() === spaceshipController) {
spaceshipController.spaceship.engageLandingOnPad(landingPad);
}
}
diff --git a/src/ts/architecture/boundingSphere.ts b/src/ts/architecture/boundingSphere.ts
index a3905f39d..3763b6d74 100644
--- a/src/ts/architecture/boundingSphere.ts
+++ b/src/ts/architecture/boundingSphere.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/architecture/canHaveRings.ts b/src/ts/architecture/canHaveRings.ts
index 739782043..7aed570f8 100644
--- a/src/ts/architecture/canHaveRings.ts
+++ b/src/ts/architecture/canHaveRings.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/architecture/celestialBody.ts b/src/ts/architecture/celestialBody.ts
index b59b63f3d..3ff7a0dff 100644
--- a/src/ts/architecture/celestialBody.ts
+++ b/src/ts/architecture/celestialBody.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -18,7 +18,7 @@
import { OrbitalObject, OrbitalObjectModel } from "./orbitalObject";
import { HasPostProcesses } from "./hasPostProcesses";
import { CanHaveRings } from "./canHaveRings";
-import { BODY_TYPE } from "../model/common";
+import { BodyType } from "../model/common";
/**
* Describes all celestial bodies (a combination of OrbitalObject, CanHaveRings and HasPostProcesses)
@@ -42,7 +42,7 @@ export interface CelestialBodyModel extends OrbitalObjectModel {
/**
* The type of the celestial body
*/
- readonly bodyType: BODY_TYPE;
+ readonly bodyType: BodyType;
/**
* The radius of the celestial body
diff --git a/src/ts/architecture/hasPostProcesses.ts b/src/ts/architecture/hasPostProcesses.ts
index 68998bb6d..1e0fc397e 100644
--- a/src/ts/architecture/hasPostProcesses.ts
+++ b/src/ts/architecture/hasPostProcesses.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/architecture/orbitalObject.ts b/src/ts/architecture/orbitalObject.ts
index bf12f8983..c301dbb31 100644
--- a/src/ts/architecture/orbitalObject.ts
+++ b/src/ts/architecture/orbitalObject.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/architecture/physicalProperties.ts b/src/ts/architecture/physicalProperties.ts
index ed16d63a8..0a359a87f 100644
--- a/src/ts/architecture/physicalProperties.ts
+++ b/src/ts/architecture/physicalProperties.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/architecture/planet.ts b/src/ts/architecture/planet.ts
index 48538795d..ccd848c1a 100644
--- a/src/ts/architecture/planet.ts
+++ b/src/ts/architecture/planet.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/architecture/stellarObject.ts b/src/ts/architecture/stellarObject.ts
index e8554f97b..3838474d5 100644
--- a/src/ts/architecture/stellarObject.ts
+++ b/src/ts/architecture/stellarObject.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/architecture/transformable.ts b/src/ts/architecture/transformable.ts
index d572f57b2..992985788 100644
--- a/src/ts/architecture/transformable.ts
+++ b/src/ts/architecture/transformable.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/assets.ts b/src/ts/assets.ts
index f139b2b53..f7e82d8d5 100644
--- a/src/ts/assets.ts
+++ b/src/ts/assets.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -73,113 +73,112 @@ import { createButterfly } from "./proceduralAssets/butterfly/butterfly";
import { createGrassBlade } from "./proceduralAssets/grass/grassBlade";
import { ButterflyMaterial } from "./proceduralAssets/butterfly/butterflyMaterial";
import { GrassMaterial } from "./proceduralAssets/grass/grassMaterial";
-import { Axis } from "@babylonjs/core/Maths/math.axis";
export class Assets {
static IS_READY = false;
// Textures
- static RockNormalMap: Texture;
- static DirtNormalMap: Texture;
- static BottomNormalMap: Texture;
- static GrassNormalMap: Texture;
- static SnowNormalMap1: Texture;
- static SnowNormalMap2: Texture;
- static SandNormalMap1: Texture;
- static SandNormalMap2: Texture;
- static WaterNormalMap1: Texture;
- static WaterNormalMap2: Texture;
+ static ROCK_NORMAL_MAP: Texture;
+ static DIRT_NORMAL_MAP: Texture;
+ static BOTTOM_NORMAL_MAP: Texture;
+ static GRASS_NORMAL_MAP: Texture;
+ static SNOW_NORMAL_MAP_1: Texture;
+ static SNOW_NORMAL_MAP_2: Texture;
+ static SAND_NORMAL_MAP_1: Texture;
+ static SAND_NORMAL_MAP_2: Texture;
+ static WATER_NORMAL_MAP_1: Texture;
+ static WATER_NORMAL_MAP_2: Texture;
- static Starfield: Texture;
- static PlumeParticle: Texture;
+ static STAR_FIELD: Texture;
+ static PLUME_PARTICLE: Texture;
- static FlareTexture: Texture;
+ static FLARE_TEXTURE: Texture;
- static EmptyTexture: Texture;
+ static EMPTY_TEXTURE: Texture;
- static AtmosphereLUT: ProceduralTexture;
+ static ATMOSPHERE_LUT: ProceduralTexture;
- static WarpNoise: Texture;
- static SeamlessPerlin: Texture;
+ static WARP_NOISE: Texture;
+ static SEAMLESS_PERLIN: Texture;
- private static Spaceship: Mesh;
- private static EndeavorSpaceship: Mesh;
- private static Spacestation: Mesh;
- private static Banana: Mesh;
- private static Character: Mesh;
+ private static SPACESHIP: Mesh;
+ private static ENDEAVOR_SPACESHIP: Mesh;
+ private static SPACE_STATION: Mesh;
+ private static BANANA: Mesh;
+ private static CHARACTER: Mesh;
- private static LandingPad: Mesh;
+ private static LANDING_PAD: Mesh;
- public static Rock: Mesh;
- public static Tree: Mesh;
- public static ScatterCube: Mesh;
+ public static ROCK: Mesh;
+ public static TREE: Mesh;
+ public static SCATTER_CUBE: Mesh;
- public static Butterfly: Mesh;
- public static GrassBlade: Mesh;
+ public static BUTTERFLY: Mesh;
+ public static GRASS_BLADE: Mesh;
- public static ButterflyMaterial: ButterflyMaterial;
- public static GrassMaterial: GrassMaterial;
+ public static BUTTERFLY_MATERIAL: ButterflyMaterial;
+ public static GRASS_MATERIAL: GrassMaterial;
- public static OuchSound: Sound;
- public static EngineRunningSound: Sound;
+ public static OUCH_SOUND: Sound;
+ public static ENGINE_RUNNING_SOUND: Sound;
- private static manager: AssetsManager;
+ private static MANAGER: AssetsManager;
static async Init(scene: Scene): Promise {
- Assets.manager = new AssetsManager(scene);
+ Assets.MANAGER = new AssetsManager(scene);
console.log("Initializing assets...");
- Assets.manager.addTextureTask("RockNormalMap", rockNormalMap).onSuccess = (task) => (Assets.RockNormalMap = task.texture);
- Assets.manager.addTextureTask("DirtNormalMap", dirtNormalMap).onSuccess = (task) => (Assets.DirtNormalMap = task.texture);
- Assets.manager.addTextureTask("BottomNormalMap", bottomNormalMap).onSuccess = (task) => (Assets.BottomNormalMap = task.texture);
- Assets.manager.addTextureTask("GrassNormalMap", grassNormalMap).onSuccess = (task) => (Assets.GrassNormalMap = task.texture);
- Assets.manager.addTextureTask("SnowNormalMap1", snowNormalMap1).onSuccess = (task) => (Assets.SnowNormalMap1 = task.texture);
- Assets.manager.addTextureTask("SnowNormalMap2", snowNormalMap2).onSuccess = (task) => (Assets.SnowNormalMap2 = task.texture);
- Assets.manager.addTextureTask("SandNormalMap1", sandNormalMap1).onSuccess = (task) => (Assets.SandNormalMap1 = task.texture);
- Assets.manager.addTextureTask("SandNormalMap2", sandNormalMap2).onSuccess = (task) => (Assets.SandNormalMap2 = task.texture);
- Assets.manager.addTextureTask("WaterNormalMap1", waterNormal1).onSuccess = (task) => (Assets.WaterNormalMap1 = task.texture);
- Assets.manager.addTextureTask("WaterNormalMap2", waterNormal2).onSuccess = (task) => (Assets.WaterNormalMap2 = task.texture);
+ Assets.MANAGER.addTextureTask("RockNormalMap", rockNormalMap).onSuccess = (task) => (Assets.ROCK_NORMAL_MAP = task.texture);
+ Assets.MANAGER.addTextureTask("DirtNormalMap", dirtNormalMap).onSuccess = (task) => (Assets.DIRT_NORMAL_MAP = task.texture);
+ Assets.MANAGER.addTextureTask("BottomNormalMap", bottomNormalMap).onSuccess = (task) => (Assets.BOTTOM_NORMAL_MAP = task.texture);
+ Assets.MANAGER.addTextureTask("GrassNormalMap", grassNormalMap).onSuccess = (task) => (Assets.GRASS_NORMAL_MAP = task.texture);
+ Assets.MANAGER.addTextureTask("SnowNormalMap1", snowNormalMap1).onSuccess = (task) => (Assets.SNOW_NORMAL_MAP_1 = task.texture);
+ Assets.MANAGER.addTextureTask("SnowNormalMap2", snowNormalMap2).onSuccess = (task) => (Assets.SNOW_NORMAL_MAP_2 = task.texture);
+ Assets.MANAGER.addTextureTask("SandNormalMap1", sandNormalMap1).onSuccess = (task) => (Assets.SAND_NORMAL_MAP_1 = task.texture);
+ Assets.MANAGER.addTextureTask("SandNormalMap2", sandNormalMap2).onSuccess = (task) => (Assets.SAND_NORMAL_MAP_2 = task.texture);
+ Assets.MANAGER.addTextureTask("WaterNormalMap1", waterNormal1).onSuccess = (task) => (Assets.WATER_NORMAL_MAP_1 = task.texture);
+ Assets.MANAGER.addTextureTask("WaterNormalMap2", waterNormal2).onSuccess = (task) => (Assets.WATER_NORMAL_MAP_2 = task.texture);
- Assets.manager.addTextureTask("Starfield", starfield).onSuccess = (task) => (Assets.Starfield = task.texture);
+ Assets.MANAGER.addTextureTask("Starfield", starfield).onSuccess = (task) => (Assets.STAR_FIELD = task.texture);
- Assets.manager.addTextureTask("PlumeParticle", plumeParticle).onSuccess = (task) => (Assets.PlumeParticle = task.texture);
- Assets.manager.addTextureTask("FlareTexture", flareParticle).onSuccess = (task) => (Assets.FlareTexture = task.texture);
+ Assets.MANAGER.addTextureTask("PlumeParticle", plumeParticle).onSuccess = (task) => (Assets.PLUME_PARTICLE = task.texture);
+ Assets.MANAGER.addTextureTask("FlareTexture", flareParticle).onSuccess = (task) => (Assets.FLARE_TEXTURE = task.texture);
- Assets.manager.addTextureTask("SeamlessPerlin", seamlessPerlin).onSuccess = (task) => (Assets.SeamlessPerlin = task.texture);
- Assets.manager.addTextureTask("WarpNoise", warpNoise).onSuccess = (task) => (Assets.WarpNoise = task.texture);
+ Assets.MANAGER.addTextureTask("SeamlessPerlin", seamlessPerlin).onSuccess = (task) => (Assets.SEAMLESS_PERLIN = task.texture);
+ Assets.MANAGER.addTextureTask("WarpNoise", warpNoise).onSuccess = (task) => (Assets.WARP_NOISE = task.texture);
- Assets.AtmosphereLUT = new ProceduralTexture("atmosphereLUT", 100, { fragmentSource: atmosphereLUT }, scene, undefined, false, false);
- Assets.AtmosphereLUT.refreshRate = 0;
+ Assets.ATMOSPHERE_LUT = new ProceduralTexture("atmosphereLUT", 100, { fragmentSource: atmosphereLUT }, scene, undefined, false, false);
+ Assets.ATMOSPHERE_LUT.refreshRate = 0;
- Assets.manager.addTextureTask("EmptyTexture", empty).onSuccess = (task) => (Assets.EmptyTexture = task.texture);
+ Assets.MANAGER.addTextureTask("EmptyTexture", empty).onSuccess = (task) => (Assets.EMPTY_TEXTURE = task.texture);
- const spaceshipTask = Assets.manager.addMeshTask("spaceshipTask", "", "", spaceship);
+ const spaceshipTask = Assets.MANAGER.addMeshTask("spaceshipTask", "", "", spaceship);
spaceshipTask.onSuccess = function (task: MeshAssetTask) {
- Assets.Spaceship = task.loadedMeshes[0] as Mesh;
+ Assets.SPACESHIP = task.loadedMeshes[0] as Mesh;
- for (const mesh of Assets.Spaceship.getChildMeshes()) {
+ for (const mesh of Assets.SPACESHIP.getChildMeshes()) {
mesh.isVisible = false;
}
console.log("Spaceship loaded");
};
- const endeavorSpaceshipTask = Assets.manager.addMeshTask("endeavorSpaceshipTask", "", "", endeavorSpaceship);
+ const endeavorSpaceshipTask = Assets.MANAGER.addMeshTask("endeavorSpaceshipTask", "", "", endeavorSpaceship);
endeavorSpaceshipTask.onSuccess = function (task: MeshAssetTask) {
- Assets.EndeavorSpaceship = task.loadedMeshes[0] as Mesh;
+ Assets.ENDEAVOR_SPACESHIP = task.loadedMeshes[0] as Mesh;
- for (const mesh of Assets.EndeavorSpaceship.getChildMeshes()) {
+ for (const mesh of Assets.ENDEAVOR_SPACESHIP.getChildMeshes()) {
mesh.isVisible = false;
}
console.log("Endeavor Spaceship loaded");
};
- const spacestationTask = Assets.manager.addMeshTask("spacestationTask", "", "", shipCarrier);
+ const spacestationTask = Assets.MANAGER.addMeshTask("spacestationTask", "", "", shipCarrier);
spacestationTask.onSuccess = function (task: MeshAssetTask) {
- Assets.Spacestation = task.loadedMeshes[0] as Mesh;
+ Assets.SPACE_STATION = task.loadedMeshes[0] as Mesh;
- for (const mesh of Assets.Spacestation.getChildMeshes()) {
+ for (const mesh of Assets.SPACE_STATION.getChildMeshes()) {
mesh.isVisible = false;
//pbr._reflectionTexture = new Texture(starfield, scene);
//pbr._reflectionTexture.coordinatesMode = Texture.SPHERICAL_MODE;
@@ -188,61 +187,61 @@ export class Assets {
console.log("Spacestation loaded");
};
- const bananaTask = Assets.manager.addMeshTask("bananaTask", "", "", banana);
+ const bananaTask = Assets.MANAGER.addMeshTask("bananaTask", "", "", banana);
bananaTask.onSuccess = function (task: MeshAssetTask) {
- Assets.Banana = task.loadedMeshes[0] as Mesh;
- Assets.Banana.isVisible = false;
+ Assets.BANANA = task.loadedMeshes[0] as Mesh;
+ Assets.BANANA.isVisible = false;
- for (const mesh of Assets.Banana.getChildMeshes()) {
+ for (const mesh of Assets.BANANA.getChildMeshes()) {
mesh.isVisible = false;
}
console.log("Banana loaded");
};
- const characterTask = Assets.manager.addMeshTask("characterTask", "", "", character);
+ const characterTask = Assets.MANAGER.addMeshTask("characterTask", "", "", character);
characterTask.onSuccess = function (task: MeshAssetTask) {
- Assets.Character = task.loadedMeshes[0] as Mesh;
- Assets.Character.isVisible = false;
+ Assets.CHARACTER = task.loadedMeshes[0] as Mesh;
+ Assets.CHARACTER.isVisible = false;
- for (const mesh of Assets.Character.getChildMeshes()) {
+ for (const mesh of Assets.CHARACTER.getChildMeshes()) {
mesh.isVisible = false;
}
console.log("Character loaded");
};
- const rockTask = Assets.manager.addMeshTask("rockTask", "", "", rock);
+ const rockTask = Assets.MANAGER.addMeshTask("rockTask", "", "", rock);
rockTask.onSuccess = function (task: MeshAssetTask) {
- Assets.Rock = task.loadedMeshes[0].getChildMeshes()[0] as Mesh;
- Assets.Rock.position.y = 0.1;
- Assets.Rock.scaling.scaleInPlace(0.2);
- Assets.Rock.bakeCurrentTransformIntoVertices();
- Assets.Rock.checkCollisions = true;
- Assets.Rock.isVisible = false;
+ Assets.ROCK = task.loadedMeshes[0].getChildMeshes()[0] as Mesh;
+ Assets.ROCK.position.y = 0.1;
+ Assets.ROCK.scaling.scaleInPlace(0.2);
+ Assets.ROCK.bakeCurrentTransformIntoVertices();
+ Assets.ROCK.checkCollisions = true;
+ Assets.ROCK.isVisible = false;
console.log("Rock loaded");
};
- const landingPadTask = Assets.manager.addMeshTask("landingPadTask", "", "", landingPad);
+ const landingPadTask = Assets.MANAGER.addMeshTask("landingPadTask", "", "", landingPad);
landingPadTask.onSuccess = function (task: MeshAssetTask) {
- Assets.LandingPad = task.loadedMeshes[0] as Mesh;
- Assets.LandingPad.isVisible = false;
+ Assets.LANDING_PAD = task.loadedMeshes[0] as Mesh;
+ Assets.LANDING_PAD.isVisible = false;
- for (const mesh of Assets.LandingPad.getChildMeshes()) {
+ for (const mesh of Assets.LANDING_PAD.getChildMeshes()) {
mesh.isVisible = false;
}
console.log("LandingPad loaded");
};
- const treeTask = Assets.manager.addMeshTask("treeTask", "", "", tree);
+ const treeTask = Assets.MANAGER.addMeshTask("treeTask", "", "", tree);
treeTask.onSuccess = function (task: MeshAssetTask) {
- Assets.Tree = task.loadedMeshes[0] as Mesh;
- Assets.Tree.position.y = -1;
- Assets.Tree.scaling.scaleInPlace(3);
- Assets.Tree.bakeCurrentTransformIntoVertices();
- Assets.Tree.checkCollisions = true;
+ Assets.TREE = task.loadedMeshes[0] as Mesh;
+ Assets.TREE.position.y = -1;
+ Assets.TREE.scaling.scaleInPlace(3);
+ Assets.TREE.bakeCurrentTransformIntoVertices();
+ Assets.TREE.checkCollisions = true;
const treeMaterial = new StandardMaterial("treeMaterial", scene);
@@ -255,75 +254,77 @@ export class Assets {
treeMaterial.diffuseTexture = treeTexture;
treeMaterial.specularColor.set(0, 0, 0);
- Assets.Tree.material = treeMaterial;
+ Assets.TREE.material = treeMaterial;
- Assets.Tree.isVisible = false;
+ Assets.TREE.isVisible = false;
console.log("Tree loaded");
};
- Assets.Butterfly = createButterfly(scene);
- Assets.ButterflyMaterial = new ButterflyMaterial(scene);
- Assets.Butterfly.material = Assets.ButterflyMaterial;
+ Assets.BUTTERFLY = createButterfly(scene);
+ Assets.BUTTERFLY.isVisible = false;
+ Assets.BUTTERFLY_MATERIAL = new ButterflyMaterial(scene);
+ Assets.BUTTERFLY.material = Assets.BUTTERFLY_MATERIAL;
- Assets.GrassBlade = createGrassBlade(scene, 3);
- Assets.GrassMaterial = new GrassMaterial(scene);
- Assets.GrassBlade.material = Assets.GrassMaterial;
+ Assets.GRASS_BLADE = createGrassBlade(scene, 3);
+ Assets.GRASS_BLADE.isVisible = false;
+ Assets.GRASS_MATERIAL = new GrassMaterial(scene);
+ Assets.GRASS_BLADE.material = Assets.GRASS_MATERIAL;
- const ouchSoundTask = Assets.manager.addBinaryFileTask("ouchSoundTask", ouchSound);
+ const ouchSoundTask = Assets.MANAGER.addBinaryFileTask("ouchSoundTask", ouchSound);
ouchSoundTask.onSuccess = function (task) {
- Assets.OuchSound = new Sound("OuchSound", task.data, scene);
+ Assets.OUCH_SOUND = new Sound("OuchSound", task.data, scene);
console.log("Ouch sound loaded");
};
- const engineRunningSoundTask = Assets.manager.addBinaryFileTask("engineRunningSoundTask", engineRunningSound);
+ const engineRunningSoundTask = Assets.MANAGER.addBinaryFileTask("engineRunningSoundTask", engineRunningSound);
engineRunningSoundTask.onSuccess = function (task) {
- Assets.EngineRunningSound = new Sound("EngineRunningSound", task.data, scene, null, {
+ Assets.ENGINE_RUNNING_SOUND = new Sound("EngineRunningSound", task.data, scene, null, {
loop: true
});
console.log("Engine running sound loaded");
};
- Assets.manager.onProgress = (remainingCount, totalCount) => {
+ Assets.MANAGER.onProgress = (remainingCount, totalCount) => {
scene.getEngine().loadingScreen.loadingUIText = `Loading assets... ${totalCount - remainingCount}/${totalCount}`;
};
- Assets.ScatterCube = MeshBuilder.CreateBox("cube", { size: 1 }, scene);
- Assets.ScatterCube.position.y = 0.5;
- Assets.ScatterCube.bakeCurrentTransformIntoVertices();
- Assets.ScatterCube.isVisible = false;
+ Assets.SCATTER_CUBE = MeshBuilder.CreateBox("cube", { size: 1 }, scene);
+ Assets.SCATTER_CUBE.position.y = 0.5;
+ Assets.SCATTER_CUBE.bakeCurrentTransformIntoVertices();
+ Assets.SCATTER_CUBE.isVisible = false;
- Assets.manager.onFinish = () => {
+ Assets.MANAGER.onFinish = () => {
console.log("Assets loaded");
Assets.IS_READY = true;
};
- await Assets.manager.loadAsync();
+ await Assets.MANAGER.loadAsync();
}
static CreateSpaceShipInstance(): InstancedMesh {
- return Assets.Spaceship.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
+ return Assets.SPACESHIP.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
}
static CreateEndeavorSpaceShipInstance(): InstancedMesh {
- const instance = Assets.EndeavorSpaceship.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
+ const instance = Assets.ENDEAVOR_SPACESHIP.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
for (const child of instance.getChildMeshes()) child.isVisible = true;
return instance;
}
static CreateSpaceStationInstance(): InstancedMesh {
- return Assets.Spacestation.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
+ return Assets.SPACE_STATION.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
}
static CreateBananaInstance(): InstancedMesh {
- return Assets.Banana.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
+ return Assets.BANANA.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
}
static CreateBananaClone(sizeInMeters: number): Mesh {
- const mesh = Assets.Banana.getChildMeshes()[0]?.clone("bananaClone" + Math.random(), null) as Mesh;
+ const mesh = Assets.BANANA.getChildMeshes()[0]?.clone("bananaClone" + Math.random(), null) as Mesh;
mesh.scaling.scaleInPlace(5 * sizeInMeters);
mesh.isVisible = true;
@@ -332,15 +333,15 @@ export class Assets {
}
static CreateCharacterInstance(): InstancedMesh {
- return Assets.Character.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
+ return Assets.CHARACTER.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
}
static CreateRockInstance(): InstancedMesh {
- return Assets.Rock.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
+ return Assets.ROCK.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
}
static CreateLandingPadInstance(): InstancedMesh {
- return Assets.LandingPad.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
+ return Assets.LANDING_PAD.instantiateHierarchy(null, { doNotInstantiate: false }) as InstancedMesh;
}
static DebugMaterial(name: string, diffuse = false, wireframe = false) {
diff --git a/src/ts/blackHoleDemo.ts b/src/ts/blackHoleDemo.ts
index 568394f01..0949138e9 100644
--- a/src/ts/blackHoleDemo.ts
+++ b/src/ts/blackHoleDemo.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -34,10 +34,10 @@ const starSystemSeed = new SystemSeed(0, 0, 0, 0);
const starSystem = new StarSystemController(starSystemSeed, scene);
starSystemView.setStarSystem(starSystem, false);
-const BH = StarSystemHelper.makeBlackHole(starSystem, 0);
+const BH = StarSystemHelper.MakeBlackHole(starSystem, 0);
BH.model.orbit.radius = 0;
-const planet = StarSystemHelper.makeTelluricPlanet(starSystem);
+const planet = StarSystemHelper.MakeTelluricPlanet(starSystem);
planet.model.orbit.radius = 45 * planet.getRadius();
engine.init(true);
diff --git a/src/ts/bodies/cullable.ts b/src/ts/bodies/cullable.ts
index 2f67d5af1..093f7d6f8 100644
--- a/src/ts/bodies/cullable.ts
+++ b/src/ts/bodies/cullable.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/characterDemo.ts b/src/ts/characterDemo.ts
index 10f19c926..bc800e3ef 100644
--- a/src/ts/characterDemo.ts
+++ b/src/ts/characterDemo.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/cosmosJourneyer.ts b/src/ts/cosmosJourneyer.ts
index 302feaa9f..9cfd5e772 100644
--- a/src/ts/cosmosJourneyer.ts
+++ b/src/ts/cosmosJourneyer.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -29,9 +29,8 @@ import "@babylonjs/core/Physics/physicsEngineComponent";
import HavokPhysics from "@babylonjs/havok";
import "@babylonjs/core/Engines/WebGPU/Extensions/";
-import { Observable } from "@babylonjs/core/Misc/observable";
import { PauseMenu } from "./ui/pauseMenu";
-import { StarSystemView } from "./starSystem/StarSystemView";
+import { StarSystemView } from "./starSystem/starSystemView";
import { EngineFactory } from "@babylonjs/core/Engines/engineFactory";
import { MainMenu } from "./mainMenu/mainMenu";
import { SystemSeed } from "./utils/systemSeed";
@@ -69,8 +68,6 @@ export class CosmosJourneyer {
private videoRecorder: VideoRecorder | null = null;
- readonly onToggleStarMapObservable = new Observable();
-
private constructor(engine: Engine, starSystemView: StarSystemView, starMap: StarMap) {
this.engine = engine;
@@ -235,8 +232,6 @@ export class CosmosJourneyer {
this.activeScene = this.starSystemView.scene;
this.starSystemView.showUI();
}
-
- this.onToggleStarMapObservable.notifyObservers(this.activeScene === this.starMap.scene);
}
/**
diff --git a/src/ts/debugAssets.ts b/src/ts/debugAssets.ts
index 3ad20a3f2..e9ca961b2 100644
--- a/src/ts/debugAssets.ts
+++ b/src/ts/debugAssets.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/defaultController/defaultControls.ts b/src/ts/defaultController/defaultControls.ts
index 73ce8ee89..f150c811e 100644
--- a/src/ts/defaultController/defaultControls.ts
+++ b/src/ts/defaultController/defaultControls.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -19,22 +19,13 @@ import { Controls } from "../uberCore/controls";
import { Scene } from "@babylonjs/core/scene";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
import { TransformNode } from "@babylonjs/core/Meshes";
-import {
- getForwardDirection,
- getRightDirection,
- getUpwardDirection,
- pitch,
- roll,
- setRotationQuaternion,
- translate,
- yaw
-} from "../uberCore/transforms/basicTransform";
+import { getForwardDirection, getRightDirection, getUpwardDirection, pitch, roll, setRotationQuaternion, translate, yaw } from "../uberCore/transforms/basicTransform";
import { Input } from "../inputs/input";
import { Camera } from "@babylonjs/core/Cameras/camera";
import { FreeCamera } from "@babylonjs/core/Cameras/freeCamera";
-import { LOCAL_DIRECTION } from "../uberCore/localDirections";
import { getTransformationQuaternion } from "../utils/algebra";
import { Quaternion } from "@babylonjs/core/Maths/math";
+import { LocalDirection } from "../uberCore/localDirections";
export class DefaultControls implements Controls {
private readonly transform: TransformNode;
@@ -75,7 +66,7 @@ export class DefaultControls implements Controls {
pitch(this.transform, input.getPitch() * this.rotationSpeed * deltaTime);
yaw(this.transform, input.getYaw() * this.rotationSpeed * deltaTime);
- const cameraForward = this.camera.getDirection(LOCAL_DIRECTION.BACKWARD);
+ const cameraForward = this.camera.getDirection(LocalDirection.BACKWARD);
const transformForward = getForwardDirection(this.transform);
if (!cameraForward.equalsWithEpsilon(transformForward)) {
diff --git a/src/ts/index.ts b/src/ts/index.ts
index 4bccb6d95..a2052e350 100644
--- a/src/ts/index.ts
+++ b/src/ts/index.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -29,9 +29,9 @@ const starSystemView = engine.starSystemView;
const urlParams = new URLSearchParams(window.location.search);
const universeCoordinatesString = urlParams.get("universeCoordinates");
-if(universeCoordinatesString !== null) {
+if (universeCoordinatesString !== null) {
const jsonString = decodeBase64(universeCoordinatesString);
- if(!isJsonStringValidUniverseCoordinates(jsonString)) {
+ if (!isJsonStringValidUniverseCoordinates(jsonString)) {
alert("Invalid universe coordinates");
}
engine.loadUniverseCoordinates(JSON.parse(jsonString));
diff --git a/src/ts/inputs/gamepad.ts b/src/ts/inputs/gamepad.ts
index 0c448760c..8de921a13 100644
--- a/src/ts/inputs/gamepad.ts
+++ b/src/ts/inputs/gamepad.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/inputs/input.ts b/src/ts/inputs/input.ts
index b7856eb7d..632a4b2c6 100644
--- a/src/ts/inputs/input.ts
+++ b/src/ts/inputs/input.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/inputs/keyboard.ts b/src/ts/inputs/keyboard.ts
index 21e600b22..3fecdf939 100644
--- a/src/ts/inputs/keyboard.ts
+++ b/src/ts/inputs/keyboard.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/inputs/mouse.ts b/src/ts/inputs/mouse.ts
index a26921eec..49d88252b 100644
--- a/src/ts/inputs/mouse.ts
+++ b/src/ts/inputs/mouse.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/landingSimulator.ts b/src/ts/landingSimulator.ts
index 2ede3f364..76b0721f6 100644
--- a/src/ts/landingSimulator.ts
+++ b/src/ts/landingSimulator.ts
@@ -84,7 +84,6 @@ translate(spacestation.getTransform(), new Vector3(0, -100, 0));
ground.position.y = -40;
ground.receiveShadows = true;*/
-
const defaultControls = new DefaultControls(scene);
defaultControls.speed *= 15;
defaultControls.addInput(new Keyboard());
@@ -101,8 +100,8 @@ scene.onBeforeRenderObservable.add(() => {
//OrbitalObject.UpdateRotation(spacestation, deltaTime);
- spacestation.ringInstances.forEach(mesh => {
- mesh.rotate(Axis.Y, 0.01 * deltaTime);
+ spacestation.ringInstances.forEach((mesh) => {
+ mesh.rotate(Axis.Y, 0.01 * deltaTime);
});
});
@@ -113,7 +112,7 @@ scene.executeWhenReady(() => {
});
const landingPad = spacestation.handleDockingRequest();
-if(landingPad === null) throw new Error("Docking request denied");
+if (landingPad === null) throw new Error("Docking request denied");
document.addEventListener("keydown", (event) => {
if (event.key === "o") {
diff --git a/src/ts/mainMenu/mainMenu.ts b/src/ts/mainMenu/mainMenu.ts
index 4d1ebcd53..486ae56a5 100644
--- a/src/ts/mainMenu/mainMenu.ts
+++ b/src/ts/mainMenu/mainMenu.ts
@@ -1,9 +1,9 @@
import { UberScene } from "../uberCore/uberScene";
import { DefaultControls } from "../defaultController/defaultControls";
-import { StarSystemView } from "../starSystem/StarSystemView";
+import { StarSystemView } from "../starSystem/starSystemView";
import { StarSystemController } from "../starSystem/starSystemController";
import { positionNearObjectWithStarVisible } from "../utils/positionNearObject";
-import { BODY_TYPE } from "../model/common";
+import { BodyType } from "../model/common";
import { EditorVisibility } from "../ui/bodyEditor/bodyEditor";
import mainMenuHTML from "../../html/mainMenu.html";
import { getForwardDirection } from "../uberCore/transforms/basicTransform";
@@ -84,7 +84,7 @@ export class MainMenu {
this.starSystemView.onInitStarSystem.addOnce(() => {
this.starSystemView.switchToDefaultControls();
- const nbRadius = this.starSystemController.model.getBodyTypeOfStar(0) === BODY_TYPE.BLACK_HOLE ? 8 : 2;
+ const nbRadius = this.starSystemController.model.getBodyTypeOfStar(0) === BodyType.BLACK_HOLE ? 8 : 2;
positionNearObjectWithStarVisible(
this.controls,
this.starSystemController.planets.length > 0 ? this.starSystemController.getBodies()[1] : this.starSystemController.stellarObjects[0],
@@ -165,7 +165,9 @@ export class MainMenu {
this.startAnimation(() => this.onLoadSaveObservable.notifyObservers(saveFileData));
} catch (e) {
dropFileZone.classList.add("invalid");
- alert("Invalid save file. Please check your save file against the current format at https://barthpaleologue.github.io/CosmosJourneyer/docs/types/saveFile_saveFileData.SaveFileData.html\nYou can open an issue here if the issue persists: https://github.com/BarthPaleologue/CosmosJourneyer");
+ alert(
+ "Invalid save file. Please check your save file against the current format at https://barthpaleologue.github.io/CosmosJourneyer/docs/types/saveFile_saveFileData.SaveFileData.html\nYou can open an issue here if the issue persists: https://github.com/BarthPaleologue/CosmosJourneyer"
+ );
}
};
reader.readAsText(file);
diff --git a/src/ts/mandelbulb/mandelbulb.ts b/src/ts/mandelbulb/mandelbulb.ts
index 8addc8fc2..b99203f2d 100644
--- a/src/ts/mandelbulb/mandelbulb.ts
+++ b/src/ts/mandelbulb/mandelbulb.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/mandelbulb/mandelbulbModel.ts b/src/ts/mandelbulb/mandelbulbModel.ts
index 1e8970a2c..b59feb275 100644
--- a/src/ts/mandelbulb/mandelbulbModel.ts
+++ b/src/ts/mandelbulb/mandelbulbModel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -18,7 +18,7 @@
import { seededSquirrelNoise } from "squirrel-noise";
import { OrbitProperties } from "../orbit/orbitProperties";
-import { BODY_TYPE, GENERATION_STEPS } from "../model/common";
+import { BodyType, GenerationSteps } from "../model/common";
import { Color3 } from "@babylonjs/core/Maths/math.color";
import { normalRandom, randRange, randRangeInt } from "extended-random";
import { clamp } from "../utils/math";
@@ -29,7 +29,7 @@ import { PlanetPhysicalProperties } from "../architecture/physicalProperties";
import { CelestialBodyModel } from "../architecture/celestialBody";
export class MandelbulbModel implements PlanetModel {
- readonly bodyType = BODY_TYPE.MANDELBULB;
+ readonly bodyType = BodyType.MANDELBULB;
readonly seed: number;
readonly rng: (step: number) => number;
@@ -58,13 +58,13 @@ export class MandelbulbModel implements PlanetModel {
this.parentBody = parentBody ?? null;
- this.power = randRange(1.5, 6.0, this.rng, GENERATION_STEPS.POWER);
- this.accentColor = new Color3(this.rng(GENERATION_STEPS.ACCENNT_COLOR), this.rng(GENERATION_STEPS.ACCENNT_COLOR + 10), this.rng(GENERATION_STEPS.ACCENNT_COLOR + 20));
+ this.power = randRange(1.5, 6.0, this.rng, GenerationSteps.POWER);
+ this.accentColor = new Color3(this.rng(GenerationSteps.ACCENT_COLOR), this.rng(GenerationSteps.ACCENT_COLOR + 10), this.rng(GenerationSteps.ACCENT_COLOR + 20));
- // TODO: do not hardcode
- let orbitRadius = this.rng(GENERATION_STEPS.ORBIT) * 15e9;
+ // Todo: do not hardcode
+ let orbitRadius = this.rng(GenerationSteps.ORBIT) * 15e9;
- const orbitalP = clamp(0.5, 3.0, normalRandom(1.0, 0.3, this.rng, GENERATION_STEPS.ORBIT + 80));
+ const orbitalP = clamp(0.5, 3.0, normalRandom(1.0, 0.3, this.rng, GenerationSteps.ORBIT + 80));
orbitRadius += orbitRadius - getPeriapsis(orbitRadius, orbitalP);
this.orbit = {
@@ -78,13 +78,13 @@ export class MandelbulbModel implements PlanetModel {
this.physicalProperties = {
mass: 10,
rotationPeriod: 0,
- axialTilt: normalRandom(0, 0.4, this.rng, GENERATION_STEPS.AXIAL_TILT),
+ axialTilt: normalRandom(0, 0.4, this.rng, GenerationSteps.AXIAL_TILT),
minTemperature: -180,
maxTemperature: 100,
pressure: 0
};
- this.nbMoons = randRangeInt(0, 2, this.rng, GENERATION_STEPS.NB_MOONS);
+ this.nbMoons = randRangeInt(0, 2, this.rng, GenerationSteps.NB_MOONS);
}
getApparentRadius(): number {
diff --git a/src/ts/model/common.ts b/src/ts/model/common.ts
index 90ca98638..84fdb7b13 100644
--- a/src/ts/model/common.ts
+++ b/src/ts/model/common.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -15,12 +15,12 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-export enum GENERATION_STEPS {
+export enum GenerationSteps {
AXIAL_TILT = 100,
ORBIT = 200,
ORBITAL_PERIOD = 500,
RADIUS = 1000,
- ORBITAL_PLANE_ALIGNEMENT = 1600,
+ ORBITAL_PLANE_ALIGNMENT = 1600,
RINGS = 1200,
@@ -28,7 +28,7 @@ export enum GENERATION_STEPS {
MOONS = 11,
POWER = 300,
- ACCENNT_COLOR = 400,
+ ACCENT_COLOR = 400,
TEMPERATURE = 1100,
STELLAR_TYPE = 1900,
@@ -40,7 +40,7 @@ export enum GENERATION_STEPS {
SPACE_STATION = 2000
}
-export enum BODY_TYPE {
+export enum BodyType {
STAR,
TELLURIC_PLANET,
GAS_PLANET,
diff --git a/src/ts/orbit/axisRenderer.ts b/src/ts/orbit/axisRenderer.ts
index db3919aba..35f3b2f35 100644
--- a/src/ts/orbit/axisRenderer.ts
+++ b/src/ts/orbit/axisRenderer.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/orbit/orbit.ts b/src/ts/orbit/orbit.ts
index 4e730307d..ab3934ffb 100644
--- a/src/ts/orbit/orbit.ts
+++ b/src/ts/orbit/orbit.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/orbit/orbitProperties.ts b/src/ts/orbit/orbitProperties.ts
index 7e13eca0c..d94d4423c 100644
--- a/src/ts/orbit/orbitProperties.ts
+++ b/src/ts/orbit/orbitProperties.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/orbit/orbitRenderer.ts b/src/ts/orbit/orbitRenderer.ts
index 417428bca..b3f20044b 100644
--- a/src/ts/orbit/orbitRenderer.ts
+++ b/src/ts/orbit/orbitRenderer.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/physicSpaceship.ts b/src/ts/physicSpaceship.ts
index 22d374b2a..f323e7672 100644
--- a/src/ts/physicSpaceship.ts
+++ b/src/ts/physicSpaceship.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/common.ts b/src/ts/planets/common.ts
index 2b968fd20..9df22be50 100644
--- a/src/ts/planets/common.ts
+++ b/src/ts/planets/common.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -16,11 +16,11 @@
// along with this program. If not, see .
import { centeredRand } from "extended-random";
-import { GENERATION_STEPS } from "../model/common";
+import { GenerationSteps } from "../model/common";
import { Settings } from "../settings";
import { PlanetModel } from "../architecture/planet";
export function getMoonSeed(model: PlanetModel, index: number) {
if (index > model.nbMoons) throw new Error("Moon out of bound! " + index);
- return centeredRand(model.rng, GENERATION_STEPS.MOONS + index) * Settings.SEED_HALF_RANGE;
+ return centeredRand(model.rng, GenerationSteps.MOONS + index) * Settings.SEED_HALF_RANGE;
}
diff --git a/src/ts/planets/gasPlanet/gasPlanet.ts b/src/ts/planets/gasPlanet/gasPlanet.ts
index ee656a425..03fcb4fed 100644
--- a/src/ts/planets/gasPlanet/gasPlanet.ts
+++ b/src/ts/planets/gasPlanet/gasPlanet.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/gasPlanet/gasPlanetMaterial.ts b/src/ts/planets/gasPlanet/gasPlanetMaterial.ts
index 696935048..474730a72 100644
--- a/src/ts/planets/gasPlanet/gasPlanetMaterial.ts
+++ b/src/ts/planets/gasPlanet/gasPlanetMaterial.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -24,7 +24,6 @@ import { ShaderMaterial } from "@babylonjs/core/Materials/shaderMaterial";
import { Effect } from "@babylonjs/core/Materials/effect";
import { Scene } from "@babylonjs/core/scene";
import { Color3 } from "@babylonjs/core/Maths/math.color";
-import { Vector3 } from "@babylonjs/core/Maths/math.vector";
import { TransformNode } from "@babylonjs/core/Meshes";
import { Star } from "../../stellarObjects/star/star";
import { flattenColor3Array, flattenVector3Array } from "../../utils/algebra";
diff --git a/src/ts/planets/gasPlanet/gasPlanetModel.ts b/src/ts/planets/gasPlanet/gasPlanetModel.ts
index d5fdad5ca..89dd2a84b 100644
--- a/src/ts/planets/gasPlanet/gasPlanetModel.ts
+++ b/src/ts/planets/gasPlanet/gasPlanetModel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -18,7 +18,7 @@
import { seededSquirrelNoise } from "squirrel-noise";
import { normalRandom, randRangeInt, uniformRandBool } from "extended-random";
import { Settings } from "../../settings";
-import { BODY_TYPE, GENERATION_STEPS } from "../../model/common";
+import { BodyType, GenerationSteps } from "../../model/common";
import { RingsUniforms } from "../../postProcesses/rings/ringsUniform";
import { Quaternion } from "@babylonjs/core/Maths/math";
import { Axis } from "@babylonjs/core/Maths/math.axis";
@@ -31,7 +31,7 @@ import { PlanetPhysicalProperties } from "../../architecture/physicalProperties"
import { CelestialBodyModel } from "../../architecture/celestialBody";
export class GasPlanetModel implements PlanetModel {
- readonly bodyType = BODY_TYPE.GAS_PLANET;
+ readonly bodyType = BodyType.GAS_PLANET;
readonly seed: number;
readonly rng: (step: number) => number;
@@ -56,16 +56,16 @@ export class GasPlanetModel implements PlanetModel {
this.parentBody = parentBody ?? null;
- this.radius = randRangeInt(Settings.EARTH_RADIUS * 4, Settings.EARTH_RADIUS * 20, this.rng, GENERATION_STEPS.RADIUS);
+ this.radius = randRangeInt(Settings.EARTH_RADIUS * 4, Settings.EARTH_RADIUS * 20, this.rng, GenerationSteps.RADIUS);
- // TODO: do not hardcode
- let orbitRadius = this.rng(GENERATION_STEPS.ORBIT) * 15e9;
+ // Todo: do not hardcode
+ let orbitRadius = this.rng(GenerationSteps.ORBIT) * 15e9;
- const orbitalP = clamp(0.7, 3.0, normalRandom(2.0, 0.3, this.rng, GENERATION_STEPS.ORBIT + 80));
+ const orbitalP = clamp(0.7, 3.0, normalRandom(2.0, 0.3, this.rng, GenerationSteps.ORBIT + 80));
orbitRadius += orbitRadius - getPeriapsis(orbitRadius, orbitalP);
if (parentBody) orbitRadius += parentBody.radius * 1.5;
- const orbitalPlaneNormal = Vector3.Up().applyRotationQuaternionInPlace(Quaternion.RotationAxis(Axis.X, (this.rng(GENERATION_STEPS.ORBIT + 20) - 0.5) * 0.2));
+ const orbitalPlaneNormal = Vector3.Up().applyRotationQuaternionInPlace(Quaternion.RotationAxis(Axis.X, (this.rng(GenerationSteps.ORBIT + 20) - 0.5) * 0.2));
this.orbit = {
radius: orbitRadius,
@@ -76,22 +76,22 @@ export class GasPlanetModel implements PlanetModel {
};
this.physicalProperties = {
- // FIXME: choose physically accurate values
+ // Fixme: choose physically accurate values
mass: 10,
- axialTilt: normalRandom(0, 0.4, this.rng, GENERATION_STEPS.AXIAL_TILT),
+ axialTilt: normalRandom(0, 0.4, this.rng, GenerationSteps.AXIAL_TILT),
rotationPeriod: (24 * 60 * 60) / 10,
minTemperature: -180,
maxTemperature: 200,
pressure: 1
};
- if (uniformRandBool(0.8, this.rng, GENERATION_STEPS.RINGS)) {
+ if (uniformRandBool(0.8, this.rng, GenerationSteps.RINGS)) {
this.ringsUniforms = new RingsUniforms(this.rng);
} else {
this.ringsUniforms = null;
}
- this.nbMoons = randRangeInt(0, 3, this.rng, GENERATION_STEPS.NB_MOONS);
+ this.nbMoons = randRangeInt(0, 3, this.rng, GenerationSteps.NB_MOONS);
}
getApparentRadius(): number {
@@ -99,8 +99,8 @@ export class GasPlanetModel implements PlanetModel {
}
public getNbSpaceStations(): number {
- if(uniformRandBool(0.2, this.rng, GENERATION_STEPS.SPACE_STATION)) return 1;
- if(uniformRandBool(0.1, this.rng, GENERATION_STEPS.SPACE_STATION + 10)) return 2;
+ if (uniformRandBool(0.2, this.rng, GenerationSteps.SPACE_STATION)) return 1;
+ if (uniformRandBool(0.1, this.rng, GenerationSteps.SPACE_STATION + 10)) return 2;
return 0;
}
}
diff --git a/src/ts/planets/telluricPlanet/colorSettingsInterface.ts b/src/ts/planets/telluricPlanet/colorSettingsInterface.ts
index 1a71787a7..f2ce3257e 100644
--- a/src/ts/planets/telluricPlanet/colorSettingsInterface.ts
+++ b/src/ts/planets/telluricPlanet/colorSettingsInterface.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/telluricPlanet.ts b/src/ts/planets/telluricPlanet/telluricPlanet.ts
index 6508a9cea..25a1095d4 100644
--- a/src/ts/planets/telluricPlanet/telluricPlanet.ts
+++ b/src/ts/planets/telluricPlanet/telluricPlanet.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -42,7 +42,7 @@ import { CelestialBody } from "../../architecture/celestialBody";
import { RingsUniforms } from "../../postProcesses/rings/ringsUniform";
import { OrbitalObjectPhysicalProperties } from "../../architecture/physicalProperties";
import { rotate } from "../../uberCore/transforms/basicTransform";
-import { BODY_TYPE } from "../../model/common";
+import { BodyType } from "../../model/common";
export class TelluricPlanet implements Planet, Cullable {
readonly name: string;
@@ -117,12 +117,12 @@ export class TelluricPlanet implements Planet, Cullable {
this.material = new TelluricPlanetMaterial(this.name, this.getTransform(), this.model, scene);
this.sides = [
- new ChunkTree(Direction.Up, this.name, this.model, this.aggregate, this.material, scene),
- new ChunkTree(Direction.Down, this.name, this.model, this.aggregate, this.material, scene),
- new ChunkTree(Direction.Forward, this.name, this.model, this.aggregate, this.material, scene),
- new ChunkTree(Direction.Backward, this.name, this.model, this.aggregate, this.material, scene),
- new ChunkTree(Direction.Right, this.name, this.model, this.aggregate, this.material, scene),
- new ChunkTree(Direction.Left, this.name, this.model, this.aggregate, this.material, scene)
+ new ChunkTree(Direction.UP, this.name, this.model, this.aggregate, this.material, scene),
+ new ChunkTree(Direction.DOWN, this.name, this.model, this.aggregate, this.material, scene),
+ new ChunkTree(Direction.FORWARD, this.name, this.model, this.aggregate, this.material, scene),
+ new ChunkTree(Direction.BACKWARD, this.name, this.model, this.aggregate, this.material, scene),
+ new ChunkTree(Direction.RIGHT, this.name, this.model, this.aggregate, this.material, scene),
+ new ChunkTree(Direction.LEFT, this.name, this.model, this.aggregate, this.material, scene)
];
this.sides.forEach((side) => side.onChunkCreatedObservable.add((chunk) => this.onChunkCreatedObservable.notifyObservers(chunk)));
@@ -149,7 +149,7 @@ export class TelluricPlanet implements Planet, Cullable {
}
getTypeName(): string {
- if (this.parent?.model.bodyType === BODY_TYPE.TELLURIC_PLANET || this.parent?.model.bodyType === BODY_TYPE.GAS_PLANET) {
+ if (this.parent?.model.bodyType === BodyType.TELLURIC_PLANET || this.parent?.model.bodyType === BodyType.GAS_PLANET) {
return "Telluric Moon";
}
return "Telluric Planet";
diff --git a/src/ts/planets/telluricPlanet/telluricPlanetMaterial.ts b/src/ts/planets/telluricPlanet/telluricPlanetMaterial.ts
index 8d740d6c8..eed0750f6 100644
--- a/src/ts/planets/telluricPlanet/telluricPlanetMaterial.ts
+++ b/src/ts/planets/telluricPlanet/telluricPlanetMaterial.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -123,16 +123,16 @@ export class TelluricPlanetMaterial extends ShaderMaterial {
this.colorSettings = {
mode: ColorMode.DEFAULT,
- snowColor: new Color3(0.7, 0.7, 0.7),
- steepColor: new Color3(60, 60, 60).scaleInPlace(1 / 255),
+ snowColor: new Color3(0.9, 0.9, 0.9),
+ steepColor: new Color3(60, 60, 60).scaleInPlace(1.5 / 255),
plainColor: new Color3(
//TODO: make this better
- Math.max(0.22 + centeredRand(model.rng, 82) / 20, 0),
- Math.max(0.37 + centeredRand(model.rng, 83) / 20, 0),
- Math.max(0.024 + centeredRand(model.rng, 84) / 20, 0)
+ 1.5*Math.max(0.22 + centeredRand(model.rng, 82) / 20, 0),
+ 1.5*Math.max(0.37 + centeredRand(model.rng, 83) / 20, 0),
+ 1.5*Math.max(0.024 + centeredRand(model.rng, 84) / 20, 0)
),
beachColor: new Color3(132, 114, 46).scaleInPlace(1 / 255),
- desertColor: new Color3(178, 107, 42).scaleInPlace(1 / 255),
+ desertColor: new Color3(232, 142, 59).scaleInPlace(1 / 255),
bottomColor: new Color3(0.5, 0.5, 0.5),
beachSize: 100 + 50 * centeredRand(model.rng, 85),
@@ -165,7 +165,7 @@ export class TelluricPlanetMaterial extends ShaderMaterial {
Effect.ShadersStore["telluricPlanetLutFragmentShader"] = lutFragment;
}
- this.setTexture("lut", Assets.EmptyTexture);
+ this.setTexture("lut", Assets.EMPTY_TEXTURE);
const lut = new ProceduralTexture("lut", 4096, "telluricPlanetLut", scene, null, true, false);
lut.setFloat("minTemperature", this.planetModel.physicalProperties.minTemperature);
lut.setFloat("maxTemperature", this.planetModel.physicalProperties.maxTemperature);
@@ -189,12 +189,12 @@ export class TelluricPlanetMaterial extends ShaderMaterial {
this.setFloat("normalSharpness", this.colorSettings.normalSharpness);
- this.setTexture("bottomNormalMap", Assets.BottomNormalMap);
- this.setTexture("steepNormalMap", Assets.RockNormalMap);
- this.setTexture("plainNormalMap", Assets.GrassNormalMap);
- this.setTexture("snowNormalMap", Assets.SnowNormalMap1);
- this.setTexture("beachNormalMap", Assets.SandNormalMap1);
- this.setTexture("desertNormalMap", Assets.SandNormalMap2);
+ this.setTexture("bottomNormalMap", Assets.BOTTOM_NORMAL_MAP);
+ this.setTexture("steepNormalMap", Assets.ROCK_NORMAL_MAP);
+ this.setTexture("plainNormalMap", Assets.GRASS_NORMAL_MAP);
+ this.setTexture("snowNormalMap", Assets.SNOW_NORMAL_MAP_1);
+ this.setTexture("beachNormalMap", Assets.SAND_NORMAL_MAP_1);
+ this.setTexture("desertNormalMap", Assets.SAND_NORMAL_MAP_2);
this.setFloat("minTemperature", this.planetModel.physicalProperties.minTemperature);
this.setFloat("maxTemperature", this.planetModel.physicalProperties.maxTemperature);
diff --git a/src/ts/planets/telluricPlanet/telluricPlanetModel.ts b/src/ts/planets/telluricPlanet/telluricPlanetModel.ts
index 78e8485cf..c21edac8f 100644
--- a/src/ts/planets/telluricPlanet/telluricPlanetModel.ts
+++ b/src/ts/planets/telluricPlanet/telluricPlanetModel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -18,7 +18,7 @@
import { seededSquirrelNoise } from "squirrel-noise";
import { normalRandom, randRangeInt, uniformRandBool } from "extended-random";
import { Settings } from "../../settings";
-import { BODY_TYPE, GENERATION_STEPS } from "../../model/common";
+import { BodyType, GenerationSteps } from "../../model/common";
import { TerrainSettings } from "./terrain/terrainSettings";
import { clamp } from "terrain-generation";
import { RingsUniforms } from "../../postProcesses/rings/ringsUniform";
@@ -33,7 +33,7 @@ import { TelluricPlanetPhysicalProperties } from "../../architecture/physicalPro
import { CelestialBodyModel } from "../../architecture/celestialBody";
export class TelluricPlanetModel implements PlanetModel {
- readonly bodyType = BODY_TYPE.TELLURIC_PLANET;
+ readonly bodyType = BodyType.TELLURIC_PLANET;
readonly seed: number;
readonly rng: (step: number) => number;
@@ -62,44 +62,44 @@ export class TelluricPlanetModel implements PlanetModel {
this.parentBody = parentBody ?? null;
- if (this.parentBody?.bodyType === BODY_TYPE.TELLURIC_PLANET) this.isSatelliteOfTelluric = true;
- if (this.parentBody?.bodyType === BODY_TYPE.GAS_PLANET) this.isSatelliteOfGas = true;
+ if (this.parentBody?.bodyType === BodyType.TELLURIC_PLANET) this.isSatelliteOfTelluric = true;
+ if (this.parentBody?.bodyType === BodyType.GAS_PLANET) this.isSatelliteOfGas = true;
if (this.isSatelliteOfTelluric) {
- this.radius = Math.max(0.03, normalRandom(0.06, 0.03, this.rng, GENERATION_STEPS.RADIUS)) * Settings.EARTH_RADIUS;
+ this.radius = Math.max(0.03, normalRandom(0.06, 0.03, this.rng, GenerationSteps.RADIUS)) * Settings.EARTH_RADIUS;
} else if (this.isSatelliteOfGas) {
- this.radius = Math.max(0.03, normalRandom(0.25, 0.15, this.rng, GENERATION_STEPS.RADIUS)) * Settings.EARTH_RADIUS;
+ this.radius = Math.max(0.03, normalRandom(0.25, 0.15, this.rng, GenerationSteps.RADIUS)) * Settings.EARTH_RADIUS;
} else {
- this.radius = Math.max(0.3, normalRandom(1.0, 0.1, this.rng, GENERATION_STEPS.RADIUS)) * Settings.EARTH_RADIUS;
+ this.radius = Math.max(0.3, normalRandom(1.0, 0.1, this.rng, GenerationSteps.RADIUS)) * Settings.EARTH_RADIUS;
}
const mass = this.isSatelliteOfTelluric ? 1 : 10;
this.physicalProperties = {
mass: mass,
- axialTilt: normalRandom(0, 0.2, this.rng, GENERATION_STEPS.AXIAL_TILT),
+ axialTilt: normalRandom(0, 0.2, this.rng, GenerationSteps.AXIAL_TILT),
rotationPeriod: (60 * 60 * 24) / 10,
minTemperature: randRangeInt(-60, 5, this.rng, 80),
maxTemperature: randRangeInt(10, 50, this.rng, 81),
- pressure: Math.max(normalRandom(0.9, 0.2, this.rng, GENERATION_STEPS.PRESSURE), 0),
- waterAmount: Math.max(normalRandom(1.0, 0.3, this.rng, GENERATION_STEPS.WATER_AMOUNT), 0),
+ pressure: Math.max(normalRandom(0.9, 0.2, this.rng, GenerationSteps.PRESSURE), 0),
+ waterAmount: Math.max(normalRandom(1.0, 0.3, this.rng, GenerationSteps.WATER_AMOUNT), 0),
oceanLevel: 0
};
- const isOrbitalPlaneAlignedWithParent = this.isSatelliteOfGas && uniformRandBool(0.05, this.rng, GENERATION_STEPS.ORBITAL_PLANE_ALIGNEMENT);
+ const isOrbitalPlaneAlignedWithParent = this.isSatelliteOfGas && uniformRandBool(0.05, this.rng, GenerationSteps.ORBITAL_PLANE_ALIGNMENT);
const orbitalPlaneNormal = isOrbitalPlaneAlignedWithParent
? Vector3.Up()
- : Vector3.Up().applyRotationQuaternionInPlace(Quaternion.RotationAxis(Axis.X, (this.rng(GENERATION_STEPS.ORBIT + 20) - 0.5) * 0.2));
+ : Vector3.Up().applyRotationQuaternionInPlace(Quaternion.RotationAxis(Axis.X, (this.rng(GenerationSteps.ORBIT + 20) - 0.5) * 0.2));
- // TODO: do not hardcode
- let orbitRadius = 2e9 + this.rng(GENERATION_STEPS.ORBIT) * 15e9;
+ // Todo: do not hardcode
+ let orbitRadius = 2e9 + this.rng(GenerationSteps.ORBIT) * 15e9;
- const orbitalP = 2; //clamp(normalRandom(2.0, 0.3, this.rng, GENERATION_STEPS.ORBIT + 80), 0.7, 3.0);
+ const orbitalP = 2; //clamp(normalRandom(2.0, 0.3, this.rng, GenerationSteps.Orbit + 80), 0.7, 3.0);
if (this.isSatelliteOfGas || this.isSatelliteOfTelluric) {
const minRadius = this.parentBody?.radius ?? 0;
- orbitRadius = minRadius * clamp(normalRandom(2.0, 0.3, this.rng, GENERATION_STEPS.ORBIT), 1.2, 3.0);
- orbitRadius += this.radius * clamp(normalRandom(2, 1, this.rng, GENERATION_STEPS.ORBIT), 1, 20);
+ orbitRadius = minRadius * clamp(normalRandom(2.0, 0.3, this.rng, GenerationSteps.ORBIT), 1.2, 3.0);
+ orbitRadius += this.radius * clamp(normalRandom(2, 1, this.rng, GenerationSteps.ORBIT), 1, 20);
orbitRadius += 2.0 * Math.max(0, minRadius - getPeriapsis(orbitRadius, orbitalP));
} else if (parentBody) orbitRadius += parentBody.radius * 1.5;
@@ -112,7 +112,7 @@ export class TelluricPlanetModel implements PlanetModel {
};
if (this.isSatelliteOfTelluric) {
- this.physicalProperties.pressure = Math.max(normalRandom(0.01, 0.01, this.rng, GENERATION_STEPS.PRESSURE), 0);
+ this.physicalProperties.pressure = Math.max(normalRandom(0.01, 0.01, this.rng, GenerationSteps.PRESSURE), 0);
}
if (this.radius <= 0.3 * Settings.EARTH_RADIUS) this.physicalProperties.pressure = 0;
@@ -120,7 +120,7 @@ export class TelluricPlanetModel implements PlanetModel {
this.terrainSettings = {
continents_frequency: this.radius / Settings.EARTH_RADIUS,
- continents_fragmentation: clamp(normalRandom(0.65, 0.03, this.rng, GENERATION_STEPS.TERRAIN), 0, 0.95),
+ continents_fragmentation: clamp(normalRandom(0.65, 0.03, this.rng, GenerationSteps.TERRAIN), 0, 0.95),
bumps_frequency: (30 * this.radius) / Settings.EARTH_RADIUS,
@@ -138,7 +138,7 @@ export class TelluricPlanetModel implements PlanetModel {
this.terrainSettings.continents_fragmentation = 0;
}
- if (uniformRandBool(0.6, this.rng, GENERATION_STEPS.RINGS) && !this.isSatelliteOfTelluric && !this.isSatelliteOfGas) {
+ if (uniformRandBool(0.6, this.rng, GenerationSteps.RINGS) && !this.isSatelliteOfTelluric && !this.isSatelliteOfGas) {
this.ringsUniforms = new RingsUniforms(this.rng);
}
@@ -147,7 +147,7 @@ export class TelluricPlanetModel implements PlanetModel {
this.cloudsUniforms = new CloudsUniforms(this.getApparentRadius(), Settings.CLOUD_LAYER_HEIGHT, this.physicalProperties.waterAmount, this.physicalProperties.pressure);
}
- this.nbMoons = randRangeInt(0, 2, this.rng, GENERATION_STEPS.NB_MOONS);
+ this.nbMoons = randRangeInt(0, 2, this.rng, GenerationSteps.NB_MOONS);
}
getApparentRadius(): number {
@@ -155,8 +155,8 @@ export class TelluricPlanetModel implements PlanetModel {
}
public getNbSpaceStations(): number {
- if(uniformRandBool(0.2, this.rng, GENERATION_STEPS.SPACE_STATION)) return 1;
- if(uniformRandBool(0.1, this.rng, GENERATION_STEPS.SPACE_STATION + 10)) return 2;
+ if (uniformRandBool(0.2, this.rng, GenerationSteps.SPACE_STATION)) return 1;
+ if (uniformRandBool(0.1, this.rng, GenerationSteps.SPACE_STATION + 10)) return 2;
return 0;
}
}
diff --git a/src/ts/planets/telluricPlanet/terrain/chunks/chunkForge.ts b/src/ts/planets/telluricPlanet/terrain/chunks/chunkForge.ts
index f387bff95..af545ccd5 100644
--- a/src/ts/planets/telluricPlanet/terrain/chunks/chunkForge.ts
+++ b/src/ts/planets/telluricPlanet/terrain/chunks/chunkForge.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/chunks/chunkForgeWorkers.ts b/src/ts/planets/telluricPlanet/terrain/chunks/chunkForgeWorkers.ts
index 55fdef96c..ee0d83623 100644
--- a/src/ts/planets/telluricPlanet/terrain/chunks/chunkForgeWorkers.ts
+++ b/src/ts/planets/telluricPlanet/terrain/chunks/chunkForgeWorkers.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -59,7 +59,7 @@ export class ChunkForgeWorkers implements ChunkForge {
private dispatchBuildTask(task: BuildTask, worker: Worker): void {
const buildData: TransferBuildData = {
- taskType: TaskType.Build,
+ taskType: TaskType.BUILD,
planetName: task.planetName,
planetDiameter: task.planetDiameter,
nbVerticesPerSide: this.nbVerticesPerRow,
@@ -89,7 +89,7 @@ export class ChunkForgeWorkers implements ChunkForge {
vertexData.indices = data.indices;
const applyTask: ApplyTask = {
- type: TaskType.Apply,
+ type: TaskType.APPLY,
vertexData: vertexData,
chunk: task.chunk,
instancesMatrixBuffer: data.instancesMatrixBuffer,
diff --git a/src/ts/planets/telluricPlanet/terrain/chunks/chunkTree.ts b/src/ts/planets/telluricPlanet/terrain/chunks/chunkTree.ts
index bcc6264ac..e747f6dc1 100644
--- a/src/ts/planets/telluricPlanet/terrain/chunks/chunkTree.ts
+++ b/src/ts/planets/telluricPlanet/terrain/chunks/chunkTree.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -32,8 +32,6 @@ import { DeleteSemaphore } from "./deleteSemaphore";
import { UberScene } from "../../../../uberCore/uberScene";
import { getRotationQuaternion } from "../../../../uberCore/transforms/basicTransform";
import { ChunkForge } from "./chunkForge";
-import { PhysicsRaycastResult } from "@babylonjs/core/Physics/physicsRaycastResult";
-import { PhysicsEngineV2 } from "@babylonjs/core/Physics/v2";
/**
* A quadTree is defined recursively
@@ -181,8 +179,8 @@ export class ChunkTree {
const chunkApproxPosition = nodePositionW.add(direction.scale(additionalHeight));
const distanceToNodeSquared = Vector3.DistanceSquared(chunkApproxPosition, observerPositionW);
- const subdivisionDistanceThreshold = Settings.CHUNK_RENDER_DISTANCE_MULTIPLIER * (this.rootChunkLength / 2 ** walked.length);
- const deletionDistanceThreshold = 15e3 + 1.1 * Settings.CHUNK_RENDER_DISTANCE_MULTIPLIER * (this.rootChunkLength / 2 ** (walked.length - 1));
+ const subdivisionDistanceThreshold = Settings.CHUNK_RENDERING_DISTANCE_MULTIPLIER * (this.rootChunkLength / 2 ** walked.length);
+ const deletionDistanceThreshold = 15e3 + 1.1 * Settings.CHUNK_RENDERING_DISTANCE_MULTIPLIER * (this.rootChunkLength / 2 ** (walked.length - 1));
// the 1.5 is to avoid creation/deletion oscillations
if (distanceToNodeSquared > deletionDistanceThreshold ** 2 && walked.length >= this.minDepth && tree instanceof Array) {
@@ -239,7 +237,7 @@ export class ChunkTree {
});
const buildTask: BuildTask = {
- type: TaskType.Build,
+ type: TaskType.BUILD,
planetName: this.planetName,
planetSeed: this.planetSeed,
planetDiameter: this.rootChunkLength,
diff --git a/src/ts/planets/telluricPlanet/terrain/chunks/deleteSemaphore.ts b/src/ts/planets/telluricPlanet/terrain/chunks/deleteSemaphore.ts
index 1ab529923..57b4a6cba 100644
--- a/src/ts/planets/telluricPlanet/terrain/chunks/deleteSemaphore.ts
+++ b/src/ts/planets/telluricPlanet/terrain/chunks/deleteSemaphore.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/chunks/planetChunk.ts b/src/ts/planets/telluricPlanet/terrain/chunks/planetChunk.ts
index 3492d434f..96719f63a 100644
--- a/src/ts/planets/telluricPlanet/terrain/chunks/planetChunk.ts
+++ b/src/ts/planets/telluricPlanet/terrain/chunks/planetChunk.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -35,7 +35,6 @@ import { TelluricPlanetModel } from "../../telluricPlanetModel";
import { BoundingSphere } from "../../../../architecture/boundingSphere";
import { PhysicsMotionType, PhysicsShapeType } from "@babylonjs/core/Physics/v2/IPhysicsEnginePlugin";
import { LockConstraint } from "@babylonjs/core/Physics/v2/physicsConstraint";
-import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh";
import { Transformable } from "../../../../architecture/transformable";
import { CollisionMask } from "../../../../settings";
import { InstancePatch } from "../instancePatch/instancePatch";
@@ -154,20 +153,24 @@ export class PlanetChunk implements Transformable, BoundingSphere {
if (instancesMatrixBuffer.length === 0) return;
const rockPatch = new InstancePatch(this.parent, randomDownSample(alignedInstancesMatrixBuffer, 3200));
- rockPatch.createInstances(Assets.Rock);
+ rockPatch.createInstances(Assets.ROCK);
this.instancePatches.push(rockPatch);
- if (this.planetModel.physicalProperties.pressure > 0 && this.planetModel.physicalProperties.oceanLevel > 0) {
+ if (
+ this.planetModel.physicalProperties.pressure > 0 &&
+ this.planetModel.physicalProperties.oceanLevel > 0 &&
+ this.getAverageHeight() > this.planetModel.physicalProperties.oceanLevel + 50
+ ) {
const treePatch = new InstancePatch(this.parent, randomDownSample(instancesMatrixBuffer, 4800));
- treePatch.createInstances(Assets.Tree);
+ treePatch.createInstances(Assets.TREE);
this.instancePatches.push(treePatch);
const butterflyPatch = new ThinInstancePatch(this.parent, randomDownSample(instancesMatrixBuffer, 800));
- butterflyPatch.createInstances(Assets.Butterfly);
+ butterflyPatch.createInstances(Assets.BUTTERFLY);
this.instancePatches.push(butterflyPatch);
const grassPatch = new ThinInstancePatch(this.parent, instancesMatrixBuffer);
- grassPatch.createInstances(Assets.GrassBlade);
+ grassPatch.createInstances(Assets.GRASS_BLADE);
this.instancePatches.push(grassPatch);
}
}
diff --git a/src/ts/planets/telluricPlanet/terrain/chunks/taskTypes.ts b/src/ts/planets/telluricPlanet/terrain/chunks/taskTypes.ts
index 4c636595d..60129c6b5 100644
--- a/src/ts/planets/telluricPlanet/terrain/chunks/taskTypes.ts
+++ b/src/ts/planets/telluricPlanet/terrain/chunks/taskTypes.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -22,9 +22,8 @@ import { Vector3 } from "@babylonjs/core/Maths/math.vector";
import { VertexData } from "@babylonjs/core/Meshes/mesh.vertexData";
export enum TaskType {
- Build,
- Apply,
- Collision
+ BUILD,
+ APPLY
}
export type Task = {
diff --git a/src/ts/planets/telluricPlanet/terrain/chunks/workerDataTypes.ts b/src/ts/planets/telluricPlanet/terrain/chunks/workerDataTypes.ts
index ff501b128..cfe4300c4 100644
--- a/src/ts/planets/telluricPlanet/terrain/chunks/workerDataTypes.ts
+++ b/src/ts/planets/telluricPlanet/terrain/chunks/workerDataTypes.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/chunks/workerPool.ts b/src/ts/planets/telluricPlanet/terrain/chunks/workerPool.ts
index a00dc61b6..fe226300e 100644
--- a/src/ts/planets/telluricPlanet/terrain/chunks/workerPool.ts
+++ b/src/ts/planets/telluricPlanet/terrain/chunks/workerPool.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/instancePatch/hierarchyInstancePatch.ts b/src/ts/planets/telluricPlanet/terrain/instancePatch/hierarchyInstancePatch.ts
index 61b8beaa1..90aea05ad 100644
--- a/src/ts/planets/telluricPlanet/terrain/instancePatch/hierarchyInstancePatch.ts
+++ b/src/ts/planets/telluricPlanet/terrain/instancePatch/hierarchyInstancePatch.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/instancePatch/iPatch.ts b/src/ts/planets/telluricPlanet/terrain/instancePatch/iPatch.ts
index 32a7d6db3..b4a00b6e4 100644
--- a/src/ts/planets/telluricPlanet/terrain/instancePatch/iPatch.ts
+++ b/src/ts/planets/telluricPlanet/terrain/instancePatch/iPatch.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/instancePatch/instancePatch.ts b/src/ts/planets/telluricPlanet/terrain/instancePatch/instancePatch.ts
index 353492fc6..bfa738fae 100644
--- a/src/ts/planets/telluricPlanet/terrain/instancePatch/instancePatch.ts
+++ b/src/ts/planets/telluricPlanet/terrain/instancePatch/instancePatch.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/instancePatch/matrixBuffer.ts b/src/ts/planets/telluricPlanet/terrain/instancePatch/matrixBuffer.ts
index 90644165c..bb2c3c8d1 100644
--- a/src/ts/planets/telluricPlanet/terrain/instancePatch/matrixBuffer.ts
+++ b/src/ts/planets/telluricPlanet/terrain/instancePatch/matrixBuffer.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/instancePatch/patchManager.ts b/src/ts/planets/telluricPlanet/terrain/instancePatch/patchManager.ts
index d540be9a1..4fa4caa77 100644
--- a/src/ts/planets/telluricPlanet/terrain/instancePatch/patchManager.ts
+++ b/src/ts/planets/telluricPlanet/terrain/instancePatch/patchManager.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/instancePatch/thinInstancePatch.ts b/src/ts/planets/telluricPlanet/terrain/instancePatch/thinInstancePatch.ts
index 891a06387..c5239fb38 100644
--- a/src/ts/planets/telluricPlanet/terrain/instancePatch/thinInstancePatch.ts
+++ b/src/ts/planets/telluricPlanet/terrain/instancePatch/thinInstancePatch.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/terrainSettings.ts b/src/ts/planets/telluricPlanet/terrain/terrainSettings.ts
index d9635a59b..b7d96ea86 100644
--- a/src/ts/planets/telluricPlanet/terrain/terrainSettings.ts
+++ b/src/ts/planets/telluricPlanet/terrain/terrainSettings.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/planets/telluricPlanet/terrain/workers/buildScript.ts b/src/ts/planets/telluricPlanet/terrain/workers/buildScript.ts
index 788c3d4cc..d0e9c4e77 100644
--- a/src/ts/planets/telluricPlanet/terrain/workers/buildScript.ts
+++ b/src/ts/planets/telluricPlanet/terrain/workers/buildScript.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -53,7 +53,7 @@ function handle_build(data: TransferBuildData): void {
const buildData: BuildData = new BuildData(
data.planetDiameter,
data.depth,
- data.direction,
+ data.direction as number,
data.position[0],
data.position[1],
data.position[2],
diff --git a/src/ts/playground.ts b/src/ts/playground.ts
index 2b7f3a95a..5514d3571 100644
--- a/src/ts/playground.ts
+++ b/src/ts/playground.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/postProcesses/atmosphericScatteringPostProcess.ts b/src/ts/postProcesses/atmosphericScatteringPostProcess.ts
index c6194ec51..a7bcbc4a8 100644
--- a/src/ts/postProcesses/atmosphericScatteringPostProcess.ts
+++ b/src/ts/postProcesses/atmosphericScatteringPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -71,70 +71,70 @@ export class AtmosphericScatteringPostProcess extends UberPostProcess implements
...getActiveCameraUniforms(scene),
{
name: "atmosphere_radius",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.atmosphereRadius;
}
},
{
name: "atmosphere_falloff",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.falloffFactor;
}
},
{
name: "atmosphere_sunIntensity",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.intensity;
}
},
{
name: "atmosphere_rayleighStrength",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.rayleighStrength;
}
},
{
name: "atmosphere_mieStrength",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.mieStrength;
}
},
{
name: "atmosphere_densityModifier",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.densityModifier;
}
},
{
name: "atmosphere_redWaveLength",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.redWaveLength;
}
},
{
name: "atmosphere_greenWaveLength",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.greenWaveLength;
}
},
{
name: "atmosphere_blueWaveLength",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.blueWaveLength;
}
},
{
name: "atmosphere_mieHaloRadius",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return atmosphereUniforms.mieHaloRadius;
}
@@ -145,9 +145,9 @@ export class AtmosphericScatteringPostProcess extends UberPostProcess implements
...getSamplers(scene),
{
name: "atmosphereLUT",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => {
- return Assets.AtmosphereLUT;
+ return Assets.ATMOSPHERE_LUT;
}
}
];
diff --git a/src/ts/postProcesses/blackHolePostProcess.ts b/src/ts/postProcesses/blackHolePostProcess.ts
index 566e9e213..c56af4119 100644
--- a/src/ts/postProcesses/blackHolePostProcess.ts
+++ b/src/ts/postProcesses/blackHolePostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -56,7 +56,7 @@ export class BlackHolePostProcess extends UberPostProcess implements ObjectPostP
...getActiveCameraUniforms(scene),
{
name: "starfieldRotation",
- type: UniformEnumType.Matrix,
+ type: UniformEnumType.MATRIX,
get: () => {
const rotationMatrix = new Matrix();
starfieldRotation.toRotationMatrix(rotationMatrix);
@@ -65,42 +65,42 @@ export class BlackHolePostProcess extends UberPostProcess implements ObjectPostP
},
{
name: "time",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return blackHoleUniforms.time % (blackHoleUniforms.rotationPeriod * 10000);
}
},
{
name: "accretionDiskRadius",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return blackHoleUniforms.accretionDiskRadius;
}
},
{
name: "warpingMinkowskiFactor",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return blackHoleUniforms.warpingMinkowskiFactor;
}
},
{
name: "rotationPeriod",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return blackHoleUniforms.rotationPeriod;
}
},
{
name: "rotationAxis",
- type: UniformEnumType.Vector3,
+ type: UniformEnumType.VECTOR_3,
get: () => {
return blackHole.getRotationAxis();
}
},
{
name: "forwardAxis",
- type: UniformEnumType.Vector3,
+ type: UniformEnumType.VECTOR_3,
get: () => {
return getForwardDirection(blackHole.getTransform());
}
@@ -111,9 +111,9 @@ export class BlackHolePostProcess extends UberPostProcess implements ObjectPostP
...getSamplers(scene),
{
name: "starfieldTexture",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => {
- return Assets.Starfield;
+ return Assets.STAR_FIELD;
}
}
];
diff --git a/src/ts/postProcesses/clouds/cloudsUniforms.ts b/src/ts/postProcesses/clouds/cloudsUniforms.ts
index d78ac331a..8181a5026 100644
--- a/src/ts/postProcesses/clouds/cloudsUniforms.ts
+++ b/src/ts/postProcesses/clouds/cloudsUniforms.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -56,77 +56,77 @@ export class CloudsUniforms {
return [
{
name: "clouds_layerRadius",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.layerRadius;
}
},
{
name: "clouds_frequency",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.frequency;
}
},
{
name: "clouds_detailFrequency",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.detailFrequency;
}
},
{
name: "clouds_coverage",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.coverage;
}
},
{
name: "clouds_sharpness",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.sharpness;
}
},
{
name: "clouds_color",
- type: UniformEnumType.Color3,
+ type: UniformEnumType.COLOR_3,
get: () => {
return this.color;
}
},
{
name: "clouds_worleySpeed",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.worleySpeed;
}
},
{
name: "clouds_detailSpeed",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.detailSpeed;
}
},
{
name: "clouds_smoothness",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.smoothness;
}
},
{
name: "clouds_specularPower",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.specularPower;
}
},
{
name: "time",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return -this.time % ((2 * Math.PI * gcd(this.worleySpeed * 10000, this.detailSpeed * 10000)) / this.worleySpeed);
}
@@ -144,7 +144,7 @@ export class CloudsUniforms {
return [
{
name: "clouds_lut",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => {
return lut;
}
diff --git a/src/ts/postProcesses/clouds/flatCloudsPostProcess.ts b/src/ts/postProcesses/clouds/flatCloudsPostProcess.ts
index 4843d1c43..ea01b957a 100644
--- a/src/ts/postProcesses/clouds/flatCloudsPostProcess.ts
+++ b/src/ts/postProcesses/clouds/flatCloudsPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/postProcesses/lensFlarePostProcess.ts b/src/ts/postProcesses/lensFlarePostProcess.ts
index dc907450f..02287cd12 100644
--- a/src/ts/postProcesses/lensFlarePostProcess.ts
+++ b/src/ts/postProcesses/lensFlarePostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -58,7 +58,7 @@ export class LensFlarePostProcess extends UberPostProcess implements ObjectPostP
...getActiveCameraUniforms(scene),
{
name: "flareColor",
- type: UniformEnumType.Color3,
+ type: UniformEnumType.COLOR_3,
get: () => {
if (object instanceof Star) return object.model.color;
else return new Color3(1, 1, 1);
@@ -66,7 +66,7 @@ export class LensFlarePostProcess extends UberPostProcess implements ObjectPostP
},
{
name: "clipPosition",
- type: UniformEnumType.Vector3,
+ type: UniformEnumType.VECTOR_3,
get: () => {
if (scene.activeCamera === null) throw new Error("no camera");
const clipPosition = Vector3.Project(
@@ -81,7 +81,7 @@ export class LensFlarePostProcess extends UberPostProcess implements ObjectPostP
},
{
name: "visibility",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
if (scene.activeCamera === null) throw new Error("no camera");
// send raycast from camera to object and check early intersections
@@ -104,7 +104,7 @@ export class LensFlarePostProcess extends UberPostProcess implements ObjectPostP
},
{
name: "aspectRatio",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return scene.getEngine().getScreenAspectRatio();
}
diff --git a/src/ts/postProcesses/mandelbulbPostProcess.ts b/src/ts/postProcesses/mandelbulbPostProcess.ts
index 487fe73e4..d82907e53 100644
--- a/src/ts/postProcesses/mandelbulbPostProcess.ts
+++ b/src/ts/postProcesses/mandelbulbPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -49,14 +49,14 @@ export class MandelbulbPostProcess extends UberPostProcess implements ObjectPost
...getActiveCameraUniforms(scene),
{
name: "power",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return mandelbulb.model.power;
}
},
{
name: "accentColor",
- type: UniformEnumType.Color3,
+ type: UniformEnumType.COLOR_3,
get: () => {
return mandelbulb.model.accentColor;
}
diff --git a/src/ts/postProcesses/matterJetPostProcess.ts b/src/ts/postProcesses/matterJetPostProcess.ts
index d50714ed1..70a6e778f 100644
--- a/src/ts/postProcesses/matterJetPostProcess.ts
+++ b/src/ts/postProcesses/matterJetPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -53,21 +53,21 @@ export class MatterJetPostProcess extends UberPostProcess implements ObjectPostP
...getActiveCameraUniforms(scene),
{
name: "time",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return settings.time % (settings.rotationPeriod * 10000);
}
},
{
name: "rotationPeriod",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return settings.rotationPeriod;
}
},
{
name: "rotationAxis",
- type: UniformEnumType.Vector3,
+ type: UniformEnumType.VECTOR_3,
get: () => {
return stellarObject.getRotationAxis();
}
diff --git a/src/ts/postProcesses/objectPostProcess.ts b/src/ts/postProcesses/objectPostProcess.ts
index 794042828..d1d6b8a7d 100644
--- a/src/ts/postProcesses/objectPostProcess.ts
+++ b/src/ts/postProcesses/objectPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/postProcesses/oceanPostProcess.ts b/src/ts/postProcesses/oceanPostProcess.ts
index 9ed130d3b..066450d53 100644
--- a/src/ts/postProcesses/oceanPostProcess.ts
+++ b/src/ts/postProcesses/oceanPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -22,14 +22,12 @@ import { UberScene } from "../uberCore/uberScene";
import { UberPostProcess } from "../uberCore/postProcesses/uberPostProcess";
import { getActiveCameraUniforms, getObjectUniforms, getSamplers, getStellarObjectsUniforms } from "./uniforms";
import { ObjectPostProcess, UpdatablePostProcess } from "./objectPostProcess";
-import { getInverseRotationQuaternion } from "../uberCore/transforms/basicTransform";
import { UniformEnumType, ShaderSamplers, ShaderUniforms, SamplerEnumType } from "../uberCore/postProcesses/types";
-import { BoundingSphere } from "../architecture/boundingSphere";
import { Assets } from "../assets";
import { Transformable } from "../architecture/transformable";
+import { TelluricPlanet } from "../planets/telluricPlanet/telluricPlanet";
export type OceanUniforms = {
- oceanRadius: number;
smoothness: number;
specularPower: number;
depthModifier: number;
@@ -42,14 +40,13 @@ export class OceanPostProcess extends UberPostProcess implements ObjectPostProce
readonly oceanUniforms: OceanUniforms;
readonly object: Transformable;
- constructor(name: string, planet: Transformable & BoundingSphere, scene: UberScene, stars: Transformable[]) {
+ constructor(name: string, planet: TelluricPlanet, scene: UberScene, stars: Transformable[]) {
const shaderName = "ocean";
if (Effect.ShadersStore[`${shaderName}FragmentShader`] === undefined) {
Effect.ShadersStore[`${shaderName}FragmentShader`] = oceanFragment;
}
const oceanUniforms: OceanUniforms = {
- oceanRadius: planet.getBoundingRadius(),
depthModifier: 0.0015,
alphaModifier: 0.0025,
specularPower: 1.0,
@@ -64,56 +61,56 @@ export class OceanPostProcess extends UberPostProcess implements ObjectPostProce
...getActiveCameraUniforms(scene),
{
name: "ocean_radius",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
- return oceanUniforms.oceanRadius;
+ return planet.getRadius() + planet.model.physicalProperties.oceanLevel;
}
},
{
name: "ocean_smoothness",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return oceanUniforms.smoothness;
}
},
{
name: "ocean_specularPower",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return oceanUniforms.specularPower;
}
},
{
name: "ocean_alphaModifier",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return oceanUniforms.alphaModifier;
}
},
{
name: "ocean_depthModifier",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return oceanUniforms.depthModifier;
}
},
{
name: "ocean_waveBlendingSharpness",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return oceanUniforms.waveBlendingSharpness;
}
},
{
- name: "planetInverseRotationQuaternion",
- type: UniformEnumType.Quaternion,
+ name: "planetInverseRotationMatrix",
+ type: UniformEnumType.MATRIX,
get: () => {
- return getInverseRotationQuaternion(planet.getTransform());
+ return planet.getTransform().getWorldMatrix().getRotationMatrix().transpose();
}
},
{
name: "time",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
//TODO: do not hardcode the 100000
// use rotating time offset to prevent float imprecision and distant artifacts
@@ -126,16 +123,16 @@ export class OceanPostProcess extends UberPostProcess implements ObjectPostProce
...getSamplers(scene),
{
name: "normalMap1",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => {
- return Assets.WaterNormalMap1;
+ return Assets.WATER_NORMAL_MAP_1;
}
},
{
name: "normalMap2",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => {
- return Assets.WaterNormalMap2;
+ return Assets.WATER_NORMAL_MAP_2;
}
}
];
diff --git a/src/ts/postProcesses/postProcessManager.ts b/src/ts/postProcesses/postProcessManager.ts
index e1e19860b..9a192d35f 100644
--- a/src/ts/postProcesses/postProcessManager.ts
+++ b/src/ts/postProcesses/postProcessManager.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/postProcesses/postProcessTypes.ts b/src/ts/postProcesses/postProcessTypes.ts
index 039862ea2..1d714a395 100644
--- a/src/ts/postProcesses/postProcessTypes.ts
+++ b/src/ts/postProcesses/postProcessTypes.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/postProcesses/rings/ringsPostProcess.ts b/src/ts/postProcesses/rings/ringsPostProcess.ts
index ca082efcf..e34df2991 100644
--- a/src/ts/postProcesses/rings/ringsPostProcess.ts
+++ b/src/ts/postProcesses/rings/ringsPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/postProcesses/rings/ringsUniform.ts b/src/ts/postProcesses/rings/ringsUniform.ts
index 439671519..2ffb72aae 100644
--- a/src/ts/postProcesses/rings/ringsUniform.ts
+++ b/src/ts/postProcesses/rings/ringsUniform.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -44,39 +44,39 @@ export class RingsUniforms {
this.offset = randRange(-100, 100, rng, 1440);
}
- static getEmptyShaderUniforms(): ShaderUniforms {
+ static GetEmptyShaderUniforms(): ShaderUniforms {
return [
{
name: "rings_start",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return 0;
}
},
{
name: "rings_end",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return 0;
}
},
{
name: "rings_frequency",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return 0;
}
},
{
name: "rings_opacity",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return 0;
}
},
{
name: "rings_color",
- type: UniformEnumType.Color3,
+ type: UniformEnumType.COLOR_3,
get: () => {
return new Color3(0, 0, 0);
}
@@ -88,35 +88,35 @@ export class RingsUniforms {
return [
{
name: "rings_start",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.ringStart;
}
},
{
name: "rings_end",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.ringEnd;
}
},
{
name: "rings_frequency",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.ringFrequency;
}
},
{
name: "rings_opacity",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return this.ringOpacity;
}
},
{
name: "rings_color",
- type: UniformEnumType.Color3,
+ type: UniformEnumType.COLOR_3,
get: () => {
return this.ringColor;
}
@@ -134,7 +134,7 @@ export class RingsUniforms {
return [
{
name: "rings_lut",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => {
return lut;
}
diff --git a/src/ts/postProcesses/shadowPostProcess.ts b/src/ts/postProcesses/shadowPostProcess.ts
index cac2b471e..6b44cdada 100644
--- a/src/ts/postProcesses/shadowPostProcess.ts
+++ b/src/ts/postProcesses/shadowPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -55,26 +55,26 @@ export class ShadowPostProcess extends UberPostProcess implements ObjectPostProc
...getActiveCameraUniforms(scene),
{
name: "star_radiuses",
- type: UniformEnumType.FloatArray,
+ type: UniformEnumType.FLOAT_ARRAY,
get: () => stellarObjects.map((star) => star.getBoundingRadius())
},
{
name: "shadowUniforms_hasRings",
- type: UniformEnumType.Bool,
+ type: UniformEnumType.BOOL,
get: () => {
return shadowUniforms.hasRings;
}
},
{
name: "shadowUniforms_hasClouds",
- type: UniformEnumType.Bool,
+ type: UniformEnumType.BOOL,
get: () => {
return shadowUniforms.hasClouds;
}
},
{
name: "shadowUniforms_hasOcean",
- type: UniformEnumType.Bool,
+ type: UniformEnumType.BOOL,
get: () => {
return shadowUniforms.hasOcean;
}
@@ -91,14 +91,14 @@ export class ShadowPostProcess extends UberPostProcess implements ObjectPostProc
return new ShadowPostProcess(body.name + "Shadow", body, scene, shaderName, uniforms, samplers, shadowUniforms);
});
} else {
- uniforms.push(...RingsUniforms.getEmptyShaderUniforms());
+ uniforms.push(...RingsUniforms.GetEmptyShaderUniforms());
const samplers: ShaderSamplers = [
...getSamplers(scene),
{
name: "rings_lut",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => {
- return Assets.EmptyTexture;
+ return Assets.EMPTY_TEXTURE;
}
}
];
diff --git a/src/ts/postProcesses/starfieldPostProcess.ts b/src/ts/postProcesses/starfieldPostProcess.ts
index 8e5ffbb30..760af4151 100644
--- a/src/ts/postProcesses/starfieldPostProcess.ts
+++ b/src/ts/postProcesses/starfieldPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -45,7 +45,7 @@ export class StarfieldPostProcess extends UberPostProcess {
...getStellarObjectsUniforms(stellarObjects),
{
name: "starfieldRotation",
- type: UniformEnumType.Matrix,
+ type: UniformEnumType.MATRIX,
get: () => {
const rotationMatrix = new Matrix();
starfieldRotation.toRotationMatrix(rotationMatrix);
@@ -54,7 +54,7 @@ export class StarfieldPostProcess extends UberPostProcess {
},
{
name: "visibility",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
if (bodies.length === 0) return 1;
@@ -95,9 +95,9 @@ export class StarfieldPostProcess extends UberPostProcess {
...getSamplers(scene),
{
name: "starfieldTexture",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => {
- return Assets.Starfield;
+ return Assets.STAR_FIELD;
}
}
];
diff --git a/src/ts/postProcesses/uniforms.ts b/src/ts/postProcesses/uniforms.ts
index ff2fd262f..50591966e 100644
--- a/src/ts/postProcesses/uniforms.ts
+++ b/src/ts/postProcesses/uniforms.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -17,7 +17,6 @@
import { UberScene } from "../uberCore/uberScene";
import { SamplerEnumType, ShaderSamplers, ShaderUniforms, UniformEnumType } from "../uberCore/postProcesses/types";
-import { Vector3 } from "@babylonjs/core/Maths/math.vector";
import { BoundingSphere } from "../architecture/boundingSphere";
import { Star } from "../stellarObjects/star/star";
import { Transformable } from "../architecture/transformable";
@@ -28,7 +27,7 @@ export function getActiveCameraUniforms(scene: Scene): ShaderUniforms {
return [
{
name: "camera_position",
- type: UniformEnumType.Vector3,
+ type: UniformEnumType.VECTOR_3,
get: () => {
if (scene.activeCamera === null) throw new Error("No active camera");
return scene.activeCamera.globalPosition;
@@ -36,7 +35,7 @@ export function getActiveCameraUniforms(scene: Scene): ShaderUniforms {
},
{
name: "camera_projection",
- type: UniformEnumType.Matrix,
+ type: UniformEnumType.MATRIX,
get: () => {
if (scene.activeCamera === null) throw new Error("No active camera");
return scene.activeCamera.getProjectionMatrix();
@@ -44,7 +43,7 @@ export function getActiveCameraUniforms(scene: Scene): ShaderUniforms {
},
{
name: "camera_inverseProjection",
- type: UniformEnumType.Matrix,
+ type: UniformEnumType.MATRIX,
get: () => {
if (scene.activeCamera === null) throw new Error("No active camera");
return scene.activeCamera.getProjectionMatrix().clone().invert();
@@ -52,7 +51,7 @@ export function getActiveCameraUniforms(scene: Scene): ShaderUniforms {
},
{
name: "camera_view",
- type: UniformEnumType.Matrix,
+ type: UniformEnumType.MATRIX,
get: () => {
if (scene.activeCamera === null) throw new Error("No active camera");
return scene.activeCamera.getViewMatrix();
@@ -60,7 +59,7 @@ export function getActiveCameraUniforms(scene: Scene): ShaderUniforms {
},
{
name: "camera_inverseView",
- type: UniformEnumType.Matrix,
+ type: UniformEnumType.MATRIX,
get: () => {
if (scene.activeCamera === null) throw new Error("No active camera");
return scene.activeCamera.getViewMatrix().clone().invert();
@@ -68,7 +67,7 @@ export function getActiveCameraUniforms(scene: Scene): ShaderUniforms {
},
{
name: "camera_near",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
if (scene.activeCamera === null) throw new Error("No active camera");
return scene.activeCamera.minZ;
@@ -76,7 +75,7 @@ export function getActiveCameraUniforms(scene: Scene): ShaderUniforms {
},
{
name: "camera_far",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
if (scene.activeCamera === null) throw new Error("No active camera");
return scene.activeCamera.maxZ;
@@ -84,7 +83,7 @@ export function getActiveCameraUniforms(scene: Scene): ShaderUniforms {
},
{
name: "camera_fov",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
if (scene.activeCamera === null) throw new Error("No active camera");
return scene.activeCamera.fov;
@@ -97,17 +96,17 @@ export function getStellarObjectsUniforms(stars: Transformable[]): ShaderUniform
return [
{
name: "star_positions",
- type: UniformEnumType.Vector3Array,
+ type: UniformEnumType.VECTOR_3_ARRAY,
get: () => stars.map((star) => star.getTransform().getAbsolutePosition())
},
{
name: "star_colors",
- type: UniformEnumType.Color3Array,
+ type: UniformEnumType.COLOR_3_ARRAY,
get: () => stars.map((star) => (star instanceof Star ? star.model.color : Color3.White()))
},
{
name: "nbStars",
- type: UniformEnumType.Int,
+ type: UniformEnumType.INT,
get: () => stars.length
}
];
@@ -117,17 +116,17 @@ export function getObjectUniforms(object: Transformable & BoundingSphere): Shade
return [
{
name: "object_position",
- type: UniformEnumType.Vector3,
+ type: UniformEnumType.VECTOR_3,
get: () => object.getTransform().getAbsolutePosition()
},
{
name: "object_radius",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => object.getBoundingRadius()
},
{
name: "object_rotationAxis",
- type: UniformEnumType.Vector3,
+ type: UniformEnumType.VECTOR_3,
get: () => object.getTransform().up
}
];
@@ -137,12 +136,12 @@ export function getSamplers(scene: UberScene): ShaderSamplers {
return [
{
name: "textureSampler",
- type: SamplerEnumType.Auto,
+ type: SamplerEnumType.AUTO,
get: () => undefined
},
{
name: "depthSampler",
- type: SamplerEnumType.Texture,
+ type: SamplerEnumType.TEXTURE,
get: () => scene.getDepthRenderer().getDepthMap()
}
];
diff --git a/src/ts/postProcesses/volumetricCloudsPostProcess.ts b/src/ts/postProcesses/volumetricCloudsPostProcess.ts
index 85fd6a328..aa92e6c6f 100644
--- a/src/ts/postProcesses/volumetricCloudsPostProcess.ts
+++ b/src/ts/postProcesses/volumetricCloudsPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -47,14 +47,14 @@ export class VolumetricCloudsPostProcess extends UberPostProcess implements Obje
...getActiveCameraUniforms(scene),
{
name: "cloudLayerMinHeight",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return planet.getBoundingRadius();
}
},
{
name: "cloudLayerMaxHeight",
- type: UniformEnumType.Float,
+ type: UniformEnumType.FLOAT,
get: () => {
return planet.getBoundingRadius() + 30e3;
}
diff --git a/src/ts/postProcesses/volumetricLight.ts b/src/ts/postProcesses/volumetricLight.ts
index 3d2796403..ba53b69e2 100644
--- a/src/ts/postProcesses/volumetricLight.ts
+++ b/src/ts/postProcesses/volumetricLight.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/proceduralAssets/butterfly/butterfly.ts b/src/ts/proceduralAssets/butterfly/butterfly.ts
index 1ebfef3f9..36ed40e33 100644
--- a/src/ts/proceduralAssets/butterfly/butterfly.ts
+++ b/src/ts/proceduralAssets/butterfly/butterfly.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/proceduralAssets/butterfly/butterflyMaterial.ts b/src/ts/proceduralAssets/butterfly/butterflyMaterial.ts
index 6600b2adb..352b0b220 100644
--- a/src/ts/proceduralAssets/butterfly/butterflyMaterial.ts
+++ b/src/ts/proceduralAssets/butterfly/butterflyMaterial.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -57,4 +57,4 @@ export class ButterflyMaterial extends ShaderMaterial {
this.setVector3("playerPosition", playerPosition);
this.setFloat("time", this.elapsedSeconds);
}
-}
\ No newline at end of file
+}
diff --git a/src/ts/proceduralAssets/grass/grassBlade.ts b/src/ts/proceduralAssets/grass/grassBlade.ts
index 0c7dc34c3..ecb2c69d9 100644
--- a/src/ts/proceduralAssets/grass/grassBlade.ts
+++ b/src/ts/proceduralAssets/grass/grassBlade.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/proceduralAssets/grass/grassMaterial.ts b/src/ts/proceduralAssets/grass/grassMaterial.ts
index 62c743583..617b330fe 100644
--- a/src/ts/proceduralAssets/grass/grassMaterial.ts
+++ b/src/ts/proceduralAssets/grass/grassMaterial.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/randomizer.ts b/src/ts/randomizer.ts
index 299c5421b..4e48afbd7 100644
--- a/src/ts/randomizer.ts
+++ b/src/ts/randomizer.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -21,7 +21,7 @@ import { StarSystemController } from "./starSystem/starSystemController";
import { positionNearObjectBrightSide } from "./utils/positionNearObject";
import { CosmosJourneyer } from "./cosmosJourneyer";
-import { BODY_TYPE } from "./model/common";
+import { BodyType } from "./model/common";
import { SystemSeed } from "./utils/systemSeed";
const engine = await CosmosJourneyer.CreateAsync();
@@ -44,7 +44,7 @@ engine.starMap.setCurrentStarSystem(seed);
engine.init(true);
-const nbRadius = starSystem.model.getBodyTypeOfStar(0) === BODY_TYPE.BLACK_HOLE ? 8 : 3;
+const nbRadius = starSystem.model.getBodyTypeOfStar(0) === BodyType.BLACK_HOLE ? 8 : 3;
const planet = starSystem.planets.length > 0 ? starSystem.planets[0] : starSystem.stellarObjects[0];
positionNearObjectBrightSide(scene.getActiveController(), planet, starSystem, nbRadius);
diff --git a/src/ts/saveFile/universeCoordinates.ts b/src/ts/saveFile/universeCoordinates.ts
index 5d4c2dd89..4677355fb 100644
--- a/src/ts/saveFile/universeCoordinates.ts
+++ b/src/ts/saveFile/universeCoordinates.ts
@@ -77,4 +77,4 @@ export function isJsonStringValidUniverseCoordinates(jsonString: string): boolea
} catch (e) {
return false;
}
-}
\ No newline at end of file
+}
diff --git a/src/ts/settings.ts b/src/ts/settings.ts
index 90e4243c0..638ffe2c8 100644
--- a/src/ts/settings.ts
+++ b/src/ts/settings.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -31,13 +31,13 @@ export const Settings = {
OCEAN_DEPTH: 7e3,
TIME_MULTIPLIER: 1,
- CHUNK_RENDER_DISTANCE_MULTIPLIER: 2,
+ CHUNK_RENDERING_DISTANCE_MULTIPLIER: 2,
ENABLE_VOLUMETRIC_CLOUDS: false,
SEED_HALF_RANGE: 1e4,
C: 299792458,
FOV: (92 * Math.PI) / 180,
- MAIN_FONT: "Nasalization",
+ MAIN_FONT: "Nasalization"
};
export const CollisionMask = {
@@ -45,9 +45,9 @@ export const CollisionMask = {
DYNAMIC_OBJECTS: 0b00000010
};
-const seedableRNG = seededSquirrelNoise(Settings.UNIVERSE_SEED);
+const seedableRng = seededSquirrelNoise(Settings.UNIVERSE_SEED);
let step = 0;
-const perlinRNG = makeNoise3D(() => {
- return seedableRNG(step++);
+const perlinRng = makeNoise3D(() => {
+ return seedableRng(step++);
});
-export const UniverseDensity = (x: number, y: number, z: number) => (1.0 - Math.abs(perlinRNG(x * 0.2, y * 0.2, z * 0.2))) ** 8;
+export const UniverseDensity = (x: number, y: number, z: number) => (1.0 - Math.abs(perlinRng(x * 0.2, y * 0.2, z * 0.2))) ** 8;
diff --git a/src/ts/spacelegs/characterControls.ts b/src/ts/spacelegs/characterControls.ts
index 71d095bf5..1e7756fd2 100644
--- a/src/ts/spacelegs/characterControls.ts
+++ b/src/ts/spacelegs/characterControls.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -33,6 +33,7 @@ import "@babylonjs/core/Collisions/collisionCoordinator";
import { Camera } from "@babylonjs/core/Cameras/camera";
import { ArcRotateCamera } from "@babylonjs/core/Cameras/arcRotateCamera";
import { Transformable } from "../architecture/transformable";
+import { TelluricPlanet } from "../planets/telluricPlanet/telluricPlanet";
class AnimationGroupWrapper {
name: string;
@@ -54,6 +55,18 @@ class AnimationGroupWrapper {
}
}
+class AnimationState {
+ readonly idleAnimation: AnimationGroupWrapper;
+ readonly nonIdleAnimations: AnimationGroupWrapper[];
+ currentAnimation: AnimationGroupWrapper;
+
+ constructor(idleAnimation: AnimationGroupWrapper, nonIdleAnimations: AnimationGroupWrapper[]) {
+ this.idleAnimation = idleAnimation;
+ this.nonIdleAnimations = nonIdleAnimations;
+ this.currentAnimation = idleAnimation;
+ }
+}
+
export class CharacterControls implements Controls {
readonly character: AbstractMesh;
private readonly thirdPersonCamera: ArcRotateCamera;
@@ -62,24 +75,37 @@ export class CharacterControls implements Controls {
private readonly characterWalkSpeedBackwards = 1.2;
private readonly characterRunSpeed = 3.6;
private readonly characterRotationSpeed = 6;
+ private readonly characterSwimSpeed = 1.5;
private readonly idleAnim: AnimationGroupWrapper;
private readonly walkAnim: AnimationGroupWrapper;
private readonly walkBackAnim: AnimationGroupWrapper;
private readonly sambaAnim: AnimationGroupWrapper;
private readonly runningAnim: AnimationGroupWrapper;
- private readonly fallingIdleAnim: AnimationGroupWrapper;
+
+ private readonly swimmingIdleAnim: AnimationGroupWrapper;
+ private readonly swimmingForwardAnim: AnimationGroupWrapper;
+
private readonly jumpingAnim: AnimationGroupWrapper;
+
+ private readonly fallingIdleAnim: AnimationGroupWrapper;
+ private readonly skyDivingAnim: AnimationGroupWrapper;
+
private readonly nonIdleAnimations: AnimationGroupWrapper[];
private targetAnim: AnimationGroupWrapper | null = null;
+ private readonly groundedState: AnimationState;
+ private readonly fallingState: AnimationState;
+ private readonly swimmingState: AnimationState;
+ private currentAnimationState: AnimationState;
+
private closestWalkableObject: Transformable | null = null;
+ private distanceToGround = 0;
private readonly raycastResult = new PhysicsRaycastResult();
private readonly scene: Scene;
- private isGrounded = false;
private jumpVelocity = Vector3.Zero();
readonly inputs: Input[] = [];
@@ -108,6 +134,15 @@ export class CharacterControls implements Controls {
const fallingIdleAnim = scene.getAnimationGroupByName("FallingIdle");
if (fallingIdleAnim === null) throw new Error("'FallingIdle' animation not found");
+ const skyDivingAnim = scene.getAnimationGroupByName("Skydiving");
+ if (skyDivingAnim === null) throw new Error("'Skydiving' animation not found");
+
+ const swimmingIdleAnim = scene.getAnimationGroupByName("SwimmingIdle");
+ if (swimmingIdleAnim === null) throw new Error("'SwimmingIdle' animation not found");
+
+ const swimmingForwardAnim = scene.getAnimationGroupByName("SwimmingForward");
+ if (swimmingForwardAnim === null) throw new Error("'SwimmingForward' animation not found");
+
const jumpingAnim = scene.getAnimationGroupByName("Jumping");
if (jumpingAnim === null) throw new Error("'Jumping' animation not found");
@@ -117,8 +152,27 @@ export class CharacterControls implements Controls {
this.sambaAnim = new AnimationGroupWrapper("samba", sambaAnim, 0, true);
this.runningAnim = new AnimationGroupWrapper("running", runningAnim, 0, true);
this.fallingIdleAnim = new AnimationGroupWrapper("fallingIdle", fallingIdleAnim, 0, true);
+ this.skyDivingAnim = new AnimationGroupWrapper("skydiving", skyDivingAnim, 0, true);
+ this.skyDivingAnim.group.speedRatio = 1.5;
+ this.swimmingIdleAnim = new AnimationGroupWrapper("swimming", swimmingIdleAnim, 0, true);
+ this.swimmingForwardAnim = new AnimationGroupWrapper("swimmingForward", swimmingForwardAnim, 0, true);
this.jumpingAnim = new AnimationGroupWrapper("jumping", jumpingAnim, 0, false);
- this.nonIdleAnimations = [this.walkAnim, this.walkBackAnim, this.sambaAnim, this.runningAnim, this.fallingIdleAnim, this.jumpingAnim];
+ this.nonIdleAnimations = [
+ this.walkAnim,
+ this.walkBackAnim,
+ this.sambaAnim,
+ this.runningAnim,
+ this.fallingIdleAnim,
+ this.jumpingAnim,
+ this.skyDivingAnim,
+ this.swimmingIdleAnim,
+ this.swimmingForwardAnim
+ ];
+
+ this.groundedState = new AnimationState(this.idleAnim, [this.walkAnim, this.walkBackAnim, this.sambaAnim, this.runningAnim]);
+ this.fallingState = new AnimationState(this.fallingIdleAnim, [this.skyDivingAnim]);
+ this.swimmingState = new AnimationState(this.swimmingIdleAnim, [this.swimmingForwardAnim]);
+ this.currentAnimationState = this.groundedState;
this.targetAnim = this.idleAnim;
@@ -150,7 +204,6 @@ export class CharacterControls implements Controls {
const displacement = Vector3.Zero();
if (input instanceof Keyboard) {
const keyboard = input as Keyboard;
- let keydown = false;
if (this.walkAnim.weight > 0.0) {
this.character.moveWithCollisions(this.character.forward.scaleInPlace(-this.characterWalkSpeed * deltaTime * this.walkAnim.weight));
@@ -164,56 +217,56 @@ export class CharacterControls implements Controls {
this.character.moveWithCollisions(this.character.forward.scaleInPlace(-this.characterRunSpeed * deltaTime * this.runningAnim.weight));
}
- const isWalking = this.walkAnim.weight > 0.0 || this.walkBackAnim.weight > 0.0 || this.runningAnim.weight > 0.0;
-
// Translation
- if (keyboard.isPressed("z") || keyboard.isPressed("w")) {
- this.targetAnim = this.walkAnim;
- keydown = true;
- } else if (keyboard.isPressed("s")) {
- this.targetAnim = this.walkBackAnim;
- keydown = true;
- } else if (keyboard.isPressed("e")) {
- this.targetAnim = this.runningAnim;
- keydown = true;
- }
-
- if (!this.isGrounded) {
- this.targetAnim = this.fallingIdleAnim;
- keydown = true;
- }
-
- // Rotation
- if ((keyboard.isPressed("q") || keyboard.isPressed("a")) && isWalking) {
- this.character.rotate(Vector3.Up(), this.characterRotationSpeed * deltaTime);
- this.thirdPersonCamera.alpha += this.characterRotationSpeed * deltaTime;
- keydown = true;
- } else if (keyboard.isPressed("d") && isWalking) {
- this.character.rotate(Vector3.Up(), -this.characterRotationSpeed * deltaTime);
- this.thirdPersonCamera.alpha -= this.characterRotationSpeed * deltaTime;
- keydown = true;
- }
+ if (this.currentAnimationState === this.swimmingState) {
+ this.swimmingState.currentAnimation = this.swimmingIdleAnim;
+ if (keyboard.isPressed("z") || keyboard.isPressed("w")) {
+ this.swimmingState.currentAnimation = this.swimmingForwardAnim;
+ this.character.moveWithCollisions(this.character.forward.scaleInPlace(-this.characterSwimSpeed * deltaTime));
+ }
+ } else if (this.currentAnimationState === this.groundedState) {
+ this.groundedState.currentAnimation = this.idleAnim;
+ if (keyboard.isPressed("z") || keyboard.isPressed("w")) {
+ this.groundedState.currentAnimation = this.walkAnim;
+ } else if (keyboard.isPressed("s")) {
+ this.groundedState.currentAnimation = this.walkBackAnim;
+ } else if (keyboard.isPressed("e")) {
+ this.groundedState.currentAnimation = this.runningAnim;
+ }
- // Samba!
- if (keyboard.isPressed("b")) {
- this.targetAnim = this.sambaAnim;
- keydown = true;
- }
+ // Samba!
+ if (keyboard.isPressed("b")) {
+ this.groundedState.currentAnimation = this.sambaAnim;
+ }
- if (keyboard.isPressed(" ")) {
- if (this.isGrounded) {
+ if (keyboard.isPressed(" ")) {
this.targetAnim = this.jumpingAnim;
this.jumpingAnim.weight = 1;
this.jumpingAnim.group.stop();
this.jumpingAnim.group.play();
- this.isGrounded = false;
+ this.currentAnimationState = this.fallingState;
this.jumpVelocity = this.character.up.scale(10.0).add(this.character.forward.scale(-5.0));
- keydown = true;
+ }
+
+ } else if (this.currentAnimationState === this.fallingState) {
+ if (this.distanceToGround < 30) {
+ this.fallingState.currentAnimation = this.fallingIdleAnim;
+ } else {
+ this.fallingState.currentAnimation = this.skyDivingAnim;
}
}
- if (!keydown) {
- this.targetAnim = this.idleAnim;
+ this.targetAnim = this.currentAnimationState.currentAnimation;
+
+ const isMoving = this.currentAnimationState.currentAnimation !== this.currentAnimationState.idleAnimation;
+
+ // Rotation
+ if ((keyboard.isPressed("q") || keyboard.isPressed("a")) && (isMoving)) {
+ this.character.rotate(Vector3.Up(), this.characterRotationSpeed * deltaTime);
+ this.thirdPersonCamera.alpha += this.characterRotationSpeed * deltaTime;
+ } else if (keyboard.isPressed("d") && (isMoving)) {
+ this.character.rotate(Vector3.Up(), -this.characterRotationSpeed * deltaTime);
+ this.thirdPersonCamera.alpha -= this.characterRotationSpeed * deltaTime;
}
let weightSum = 0;
@@ -238,7 +291,7 @@ export class CharacterControls implements Controls {
const start = character.getAbsolutePosition().add(character.up.scale(50e3));
const end = character.position.add(character.up.scale(-50e3));
- if (!this.isGrounded) {
+ if (this.currentAnimationState === this.fallingState) {
// apply gravity
this.jumpVelocity.addInPlace(character.up.scale(-9.8 * deltaTime));
translate(character, this.jumpVelocity.scale(deltaTime));
@@ -252,15 +305,40 @@ export class CharacterControls implements Controls {
(this.scene.getPhysicsEngine() as PhysicsEngineV2).raycastToRef(start, end, this.raycastResult, { collideWith: CollisionMask.ENVIRONMENT });
if (this.raycastResult.hasHit) {
const up = character.up;
- const distance = Vector3.Dot(character.getAbsolutePosition().subtract(this.raycastResult.hitPointWorld), up);
+ let distance = Vector3.Dot(character.getAbsolutePosition().subtract(this.raycastResult.hitPointWorld), up);
+
+ // if closestWalkableObject is a telluric planet, the distance is the min between the distance to the ground and the distance to the water level
+ if (this.closestWalkableObject !== null && this.closestWalkableObject instanceof TelluricPlanet) {
+ const waterLevel = this.closestWalkableObject.model.physicalProperties.oceanLevel + this.closestWalkableObject.getRadius();
+ const distanceToWater = Vector3.Distance(this.getTransform().getAbsolutePosition(), this.closestWalkableObject.getTransform().getAbsolutePosition()) - waterLevel;
+ distance = Math.min(distance, distanceToWater + 1.3);
+ }
+
if (distance <= 0.1) {
// push the character up if it's below the surface
translate(character, up.scale(-distance));
- this.isGrounded = true;
+
+ if (this.closestWalkableObject !== null && this.closestWalkableObject instanceof TelluricPlanet) {
+ const waterLevel = this.closestWalkableObject.model.physicalProperties.oceanLevel + this.closestWalkableObject.getRadius();
+ const distanceToWater =
+ Vector3.Distance(this.getTransform().getAbsolutePosition(), this.closestWalkableObject.getTransform().getAbsolutePosition()) - waterLevel;
+ if (distanceToWater < 0) {
+ this.currentAnimationState = this.swimmingState;
+ } else {
+ this.currentAnimationState = this.groundedState;
+ }
+ } else {
+ this.currentAnimationState = this.groundedState;
+ }
+ this.distanceToGround = 0;
this.jumpVelocity = Vector3.Zero();
} else {
- this.isGrounded = false;
+ this.currentAnimationState = this.fallingState;
+ this.distanceToGround = distance;
}
+ } else {
+ this.currentAnimationState = this.fallingState;
+ this.distanceToGround = 50e3;
}
const playerMovement = Vector3.Zero();
@@ -268,6 +346,7 @@ export class CharacterControls implements Controls {
translate(this.getTransform(), playerMovement);
this.getActiveCamera().getViewMatrix();
+
return playerMovement;
}
diff --git a/src/ts/spaceship/abstractThruster.ts b/src/ts/spaceship/abstractThruster.ts
index a4a67a4ab..98c4299ef 100644
--- a/src/ts/spaceship/abstractThruster.ts
+++ b/src/ts/spaceship/abstractThruster.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -22,7 +22,7 @@ import { AbstractMesh, MeshBuilder } from "@babylonjs/core/Meshes";
import { DirectionnalParticleSystem } from "../utils/particleSystem";
import { PhysicsAggregate } from "@babylonjs/core/Physics/v2/physicsAggregate";
import { getDownwardDirection } from "../uberCore/transforms/basicTransform";
-import { LOCAL_DIRECTION } from "../uberCore/localDirections";
+import { LocalDirection } from "../uberCore/localDirections";
export abstract class AbstractThruster {
readonly mesh: AbstractMesh;
@@ -94,11 +94,11 @@ export abstract class AbstractThruster {
}
public getRollAuthorityNormalized(): number {
- return this.getAuthorityAroundAxisNormalized(LOCAL_DIRECTION.FORWARD);
+ return this.getAuthorityAroundAxisNormalized(LocalDirection.FORWARD);
}
public getPitchAuthorityNormalized(): number {
- return this.getAuthorityAroundAxisNormalized(LOCAL_DIRECTION.RIGHT);
+ return this.getAuthorityAroundAxisNormalized(LocalDirection.RIGHT);
}
public update(): void {
diff --git a/src/ts/spaceship/mainThruster.ts b/src/ts/spaceship/mainThruster.ts
index a3be11f57..abd119f24 100644
--- a/src/ts/spaceship/mainThruster.ts
+++ b/src/ts/spaceship/mainThruster.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/spaceship/rcsThruster.ts b/src/ts/spaceship/rcsThruster.ts
index 52ad44db7..cdccc6699 100644
--- a/src/ts/spaceship/rcsThruster.ts
+++ b/src/ts/spaceship/rcsThruster.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/spaceship/shipControls.ts b/src/ts/spaceship/shipControls.ts
index 70bd29212..27a703f56 100644
--- a/src/ts/spaceship/shipControls.ts
+++ b/src/ts/spaceship/shipControls.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -17,8 +17,8 @@
import { Scene } from "@babylonjs/core/scene";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
-import { LOCAL_DIRECTION } from "../uberCore/localDirections";
-import { getForwardDirection, getUpwardDirection, pitch, roll, translate } from "../uberCore/transforms/basicTransform";
+import { LocalDirection } from "../uberCore/localDirections";
+import { getUpwardDirection, pitch, roll } from "../uberCore/transforms/basicTransform";
import { TransformNode } from "@babylonjs/core/Meshes";
import { Controls } from "../uberCore/controls";
import { Input, InputType } from "../inputs/input";
@@ -77,14 +77,14 @@ export class ShipControls implements Controls {
private listenTo(input: Input, deltaTime: number) {
if (this.spaceship.getWarpDrive().isDisabled()) {
for (const thruster of this.spaceship.mainThrusters) {
- thruster.updateThrottle(2 * deltaTime * input.getZAxis() * thruster.getAuthority01(LOCAL_DIRECTION.FORWARD));
- thruster.updateThrottle(2 * deltaTime * -input.getZAxis() * thruster.getAuthority01(LOCAL_DIRECTION.BACKWARD));
+ thruster.updateThrottle(2 * deltaTime * input.getZAxis() * thruster.getAuthority01(LocalDirection.FORWARD));
+ thruster.updateThrottle(2 * deltaTime * -input.getZAxis() * thruster.getAuthority01(LocalDirection.BACKWARD));
- thruster.updateThrottle(2 * deltaTime * input.getYAxis() * thruster.getAuthority01(LOCAL_DIRECTION.UP));
- thruster.updateThrottle(2 * deltaTime * -input.getYAxis() * thruster.getAuthority01(LOCAL_DIRECTION.DOWN));
+ thruster.updateThrottle(2 * deltaTime * input.getYAxis() * thruster.getAuthority01(LocalDirection.UP));
+ thruster.updateThrottle(2 * deltaTime * -input.getYAxis() * thruster.getAuthority01(LocalDirection.DOWN));
- thruster.updateThrottle(2 * deltaTime * input.getXAxis() * thruster.getAuthority01(LOCAL_DIRECTION.LEFT));
- thruster.updateThrottle(2 * deltaTime * -input.getXAxis() * thruster.getAuthority01(LOCAL_DIRECTION.RIGHT));
+ thruster.updateThrottle(2 * deltaTime * input.getXAxis() * thruster.getAuthority01(LocalDirection.LEFT));
+ thruster.updateThrottle(2 * deltaTime * -input.getXAxis() * thruster.getAuthority01(LocalDirection.RIGHT));
}
if (input.type === InputType.KEYBOARD) {
diff --git a/src/ts/spaceship/spaceship.ts b/src/ts/spaceship/spaceship.ts
index e08dc9472..3fceab106 100644
--- a/src/ts/spaceship/spaceship.ts
+++ b/src/ts/spaceship/spaceship.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -29,11 +29,7 @@ import { Observable } from "@babylonjs/core/Misc/observable";
import { Axis } from "@babylonjs/core/Maths/math.axis";
import { HavokPlugin } from "@babylonjs/core/Physics/v2/Plugins/havokPlugin";
import { setEnabledBody } from "../utils/havok";
-import {
- getForwardDirection, getRotationQuaternion, getUpwardDirection, rotate,
- setRotationQuaternion,
- translate
-} from "../uberCore/transforms/basicTransform";
+import { getForwardDirection, getRotationQuaternion, getUpwardDirection, rotate, setRotationQuaternion, translate } from "../uberCore/transforms/basicTransform";
import { TransformNode } from "@babylonjs/core/Meshes";
import { Assets } from "../assets";
import { PhysicsRaycastResult } from "@babylonjs/core/Physics/physicsRaycastResult";
@@ -41,7 +37,6 @@ import { CollisionMask } from "../settings";
import { Transformable } from "../architecture/transformable";
import { WarpTunnel } from "../utils/warpTunnel";
import { Quaternion } from "@babylonjs/core/Maths/math";
-import { MeshBuilder } from "@babylonjs/core/Meshes/meshBuilder";
import { LandingPad } from "../landingPad/landingPad";
import { PhysicsEngineV2 } from "@babylonjs/core/Physics/v2";
@@ -236,11 +231,11 @@ export class Spaceship implements Transformable {
}
private land(deltaTime: number) {
- if(this.targetLandingPad !== null) {
+ if (this.targetLandingPad !== null) {
this.landOnPad(this.targetLandingPad, deltaTime);
}
- if(this.landingTarget !== null) {
+ if (this.landingTarget !== null) {
const gravityDir = this.landingTarget.getTransform().getAbsolutePosition().subtract(this.getTransform().getAbsolutePosition()).normalize();
const start = this.getTransform().getAbsolutePosition().add(gravityDir.scale(-50e3));
const end = this.getTransform().getAbsolutePosition().add(gravityDir.scale(50e3));
@@ -248,10 +243,8 @@ export class Spaceship implements Transformable {
(this.scene.getPhysicsEngine() as PhysicsEngineV2).raycastToRef(start, end, this.raycastResult, { collideWith: CollisionMask.ENVIRONMENT });
if (this.raycastResult.hasHit) {
const landingSpotNormal = this.raycastResult.hitNormalWorld;
- const extent = this.instanceRoot.getHierarchyBoundingVectors();
- const shipYExtend = extent.max.y - extent.min.y;
- const landingSpot = this.raycastResult.hitPointWorld.add(this.raycastResult.hitNormalWorld.scale(shipYExtend / 2));
+ const landingSpot = this.raycastResult.hitPointWorld.add(this.raycastResult.hitNormalWorld.scale(1.0));
const distance = landingSpot.subtract(this.getTransform().getAbsolutePosition()).dot(gravityDir);
console.log(500 * deltaTime * Math.sign(distance), distance);
@@ -282,7 +275,7 @@ export class Spaceship implements Transformable {
const distance = Vector3.Distance(targetPosition, currentPosition);
- if(distance < 0.01) {
+ if (distance < 0.01) {
this.completeLanding();
return;
}
@@ -290,7 +283,13 @@ export class Spaceship implements Transformable {
const targetOrientation = landingPad.getTransform().absoluteRotationQuaternion;
const currentOrientation = getRotationQuaternion(this.getTransform());
- translate(this.getTransform(), targetPosition.subtract(currentPosition).normalize().scaleInPlace(Math.min(distance, 20 * deltaTime)));
+ translate(
+ this.getTransform(),
+ targetPosition
+ .subtract(currentPosition)
+ .normalize()
+ .scaleInPlace(Math.min(distance, 20 * deltaTime))
+ );
this.getTransform().rotationQuaternion = Quaternion.Slerp(currentOrientation, targetOrientation, deltaTime);
}
diff --git a/src/ts/spaceship/warpDrive.ts b/src/ts/spaceship/warpDrive.ts
index b2eba3451..bcd72c470 100644
--- a/src/ts/spaceship/warpDrive.ts
+++ b/src/ts/spaceship/warpDrive.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -18,7 +18,7 @@
import { Settings } from "../settings";
import { clamp } from "../utils/math";
-enum WARPDRIVE_STATE {
+enum WarpDriveState {
/**
* The warp drive is disabled. It can be enabled by the user.
*/
@@ -114,48 +114,48 @@ export class WarpDrive implements ReadonlyWarpDrive {
/**
* Current state of the warp drive.
*/
- private state = WARPDRIVE_STATE.DISABLED;
+ private state = WarpDriveState.DISABLED;
private static MIN_SPEED = 500;
constructor(enabledByDefault = false) {
- this.state = enabledByDefault ? WARPDRIVE_STATE.ENABLED : WARPDRIVE_STATE.DISABLED;
+ this.state = enabledByDefault ? WarpDriveState.ENABLED : WarpDriveState.DISABLED;
}
/**
* Enables the warp drive: the ship will start to accelerate towards the target speed.
*/
public enable(): void {
- this.state = WARPDRIVE_STATE.ENABLED;
+ this.state = WarpDriveState.ENABLED;
}
/**
* Desengages the warp drive: the ship will start to decelerate towards 0. The warp drive will be disabled when the ship reaches 0 speed.
*/
public desengage(): void {
- this.state = WARPDRIVE_STATE.DESENGAGING;
+ this.state = WarpDriveState.DESENGAGING;
}
/**
* Disables the warp drive: the target speed, the current speed and the internal throttle are set to 0.
*/
private disable(): void {
- this.state = WARPDRIVE_STATE.DISABLED;
+ this.state = WarpDriveState.DISABLED;
this.targetSpeed = 0;
this.internalThrottle = 0;
this.currentSpeed = 0;
}
public isEnabled(): boolean {
- return this.state === WARPDRIVE_STATE.ENABLED;
+ return this.state === WarpDriveState.ENABLED;
}
public isDisabled(): boolean {
- return this.state === WARPDRIVE_STATE.DISABLED;
+ return this.state === WarpDriveState.DISABLED;
}
public isDesengaging(): boolean {
- return this.state === WARPDRIVE_STATE.DESENGAGING;
+ return this.state === WarpDriveState.DESENGAGING;
}
/**
@@ -166,8 +166,8 @@ export class WarpDrive implements ReadonlyWarpDrive {
*/
public updateTargetSpeed(closestObjectDistance: number, closestObjectRadius: number): number {
const speedThreshold = 10e3;
- const closeSpeed = (speedThreshold * 0.025 * Math.max(0, closestObjectDistance - closestObjectRadius)) / speedThreshold;
- const deepSpaceSpeed = speedThreshold * ((0.025 * Math.max(0, closestObjectDistance - closestObjectRadius)) / speedThreshold) ** 1.1;
+ const closeSpeed = (speedThreshold * 0.05 * Math.max(0, closestObjectDistance - closestObjectRadius)) / speedThreshold;
+ const deepSpaceSpeed = speedThreshold * ((0.05 * Math.max(0, closestObjectDistance - closestObjectRadius)) / speedThreshold) ** 1.2;
this.targetSpeed = Math.min(this.maxWarpSpeed, Math.max(closeSpeed, deepSpaceSpeed));
return this.targetThrottle * this.targetSpeed;
}
@@ -223,16 +223,16 @@ export class WarpDrive implements ReadonlyWarpDrive {
*/
public update(currentForwardSpeed: number, closestObjectDistance: number, clostestObjectRadius: number, deltaTime: number): void {
switch (this.state) {
- case WARPDRIVE_STATE.DESENGAGING:
+ case WarpDriveState.DESENGAGING:
this.targetSpeed *= 0.9;
this.updateWarpDriveSpeed(currentForwardSpeed, deltaTime);
if (this.targetSpeed <= WarpDrive.MIN_SPEED && this.currentSpeed <= WarpDrive.MIN_SPEED) this.disable();
break;
- case WARPDRIVE_STATE.ENABLED:
+ case WarpDriveState.ENABLED:
this.updateTargetSpeed(closestObjectDistance, clostestObjectRadius);
this.updateWarpDriveSpeed(currentForwardSpeed, deltaTime);
break;
- case WARPDRIVE_STATE.DISABLED:
+ case WarpDriveState.DISABLED:
this.targetSpeed = 0;
this.currentSpeed = 0;
this.internalThrottle = 0;
diff --git a/src/ts/spaceshipExtended/spaceship.ts b/src/ts/spaceshipExtended/spaceship.ts
index ce2688890..c0560d911 100644
--- a/src/ts/spaceshipExtended/spaceship.ts
+++ b/src/ts/spaceshipExtended/spaceship.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -136,7 +136,7 @@ export class Spaceship {
this.collisionObservable = this.aggregate.body.getCollisionObservable();
this.collisionObservable.add((collisionEvent: IPhysicsCollisionEvent) => {
if (collisionEvent.impulse < 0.8) return;
- Assets.OuchSound.play();
+ Assets.OUCH_SOUND.play();
});
}
@@ -177,15 +177,15 @@ export class Spaceship {
const forwardPressed = keyboard.isAnyPressed(["w", "z"]);
if (spacePressed !== this.hoverThrustersRunning) {
- if (spacePressed) Assets.EngineRunningSound.play();
- else Assets.EngineRunningSound.stop();
+ if (spacePressed) Assets.ENGINE_RUNNING_SOUND.play();
+ else Assets.ENGINE_RUNNING_SOUND.stop();
this.hoverThrustersRunning = spacePressed;
}
if (forwardPressed !== this.mainThrustersRunning) {
- if (forwardPressed) Assets.EngineRunningSound.play();
- else Assets.EngineRunningSound.stop();
+ if (forwardPressed) Assets.ENGINE_RUNNING_SOUND.play();
+ else Assets.ENGINE_RUNNING_SOUND.stop();
this.mainThrustersRunning = forwardPressed;
}
diff --git a/src/ts/spaceshipExtended/thruster.ts b/src/ts/spaceshipExtended/thruster.ts
index d8ec29f7e..76ed31c37 100644
--- a/src/ts/spaceshipExtended/thruster.ts
+++ b/src/ts/spaceshipExtended/thruster.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/spaceshipExtended/thrusterMatrix.ts b/src/ts/spaceshipExtended/thrusterMatrix.ts
index 79f08d315..00d3ed255 100644
--- a/src/ts/spaceshipExtended/thrusterMatrix.ts
+++ b/src/ts/spaceshipExtended/thrusterMatrix.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/spacestation/spaceStation.ts b/src/ts/spacestation/spaceStation.ts
index a87a7faa8..2a17f7b8c 100644
--- a/src/ts/spacestation/spaceStation.ts
+++ b/src/ts/spacestation/spaceStation.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/spacestation/spacestationModel.ts b/src/ts/spacestation/spacestationModel.ts
index 4c553916c..316dcce51 100644
--- a/src/ts/spacestation/spacestationModel.ts
+++ b/src/ts/spacestation/spacestationModel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -16,7 +16,7 @@
// along with this program. If not, see .
import { seededSquirrelNoise } from "squirrel-noise";
-import { GENERATION_STEPS } from "../model/common";
+import { GenerationSteps } from "../model/common";
import { OrbitProperties } from "../orbit/orbitProperties";
import { getOrbitalPeriod } from "../orbit/orbit";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
@@ -52,7 +52,7 @@ export class SpaceStationModel implements OrbitalObjectModel {
this.physicalProperties = {
mass: 1,
rotationPeriod: 60 * 2,
- axialTilt: 2 * this.rng(GENERATION_STEPS.AXIAL_TILT) * Math.PI
+ axialTilt: 2 * this.rng(GenerationSteps.AXIAL_TILT) * Math.PI
};
}
}
diff --git a/src/ts/starSystem/starSystemController.ts b/src/ts/starSystem/starSystemController.ts
index 422269695..9ce69eb5f 100644
--- a/src/ts/starSystem/starSystemController.ts
+++ b/src/ts/starSystem/starSystemController.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -27,7 +27,7 @@ import { TelluricPlanet } from "../planets/telluricPlanet/telluricPlanet";
import { GasPlanet } from "../planets/gasPlanet/gasPlanet";
import { Mandelbulb } from "../mandelbulb/mandelbulb";
import { StarSystemModel } from "./starSystemModel";
-import { rotateAround, setUpVector, translate } from "../uberCore/transforms/basicTransform";
+import { rotateAround, translate } from "../uberCore/transforms/basicTransform";
import { Star } from "../stellarObjects/star/star";
import { BlackHole } from "../stellarObjects/blackHole/blackHole";
import { NeutronStar } from "../stellarObjects/neutronStar/neutronStar";
diff --git a/src/ts/starSystem/starSystemHelper.ts b/src/ts/starSystem/starSystemHelper.ts
index d341b835c..2101299f2 100644
--- a/src/ts/starSystem/starSystemHelper.ts
+++ b/src/ts/starSystem/starSystemHelper.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -33,12 +33,12 @@ import { GasPlanet } from "../planets/gasPlanet/gasPlanet";
import { getMoonSeed } from "../planets/common";
import { Planet } from "../architecture/planet";
import { StellarObject } from "../architecture/stellarObject";
-import { BODY_TYPE } from "../model/common";
+import { BodyType } from "../model/common";
import { SpaceStation } from "../spacestation/spaceStation";
import { CelestialBody } from "../architecture/celestialBody";
export class StarSystemHelper {
- public static makeStar(starsystem: StarSystemController, model?: number | StarModel): Star {
+ public static MakeStar(starsystem: StarSystemController, model?: number | StarModel): Star {
if (model === undefined) {
model = starsystem.model.getStarSeed(starsystem.stellarObjects.length);
}
@@ -48,7 +48,7 @@ export class StarSystemHelper {
return star;
}
- public static makeMandelbulb(starsystem: StarSystemController, model: number | MandelbulbModel = starsystem.model.getPlanetSeed(starsystem.mandelbulbs.length)): Mandelbulb {
+ public static MakeMandelbulb(starsystem: StarSystemController, model: number | MandelbulbModel = starsystem.model.getPlanetSeed(starsystem.mandelbulbs.length)): Mandelbulb {
if (starsystem.planets.length >= starsystem.model.getNbPlanets())
console.warn(`You are adding a mandelbulb to the system.
The system generator had planned for ${starsystem.model.getNbPlanets()} planets, but you are adding the ${starsystem.planets.length + 1}th planet.
@@ -63,14 +63,14 @@ export class StarSystemHelper {
* @param starsystem
* @param model The model or seed to use for the planet generation (by default, the next available seed planned by the system model)
*/
- public static makeBlackHole(starsystem: StarSystemController, model: number | BlackHoleModel = starsystem.model.getStarSeed(starsystem.stellarObjects.length)): BlackHole {
+ public static MakeBlackHole(starsystem: StarSystemController, model: number | BlackHoleModel = starsystem.model.getStarSeed(starsystem.stellarObjects.length)): BlackHole {
const name = starName(starsystem.model.getName(), starsystem.stellarObjects.length);
const blackHole = new BlackHole(name, starsystem.scene, model, starsystem.stellarObjects.length > 0 ? starsystem.stellarObjects[0] : null);
starsystem.addStellarObject(blackHole);
return blackHole;
}
- public static makeNeutronStar(
+ public static MakeNeutronStar(
starsystem: StarSystemController,
model: number | NeutronStarModel = starsystem.model.getStarSeed(starsystem.stellarObjects.length)
): NeutronStar {
@@ -90,19 +90,19 @@ export class StarSystemHelper {
* @param starsystem
* @param seed The seed to use for the star generation (by default, the next available seed planned by the system model)
*/
- public static makeStellarObject(starsystem: StarSystemController, seed: number = starsystem.model.getStarSeed(starsystem.stellarObjects.length)): StellarObject {
+ public static MakeStellarObject(starsystem: StarSystemController, seed: number = starsystem.model.getStarSeed(starsystem.stellarObjects.length)): StellarObject {
const stellarObjectType = starsystem.model.getBodyTypeOfStar(starsystem.stellarObjects.length);
- if(stellarObjectType === BODY_TYPE.BLACK_HOLE) {
- const blackHole = StarSystemHelper.makeBlackHole(starsystem, seed);
- StarSystemHelper.makeSpaceStations(starsystem, blackHole);
+ if (stellarObjectType === BodyType.BLACK_HOLE) {
+ const blackHole = StarSystemHelper.MakeBlackHole(starsystem, seed);
+ StarSystemHelper.MakeSpaceStations(starsystem, blackHole);
return blackHole;
- } else if(stellarObjectType === BODY_TYPE.NEUTRON_STAR) {
- const neutronStar = StarSystemHelper.makeNeutronStar(starsystem, seed);
- StarSystemHelper.makeSpaceStations(starsystem, neutronStar);
+ } else if (stellarObjectType === BodyType.NEUTRON_STAR) {
+ const neutronStar = StarSystemHelper.MakeNeutronStar(starsystem, seed);
+ StarSystemHelper.MakeSpaceStations(starsystem, neutronStar);
return neutronStar;
- } else if(stellarObjectType === BODY_TYPE.STAR) {
- const star = StarSystemHelper.makeStar(starsystem, seed);
- StarSystemHelper.makeSpaceStations(starsystem, star);
+ } else if (stellarObjectType === BodyType.STAR) {
+ const star = StarSystemHelper.MakeStar(starsystem, seed);
+ StarSystemHelper.MakeSpaceStations(starsystem, star);
return star;
} else {
throw new Error(`Unknown stellar object type ${stellarObjectType}`);
@@ -114,9 +114,9 @@ export class StarSystemHelper {
* @param starsystem
* @param n The number of stars to make (by default, the number of stars planned by the system model)
*/
- public static makeStellarObjects(starsystem: StarSystemController, n = starsystem.model.getNbStars()): void {
+ public static MakeStellarObjects(starsystem: StarSystemController, n = starsystem.model.getNbStars()): void {
if (n < 1) throw new Error("Cannot make less than 1 star");
- for (let i = 0; i < n; i++) StarSystemHelper.makeStellarObject(starsystem);
+ for (let i = 0; i < n; i++) StarSystemHelper.MakeStellarObject(starsystem);
}
/**
@@ -124,7 +124,7 @@ export class StarSystemHelper {
* @param starsystem
* @param model The model or seed to use for the planet generation (by default, the next available seed planned by the system model)
*/
- public static makeTelluricPlanet(
+ public static MakeTelluricPlanet(
starsystem: StarSystemController,
model: number | TelluricPlanetModel = starsystem.model.getPlanetSeed(starsystem.planets.length)
): TelluricPlanet {
@@ -139,32 +139,32 @@ export class StarSystemHelper {
* @param starsystem
* @param model The model or seed to use for the planet generation (by default, the next available seed planned by the system model)
*/
- public static makeGasPlanet(starsystem: StarSystemController, model: number | GasPlanetModel = starsystem.model.getPlanetSeed(starsystem.planets.length)): GasPlanet {
+ public static MakeGasPlanet(starsystem: StarSystemController, model: number | GasPlanetModel = starsystem.model.getPlanetSeed(starsystem.planets.length)): GasPlanet {
const planet = new GasPlanet(`${starsystem.model.getName()} ${romanNumeral(starsystem.planets.length + 1)}`, starsystem.scene, model, starsystem.stellarObjects[0]);
starsystem.addGasPlanet(planet);
return planet;
}
- public static makePlanets(starsystem: StarSystemController, n: number): void {
+ public static MakePlanets(starsystem: StarSystemController, n: number): void {
console.assert(n >= 0, `Cannot make a negative amount of planets : ${n}`);
for (let i = 0; i < n; i++) {
const bodyType = starsystem.model.getBodyTypeOfPlanet(starsystem.planets.length);
- if(bodyType === BODY_TYPE.TELLURIC_PLANET) {
- const planet = StarSystemHelper.makeTelluricPlanet(starsystem);
- StarSystemHelper.makeSatellites(starsystem, planet);
- StarSystemHelper.makeSpaceStations(starsystem, planet);
- } else if(bodyType === BODY_TYPE.GAS_PLANET) {
- const planet = StarSystemHelper.makeGasPlanet(starsystem);
- StarSystemHelper.makeSatellites(starsystem, planet);
- StarSystemHelper.makeSpaceStations(starsystem, planet);
+ if (bodyType === BodyType.TELLURIC_PLANET) {
+ const planet = StarSystemHelper.MakeTelluricPlanet(starsystem);
+ StarSystemHelper.MakeSatellites(starsystem, planet);
+ StarSystemHelper.MakeSpaceStations(starsystem, planet);
+ } else if (bodyType === BodyType.GAS_PLANET) {
+ const planet = StarSystemHelper.MakeGasPlanet(starsystem);
+ StarSystemHelper.MakeSatellites(starsystem, planet);
+ StarSystemHelper.MakeSpaceStations(starsystem, planet);
} else {
throw new Error(`Unknown body type ${bodyType}`);
}
}
}
- public static makeSpaceStations(starsystem: StarSystemController, body: CelestialBody, n = body.model.getNbSpaceStations()): void {
+ public static MakeSpaceStations(starsystem: StarSystemController, body: CelestialBody, n = body.model.getNbSpaceStations()): void {
console.assert(n >= 0, `Cannot make a negative amount of space stations : ${n}`);
for (let i = 0; i < n; i++) {
const spacestation = new SpaceStation(starsystem.scene, body);
@@ -172,7 +172,7 @@ export class StarSystemHelper {
}
}
- public static makeSatellite(
+ public static MakeSatellite(
starsystem: StarSystemController,
planet: Planet,
model: TelluricPlanetModel | number = getMoonSeed(planet.model, planet.model.childrenBodies.length)
@@ -192,7 +192,7 @@ export class StarSystemHelper {
* @param planet The planet to make satellites for
* @param n The number of satellites to make
*/
- public static makeSatellites(starsystem: StarSystemController, planet: Planet, n = planet.model.nbMoons): void {
+ public static MakeSatellites(starsystem: StarSystemController, planet: Planet, n = planet.model.nbMoons): void {
if (n < 0) throw new Error(`Cannot make a negative amount of satellites : ${n}`);
if (planet.model.childrenBodies.length + n > planet.model.nbMoons)
console.warn(
@@ -203,14 +203,14 @@ export class StarSystemHelper {
You can just leave starsystem argument empty to make as many as the planet had planned.`
);
- for (let i = 0; i < n; i++) StarSystemHelper.makeSatellite(starsystem, planet, getMoonSeed(planet.model, planet.model.childrenBodies.length));
+ for (let i = 0; i < n; i++) StarSystemHelper.MakeSatellite(starsystem, planet, getMoonSeed(planet.model, planet.model.childrenBodies.length));
}
/**
* Generates the system using the seed provided in the constructor
*/
- public static generate(starsystem: StarSystemController) {
- StarSystemHelper.makeStellarObjects(starsystem, starsystem.model.getNbStars());
- StarSystemHelper.makePlanets(starsystem, starsystem.model.getNbPlanets());
+ public static Generate(starsystem: StarSystemController) {
+ StarSystemHelper.MakeStellarObjects(starsystem, starsystem.model.getNbStars());
+ StarSystemHelper.MakePlanets(starsystem, starsystem.model.getNbPlanets());
}
}
diff --git a/src/ts/starSystem/starSystemModel.ts b/src/ts/starSystem/starSystemModel.ts
index ec35e97da..c890ff503 100644
--- a/src/ts/starSystem/starSystemModel.ts
+++ b/src/ts/starSystem/starSystemModel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -18,17 +18,17 @@
import { seededSquirrelNoise } from "squirrel-noise";
import { centeredRand, randRangeInt, uniformRandBool } from "extended-random";
import { Settings } from "../settings";
-import { BODY_TYPE } from "../model/common";
+import { BodyType } from "../model/common";
import { generateName } from "../utils/nameGenerator";
import { SystemSeed } from "../utils/systemSeed";
-enum GENERATION_STEPS {
- NAME,
- NB_STARS = 20,
- GENERATE_STARS = 21,
- NB_PLANETS = 30,
- GENERATE_PLANETS = 200,
- CHOOSE_PLANET_TYPE = 200
+enum GenerationSteps {
+ Name,
+ NbStars = 20,
+ GenerateStars = 21,
+ NbPlanets = 30,
+ GeneratePlanets = 200,
+ ChoosePlanetType = 200
}
export class StarSystemModel {
@@ -41,7 +41,7 @@ export class StarSystemModel {
this.seed = seed;
this.rng = seededSquirrelNoise(this.seed.hash);
- this.name = generateName(this.rng, GENERATION_STEPS.NAME);
+ this.name = generateName(this.rng, GenerationSteps.Name);
}
setName(name: string) {
@@ -53,18 +53,18 @@ export class StarSystemModel {
}
getNbStars(): number {
- //return 1 + Math.floor(2 * this.rng(GENERATION_STEPS.NB_STARS));
+ //return 1 + Math.floor(2 * this.rng(GenerationSteps.NbStars));
return 1;
}
getNbPlanets(): number {
- if (this.getBodyTypeOfStar(0) === BODY_TYPE.BLACK_HOLE) return 0; //FIXME: will not apply when more than one star
- return randRangeInt(0, 7, this.rng, GENERATION_STEPS.NB_PLANETS);
+ if (this.getBodyTypeOfStar(0) === BodyType.BLACK_HOLE) return 0; //Fixme: will not apply when more than one star
+ return randRangeInt(0, 7, this.rng, GenerationSteps.NbPlanets);
}
public getStarSeed(index: number) {
if (index > this.getNbStars()) throw new Error("Star out of bound! " + index);
- return centeredRand(this.rng, GENERATION_STEPS.GENERATE_STARS + index) * Settings.SEED_HALF_RANGE;
+ return centeredRand(this.rng, GenerationSteps.GenerateStars + index) * Settings.SEED_HALF_RANGE;
}
/**
@@ -76,18 +76,18 @@ export class StarSystemModel {
if (index > this.getNbStars()) throw new Error("Star out of bound! " + index);
// percentages are taken from https://physics.stackexchange.com/questions/442154/how-common-are-neutron-stars
- if (uniformRandBool(0.0006, this.rng, GENERATION_STEPS.GENERATE_STARS + index)) return BODY_TYPE.BLACK_HOLE;
- if (uniformRandBool(0.0026, this.rng, GENERATION_STEPS.GENERATE_STARS + index)) return BODY_TYPE.NEUTRON_STAR;
+ if (uniformRandBool(0.0006, this.rng, GenerationSteps.GenerateStars + index)) return BodyType.BLACK_HOLE;
+ if (uniformRandBool(0.0026, this.rng, GenerationSteps.GenerateStars + index)) return BodyType.NEUTRON_STAR;
- return BODY_TYPE.STAR;
+ return BodyType.STAR;
}
public getBodyTypeOfPlanet(index: number) {
- if (uniformRandBool(0.5, this.rng, GENERATION_STEPS.CHOOSE_PLANET_TYPE + index)) return BODY_TYPE.TELLURIC_PLANET;
- return BODY_TYPE.GAS_PLANET;
+ if (uniformRandBool(0.5, this.rng, GenerationSteps.ChoosePlanetType + index)) return BodyType.TELLURIC_PLANET;
+ return BodyType.GAS_PLANET;
}
public getPlanetSeed(index: number) {
- return centeredRand(this.rng, GENERATION_STEPS.GENERATE_PLANETS + index) * Settings.SEED_HALF_RANGE;
+ return centeredRand(this.rng, GenerationSteps.GeneratePlanets + index) * Settings.SEED_HALF_RANGE;
}
}
diff --git a/src/ts/starSystem/StarSystemView.ts b/src/ts/starSystem/starSystemView.ts
similarity index 94%
rename from src/ts/starSystem/StarSystemView.ts
rename to src/ts/starSystem/starSystemView.ts
index f0ea3e7f2..de94a8cba 100644
--- a/src/ts/starSystem/StarSystemView.ts
+++ b/src/ts/starSystem/starSystemView.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -44,7 +44,6 @@ import { Keyboard } from "../inputs/keyboard";
import { Gamepad } from "../inputs/gamepad";
import { DefaultControls } from "../defaultController/defaultControls";
import { CharacterControls } from "../spacelegs/characterControls";
-import { parsePercentageFrom01, parseSpeed } from "../utils/parseToStrings";
import { Assets } from "../assets";
import { getRotationQuaternion, setRotationQuaternion } from "../uberCore/transforms/basicTransform";
import { Observable } from "@babylonjs/core/Misc/observable";
@@ -66,7 +65,7 @@ export class StarSystemView {
readonly ui: SystemUI;
- private static readonly unZoomAnimation = new Animation("unZoom", "radius", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE);
+ private static readonly UN_ZOOM_ANIMATION = new Animation("unZoom", "radius", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE);
private starSystem: StarSystemController | null = null;
@@ -82,7 +81,7 @@ export class StarSystemView {
if (canvas === null) throw new Error("Canvas is null");
this.bodyEditor.setCanvas(canvas);
- StarSystemView.unZoomAnimation.setKeys([
+ StarSystemView.UN_ZOOM_ANIMATION.setKeys([
{
frame: 0,
value: 30
@@ -213,8 +212,8 @@ export class StarSystemView {
update(deltaSeconds: number) {
const starSystem = this.getStarSystem();
- Assets.ButterflyMaterial.update(starSystem.stellarObjects, this.scene.getActiveController().getTransform().getAbsolutePosition(), deltaSeconds);
- Assets.GrassMaterial.update(starSystem.stellarObjects, this.scene.getActiveController().getTransform().getAbsolutePosition(), deltaSeconds);
+ Assets.BUTTERFLY_MATERIAL.update(starSystem.stellarObjects, this.scene.getActiveController().getTransform().getAbsolutePosition(), deltaSeconds);
+ Assets.GRASS_MATERIAL.update(starSystem.stellarObjects, this.scene.getActiveController().getTransform().getAbsolutePosition(), deltaSeconds);
this.chunkForge.update();
starSystem.update(deltaSeconds, this.chunkForge);
@@ -229,10 +228,10 @@ export class StarSystemView {
this.spaceshipControls.spaceship.registerClosestObject(distance, radius);
const warpDrive = this.spaceshipControls.spaceship.getWarpDrive();
- if(warpDrive.isEnabled()) {
+ if (warpDrive.isEnabled()) {
this.helmetOverlay.displaySpeed(warpDrive.getInternalThrottle(), warpDrive.getTargetThrottle(), this.spaceshipControls.spaceship.getSpeed());
} else {
- this.helmetOverlay.displaySpeed(this.spaceshipControls.spaceship.getThrottle(), 100, this.spaceshipControls.spaceship.getSpeed());
+ this.helmetOverlay.displaySpeed(this.spaceshipControls.spaceship.getThrottle(), 1, this.spaceshipControls.spaceship.getSpeed());
}
this.characterControls.setClosestWalkableObject(nearestBody);
@@ -326,7 +325,7 @@ export class StarSystemView {
if (this.starSystem !== null) this.starSystem.dispose();
this.starSystem = starSystem;
- if (needsGenerating) StarSystemHelper.generate(this.starSystem);
+ if (needsGenerating) StarSystemHelper.Generate(this.starSystem);
}
hideUI() {
@@ -345,7 +344,7 @@ export class StarSystemView {
callback();
return;
}
- activeControls.getActiveCamera().animations = [StarSystemView.unZoomAnimation];
+ activeControls.getActiveCamera().animations = [StarSystemView.UN_ZOOM_ANIMATION];
this.scene.beginAnimation(this.scene.getActiveController().getActiveCamera(), 0, 60, false, 2.0, () => {
this.scene.getActiveController().getActiveCamera().animations = [];
this.hideUI();
diff --git a/src/ts/starmap/starMap.ts b/src/ts/starmap/starMap.ts
index 413820fdf..399e807df 100644
--- a/src/ts/starmap/starMap.ts
+++ b/src/ts/starmap/starMap.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -21,10 +21,10 @@ import starTexture from "../../asset/textures/starParticle.png";
import blackHoleTexture from "../../asset/textures/blackholeParticleSmall.png";
import { StarSystemModel } from "../starSystem/starSystemModel";
-import { BuildData, StarSector, Vector3ToString } from "./starSector";
+import { BuildData, StarSector, vector3ToString } from "./starSector";
import { StarMapUI } from "./starMapUI";
import { getStellarTypeString } from "../stellarObjects/common";
-import { BODY_TYPE } from "../model/common";
+import { BodyType } from "../model/common";
import { Scene, ScenePerformancePriority } from "@babylonjs/core/scene";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
import { Mesh } from "@babylonjs/core/Meshes/mesh";
@@ -73,8 +73,7 @@ export class StarMap {
private readonly recycledStars: InstancedMesh[] = [];
private readonly recycledBlackHoles: InstancedMesh[] = [];
- static readonly GENERATION_CADENCE = 100;
-
+ static readonly GENERATION_RATE = 100;
static readonly RENDER_RADIUS = 6;
private readonly starMapUI: StarMapUI;
@@ -87,7 +86,7 @@ export class StarMap {
private readonly seedToInstanceMap: Map = new Map();
private readonly instanceToSeedMap: Map = new Map();
- private travelLine: ThickLines;
+ private readonly travelLine: ThickLines;
private readonly thickLines: ThickLines[];
public readonly onWarpObservable: Observable = new Observable();
@@ -99,7 +98,7 @@ export class StarMap {
private cameraPositionToCenter = Vector3.Zero();
- private static readonly FLOATING_ORIGIN_MAX_DISTANCE = 1000;
+ private static readonly FLOATING_ORIGIN_DISTANCE = 1000;
private static readonly FADE_OUT_ANIMATION = new Animation("fadeIn", "instancedBuffers.color.a", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE);
private static readonly FADE_OUT_DURATION = 1000;
@@ -246,7 +245,7 @@ export class StarMap {
private acknowledgeCameraMovement() {
// floating origin
- if (this.controls.getActiveCamera().globalPosition.length() > StarMap.FLOATING_ORIGIN_MAX_DISTANCE) {
+ if (this.controls.getActiveCamera().globalPosition.length() > StarMap.FLOATING_ORIGIN_DISTANCE) {
this.translateCameraBackToOrigin();
}
@@ -295,7 +294,7 @@ export class StarMap {
const sectorCoordinates = new Vector3(starSystemSeed.starSectorX, starSystemSeed.starSectorY, starSystemSeed.starSectorZ);
- if (this.loadedStarSectors.has(Vector3ToString(sectorCoordinates))) {
+ if (this.loadedStarSectors.has(vector3ToString(sectorCoordinates))) {
this.starMapUI.setCurrentStarSystemMesh(this.seedToInstanceMap.get(this.currentSystemSeed.toString()) as InstancedMesh);
this.focusOnCurrentSystem();
return;
@@ -332,18 +331,18 @@ export class StarMap {
// then generate missing sectors
for (const relativeCoordinate of this.allowedStarSectorRelativeCoordinates) {
const position = this.currentStarSectorPosition.add(relativeCoordinate);
- const sectorKey = Vector3ToString(position);
+ const sectorKey = vector3ToString(position);
if (this.loadedStarSectors.has(sectorKey)) continue; // already generated
// don't generate star sectors that are not in the frustum
- const bb = StarSector.getBoundingBox(position, this.starMapCenterPosition);
+ const bb = StarSector.GetBoundingBox(position, this.starMapCenterPosition);
if (!this.controls.getActiveCamera().isInFrustum(bb)) continue;
this.registerStarSector(position);
}
- this.buildNextStars(Math.min(2000, StarMap.GENERATION_CADENCE * this.controls.speed));
+ this.buildNextStars(Math.min(2000, StarMap.GENERATION_RATE * this.controls.speed));
this.starMapUI.update(this.controls.getActiveCamera());
}
@@ -372,13 +371,13 @@ export class StarMap {
let starModel: StarModel | BlackHoleModel | NeutronStarModel | null = null;
switch (stellarObjectType) {
- case BODY_TYPE.STAR:
+ case BodyType.STAR:
starModel = new StarModel(starSeed);
break;
- case BODY_TYPE.BLACK_HOLE:
+ case BodyType.BLACK_HOLE:
starModel = new BlackHoleModel(starSeed);
break;
- case BODY_TYPE.NEUTRON_STAR:
+ case BodyType.NEUTRON_STAR:
starModel = new NeutronStarModel(starSeed);
break;
default:
@@ -389,7 +388,7 @@ export class StarMap {
let instance: InstancedMesh | null = null;
let recycled = false;
- if (stellarObjectType === BODY_TYPE.STAR || stellarObjectType === BODY_TYPE.NEUTRON_STAR) {
+ if (stellarObjectType === BodyType.STAR || stellarObjectType === BodyType.NEUTRON_STAR) {
if (this.recycledStars.length > 0) {
instance = this.recycledStars[0];
this.recycledStars.shift();
@@ -411,7 +410,7 @@ export class StarMap {
initializedInstance.scaling = Vector3.One().scaleInPlace(data.scale);
initializedInstance.position = data.position.add(this.starMapCenterPosition);
- if (starModel.bodyType === BODY_TYPE.STAR || starModel.bodyType === BODY_TYPE.NEUTRON_STAR) {
+ if (starModel.bodyType === BodyType.STAR || starModel.bodyType === BodyType.NEUTRON_STAR) {
const starColor = starModel.color;
initializedInstance.instancedBuffers.color = new Color4(starColor.r, starColor.g, starColor.b, 0.0);
} else {
@@ -450,8 +449,8 @@ export class StarMap {
if (starModel === null) throw new Error("Star model is null!");
let typeString = "";
- if (starModel.bodyType === BODY_TYPE.BLACK_HOLE) typeString = "Black hole";
- else if (starModel.bodyType === BODY_TYPE.NEUTRON_STAR) typeString = "Neutron star";
+ if (starModel.bodyType === BodyType.BLACK_HOLE) typeString = "Black hole";
+ else if (starModel.bodyType === BodyType.NEUTRON_STAR) typeString = "Neutron star";
else typeString = getStellarTypeString(starModel.stellarType);
text += `Type: ${typeString}\n`;
@@ -472,7 +471,7 @@ export class StarMap {
this.fadeIn(initializedInstance);
- if (starModel.bodyType === BODY_TYPE.BLACK_HOLE) this.loadedStarSectors.get(data.sectorString)?.blackHoleInstances.push(initializedInstance);
+ if (starModel.bodyType === BodyType.BLACK_HOLE) this.loadedStarSectors.get(data.sectorString)?.blackHoleInstances.push(initializedInstance);
else this.loadedStarSectors.get(data.sectorString)?.starInstances.push(initializedInstance);
}
diff --git a/src/ts/starmap/starMapUI.ts b/src/ts/starmap/starMapUI.ts
index 845769aad..b7773a99f 100644
--- a/src/ts/starmap/starMapUI.ts
+++ b/src/ts/starmap/starMapUI.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/starmap/starSector.ts b/src/ts/starmap/starSector.ts
index 257a591e0..e9323b4ae 100644
--- a/src/ts/starmap/starSector.ts
+++ b/src/ts/starmap/starSector.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -24,11 +24,11 @@ import { InstancedMesh } from "@babylonjs/core/Meshes/instancedMesh";
import { BoundingBox } from "@babylonjs/core/Culling/boundingBox";
import { SystemSeed } from "../utils/systemSeed";
-export function Vector3ToString(v: Vector3): string {
+export function vector3ToString(v: Vector3): string {
return `${v.x},${v.y},${v.z}`;
}
-export function StringToVector3(s: string): Vector3 {
+export function stringToVector3(s: string): Vector3 {
const [x, y, z] = s.split(",").map(Number);
return new Vector3(x, y, z);
}
@@ -100,10 +100,10 @@ export class StarSector {
* @returns a string that uniquely identifies this sector
*/
getKey(): string {
- return Vector3ToString(this.position);
+ return vector3ToString(this.position);
}
- static getBoundingBox(position: Vector3, globalNodePosition: Vector3): BoundingBox {
+ static GetBoundingBox(position: Vector3, globalNodePosition: Vector3): BoundingBox {
return new BoundingBox(
new Vector3(-1, -1, -1).scaleInPlace(StarSector.SIZE / 2),
new Vector3(1, 1, 1).scaleInPlace(StarSector.SIZE / 2),
diff --git a/src/ts/stellarObjects/blackHole/blackHole.ts b/src/ts/stellarObjects/blackHole/blackHole.ts
index 427d997b8..8fd5a38e9 100644
--- a/src/ts/stellarObjects/blackHole/blackHole.ts
+++ b/src/ts/stellarObjects/blackHole/blackHole.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/stellarObjects/blackHole/blackHoleModel.ts b/src/ts/stellarObjects/blackHole/blackHoleModel.ts
index dbd54940b..d057ae929 100644
--- a/src/ts/stellarObjects/blackHole/blackHoleModel.ts
+++ b/src/ts/stellarObjects/blackHole/blackHoleModel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -20,14 +20,14 @@ import { getOrbitalPeriod } from "../../orbit/orbit";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
import { normalRandom, uniformRandBool } from "extended-random";
import { OrbitProperties } from "../../orbit/orbitProperties";
-import { BODY_TYPE, GENERATION_STEPS } from "../../model/common";
+import { BodyType, GenerationSteps } from "../../model/common";
import { BlackHolePhysicalProperties } from "../../architecture/physicalProperties";
import { CelestialBodyModel } from "../../architecture/celestialBody";
import { StellarObjectModel } from "../../architecture/stellarObject";
import { Color3 } from "@babylonjs/core/Maths/math.color";
export class BlackHoleModel implements StellarObjectModel {
- readonly bodyType = BODY_TYPE.BLACK_HOLE;
+ readonly bodyType = BodyType.BLACK_HOLE;
readonly seed: number;
readonly rng: (step: number) => number;
@@ -67,13 +67,13 @@ export class BlackHoleModel implements StellarObjectModel {
this.physicalProperties = {
mass: 10,
rotationPeriod: 24 * 60 * 60,
- axialTilt: normalRandom(0, 0.4, this.rng, GENERATION_STEPS.AXIAL_TILT),
+ axialTilt: normalRandom(0, 0.4, this.rng, GenerationSteps.AXIAL_TILT),
accretionDiskRadius: 8000e3
};
}
public getNbSpaceStations(): number {
- if(uniformRandBool(0.1, this.rng, GENERATION_STEPS.SPACE_STATION)) return 1;
+ if (uniformRandBool(0.1, this.rng, GenerationSteps.SPACE_STATION)) return 1;
return 0;
}
}
diff --git a/src/ts/stellarObjects/common.ts b/src/ts/stellarObjects/common.ts
index 665114510..f73298753 100644
--- a/src/ts/stellarObjects/common.ts
+++ b/src/ts/stellarObjects/common.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -15,7 +15,7 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-export enum STELLAR_TYPE {
+export enum StellarType {
/** 30,000 - 50,000 K */
O,
/** 10,000 - 30,000 K */
@@ -32,21 +32,21 @@ export enum STELLAR_TYPE {
M
}
-export function getStellarTypeString(type: STELLAR_TYPE): string {
+export function getStellarTypeString(type: StellarType): string {
switch (type) {
- case STELLAR_TYPE.O:
+ case StellarType.O:
return "O";
- case STELLAR_TYPE.B:
+ case StellarType.B:
return "B";
- case STELLAR_TYPE.A:
+ case StellarType.A:
return "A";
- case STELLAR_TYPE.F:
+ case StellarType.F:
return "F";
- case STELLAR_TYPE.G:
+ case StellarType.G:
return "G";
- case STELLAR_TYPE.K:
+ case StellarType.K:
return "K";
- case STELLAR_TYPE.M:
+ case StellarType.M:
return "M";
}
}
diff --git a/src/ts/stellarObjects/neutronStar/neutronStar.ts b/src/ts/stellarObjects/neutronStar/neutronStar.ts
index 2bbdb13ce..78c03a389 100644
--- a/src/ts/stellarObjects/neutronStar/neutronStar.ts
+++ b/src/ts/stellarObjects/neutronStar/neutronStar.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/stellarObjects/neutronStar/neutronStarModel.ts b/src/ts/stellarObjects/neutronStar/neutronStarModel.ts
index e09286dcd..2e7c7b7dd 100644
--- a/src/ts/stellarObjects/neutronStar/neutronStarModel.ts
+++ b/src/ts/stellarObjects/neutronStar/neutronStarModel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -16,7 +16,7 @@
// along with this program. If not, see .
import { CelestialBodyModel } from "../../architecture/celestialBody";
-import { BODY_TYPE, GENERATION_STEPS } from "../../model/common";
+import { BodyType, GenerationSteps } from "../../model/common";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
import { OrbitProperties } from "../../orbit/orbitProperties";
import { StarPhysicalProperties } from "../../architecture/physicalProperties";
@@ -30,7 +30,7 @@ import { clamp } from "../../utils/math";
import { Color3 } from "@babylonjs/core/Maths/math.color";
export class NeutronStarModel implements StellarObjectModel {
- readonly bodyType = BODY_TYPE.NEUTRON_STAR;
+ readonly bodyType = BodyType.NEUTRON_STAR;
readonly rng: (step: number) => number;
readonly seed: number;
@@ -43,6 +43,7 @@ export class NeutronStarModel implements StellarObjectModel {
readonly physicalProperties: StarPhysicalProperties;
static RING_PROPORTION = 0.02;
+
readonly ringsUniforms;
readonly parentBody: CelestialBodyModel | null;
@@ -53,7 +54,7 @@ export class NeutronStarModel implements StellarObjectModel {
this.seed = seed;
this.rng = seededSquirrelNoise(this.seed);
- this.temperature = randRangeInt(200_000, 5_000_000_000, this.rng, GENERATION_STEPS.TEMPERATURE);
+ this.temperature = randRangeInt(200_000, 5_000_000_000, this.rng, GenerationSteps.TEMPERATURE);
this.color = getRgbFromTemperature(this.temperature);
this.parentBody = parentBody;
@@ -65,10 +66,10 @@ export class NeutronStarModel implements StellarObjectModel {
axialTilt: 0
};
- this.radius = clamp(normalRandom(10e3, 1e3, this.rng, GENERATION_STEPS.RADIUS), 2e3, 50e3);
+ this.radius = clamp(normalRandom(10e3, 1e3, this.rng, GenerationSteps.RADIUS), 2e3, 50e3);
- // TODO: do not hardcode
- const orbitRadius = this.rng(GENERATION_STEPS.ORBIT) * 5000000e3;
+ // Todo: do not hardcode
+ const orbitRadius = this.rng(GenerationSteps.ORBIT) * 5000000e3;
this.orbit = {
radius: orbitRadius,
@@ -78,7 +79,7 @@ export class NeutronStarModel implements StellarObjectModel {
isPlaneAlignedWithParent: true
};
- if (uniformRandBool(NeutronStarModel.RING_PROPORTION, this.rng, GENERATION_STEPS.RINGS)) {
+ if (uniformRandBool(NeutronStarModel.RING_PROPORTION, this.rng, GenerationSteps.RINGS)) {
this.ringsUniforms = new RingsUniforms(this.rng);
} else {
this.ringsUniforms = null;
@@ -86,7 +87,7 @@ export class NeutronStarModel implements StellarObjectModel {
}
public getNbSpaceStations(): number {
- if(uniformRandBool(0.00001, this.rng, GENERATION_STEPS.SPACE_STATION)) return 1;
+ if (uniformRandBool(0.00001, this.rng, GenerationSteps.SPACE_STATION)) return 1;
return 0;
}
}
diff --git a/src/ts/stellarObjects/star/star.ts b/src/ts/stellarObjects/star/star.ts
index 32bcc17ca..7150fe055 100644
--- a/src/ts/stellarObjects/star/star.ts
+++ b/src/ts/stellarObjects/star/star.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/stellarObjects/star/starMaterial.ts b/src/ts/stellarObjects/star/starMaterial.ts
index 27c319715..4de704466 100644
--- a/src/ts/stellarObjects/star/starMaterial.ts
+++ b/src/ts/stellarObjects/star/starMaterial.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -21,7 +21,6 @@ import { Effect } from "@babylonjs/core/Materials/effect";
import { ShaderMaterial } from "@babylonjs/core/Materials/shaderMaterial";
import { Scene } from "@babylonjs/core/scene";
import { TransformNode } from "@babylonjs/core/Meshes/transformNode";
-import { getInverseRotationQuaternion } from "../../uberCore/transforms/basicTransform";
import { Assets } from "../../assets";
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture";
import lutFragment from "../../../shaders/starMaterial/utils/lut.glsl";
@@ -45,7 +44,7 @@ export class StarMaterial extends ShaderMaterial {
super("starColor", scene, shaderName, {
attributes: ["position"],
- uniforms: ["world", "worldViewProjection", "seed", "starColor", "starPosition", "starInverseRotationQuaternion", "time"],
+ uniforms: ["world", "worldViewProjection", "seed", "starColor", "starPosition", "time"],
samplers: ["lut"]
});
@@ -53,7 +52,7 @@ export class StarMaterial extends ShaderMaterial {
Effect.ShadersStore["starLutFragmentShader"] = lutFragment;
}
- this.setTexture("lut", Assets.EmptyTexture);
+ this.setTexture("lut", Assets.EMPTY_TEXTURE);
const lut = new ProceduralTexture("lut", 4096, "starLut", scene, null, true, false);
lut.refreshRate = 0;
lut.executeWhenReady(() => {
@@ -70,7 +69,6 @@ export class StarMaterial extends ShaderMaterial {
this.setFloat("time", this.internalClock % 100000);
this.setColor3("starColor", this.starModel.color);
- this.setQuaternion("starInverseRotationQuaternion", getInverseRotationQuaternion(this.star));
this.setFloat("seed", this.starSeed);
this.setVector3("starPosition", this.star.getAbsolutePosition());
}
diff --git a/src/ts/stellarObjects/star/starModel.ts b/src/ts/stellarObjects/star/starModel.ts
index 1b4872d12..08278b212 100644
--- a/src/ts/stellarObjects/star/starModel.ts
+++ b/src/ts/stellarObjects/star/starModel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -22,8 +22,8 @@ import { getRgbFromTemperature } from "../../utils/specrend";
import { Settings } from "../../settings";
import { getOrbitalPeriod } from "../../orbit/orbit";
import { OrbitProperties } from "../../orbit/orbitProperties";
-import { BODY_TYPE, GENERATION_STEPS } from "../../model/common";
-import { STELLAR_TYPE } from "../common";
+import { BodyType, GenerationSteps } from "../../model/common";
+import { StellarType } from "../common";
import { RingsUniforms } from "../../postProcesses/rings/ringsUniform";
import { StarPhysicalProperties } from "../../architecture/physicalProperties";
import { CelestialBodyModel } from "../../architecture/celestialBody";
@@ -32,13 +32,13 @@ import { StellarObjectModel } from "../../architecture/stellarObject";
import { Color3 } from "@babylonjs/core/Maths/math.color";
export class StarModel implements StellarObjectModel {
- readonly bodyType = BODY_TYPE.STAR;
+ readonly bodyType = BodyType.STAR;
readonly rng: (step: number) => number;
readonly seed: number;
readonly temperature: number;
readonly color: Color3;
- stellarType: STELLAR_TYPE;
+ stellarType: StellarType;
readonly radius: number;
readonly orbit: OrbitProperties;
@@ -46,6 +46,7 @@ export class StarModel implements StellarObjectModel {
readonly physicalProperties: StarPhysicalProperties;
static RING_PROPORTION = 0.2;
+
readonly ringsUniforms;
readonly parentBody: CelestialBodyModel | null;
@@ -73,7 +74,7 @@ export class StarModel implements StellarObjectModel {
this.radius = StarModel.GetRandomRadiusFromStellarType(this.stellarType, this.rng);
// TODO: do not hardcode
- const orbitRadius = this.rng(GENERATION_STEPS.ORBIT) * 5000000e3;
+ const orbitRadius = this.rng(GenerationSteps.ORBIT) * 5000000e3;
this.orbit = {
radius: orbitRadius,
@@ -83,7 +84,7 @@ export class StarModel implements StellarObjectModel {
isPlaneAlignedWithParent: true
};
- if (uniformRandBool(StarModel.RING_PROPORTION, this.rng, GENERATION_STEPS.RINGS)) {
+ if (uniformRandBool(StarModel.RING_PROPORTION, this.rng, GenerationSteps.RINGS)) {
this.ringsUniforms = new RingsUniforms(this.rng);
} else {
this.ringsUniforms = null;
@@ -92,78 +93,78 @@ export class StarModel implements StellarObjectModel {
public setSurfaceTemperature(temperature: number) {
this.physicalProperties.temperature = temperature;
- this.stellarType = StarModel.getStellarTypeFromTemperature(temperature);
+ this.stellarType = StarModel.GetStellarTypeFromTemperature(temperature);
this.color.copyFrom(getRgbFromTemperature(temperature));
}
public getNbSpaceStations(): number {
- if(uniformRandBool(0.001, this.rng, GENERATION_STEPS.SPACE_STATION)) return 1;
+ if (uniformRandBool(0.001, this.rng, GenerationSteps.SPACE_STATION)) return 1;
return 0;
}
- static getStellarTypeFromTemperature(temperature: number) {
- if (temperature < 3500) return STELLAR_TYPE.M;
- else if (temperature < 5000) return STELLAR_TYPE.K;
- else if (temperature < 6000) return STELLAR_TYPE.G;
- else if (temperature < 7500) return STELLAR_TYPE.F;
- else if (temperature < 10000) return STELLAR_TYPE.A;
- else if (temperature < 30000) return STELLAR_TYPE.B;
- else return STELLAR_TYPE.O;
+ static GetStellarTypeFromTemperature(temperature: number) {
+ if (temperature < 3500) return StellarType.M;
+ else if (temperature < 5000) return StellarType.K;
+ else if (temperature < 6000) return StellarType.G;
+ else if (temperature < 7500) return StellarType.F;
+ else if (temperature < 10000) return StellarType.A;
+ else if (temperature < 30000) return StellarType.B;
+ else return StellarType.O;
}
static GetRandomStellarType(rng: (step: number) => number) {
// use wheel of fortune
- const wheel: [STELLAR_TYPE, number][] = [
- [STELLAR_TYPE.M, 0.765],
- [STELLAR_TYPE.K, 0.121],
- [STELLAR_TYPE.G, 0.076],
- [STELLAR_TYPE.F, 0.03],
- [STELLAR_TYPE.A, 0.006],
- [STELLAR_TYPE.B, 0.0013],
- [STELLAR_TYPE.O, 0.0000003]
+ const wheel: [StellarType, number][] = [
+ [StellarType.M, 0.765],
+ [StellarType.K, 0.121],
+ [StellarType.G, 0.076],
+ [StellarType.F, 0.03],
+ [StellarType.A, 0.006],
+ [StellarType.B, 0.0013],
+ [StellarType.O, 0.0000003]
];
- const r = rng(GENERATION_STEPS.STELLAR_TYPE);
+ const r = rng(GenerationSteps.STELLAR_TYPE);
- return wheelOfFortune(wheel, r);
+ return wheelOfFortune(wheel, r);
}
- static GetRandomTemperatureFromStellarType(stellarType: STELLAR_TYPE, rng: (step: number) => number) {
+ static GetRandomTemperatureFromStellarType(stellarType: StellarType, rng: (step: number) => number) {
switch (stellarType) {
- case STELLAR_TYPE.M:
- return randRangeInt(2100, 3400, rng, GENERATION_STEPS.TEMPERATURE);
- case STELLAR_TYPE.K:
- return randRangeInt(3400, 4900, rng, GENERATION_STEPS.TEMPERATURE);
- case STELLAR_TYPE.G:
- return randRangeInt(4900, 5700, rng, GENERATION_STEPS.TEMPERATURE);
- case STELLAR_TYPE.F:
- return randRangeInt(5700, 7200, rng, GENERATION_STEPS.TEMPERATURE);
- case STELLAR_TYPE.A:
- return randRangeInt(7200, 9700, rng, GENERATION_STEPS.TEMPERATURE);
- case STELLAR_TYPE.B:
- return randRangeInt(9700, 30000, rng, GENERATION_STEPS.TEMPERATURE);
- case STELLAR_TYPE.O:
- return randRangeInt(30000, 52000, rng, GENERATION_STEPS.TEMPERATURE);
+ case StellarType.M:
+ return randRangeInt(2100, 3400, rng, GenerationSteps.TEMPERATURE);
+ case StellarType.K:
+ return randRangeInt(3400, 4900, rng, GenerationSteps.TEMPERATURE);
+ case StellarType.G:
+ return randRangeInt(4900, 5700, rng, GenerationSteps.TEMPERATURE);
+ case StellarType.F:
+ return randRangeInt(5700, 7200, rng, GenerationSteps.TEMPERATURE);
+ case StellarType.A:
+ return randRangeInt(7200, 9700, rng, GenerationSteps.TEMPERATURE);
+ case StellarType.B:
+ return randRangeInt(9700, 30000, rng, GenerationSteps.TEMPERATURE);
+ case StellarType.O:
+ return randRangeInt(30000, 52000, rng, GenerationSteps.TEMPERATURE);
}
}
- static GetRandomRadiusFromStellarType(stellarType: STELLAR_TYPE, rng: (step: number) => number) {
+ static GetRandomRadiusFromStellarType(stellarType: StellarType, rng: (step: number) => number) {
const solarSize = 109 * Settings.EARTH_RADIUS;
switch (stellarType) {
- case STELLAR_TYPE.M:
- return randRange(0.5, 0.7, rng, GENERATION_STEPS.RADIUS) * solarSize;
- case STELLAR_TYPE.K:
- return randRange(0.7, 0.9, rng, GENERATION_STEPS.RADIUS) * solarSize;
- case STELLAR_TYPE.G:
- return randRange(0.9, 1.1, rng, GENERATION_STEPS.RADIUS) * solarSize;
- case STELLAR_TYPE.F:
- return randRange(1.1, 1.4, rng, GENERATION_STEPS.RADIUS) * solarSize;
- case STELLAR_TYPE.A:
- return randRange(1.4, 1.8, rng, GENERATION_STEPS.RADIUS) * solarSize;
- case STELLAR_TYPE.B:
- return randRange(1.8, 6.6, rng, GENERATION_STEPS.RADIUS) * solarSize;
- case STELLAR_TYPE.O:
- return randRange(6.6, 15.0, rng, GENERATION_STEPS.RADIUS) * solarSize;
+ case StellarType.M:
+ return randRange(0.5, 0.7, rng, GenerationSteps.RADIUS) * solarSize;
+ case StellarType.K:
+ return randRange(0.7, 0.9, rng, GenerationSteps.RADIUS) * solarSize;
+ case StellarType.G:
+ return randRange(0.9, 1.1, rng, GenerationSteps.RADIUS) * solarSize;
+ case StellarType.F:
+ return randRange(1.1, 1.4, rng, GenerationSteps.RADIUS) * solarSize;
+ case StellarType.A:
+ return randRange(1.4, 1.8, rng, GenerationSteps.RADIUS) * solarSize;
+ case StellarType.B:
+ return randRange(1.8, 6.6, rng, GenerationSteps.RADIUS) * solarSize;
+ case StellarType.O:
+ return randRange(6.6, 15.0, rng, GenerationSteps.RADIUS) * solarSize;
}
}
}
diff --git a/src/ts/uberCore/controls.ts b/src/ts/uberCore/controls.ts
index cd21924e1..7231e4e56 100644
--- a/src/ts/uberCore/controls.ts
+++ b/src/ts/uberCore/controls.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/uberCore/localDirections.ts b/src/ts/uberCore/localDirections.ts
index 60a4e8105..0e8edb5dd 100644
--- a/src/ts/uberCore/localDirections.ts
+++ b/src/ts/uberCore/localDirections.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -17,7 +17,7 @@
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
-export class LOCAL_DIRECTION {
+export class LocalDirection {
static readonly FORWARD = new Vector3(0, 0, 1);
static readonly BACKWARD = new Vector3(0, 0, -1);
static readonly UP = new Vector3(0, 1, 0);
diff --git a/src/ts/uberCore/postProcesses/colorCorrection.ts b/src/ts/uberCore/postProcesses/colorCorrection.ts
index af8ec7849..cc4534270 100644
--- a/src/ts/uberCore/postProcesses/colorCorrection.ts
+++ b/src/ts/uberCore/postProcesses/colorCorrection.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/uberCore/postProcesses/types.ts b/src/ts/uberCore/postProcesses/types.ts
index 49f2d3678..1ec94a8b2 100644
--- a/src/ts/uberCore/postProcesses/types.ts
+++ b/src/ts/uberCore/postProcesses/types.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -23,56 +23,56 @@ export enum UniformEnumType {
/**
* The type to use when BabylonJS manages the uniform itself (like textureSampler)
*/
- Auto,
+ AUTO,
/**
* A float32. Shader code: float
*/
- Float,
+ FLOAT,
/**
* A int32. Shader code: int
*/
- Int,
+ INT,
/**
* A boolean. Shader code: bool
*/
- Bool,
+ BOOL,
/**
* A Vector3. Shader code: vec3
*/
- Vector3,
+ VECTOR_3,
/**
* A Color3. Shader code: vec3
*/
- Color3,
+ COLOR_3,
/**
* A 4x4 matrix. Shader code: mat4
*/
- Matrix,
+ MATRIX,
/**
* A quaternion. Shader code: vec4
*/
- Quaternion,
+ QUATERNION,
/**
* An array of Vector3. Shader code: vec3[]
*/
- Vector3Array,
+ VECTOR_3_ARRAY,
/**
* An array of Vector4. Shader code: vec4[]
*/
- Vector4Array,
+ VECTOR_4_ARRAY,
/**
* An array of floats. Shader code: float[]
*/
- FloatArray,
+ FLOAT_ARRAY,
/**
* An array of Color3. Shader code: vec3[]
*/
- Color3Array
+ COLOR_3_ARRAY
}
export enum SamplerEnumType {
- Auto,
- Texture
+ AUTO,
+ TEXTURE
}
export type UniformType = number | boolean | Vector3 | Color3 | Matrix | Quaternion | Texture | Vector3[] | Vector4[] | number[] | Color3[];
diff --git a/src/ts/uberCore/postProcesses/uberPostProcess.ts b/src/ts/uberCore/postProcesses/uberPostProcess.ts
index 83ad84d6f..c496fafee 100644
--- a/src/ts/uberCore/postProcesses/uberPostProcess.ts
+++ b/src/ts/uberCore/postProcesses/uberPostProcess.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -49,40 +49,40 @@ export class UberPostProcess extends PostProcess {
const effect = this.getEffect();
for (const uniform of this.uniforms) {
switch (uniform.type) {
- case UniformEnumType.Float:
+ case UniformEnumType.FLOAT:
effect.setFloat(uniform.name, uniform.get() as number);
break;
- case UniformEnumType.Int:
+ case UniformEnumType.INT:
effect.setInt(uniform.name, uniform.get() as number);
break;
- case UniformEnumType.Bool:
+ case UniformEnumType.BOOL:
effect.setBool(uniform.name, uniform.get() as boolean);
break;
- case UniformEnumType.Vector3:
+ case UniformEnumType.VECTOR_3:
effect.setVector3(uniform.name, uniform.get() as Vector3);
break;
- case UniformEnumType.Color3:
+ case UniformEnumType.COLOR_3:
effect.setColor3(uniform.name, uniform.get() as Color3);
break;
- case UniformEnumType.Quaternion:
+ case UniformEnumType.QUATERNION:
effect.setQuaternion(uniform.name, uniform.get() as Quaternion);
break;
- case UniformEnumType.Matrix:
+ case UniformEnumType.MATRIX:
effect.setMatrix(uniform.name, uniform.get() as Matrix);
break;
- case UniformEnumType.Vector3Array:
+ case UniformEnumType.VECTOR_3_ARRAY:
effect.setFloatArray3(uniform.name, flattenVector3Array(uniform.get() as Vector3[]));
break;
- case UniformEnumType.Vector4Array:
+ case UniformEnumType.VECTOR_4_ARRAY:
effect.setFloatArray4(uniform.name, flattenVector4Array(uniform.get() as Vector4[]));
break;
- case UniformEnumType.FloatArray:
+ case UniformEnumType.FLOAT_ARRAY:
effect.setFloatArray(uniform.name, uniform.get() as number[]);
break;
- case UniformEnumType.Color3Array:
+ case UniformEnumType.COLOR_3_ARRAY:
effect.setFloatArray3(uniform.name, flattenColor3Array(uniform.get() as Color3[]));
break;
- case UniformEnumType.Auto:
+ case UniformEnumType.AUTO:
// BabylonJS already handles this
break;
}
@@ -90,10 +90,10 @@ export class UberPostProcess extends PostProcess {
for (const sampler of this.samplers) {
switch (sampler.type) {
- case SamplerEnumType.Texture:
+ case SamplerEnumType.TEXTURE:
effect.setTexture(sampler.name, sampler.get() as Texture);
break;
- case SamplerEnumType.Auto:
+ case SamplerEnumType.AUTO:
// BabylonJS already handles this
break;
default:
diff --git a/src/ts/uberCore/transforms/animations/interpolations.ts b/src/ts/uberCore/transforms/animations/interpolations.ts
index 88f3baef2..49c2f0ac4 100644
--- a/src/ts/uberCore/transforms/animations/interpolations.ts
+++ b/src/ts/uberCore/transforms/animations/interpolations.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/uberCore/transforms/animations/rotation.ts b/src/ts/uberCore/transforms/animations/rotation.ts
index 7569ee7cf..4ea8f24f0 100644
--- a/src/ts/uberCore/transforms/animations/rotation.ts
+++ b/src/ts/uberCore/transforms/animations/rotation.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/uberCore/transforms/animations/translation.ts b/src/ts/uberCore/transforms/animations/translation.ts
index a5842e147..a638d1dba 100644
--- a/src/ts/uberCore/transforms/animations/translation.ts
+++ b/src/ts/uberCore/transforms/animations/translation.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/uberCore/transforms/basicTransform.ts b/src/ts/uberCore/transforms/basicTransform.ts
index 60238f0aa..6a366f4b4 100644
--- a/src/ts/uberCore/transforms/basicTransform.ts
+++ b/src/ts/uberCore/transforms/basicTransform.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -16,7 +16,7 @@
// along with this program. If not, see .
import { TransformNode } from "@babylonjs/core/Meshes/transformNode";
-import { Matrix, Quaternion, Vector3 } from "@babylonjs/core/Maths/math.vector";
+import { Quaternion, Vector3 } from "@babylonjs/core/Maths/math.vector";
import { Axis, Space } from "@babylonjs/core/Maths/math.axis";
export function translate(transformNode: TransformNode, displacement: Vector3): void {
@@ -39,10 +39,6 @@ export function getRotationQuaternion(transformNode: TransformNode): Quaternion
return transformNode.rotationQuaternion;
}
-export function getInverseRotationQuaternion(transformNode: TransformNode): Quaternion {
- return getRotationQuaternion(transformNode).invert();
-}
-
export function setRotationQuaternion(transformNode: TransformNode, newRotation: Quaternion): void {
transformNode.rotationQuaternion = newRotation;
transformNode.computeWorldMatrix(true);
@@ -56,22 +52,10 @@ export function setUpVector(transformNode: TransformNode, newUp: Vector3): void
rotate(transformNode, rotationAxis, angle);
}
-export function getRotationMatrix(transformNode: TransformNode): Matrix {
- const rotationMatrix = new Matrix();
- getRotationQuaternion(transformNode).toRotationMatrix(rotationMatrix);
- return rotationMatrix;
-}
-
-export function getInverseRotationMatrix(transformNode: TransformNode): Matrix {
- const inverseRotationMatrix = new Matrix();
- getInverseRotationQuaternion(transformNode).toRotationMatrix(inverseRotationMatrix);
- return inverseRotationMatrix;
-}
-
/* #region directions */
/**
- * This is not equivalent to transform.forward as CosmosJourneyer uses the right-handed coordinate system
+ * This is not equivalent to `transform.forward` as Cosmos Journeyer uses the right-handed coordinate system
* @returns the forward vector of the given transform in world space
*/
export function getForwardDirection(transformNode: TransformNode): Vector3 {
@@ -120,6 +104,7 @@ export function getLeftDirection(transformNode: TransformNode): Vector3 {
/**
*
+ * @param transformNode
* @param amount
*/
export function roll(transformNode: TransformNode, amount: number): void {
@@ -128,6 +113,7 @@ export function roll(transformNode: TransformNode, amount: number): void {
/**
*
+ * @param transformNode
* @param amount
*/
export function pitch(transformNode: TransformNode, amount: number): void {
@@ -136,6 +122,7 @@ export function pitch(transformNode: TransformNode, amount: number): void {
/**
*
+ * @param transformNode
* @param amount
*/
export function yaw(transformNode: TransformNode, amount: number): void {
diff --git a/src/ts/uberCore/uberScene.ts b/src/ts/uberCore/uberScene.ts
index 319ac7f33..4d62f4041 100644
--- a/src/ts/uberCore/uberScene.ts
+++ b/src/ts/uberCore/uberScene.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/bodyEditor.ts b/src/ts/ui/bodyEditor/bodyEditor.ts
index cefaf4436..a1d507f65 100644
--- a/src/ts/ui/bodyEditor/bodyEditor.ts
+++ b/src/ts/ui/bodyEditor/bodyEditor.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/editorPanel.ts b/src/ts/ui/bodyEditor/editorPanel.ts
index 4fa720fb9..06fc9cee8 100644
--- a/src/ts/ui/bodyEditor/editorPanel.ts
+++ b/src/ts/ui/bodyEditor/editorPanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/panels/atmospherePanel.ts b/src/ts/ui/bodyEditor/panels/atmospherePanel.ts
index 50780a017..8dc77b718 100644
--- a/src/ts/ui/bodyEditor/panels/atmospherePanel.ts
+++ b/src/ts/ui/bodyEditor/panels/atmospherePanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/panels/blackholePanel.ts b/src/ts/ui/bodyEditor/panels/blackholePanel.ts
index b21558d35..1ec8586f7 100644
--- a/src/ts/ui/bodyEditor/panels/blackholePanel.ts
+++ b/src/ts/ui/bodyEditor/panels/blackholePanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/panels/cloudsPanel.ts b/src/ts/ui/bodyEditor/panels/cloudsPanel.ts
index 1e8de8063..b06dc859c 100644
--- a/src/ts/ui/bodyEditor/panels/cloudsPanel.ts
+++ b/src/ts/ui/bodyEditor/panels/cloudsPanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/panels/gasCloudsPanel.ts b/src/ts/ui/bodyEditor/panels/gasCloudsPanel.ts
index df4705e6c..1289d3c26 100644
--- a/src/ts/ui/bodyEditor/panels/gasCloudsPanel.ts
+++ b/src/ts/ui/bodyEditor/panels/gasCloudsPanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/panels/generalPanel.ts b/src/ts/ui/bodyEditor/panels/generalPanel.ts
index 3c94f58df..117a6a840 100644
--- a/src/ts/ui/bodyEditor/panels/generalPanel.ts
+++ b/src/ts/ui/bodyEditor/panels/generalPanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -81,7 +81,7 @@ export class GeneralPanel extends EditorPanel {
}),
new Slider("gamma", document.getElementById("gamma") as HTMLElement, 0, 300, colorCorrection.gamma * 100, (val: number) => {
colorCorrection.gamma = val / 100;
- }),
+ })
/*new Slider("bloomThreshold", document.getElementById("bloomThreshold") as HTMLElement, 0, 100, bloom.threshold * 100, (val: number) => {
bloom.threshold = val / 100;
}),
diff --git a/src/ts/ui/bodyEditor/panels/oceanPanel.ts b/src/ts/ui/bodyEditor/panels/oceanPanel.ts
index 2b386c1ac..6127d0e05 100644
--- a/src/ts/ui/bodyEditor/panels/oceanPanel.ts
+++ b/src/ts/ui/bodyEditor/panels/oceanPanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -16,7 +16,6 @@
// along with this program. If not, see .
import { EditorPanel } from "../editorPanel";
-import { clearAllEventListenersById } from "../../../utils/html";
import { Slider } from "handle-sliderjs";
import { OceanPostProcess } from "../../../postProcesses/oceanPostProcess";
import { CelestialBody } from "../../../architecture/celestialBody";
@@ -28,12 +27,6 @@ export class OceanPanel extends EditorPanel {
init(planet: CelestialBody, ocean: OceanPostProcess) {
for (const slider of this.sliders) slider.remove();
- const oceanToggler = clearAllEventListenersById("oceanToggler");
- oceanToggler.addEventListener("click", () => {
- const checkbox = document.querySelectorAll("input[type='checkbox']")[0] as HTMLInputElement;
- checkbox.checked = !checkbox.checked;
- ocean.oceanUniforms.oceanRadius = checkbox.checked ? planet.getBoundingRadius() : 0;
- });
this.sliders = [
new Slider("alphaModifier", document.getElementById("alphaModifier") as HTMLElement, 0, 200, ocean.oceanUniforms.alphaModifier * 10000, (val: number) => {
ocean.oceanUniforms.alphaModifier = val / 10000;
diff --git a/src/ts/ui/bodyEditor/panels/physicPanel.ts b/src/ts/ui/bodyEditor/panels/physicPanel.ts
index 38fc003a5..d83f2a2e0 100644
--- a/src/ts/ui/bodyEditor/panels/physicPanel.ts
+++ b/src/ts/ui/bodyEditor/panels/physicPanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/panels/ringsPanel.ts b/src/ts/ui/bodyEditor/panels/ringsPanel.ts
index 9697e2815..3bb1af80f 100644
--- a/src/ts/ui/bodyEditor/panels/ringsPanel.ts
+++ b/src/ts/ui/bodyEditor/panels/ringsPanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/panels/starPanel.ts b/src/ts/ui/bodyEditor/panels/starPanel.ts
index f8f9d7f0a..1bb4d4b9a 100644
--- a/src/ts/ui/bodyEditor/panels/starPanel.ts
+++ b/src/ts/ui/bodyEditor/panels/starPanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/bodyEditor/panels/surfacePanel.ts b/src/ts/ui/bodyEditor/panels/surfacePanel.ts
index cb5be695b..b11962f59 100644
--- a/src/ts/ui/bodyEditor/panels/surfacePanel.ts
+++ b/src/ts/ui/bodyEditor/panels/surfacePanel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/helmetOverlay.ts b/src/ts/ui/helmetOverlay.ts
index 992c68ecb..da4e6a1db 100644
--- a/src/ts/ui/helmetOverlay.ts
+++ b/src/ts/ui/helmetOverlay.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -44,7 +44,7 @@ export class HelmetOverlay {
}
displaySpeed(shipInternalThrottle: number, shipTargetThrottle: number, speed: number) {
- const throttleString = `${shipInternalThrottle.toFixed(0)}% | ${shipTargetThrottle.toFixed(0)}%`;
+ const throttleString = `${(100 * shipInternalThrottle).toFixed(0)}% | ${(100 * shipTargetThrottle).toFixed(0)}%`;
(document.querySelector("#speedometer") as HTMLElement).innerText = `${throttleString} | ${parseSpeed(speed)}`;
}
}
diff --git a/src/ts/ui/objectOverlay.ts b/src/ts/ui/objectOverlay.ts
index f9358a3f8..8412943fc 100644
--- a/src/ts/ui/objectOverlay.ts
+++ b/src/ts/ui/objectOverlay.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -23,7 +23,7 @@ import { parseDistance, parseSeconds } from "../utils/parseToStrings";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
import { getAngularSize } from "../utils/isObjectVisibleOnScreen";
import { Camera } from "@babylonjs/core/Cameras/camera";
-import { LOCAL_DIRECTION } from "../uberCore/localDirections";
+import { LocalDirection } from "../uberCore/localDirections";
import { OrbitalObject } from "../architecture/orbitalObject";
import { Settings } from "../settings";
@@ -38,7 +38,7 @@ export class ObjectOverlay {
private lastDistance: number = 0;
- static WIDTH = 300;
+ static readonly WIDTH = 300;
constructor(object: OrbitalObject) {
this.object = object;
@@ -105,7 +105,7 @@ export class ObjectOverlay {
}
update(camera: Camera, target: OrbitalObject | null) {
- const viewRay = camera.getDirection(LOCAL_DIRECTION.BACKWARD);
+ const viewRay = camera.getDirection(LocalDirection.BACKWARD);
const objectRay = this.object.getTransform().getAbsolutePosition().subtract(camera.globalPosition);
const distance = objectRay.length();
const deltaDistance = this.lastDistance - distance;
diff --git a/src/ts/ui/pauseMenu.ts b/src/ts/ui/pauseMenu.ts
index d28e077ef..452677f97 100644
--- a/src/ts/ui/pauseMenu.ts
+++ b/src/ts/ui/pauseMenu.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/ui/systemUI.ts b/src/ts/ui/systemUI.ts
index dccd10db4..76ed5ce21 100644
--- a/src/ts/ui/systemUI.ts
+++ b/src/ts/ui/systemUI.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/algebra.ts b/src/ts/utils/algebra.ts
index f93a96dcf..b6a29e2d2 100644
--- a/src/ts/utils/algebra.ts
+++ b/src/ts/utils/algebra.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -70,6 +70,6 @@ export function flattenVector4Array(vector4Array: Vector4[]): number[] {
return result;
}
-export function MapVector3(v: Vector3, f: (x: number) => number): Vector3 {
+export function mapVector3(v: Vector3, f: (x: number) => number): Vector3 {
return new Vector3(f(v.x), f(v.y), f(v.z));
}
diff --git a/src/ts/utils/base64.ts b/src/ts/utils/base64.ts
index 361b789a5..99cc178b6 100644
--- a/src/ts/utils/base64.ts
+++ b/src/ts/utils/base64.ts
@@ -4,4 +4,4 @@ export function encodeBase64(str: string): string {
export function decodeBase64(str: string): string {
return atob(str);
-}
\ No newline at end of file
+}
diff --git a/src/ts/utils/chunkUtils.ts b/src/ts/utils/chunkUtils.ts
index 0b80e8f50..d805914c9 100644
--- a/src/ts/utils/chunkUtils.ts
+++ b/src/ts/utils/chunkUtils.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/direction.ts b/src/ts/utils/direction.ts
index f82d91d97..1600fbe99 100644
--- a/src/ts/utils/direction.ts
+++ b/src/ts/utils/direction.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -19,27 +19,27 @@ import { Axis } from "@babylonjs/core/Maths/math.axis";
import { Quaternion } from "@babylonjs/core/Maths/math.vector";
export enum Direction {
- Up,
- Down,
- Left,
- Right,
- Forward,
- Backward
+ UP,
+ DOWN,
+ LEFT,
+ RIGHT,
+ FORWARD,
+ BACKWARD
}
export function getQuaternionFromDirection(direction: Direction): Quaternion {
switch (direction) {
- case Direction.Up:
+ case Direction.UP:
return Quaternion.RotationAxis(Axis.X, Math.PI / 2);
- case Direction.Down:
+ case Direction.DOWN:
return Quaternion.RotationAxis(Axis.X, -Math.PI / 2);
- case Direction.Forward:
+ case Direction.FORWARD:
return Quaternion.Identity();
- case Direction.Backward:
+ case Direction.BACKWARD:
return Quaternion.RotationAxis(Axis.Y, Math.PI);
- case Direction.Left:
+ case Direction.LEFT:
return Quaternion.RotationAxis(Axis.Y, Math.PI / 2);
- case Direction.Right:
+ case Direction.RIGHT:
return Quaternion.RotationAxis(Axis.Y, -Math.PI / 2);
}
}
diff --git a/src/ts/utils/extractRelevantPostProcesses.ts b/src/ts/utils/extractRelevantPostProcesses.ts
index af280c523..35c4910a7 100644
--- a/src/ts/utils/extractRelevantPostProcesses.ts
+++ b/src/ts/utils/extractRelevantPostProcesses.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/hashVec3.ts b/src/ts/utils/hashVec3.ts
index 29c06b60b..e22874e22 100644
--- a/src/ts/utils/hashVec3.ts
+++ b/src/ts/utils/hashVec3.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/havok.ts b/src/ts/utils/havok.ts
index 685fa1803..dca14a6e3 100644
--- a/src/ts/utils/havok.ts
+++ b/src/ts/utils/havok.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/html.ts b/src/ts/utils/html.ts
index 72b6a3eb0..af78a09c9 100644
--- a/src/ts/utils/html.ts
+++ b/src/ts/utils/html.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/isObjectVisibleOnScreen.ts b/src/ts/utils/isObjectVisibleOnScreen.ts
index 4b5d53cde..65ad4e789 100644
--- a/src/ts/utils/isObjectVisibleOnScreen.ts
+++ b/src/ts/utils/isObjectVisibleOnScreen.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/math.ts b/src/ts/utils/math.ts
index 5fe0f3cea..6edb00213 100644
--- a/src/ts/utils/math.ts
+++ b/src/ts/utils/math.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/moveTowards.ts b/src/ts/utils/moveTowards.ts
index e41c3860b..0528b525e 100644
--- a/src/ts/utils/moveTowards.ts
+++ b/src/ts/utils/moveTowards.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/nameGenerator.ts b/src/ts/utils/nameGenerator.ts
index b0b18a752..340561cc6 100644
--- a/src/ts/utils/nameGenerator.ts
+++ b/src/ts/utils/nameGenerator.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/nearestBody.ts b/src/ts/utils/nearestBody.ts
index f5fc5ad1e..42071a3c4 100644
--- a/src/ts/utils/nearestBody.ts
+++ b/src/ts/utils/nearestBody.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/occlusion.ts b/src/ts/utils/occlusion.ts
index d1ce19f31..42ec2a0a5 100644
--- a/src/ts/utils/occlusion.ts
+++ b/src/ts/utils/occlusion.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/parseToStrings.ts b/src/ts/utils/parseToStrings.ts
index 8b82d58d9..0e8854563 100644
--- a/src/ts/utils/parseToStrings.ts
+++ b/src/ts/utils/parseToStrings.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/particleSystem.ts b/src/ts/utils/particleSystem.ts
index e6d56185c..f7f2e7268 100644
--- a/src/ts/utils/particleSystem.ts
+++ b/src/ts/utils/particleSystem.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -43,7 +43,7 @@ export class DirectionnalParticleSystem extends ParticleSystem {
this.direction = direction;
this.emitter = mesh;
- this.particleTexture = Assets.PlumeParticle;
+ this.particleTexture = Assets.PLUME_PARTICLE;
this.particleTexture.hasAlpha = true;
this.emitter = mesh;
diff --git a/src/ts/utils/positionNearObject.ts b/src/ts/utils/positionNearObject.ts
index de887f74b..e8f7b0271 100644
--- a/src/ts/utils/positionNearObject.ts
+++ b/src/ts/utils/positionNearObject.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/systemSeed.ts b/src/ts/utils/systemSeed.ts
index bc422c151..fdf6c09bf 100644
--- a/src/ts/utils/systemSeed.ts
+++ b/src/ts/utils/systemSeed.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/temperatureComputation.ts b/src/ts/utils/temperatureComputation.ts
index ec8091e06..07c918be4 100644
--- a/src/ts/utils/temperatureComputation.ts
+++ b/src/ts/utils/temperatureComputation.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/thickLines.ts b/src/ts/utils/thickLines.ts
index 88f1f21ad..e630b5a78 100644
--- a/src/ts/utils/thickLines.ts
+++ b/src/ts/utils/thickLines.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/warpTunnel.ts b/src/ts/utils/warpTunnel.ts
index 8e6352bee..e23439d77 100644
--- a/src/ts/utils/warpTunnel.ts
+++ b/src/ts/utils/warpTunnel.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
@@ -27,7 +27,6 @@ import { Quaternion } from "@babylonjs/core/Maths/math";
import { StandardMaterial } from "@babylonjs/core/Materials/standardMaterial";
import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
import { getForwardDirection } from "../uberCore/transforms/basicTransform";
-import { uniformRandBool } from "extended-random";
/**
* @see https://playground.babylonjs.com/#GLZ1PX#1241 (SPS)
@@ -40,6 +39,8 @@ export class WarpTunnel implements Transformable {
readonly solidParticleSystem: SolidParticleSystem;
+ private throttle: number = 0;
+
static TUNNEL_LENGTH = 300;
static MAX_NB_PARTICLES = 3000;
@@ -102,7 +103,9 @@ export class WarpTunnel implements Transformable {
particle.position.addInPlace(direction.scale(Math.random() * 10));
particle.position.addInPlace(this.anchor.getAbsolutePosition());
- particle.velocity.copyFrom(direction.scale(600));
+ particle.props = {
+ direction: direction.clone()
+ };
particle.rotationQuaternion = rotationQuaternion;
@@ -152,6 +155,8 @@ export class WarpTunnel implements Transformable {
SPS.updateParticle = (particle) => {
if (!particle.isVisible) return particle;
+ particle.velocity.copyFrom(particle.props.direction.scale(400 + 400 * this.throttle));
+
particle.position.addInPlace(particle.velocity.scale(scene.getEngine().getDeltaTime() / 1000));
particle.position.addInPlace(spaceshipDisplacement);
@@ -197,7 +202,7 @@ export class WarpTunnel implements Transformable {
updateGlobals();
if (this.nbParticlesAlive < this.targetNbParticles && this.recycledParticles.length > 0) {
- if(Math.random() < this.targetNbParticles / WarpTunnel.MAX_NB_PARTICLES) {
+ if (Math.random() < this.targetNbParticles / WarpTunnel.MAX_NB_PARTICLES) {
instanceFromStock();
this.nbParticlesAlive++;
}
@@ -214,7 +219,8 @@ export class WarpTunnel implements Transformable {
}
setThrottle(throttle: number) {
- this.targetNbParticles = Math.floor(throttle * WarpTunnel.MAX_NB_PARTICLES);
+ this.throttle = throttle;
+ this.targetNbParticles = Math.floor(this.throttle * WarpTunnel.MAX_NB_PARTICLES);
}
getTransform(): TransformNode {
diff --git a/src/ts/utils/waterMechanics.ts b/src/ts/utils/waterMechanics.ts
index a2fe8c0ad..a7b9a5bc3 100644
--- a/src/ts/utils/waterMechanics.ts
+++ b/src/ts/utils/waterMechanics.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/wheelOfFortune.ts b/src/ts/utils/wheelOfFortune.ts
index b872cbc45..652e2814c 100644
--- a/src/ts/utils/wheelOfFortune.ts
+++ b/src/ts/utils/wheelOfFortune.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/utils/wrappers.ts b/src/ts/utils/wrappers.ts
index 474b3153c..d5c406c15 100644
--- a/src/ts/utils/wrappers.ts
+++ b/src/ts/utils/wrappers.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/src/ts/xr.ts b/src/ts/xr.ts
index 8965bc9bc..71ca5c3ed 100644
--- a/src/ts/xr.ts
+++ b/src/ts/xr.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/tests/unit/algebra.test.ts b/tests/unit/algebra.test.ts
index 7e4db9b02..a26bf8331 100644
--- a/tests/unit/algebra.test.ts
+++ b/tests/unit/algebra.test.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/tests/unit/basicTransform.test.ts b/tests/unit/basicTransform.test.ts
index 855355785..3f1b45384 100644
--- a/tests/unit/basicTransform.test.ts
+++ b/tests/unit/basicTransform.test.ts
@@ -1,4 +1,4 @@
-// This file is part of CosmosJourneyer
+// This file is part of Cosmos Journeyer
//
// Copyright (C) 2024 Barthélemy Paléologue
//
diff --git a/typedoc.json b/typedoc.json
index cd630e95e..5a5b988a6 100644
--- a/typedoc.json
+++ b/typedoc.json
@@ -1,5 +1,5 @@
{
- "name": "CosmosJourneyer API Documentation",
+ "name": "Cosmos Journeyer API Documentation",
"out": "docs",
"theme": "default",
"exclude": [
@@ -7,7 +7,9 @@
"**/test/**/*.*"
],
"entryPoints": [
- "src/ts/**/*.ts"
+ "src/ts/cosmosJourneyer.ts",
+ "src/ts/starmap/starMap.ts",
+ "src/ts/starSystem/starSystemView.ts"
],
"visibilityFilters": {
"protected": false,
@@ -16,5 +18,7 @@
"external": false,
"@alpha": false,
"@beta": false
- }
+ },
+ "plugin": ["typedoc-material-theme", "typedoc-plugin-missing-exports"],
+ "themeColor": "#cb9820"
}
\ No newline at end of file