mirror of
https://github.com/immich-app/immich.git
synced 2025-12-07 17:23:12 +03:00
Compare commits
3 Commits
v1.136.0
...
chore/oxli
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
01cca7328d | ||
|
|
cfe7fc675d | ||
|
|
229ce04118 |
263
web/.oxlintrc.json
Normal file
263
web/.oxlintrc.json
Normal file
@@ -0,0 +1,263 @@
|
|||||||
|
{
|
||||||
|
"$schema": "./node_modules/oxlint/configuration_schema.json",
|
||||||
|
"plugins": [
|
||||||
|
"unicorn",
|
||||||
|
"typescript"
|
||||||
|
],
|
||||||
|
"categories": {
|
||||||
|
"correctness": "off"
|
||||||
|
},
|
||||||
|
"env": {
|
||||||
|
"builtin": true,
|
||||||
|
"browser": true,
|
||||||
|
"commonjs": true,
|
||||||
|
"es2025": true,
|
||||||
|
"node": true,
|
||||||
|
"shared-node-browser": true
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"no-negated-condition": "off",
|
||||||
|
"no-nested-ternary": "off",
|
||||||
|
"unicorn/catch-error-name": "error",
|
||||||
|
"unicorn/consistent-assert": "error",
|
||||||
|
"unicorn/consistent-date-clone": "error",
|
||||||
|
"unicorn/consistent-empty-array-spread": "error",
|
||||||
|
"unicorn/consistent-existence-index-check": "error",
|
||||||
|
"unicorn/consistent-function-scoping": "off",
|
||||||
|
"unicorn/empty-brace-spaces": "error",
|
||||||
|
"unicorn/error-message": "error",
|
||||||
|
"unicorn/escape-case": "error",
|
||||||
|
"unicorn/explicit-length-check": "error",
|
||||||
|
"unicorn/filename-case": "off",
|
||||||
|
"unicorn/new-for-builtins": "error",
|
||||||
|
"unicorn/no-abusive-eslint-disable": "error",
|
||||||
|
"unicorn/no-accessor-recursion": "error",
|
||||||
|
"unicorn/no-anonymous-default-export": "error",
|
||||||
|
"unicorn/no-array-for-each": "error",
|
||||||
|
"unicorn/no-array-method-this-argument": "error",
|
||||||
|
"unicorn/no-array-reduce": "error",
|
||||||
|
"unicorn/no-await-expression-member": "error",
|
||||||
|
"unicorn/no-await-in-promise-methods": "error",
|
||||||
|
"unicorn/no-console-spaces": "error",
|
||||||
|
"unicorn/no-document-cookie": "error",
|
||||||
|
"unicorn/no-empty-file": "error",
|
||||||
|
"unicorn/no-hex-escape": "error",
|
||||||
|
"unicorn/no-instanceof-builtins": "error",
|
||||||
|
"unicorn/no-invalid-fetch-options": "error",
|
||||||
|
"unicorn/no-invalid-remove-event-listener": "error",
|
||||||
|
"unicorn/no-lonely-if": "error",
|
||||||
|
"unicorn/no-magic-array-flat-depth": "error",
|
||||||
|
"unicorn/no-negated-condition": "error",
|
||||||
|
"unicorn/no-negation-in-equality-check": "error",
|
||||||
|
"unicorn/no-nested-ternary": "off",
|
||||||
|
"unicorn/no-new-array": "error",
|
||||||
|
"unicorn/no-new-buffer": "error",
|
||||||
|
"unicorn/no-null": "off",
|
||||||
|
"unicorn/no-object-as-default-parameter": "error",
|
||||||
|
"unicorn/no-process-exit": "error",
|
||||||
|
"unicorn/no-single-promise-in-promise-methods": "error",
|
||||||
|
"unicorn/no-static-only-class": "error",
|
||||||
|
"unicorn/no-thenable": "error",
|
||||||
|
"unicorn/no-this-assignment": "error",
|
||||||
|
"unicorn/no-typeof-undefined": "error",
|
||||||
|
"unicorn/no-unnecessary-array-flat-depth": "error",
|
||||||
|
"unicorn/no-unnecessary-await": "error",
|
||||||
|
"unicorn/no-unnecessary-slice-end": "error",
|
||||||
|
"unicorn/no-unreadable-array-destructuring": "error",
|
||||||
|
"unicorn/no-unreadable-iife": "error",
|
||||||
|
"unicorn/no-useless-fallback-in-spread": "error",
|
||||||
|
"unicorn/no-useless-length-check": "error",
|
||||||
|
"unicorn/no-useless-promise-resolve-reject": "error",
|
||||||
|
"unicorn/no-useless-spread": "error",
|
||||||
|
"unicorn/no-useless-switch-case": "error",
|
||||||
|
"unicorn/no-useless-undefined": "off",
|
||||||
|
"unicorn/no-zero-fractions": "error",
|
||||||
|
"unicorn/number-literal-case": "error",
|
||||||
|
"unicorn/numeric-separators-style": "error",
|
||||||
|
"unicorn/prefer-add-event-listener": "error",
|
||||||
|
"unicorn/prefer-array-find": "error",
|
||||||
|
"unicorn/prefer-array-flat-map": "error",
|
||||||
|
"unicorn/prefer-array-flat": "error",
|
||||||
|
"unicorn/prefer-array-index-of": "error",
|
||||||
|
"unicorn/prefer-array-some": "error",
|
||||||
|
"unicorn/prefer-blob-reading-methods": "error",
|
||||||
|
"unicorn/prefer-code-point": "error",
|
||||||
|
"unicorn/prefer-date-now": "error",
|
||||||
|
"unicorn/prefer-dom-node-append": "error",
|
||||||
|
"unicorn/prefer-dom-node-dataset": "error",
|
||||||
|
"unicorn/prefer-dom-node-remove": "error",
|
||||||
|
"unicorn/prefer-dom-node-text-content": "error",
|
||||||
|
"unicorn/prefer-event-target": "error",
|
||||||
|
"unicorn/prefer-global-this": "error",
|
||||||
|
"unicorn/prefer-includes": "error",
|
||||||
|
"unicorn/prefer-logical-operator-over-ternary": "error",
|
||||||
|
"unicorn/prefer-math-min-max": "error",
|
||||||
|
"unicorn/prefer-math-trunc": "error",
|
||||||
|
"unicorn/prefer-modern-dom-apis": "error",
|
||||||
|
"unicorn/prefer-modern-math-apis": "error",
|
||||||
|
"unicorn/prefer-native-coercion-functions": "error",
|
||||||
|
"unicorn/prefer-negative-index": "error",
|
||||||
|
"unicorn/prefer-node-protocol": "error",
|
||||||
|
"unicorn/prefer-number-properties": "error",
|
||||||
|
"unicorn/prefer-object-from-entries": "error",
|
||||||
|
"unicorn/prefer-optional-catch-binding": "error",
|
||||||
|
"unicorn/prefer-prototype-methods": "error",
|
||||||
|
"unicorn/prefer-query-selector": "error",
|
||||||
|
"unicorn/prefer-reflect-apply": "error",
|
||||||
|
"unicorn/prefer-regexp-test": "error",
|
||||||
|
"unicorn/prefer-set-has": "error",
|
||||||
|
"unicorn/prefer-set-size": "error",
|
||||||
|
"unicorn/prefer-spread": "off",
|
||||||
|
"unicorn/prefer-string-raw": "error",
|
||||||
|
"unicorn/prefer-string-replace-all": "error",
|
||||||
|
"unicorn/prefer-string-slice": "error",
|
||||||
|
"unicorn/prefer-string-starts-ends-with": "error",
|
||||||
|
"unicorn/prefer-string-trim-start-end": "error",
|
||||||
|
"unicorn/prefer-structured-clone": "error",
|
||||||
|
"unicorn/prefer-type-error": "error",
|
||||||
|
"unicorn/require-array-join-separator": "error",
|
||||||
|
"unicorn/require-number-to-fixed-digits-argument": "error",
|
||||||
|
"unicorn/require-post-message-target-origin": "off",
|
||||||
|
"unicorn/switch-case-braces": "error",
|
||||||
|
"unicorn/text-encoding-identifier-case": "error",
|
||||||
|
"unicorn/throw-new-error": "error",
|
||||||
|
"for-direction": "error",
|
||||||
|
"no-async-promise-executor": "error",
|
||||||
|
"no-case-declarations": "error",
|
||||||
|
"no-class-assign": "error",
|
||||||
|
"no-compare-neg-zero": "error",
|
||||||
|
"no-cond-assign": "error",
|
||||||
|
"no-const-assign": "error",
|
||||||
|
"no-constant-binary-expression": "error",
|
||||||
|
"no-constant-condition": "error",
|
||||||
|
"no-control-regex": "error",
|
||||||
|
"no-debugger": "error",
|
||||||
|
"no-delete-var": "error",
|
||||||
|
"no-dupe-class-members": "error",
|
||||||
|
"no-dupe-else-if": "error",
|
||||||
|
"no-dupe-keys": "error",
|
||||||
|
"no-duplicate-case": "error",
|
||||||
|
"no-empty": "error",
|
||||||
|
"no-empty-character-class": "error",
|
||||||
|
"no-empty-pattern": "error",
|
||||||
|
"no-empty-static-block": "error",
|
||||||
|
"no-ex-assign": "error",
|
||||||
|
"no-extra-boolean-cast": "error",
|
||||||
|
"no-fallthrough": "error",
|
||||||
|
"no-func-assign": "error",
|
||||||
|
"no-global-assign": "error",
|
||||||
|
"no-import-assign": "error",
|
||||||
|
"no-invalid-regexp": "error",
|
||||||
|
"no-irregular-whitespace": "error",
|
||||||
|
"no-loss-of-precision": "error",
|
||||||
|
"no-new-native-nonconstructor": "error",
|
||||||
|
"no-nonoctal-decimal-escape": "error",
|
||||||
|
"no-obj-calls": "error",
|
||||||
|
"no-prototype-builtins": "error",
|
||||||
|
"no-redeclare": "error",
|
||||||
|
"no-regex-spaces": "error",
|
||||||
|
"no-self-assign": "error",
|
||||||
|
"no-setter-return": "error",
|
||||||
|
"no-shadow-restricted-names": "error",
|
||||||
|
"no-sparse-arrays": "error",
|
||||||
|
"no-this-before-super": "error",
|
||||||
|
"no-unexpected-multiline": "error",
|
||||||
|
"no-unsafe-finally": "error",
|
||||||
|
"no-unsafe-negation": "error",
|
||||||
|
"no-unsafe-optional-chaining": "error",
|
||||||
|
"no-unused-labels": "error",
|
||||||
|
"no-unused-private-class-members": "error",
|
||||||
|
"no-unused-vars": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
"argsIgnorePattern": "^_$",
|
||||||
|
"varsIgnorePattern": "^_$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no-useless-backreference": "error",
|
||||||
|
"no-useless-catch": "error",
|
||||||
|
"no-useless-escape": "error",
|
||||||
|
"no-with": "error",
|
||||||
|
"require-yield": "error",
|
||||||
|
"use-isnan": "error",
|
||||||
|
"valid-typeof": "error",
|
||||||
|
"@typescript-eslint/ban-ts-comment": "error",
|
||||||
|
"no-array-constructor": "error",
|
||||||
|
"@typescript-eslint/no-duplicate-enum-values": "error",
|
||||||
|
"@typescript-eslint/no-empty-object-type": "error",
|
||||||
|
"@typescript-eslint/no-explicit-any": "error",
|
||||||
|
"@typescript-eslint/no-extra-non-null-assertion": "error",
|
||||||
|
"@typescript-eslint/no-misused-new": "error",
|
||||||
|
"@typescript-eslint/no-namespace": "error",
|
||||||
|
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
|
||||||
|
"@typescript-eslint/no-require-imports": "error",
|
||||||
|
"@typescript-eslint/no-this-alias": "error",
|
||||||
|
"@typescript-eslint/no-unnecessary-type-constraint": "error",
|
||||||
|
"@typescript-eslint/no-unsafe-declaration-merging": "error",
|
||||||
|
"@typescript-eslint/no-unsafe-function-type": "error",
|
||||||
|
"no-unused-expressions": "error",
|
||||||
|
"@typescript-eslint/no-wrapper-object-types": "error",
|
||||||
|
"@typescript-eslint/prefer-as-const": "error",
|
||||||
|
"@typescript-eslint/prefer-namespace-keyword": "error",
|
||||||
|
"@typescript-eslint/triple-slash-reference": "error",
|
||||||
|
"curly": "warn",
|
||||||
|
"eslint/no-undef": "error"
|
||||||
|
},
|
||||||
|
"globals": {
|
||||||
|
"NodeJS": "writeable"
|
||||||
|
},
|
||||||
|
"ignorePatterns": [
|
||||||
|
"**/.DS_Store",
|
||||||
|
"**/node_modules",
|
||||||
|
"build",
|
||||||
|
".svelte-kit",
|
||||||
|
"package",
|
||||||
|
"**/.env",
|
||||||
|
"**/.env.*",
|
||||||
|
"!**/.env.example",
|
||||||
|
"**/pnpm-lock.yaml",
|
||||||
|
"**/package-lock.json",
|
||||||
|
"**/yarn.lock",
|
||||||
|
"**/svelte.config.js",
|
||||||
|
"eslint.config.js",
|
||||||
|
"tailwind.config.js",
|
||||||
|
"coverage",
|
||||||
|
"**/service-worker/**"
|
||||||
|
],
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["*.svelte", "**/*.svelte", "**/*.svelte.ts", "**/*.svelte.js"],
|
||||||
|
"rules": {
|
||||||
|
"eslint/no-undef": "off",
|
||||||
|
"no-inner-declarations": "off",
|
||||||
|
"no-self-assign": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"**/*.ts",
|
||||||
|
"**/*.tsx",
|
||||||
|
"**/*.mts",
|
||||||
|
"**/*.cts"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"no-class-assign": "off",
|
||||||
|
"no-const-assign": "off",
|
||||||
|
"no-dupe-class-members": "off",
|
||||||
|
"no-dupe-keys": "off",
|
||||||
|
"no-func-assign": "off",
|
||||||
|
"no-import-assign": "off",
|
||||||
|
"no-new-native-nonconstructor": "off",
|
||||||
|
"no-obj-calls": "off",
|
||||||
|
"no-redeclare": "off",
|
||||||
|
"no-setter-return": "off",
|
||||||
|
"no-this-before-super": "off",
|
||||||
|
"no-unsafe-negation": "off",
|
||||||
|
"no-var": "error",
|
||||||
|
"no-with": "off",
|
||||||
|
"prefer-rest-params": "error",
|
||||||
|
"prefer-spread": "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -13,3 +13,5 @@ node_modules
|
|||||||
pnpm-lock.yaml
|
pnpm-lock.yaml
|
||||||
package-lock.json
|
package-lock.json
|
||||||
yarn.lock
|
yarn.lock
|
||||||
|
biome.json
|
||||||
|
.oxlintrc.json
|
||||||
347
web/biome.json
Normal file
347
web/biome.json
Normal file
@@ -0,0 +1,347 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://biomejs.dev/schemas/2.0.0-beta.6/schema.json",
|
||||||
|
"assist": {
|
||||||
|
"actions": { "source": { "organizeImports": "on" } },
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"files": { "ignoreUnknown": false },
|
||||||
|
"formatter": { "enabled": true, "indentStyle": "tab" },
|
||||||
|
"javascript": { "formatter": { "quoteStyle": "double" }, "globals": [] },
|
||||||
|
"linter": {
|
||||||
|
"enabled": true,
|
||||||
|
"includes": [
|
||||||
|
"**",
|
||||||
|
"!**/.DS_Store",
|
||||||
|
"!**/node_modules",
|
||||||
|
"!build",
|
||||||
|
"!.svelte-kit",
|
||||||
|
"!package",
|
||||||
|
"!**/.env",
|
||||||
|
"!**/.env.*",
|
||||||
|
"**/.env.example",
|
||||||
|
"!**/pnpm-lock.yaml",
|
||||||
|
"!**/package-lock.json",
|
||||||
|
"!**/yarn.lock",
|
||||||
|
"!**/svelte.config.js",
|
||||||
|
"!eslint.config.js",
|
||||||
|
"!tailwind.config.js",
|
||||||
|
"!coverage",
|
||||||
|
"**",
|
||||||
|
"!**/.DS_Store",
|
||||||
|
"!**/node_modules",
|
||||||
|
"!build",
|
||||||
|
"!.svelte-kit",
|
||||||
|
"!package",
|
||||||
|
"!**/.env",
|
||||||
|
"!**/.env.*",
|
||||||
|
"**/.env.example",
|
||||||
|
"!**/pnpm-lock.yaml",
|
||||||
|
"!**/package-lock.json",
|
||||||
|
"!**/yarn.lock",
|
||||||
|
"!**/svelte.config.js",
|
||||||
|
"!eslint.config.js",
|
||||||
|
"!tailwind.config.js",
|
||||||
|
"!coverage"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"complexity": {
|
||||||
|
"noAdjacentSpacesInRegex": "error",
|
||||||
|
"noExtraBooleanCast": "error",
|
||||||
|
"noForEach": "error",
|
||||||
|
"noStaticOnlyClass": "error",
|
||||||
|
"noUselessCatch": "error",
|
||||||
|
"noUselessEscapeInRegex": "error",
|
||||||
|
"noUselessSwitchCase": "error",
|
||||||
|
"noUselessThisAlias": "error",
|
||||||
|
"noUselessTypeConstraint": "error",
|
||||||
|
"useDateNow": "error",
|
||||||
|
"useFlatMap": "error"
|
||||||
|
},
|
||||||
|
"correctness": {
|
||||||
|
"noConstAssign": "error",
|
||||||
|
"noConstantCondition": "error",
|
||||||
|
"noEmptyCharacterClassInRegex": "error",
|
||||||
|
"noEmptyPattern": "error",
|
||||||
|
"noGlobalObjectCalls": "error",
|
||||||
|
"noInvalidBuiltinInstantiation": "error",
|
||||||
|
"noInvalidConstructorSuper": "error",
|
||||||
|
"noNonoctalDecimalEscape": "error",
|
||||||
|
"noPrecisionLoss": "error",
|
||||||
|
"noSelfAssign": "error",
|
||||||
|
"noSetterReturn": "error",
|
||||||
|
"noSwitchDeclarations": "error",
|
||||||
|
"noUndeclaredVariables": "error",
|
||||||
|
"noUnreachable": "error",
|
||||||
|
"noUnreachableSuper": "error",
|
||||||
|
"noUnsafeFinally": "error",
|
||||||
|
"noUnsafeOptionalChaining": "error",
|
||||||
|
"noUnusedLabels": "error",
|
||||||
|
"noUnusedPrivateClassMembers": "error",
|
||||||
|
"noUnusedVariables": "off",
|
||||||
|
"useIsNan": "error",
|
||||||
|
"useValidForDirection": "error",
|
||||||
|
"useValidTypeof": "error",
|
||||||
|
"useYield": "error"
|
||||||
|
},
|
||||||
|
"recommended": false,
|
||||||
|
"style": {
|
||||||
|
"noCommonJs": "error",
|
||||||
|
"noNamespace": "error",
|
||||||
|
"noNegationElse": "off",
|
||||||
|
"noNestedTernary": "off",
|
||||||
|
"noSubstr": "error",
|
||||||
|
"useArrayLiterals": "error",
|
||||||
|
"useAsConstAssertion": "error",
|
||||||
|
"useAtIndex": "error",
|
||||||
|
"useCollapsedIf": "error",
|
||||||
|
"useExplicitLengthCheck": "error",
|
||||||
|
"useFilenamingConvention": {
|
||||||
|
"level": "error",
|
||||||
|
"options": { "filenameCases": ["kebab-case"] }
|
||||||
|
},
|
||||||
|
"useForOf": "error",
|
||||||
|
"useNodejsImportProtocol": "error",
|
||||||
|
"useNumberNamespace": "error",
|
||||||
|
"useThrowNewError": "error",
|
||||||
|
"useTrimStartEnd": "error"
|
||||||
|
},
|
||||||
|
"suspicious": {
|
||||||
|
"noAssignInExpressions": "error",
|
||||||
|
"noAsyncPromiseExecutor": "error",
|
||||||
|
"noCatchAssign": "error",
|
||||||
|
"noClassAssign": "error",
|
||||||
|
"noCompareNegZero": "error",
|
||||||
|
"noControlCharactersInRegex": "error",
|
||||||
|
"noDebugger": "error",
|
||||||
|
"noDocumentCookie": "error",
|
||||||
|
"noDuplicateCase": "error",
|
||||||
|
"noDuplicateClassMembers": "error",
|
||||||
|
"noDuplicateElseIf": "error",
|
||||||
|
"noDuplicateObjectKeys": "error",
|
||||||
|
"noDuplicateParameters": "error",
|
||||||
|
"noEmptyBlockStatements": "error",
|
||||||
|
"noExplicitAny": "error",
|
||||||
|
"noExtraNonNullAssertion": "error",
|
||||||
|
"noFallthroughSwitchClause": "error",
|
||||||
|
"noFunctionAssign": "error",
|
||||||
|
"noGlobalAssign": "error",
|
||||||
|
"noImportAssign": "error",
|
||||||
|
"noIrregularWhitespace": "error",
|
||||||
|
"noMisleadingCharacterClass": "error",
|
||||||
|
"noMisleadingInstantiator": "error",
|
||||||
|
"noPrototypeBuiltins": "error",
|
||||||
|
"noRedeclare": "error",
|
||||||
|
"noShadowRestrictedNames": "error",
|
||||||
|
"noSparseArray": "error",
|
||||||
|
"noThenProperty": "error",
|
||||||
|
"noUnsafeDeclarationMerging": "error",
|
||||||
|
"noUnsafeNegation": "error",
|
||||||
|
"noWith": "error",
|
||||||
|
"useErrorMessage": "error",
|
||||||
|
"useGetterReturn": "error",
|
||||||
|
"useNamespaceKeyword": "error",
|
||||||
|
"useNumberToFixedDigitsArgument": "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"includes": ["*.svelte.js", "*.svelte.ts", "**/*.svelte.js", "**/*.svelte.ts"],
|
||||||
|
"javascript": { "globals": [] }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"includes": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"],
|
||||||
|
"linter": {
|
||||||
|
"rules": {
|
||||||
|
"complexity": { "noArguments": "error" },
|
||||||
|
"correctness": {
|
||||||
|
"noConstAssign": "off",
|
||||||
|
"noGlobalObjectCalls": "off",
|
||||||
|
"noInvalidBuiltinInstantiation": "off",
|
||||||
|
"noInvalidConstructorSuper": "off",
|
||||||
|
"noSetterReturn": "off",
|
||||||
|
"noUndeclaredVariables": "off",
|
||||||
|
"noUnreachable": "off",
|
||||||
|
"noUnreachableSuper": "off"
|
||||||
|
},
|
||||||
|
"style": { "useConst": "error" },
|
||||||
|
"suspicious": {
|
||||||
|
"noClassAssign": "off",
|
||||||
|
"noDuplicateClassMembers": "off",
|
||||||
|
"noDuplicateObjectKeys": "off",
|
||||||
|
"noDuplicateParameters": "off",
|
||||||
|
"noFunctionAssign": "off",
|
||||||
|
"noImportAssign": "off",
|
||||||
|
"noRedeclare": "off",
|
||||||
|
"noUnsafeNegation": "off",
|
||||||
|
"noVar": "error",
|
||||||
|
"noWith": "off",
|
||||||
|
"useGetterReturn": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"includes": ["**", "!**/service-worker/**"],
|
||||||
|
"javascript": {
|
||||||
|
"globals": [
|
||||||
|
"onanimationend",
|
||||||
|
"exports",
|
||||||
|
"ongamepadconnected",
|
||||||
|
"onlostpointercapture",
|
||||||
|
"onanimationiteration",
|
||||||
|
"onkeyup",
|
||||||
|
"onmousedown",
|
||||||
|
"onanimationstart",
|
||||||
|
"onslotchange",
|
||||||
|
"onprogress",
|
||||||
|
"ontransitionstart",
|
||||||
|
"onpause",
|
||||||
|
"onended",
|
||||||
|
"onpointerover",
|
||||||
|
"onscrollend",
|
||||||
|
"onformdata",
|
||||||
|
"ontransitionrun",
|
||||||
|
"onanimationcancel",
|
||||||
|
"ondrag",
|
||||||
|
"onchange",
|
||||||
|
"onbeforeinstallprompt",
|
||||||
|
"onbeforexrselect",
|
||||||
|
"onmessage",
|
||||||
|
"ontransitioncancel",
|
||||||
|
"onpointerdown",
|
||||||
|
"onabort",
|
||||||
|
"onpointerout",
|
||||||
|
"oncuechange",
|
||||||
|
"ongotpointercapture",
|
||||||
|
"onscrollsnapchanging",
|
||||||
|
"onsearch",
|
||||||
|
"onsubmit",
|
||||||
|
"onstalled",
|
||||||
|
"onsuspend",
|
||||||
|
"onreset",
|
||||||
|
"onerror",
|
||||||
|
"onmouseenter",
|
||||||
|
"ongamepaddisconnected",
|
||||||
|
"onresize",
|
||||||
|
"ondragover",
|
||||||
|
"onbeforetoggle",
|
||||||
|
"onmouseover",
|
||||||
|
"onpagehide",
|
||||||
|
"onmousemove",
|
||||||
|
"onratechange",
|
||||||
|
"oncommand",
|
||||||
|
"onmessageerror",
|
||||||
|
"onwheel",
|
||||||
|
"ondevicemotion",
|
||||||
|
"onauxclick",
|
||||||
|
"ontransitionend",
|
||||||
|
"onpaste",
|
||||||
|
"onpageswap",
|
||||||
|
"ononline",
|
||||||
|
"ondeviceorientationabsolute",
|
||||||
|
"onkeydown",
|
||||||
|
"onclose",
|
||||||
|
"onselect",
|
||||||
|
"onpageshow",
|
||||||
|
"onpointercancel",
|
||||||
|
"onbeforematch",
|
||||||
|
"onpointerrawupdate",
|
||||||
|
"ondragleave",
|
||||||
|
"onscrollsnapchange",
|
||||||
|
"onseeked",
|
||||||
|
"onwaiting",
|
||||||
|
"onbeforeunload",
|
||||||
|
"onplaying",
|
||||||
|
"onvolumechange",
|
||||||
|
"ondragend",
|
||||||
|
"onstorage",
|
||||||
|
"onloadeddata",
|
||||||
|
"onfocus",
|
||||||
|
"onoffline",
|
||||||
|
"onplay",
|
||||||
|
"onafterprint",
|
||||||
|
"onclick",
|
||||||
|
"oncut",
|
||||||
|
"onmouseout",
|
||||||
|
"ondblclick",
|
||||||
|
"oncanplay",
|
||||||
|
"onloadstart",
|
||||||
|
"onappinstalled",
|
||||||
|
"onpointermove",
|
||||||
|
"ontoggle",
|
||||||
|
"oncontextmenu",
|
||||||
|
"NodeJS",
|
||||||
|
"onblur",
|
||||||
|
"oncancel",
|
||||||
|
"onbeforeprint",
|
||||||
|
"oncontextrestored",
|
||||||
|
"onloadedmetadata",
|
||||||
|
"onpointerup",
|
||||||
|
"onlanguagechange",
|
||||||
|
"oncopy",
|
||||||
|
"onselectstart",
|
||||||
|
"onscroll",
|
||||||
|
"onload",
|
||||||
|
"ondragstart",
|
||||||
|
"onbeforeinput",
|
||||||
|
"oncanplaythrough",
|
||||||
|
"oninput",
|
||||||
|
"oninvalid",
|
||||||
|
"ontimeupdate",
|
||||||
|
"ondurationchange",
|
||||||
|
"onselectionchange",
|
||||||
|
"onmouseup",
|
||||||
|
"location",
|
||||||
|
"onkeypress",
|
||||||
|
"onpointerleave",
|
||||||
|
"oncontextlost",
|
||||||
|
"ondrop",
|
||||||
|
"onsecuritypolicyviolation",
|
||||||
|
"oncontentvisibilityautostatechange",
|
||||||
|
"ondeviceorientation",
|
||||||
|
"onseeking",
|
||||||
|
"onrejectionhandled",
|
||||||
|
"onunload",
|
||||||
|
"onmouseleave",
|
||||||
|
"onhashchange",
|
||||||
|
"onpointerenter",
|
||||||
|
"onmousewheel",
|
||||||
|
"onunhandledrejection",
|
||||||
|
"ondragenter",
|
||||||
|
"onpopstate",
|
||||||
|
"onpagereveal",
|
||||||
|
"onemptied"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"linter": {
|
||||||
|
"rules": {
|
||||||
|
"correctness": { "noUnusedVariables": "warn" },
|
||||||
|
"style": {
|
||||||
|
"useBlockStatements": "error",
|
||||||
|
"useFilenamingConvention": {
|
||||||
|
"level": "off",
|
||||||
|
"options": { "filenameCases": ["kebab-case"] }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"suspicious": { "useAwait": "error" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"includes": ["*.svelte", "**/*.svelte"],
|
||||||
|
"javascript": { "globals": [] },
|
||||||
|
"linter": {
|
||||||
|
"rules": {
|
||||||
|
"correctness": {
|
||||||
|
"noInnerDeclarations": "off",
|
||||||
|
"noSelfAssign": "off",
|
||||||
|
"noUnusedImports": "off",
|
||||||
|
"noUnusedVariables": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcs": { "clientKind": "git", "enabled": false, "useIgnoreFile": false }
|
||||||
|
}
|
||||||
324
web/package-lock.json
generated
324
web/package-lock.json
generated
@@ -39,6 +39,7 @@
|
|||||||
"thumbhash": "^0.1.1"
|
"thumbhash": "^0.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@biomejs/biome": "2.0.0-beta.6",
|
||||||
"@eslint/eslintrc": "^3.1.0",
|
"@eslint/eslintrc": "^3.1.0",
|
||||||
"@eslint/js": "^9.18.0",
|
"@eslint/js": "^9.18.0",
|
||||||
"@faker-js/faker": "^9.3.0",
|
"@faker-js/faker": "^9.3.0",
|
||||||
@@ -63,10 +64,12 @@
|
|||||||
"eslint": "^9.18.0",
|
"eslint": "^9.18.0",
|
||||||
"eslint-config-prettier": "^10.0.0",
|
"eslint-config-prettier": "^10.0.0",
|
||||||
"eslint-p": "^0.23.0",
|
"eslint-p": "^0.23.0",
|
||||||
|
"eslint-plugin-oxlint": "^1.1.0",
|
||||||
"eslint-plugin-svelte": "^3.9.0",
|
"eslint-plugin-svelte": "^3.9.0",
|
||||||
"eslint-plugin-unicorn": "^59.0.0",
|
"eslint-plugin-unicorn": "^59.0.0",
|
||||||
"factory.ts": "^1.4.1",
|
"factory.ts": "^1.4.1",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.0.0",
|
||||||
|
"oxlint": "^1.1.0",
|
||||||
"prettier": "^3.4.2",
|
"prettier": "^3.4.2",
|
||||||
"prettier-plugin-organize-imports": "^4.0.0",
|
"prettier-plugin-organize-imports": "^4.0.0",
|
||||||
"prettier-plugin-sort-json": "^4.1.1",
|
"prettier-plugin-sort-json": "^4.1.1",
|
||||||
@@ -90,7 +93,7 @@
|
|||||||
"@oazapfts/runtime": "^1.0.2"
|
"@oazapfts/runtime": "^1.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.15.21",
|
"@types/node": "^22.15.29",
|
||||||
"typescript": "^5.3.3"
|
"typescript": "^5.3.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -202,6 +205,169 @@
|
|||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@biomejs/biome": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-14vw9b5QJxrcP7WLkCeRiB/fft9wNZwx6yEiikBDxFbN7IAp39Xtvt/gJPq4ifhZ5IS25CnQEAkLLwfBIDMjsA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"bin": {
|
||||||
|
"biome": "bin/biome"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/biome"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@biomejs/cli-darwin-arm64": "2.0.0-beta.6",
|
||||||
|
"@biomejs/cli-darwin-x64": "2.0.0-beta.6",
|
||||||
|
"@biomejs/cli-linux-arm64": "2.0.0-beta.6",
|
||||||
|
"@biomejs/cli-linux-arm64-musl": "2.0.0-beta.6",
|
||||||
|
"@biomejs/cli-linux-x64": "2.0.0-beta.6",
|
||||||
|
"@biomejs/cli-linux-x64-musl": "2.0.0-beta.6",
|
||||||
|
"@biomejs/cli-win32-arm64": "2.0.0-beta.6",
|
||||||
|
"@biomejs/cli-win32-x64": "2.0.0-beta.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@biomejs/cli-darwin-arm64": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-L7PBLJlGTz5anougOMJQvEbzgG9sT1wKIXvgjFhu0dIsDZ/px2caWFCnv7Q9L2K0+yF08EYRTTZVvoVO5D//sQ==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@biomejs/cli-darwin-x64": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-ekhOOyhcVJ1ZRqHjq+eUOv8/3XMRKQ9Qf0URuO/PvHgopejv+PEoix0RIyxholYELKc049M4J3IJgsX4q2pZzw==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@biomejs/cli-linux-arm64": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-pu+rCLI36ziPtwnJY53HRr154711uVeCt1i2KNXehvwNZZMK141wwg4yPkXkBdBvw7H7sez0HE/rCQR2fByJnQ==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@biomejs/cli-linux-arm64-musl": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-70WOWJI1/vZ97OUAt6r9HpiP5+vlL7yAdIoVQzVLjQy1TArfltN38KKqp9fnhgX173liUh0gry//MrWkKHYrIQ==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@biomejs/cli-linux-x64": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-emqZAuAyRw4Ug4B+CTgozIxVg1QLol28oZyIWuIjWEDr7eOo6Ek9zSZGeusmbwIEPu6r6qon8JAV6OdukxEwIg==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@biomejs/cli-linux-x64-musl": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-G9ZIoaNs6q9+mOoMURoXvNRfCOs28jrS4R8+3/y0h9ttOXpd4VALPOAfjzBGPpMd/4RoEMHXw/1Ts4dKvrv9zw==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@biomejs/cli-win32-arm64": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-JijYVZC6R5qq94yLaElowLLzbZ4xR2qDiOVPQV8H1+ru3IqVOjQu5f/lIt4uuea1iRFbxS+mOaxOZM9tUl1pTQ==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@biomejs/cli-win32-x64": {
|
||||||
|
"version": "2.0.0-beta.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.0.0-beta.6.tgz",
|
||||||
|
"integrity": "sha512-zs29t/nxon11dKV+ckQB1yUOmhYx17e2+cHGK8PCVamqVGSMbjrd5evjtlfbnVJXP0ar7nNKhcg4ZWYGJ6aR1w==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT OR Apache-2.0",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.21.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@emnapi/runtime": {
|
"node_modules/@emnapi/runtime": {
|
||||||
"version": "1.4.3",
|
"version": "1.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
|
||||||
@@ -1735,6 +1901,118 @@
|
|||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@oxlint/darwin-arm64": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-sSnR3SOxIU/QfaqXrcQ0UVUkzJO0bcInQ7dMhHa102gVAgWjp1fBeMVCM0adEY0UNmEXrRkgD/rQtQgn9YAU+w==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@oxlint/darwin-x64": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@oxlint/darwin-x64/-/darwin-x64-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-Jvd3fHnzY2OYbmsg9NSGPoBkGViDGHSFnBKyJQ9LOIw7lxAyQBG2Quxc3GYPFR/f9OYho9C3p4+dIaAJfKhnsw==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@oxlint/linux-arm64-gnu": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-gnu/-/linux-arm64-gnu-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-MgW4iskOdXuoR+wDXIJUfbdnTg2eo2FnQRaD6ZqhnDTDa7LnV+06rp/Cg3aGj2X9jSEcKDv/bMbYQuot7WRs6Q==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@oxlint/linux-arm64-musl": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-musl/-/linux-arm64-musl-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-a+pkEKmDRdrW+y0gtZ/m68ElVW2VZgATGbMxDgDYFpdiMx9Y0pUPwTMZ2EX/17Aslop4c1BiDSFDK7aEBxKR2g==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@oxlint/linux-x64-gnu": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-wNBsXCKVZMvUTcFitrV1wTsdhUAv8l+XQxHxciZ2SO6dpNnWEb2YCxSAIOXeyzBLdO4pIODYcSy38CvGue7TwA==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@oxlint/linux-x64-musl": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-pZD0lt6A5j2Wp70fgIYk4GoPfKTZ8mHWamWIpKFT7aSkFkiOi6nhLWDFvMEIHWRTK3LgkWUNcnWPp4brvin4wQ==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@oxlint/win32-arm64": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-rT6uXQvE80+B+L04HJf30uF26426FPI9i9DAY2AxBUhrpNwhqkDEhQdd9ilFWVC7SSbpHgAs50lo+ImSAAkHPQ==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@oxlint/win32-x64": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-x6r5yvM3wEty93Bx0NuNK+kutUyS/K55itkUrxdExoK6GcmVDboGGuhju9HyU2cM/IWLEWO8RHcXSyaxr9GR5g==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
]
|
||||||
|
},
|
||||||
"node_modules/@photo-sphere-viewer/core": {
|
"node_modules/@photo-sphere-viewer/core": {
|
||||||
"version": "5.13.2",
|
"version": "5.13.2",
|
||||||
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/core/-/core-5.13.2.tgz",
|
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/core/-/core-5.13.2.tgz",
|
||||||
@@ -4717,6 +4995,16 @@
|
|||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/eslint-plugin-oxlint": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/eslint-plugin-oxlint/-/eslint-plugin-oxlint-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-spDWxcsAfoUDjSwxPrP2gfuOJ2Hrv8faqQ5Vkm90lURp4no5aWJQ09xRKmZroIPTuQCKYgG9nvnakdIbXGlijg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"jsonc-parser": "^3.3.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/eslint-plugin-svelte": {
|
"node_modules/eslint-plugin-svelte": {
|
||||||
"version": "3.9.0",
|
"version": "3.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.9.0.tgz",
|
||||||
@@ -6142,6 +6430,13 @@
|
|||||||
"integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==",
|
"integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/jsonc-parser": {
|
||||||
|
"version": "3.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
|
||||||
|
"integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/just-compare": {
|
"node_modules/just-compare": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz",
|
||||||
@@ -7132,6 +7427,33 @@
|
|||||||
"node": ">= 0.8.0"
|
"node": ">= 0.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/oxlint": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-OVNpaoaQCUHHhCv5sYMPJ7Ts5k7ziw0QteH1gBSwF3elf/8GAew2Uh/0S7HsU1iGtjhlFy80+A8nwIb3Tq6m1w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"oxc_language_server": "bin/oxc_language_server",
|
||||||
|
"oxlint": "bin/oxlint"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.*"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/Boshen"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@oxlint/darwin-arm64": "1.1.0",
|
||||||
|
"@oxlint/darwin-x64": "1.1.0",
|
||||||
|
"@oxlint/linux-arm64-gnu": "1.1.0",
|
||||||
|
"@oxlint/linux-arm64-musl": "1.1.0",
|
||||||
|
"@oxlint/linux-x64-gnu": "1.1.0",
|
||||||
|
"@oxlint/linux-x64-musl": "1.1.0",
|
||||||
|
"@oxlint/win32-arm64": "1.1.0",
|
||||||
|
"@oxlint/win32-x64": "1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/p-limit": {
|
"node_modules/p-limit": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
"check:code": "npm run format && npm run lint:p && npm run check:svelte && npm run check:typescript",
|
"check:code": "npm run format && npm run lint:p && npm run check:svelte && npm run check:typescript",
|
||||||
"check:all": "npm run check:code && npm run test:cov",
|
"check:all": "npm run check:code && npm run test:cov",
|
||||||
"lint": "eslint . --max-warnings 0",
|
"lint": "eslint . --max-warnings 0",
|
||||||
|
"lint:ox": "oxlint .",
|
||||||
|
"lint:ox-full": "npm run lint:ox && npm run lint:p",
|
||||||
"lint:p": "eslint-p . --max-warnings 0 --concurrency=4",
|
"lint:p": "eslint-p . --max-warnings 0 --concurrency=4",
|
||||||
"lint:fix": "npm run lint -- --fix",
|
"lint:fix": "npm run lint -- --fix",
|
||||||
"format": "prettier --check .",
|
"format": "prettier --check .",
|
||||||
@@ -56,6 +58,7 @@
|
|||||||
"thumbhash": "^0.1.1"
|
"thumbhash": "^0.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@biomejs/biome": "2.0.0-beta.6",
|
||||||
"@eslint/eslintrc": "^3.1.0",
|
"@eslint/eslintrc": "^3.1.0",
|
||||||
"@eslint/js": "^9.18.0",
|
"@eslint/js": "^9.18.0",
|
||||||
"@faker-js/faker": "^9.3.0",
|
"@faker-js/faker": "^9.3.0",
|
||||||
@@ -80,10 +83,12 @@
|
|||||||
"eslint": "^9.18.0",
|
"eslint": "^9.18.0",
|
||||||
"eslint-config-prettier": "^10.0.0",
|
"eslint-config-prettier": "^10.0.0",
|
||||||
"eslint-p": "^0.23.0",
|
"eslint-p": "^0.23.0",
|
||||||
|
"eslint-plugin-oxlint": "^1.1.0",
|
||||||
"eslint-plugin-svelte": "^3.9.0",
|
"eslint-plugin-svelte": "^3.9.0",
|
||||||
"eslint-plugin-unicorn": "^59.0.0",
|
"eslint-plugin-unicorn": "^59.0.0",
|
||||||
"factory.ts": "^1.4.1",
|
"factory.ts": "^1.4.1",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.0.0",
|
||||||
|
"oxlint": "^1.1.0",
|
||||||
"prettier": "^3.4.2",
|
"prettier": "^3.4.2",
|
||||||
"prettier-plugin-organize-imports": "^4.0.0",
|
"prettier-plugin-organize-imports": "^4.0.0",
|
||||||
"prettier-plugin-sort-json": "^4.1.1",
|
"prettier-plugin-sort-json": "^4.1.1",
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
import LoadingSpinner from '$lib/components/shared-components/loading-spinner.svelte';
|
import LoadingSpinner from '$lib/components/shared-components/loading-spinner.svelte';
|
||||||
import SettingAccordion from '$lib/components/shared-components/settings/setting-accordion.svelte';
|
import SettingAccordion from '$lib/components/shared-components/settings/setting-accordion.svelte';
|
||||||
import SettingTextarea from '$lib/components/shared-components/settings/setting-textarea.svelte';
|
import SettingTextarea from '$lib/components/shared-components/settings/setting-textarea.svelte';
|
||||||
import { modalManager } from '$lib/managers/modal-manager.svelte';
|
|
||||||
import EmailTemplatePreviewModal from '$lib/modals/EmailTemplatePreviewModal.svelte';
|
import EmailTemplatePreviewModal from '$lib/modals/EmailTemplatePreviewModal.svelte';
|
||||||
import { handleError } from '$lib/utils/handle-error';
|
import { handleError } from '$lib/utils/handle-error';
|
||||||
import { type SystemConfigDto, type SystemConfigTemplateEmailsDto, getNotificationTemplateAdmin } from '@immich/sdk';
|
import { type SystemConfigDto, type SystemConfigTemplateEmailsDto, getNotificationTemplateAdmin } from '@immich/sdk';
|
||||||
@@ -22,11 +21,13 @@
|
|||||||
|
|
||||||
let loadingPreview = $state(false);
|
let loadingPreview = $state(false);
|
||||||
|
|
||||||
|
const myCoolVariable = 'hello!';
|
||||||
|
|
||||||
const getTemplate = async (name: string, template: string) => {
|
const getTemplate = async (name: string, template: string) => {
|
||||||
try {
|
try {
|
||||||
loadingPreview = true;
|
loadingPreview = true;
|
||||||
const { html } = await getNotificationTemplateAdmin({ name, templateDto: { template } });
|
const { html } = await getNotificationTemplateAdmin({ name, templateDto: { template } });
|
||||||
await modalManager.show(EmailTemplatePreviewModal, { html });
|
modalManger.show(EmailTemplatePreviewModal, { html });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
handleError(error, 'Could not load template.');
|
handleError(error, 'Could not load template.');
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user