mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-01 17:50:50 +08:00
chore: disable rules in oxlint (#9154)
This commit is contained in:
+105
-140
@@ -1,63 +1,5 @@
|
||||
const { join } = require('node:path');
|
||||
|
||||
const createPattern = packageName => [
|
||||
{
|
||||
group: ['**/dist', '**/dist/**'],
|
||||
message: 'Do not import from dist',
|
||||
allowTypeImports: false,
|
||||
},
|
||||
{
|
||||
group: ['**/src', '**/src/**'],
|
||||
message: 'Do not import from src',
|
||||
allowTypeImports: false,
|
||||
},
|
||||
{
|
||||
group: [`@affine/${packageName}`],
|
||||
message: 'Do not import package itself',
|
||||
allowTypeImports: false,
|
||||
},
|
||||
{
|
||||
group: [`@toeverything/${packageName}`],
|
||||
message: 'Do not import package itself',
|
||||
allowTypeImports: false,
|
||||
},
|
||||
{
|
||||
group: ['@blocksuite/store'],
|
||||
message: "Import from '@blocksuite/global/utils'",
|
||||
importNames: ['assertExists', 'assertEquals'],
|
||||
},
|
||||
{
|
||||
group: ['react-router-dom'],
|
||||
message: 'Use `useNavigateHelper` instead',
|
||||
importNames: ['useNavigate'],
|
||||
},
|
||||
{
|
||||
group: ['@affine/env/constant'],
|
||||
message:
|
||||
'Do not import from @affine/env/constant. Use `BUILD_CONFIG.isElectron` instead',
|
||||
importNames: ['isElectron'],
|
||||
},
|
||||
];
|
||||
|
||||
const allPackages = [
|
||||
'packages/backend/server',
|
||||
'packages/frontend/component',
|
||||
'packages/frontend/core',
|
||||
'packages/frontend/apps/electron',
|
||||
'packages/frontend/apps/web',
|
||||
'packages/frontend/apps/mobile',
|
||||
'packages/frontend/graphql',
|
||||
'packages/frontend/i18n',
|
||||
'packages/frontend/native',
|
||||
'packages/frontend/templates',
|
||||
'packages/frontend/track',
|
||||
'packages/common/debug',
|
||||
'packages/common/env',
|
||||
'packages/common/infra',
|
||||
'packages/common/nbstore',
|
||||
'tools/cli',
|
||||
];
|
||||
|
||||
/**
|
||||
* @type {import('eslint').Linter.Config}
|
||||
*/
|
||||
@@ -93,54 +35,116 @@ const config = {
|
||||
plugins: [
|
||||
'react',
|
||||
'@typescript-eslint',
|
||||
'simple-import-sort',
|
||||
'sonarjs',
|
||||
'import-x',
|
||||
'unused-imports',
|
||||
'unicorn',
|
||||
'rxjs',
|
||||
'unicorn',
|
||||
],
|
||||
rules: {
|
||||
'array-callback-return': 'error',
|
||||
'no-undef': 'off',
|
||||
// enabled in oxlint
|
||||
'array-callback-return': 'off',
|
||||
'constructor-super': 'off',
|
||||
eqeqeq: 'off',
|
||||
'getter-return': 'off',
|
||||
'for-direction': 'off',
|
||||
'require-yield': 'off',
|
||||
'use-isnan': 'off',
|
||||
'valid-typeof': 'off',
|
||||
'no-self-compare': 'off',
|
||||
'no-empty': 'off',
|
||||
'no-constant-binary-expression': 'off',
|
||||
'no-constructor-return': 'off',
|
||||
'no-func-assign': 'off',
|
||||
'no-global-assign': 'off',
|
||||
'no-ex-assign': 'off',
|
||||
'no-fallthrough': 'off',
|
||||
'no-irregular-whitespace': 'off',
|
||||
'no-control-regex': 'off',
|
||||
'no-with': 'off',
|
||||
'no-debugger': 'off',
|
||||
'no-const-assign': 'off',
|
||||
'no-import-assign': 'off',
|
||||
'no-setter-return': 'off',
|
||||
'no-obj-calls': 'off',
|
||||
'no-unsafe-negation': 'off',
|
||||
'no-dupe-class-members': 'off',
|
||||
'no-dupe-keys': 'off',
|
||||
'no-this-before-super': 'off',
|
||||
'no-empty-character-class': 'off',
|
||||
'no-useless-catch': 'off',
|
||||
'no-async-promise-executor': 'off',
|
||||
'no-unreachable': 'off',
|
||||
'no-duplicate-case': 'off',
|
||||
'no-empty-pattern': 'off',
|
||||
'no-unused-labels': 'off',
|
||||
'no-sparse-arrays': 'off',
|
||||
'no-delete-var': 'off',
|
||||
'no-compare-neg-zero': 'off',
|
||||
'no-redeclare': 'off',
|
||||
'no-case-declarations': 'off',
|
||||
'no-class-assign': 'off',
|
||||
'no-var': 'off',
|
||||
'no-self-assign': 'off',
|
||||
'no-inner-declarations': 'off',
|
||||
'no-dupe-else-if': 'off',
|
||||
'no-invalid-regexp': 'off',
|
||||
'no-unsafe-finally': 'off',
|
||||
'no-prototype-builtins': 'off',
|
||||
'no-shadow-restricted-names': 'off',
|
||||
'no-nonoctal-decimal-escape': 'off',
|
||||
'no-constant-condition': 'off',
|
||||
'no-useless-escape': 'off',
|
||||
'no-unsafe-optional-chaining': 'off',
|
||||
'no-extra-boolean-cast': 'off',
|
||||
'no-regex-spaces': 'off',
|
||||
'react/jsx-no-useless-fragment': 'off',
|
||||
'react/no-unknown-property': 'off',
|
||||
'react/no-string-refs': 'off',
|
||||
'react/no-direct-mutation-state': 'off',
|
||||
'react/require-render-return': 'off',
|
||||
'react/jsx-no-undef': 'off',
|
||||
'react/jsx-no-duplicate-props': 'off',
|
||||
'react/jsx-key': 'off',
|
||||
'react/no-danger-with-children': 'off',
|
||||
'react/no-unescaped-entities': 'off',
|
||||
'react/no-is-mounted': 'off',
|
||||
'react/no-find-dom-node': 'off',
|
||||
'react/no-children-prop': 'off',
|
||||
'react/no-render-return-value': 'off',
|
||||
'react/jsx-no-target-blank': 'off',
|
||||
'react/jsx-no-comment-textnodes': 'off',
|
||||
'sonarjs/no-useless-catch': 'off',
|
||||
'@typescript-eslint/consistent-type-imports': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||
'@typescript-eslint/no-loss-of-precision': 'off',
|
||||
'@typescript-eslint/ban-ts-comment': 'off',
|
||||
'@typescript-eslint/triple-slash-reference': 'off',
|
||||
'@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
|
||||
'@typescript-eslint/no-duplicate-enum-values': 'off',
|
||||
'@typescript-eslint/no-extra-non-null-assertion': 'off',
|
||||
'@typescript-eslint/no-misused-new': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/no-unsafe-declaration-merging': 'off',
|
||||
'@typescript-eslint/no-this-alias': 'off',
|
||||
'@typescript-eslint/prefer-as-const': 'off',
|
||||
'@typescript-eslint/no-var-requires': 'off',
|
||||
'@typescript-eslint/no-namespace': 'off',
|
||||
'@typescript-eslint/no-unnecessary-type-constraint': 'off',
|
||||
'@typescript-eslint/no-array-constructor': 'off',
|
||||
'@typescript-eslint/ban-types': 'off',
|
||||
// enable in typescript-eslint
|
||||
'no-undef': 'off',
|
||||
'no-cond-assign': 'off',
|
||||
'no-constant-binary-expression': 'error',
|
||||
'no-constructor-return': 'error',
|
||||
'no-self-compare': 'error',
|
||||
eqeqeq: ['error', 'always', { null: 'ignore' }],
|
||||
'react/prop-types': 'off',
|
||||
'react/jsx-no-useless-fragment': 'error',
|
||||
'@typescript-eslint/consistent-type-imports': 'error',
|
||||
'@typescript-eslint/no-non-null-assertion': 'error',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/no-empty-function': 'off',
|
||||
'@typescript-eslint/await-thenable': 'error',
|
||||
'@typescript-eslint/require-array-sort-compare': 'error',
|
||||
'@typescript-eslint/unified-signatures': 'error',
|
||||
'@typescript-eslint/prefer-for-of': 'error',
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'error',
|
||||
{
|
||||
varsIgnorePattern: '^_',
|
||||
argsIgnorePattern: '^_',
|
||||
caughtErrorsIgnorePattern: '^_',
|
||||
},
|
||||
],
|
||||
'unused-imports/no-unused-imports': 'error',
|
||||
'simple-import-sort/imports': 'error',
|
||||
'simple-import-sort/exports': 'error',
|
||||
'import-x/no-duplicates': 'error',
|
||||
'@typescript-eslint/ban-ts-comment': [
|
||||
'error',
|
||||
{
|
||||
'ts-expect-error': 'allow-with-description',
|
||||
'ts-ignore': true,
|
||||
'ts-nocheck': true,
|
||||
'ts-check': false,
|
||||
},
|
||||
],
|
||||
'@typescript-eslint/no-restricted-imports': [
|
||||
'error',
|
||||
{
|
||||
@@ -163,26 +167,7 @@ const config = {
|
||||
],
|
||||
},
|
||||
],
|
||||
'unicorn/filename-case': [
|
||||
'error',
|
||||
{
|
||||
case: 'kebabCase',
|
||||
ignore: ['^\\[[a-zA-Z0-9-_]+\\]\\.tsx$'],
|
||||
},
|
||||
],
|
||||
'unicorn/no-unnecessary-await': 'error',
|
||||
'unicorn/no-useless-fallback-in-spread': 'error',
|
||||
'unicorn/prefer-dom-node-dataset': 'error',
|
||||
'unicorn/prefer-dom-node-append': 'error',
|
||||
'unicorn/prefer-dom-node-remove': 'error',
|
||||
'unicorn/prefer-array-some': 'error',
|
||||
'unicorn/prefer-date-now': 'error',
|
||||
'unicorn/prefer-blob-reading-methods': 'error',
|
||||
'unicorn/no-typeof-undefined': 'error',
|
||||
'unicorn/no-useless-promise-resolve-reject': 'error',
|
||||
'unicorn/no-new-array': 'error',
|
||||
'unicorn/new-for-builtins': 'error',
|
||||
'unicorn/prefer-node-protocol': 'error',
|
||||
|
||||
'sonarjs/no-all-duplicated-branches': 'error',
|
||||
'sonarjs/no-element-overwrite': 'error',
|
||||
'sonarjs/no-empty-collection': 'error',
|
||||
@@ -197,7 +182,6 @@ const config = {
|
||||
'sonarjs/no-same-line-conditional': 'error',
|
||||
'sonarjs/no-duplicated-branches': 'error',
|
||||
'sonarjs/no-collection-size-mischeck': 'error',
|
||||
'sonarjs/no-useless-catch': 'error',
|
||||
'sonarjs/no-identical-functions': 'error',
|
||||
'rxjs/finnish': [
|
||||
'error',
|
||||
@@ -217,26 +201,11 @@ const config = {
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: 'packages/backend/server/**/*.ts',
|
||||
files: [
|
||||
`packages/**/*.{ts,tsx,js,mjs}`,
|
||||
'tools/cli/**/*.{ts,tsx,js,mjs}',
|
||||
],
|
||||
rules: {
|
||||
'@typescript-eslint/consistent-type-imports': 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: '*.cjs',
|
||||
rules: {
|
||||
'@typescript-eslint/no-var-requires': 0,
|
||||
},
|
||||
},
|
||||
...allPackages.map(pkg => ({
|
||||
files: [`${pkg}/src/**/*.ts`, `${pkg}/src/**/*.tsx`, `${pkg}/**/*.mjs`],
|
||||
rules: {
|
||||
'@typescript-eslint/no-restricted-imports': [
|
||||
'error',
|
||||
{
|
||||
patterns: createPattern(pkg),
|
||||
},
|
||||
],
|
||||
'@typescript-eslint/no-floating-promises': [
|
||||
'error',
|
||||
{
|
||||
@@ -255,7 +224,7 @@ const config = {
|
||||
},
|
||||
],
|
||||
},
|
||||
})),
|
||||
},
|
||||
{
|
||||
files: [
|
||||
'**/__tests__/**/*',
|
||||
@@ -268,21 +237,17 @@ const config = {
|
||||
'**/e2e/**/*',
|
||||
],
|
||||
rules: {
|
||||
'@typescript-eslint/no-non-null-assertion': 0,
|
||||
'@typescript-eslint/ban-ts-comment': [
|
||||
'error',
|
||||
{
|
||||
'ts-expect-error': false,
|
||||
'ts-ignore': true,
|
||||
'ts-nocheck': true,
|
||||
'ts-check': false,
|
||||
},
|
||||
],
|
||||
'@typescript-eslint/no-floating-promises': 0,
|
||||
'@typescript-eslint/no-misused-promises': 0,
|
||||
'@typescript-eslint/no-restricted-imports': 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['packages/frontend/apps/electron/scripts/**/*'],
|
||||
rules: {
|
||||
'import-x/no-extraneous-dependencies': 'off',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
|
||||
+157
-3
@@ -5,21 +5,150 @@
|
||||
"correctness": "error",
|
||||
"perf": "error"
|
||||
},
|
||||
"ignorePatterns": ["tools/cli/src/webpack/error-handler.js"],
|
||||
"rules": {
|
||||
// allow
|
||||
"import/named": "allow",
|
||||
"no-await-in-loop": "allow",
|
||||
"promise/no-callback-in-promise": "allow",
|
||||
// deny
|
||||
|
||||
"array-callback-return": "error",
|
||||
"constructor-super": "error",
|
||||
"eqeqeq": ["error", "smart"],
|
||||
"getter-return": "error",
|
||||
"for-direction": "error",
|
||||
"require-yield": "error",
|
||||
"use-isnan": "error",
|
||||
"valid-typeof": "error",
|
||||
"no-empty-character-class": "error",
|
||||
"no-self-compare": "error",
|
||||
"no-empty": [
|
||||
"error",
|
||||
{
|
||||
"allowEmptyCatch": true
|
||||
}
|
||||
],
|
||||
"no-constant-binary-expression": "error",
|
||||
"no-constructor-return": "error",
|
||||
"no-func-assign": "error",
|
||||
"no-global-assign": "error",
|
||||
"no-unused-vars": "error",
|
||||
"no-ex-assign": "error",
|
||||
"no-loss-of-precision": "error",
|
||||
"no-fallthrough": "error",
|
||||
"no-nonoctal-decimal-escape": "error",
|
||||
"no-irregular-whitespace": "error",
|
||||
"no-control-regex": "error",
|
||||
"no-with": "error",
|
||||
"no-debugger": "error",
|
||||
"no-const-assign": "error",
|
||||
"no-setter-return": "error",
|
||||
"no-obj-calls": "error",
|
||||
"no-unsafe-negation": "error",
|
||||
"no-dupe-class-members": "error",
|
||||
"no-dupe-keys": "error",
|
||||
"no-this-before-super": "error",
|
||||
"no-useless-catch": "error",
|
||||
"no-async-promise-executor": "error",
|
||||
"no-unreachable": "error",
|
||||
"no-duplicate-case": "error",
|
||||
"no-empty-pattern": "error",
|
||||
"no-unused-labels": "error",
|
||||
"no-sparse-arrays": "error",
|
||||
"no-delete-var": "error",
|
||||
"no-compare-neg-zero": "error",
|
||||
"no-redeclare": "error",
|
||||
"no-case-declarations": "error",
|
||||
"no-class-assign": "error",
|
||||
"no-var": "error",
|
||||
"no-self-assign": "error",
|
||||
"no-inner-declarations": "error",
|
||||
"no-dupe-else-if": "error",
|
||||
"no-invalid-regexp": "error",
|
||||
"no-unsafe-finally": "error",
|
||||
"no-prototype-builtins": "error",
|
||||
"no-array-constructor": "error",
|
||||
"no-shadow-restricted-names": "error",
|
||||
"no-constant-condition": "error",
|
||||
"no-useless-escape": "error",
|
||||
"no-unsafe-optional-chaining": "error",
|
||||
"no-extra-boolean-cast": "error",
|
||||
"no-regex-spaces": "error",
|
||||
"react/jsx-no-useless-fragment": "error",
|
||||
"react/jsx-no-undef": "error",
|
||||
"react/no-direct-mutation-state": "error",
|
||||
"react/no-string-refs": "error",
|
||||
"react/no-unknown-property": "error",
|
||||
"react/no-danger-with-children": "error",
|
||||
"react/no-unescaped-entities": "error",
|
||||
"react/require-render-return": "error",
|
||||
"react/jsx-no-duplicate-props": "error",
|
||||
"react/jsx-key": "error",
|
||||
"react/no-is-mounted": "error",
|
||||
"react/no-find-dom-node": "error",
|
||||
"react/no-children-prop": "error",
|
||||
"react/no-render-return-value": "error",
|
||||
"react/jsx-no-target-blank": "error",
|
||||
"react/jsx-no-comment-textnodes": "error",
|
||||
"typescript/consistent-type-imports": "error",
|
||||
"typescript/no-non-null-assertion": "error",
|
||||
"typescript/triple-slash-reference": "error",
|
||||
"typescript/no-non-null-asserted-optional-chain": "error",
|
||||
"typescript/no-duplicate-enum-values": "error",
|
||||
"typescript/no-extra-non-null-assertion": "error",
|
||||
"typescript/no-misused-new": "error",
|
||||
"typescript/prefer-for-of": "error",
|
||||
"typescript/no-unsafe-declaration-merging": "error",
|
||||
"typescript/no-unnecessary-type-constraint": "error",
|
||||
"typescript/ban-types": "error",
|
||||
"typescript/no-this-alias": [
|
||||
"error",
|
||||
{
|
||||
"allow_destructuring": true
|
||||
}
|
||||
],
|
||||
"typescript/prefer-as-const": "error",
|
||||
"typescript/no-var-requires": "error",
|
||||
"typescript/no-namespace": "error",
|
||||
"typescript/ban-ts-comment": [
|
||||
"error",
|
||||
{
|
||||
"ts-expect-error": "allow-with-description",
|
||||
"ts-ignore": true,
|
||||
"ts-nocheck": true,
|
||||
"ts-check": false
|
||||
}
|
||||
],
|
||||
"unicorn/prefer-array-some": "error",
|
||||
"unicorn/no-useless-promise-resolve-reject": "error",
|
||||
"unicorn/no-unnecessary-await": "error",
|
||||
"unicorn/no-useless-fallback-in-spread": "error",
|
||||
"unicorn/filename-case": [
|
||||
"error",
|
||||
{
|
||||
"case": "kebabCase"
|
||||
}
|
||||
],
|
||||
"unicorn/prefer-dom-node-dataset": "error",
|
||||
"unicorn/prefer-dom-node-append": "error",
|
||||
"unicorn/prefer-dom-node-remove": "error",
|
||||
"unicorn/prefer-date-now": "error",
|
||||
"unicorn/prefer-blob-reading-methods": "error",
|
||||
"unicorn/no-typeof-undefined": "error",
|
||||
"unicorn/no-new-array": "error",
|
||||
"unicorn/new-for-builtins": "error",
|
||||
"unicorn/prefer-node-protocol": "error",
|
||||
"import/no-cycle": [
|
||||
"error",
|
||||
{
|
||||
"ignoreTypes": true
|
||||
}
|
||||
],
|
||||
"import/namespace": "off"
|
||||
"import/sort-imports": "error",
|
||||
"import/namespace": "off",
|
||||
"import/no-webpack-loader-syntax": "error",
|
||||
"import/no-duplicates": "error",
|
||||
"import/no-import-assign": "error",
|
||||
"import/no-self-import": "error"
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
@@ -27,6 +156,31 @@
|
||||
"rules": {
|
||||
"react/no-array-index-key": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["packages/backend/**/*.ts"],
|
||||
"rules": {
|
||||
"typescript/consistent-type-imports": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.{spec,test,e2e,stories}.{ts,tsx}",
|
||||
"tests/**/*.ts",
|
||||
"packages/backend/server/tests/**/*.ts"
|
||||
],
|
||||
"rules": {
|
||||
"typescript/no-non-null-assertion": "off",
|
||||
"typescript/ban-ts-comment": [
|
||||
"error",
|
||||
{
|
||||
"ts-expect-error": false,
|
||||
"ts-ignore": true,
|
||||
"ts-nocheck": true,
|
||||
"ts-check": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -78,7 +78,6 @@
|
||||
"eslint-plugin-react": "^7.37.2",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"eslint-plugin-rxjs": "^5.0.3",
|
||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||
"eslint-plugin-sonarjs": "^3.0.1",
|
||||
"eslint-plugin-unicorn": "^56.0.1",
|
||||
"eslint-plugin-unused-imports": "^4.1.4",
|
||||
|
||||
@@ -2,4 +2,6 @@ export type { DocCustomPropertyInfo, DocProperties } from './schema';
|
||||
export {
|
||||
AFFiNE_WORKSPACE_DB_SCHEMA,
|
||||
AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA,
|
||||
type AFFiNEWorkspaceDbSchema,
|
||||
type AFFiNEWorkspaceUserdataDbSchema,
|
||||
} from './schema';
|
||||
|
||||
@@ -30,14 +30,12 @@ export const AFFiNE_WORKSPACE_DB_SCHEMA = {
|
||||
// we will keep deleted properties in the database, for override legacy data
|
||||
},
|
||||
} as const satisfies DBSchemaBuilder;
|
||||
export type AFFiNE_WORKSPACE_DB_SCHEMA = typeof AFFiNE_WORKSPACE_DB_SCHEMA;
|
||||
export type AFFiNEWorkspaceDbSchema = typeof AFFiNE_WORKSPACE_DB_SCHEMA;
|
||||
|
||||
export type DocProperties = ORMEntity<
|
||||
AFFiNE_WORKSPACE_DB_SCHEMA['docProperties']
|
||||
>;
|
||||
export type DocProperties = ORMEntity<AFFiNEWorkspaceDbSchema['docProperties']>;
|
||||
|
||||
export type DocCustomPropertyInfo = ORMEntity<
|
||||
AFFiNE_WORKSPACE_DB_SCHEMA['docCustomPropertyInfo']
|
||||
AFFiNEWorkspaceDbSchema['docCustomPropertyInfo']
|
||||
>;
|
||||
|
||||
export const AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA = {
|
||||
@@ -46,5 +44,5 @@ export const AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA = {
|
||||
index: f.string(),
|
||||
},
|
||||
} as const satisfies DBSchemaBuilder;
|
||||
export type AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA =
|
||||
export type AFFiNEWorkspaceUserdataDbSchema =
|
||||
typeof AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA;
|
||||
|
||||
@@ -9,6 +9,8 @@ import { WorkspaceDB, type WorkspaceDBWithTables } from '../entities/db';
|
||||
import {
|
||||
AFFiNE_WORKSPACE_DB_SCHEMA,
|
||||
AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA,
|
||||
type AFFiNEWorkspaceDbSchema,
|
||||
type AFFiNEWorkspaceUserdataDbSchema,
|
||||
} from '../schema';
|
||||
|
||||
const WorkspaceDBClient = createORMClient(AFFiNE_WORKSPACE_DB_SCHEMA);
|
||||
@@ -17,10 +19,10 @@ const WorkspaceUserdataDBClient = createORMClient(
|
||||
);
|
||||
|
||||
export class WorkspaceDBService extends Service {
|
||||
db: WorkspaceDBWithTables<AFFiNE_WORKSPACE_DB_SCHEMA>;
|
||||
db: WorkspaceDBWithTables<AFFiNEWorkspaceDbSchema>;
|
||||
userdataDBPool = new ObjectPool<
|
||||
string,
|
||||
WorkspaceDB<AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA>
|
||||
WorkspaceDB<AFFiNEWorkspaceUserdataDbSchema>
|
||||
>({
|
||||
onDangling() {
|
||||
return false; // never release
|
||||
@@ -30,7 +32,7 @@ export class WorkspaceDBService extends Service {
|
||||
constructor(private readonly workspaceService: WorkspaceService) {
|
||||
super();
|
||||
this.db = this.framework.createEntity(
|
||||
WorkspaceDB<AFFiNE_WORKSPACE_DB_SCHEMA>,
|
||||
WorkspaceDB<AFFiNEWorkspaceDbSchema>,
|
||||
{
|
||||
db: new WorkspaceDBClient(
|
||||
new YjsDBAdapter(AFFiNE_WORKSPACE_DB_SCHEMA, {
|
||||
@@ -52,7 +54,7 @@ export class WorkspaceDBService extends Service {
|
||||
storageDocId: tableName =>
|
||||
`db$${this.workspaceService.workspace.id}$${tableName}`,
|
||||
}
|
||||
) as WorkspaceDBWithTables<AFFiNE_WORKSPACE_DB_SCHEMA>;
|
||||
) as WorkspaceDBWithTables<AFFiNEWorkspaceDbSchema>;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
@@ -60,11 +62,11 @@ export class WorkspaceDBService extends Service {
|
||||
// __local__ for local workspace
|
||||
const userdataDb = this.userdataDBPool.get(userId);
|
||||
if (userdataDb) {
|
||||
return userdataDb.obj as WorkspaceDBWithTables<AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA>;
|
||||
return userdataDb.obj as WorkspaceDBWithTables<AFFiNEWorkspaceUserdataDbSchema>;
|
||||
}
|
||||
|
||||
const newDB = this.framework.createEntity(
|
||||
WorkspaceDB<AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA>,
|
||||
WorkspaceDB<AFFiNEWorkspaceUserdataDbSchema>,
|
||||
{
|
||||
db: new WorkspaceUserdataDBClient(
|
||||
new YjsDBAdapter(AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA, {
|
||||
@@ -89,7 +91,7 @@ export class WorkspaceDBService extends Service {
|
||||
);
|
||||
|
||||
this.userdataDBPool.put(userId, newDB);
|
||||
return newDB as WorkspaceDBWithTables<AFFiNE_WORKSPACE_USERDATA_DB_SCHEMA>;
|
||||
return newDB as WorkspaceDBWithTables<AFFiNEWorkspaceUserdataDbSchema>;
|
||||
}
|
||||
|
||||
static isDBDocId(docId: string) {
|
||||
|
||||
@@ -236,4 +236,5 @@ export const AFFINE_FLAGS = {
|
||||
},
|
||||
} satisfies { [key in string]: FlagInfo };
|
||||
|
||||
// eslint-disable-next-line no-redeclare
|
||||
export type AFFINE_FLAGS = typeof AFFINE_FLAGS;
|
||||
|
||||
@@ -25,7 +25,6 @@ test('fractional-indexing', () => {
|
||||
|
||||
if (set.has(s1) || set.has(s2) || s1 === s2) {
|
||||
throw new Error('Duplicate key, ' + set.size + ', ' + s1 + ', ' + s2);
|
||||
break;
|
||||
}
|
||||
set.add(s1);
|
||||
set.add(s2);
|
||||
|
||||
@@ -118,7 +118,7 @@ export function uint8ArrayToBase64(array: Uint8Array): Promise<string> {
|
||||
|
||||
export function base64ToUint8Array(base64: string) {
|
||||
const binaryString = atob(base64);
|
||||
const binaryArray = binaryString.split('').map(function (char) {
|
||||
const binaryArray = [...binaryString].map(function (char) {
|
||||
return char.charCodeAt(0);
|
||||
});
|
||||
return new Uint8Array(binaryArray);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import EventEmitter2 from 'eventemitter2';
|
||||
|
||||
import type { ConnectionStatus } from '../connection';
|
||||
import { type Storage, type StorageType } from '../storage';
|
||||
import { type Storage, type StorageType } from './storage';
|
||||
import type { BlobStorage } from './blob';
|
||||
import type { DocStorage } from './doc';
|
||||
import type { SyncStorage } from './sync';
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"version": "0.18.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@affine/component": "workspace:*",
|
||||
"@affine/core": "workspace:*",
|
||||
"@affine/graphql": "workspace:*",
|
||||
"@radix-ui/react-accordion": "^1.2.2",
|
||||
|
||||
@@ -38,7 +38,11 @@ export function DataTableRowActions({ user }: DataTableRowActionsProps) {
|
||||
const { resetPasswordLink, onResetPassword } = useResetUserPassword();
|
||||
|
||||
const openResetPasswordDialog = useCallback(() => {
|
||||
onResetPassword(user.id, () => setResetPasswordDialogOpen(true));
|
||||
onResetPassword(user.id, () => setResetPasswordDialogOpen(true)).catch(
|
||||
e => {
|
||||
console.error(e);
|
||||
}
|
||||
);
|
||||
}, [onResetPassword, user.id]);
|
||||
|
||||
const handleCopy = useCallback(() => {
|
||||
|
||||
@@ -53,7 +53,7 @@ export const useCreateUser = () => {
|
||||
toast.error('Failed to update account: ' + (e as Error).message);
|
||||
}
|
||||
},
|
||||
[createAccount, revalidate]
|
||||
[createAccount, revalidate, updateAccountFeatures]
|
||||
);
|
||||
|
||||
return { creating: creating || !!error, create };
|
||||
@@ -99,7 +99,7 @@ export const useUpdateUser = () => {
|
||||
toast.error('Failed to update account: ' + (e as Error).message);
|
||||
}
|
||||
},
|
||||
[revalidate, updateAccount]
|
||||
[revalidate, updateAccount, updateAccountFeatures]
|
||||
);
|
||||
|
||||
return { updating: updating || !!error, update };
|
||||
|
||||
@@ -26,7 +26,7 @@ export function UserDropdown() {
|
||||
fetch('/api/auth/sign-out')
|
||||
.then(() => {
|
||||
toast.success('Logged out successfully');
|
||||
relative();
|
||||
return relative();
|
||||
})
|
||||
.catch(err => {
|
||||
toast.error(`Failed to logout: ${err.message}`);
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
CarouselItem,
|
||||
} from '@affine/admin/components/ui/carousel';
|
||||
import { validateEmailAndPassword } from '@affine/admin/utils';
|
||||
import { useAsyncCallback } from '@affine/core/components/hooks/affine-async-hooks';
|
||||
import { useCallback, useEffect, useState } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { toast } from 'sonner';
|
||||
@@ -120,7 +121,7 @@ export const Form = () => {
|
||||
}
|
||||
}, [emailValue, passwordValue, refreshServerConfig]);
|
||||
|
||||
const onNext = useCallback(async () => {
|
||||
const onNext = useAsyncCallback(async () => {
|
||||
if (isCreateAdminStep) {
|
||||
if (
|
||||
!validateEmailAndPassword(
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"@affine-test/kit": "workspace:*",
|
||||
"@affine/component": "workspace:*",
|
||||
"@affine/core": "workspace:*",
|
||||
"@affine/electron-api": "workspace:*",
|
||||
"@affine/i18n": "workspace:*",
|
||||
"@affine/native": "workspace:*",
|
||||
"@affine/nbstore": "workspace:*",
|
||||
@@ -48,9 +49,12 @@
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"@types/set-cookie-parser": "^2.4.10",
|
||||
"@types/uuid": "^10.0.0",
|
||||
"@vanilla-extract/css": "^1.16.1",
|
||||
"@vitejs/plugin-react-swc": "^3.7.2",
|
||||
"app-builder-lib": "^25.1.8",
|
||||
"builder-util-runtime": "^9.2.10",
|
||||
"cross-env": "^7.0.3",
|
||||
"debug": "^4.4.0",
|
||||
"electron": "^33.3.0",
|
||||
"electron-log": "^5.2.4",
|
||||
"electron-squirrel-startup": "1.0.1",
|
||||
@@ -59,6 +63,7 @@
|
||||
"fs-extra": "^11.2.0",
|
||||
"glob": "^11.0.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"msw": "^2.6.8",
|
||||
"nanoid": "^5.0.9",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
|
||||
@@ -80,7 +80,9 @@ async function watchLayers() {
|
||||
console.log(`[layers] has changed, [re]launching electron...`);
|
||||
spawnOrReloadElectron();
|
||||
} else {
|
||||
buildContextPromise.then(resolve);
|
||||
buildContextPromise.then(resolve).catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
initialBuild = true;
|
||||
}
|
||||
});
|
||||
@@ -88,9 +90,13 @@ async function watchLayers() {
|
||||
},
|
||||
],
|
||||
});
|
||||
buildContextPromise.then(async buildContext => {
|
||||
await buildContext.watch();
|
||||
});
|
||||
buildContextPromise
|
||||
.then(buildContext => {
|
||||
return buildContext.watch();
|
||||
})
|
||||
.catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -89,4 +89,6 @@ async function make() {
|
||||
await fs.remove(tmpPath);
|
||||
}
|
||||
|
||||
make();
|
||||
make().catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
|
||||
@@ -79,4 +79,6 @@ async function make() {
|
||||
return artifacts;
|
||||
}
|
||||
|
||||
make();
|
||||
make().catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
|
||||
@@ -33,6 +33,7 @@ if (overrideSession) {
|
||||
app.setPath('sessionData', userDataPath);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
if (require('electron-squirrel-startup')) app.quit();
|
||||
|
||||
if (process.env.SKIP_ONBOARDING) {
|
||||
|
||||
@@ -50,6 +50,6 @@ export const SpellCheckStateSchema = z.object({
|
||||
enabled: z.boolean().optional(),
|
||||
});
|
||||
|
||||
export const SpellCheckStateKey = 'spellCheckState';
|
||||
export type SpellCheckStateKey = typeof SpellCheckStateKey;
|
||||
export const SpellCheckStateKey = 'spellCheckState' as const;
|
||||
// eslint-disable-next-line no-redeclare
|
||||
export type SpellCheckStateSchema = z.infer<typeof SpellCheckStateSchema>;
|
||||
|
||||
@@ -86,10 +86,14 @@ framework.impl(ValidatorProvider, {
|
||||
});
|
||||
framework.impl(VirtualKeyboardProvider, {
|
||||
addEventListener: (event, callback) => {
|
||||
Keyboard.addListener(event as any, callback as any);
|
||||
Keyboard.addListener(event as any, callback as any).catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
},
|
||||
removeAllListeners: () => {
|
||||
Keyboard.removeAllListeners();
|
||||
Keyboard.removeAllListeners().catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
},
|
||||
});
|
||||
framework.impl(NavigationGestureProvider, {
|
||||
@@ -145,6 +149,8 @@ CapacitorApp.addListener('appUrlOpen', ({ url }) => {
|
||||
.catch(console.error);
|
||||
}
|
||||
}
|
||||
}).catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
|
||||
export function App() {
|
||||
|
||||
@@ -115,7 +115,7 @@ const convertBody = async (body: unknown, contentType: string) => {
|
||||
};
|
||||
function base64ToUint8Array(base64: string) {
|
||||
const binaryString = atob(base64);
|
||||
const binaryArray = binaryString.split('').map(function (char) {
|
||||
const binaryArray = [...binaryString].map(function (char) {
|
||||
return char.charCodeAt(0);
|
||||
});
|
||||
return new Uint8Array(binaryArray);
|
||||
|
||||
@@ -13,7 +13,7 @@ class NavigatorVirtualKeyboard implements VirtualKeyboard {
|
||||
|
||||
private readonly _overlaysContent = false;
|
||||
|
||||
private _listeners = new Map<
|
||||
private readonly _listeners = new Map<
|
||||
string,
|
||||
Set<{
|
||||
cb: VirtualKeyboardCallback;
|
||||
@@ -53,11 +53,17 @@ class NavigatorVirtualKeyboard implements VirtualKeyboard {
|
||||
};
|
||||
|
||||
constructor() {
|
||||
this._bindListener();
|
||||
this._bindListener().catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this._capacitorListenerHandles.forEach(handle => handle.remove());
|
||||
this._capacitorListenerHandles.forEach(handle => {
|
||||
handle.remove().catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
get boundingRect(): DOMRect {
|
||||
@@ -75,11 +81,15 @@ class NavigatorVirtualKeyboard implements VirtualKeyboard {
|
||||
}
|
||||
|
||||
hide() {
|
||||
Keyboard.hide();
|
||||
Keyboard.hide().catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
}
|
||||
|
||||
show() {
|
||||
Keyboard.show();
|
||||
Keyboard.show().catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
}
|
||||
|
||||
ongeometrychange: ((this: VirtualKeyboard, ev: Event) => any) | null = null;
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { type PasswordLimitsFragment } from '@affine/graphql';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import { type Options, passwordStrength } from 'check-password-strength';
|
||||
import { type FC, useEffect, useMemo } from 'react';
|
||||
import { useCallback, useState } from 'react';
|
||||
import { type FC, useEffect, useMemo, useCallback, useState } from 'react';
|
||||
import { z, type ZodCustomIssue, ZodIssueCode } from 'zod';
|
||||
|
||||
import type { InputProps } from '../../../ui/input';
|
||||
|
||||
@@ -97,7 +97,7 @@ export const DayPicker = memo(function DayPicker(
|
||||
const focused = document.activeElement;
|
||||
|
||||
// check if focused is a date cell
|
||||
if (!focused?.hasAttribute('data-is-date-cell')) return;
|
||||
if (!(focused as HTMLElement | null)?.dataset.isDateCell) return;
|
||||
if (e.shiftKey) return;
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
+2
-1
@@ -4,8 +4,9 @@ import { type EditorHost } from '@blocksuite/affine/block-std';
|
||||
import {
|
||||
type AIItemGroupConfig,
|
||||
EdgelessRootService,
|
||||
createLitPortal,
|
||||
HoverController,
|
||||
} from '@blocksuite/affine/blocks';
|
||||
import { createLitPortal, HoverController } from '@blocksuite/affine/blocks';
|
||||
import { WithDisposable } from '@blocksuite/affine/global/utils';
|
||||
import { flip, offset } from '@floating-ui/dom';
|
||||
import { css, html, LitElement, nothing } from 'lit';
|
||||
|
||||
-2
@@ -6,8 +6,6 @@ import {
|
||||
type AffineSlashSubMenu,
|
||||
type AIItemConfig,
|
||||
DocModeProvider,
|
||||
} from '@blocksuite/affine/blocks';
|
||||
import {
|
||||
AFFINE_AI_PANEL_WIDGET,
|
||||
AffineSlashMenuWidget,
|
||||
AIStarIcon,
|
||||
|
||||
@@ -6,8 +6,8 @@ import {
|
||||
DocModeProvider,
|
||||
type EdgelessRootService,
|
||||
TelemetryProvider,
|
||||
NotificationProvider,
|
||||
} from '@blocksuite/affine/blocks';
|
||||
import { NotificationProvider } from '@blocksuite/affine/blocks';
|
||||
import {
|
||||
type AIChatBlockModel,
|
||||
type ChatMessage,
|
||||
|
||||
@@ -4,8 +4,9 @@ import {
|
||||
type FrameBlockModel,
|
||||
ImageBlockModel,
|
||||
type SurfaceBlockComponent,
|
||||
BlocksUtils,
|
||||
EdgelessRootService,
|
||||
} from '@blocksuite/affine/blocks';
|
||||
import { BlocksUtils, EdgelessRootService } from '@blocksuite/affine/blocks';
|
||||
import { assertExists } from '@blocksuite/affine/global/utils';
|
||||
import {
|
||||
type BlockModel,
|
||||
|
||||
@@ -236,6 +236,7 @@ export function revertUpdate(
|
||||
} else if (type === 'Array') {
|
||||
return snapshotDoc.getArray(key);
|
||||
}
|
||||
// eslint-disable-next-line array-callback-return
|
||||
throw new Error('Unknown type');
|
||||
})
|
||||
);
|
||||
|
||||
+1
-1
@@ -27,12 +27,12 @@ import { DebugLogger } from '@affine/debug';
|
||||
import { track } from '@affine/track';
|
||||
import {
|
||||
type BlockService,
|
||||
BlockServiceWatcher,
|
||||
BlockViewIdentifier,
|
||||
ConfigIdentifier,
|
||||
type ExtensionType,
|
||||
type WidgetComponent,
|
||||
} from '@blocksuite/affine/block-std';
|
||||
import { BlockServiceWatcher } from '@blocksuite/affine/block-std';
|
||||
import type {
|
||||
AffineReference,
|
||||
DocMode,
|
||||
|
||||
@@ -11,8 +11,6 @@ import { GlobalDialogService } from '@affine/core/modules/dialogs';
|
||||
import {
|
||||
type CreateCheckoutSessionInput,
|
||||
SubscriptionRecurring,
|
||||
} from '@affine/graphql';
|
||||
import {
|
||||
SubscriptionPlan,
|
||||
SubscriptionStatus,
|
||||
SubscriptionVariant,
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
ExplorerService,
|
||||
ExplorerTreeRoot,
|
||||
} from '@affine/core/modules/explorer';
|
||||
import type { FavoriteSupportType } from '@affine/core/modules/favorite';
|
||||
import type { FavoriteSupportTypeUnion } from '@affine/core/modules/favorite';
|
||||
import { FavoriteService } from '@affine/core/modules/favorite';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import {
|
||||
@@ -73,7 +73,7 @@ export const FavoriteNode = ({
|
||||
}: {
|
||||
favorite: {
|
||||
id: string;
|
||||
type: FavoriteSupportType;
|
||||
type: FavoriteSupportTypeUnion;
|
||||
};
|
||||
}) => {
|
||||
return favorite.type === 'doc' ? (
|
||||
|
||||
@@ -2,8 +2,8 @@ import {
|
||||
type SubscriptionQuery,
|
||||
SubscriptionRecurring,
|
||||
SubscriptionVariant,
|
||||
SubscriptionPlan,
|
||||
} from '@affine/graphql';
|
||||
import { SubscriptionPlan } from '@affine/graphql';
|
||||
import {
|
||||
backoffRetry,
|
||||
catchErrorInto,
|
||||
|
||||
@@ -32,4 +32,5 @@ export const EditorSettingSchema = BSEditorSettingSchema.merge(
|
||||
AffineEditorSettingSchema
|
||||
);
|
||||
|
||||
// eslint-disable-next-line no-redeclare
|
||||
export type EditorSettingSchema = z.infer<typeof EditorSettingSchema>;
|
||||
|
||||
@@ -9,7 +9,7 @@ import { LiveData, Service } from '@toeverything/infra';
|
||||
import type { DesktopApiService } from '../../desktop-api';
|
||||
import type { I18n } from '../../i18n';
|
||||
|
||||
const SPELL_CHECK_SETTING_KEY: SpellCheckStateKey = 'spellCheckState';
|
||||
const SPELL_CHECK_SETTING_KEY: typeof SpellCheckStateKey = 'spellCheckState';
|
||||
|
||||
export class SpellCheckSettingService extends Service {
|
||||
constructor(
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
DropEffect,
|
||||
ExplorerTreeRoot,
|
||||
} from '@affine/core/modules/explorer/views/tree';
|
||||
import type { FavoriteSupportType } from '@affine/core/modules/favorite';
|
||||
import type { FavoriteSupportTypeUnion } from '@affine/core/modules/favorite';
|
||||
import {
|
||||
FavoriteService,
|
||||
isFavoriteSupportType,
|
||||
@@ -97,7 +97,7 @@ export const ExplorerFavorites = () => {
|
||||
|
||||
const handleOnChildrenDrop = useCallback(
|
||||
(
|
||||
favorite: { id: string; type: FavoriteSupportType },
|
||||
favorite: { id: string; type: FavoriteSupportTypeUnion },
|
||||
data: DropTargetDropEvent<AffineDNDData>
|
||||
) => {
|
||||
if (
|
||||
@@ -220,12 +220,12 @@ const ExplorerFavoriteNode = ({
|
||||
}: {
|
||||
favorite: {
|
||||
id: string;
|
||||
type: FavoriteSupportType;
|
||||
type: FavoriteSupportTypeUnion;
|
||||
};
|
||||
onDrop: (
|
||||
favorite: {
|
||||
id: string;
|
||||
type: FavoriteSupportType;
|
||||
type: FavoriteSupportTypeUnion;
|
||||
},
|
||||
data: DropTargetDropEvent<AffineDNDData>
|
||||
) => void;
|
||||
|
||||
@@ -4,8 +4,8 @@ export const FavoriteSupportType = [
|
||||
'tag',
|
||||
'folder',
|
||||
] as const;
|
||||
export type FavoriteSupportType = 'collection' | 'doc' | 'tag' | 'folder';
|
||||
export type FavoriteSupportTypeUnion = 'collection' | 'doc' | 'tag' | 'folder';
|
||||
export const isFavoriteSupportType = (
|
||||
type: string
|
||||
): type is FavoriteSupportType =>
|
||||
FavoriteSupportType.includes(type as FavoriteSupportType);
|
||||
): type is FavoriteSupportTypeUnion =>
|
||||
FavoriteSupportType.includes(type as FavoriteSupportTypeUnion);
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
generateFractionalIndexingKeyBetween,
|
||||
} from '@toeverything/infra';
|
||||
|
||||
import type { FavoriteSupportType } from '../constant';
|
||||
import type { FavoriteSupportTypeUnion } from '../constant';
|
||||
import type { FavoriteRecord, FavoriteStore } from '../stores/favorite';
|
||||
|
||||
export class FavoriteList extends Entity {
|
||||
@@ -20,16 +20,16 @@ export class FavoriteList extends Entity {
|
||||
/**
|
||||
* get favorite record by type and id
|
||||
*/
|
||||
favorite$(type: FavoriteSupportType, id: string) {
|
||||
favorite$(type: FavoriteSupportTypeUnion, id: string) {
|
||||
return this.store.watchFavorite(type, id);
|
||||
}
|
||||
|
||||
isFavorite$(type: FavoriteSupportType, id: string) {
|
||||
isFavorite$(type: FavoriteSupportTypeUnion, id: string) {
|
||||
return this.favorite$(type, id).map(v => !!v);
|
||||
}
|
||||
|
||||
add(
|
||||
type: FavoriteSupportType,
|
||||
type: FavoriteSupportTypeUnion,
|
||||
id: string,
|
||||
index: string = this.indexAt('before')
|
||||
) {
|
||||
@@ -37,7 +37,7 @@ export class FavoriteList extends Entity {
|
||||
}
|
||||
|
||||
toggle(
|
||||
type: FavoriteSupportType,
|
||||
type: FavoriteSupportTypeUnion,
|
||||
id: string,
|
||||
index: string = this.indexAt('before')
|
||||
) {
|
||||
@@ -48,18 +48,18 @@ export class FavoriteList extends Entity {
|
||||
}
|
||||
}
|
||||
|
||||
remove(type: FavoriteSupportType, id: string) {
|
||||
remove(type: FavoriteSupportTypeUnion, id: string) {
|
||||
return this.store.removeFavorite(type, id);
|
||||
}
|
||||
|
||||
reorder(type: FavoriteSupportType, id: string, index: string) {
|
||||
reorder(type: FavoriteSupportTypeUnion, id: string, index: string) {
|
||||
return this.store.reorderFavorite(type, id, index);
|
||||
}
|
||||
|
||||
indexAt(
|
||||
at: 'before' | 'after',
|
||||
targetRecord?: {
|
||||
type: FavoriteSupportType;
|
||||
type: FavoriteSupportTypeUnion;
|
||||
id: string;
|
||||
}
|
||||
) {
|
||||
|
||||
@@ -14,7 +14,11 @@ import {
|
||||
} from './services/old/adapter';
|
||||
import { FavoriteStore } from './stores/favorite';
|
||||
|
||||
export { FavoriteSupportType, isFavoriteSupportType } from './constant';
|
||||
export {
|
||||
FavoriteSupportType,
|
||||
type FavoriteSupportTypeUnion,
|
||||
isFavoriteSupportType,
|
||||
} from './constant';
|
||||
export type { FavoriteList } from './entities/favorite-list';
|
||||
export { FavoriteService } from './services/favorite';
|
||||
export {
|
||||
|
||||
@@ -6,7 +6,7 @@ import { LiveData, Service } from '@toeverything/infra';
|
||||
import { defaultsDeep } from 'lodash-es';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
import type { FavoriteSupportType } from '../../constant';
|
||||
import type { FavoriteSupportTypeUnion } from '../../constant';
|
||||
import type { FavoriteService } from '../favorite';
|
||||
import {
|
||||
PagePropertyType,
|
||||
@@ -192,7 +192,7 @@ export class MigrationFavoriteItemsAdapter extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
type CompatibleFavoriteSupportType = FavoriteSupportType;
|
||||
type CompatibleFavoriteSupportType = FavoriteSupportTypeUnion;
|
||||
|
||||
/**
|
||||
* A service written for compatibility,with the same API as old FavoriteItemsAdapter.
|
||||
|
||||
@@ -3,11 +3,11 @@ import { LiveData, Store } from '@toeverything/infra';
|
||||
import { map } from 'rxjs';
|
||||
|
||||
import { AuthService, type WorkspaceServerService } from '../../cloud';
|
||||
import type { FavoriteSupportType } from '../constant';
|
||||
import type { FavoriteSupportTypeUnion } from '../constant';
|
||||
import { isFavoriteSupportType } from '../constant';
|
||||
|
||||
export interface FavoriteRecord {
|
||||
type: FavoriteSupportType;
|
||||
type: FavoriteSupportTypeUnion;
|
||||
id: string;
|
||||
index: string;
|
||||
}
|
||||
@@ -58,7 +58,7 @@ export class FavoriteStore extends Store {
|
||||
}
|
||||
|
||||
addFavorite(
|
||||
type: FavoriteSupportType,
|
||||
type: FavoriteSupportTypeUnion,
|
||||
id: string,
|
||||
index: string
|
||||
): FavoriteRecord {
|
||||
@@ -70,17 +70,17 @@ export class FavoriteStore extends Store {
|
||||
return this.toRecord(raw) as FavoriteRecord;
|
||||
}
|
||||
|
||||
reorderFavorite(type: FavoriteSupportType, id: string, index: string) {
|
||||
reorderFavorite(type: FavoriteSupportTypeUnion, id: string, index: string) {
|
||||
const db = this.userdataDB$.value;
|
||||
db.favorite.update(this.encodeKey(type, id), { index });
|
||||
}
|
||||
|
||||
removeFavorite(type: FavoriteSupportType, id: string) {
|
||||
removeFavorite(type: FavoriteSupportTypeUnion, id: string) {
|
||||
const db = this.userdataDB$.value;
|
||||
db.favorite.delete(this.encodeKey(type, id));
|
||||
}
|
||||
|
||||
watchFavorite(type: FavoriteSupportType, id: string) {
|
||||
watchFavorite(type: FavoriteSupportTypeUnion, id: string) {
|
||||
const db = this.userdataDB$.value;
|
||||
return LiveData.from<FavoriteRecord | undefined>(
|
||||
db.favorite
|
||||
@@ -112,7 +112,7 @@ export class FavoriteStore extends Store {
|
||||
* @returns null if key is invalid
|
||||
*/
|
||||
private parseKey(key: string): {
|
||||
type: FavoriteSupportType;
|
||||
type: FavoriteSupportTypeUnion;
|
||||
id: string;
|
||||
} | null {
|
||||
const [type, id] = key.split(':');
|
||||
@@ -122,10 +122,10 @@ export class FavoriteStore extends Store {
|
||||
if (!isFavoriteSupportType(type)) {
|
||||
return null;
|
||||
}
|
||||
return { type: type as FavoriteSupportType, id };
|
||||
return { type: type as FavoriteSupportTypeUnion, id };
|
||||
}
|
||||
|
||||
private encodeKey(type: FavoriteSupportType, id: string) {
|
||||
private encodeKey(type: FavoriteSupportTypeUnion, id: string) {
|
||||
return `${type}:${id}`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@ export const OrganizeSupportType = [
|
||||
'collection',
|
||||
'tag',
|
||||
] as const;
|
||||
export type OrganizeSupportType = 'folder' | 'doc' | 'collection' | 'tag';
|
||||
export type OrganizeSupportTypeUnion = 'folder' | 'doc' | 'collection' | 'tag';
|
||||
|
||||
export const isOrganizeSupportType = (
|
||||
type: string
|
||||
): type is OrganizeSupportType =>
|
||||
OrganizeSupportType.includes(type as OrganizeSupportType);
|
||||
): type is OrganizeSupportTypeUnion =>
|
||||
OrganizeSupportType.includes(type as OrganizeSupportTypeUnion);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { createORMClient, Entity, YjsDBAdapter } from '@toeverything/infra';
|
||||
import { Doc as YDoc } from 'yjs';
|
||||
|
||||
import { USER_DB_SCHEMA } from '../schema';
|
||||
import { USER_DB_SCHEMA, type UserDbSchema } from '../schema';
|
||||
import { UserDBEngine } from './user-db-engine';
|
||||
import { UserDBTable } from './user-db-table';
|
||||
|
||||
@@ -42,5 +42,5 @@ export class UserDB extends Entity<{
|
||||
}
|
||||
|
||||
export type UserDBWithTables = UserDB & {
|
||||
[K in keyof USER_DB_SCHEMA]: UserDBTable<USER_DB_SCHEMA[K]>;
|
||||
[K in keyof UserDbSchema]: UserDBTable<UserDbSchema[K]>;
|
||||
};
|
||||
|
||||
@@ -6,4 +6,4 @@ export const USER_DB_SCHEMA = {
|
||||
value: f.string(),
|
||||
},
|
||||
} as const satisfies DBSchemaBuilder;
|
||||
export type USER_DB_SCHEMA = typeof USER_DB_SCHEMA;
|
||||
export type UserDbSchema = typeof USER_DB_SCHEMA;
|
||||
|
||||
@@ -24,8 +24,9 @@ import {
|
||||
type WorkspaceFlavoursProvider,
|
||||
type WorkspaceMetadata,
|
||||
type WorkspaceProfileInfo,
|
||||
effect,
|
||||
getAFFiNEWorkspaceSchema,
|
||||
} from '@toeverything/infra';
|
||||
import { effect, getAFFiNEWorkspaceSchema } from '@toeverything/infra';
|
||||
import { isEqual } from 'lodash-es';
|
||||
import { nanoid } from 'nanoid';
|
||||
import { EMPTY, map, mergeMap, Observable, switchMap } from 'rxjs';
|
||||
|
||||
@@ -21,7 +21,7 @@ export function uint8ArrayToBase64(array: Uint8Array): Promise<string> {
|
||||
|
||||
export function base64ToUint8Array(base64: string) {
|
||||
const binaryString = atob(base64);
|
||||
const binaryArray = binaryString.split('').map(function (char) {
|
||||
const binaryArray = [...binaryString].map(function (char) {
|
||||
return char.charCodeAt(0);
|
||||
});
|
||||
return new Uint8Array(binaryArray);
|
||||
|
||||
@@ -16,16 +16,12 @@ export function fuzzyMatch(
|
||||
query: string,
|
||||
matchInitial?: boolean
|
||||
) {
|
||||
const pureName = name
|
||||
.trim()
|
||||
.toLowerCase()
|
||||
.split('')
|
||||
const pureName = [...name.trim().toLowerCase()]
|
||||
.filter(char => char !== ' ')
|
||||
.join('');
|
||||
|
||||
const regex = new RegExp(
|
||||
query
|
||||
.split('')
|
||||
[...query]
|
||||
.filter(char => char !== ' ')
|
||||
.map(item => `${escapeRegExp(item)}.*`)
|
||||
.join(''),
|
||||
|
||||
@@ -158,4 +158,4 @@ export function createI18nWrapper(getI18nFn: () => i18n) {
|
||||
* I18n['com.affine.xxx']({ arg1: 'hello' }) -> '中文 hello'
|
||||
*/
|
||||
export const I18n = createI18nWrapper(getOrCreateI18n);
|
||||
export type I18n = typeof I18n;
|
||||
export type I18nInstance = typeof I18n;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
import { I18n } from '../i18next';
|
||||
import { type I18nInstance, I18n } from '../i18next';
|
||||
|
||||
export type TimeUnit =
|
||||
| 'second'
|
||||
@@ -46,7 +46,7 @@ export function i18nTime(
|
||||
time: dayjs.ConfigType,
|
||||
options: {
|
||||
// override i18n instance, default is global I18n instance
|
||||
i18n?: I18n;
|
||||
i18n?: I18nInstance;
|
||||
// override now time, default is current time
|
||||
now?: dayjs.ConfigType;
|
||||
relative?:
|
||||
|
||||
@@ -24,7 +24,7 @@ vi.mock('@blocksuite/affine/presets', () => ({
|
||||
}));
|
||||
|
||||
if (typeof window !== 'undefined' && HTMLCanvasElement) {
|
||||
// @ts-expect-error
|
||||
// @ts-expect-error allow vitest global mock
|
||||
HTMLCanvasElement.prototype.getContext = () => {
|
||||
return {
|
||||
fillRect: vi.fn(),
|
||||
|
||||
@@ -150,6 +150,7 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@affine/admin@workspace:packages/frontend/admin"
|
||||
dependencies:
|
||||
"@affine/component": "workspace:*"
|
||||
"@affine/core": "workspace:*"
|
||||
"@affine/graphql": "workspace:*"
|
||||
"@radix-ui/react-accordion": "npm:^1.2.2"
|
||||
@@ -514,6 +515,7 @@ __metadata:
|
||||
"@affine-test/kit": "workspace:*"
|
||||
"@affine/component": "workspace:*"
|
||||
"@affine/core": "workspace:*"
|
||||
"@affine/electron-api": "workspace:*"
|
||||
"@affine/i18n": "workspace:*"
|
||||
"@affine/native": "workspace:*"
|
||||
"@affine/nbstore": "workspace:*"
|
||||
@@ -536,10 +538,13 @@ __metadata:
|
||||
"@toeverything/infra": "workspace:*"
|
||||
"@types/set-cookie-parser": "npm:^2.4.10"
|
||||
"@types/uuid": "npm:^10.0.0"
|
||||
"@vanilla-extract/css": "npm:^1.16.1"
|
||||
"@vitejs/plugin-react-swc": "npm:^3.7.2"
|
||||
app-builder-lib: "npm:^25.1.8"
|
||||
async-call-rpc: "npm:^6.4.2"
|
||||
builder-util-runtime: "npm:^9.2.10"
|
||||
cross-env: "npm:^7.0.3"
|
||||
debug: "npm:^4.4.0"
|
||||
electron: "npm:^33.3.0"
|
||||
electron-log: "npm:^5.2.4"
|
||||
electron-squirrel-startup: "npm:1.0.1"
|
||||
@@ -550,6 +555,7 @@ __metadata:
|
||||
glob: "npm:^11.0.0"
|
||||
link-preview-js: "npm:^3.0.12"
|
||||
lodash-es: "npm:^4.17.21"
|
||||
msw: "npm:^2.6.8"
|
||||
nanoid: "npm:^5.0.9"
|
||||
next-themes: "npm:^0.4.4"
|
||||
react: "npm:^19.0.0"
|
||||
@@ -691,7 +697,6 @@ __metadata:
|
||||
eslint-plugin-react: "npm:^7.37.2"
|
||||
eslint-plugin-react-hooks: "npm:^4.6.2"
|
||||
eslint-plugin-rxjs: "npm:^5.0.3"
|
||||
eslint-plugin-simple-import-sort: "npm:^12.1.1"
|
||||
eslint-plugin-sonarjs: "npm:^3.0.1"
|
||||
eslint-plugin-unicorn: "npm:^56.0.1"
|
||||
eslint-plugin-unused-imports: "npm:^4.1.4"
|
||||
@@ -4535,7 +4540,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@electron/notarize@npm:^2.1.0":
|
||||
"@electron/notarize@npm:2.5.0, @electron/notarize@npm:^2.1.0":
|
||||
version: 2.5.0
|
||||
resolution: "@electron/notarize@npm:2.5.0"
|
||||
dependencies:
|
||||
@@ -4563,7 +4568,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@electron/osx-sign@npm:^1.0.5":
|
||||
"@electron/osx-sign@npm:1.3.1, @electron/osx-sign@npm:^1.0.5":
|
||||
version: 1.3.1
|
||||
resolution: "@electron/osx-sign@npm:1.3.1"
|
||||
dependencies:
|
||||
@@ -4609,6 +4614,30 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@electron/rebuild@npm:3.6.1":
|
||||
version: 3.6.1
|
||||
resolution: "@electron/rebuild@npm:3.6.1"
|
||||
dependencies:
|
||||
"@malept/cross-spawn-promise": "npm:^2.0.0"
|
||||
chalk: "npm:^4.0.0"
|
||||
debug: "npm:^4.1.1"
|
||||
detect-libc: "npm:^2.0.1"
|
||||
fs-extra: "npm:^10.0.0"
|
||||
got: "npm:^11.7.0"
|
||||
node-abi: "npm:^3.45.0"
|
||||
node-api-version: "npm:^0.2.0"
|
||||
node-gyp: "npm:^9.0.0"
|
||||
ora: "npm:^5.1.0"
|
||||
read-binary-file-arch: "npm:^1.0.6"
|
||||
semver: "npm:^7.3.5"
|
||||
tar: "npm:^6.0.5"
|
||||
yargs: "npm:^17.0.1"
|
||||
bin:
|
||||
electron-rebuild: lib/cli.js
|
||||
checksum: 10/baedb09a8b109347fd1e7ee16559b4519ebc56a4ec624b3eec5215282a66def5fa4b96c19a26df0f53cd3ab60f077e88cd03429b46ddc63e70279f30c8e20c8a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@electron/rebuild@npm:^3.7.0":
|
||||
version: 3.7.1
|
||||
resolution: "@electron/rebuild@npm:3.7.1"
|
||||
@@ -4649,7 +4678,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@electron/universal@npm:^2.0.1":
|
||||
"@electron/universal@npm:2.0.1, @electron/universal@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "@electron/universal@npm:2.0.1"
|
||||
dependencies:
|
||||
@@ -15871,6 +15900,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"app-builder-bin@npm:5.0.0-alpha.10":
|
||||
version: 5.0.0-alpha.10
|
||||
resolution: "app-builder-bin@npm:5.0.0-alpha.10"
|
||||
checksum: 10/842dc0cade3f1dc2c3fc2809511a4ecb86146d17d22e35d97a493bf3c8bd131552e935abd8ed8df40f6f62d8b231b7b705c81df709becdd55dc28dc6f247af31
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"app-builder-lib@npm:^24.13.3":
|
||||
version: 24.13.3
|
||||
resolution: "app-builder-lib@npm:24.13.3"
|
||||
@@ -15909,6 +15945,49 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"app-builder-lib@npm:^25.1.8":
|
||||
version: 25.1.8
|
||||
resolution: "app-builder-lib@npm:25.1.8"
|
||||
dependencies:
|
||||
"@develar/schema-utils": "npm:~2.6.5"
|
||||
"@electron/notarize": "npm:2.5.0"
|
||||
"@electron/osx-sign": "npm:1.3.1"
|
||||
"@electron/rebuild": "npm:3.6.1"
|
||||
"@electron/universal": "npm:2.0.1"
|
||||
"@malept/flatpak-bundler": "npm:^0.4.0"
|
||||
"@types/fs-extra": "npm:9.0.13"
|
||||
async-exit-hook: "npm:^2.0.1"
|
||||
bluebird-lst: "npm:^1.0.9"
|
||||
builder-util: "npm:25.1.7"
|
||||
builder-util-runtime: "npm:9.2.10"
|
||||
chromium-pickle-js: "npm:^0.2.0"
|
||||
config-file-ts: "npm:0.2.8-rc1"
|
||||
debug: "npm:^4.3.4"
|
||||
dotenv: "npm:^16.4.5"
|
||||
dotenv-expand: "npm:^11.0.6"
|
||||
ejs: "npm:^3.1.8"
|
||||
electron-publish: "npm:25.1.7"
|
||||
form-data: "npm:^4.0.0"
|
||||
fs-extra: "npm:^10.1.0"
|
||||
hosted-git-info: "npm:^4.1.0"
|
||||
is-ci: "npm:^3.0.0"
|
||||
isbinaryfile: "npm:^5.0.0"
|
||||
js-yaml: "npm:^4.1.0"
|
||||
json5: "npm:^2.2.3"
|
||||
lazy-val: "npm:^1.0.5"
|
||||
minimatch: "npm:^10.0.0"
|
||||
resedit: "npm:^1.7.0"
|
||||
sanitize-filename: "npm:^1.6.3"
|
||||
semver: "npm:^7.3.8"
|
||||
tar: "npm:^6.1.12"
|
||||
temp-file: "npm:^3.4.0"
|
||||
peerDependencies:
|
||||
dmg-builder: 25.1.8
|
||||
electron-builder-squirrel-windows: 25.1.8
|
||||
checksum: 10/0af82ffd8389b6dbacffd0ee3191ed056b411f069c362e0f676bf00413d8cb14f0d6d9047e1ab388a578e7f41c8338daa489a259de1203d4b9fc465254dda685
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"appdmg@npm:^0.6.4":
|
||||
version: 0.6.6
|
||||
resolution: "appdmg@npm:0.6.6"
|
||||
@@ -15961,6 +16040,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"are-we-there-yet@npm:^3.0.0":
|
||||
version: 3.0.1
|
||||
resolution: "are-we-there-yet@npm:3.0.1"
|
||||
dependencies:
|
||||
delegates: "npm:^1.0.0"
|
||||
readable-stream: "npm:^3.6.0"
|
||||
checksum: 10/390731720e1bf9ed5d0efc635ea7df8cbc4c90308b0645a932f06e8495a0bf1ecc7987d3b97e805f62a17d6c4b634074b25200aa4d149be2a7b17250b9744bc4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"arg@npm:5.0.2, arg@npm:^5.0.2":
|
||||
version: 5.0.2
|
||||
resolution: "arg@npm:5.0.2"
|
||||
@@ -16874,6 +16963,30 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"builder-util@npm:25.1.7":
|
||||
version: 25.1.7
|
||||
resolution: "builder-util@npm:25.1.7"
|
||||
dependencies:
|
||||
7zip-bin: "npm:~5.2.0"
|
||||
"@types/debug": "npm:^4.1.6"
|
||||
app-builder-bin: "npm:5.0.0-alpha.10"
|
||||
bluebird-lst: "npm:^1.0.9"
|
||||
builder-util-runtime: "npm:9.2.10"
|
||||
chalk: "npm:^4.1.2"
|
||||
cross-spawn: "npm:^7.0.3"
|
||||
debug: "npm:^4.3.4"
|
||||
fs-extra: "npm:^10.1.0"
|
||||
http-proxy-agent: "npm:^7.0.0"
|
||||
https-proxy-agent: "npm:^7.0.0"
|
||||
is-ci: "npm:^3.0.0"
|
||||
js-yaml: "npm:^4.1.0"
|
||||
source-map-support: "npm:^0.5.19"
|
||||
stat-mode: "npm:^1.0.0"
|
||||
temp-file: "npm:^3.4.0"
|
||||
checksum: 10/180817a9f5e24770050a2b23acb6b47e55156ee83c7296329ee538a1ec202cf21a626de9d731f4b674ab1d63bd995b152b02d8e8a4b3133a1964a586f0cc9037
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"builtin-modules@npm:3.3.0, builtin-modules@npm:^3.3.0":
|
||||
version: 3.3.0
|
||||
resolution: "builtin-modules@npm:3.3.0"
|
||||
@@ -17812,7 +17925,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-support@npm:^1.1.2":
|
||||
"color-support@npm:^1.1.2, color-support@npm:^1.1.3":
|
||||
version: 1.1.3
|
||||
resolution: "color-support@npm:1.1.3"
|
||||
bin:
|
||||
@@ -18062,6 +18175,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"config-file-ts@npm:0.2.8-rc1":
|
||||
version: 0.2.8-rc1
|
||||
resolution: "config-file-ts@npm:0.2.8-rc1"
|
||||
dependencies:
|
||||
glob: "npm:^10.3.12"
|
||||
typescript: "npm:^5.4.3"
|
||||
checksum: 10/30884f67de343e2fa7914246c14296c6f4ed6dfcf86c833698fb97be46bc7d8cc9897b53a559d2267e711fbd83deda05d0baeba499151353bd245bfe10f23387
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"config-file-ts@npm:^0.2.4":
|
||||
version: 0.2.6
|
||||
resolution: "config-file-ts@npm:0.2.6"
|
||||
@@ -19327,14 +19450,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv-expand@npm:^5.1.0":
|
||||
version: 5.1.0
|
||||
resolution: "dotenv-expand@npm:5.1.0"
|
||||
checksum: 10/d52af2a6e4642979ae4221408f1b75102508dbe4f5bac1c0613f92a3cf3880d5c31f86b2f5cff3273f7c23e10421e75028546e8b6cd0376fcd20e3803b374e15
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv-expand@npm:~11.0.6":
|
||||
"dotenv-expand@npm:^11.0.6, dotenv-expand@npm:~11.0.6":
|
||||
version: 11.0.7
|
||||
resolution: "dotenv-expand@npm:11.0.7"
|
||||
dependencies:
|
||||
@@ -19343,6 +19459,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv-expand@npm:^5.1.0":
|
||||
version: 5.1.0
|
||||
resolution: "dotenv-expand@npm:5.1.0"
|
||||
checksum: 10/d52af2a6e4642979ae4221408f1b75102508dbe4f5bac1c0613f92a3cf3880d5c31f86b2f5cff3273f7c23e10421e75028546e8b6cd0376fcd20e3803b374e15
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv@npm:^16.0.0, dotenv@npm:^16.3.1, dotenv@npm:^16.4.5, dotenv@npm:^16.4.7, dotenv@npm:~16.4.5":
|
||||
version: 16.4.7
|
||||
resolution: "dotenv@npm:16.4.7"
|
||||
@@ -19494,6 +19617,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"electron-publish@npm:25.1.7":
|
||||
version: 25.1.7
|
||||
resolution: "electron-publish@npm:25.1.7"
|
||||
dependencies:
|
||||
"@types/fs-extra": "npm:^9.0.11"
|
||||
builder-util: "npm:25.1.7"
|
||||
builder-util-runtime: "npm:9.2.10"
|
||||
chalk: "npm:^4.1.2"
|
||||
fs-extra: "npm:^10.1.0"
|
||||
lazy-val: "npm:^1.0.5"
|
||||
mime: "npm:^2.5.2"
|
||||
checksum: 10/75a3e6bcb796423456e01fb79d7c39257ae9a9ea9820ddbc64321ac888867da33198693af87366137d6c13b66a4273e89d15c268184bbddc24db6585d16067c1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"electron-squirrel-startup@npm:1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "electron-squirrel-startup@npm:1.0.1"
|
||||
@@ -20348,15 +20486,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-simple-import-sort@npm:^12.1.1":
|
||||
version: 12.1.1
|
||||
resolution: "eslint-plugin-simple-import-sort@npm:12.1.1"
|
||||
peerDependencies:
|
||||
eslint: ">=5.0.0"
|
||||
checksum: 10/2a690cea9243fbefa70345687bca8952f5e185fa459b7a8db687a908cc31082435cfee236c619d5245548fa5f89a2f2c4f8499f80512e048d2bedc60e3662d5a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-sonarjs@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "eslint-plugin-sonarjs@npm:3.0.1"
|
||||
@@ -21666,6 +21795,22 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"gauge@npm:^4.0.3":
|
||||
version: 4.0.4
|
||||
resolution: "gauge@npm:4.0.4"
|
||||
dependencies:
|
||||
aproba: "npm:^1.0.3 || ^2.0.0"
|
||||
color-support: "npm:^1.1.3"
|
||||
console-control-strings: "npm:^1.1.0"
|
||||
has-unicode: "npm:^2.0.1"
|
||||
signal-exit: "npm:^3.0.7"
|
||||
string-width: "npm:^4.2.3"
|
||||
strip-ansi: "npm:^6.0.1"
|
||||
wide-align: "npm:^1.1.5"
|
||||
checksum: 10/09535dd53b5ced6a34482b1fa9f3929efdeac02f9858569cde73cef3ed95050e0f3d095706c1689614059898924b7a74aa14042f51381a1ccc4ee5c29d2389c4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"gaxios@npm:^6.0.0, gaxios@npm:^6.0.3, gaxios@npm:^6.1.1":
|
||||
version: 6.7.1
|
||||
resolution: "gaxios@npm:6.7.1"
|
||||
@@ -21914,7 +22059,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.4.1":
|
||||
"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.12, glob@npm:^10.4.1":
|
||||
version: 10.4.5
|
||||
resolution: "glob@npm:10.4.5"
|
||||
dependencies:
|
||||
@@ -25087,7 +25232,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"make-fetch-happen@npm:^10.2.1":
|
||||
"make-fetch-happen@npm:^10.0.3, make-fetch-happen@npm:^10.2.1":
|
||||
version: 10.2.1
|
||||
resolution: "make-fetch-happen@npm:10.2.1"
|
||||
dependencies:
|
||||
@@ -26680,6 +26825,27 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-gyp@npm:^9.0.0":
|
||||
version: 9.4.1
|
||||
resolution: "node-gyp@npm:9.4.1"
|
||||
dependencies:
|
||||
env-paths: "npm:^2.2.0"
|
||||
exponential-backoff: "npm:^3.1.1"
|
||||
glob: "npm:^7.1.4"
|
||||
graceful-fs: "npm:^4.2.6"
|
||||
make-fetch-happen: "npm:^10.0.3"
|
||||
nopt: "npm:^6.0.0"
|
||||
npmlog: "npm:^6.0.0"
|
||||
rimraf: "npm:^3.0.2"
|
||||
semver: "npm:^7.3.5"
|
||||
tar: "npm:^6.1.2"
|
||||
which: "npm:^2.0.2"
|
||||
bin:
|
||||
node-gyp: bin/node-gyp.js
|
||||
checksum: 10/329b109b138e48cb0416a6bca56e171b0e479d6360a548b80f06eced4bef3cf37652a3d20d171c20023fb18d996bd7446a49d4297ddb59fc48100178a92f432d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-gyp@npm:latest":
|
||||
version: 10.3.1
|
||||
resolution: "node-gyp@npm:10.3.1"
|
||||
@@ -26886,6 +27052,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"npmlog@npm:^6.0.0":
|
||||
version: 6.0.2
|
||||
resolution: "npmlog@npm:6.0.2"
|
||||
dependencies:
|
||||
are-we-there-yet: "npm:^3.0.0"
|
||||
console-control-strings: "npm:^1.1.0"
|
||||
gauge: "npm:^4.0.3"
|
||||
set-blocking: "npm:^2.0.0"
|
||||
checksum: 10/82b123677e62deb9e7472e27b92386c09e6e254ee6c8bcd720b3011013e4168bc7088e984f4fbd53cb6e12f8b4690e23e4fa6132689313e0d0dc4feea45489bb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"nth-check@npm:^2.0.1":
|
||||
version: 2.1.1
|
||||
resolution: "nth-check@npm:2.1.1"
|
||||
@@ -27864,6 +28042,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pe-library@npm:^0.4.1":
|
||||
version: 0.4.1
|
||||
resolution: "pe-library@npm:0.4.1"
|
||||
checksum: 10/39aa0a756a6521b23326fbb2ccaa157406feb695146aa32f9a2b901c6a6d788ae290a2d3272880df2bc514ad73cd9b2e5fcd4ef4968bcaf626d7a9459a8c7d31
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pe-library@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "pe-library@npm:1.0.1"
|
||||
@@ -29816,6 +30001,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"resedit@npm:^1.7.0":
|
||||
version: 1.7.2
|
||||
resolution: "resedit@npm:1.7.2"
|
||||
dependencies:
|
||||
pe-library: "npm:^0.4.1"
|
||||
checksum: 10/0fc470cb320a6dbbc85c38abd695cb90ca075d9dbea96846fa5f84ab8add23aa39a02520d70f14c93c84181ba4812a5513da7c79df7491826e7b423cee4e058f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"resedit@npm:^2.0.0":
|
||||
version: 2.0.3
|
||||
resolution: "resedit@npm:2.0.3"
|
||||
@@ -31992,7 +32186,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tar@npm:6.2.1, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.12, tar@npm:^6.2.0, tar@npm:^6.2.1":
|
||||
"tar@npm:6.2.1, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.12, tar@npm:^6.1.2, tar@npm:^6.2.0, tar@npm:^6.2.1":
|
||||
version: 6.2.1
|
||||
resolution: "tar@npm:6.2.1"
|
||||
dependencies:
|
||||
@@ -32738,7 +32932,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"typescript@npm:^5, typescript@npm:^5.3.3, typescript@npm:^5.7.2":
|
||||
"typescript@npm:^5, typescript@npm:^5.3.3, typescript@npm:^5.4.3, typescript@npm:^5.7.2":
|
||||
version: 5.7.2
|
||||
resolution: "typescript@npm:5.7.2"
|
||||
bin:
|
||||
@@ -32748,7 +32942,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"typescript@patch:typescript@npm%3A^5#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.3.3#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.7.2#optional!builtin<compat/typescript>":
|
||||
"typescript@patch:typescript@npm%3A^5#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.3.3#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.4.3#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.7.2#optional!builtin<compat/typescript>":
|
||||
version: 5.7.2
|
||||
resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin<compat/typescript>::version=5.7.2&hash=5786d5"
|
||||
bin:
|
||||
@@ -33900,7 +34094,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"wide-align@npm:^1.1.2":
|
||||
"wide-align@npm:^1.1.2, wide-align@npm:^1.1.5":
|
||||
version: 1.1.5
|
||||
resolution: "wide-align@npm:1.1.5"
|
||||
dependencies:
|
||||
|
||||
Reference in New Issue
Block a user