diff --git a/packages/app/example-import-sample/.eslintrc.cjs b/packages/app/example-import-sample/.eslintrc.cjs
index 02c4f0b2..e40c1bad 100644
--- a/packages/app/example-import-sample/.eslintrc.cjs
+++ b/packages/app/example-import-sample/.eslintrc.cjs
@@ -1,5 +1,5 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- extends: ["@opendaw/eslint-config/index.js"],
+ root: true,
+ extends: ["@opendaw/eslint-config/index.js"],
};
diff --git a/packages/app/headless/.eslintrc.cjs b/packages/app/headless/.eslintrc.cjs
index 02c4f0b2..e40c1bad 100644
--- a/packages/app/headless/.eslintrc.cjs
+++ b/packages/app/headless/.eslintrc.cjs
@@ -1,5 +1,5 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- extends: ["@opendaw/eslint-config/index.js"],
+ root: true,
+ extends: ["@opendaw/eslint-config/index.js"],
};
diff --git a/packages/app/soundfont/.eslintrc.cjs b/packages/app/soundfont/.eslintrc.cjs
index 02c4f0b2..e40c1bad 100644
--- a/packages/app/soundfont/.eslintrc.cjs
+++ b/packages/app/soundfont/.eslintrc.cjs
@@ -1,5 +1,5 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- extends: ["@opendaw/eslint-config/index.js"],
+ root: true,
+ extends: ["@opendaw/eslint-config/index.js"],
};
diff --git a/packages/app/studio/.eslintrc.cjs b/packages/app/studio/.eslintrc.cjs
index 02c4f0b2..e40c1bad 100644
--- a/packages/app/studio/.eslintrc.cjs
+++ b/packages/app/studio/.eslintrc.cjs
@@ -1,5 +1,5 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- extends: ["@opendaw/eslint-config/index.js"],
+ root: true,
+ extends: ["@opendaw/eslint-config/index.js"],
};
diff --git a/packages/app/studio/index.html b/packages/app/studio/index.html
index c5070ae9..d40d5724 100644
--- a/packages/app/studio/index.html
+++ b/packages/app/studio/index.html
@@ -1,88 +1,88 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 🎧openDAW.studio
-
-
+ @keyframes mulShdSpin {
+ 0%,
+ 100% {
+ box-shadow: 0em -2.6em 0em 0em #ffffff, 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.5), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.7);
+ }
+ 12.5% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.7), 1.8em -1.8em 0 0em #ffffff, 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.5);
+ }
+ 25% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.5), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.7), 2.5em 0em 0 0em #ffffff, 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 37.5% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.5), 2.5em 0em 0 0em rgba(255, 255, 255, 0.7), 1.75em 1.75em 0 0em #ffffff, 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 50% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.5), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.7), 0em 2.5em 0 0em #ffffff, -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 62.5% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.5), 0em 2.5em 0 0em rgba(255, 255, 255, 0.7), -1.8em 1.8em 0 0em #ffffff, -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 75% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.5), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.7), -2.6em 0em 0 0em #ffffff, -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 87.5% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.5), -2.6em 0em 0 0em rgba(255, 255, 255, 0.7), -1.8em -1.8em 0 0em #ffffff;
+ }
+ }
+
+
diff --git a/packages/app/studio/public/manuals/browser-support.md b/packages/app/studio/public/manuals/browser-support.md
index 91a60269..6a9a6963 100644
--- a/packages/app/studio/public/manuals/browser-support.md
+++ b/packages/app/studio/public/manuals/browser-support.md
@@ -13,5 +13,6 @@ However, there are differences in which web APIs are supported by each browser.
## Legend
### ⚠️ Workaround
+
This symbol indicates a temporary solution or alternative approach to bypass a limitation, bug, or
missing feature. It is not a permanent fix but allows functionality until an official resolution is available.
\ No newline at end of file
diff --git a/packages/app/studio/public/manuals/dev-log.md b/packages/app/studio/public/manuals/dev-log.md
index 1c498c07..dfa774fd 100644
--- a/packages/app/studio/public/manuals/dev-log.md
+++ b/packages/app/studio/public/manuals/dev-log.md
@@ -13,8 +13,8 @@
* ~~If MIDI, select all channels or specific channel~~
* ~~Arm buttons default behavior should be radio group (shift to add)~~
* ~~Capture audio~~
- * layout channels
- * adjust pre-gain?
+ * layout channels
+ * adjust pre-gain?
* ~~MIDI Controller (values)~~
* ~~Put Recording.start into class Project~~
* ~~Stop (~~start~~) recording at quantized positions~~
diff --git a/packages/app/studio/public/manuals/permissions.md b/packages/app/studio/public/manuals/permissions.md
index 6f307e8e..af857f61 100644
--- a/packages/app/studio/public/manuals/permissions.md
+++ b/packages/app/studio/public/manuals/permissions.md
@@ -8,7 +8,8 @@ as it makes working with openDAW much smoother.
## More Info
-In all modern browsers, `navigator.mediaDevices.enumerateDevices()` will only list audio and video devices after the user
+In all modern browsers, `navigator.mediaDevices.enumerateDevices()` will only list audio and video devices after the
+user
grants permission—typically via a getUserMedia() call. Chrome, Safari, and Firefox have all adopted this behavior to
protect user privacy and reduce fingerprinting risks. Without permission, device names, IDs, or availability remain
hidden. This is how browsers are designed. Granting microphone access ensures openDAW can list
diff --git a/packages/app/studio/public/manuals/private-file-system.md b/packages/app/studio/public/manuals/private-file-system.md
index 853ce770..4de5e79a 100644
--- a/packages/app/studio/public/manuals/private-file-system.md
+++ b/packages/app/studio/public/manuals/private-file-system.md
@@ -13,7 +13,10 @@ access to user samples, openDAW copies every imported sample into OPFS, allowing
these files securely without relying on external file paths.
## Granting OPFS Storage Permission in Firefox
-In Firefox, storing data in OPFS requires explicit user approval due to its privacy settings. Without permission, openDAW may not be able to retain imported samples across sessions. To allow persistent storage for openDAW in Firefox, follow these steps:
+
+In Firefox, storing data in OPFS requires explicit user approval due to its privacy settings. Without permission,
+openDAW may not be able to retain imported samples across sessions. To allow persistent storage for openDAW in Firefox,
+follow these steps:
* Open Firefox Settings
* Navigate to Privacy & Security
diff --git a/packages/app/studio/public/manuals/tech-stack.md b/packages/app/studio/public/manuals/tech-stack.md
index 3d790855..eb288bd9 100644
--- a/packages/app/studio/public/manuals/tech-stack.md
+++ b/packages/app/studio/public/manuals/tech-stack.md
@@ -71,4 +71,5 @@ Each in-house library has a clear, focused purpose.
* [jszip](https://www.npmjs.com/package/jszip) (Pack & Unpack Zip-Files)
* [markdown-it](https://www.npmjs.com/package/markdown-it) + markdown-it-table (Markdown parsing/rendering)
-* [d3-force](https://github.com/d3/d3-force) and [force-graph](https://github.com/vasturiano/force-graph) (graph/layout) < dynamic import
\ No newline at end of file
+* [d3-force](https://github.com/d3/d3-force) and [force-graph](https://github.com/vasturiano/force-graph) (
+ graph/layout) < dynamic import
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/01.svg b/packages/app/studio/public/viscious-speed/01.svg
index 548eda6f..32838337 100644
--- a/packages/app/studio/public/viscious-speed/01.svg
+++ b/packages/app/studio/public/viscious-speed/01.svg
@@ -1 +1,3 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/02.svg b/packages/app/studio/public/viscious-speed/02.svg
index 84b3cc02..de171404 100644
--- a/packages/app/studio/public/viscious-speed/02.svg
+++ b/packages/app/studio/public/viscious-speed/02.svg
@@ -1 +1,3 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/03.svg b/packages/app/studio/public/viscious-speed/03.svg
index f70fb952..d4819dbe 100644
--- a/packages/app/studio/public/viscious-speed/03.svg
+++ b/packages/app/studio/public/viscious-speed/03.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/04.svg b/packages/app/studio/public/viscious-speed/04.svg
index 339973c3..87534cfd 100644
--- a/packages/app/studio/public/viscious-speed/04.svg
+++ b/packages/app/studio/public/viscious-speed/04.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/05.svg b/packages/app/studio/public/viscious-speed/05.svg
index 8bd91766..6a29ee43 100644
--- a/packages/app/studio/public/viscious-speed/05.svg
+++ b/packages/app/studio/public/viscious-speed/05.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/06.svg b/packages/app/studio/public/viscious-speed/06.svg
index 58249328..f6a6d3aa 100644
--- a/packages/app/studio/public/viscious-speed/06.svg
+++ b/packages/app/studio/public/viscious-speed/06.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/07.svg b/packages/app/studio/public/viscious-speed/07.svg
index 4163dfd8..35574a73 100644
--- a/packages/app/studio/public/viscious-speed/07.svg
+++ b/packages/app/studio/public/viscious-speed/07.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/08.svg b/packages/app/studio/public/viscious-speed/08.svg
index 9de373c7..f9abc2e4 100644
--- a/packages/app/studio/public/viscious-speed/08.svg
+++ b/packages/app/studio/public/viscious-speed/08.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/09.svg b/packages/app/studio/public/viscious-speed/09.svg
index 5c7eef2f..f03353e9 100644
--- a/packages/app/studio/public/viscious-speed/09.svg
+++ b/packages/app/studio/public/viscious-speed/09.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/10.svg b/packages/app/studio/public/viscious-speed/10.svg
index 36660395..86c64fbc 100644
--- a/packages/app/studio/public/viscious-speed/10.svg
+++ b/packages/app/studio/public/viscious-speed/10.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/11.svg b/packages/app/studio/public/viscious-speed/11.svg
index c5d4164f..8ea89117 100644
--- a/packages/app/studio/public/viscious-speed/11.svg
+++ b/packages/app/studio/public/viscious-speed/11.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/12.svg b/packages/app/studio/public/viscious-speed/12.svg
index ae61e361..311859c4 100644
--- a/packages/app/studio/public/viscious-speed/12.svg
+++ b/packages/app/studio/public/viscious-speed/12.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/13.svg b/packages/app/studio/public/viscious-speed/13.svg
index 564093ba..91ac9c44 100644
--- a/packages/app/studio/public/viscious-speed/13.svg
+++ b/packages/app/studio/public/viscious-speed/13.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/14.svg b/packages/app/studio/public/viscious-speed/14.svg
index bc5abb42..9b05bd71 100644
--- a/packages/app/studio/public/viscious-speed/14.svg
+++ b/packages/app/studio/public/viscious-speed/14.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/15.svg b/packages/app/studio/public/viscious-speed/15.svg
index a11465ef..a34c6bde 100644
--- a/packages/app/studio/public/viscious-speed/15.svg
+++ b/packages/app/studio/public/viscious-speed/15.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/16.svg b/packages/app/studio/public/viscious-speed/16.svg
index 08070265..87febee1 100644
--- a/packages/app/studio/public/viscious-speed/16.svg
+++ b/packages/app/studio/public/viscious-speed/16.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/17.svg b/packages/app/studio/public/viscious-speed/17.svg
index e1ac9390..44410a85 100644
--- a/packages/app/studio/public/viscious-speed/17.svg
+++ b/packages/app/studio/public/viscious-speed/17.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/18.svg b/packages/app/studio/public/viscious-speed/18.svg
index 18a11285..c0d20f4c 100644
--- a/packages/app/studio/public/viscious-speed/18.svg
+++ b/packages/app/studio/public/viscious-speed/18.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/19.svg b/packages/app/studio/public/viscious-speed/19.svg
index a5965d26..624d84b9 100644
--- a/packages/app/studio/public/viscious-speed/19.svg
+++ b/packages/app/studio/public/viscious-speed/19.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/public/viscious-speed/20.svg b/packages/app/studio/public/viscious-speed/20.svg
index e8fe525a..db90483f 100644
--- a/packages/app/studio/public/viscious-speed/20.svg
+++ b/packages/app/studio/public/viscious-speed/20.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/app/studio/src/errors/ErrorHandler.ts b/packages/app/studio/src/errors/ErrorHandler.ts
index 2f0c18da..b414f6df 100644
--- a/packages/app/studio/src/errors/ErrorHandler.ts
+++ b/packages/app/studio/src/errors/ErrorHandler.ts
@@ -30,9 +30,12 @@ export class ErrorHandler {
Dialogs.info({headline: "Warning", message: reason.message}).then(EmptyExec)
return false
}
- if(error.message?.includes("script-src blocked eval")) {
+ if (error.message?.includes("script-src blocked eval")) {
event.preventDefault()
- Dialogs.info({headline: "Warning", message: "One of your browser extensions caused an error. Please disable extensions for a more stable experience."}).then(EmptyExec)
+ Dialogs.info({
+ headline: "Warning",
+ message: "One of your browser extensions caused an error. Please disable extensions for a more stable experience."
+ }).then(EmptyExec)
return false
}
}
diff --git a/packages/lib/box-forge/.eslintrc.cjs b/packages/lib/box-forge/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/box-forge/.eslintrc.cjs
+++ b/packages/lib/box-forge/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/box-forge/src/forge.ts b/packages/lib/box-forge/src/forge.ts
index 5d825d8a..b90048b7 100644
--- a/packages/lib/box-forge/src/forge.ts
+++ b/packages/lib/box-forge/src/forge.ts
@@ -5,8 +5,8 @@ import {
asValidIdentifier,
isDefined,
isValidIdentifier,
- Nullable,
Maybe,
+ Nullable,
panic,
SetMultimap,
Strings,
diff --git a/packages/lib/box/.eslintrc.cjs b/packages/lib/box/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/box/.eslintrc.cjs
+++ b/packages/lib/box/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/dawproject/.eslintrc.cjs b/packages/lib/dawproject/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/dawproject/.eslintrc.cjs
+++ b/packages/lib/dawproject/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/dawproject/vite-env.d.ts b/packages/lib/dawproject/vite-env.d.ts
index 99cb38e7..140899a8 100644
--- a/packages/lib/dawproject/vite-env.d.ts
+++ b/packages/lib/dawproject/vite-env.d.ts
@@ -1,4 +1,4 @@
-declare module '*.xml?raw' {
+declare module "*.xml?raw" {
const content: string
export default content
}
\ No newline at end of file
diff --git a/packages/lib/dom/.eslintrc.cjs b/packages/lib/dom/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/dom/.eslintrc.cjs
+++ b/packages/lib/dom/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/dsp/.eslintrc.cjs b/packages/lib/dsp/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/dsp/.eslintrc.cjs
+++ b/packages/lib/dsp/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/fusion/.eslintrc.cjs b/packages/lib/fusion/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/fusion/.eslintrc.cjs
+++ b/packages/lib/fusion/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/fusion/src/index.ts b/packages/lib/fusion/src/index.ts
index 285eaa0f..ac839bb3 100644
--- a/packages/lib/fusion/src/index.ts
+++ b/packages/lib/fusion/src/index.ts
@@ -7,7 +7,7 @@ if ((globalThis as any)[key]) {
console.debug(`%c${key.description}%c is now available in ${globalThis.constructor.name}.`, "color: hsl(200, 83%, 60%)", "color: inherit")
}
-import './types'
+import "./types"
export * from "./live-stream/LiveStreamReceiver"
export * from "./live-stream/LiveStreamBroadcaster"
diff --git a/packages/lib/jsx/.eslintrc.cjs b/packages/lib/jsx/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/jsx/.eslintrc.cjs
+++ b/packages/lib/jsx/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/midi/.eslintrc.cjs b/packages/lib/midi/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/midi/.eslintrc.cjs
+++ b/packages/lib/midi/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/runtime/.eslintrc.cjs b/packages/lib/runtime/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/runtime/.eslintrc.cjs
+++ b/packages/lib/runtime/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/std/.eslintrc.cjs b/packages/lib/std/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/std/.eslintrc.cjs
+++ b/packages/lib/std/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/std/src/color.test.ts b/packages/lib/std/src/color.test.ts
index 08ede988..c9a8b6b3 100644
--- a/packages/lib/std/src/color.test.ts
+++ b/packages/lib/std/src/color.test.ts
@@ -40,14 +40,14 @@ describe("color", () => {
})
it("should convert HEX to HSL correctly (approximate)", () => {
- const { h, s, l } = hexToHsl("#e6bf99")
+ const {h, s, l} = hexToHsl("#e6bf99")
expect(h).toBeCloseTo(30, 0)
expect(s).toBeCloseTo(0.6, 1)
expect(l).toBeCloseTo(0.75, 2)
})
it("should work without leading # in hex", () => {
- const { h, s, l } = hexToHsl("e6bf99")
+ const {h, s, l} = hexToHsl("e6bf99")
expect(h).toBeCloseTo(30, 0)
expect(s).toBeCloseTo(0.6, 1)
expect(l).toBeCloseTo(0.75, 2)
@@ -55,11 +55,11 @@ describe("color", () => {
it("should round-trip between HSL and HEX", () => {
const colors = [
- { h: 0, s: 1, l: 0.5 },
- { h: 120, s: 1, l: 0.5 },
- { h: 240, s: 1, l: 0.5 },
- { h: 30, s: 0.6, l: 0.75 },
- { h: 200, s: 0.4, l: 0.3 }
+ {h: 0, s: 1, l: 0.5},
+ {h: 120, s: 1, l: 0.5},
+ {h: 240, s: 1, l: 0.5},
+ {h: 30, s: 0.6, l: 0.75},
+ {h: 200, s: 0.4, l: 0.3}
]
for (const c of colors) {
diff --git a/packages/lib/std/src/iterables.ts b/packages/lib/std/src/iterables.ts
index 217fca9d..42094bbf 100644
--- a/packages/lib/std/src/iterables.ts
+++ b/packages/lib/std/src/iterables.ts
@@ -1,4 +1,4 @@
-import {Func, int, isDefined, Nullable, Maybe, Predicate, Procedure} from "./lang"
+import {Func, int, isDefined, Maybe, Nullable, Predicate, Procedure} from "./lang"
export class Iterables {
static* empty(): Iterable {}
diff --git a/packages/lib/std/src/multimap.ts b/packages/lib/std/src/multimap.ts
index 54041039..41e210f2 100644
--- a/packages/lib/std/src/multimap.ts
+++ b/packages/lib/std/src/multimap.ts
@@ -1,5 +1,5 @@
import {Arrays} from "./arrays"
-import {Comparator, int, Nullable, Maybe, Predicate} from "./lang"
+import {Comparator, int, Maybe, Nullable, Predicate} from "./lang"
import {Sets} from "./sets"
import {Iterables} from "./iterables"
import {Maps} from "./maps"
diff --git a/packages/lib/std/src/sorted-set.ts b/packages/lib/std/src/sorted-set.ts
index 9b65b099..f836c002 100644
--- a/packages/lib/std/src/sorted-set.ts
+++ b/packages/lib/std/src/sorted-set.ts
@@ -4,8 +4,8 @@ import {
Func,
int,
isDefined,
- Nullable,
Maybe,
+ Nullable,
panic,
Predicate,
Procedure,
diff --git a/packages/lib/xml/.eslintrc.cjs b/packages/lib/xml/.eslintrc.cjs
index 471629b0..b05ce46b 100644
--- a/packages/lib/xml/.eslintrc.cjs
+++ b/packages/lib/xml/.eslintrc.cjs
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
- root: true,
- ignorePatterns: [".eslintrc.cjs"],
- extends: ["@opendaw/eslint-config/index.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
+ root: true,
+ ignorePatterns: [".eslintrc.cjs"],
+ extends: ["@opendaw/eslint-config/index.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
};
diff --git a/packages/lib/xml/src/test.xml b/packages/lib/xml/src/test.xml
index 16d18923..4bc970e8 100644
--- a/packages/lib/xml/src/test.xml
+++ b/packages/lib/xml/src/test.xml
@@ -10,11 +10,11 @@
Dark fantasy masterpiece.
-
+
diff --git a/packages/server/yjs-server/callback.js b/packages/server/yjs-server/callback.js
index f3002bf9..e0e1c294 100644
--- a/packages/server/yjs-server/callback.js
+++ b/packages/server/yjs-server/callback.js
@@ -11,20 +11,20 @@ export const isCallbackSet = !!CALLBACK_URL
* @param {import('./utils.js').WSSharedDoc} doc
*/
export const callbackHandler = (doc) => {
- const room = doc.name
- const dataToSend = {
- room,
- data: {}
- }
- const sharedObjectList = Object.keys(CALLBACK_OBJECTS)
- sharedObjectList.forEach(sharedObjectName => {
- const sharedObjectType = CALLBACK_OBJECTS[sharedObjectName]
- dataToSend.data[sharedObjectName] = {
- type: sharedObjectType,
- content: getContent(sharedObjectName, sharedObjectType, doc).toJSON()
+ const room = doc.name
+ const dataToSend = {
+ room,
+ data: {}
}
- })
- CALLBACK_URL && callbackRequest(CALLBACK_URL, CALLBACK_TIMEOUT, dataToSend)
+ const sharedObjectList = Object.keys(CALLBACK_OBJECTS)
+ sharedObjectList.forEach(sharedObjectName => {
+ const sharedObjectType = CALLBACK_OBJECTS[sharedObjectName]
+ dataToSend.data[sharedObjectName] = {
+ type: sharedObjectType,
+ content: getContent(sharedObjectName, sharedObjectType, doc).toJSON()
+ }
+ })
+ CALLBACK_URL && callbackRequest(CALLBACK_URL, CALLBACK_TIMEOUT, dataToSend)
}
/**
@@ -33,29 +33,29 @@ export const callbackHandler = (doc) => {
* @param {Object} data
*/
const callbackRequest = (url, timeout, data) => {
- data = JSON.stringify(data)
- const options = {
- hostname: url.hostname,
- port: url.port,
- path: url.pathname,
- timeout,
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- 'Content-Length': Buffer.byteLength(data)
+ data = JSON.stringify(data)
+ const options = {
+ hostname: url.hostname,
+ port: url.port,
+ path: url.pathname,
+ timeout,
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ 'Content-Length': Buffer.byteLength(data)
+ }
}
- }
- const req = http.request(options)
- req.on('timeout', () => {
- console.warn('Callback request timed out.')
- req.abort()
- })
- req.on('error', (e) => {
- console.error('Callback request error.', e)
- req.abort()
- })
- req.write(data)
- req.end()
+ const req = http.request(options)
+ req.on('timeout', () => {
+ console.warn('Callback request timed out.')
+ req.abort()
+ })
+ req.on('error', (e) => {
+ console.error('Callback request error.', e)
+ req.abort()
+ })
+ req.write(data)
+ req.end()
}
/**
@@ -64,12 +64,18 @@ const callbackRequest = (url, timeout, data) => {
* @param {import('./utils.js').WSSharedDoc} doc
*/
const getContent = (objName, objType, doc) => {
- switch (objType) {
- case 'Array': return doc.getArray(objName)
- case 'Map': return doc.getMap(objName)
- case 'Text': return doc.getText(objName)
- case 'XmlFragment': return doc.getXmlFragment(objName)
- case 'XmlElement': return doc.getXmlElement(objName)
- default : return {}
- }
+ switch (objType) {
+ case 'Array':
+ return doc.getArray(objName)
+ case 'Map':
+ return doc.getMap(objName)
+ case 'Text':
+ return doc.getText(objName)
+ case 'XmlFragment':
+ return doc.getXmlFragment(objName)
+ case 'XmlElement':
+ return doc.getXmlElement(objName)
+ default :
+ return {}
+ }
}
\ No newline at end of file
diff --git a/packages/server/yjs-server/utils.js b/packages/server/yjs-server/utils.js
index 64e3c547..b85fb139 100644
--- a/packages/server/yjs-server/utils.js
+++ b/packages/server/yjs-server/utils.js
@@ -8,7 +8,7 @@ import * as map from 'lib0/map'
import * as eventloop from 'lib0/eventloop'
-import { callbackHandler, isCallbackSet } from './callback.js'
+import {callbackHandler, isCallbackSet} from './callback.js'
const CALLBACK_DEBOUNCE_WAIT = parseInt(process.env.CALLBACK_DEBOUNCE_WAIT || '2000')
const CALLBACK_DEBOUNCE_MAXWAIT = parseInt(process.env.CALLBACK_DEBOUNCE_MAXWAIT || '10000')
@@ -33,13 +33,13 @@ let persistence = null
* writeState:function(string,WSSharedDoc):Promise,provider:any}|null} persistence_
*/
export const setPersistence = persistence_ => {
- persistence = persistence_
+ persistence = persistence_
}
/**
* @return {null|{bindState: function(string,WSSharedDoc):void,
- * writeState:function(string,WSSharedDoc):Promise}|null} used persistence layer
- */
+ * writeState:function(string,WSSharedDoc):Promise}|null} used persistence layer
+ */
export const getPersistence = () => persistence
/**
@@ -58,11 +58,11 @@ const messageAwareness = 1
* @param {any} _tr
*/
const updateHandler = (update, _origin, doc, _tr) => {
- const encoder = encoding.createEncoder()
- encoding.writeVarUint(encoder, messageSync)
- syncProtocol.writeUpdate(encoder, update)
- const message = encoding.toUint8Array(encoder)
- doc.conns.forEach((_, conn) => send(doc, conn, message))
+ const encoder = encoding.createEncoder()
+ encoding.writeVarUint(encoder, messageSync)
+ syncProtocol.writeUpdate(encoder, update)
+ const message = encoding.toUint8Array(encoder)
+ doc.conns.forEach((_, conn) => send(doc, conn, message))
}
/**
@@ -77,57 +77,61 @@ let contentInitializor = _ydoc => Promise.resolve()
* @param {(ydoc: Y.Doc) => Promise} f
*/
export const setContentInitializor = (f) => {
- contentInitializor = f
+ contentInitializor = f
}
export class WSSharedDoc extends Y.Doc {
- /**
- * @param {string} name
- */
- constructor (name) {
- super({ gc: gcEnabled })
- this.name = name
/**
- * Maps from conn to set of controlled user ids. Delete all user ids from awareness when this conn is closed
- * @type {Map