refactor: remove esm module (#1077)

This commit is contained in:
Himself65
2023-02-16 20:43:52 -06:00
committed by GitHub
parent 1d0bf58109
commit 6f6921079e
61 changed files with 518 additions and 349 deletions

View File

@@ -7,3 +7,5 @@ NEXT_PUBLIC_FIREBASE_APP_ID=
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID= NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
# absolute path to the block suite directory # absolute path to the block suite directory
LOCAL_BLOCK_SUITE= LOCAL_BLOCK_SUITE=
# see next.config.js
NODE_API_SERVER=

View File

@@ -48,7 +48,12 @@ const nextConfig = {
COMMIT_HASH: getCommitHash(), COMMIT_HASH: getCommitHash(),
EDITOR_VERSION, EDITOR_VERSION,
}, },
transpilePackages: ['@affine/component', '@affine/i18n'], transpilePackages: [
'@affine/component',
'@affine/i18n',
'@affine/datacenter',
'@toeverything/pathfinder-logger',
],
webpack: config => { webpack: config => {
config.experiments = { ...config.experiments, topLevelAwait: true }; config.experiments = { ...config.experiments, topLevelAwait: true };
config.resolve.alias['yjs'] = require.resolve('yjs'); config.resolve.alias['yjs'] = require.resolve('yjs');

View File

@@ -19,8 +19,10 @@
"baseUrl": ".", "baseUrl": ".",
"paths": { "paths": {
"@/*": ["src/*"], "@/*": ["src/*"],
"@affine/component": ["../../packages/component/src/index"], "@affine/component": ["../../packages/component"],
"@affine/i18n": ["../../packages/i18n/src/index"] "@affine/i18n": ["../../packages/i18n"],
"@affine/datacenter": ["../../packages/data-center"],
"@toeverything/pathfinder-logger": ["../../packages/logger"]
} }
}, },
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],

View File

@@ -4,12 +4,11 @@
"private": true, "private": true,
"author": "toeverything", "author": "toeverything",
"license": "MPL-2.0", "license": "MPL-2.0",
"type": "module",
"scripts": { "scripts": {
"dev": "cross-env NODE_ENV=development pnpm --filter=!@affine/app build && pnpm --filter @affine/app dev", "dev": "pnpm --filter @affine/app dev",
"dev:ac": "pnpm --filter=!@affine/app build && cross-env NODE_API_SERVER=ac pnpm --filter @affine/app dev", "dev:ac": "cross-env NODE_API_SERVER=ac pnpm --filter @affine/app dev",
"dev:local": "pnpm --filter=!@affine/app build && cross-env NODE_API_SERVER=local pnpm --filter @affine/app dev", "dev:local": "cross-env NODE_API_SERVER=local pnpm --filter @affine/app dev",
"build": " pnpm --filter=!@affine/app build && pnpm --filter!=@affine/datacenter -r build", "build": "pnpm --filter @affine/app build",
"build:client": " pnpm --filter=@affine/client-app build:app", "build:client": " pnpm --filter=@affine/client-app build:app",
"build:storybook": " pnpm -r build-storybook", "build:storybook": " pnpm -r build-storybook",
"export": "pnpm --filter @affine/app export", "export": "pnpm --filter @affine/app export",
@@ -17,7 +16,8 @@
"lint": "pnpm --filter @affine/app lint", "lint": "pnpm --filter @affine/app lint",
"test": "playwright test", "test": "playwright test",
"test:coverage": "cross-env COVERAGE=true pnpm test -- --forbid-only", "test:coverage": "cross-env COVERAGE=true pnpm test -- --forbid-only",
"test:unit": "playwright test --config=playwright.config.unit.ts", "test:unit": "vitest --run",
"test:unit:coverage": "vitest run --coverage",
"postinstall": "husky install", "postinstall": "husky install",
"notify": "node --experimental-modules scripts/notify.mjs", "notify": "node --experimental-modules scripts/notify.mjs",
"update:blocksuite": "pnpm i --filter @affine/app --filter @affine/datacenter @blocksuite/blocks@nightly @blocksuite/store@nightly && pnpm i --filter @affine/app @blocksuite/editor@nightly" "update:blocksuite": "pnpm i --filter @affine/app --filter @affine/datacenter @blocksuite/blocks@nightly @blocksuite/store@nightly && pnpm i --filter @affine/app @blocksuite/editor@nightly"
@@ -33,6 +33,7 @@
"@types/node": "^18.11.17", "@types/node": "^18.11.17",
"@typescript-eslint/eslint-plugin": "^5.47.0", "@typescript-eslint/eslint-plugin": "^5.47.0",
"@typescript-eslint/parser": "^5.47.0", "@typescript-eslint/parser": "^5.47.0",
"@vitest/coverage-istanbul": "^0.28.5",
"concurrently": "^7.6.0", "concurrently": "^7.6.0",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"eslint": "^8.30.0", "eslint": "^8.30.0",
@@ -45,7 +46,8 @@
"lint-staged": "^13.1.0", "lint-staged": "^13.1.0",
"nyc": "^15.1.0", "nyc": "^15.1.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"typescript": "^4.9.5" "typescript": "^4.9.5",
"vitest": "^0.28.5"
}, },
"eslintConfig": { "eslintConfig": {
"root": true, "root": true,

View File

@@ -2,6 +2,7 @@
"name": "@affine/component", "name": "@affine/component",
"private": true, "private": true,
"version": "0.3.1", "version": "0.3.1",
"main": "./src/index.ts",
"scripts": { "scripts": {
"storybook": "storybook dev", "storybook": "storybook dev",
"build-storybook": "storybook build" "build-storybook": "storybook build"

View File

@@ -1,25 +1,18 @@
{ {
"name": "@affine/datacenter", "name": "@affine/datacenter",
"version": "0.3.0", "version": "0.3.0",
"private": true,
"description": "", "description": "",
"type": "module", "main": "./src/index.ts",
"main": "dist/src/index.js",
"types": "dist/src/index.d.ts",
"exports": {
".": "./dist/src/index.js"
},
"scripts": { "scripts": {
"dev": "tsc --project ./tsconfig.json -w", "dev": "tsc --project ./tsconfig.json -w",
"build": "tsc --project ./tsconfig.json" "build": "tsc --project ./tsconfig.json"
}, },
"keywords": [],
"author": "",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/toeverything/AFFiNE.git" "url": "git+https://github.com/toeverything/AFFiNE.git"
}, },
"devDependencies": { "devDependencies": {
"@playwright/test": "^1.29.1",
"@types/debug": "^4.1.7", "@types/debug": "^4.1.7",
"fake-indexeddb": "4.0.1", "fake-indexeddb": "4.0.1",
"lit": "^2.6.1", "lit": "^2.6.1",

View File

@@ -1,4 +1,4 @@
import { WorkspaceUnitCollection } from './workspace-unit-collection.js'; import { WorkspaceUnitCollection } from './workspace-unit-collection';
import type { WorkspaceUnitCollectionChangeEvent } from './workspace-unit-collection'; import type { WorkspaceUnitCollectionChangeEvent } from './workspace-unit-collection';
import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store';
import type { import type {
@@ -11,7 +11,7 @@ import { AffineProvider } from './provider';
import type { Message } from './types'; import type { Message } from './types';
import assert from 'assert'; import assert from 'assert';
import { getLogger } from './logger'; import { getLogger } from './logger';
import { createBlocksuiteWorkspace } from './utils/index.js'; import { createBlocksuiteWorkspace } from './utils/index';
import { MessageCenter } from './message'; import { MessageCenter } from './message';
import { WorkspaceUnit } from './workspace-unit'; import { WorkspaceUnit } from './workspace-unit';
/** /**

View File

@@ -1,2 +1,2 @@
export { MessageCenter } from './message.js'; export { MessageCenter } from './message';
export { MessageCode } from './code.js'; export { MessageCode } from './code';

View File

@@ -1,6 +1,6 @@
import { Observable } from 'lib0/observable'; import { Observable } from 'lib0/observable';
import { Message } from '../types'; import { Message } from '../types';
import { MessageCode, messages } from './code.js'; import { MessageCode, messages } from './code';
export class MessageCenter extends Observable<string> { export class MessageCenter extends Observable<string> {
private _messages: Record<number, Omit<Message, 'provider' | 'code'>> = private _messages: Record<number, Omit<Message, 'provider' | 'code'>> =

View File

@@ -1,48 +0,0 @@
import { test, expect } from '@playwright/test';
import { AffineProvider } from '../affine.js';
// import { Workspaces } from '../../../workspaces/index.js';
import { apis } from './mock-apis.js';
import 'fake-indexeddb/auto';
// TODO: we should find a better way for testing AffineProvider.
test.describe.serial('affine provider', async () => {
// const workspaces = new Workspaces();
// const provider = new AffineProvider({
// workspaces: workspaces.createScope(),
// apis,
// });
// await provider.auth();
// const workspaceName = 'workspace-test';
// let workspaceId: string | undefined;
// test('create workspace', async () => {
// const w = await provider.createWorkspace({
// name: workspaceName,
// avatar: 'avatar-url-test',
// });
// workspaceId = w?.room;
// expect(workspaces.workspaces.length).toEqual(1);
// expect(workspaces.workspaces[0].name).toEqual(workspaceName);
// });
// test('workspace list cache', async () => {
// const workspaces1 = new Workspaces();
// const provider1 = new AffineProvider({
// workspaces: workspaces1.createScope(),
// });
// await provider1.loadWorkspaces();
// expect(workspaces1.workspaces.length).toEqual(1);
// expect(workspaces1.workspaces[0].name).toEqual(workspaceName);
// expect(workspaces1.workspaces[0].id).toEqual(workspaceId);
// });
// test('update workspace', async () => {
// await provider.updateWorkspaceMeta(workspaceId!, {
// name: '1111',
// });
// expect(workspaces.workspaces[0].name).toEqual('1111');
// });
// test('delete workspace', async () => {
// expect(workspaces.workspaces.length).toEqual(1);
// await provider.deleteWorkspace(workspaces.workspaces[0].id);
// expect(workspaces.workspaces.length).toEqual(0);
// });
});

View File

@@ -1,4 +1,4 @@
import { BaseProvider } from '../base.js'; import { BaseProvider } from '../base';
import type { import type {
ProviderConstructorParams, ProviderConstructorParams,
CreateWorkspaceInfoParams, CreateWorkspaceInfoParams,
@@ -6,9 +6,9 @@ import type {
import type { User } from '../../types'; import type { User } from '../../types';
import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store';
import assert from 'assert'; import assert from 'assert';
import { WebsocketProvider } from './sync.js'; import { WebsocketProvider } from './sync';
// import { IndexedDBProvider } from '../local/indexeddb'; // import { IndexedDBProvider } from '../local/indexeddb';
import { getApis, Workspace } from './apis/index.js'; import { getApis, Workspace } from './apis';
import type { Apis, WorkspaceDetail } from './apis'; import type { Apis, WorkspaceDetail } from './apis';
import { WebsocketClient } from './channel'; import { WebsocketClient } from './channel';
import { import {
@@ -16,11 +16,11 @@ import {
createWorkspaceUnit, createWorkspaceUnit,
migrateBlobDB, migrateBlobDB,
createBlocksuiteWorkspaceWithAuth, createBlocksuiteWorkspaceWithAuth,
} from './utils.js'; } from './utils';
import { WorkspaceUnit } from '../../workspace-unit.js'; import { WorkspaceUnit } from '../../workspace-unit';
import { applyUpdate } from '../../utils/index.js'; import { applyUpdate } from '../../utils';
import type { SyncMode } from '../../workspace-unit'; import type { SyncMode } from '../../workspace-unit';
import { MessageCenter } from '../../message/index.js'; import { MessageCenter } from '../../message';
type ChannelMessage = { type ChannelMessage = {
ws_list: Workspace[]; ws_list: Workspace[];

View File

@@ -1,7 +1,7 @@
import { test, expect } from '@playwright/test'; import { describe, test, expect } from 'vitest';
import { Auth } from '../auth.js'; import { Auth } from '../auth';
test.describe('class Auth', () => { describe('class Auth', () => {
test('parse tokens', () => { test('parse tokens', () => {
const tokenString = `eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NzU2Nzk1MjAsImlkIjo2LCJuYW1lIjoidGVzdCIsImVtYWlsIjoidGVzdEBnbWFpbC5jb20iLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly90ZXN0LmNvbS9hdmF0YXIiLCJjcmVhdGVkX2F0IjoxNjc1Njc4OTIwMzU4fQ.R8GxrNhn3gNumtapthrP6_J5eQjXLV7i-LanSPqe7hw`; const tokenString = `eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NzU2Nzk1MjAsImlkIjo2LCJuYW1lIjoidGVzdCIsImVtYWlsIjoidGVzdEBnbWFpbC5jb20iLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly90ZXN0LmNvbS9hdmF0YXIiLCJjcmVhdGVkX2F0IjoxNjc1Njc4OTIwMzU4fQ.R8GxrNhn3gNumtapthrP6_J5eQjXLV7i-LanSPqe7hw`;
expect(Auth.parseIdToken(tokenString)).toEqual({ expect(Auth.parseIdToken(tokenString)).toEqual({

View File

@@ -9,9 +9,9 @@ import {
import type { User } from 'firebase/auth'; import type { User } from 'firebase/auth';
import { decode } from 'js-base64'; import { decode } from 'js-base64';
import { getLogger } from '../../../logger.js'; import { getLogger } from '../../../logger';
import { bareClient } from './request.js'; import { bareClient } from './request';
import { storage } from '../storage.js'; import { storage } from '../storage';
export interface AccessTokenMessage { export interface AccessTokenMessage {
created_at: number; created_at: number;

View File

@@ -1,10 +1,10 @@
// export { token } from './token.js'; // export { token } from './token.js';
export type { Callback } from './auth.js'; export type { Callback } from './auth';
import { getAuthorizer } from './auth.js'; import { getAuthorizer } from './auth';
import * as user from './user.js'; import * as user from './user';
import * as workspace from './workspace.js'; import * as workspace from './workspace';
import { auth } from './auth.js'; import { auth } from './auth';
// See https://twitter.com/mattpocockuk/status/1622730173446557697 // See https://twitter.com/mattpocockuk/status/1622730173446557697
// TODO: move to ts utils? // TODO: move to ts utils?
@@ -37,4 +37,4 @@ export const getApis = (): Apis => {
export type { AccessTokenMessage } from './auth'; export type { AccessTokenMessage } from './auth';
export type { Member, Workspace, WorkspaceDetail } from './workspace'; export type { Member, Workspace, WorkspaceDetail } from './workspace';
export { WorkspaceType } from './workspace.js'; export { WorkspaceType } from './workspace';

View File

@@ -1,6 +1,6 @@
import ky from 'ky-universal'; import ky from 'ky-universal';
import { MessageCenter } from '../../../message/index.js'; import { MessageCenter } from '../../../message';
import { auth } from './auth.js'; import { auth } from './auth';
type KyInstance = typeof ky; type KyInstance = typeof ky;

View File

@@ -1,4 +1,4 @@
import { client } from './request.js'; import { client } from './request';
export interface GetUserByEmailParams { export interface GetUserByEmailParams {
email: string; email: string;

View File

@@ -1,5 +1,5 @@
import { MessageCenter } from '../../../message/index.js'; import { MessageCenter } from '../../../message';
import { bareClient, client } from './request.js'; import { bareClient, client } from './request';
import type { User } from './user'; import type { User } from './user';
const messageCenter = MessageCenter.getInstance(); const messageCenter = MessageCenter.getInstance();

View File

@@ -1,7 +1,7 @@
import * as websocket from 'lib0/websocket'; import * as websocket from 'lib0/websocket';
import { Logger } from 'src/types';
import { auth } from './apis/auth'; import { auth } from './apis/auth';
import * as url from 'lib0/url'; import * as url from 'lib0/url';
import { Logger } from '../../types';
const RECONNECT_INTERVAL_TIME = 500; const RECONNECT_INTERVAL_TIME = 500;
const MAX_RECONNECT_TIMES = 50; const MAX_RECONNECT_TIMES = 50;

View File

@@ -1,5 +1,5 @@
import { createStore, keys, setMany, getMany, clear } from 'idb-keyval'; import { createStore, keys, setMany, getMany, clear } from 'idb-keyval';
import * as idb from 'lib0/indexeddb.js'; import * as idb from 'lib0/indexeddb';
type IDBInstance<T = ArrayBufferLike> = { type IDBInstance<T = ArrayBufferLike> = {
keys: () => Promise<string[]>; keys: () => Promise<string[]>;

View File

@@ -1,11 +1,11 @@
import { WorkspaceUnit } from '../../workspace-unit.js'; import { WorkspaceUnit } from '../../workspace-unit';
import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; import type { WorkspaceUnitCtorParams } from '../../workspace-unit';
import { createBlocksuiteWorkspace as _createBlocksuiteWorkspace } from '../../utils/index.js'; import { createBlocksuiteWorkspace as _createBlocksuiteWorkspace } from '../../utils';
import type { Apis } from './apis'; import type { Apis } from './apis';
import { setDefaultAvatar } from '../utils.js'; import { setDefaultAvatar } from '../utils';
import { applyUpdate } from '../../utils/index.js'; import { applyUpdate } from '../../utils';
import { getDatabase } from './idb-kv.js'; import { getDatabase } from './idb-kv';
import { auth } from './apis/auth.js'; import { auth } from './apis/auth';
export const createBlocksuiteWorkspaceWithAuth = async (id: string) => { export const createBlocksuiteWorkspaceWithAuth = async (id: string) => {
if (auth.isExpired && auth.isLogin) { if (auth.isExpired && auth.isLogin) {

View File

@@ -4,7 +4,7 @@ import { Logger, User } from '../types';
import type { WorkspaceUnitCollectionScope } from '../workspace-unit-collection'; import type { WorkspaceUnitCollectionScope } from '../workspace-unit-collection';
import type { WorkspaceUnitCtorParams, WorkspaceUnit } from '../workspace-unit'; import type { WorkspaceUnitCtorParams, WorkspaceUnit } from '../workspace-unit';
import { Member } from './affine/apis'; import { Member } from './affine/apis';
import { Permission } from './affine/apis/workspace.js'; import { Permission } from './affine/apis/workspace';
const defaultLogger = () => { const defaultLogger = () => {
return; return;

View File

@@ -1 +1 @@
export * from './local.js'; export * from './local';

View File

@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
import * as idb from 'lib0/indexeddb.js'; import * as idb from 'lib0/indexeddb';
import { Observable } from 'lib0/observable.js'; import { Observable } from 'lib0/observable';
import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store';
const customStoreName = 'custom'; const customStoreName = 'custom';

View File

@@ -1,7 +1,7 @@
import assert from 'assert'; import assert from 'assert';
import * as idb from 'lib0/indexeddb.js'; import * as idb from 'lib0/indexeddb';
import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store';
import { applyUpdate } from '../../../utils/index.js'; import { applyUpdate } from '../../../utils';
const { encodeStateAsUpdate, mergeUpdates } = BlocksuiteWorkspace.Y; const { encodeStateAsUpdate, mergeUpdates } = BlocksuiteWorkspace.Y;

View File

@@ -1,11 +1,10 @@
import { test, expect } from '@playwright/test'; import { test, describe, expect } from 'vitest';
import { WorkspaceUnitCollection } from '../../workspace-unit-collection.js'; import { WorkspaceUnitCollection } from '../../workspace-unit-collection';
import { LocalProvider } from './local.js'; import { LocalProvider } from './local';
import { createBlocksuiteWorkspace } from '../../utils/index.js'; import { MessageCenter } from '../../message';
import { MessageCenter } from '../../message/index.js';
import 'fake-indexeddb/auto'; import 'fake-indexeddb/auto';
test.describe.serial('local provider', () => { describe('local provider', () => {
const workspaceMetaCollection = new WorkspaceUnitCollection(); const workspaceMetaCollection = new WorkspaceUnitCollection();
const provider = new LocalProvider({ const provider = new LocalProvider({
workspaces: workspaceMetaCollection.createScope(), workspaces: workspaceMetaCollection.createScope(),

View File

@@ -1,4 +1,4 @@
import { BaseProvider } from '../base.js'; import { BaseProvider } from '../base';
import type { import type {
ProviderConstructorParams, ProviderConstructorParams,
WorkspaceMeta0, WorkspaceMeta0,
@@ -7,10 +7,10 @@ import type {
} from '../base'; } from '../base';
import { varStorage as storage } from 'lib0/storage'; import { varStorage as storage } from 'lib0/storage';
import { Workspace as BlocksuiteWorkspace, uuidv4 } from '@blocksuite/store'; import { Workspace as BlocksuiteWorkspace, uuidv4 } from '@blocksuite/store';
import { IndexedDBProvider } from './indexeddb/indexeddb.js'; import { IndexedDBProvider } from './indexeddb/indexeddb';
import { applyLocalUpdates } from './indexeddb/utils.js'; import { applyLocalUpdates } from './indexeddb/utils';
import assert from 'assert'; import assert from 'assert';
import { loadWorkspaceUnit, createWorkspaceUnit } from './utils.js'; import { loadWorkspaceUnit, createWorkspaceUnit } from './utils';
import type { WorkspaceUnit } from '../../workspace-unit'; import type { WorkspaceUnit } from '../../workspace-unit';
const WORKSPACE_KEY = 'workspaces'; const WORKSPACE_KEY = 'workspaces';

View File

@@ -1,8 +1,8 @@
import { WorkspaceUnit } from '../../workspace-unit.js'; import { WorkspaceUnit } from '../../workspace-unit';
import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; import type { WorkspaceUnitCtorParams } from '../../workspace-unit';
import { createBlocksuiteWorkspace } from '../../utils/index.js'; import { createBlocksuiteWorkspace } from '../../utils';
import { applyLocalUpdates, writeUpdatesToLocal } from './indexeddb/utils.js'; import { applyLocalUpdates, writeUpdatesToLocal } from './indexeddb/utils';
import { setDefaultAvatar } from '../utils.js'; import { setDefaultAvatar } from '../utils';
export const loadWorkspaceUnit = async (params: WorkspaceUnitCtorParams) => { export const loadWorkspaceUnit = async (params: WorkspaceUnitCtorParams) => {
const workspaceUnit = new WorkspaceUnit(params); const workspaceUnit = new WorkspaceUnit(params);

View File

@@ -1,12 +1,12 @@
import { test, expect } from '@playwright/test'; import { describe, test, expect } from 'vitest';
import { WorkspaceUnitCollection } from '../../../workspace-unit-collection.js'; import { WorkspaceUnitCollection } from '../../../workspace-unit-collection';
import { TauriIPCProvider } from '../index.js'; import { TauriIPCProvider } from '..';
import { MessageCenter } from '../../../message/index.js'; import { MessageCenter } from '../../../message';
import * as ipcMethods from './mock-apis.js'; import * as ipcMethods from './mock-apis';
import 'fake-indexeddb/auto'; import 'fake-indexeddb/auto';
test.describe.serial('tauri-ipc provider', async () => { describe('tauri-ipc provider', async () => {
const workspaceMetaCollection = new WorkspaceUnitCollection(); const workspaceMetaCollection = new WorkspaceUnitCollection();
const provider = new TauriIPCProvider({ const provider = new TauriIPCProvider({
workspaces: workspaceMetaCollection.createScope(), workspaces: workspaceMetaCollection.createScope(),

View File

@@ -1,12 +1,12 @@
import { BlobSyncState } from '@blocksuite/store'; import { BlobSyncState } from '@blocksuite/store';
import * as ipcMethods from '../ipc/methods.js'; import * as ipcMethods from '../ipc/methods';
import { Signal } from '@blocksuite/store'; import { Signal } from '@blocksuite/store';
import type { import type {
BlobProvider, BlobProvider,
BlobSyncStateChangeEvent, BlobSyncStateChangeEvent,
BlobId, BlobId,
BlobURL, BlobURL,
} from '@blocksuite/store/dist/persistence/blob/types.js'; } from '@blocksuite/store/dist/persistence/blob/types';
export class IPCBlobProvider implements BlobProvider { export class IPCBlobProvider implements BlobProvider {
#ipc = ipcMethods; #ipc = ipcMethods;

View File

@@ -1,20 +1,17 @@
import * as Y from 'yjs'; import * as Y from 'yjs';
import assert from 'assert'; import assert from 'assert';
import { LocalProvider } from '../local/index.js'; import { LocalProvider } from '../local';
import type { IPCMethodsType } from './ipc/methods.js'; import type { IPCMethodsType } from './ipc/methods';
import { import { CreateWorkspaceInfoParams, ProviderConstructorParams } from '../base';
CreateWorkspaceInfoParams,
ProviderConstructorParams,
} from '../base.js';
import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store';
import { IPCBlobProvider } from './blocksuite-provider/blob.js'; import { IPCBlobProvider } from './blocksuite-provider/blob';
import type { WorkspaceUnit } from 'src/workspace-unit.js'; import type { WorkspaceUnit } from '../../workspace-unit';
import { loadWorkspaceUnit } from '../local/utils.js'; import { loadWorkspaceUnit } from '../local/utils';
import { WorkspaceWithPermission } from './ipc/types/workspace.js'; import { WorkspaceWithPermission } from './ipc/types/workspace';
import { applyUpdate } from '../../utils/index.js'; import { applyUpdate } from '../../utils';
import { User } from 'src/types/index.js'; import { User } from '../../types';
import { createWorkspaceUnit } from './utils.js'; import { createWorkspaceUnit } from './utils';
/** /**
* init - createUser - create first workspace and ydoc - loadWorkspace - return the first workspace - wrapWorkspace - #initDocFromIPC - applyUpdate - on('update') - updateYDocument * init - createUser - create first workspace and ydoc - loadWorkspace - return the first workspace - wrapWorkspace - #initDocFromIPC - applyUpdate - on('update') - updateYDocument
@@ -38,7 +35,7 @@ export class TauriIPCProvider extends LocalProvider {
if (ipc) { if (ipc) {
this.#ipc = ipc; this.#ipc = ipc;
} else { } else {
this.#ipc = await import('./ipc/methods.js'); this.#ipc = await import('./ipc/methods');
} }
try { try {
const user = await this.#ipc?.getUser({ const user = await this.#ipc?.getUser({

View File

@@ -1,8 +1,8 @@
import { WorkspaceUnit } from '../../workspace-unit.js'; import { WorkspaceUnit } from '../../workspace-unit';
import type { WorkspaceUnitCtorParams } from '../../workspace-unit'; import type { WorkspaceUnitCtorParams } from '../../workspace-unit';
import { createBlocksuiteWorkspace } from '../../utils/index.js'; import { createBlocksuiteWorkspace } from '../../utils';
import { setDefaultAvatar } from '../utils.js'; import { setDefaultAvatar } from '../utils';
import { IPCBlobProvider } from './blocksuite-provider/blob.js'; import { IPCBlobProvider } from './blocksuite-provider/blob';
export const createWorkspaceUnit = async (params: WorkspaceUnitCtorParams) => { export const createWorkspaceUnit = async (params: WorkspaceUnitCtorParams) => {
const workspaceUnit = new WorkspaceUnit(params); const workspaceUnit = new WorkspaceUnit(params);

View File

@@ -1,6 +1,6 @@
import assert from 'assert'; import assert from 'assert';
import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store'; import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store';
import { getDefaultHeadImgBlob } from '../utils/index.js'; import { getDefaultHeadImgBlob } from '../utils';
export const setDefaultAvatar = async ( export const setDefaultAvatar = async (
blocksuiteWorkspace: BlocksuiteWorkspace blocksuiteWorkspace: BlocksuiteWorkspace

View File

@@ -1,9 +1,9 @@
import { test, expect } from '@playwright/test'; import { describe, test, expect } from 'vitest';
import { WorkspaceUnitCollection } from './workspace-unit-collection.js'; import { WorkspaceUnitCollection } from './workspace-unit-collection';
import type { WorkspaceUnitCollectionChangeEvent } from './workspace-unit-collection'; import type { WorkspaceUnitCollectionChangeEvent } from './workspace-unit-collection';
import { WorkspaceUnit } from './workspace-unit.js'; import { WorkspaceUnit } from './workspace-unit';
test.describe.serial('workspace meta collection observable', () => { describe('workspace meta collection observable', () => {
const workspaceUnitCollection = new WorkspaceUnitCollection(); const workspaceUnitCollection = new WorkspaceUnitCollection();
const scope = workspaceUnitCollection.createScope(); const scope = workspaceUnitCollection.createScope();

View File

@@ -9,7 +9,7 @@
"noEmit": false, "noEmit": false,
"esModuleInterop": true, "esModuleInterop": true,
"module": "ESNext", "module": "ESNext",
"moduleResolution": "node", "moduleResolution": "Node",
"resolveJsonModule": true, "resolveJsonModule": true,
"isolatedModules": true, "isolatedModules": true,
"jsx": "preserve", "jsx": "preserve",

View File

@@ -2,11 +2,7 @@
"name": "@affine/logger", "name": "@affine/logger",
"version": "0.3.0", "version": "0.3.0",
"description": "", "description": "",
"main": "dist/src/index.js", "main": "./src/index.ts",
"types": "dist/src/index.d.ts",
"exports": {
".": "./dist/src/index.js"
},
"scripts": { "scripts": {
"dev": "next dev", "dev": "next dev",
"build": "tsc --project ./tsconfig.json" "build": "tsc --project ./tsconfig.json"

View File

@@ -1,33 +0,0 @@
/**
* For unit tests.
*/
import type { PlaywrightTestConfig } from '@playwright/test';
const config: PlaywrightTestConfig = {
testDir: './packages/',
timeout: 30 * 1000,
expect: {
/**
* Maximum time expect() should wait for the condition to be met.
* For example in `await expect(locator).toHaveText();`
*/
timeout: 5000,
},
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
use: {
actionTimeout: 0,
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry',
},
// 'github' for GitHub Actions CI to generate annotations, plus a concise 'dot'
// default 'list' when running locally
// See https://playwright.dev/docs/test-reporters#github-actions-annotations
reporter: process.env.CI ? 'github' : 'list',
};
export default config;

423
pnpm-lock.yaml generated
View File

@@ -18,6 +18,7 @@ importers:
'@types/node': ^18.11.17 '@types/node': ^18.11.17
'@typescript-eslint/eslint-plugin': ^5.47.0 '@typescript-eslint/eslint-plugin': ^5.47.0
'@typescript-eslint/parser': ^5.47.0 '@typescript-eslint/parser': ^5.47.0
'@vitest/coverage-istanbul': ^0.28.5
concurrently: ^7.6.0 concurrently: ^7.6.0
cross-env: ^7.0.3 cross-env: ^7.0.3
eslint: ^8.30.0 eslint: ^8.30.0
@@ -31,6 +32,7 @@ importers:
nyc: ^15.1.0 nyc: ^15.1.0
prettier: ^2.7.1 prettier: ^2.7.1
typescript: ^4.9.5 typescript: ^4.9.5
vitest: ^0.28.5
devDependencies: devDependencies:
'@changesets/cli': 2.26.0 '@changesets/cli': 2.26.0
'@playwright/test': 1.29.1 '@playwright/test': 1.29.1
@@ -38,6 +40,7 @@ importers:
'@types/node': 18.11.18 '@types/node': 18.11.18
'@typescript-eslint/eslint-plugin': 5.48.0_vqm4js66qtp4h6afqe3btrngbi '@typescript-eslint/eslint-plugin': 5.48.0_vqm4js66qtp4h6afqe3btrngbi
'@typescript-eslint/parser': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu '@typescript-eslint/parser': 5.48.0_ifw3q4r6iq3gw7cspzs2siycvu
'@vitest/coverage-istanbul': 0.28.5
concurrently: 7.6.0 concurrently: 7.6.0
cross-env: 7.0.3 cross-env: 7.0.3
eslint: 8.31.0 eslint: 8.31.0
@@ -51,6 +54,7 @@ importers:
nyc: 15.1.0 nyc: 15.1.0
prettier: 2.7.1 prettier: 2.7.1
typescript: 4.9.5 typescript: 4.9.5
vitest: 0.28.5
apps/desktop: apps/desktop:
specifiers: specifiers:
@@ -317,7 +321,6 @@ importers:
specifiers: specifiers:
'@blocksuite/blocks': 0.4.0-20230216093909-90a4996 '@blocksuite/blocks': 0.4.0-20230216093909-90a4996
'@blocksuite/store': 0.4.0-20230216093909-90a4996 '@blocksuite/store': 0.4.0-20230216093909-90a4996
'@playwright/test': ^1.29.1
'@tauri-apps/api': ^1.2.0 '@tauri-apps/api': ^1.2.0
'@types/debug': ^4.1.7 '@types/debug': ^4.1.7
debug: ^4.3.4 debug: ^4.3.4
@@ -349,7 +352,6 @@ importers:
swr: 2.0.0 swr: 2.0.0
y-protocols: 1.0.5 y-protocols: 1.0.5
devDependencies: devDependencies:
'@playwright/test': 1.29.1
'@types/debug': 4.1.7 '@types/debug': 4.1.7
fake-indexeddb: 4.0.1 fake-indexeddb: 4.0.1
lit: 2.6.1 lit: 2.6.1
@@ -438,7 +440,7 @@ packages:
'@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
'@babel/helper-module-transforms': 7.20.11 '@babel/helper-module-transforms': 7.20.11
'@babel/helpers': 7.20.13 '@babel/helpers': 7.20.13
'@babel/parser': 7.20.7 '@babel/parser': 7.20.15
'@babel/template': 7.20.7 '@babel/template': 7.20.7
'@babel/traverse': 7.20.13 '@babel/traverse': 7.20.13
'@babel/types': 7.20.7 '@babel/types': 7.20.7
@@ -2656,27 +2658,6 @@ packages:
- yjs - yjs
dev: false dev: false
/@blocksuite/blocks/0.4.0-20230216011811-2776d93_trq6tjva7swiv4fhloorah5nty:
resolution: {integrity: sha512-OCbf+nbxZyjWcXfRqBMVKUpFUXSj5HY2BpWMNN68IsbAI09zFiNPH0KuMi72uHyFN+/NucoZGwZH21EgXB+s7g==}
peerDependencies:
'@blocksuite/store': 0.4.0-20230216011811-2776d93
dependencies:
'@blocksuite/global': 0.4.0-20230216011811-2776d93_lit@2.6.1
'@blocksuite/phasor': 0.4.0-20230216011811-2776d93_lit@2.6.1+yjs@13.5.45
'@blocksuite/store': 0.4.0-20230216011811-2776d93_lit@2.6.1+yjs@13.5.45
'@blocksuite/virgo': 0.4.0-20230216011811-2776d93_lit@2.6.1+yjs@13.5.45
'@popperjs/core': 2.11.6
autosize: 6.0.1
highlight.js: 11.7.0
hotkeys-js: 3.10.1
lit: 2.6.1
quill: 1.3.7
quill-cursors: 4.0.2
zod: 3.20.6
transitivePeerDependencies:
- yjs
dev: false
/@blocksuite/blocks/0.4.0-20230216093909-90a4996_5yoqn4hrdzbvxh2iy2djsrhmqe: /@blocksuite/blocks/0.4.0-20230216093909-90a4996_5yoqn4hrdzbvxh2iy2djsrhmqe:
resolution: {integrity: sha512-h4Rv3m5mq2loXcGovpnGMixOu4nWI3LBcqxR/bO6gquiaMcwzmHjfJsuuA075YEvHdnL2wtR4Mxsd/63F5nB4Q==} resolution: {integrity: sha512-h4Rv3m5mq2loXcGovpnGMixOu4nWI3LBcqxR/bO6gquiaMcwzmHjfJsuuA075YEvHdnL2wtR4Mxsd/63F5nB4Q==}
peerDependencies: peerDependencies:
@@ -2704,9 +2685,9 @@ packages:
'@blocksuite/blocks': 0.4.0-20230216011811-2776d93 '@blocksuite/blocks': 0.4.0-20230216011811-2776d93
'@blocksuite/store': 0.4.0-20230216011811-2776d93 '@blocksuite/store': 0.4.0-20230216011811-2776d93
dependencies: dependencies:
'@blocksuite/blocks': 0.4.0-20230216011811-2776d93_trq6tjva7swiv4fhloorah5nty '@blocksuite/blocks': 0.4.0-20230216011811-2776d93_agtz32e5txbljk4aobo36wfrpe
'@blocksuite/global': 0.4.0-20230216011811-2776d93_lit@2.6.1 '@blocksuite/global': 0.4.0-20230216011811-2776d93_lit@2.6.1
'@blocksuite/store': 0.4.0-20230216011811-2776d93_lit@2.6.1+yjs@13.5.45 '@blocksuite/store': 0.4.0-20230216011811-2776d93_lit@2.6.1
lit: 2.6.1 lit: 2.6.1
marked: 4.2.12 marked: 4.2.12
turndown: 7.1.1 turndown: 7.1.1
@@ -2807,20 +2788,6 @@ packages:
- lit - lit
dev: false dev: false
/@blocksuite/phasor/0.4.0-20230216011811-2776d93_lit@2.6.1+yjs@13.5.45:
resolution: {integrity: sha512-fY5XLFIOKZlCMLb093ZHRAjhnkEaJK9vJsh8Asib/hGc0PaDqu65FIM3zXR6YAAKsgKEIu8SVK1B7n+gH82Ugg==}
peerDependencies:
yjs: ^13
dependencies:
'@blocksuite/global': 0.4.0-20230216011811-2776d93_lit@2.6.1
fractional-indexing: 3.2.0
nanoid: 4.0.1
perfect-freehand: 1.2.0
yjs: 13.5.45
transitivePeerDependencies:
- lit
dev: false
/@blocksuite/phasor/0.4.0-20230216093909-90a4996_lit@2.6.1+yjs@13.5.45: /@blocksuite/phasor/0.4.0-20230216093909-90a4996_lit@2.6.1+yjs@13.5.45:
resolution: {integrity: sha512-YzcOj17aVW93UQw3BeI9qxvkzggLMZgMywhk7xBJqiDorU3YVUkb4pEauVoC2oKx86p8NkT5kpWNYR+IvxLe5A==} resolution: {integrity: sha512-YzcOj17aVW93UQw3BeI9qxvkzggLMZgMywhk7xBJqiDorU3YVUkb4pEauVoC2oKx86p8NkT5kpWNYR+IvxLe5A==}
peerDependencies: peerDependencies:
@@ -2881,32 +2848,6 @@ packages:
- utf-8-validate - utf-8-validate
dev: false dev: false
/@blocksuite/store/0.4.0-20230216011811-2776d93_lit@2.6.1+yjs@13.5.45:
resolution: {integrity: sha512-UO5ipKxqfeW4MceW+nU5DkSpqXlm3sostGWx5GOl8AxWxqIjUIgOasTegqTZaR2hEUbYeqCzpuQWEERH+Fp5xQ==}
peerDependencies:
yjs: ^13
dependencies:
'@blocksuite/global': 0.4.0-20230216011811-2776d93_lit@2.6.1
'@blocksuite/virgo': 0.4.0-20230216011811-2776d93_lit@2.6.1+yjs@13.5.45
'@types/flexsearch': 0.7.3
buffer: 6.0.3
flexsearch: 0.7.21
idb-keyval: 6.2.0
ky: 0.33.2
lib0: 0.2.62
merge: 2.1.1
nanoid: 4.0.1
y-protocols: 1.0.5
y-webrtc: 10.2.4
yjs: 13.5.45
zod: 3.20.6
transitivePeerDependencies:
- bufferutil
- lit
- supports-color
- utf-8-validate
dev: false
/@blocksuite/store/0.4.0-20230216011811-2776d93_yjs@13.5.45: /@blocksuite/store/0.4.0-20230216011811-2776d93_yjs@13.5.45:
resolution: {integrity: sha512-UO5ipKxqfeW4MceW+nU5DkSpqXlm3sostGWx5GOl8AxWxqIjUIgOasTegqTZaR2hEUbYeqCzpuQWEERH+Fp5xQ==} resolution: {integrity: sha512-UO5ipKxqfeW4MceW+nU5DkSpqXlm3sostGWx5GOl8AxWxqIjUIgOasTegqTZaR2hEUbYeqCzpuQWEERH+Fp5xQ==}
peerDependencies: peerDependencies:
@@ -2970,18 +2911,6 @@ packages:
zod: 3.20.6 zod: 3.20.6
dev: false dev: false
/@blocksuite/virgo/0.4.0-20230216011811-2776d93_lit@2.6.1+yjs@13.5.45:
resolution: {integrity: sha512-R0jIeVa0LDw/ZGFY7X354l9F+RUyGOA8vq3RKttNIYK9pueBOdNv3yqavj/FQu5mGMX9v4HYm9AoZLr6dvWQ6Q==}
peerDependencies:
lit: ^2
yjs: ^13
dependencies:
'@blocksuite/global': 0.4.0-20230216011811-2776d93_lit@2.6.1
lit: 2.6.1
yjs: 13.5.45
zod: 3.20.6
dev: false
/@blocksuite/virgo/0.4.0-20230216011811-2776d93_yjs@13.5.45: /@blocksuite/virgo/0.4.0-20230216011811-2776d93_yjs@13.5.45:
resolution: {integrity: sha512-R0jIeVa0LDw/ZGFY7X354l9F+RUyGOA8vq3RKttNIYK9pueBOdNv3yqavj/FQu5mGMX9v4HYm9AoZLr6dvWQ6Q==} resolution: {integrity: sha512-R0jIeVa0LDw/ZGFY7X354l9F+RUyGOA8vq3RKttNIYK9pueBOdNv3yqavj/FQu5mGMX9v4HYm9AoZLr6dvWQ6Q==}
peerDependencies: peerDependencies:
@@ -5560,7 +5489,7 @@ packages:
dependencies: dependencies:
'@storybook/client-logger': 7.0.0-beta.46 '@storybook/client-logger': 7.0.0-beta.46
'@storybook/core-events': 7.0.0-beta.46 '@storybook/core-events': 7.0.0-beta.46
'@storybook/csf': 0.0.2-next.8 '@storybook/csf': 0.0.2-next.10
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.46 '@storybook/preview-api': 7.0.0-beta.46
@@ -5681,7 +5610,7 @@ packages:
'@storybook/client-logger': 7.0.0-beta.46 '@storybook/client-logger': 7.0.0-beta.46
'@storybook/components': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-beta.46 '@storybook/core-events': 7.0.0-beta.46
'@storybook/csf': 0.0.2-next.8 '@storybook/csf': 0.0.2-next.10
'@storybook/docs-tools': 7.0.0-beta.46 '@storybook/docs-tools': 7.0.0-beta.46
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y
@@ -5850,7 +5779,7 @@ packages:
'@babel/core': 7.20.12 '@babel/core': 7.20.12
'@babel/preset-env': 7.20.2_@babel+core@7.20.12 '@babel/preset-env': 7.20.2_@babel+core@7.20.12
'@babel/types': 7.20.7 '@babel/types': 7.20.7
'@storybook/csf': 0.0.2-next.8 '@storybook/csf': 0.0.2-next.10
'@storybook/csf-tools': 7.0.0-beta.46 '@storybook/csf-tools': 7.0.0-beta.46
'@storybook/node-logger': 7.0.0-beta.46 '@storybook/node-logger': 7.0.0-beta.46
'@storybook/types': 7.0.0-beta.46 '@storybook/types': 7.0.0-beta.46
@@ -5872,7 +5801,7 @@ packages:
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies: dependencies:
'@storybook/client-logger': 7.0.0-beta.46 '@storybook/client-logger': 7.0.0-beta.46
'@storybook/csf': 0.0.2-next.8 '@storybook/csf': 0.0.2-next.10
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/theming': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.46 '@storybook/types': 7.0.0-beta.46
@@ -5937,7 +5866,7 @@ packages:
'@storybook/builder-manager': 7.0.0-beta.46 '@storybook/builder-manager': 7.0.0-beta.46
'@storybook/core-common': 7.0.0-beta.46 '@storybook/core-common': 7.0.0-beta.46
'@storybook/core-events': 7.0.0-beta.46 '@storybook/core-events': 7.0.0-beta.46
'@storybook/csf': 0.0.2-next.8 '@storybook/csf': 0.0.2-next.10
'@storybook/csf-tools': 7.0.0-beta.46 '@storybook/csf-tools': 7.0.0-beta.46
'@storybook/docs-mdx': 0.0.1-next.6 '@storybook/docs-mdx': 0.0.1-next.6
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
@@ -5995,7 +5924,7 @@ packages:
resolution: {integrity: sha512-H7zXfL1wf/1jWi5MaFISt/taxE41fgpV/uLfi5CHcHLX9ZgeQs2B/2utpUgwvBsxiL+E/jKAt5cLeuZCIvglMg==} resolution: {integrity: sha512-H7zXfL1wf/1jWi5MaFISt/taxE41fgpV/uLfi5CHcHLX9ZgeQs2B/2utpUgwvBsxiL+E/jKAt5cLeuZCIvglMg==}
dependencies: dependencies:
'@babel/types': 7.20.7 '@babel/types': 7.20.7
'@storybook/csf': 0.0.2-next.8 '@storybook/csf': 0.0.2-next.10
'@storybook/types': 7.0.0-beta.46 '@storybook/types': 7.0.0-beta.46
fs-extra: 11.1.0 fs-extra: 11.1.0
recast: 0.23.1 recast: 0.23.1
@@ -6004,11 +5933,9 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/csf/0.0.2-next.8: /@storybook/csf/0.0.2-next.10:
resolution: {integrity: sha512-3T6rflW7D9q1iXOR+bidwoNbd9rVUTyjYH/sqsnYjbXhb/aOXsQzGKwNeq9QqZIFVpKfg5BoOF5i7DCMtoGknQ==} resolution: {integrity: sha512-m2PFgBP/xRIF85VrDhvesn9ktaD2pN3VUjvMqkAL/cINp/3qXsCyI81uw7N5VEOkQAbWrY2FcydnvEPDEdE8fA==}
dependencies: dependencies:
expect-type: 0.14.2
lodash: 4.17.21
type-fest: 2.19.0 type-fest: 2.19.0
dev: true dev: true
@@ -6043,7 +5970,7 @@ packages:
'@storybook/channels': 7.0.0-beta.46 '@storybook/channels': 7.0.0-beta.46
'@storybook/client-logger': 7.0.0-beta.46 '@storybook/client-logger': 7.0.0-beta.46
'@storybook/core-events': 7.0.0-beta.46 '@storybook/core-events': 7.0.0-beta.46
'@storybook/csf': 0.0.2-next.8 '@storybook/csf': 0.0.2-next.10
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/router': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y '@storybook/router': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y
'@storybook/theming': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.0.0-beta.46_biqbaboplfbrettd7655fr4n2y
@@ -6089,7 +6016,7 @@ packages:
'@storybook/channels': 7.0.0-beta.46 '@storybook/channels': 7.0.0-beta.46
'@storybook/client-logger': 7.0.0-beta.46 '@storybook/client-logger': 7.0.0-beta.46
'@storybook/core-events': 7.0.0-beta.46 '@storybook/core-events': 7.0.0-beta.46
'@storybook/csf': 0.0.2-next.8 '@storybook/csf': 0.0.2-next.10
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/types': 7.0.0-beta.46 '@storybook/types': 7.0.0-beta.46
'@types/qs': 6.9.7 '@types/qs': 6.9.7
@@ -6559,6 +6486,16 @@ packages:
'@types/responselike': 1.0.0 '@types/responselike': 1.0.0
dev: true dev: true
/@types/chai-subset/1.3.3:
resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
dependencies:
'@types/chai': 4.3.4
dev: true
/@types/chai/4.3.4:
resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==}
dev: true
/@types/connect/3.4.35: /@types/connect/3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies: dependencies:
@@ -7273,6 +7210,62 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@vitest/coverage-istanbul/0.28.5:
resolution: {integrity: sha512-na1pkr3AVrdFflzuBXsBh1MvBfhSMrv4nfd4N8rm0HEJlvlbQc+GiqNwtwzfO8TPsXxcjNphSIMp5wvCy+0xrQ==}
dependencies:
istanbul-lib-coverage: 3.2.0
istanbul-lib-instrument: 5.2.1
istanbul-lib-report: 3.0.0
istanbul-lib-source-maps: 4.0.1
istanbul-reports: 3.1.5
test-exclude: 6.0.0
vitest: 0.28.5
transitivePeerDependencies:
- '@edge-runtime/vm'
- '@vitest/browser'
- '@vitest/ui'
- happy-dom
- jsdom
- less
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/@vitest/expect/0.28.5:
resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==}
dependencies:
'@vitest/spy': 0.28.5
'@vitest/utils': 0.28.5
chai: 4.3.7
dev: true
/@vitest/runner/0.28.5:
resolution: {integrity: sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==}
dependencies:
'@vitest/utils': 0.28.5
p-limit: 4.0.0
pathe: 1.1.0
dev: true
/@vitest/spy/0.28.5:
resolution: {integrity: sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==}
dependencies:
tinyspy: 1.1.1
dev: true
/@vitest/utils/0.28.5:
resolution: {integrity: sha512-UyZdYwdULlOa4LTUSwZ+Paz7nBHGTT72jKwdFSV4IjHF1xsokp+CabMdhjvVhYwkLfO88ylJT46YMilnkSARZA==}
dependencies:
cli-truncate: 3.1.0
diff: 5.1.0
loupe: 2.3.6
picocolors: 1.0.0
pretty-format: 27.5.1
dev: true
/@webassemblyjs/ast/1.11.1: /@webassemblyjs/ast/1.11.1:
resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==}
dependencies: dependencies:
@@ -7458,6 +7451,12 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/acorn/8.8.2:
resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
/address/1.2.2: /address/1.2.2:
resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
@@ -7549,6 +7548,11 @@ packages:
dependencies: dependencies:
color-convert: 2.0.1 color-convert: 2.0.1
/ansi-styles/5.2.0:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: '>=10'}
dev: true
/ansi-styles/6.2.1: /ansi-styles/6.2.1:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'} engines: {node: '>=12'}
@@ -7709,6 +7713,10 @@ packages:
util: 0.12.5 util: 0.12.5
dev: true dev: true
/assertion-error/1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
/ast-types-flow/0.0.7: /ast-types-flow/0.0.7:
resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
dev: true dev: true
@@ -8131,6 +8139,11 @@ packages:
yargs-parser: 20.2.9 yargs-parser: 20.2.9
dev: true dev: true
/cac/6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
dev: true
/cacheable-lookup/5.0.4: /cacheable-lookup/5.0.4:
resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
engines: {node: '>=10.6.0'} engines: {node: '>=10.6.0'}
@@ -8220,6 +8233,19 @@ packages:
/caniuse-lite/1.0.30001419: /caniuse-lite/1.0.30001419:
resolution: {integrity: sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==} resolution: {integrity: sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==}
/chai/4.3.7:
resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==}
engines: {node: '>=4'}
dependencies:
assertion-error: 1.1.0
check-error: 1.0.2
deep-eql: 4.1.3
get-func-name: 2.0.0
loupe: 2.3.6
pathval: 1.1.1
type-detect: 4.0.8
dev: true
/chalk/2.4.2: /chalk/2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'} engines: {node: '>=4'}
@@ -8245,6 +8271,10 @@ packages:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true dev: true
/check-error/1.0.2:
resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==}
dev: true
/chokidar/3.5.3: /chokidar/3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'} engines: {node: '>= 8.10.0'}
@@ -8508,7 +8538,7 @@ packages:
dev: true dev: true
/concat-map/0.0.1: /concat-map/0.0.1:
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
/concat-stream/1.6.2: /concat-stream/1.6.2:
resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
@@ -8734,6 +8764,13 @@ packages:
mimic-response: 3.1.0 mimic-response: 3.1.0
dev: true dev: true
/deep-eql/4.1.3:
resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
engines: {node: '>=6'}
dependencies:
type-detect: 4.0.8
dev: true
/deep-equal/1.1.1: /deep-equal/1.1.1:
resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==} resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==}
dependencies: dependencies:
@@ -8878,6 +8915,11 @@ packages:
engines: {node: '>=0.3.1'} engines: {node: '>=0.3.1'}
dev: true dev: true
/diff/5.1.0:
resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
engines: {node: '>=0.3.1'}
dev: true
/dir-glob/3.0.1: /dir-glob/3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -10348,10 +10390,6 @@ packages:
pify: 2.3.0 pify: 2.3.0
dev: true dev: true
/expect-type/0.14.2:
resolution: {integrity: sha512-ed3+tr5ujbIYXZ8Pl/VgIphwJQ0q5tBLGGdn7Zvwt1WyPBRX83xjT5pT77P/GkuQbctx0K2ZNSSan7eruJqTCQ==}
dev: true
/express/4.18.2: /express/4.18.2:
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
engines: {node: '>= 0.10.0'} engines: {node: '>= 0.10.0'}
@@ -10879,6 +10917,10 @@ packages:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*} engines: {node: 6.* || 8.* || >= 10.*}
/get-func-name/2.0.0:
resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
dev: true
/get-intrinsic/1.1.3: /get-intrinsic/1.1.3:
resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==}
dependencies: dependencies:
@@ -11771,7 +11813,7 @@ packages:
resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
dependencies: dependencies:
'@babel/core': 7.20.5 '@babel/core': 7.20.12
'@istanbuljs/schema': 0.1.3 '@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0 istanbul-lib-coverage: 3.2.0
semver: 6.3.0 semver: 6.3.0
@@ -12035,6 +12077,10 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/jsonc-parser/3.2.0:
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
dev: true
/jsonfile/4.0.0: /jsonfile/4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
optionalDependencies: optionalDependencies:
@@ -12253,6 +12299,11 @@ packages:
json5: 2.2.3 json5: 2.2.3
dev: true dev: true
/local-pkg/0.4.3:
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
engines: {node: '>=14'}
dev: true
/locate-path/3.0.0: /locate-path/3.0.0:
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
engines: {node: '>=6'} engines: {node: '>=6'}
@@ -12333,6 +12384,12 @@ packages:
dependencies: dependencies:
js-tokens: 4.0.0 js-tokens: 4.0.0
/loupe/2.3.6:
resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
dependencies:
get-func-name: 2.0.0
dev: true
/lower-case/2.0.2: /lower-case/2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
dependencies: dependencies:
@@ -12642,6 +12699,15 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
/mlly/1.1.1:
resolution: {integrity: sha512-Jnlh4W/aI4GySPo6+DyTN17Q75KKbLTyFK8BrGhjNP4rxuUjbRWhE6gHg3bs33URWAF44FRm7gdQA348i3XxRw==}
dependencies:
acorn: 8.8.2
pathe: 1.1.0
pkg-types: 1.0.2
ufo: 1.1.0
dev: true
/mri/1.2.0: /mri/1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'} engines: {node: '>=4'}
@@ -13244,6 +13310,13 @@ packages:
yocto-queue: 0.1.0 yocto-queue: 0.1.0
dev: true dev: true
/p-limit/4.0.0:
resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
yocto-queue: 1.0.0
dev: true
/p-locate/3.0.0: /p-locate/3.0.0:
resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
engines: {node: '>=6'} engines: {node: '>=6'}
@@ -13378,6 +13451,10 @@ packages:
resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==}
dev: true dev: true
/pathval/1.1.1:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
/pause-stream/0.0.11: /pause-stream/0.0.11:
resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==}
dependencies: dependencies:
@@ -13459,6 +13536,14 @@ packages:
find-up: 5.0.0 find-up: 5.0.0
dev: true dev: true
/pkg-types/1.0.2:
resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==}
dependencies:
jsonc-parser: 3.2.0
mlly: 1.1.1
pathe: 1.1.0
dev: true
/playwright-core/1.29.1: /playwright-core/1.29.1:
resolution: {integrity: sha512-20Ai3d+lMkWpI9YZYlxk8gxatfgax5STW8GaMozAHwigLiyiKQrdkt7gaoT9UQR8FIVDg6qVXs9IoZUQrDjIIg==} resolution: {integrity: sha512-20Ai3d+lMkWpI9YZYlxk8gxatfgax5STW8GaMozAHwigLiyiKQrdkt7gaoT9UQR8FIVDg6qVXs9IoZUQrDjIIg==}
engines: {node: '>=14'} engines: {node: '>=14'}
@@ -13536,6 +13621,15 @@ packages:
engines: {node: '>=6'} engines: {node: '>=6'}
dev: true dev: true
/pretty-format/27.5.1:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
ansi-regex: 5.0.1
ansi-styles: 5.2.0
react-is: 17.0.2
dev: true
/pretty-hrtime/1.0.3: /pretty-hrtime/1.0.3:
resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
@@ -13837,6 +13931,10 @@ packages:
/react-is/16.13.1: /react-is/16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
/react-is/17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
dev: true
/react-is/18.1.0: /react-is/18.1.0:
resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==}
dev: true dev: true
@@ -14495,6 +14593,10 @@ packages:
object-inspect: 1.12.2 object-inspect: 1.12.2
dev: true dev: true
/siginfo/2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
dev: true
/signal-exit/3.0.7: /signal-exit/3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true dev: true
@@ -14688,11 +14790,19 @@ packages:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
dev: true dev: true
/stackback/0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
dev: true
/statuses/2.0.1: /statuses/2.0.1:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
dev: true dev: true
/std-env/3.3.2:
resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==}
dev: true
/store2/2.14.2: /store2/2.14.2:
resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==}
dev: true dev: true
@@ -14870,6 +14980,12 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dev: true dev: true
/strip-literal/1.0.1:
resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==}
dependencies:
acorn: 8.8.2
dev: true
/strip-outer/2.0.0: /strip-outer/2.0.0:
resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==} resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -15151,6 +15267,20 @@ packages:
globrex: 0.1.2 globrex: 0.1.2
dev: true dev: true
/tinybench/2.3.1:
resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==}
dev: true
/tinypool/0.3.1:
resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==}
engines: {node: '>=14.0.0'}
dev: true
/tinyspy/1.1.1:
resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==}
engines: {node: '>=14.0.0'}
dev: true
/tmp/0.0.33: /tmp/0.0.33:
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
engines: {node: '>=0.6.0'} engines: {node: '>=0.6.0'}
@@ -15314,6 +15444,11 @@ packages:
prelude-ls: 1.2.1 prelude-ls: 1.2.1
dev: true dev: true
/type-detect/4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
dev: true
/type-fest/0.13.1: /type-fest/0.13.1:
resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
engines: {node: '>=10'} engines: {node: '>=10'}
@@ -15420,6 +15555,10 @@ packages:
- debug - debug
dev: true dev: true
/ufo/1.1.0:
resolution: {integrity: sha512-LQc2s/ZDMaCN3QLpa+uzHUOQ7SdV0qgv3VBXOolQGXTaaZpIur6PwUclF5nN2hNkiTRcUugXd1zFOW3FLJ135Q==}
dev: true
/uglify-js/3.17.4: /uglify-js/3.17.4:
resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
engines: {node: '>=0.8.0'} engines: {node: '>=0.8.0'}
@@ -15653,6 +15792,29 @@ packages:
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
dev: true dev: true
/vite-node/0.28.5_@types+node@18.11.18:
resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==}
engines: {node: '>=v14.16.0'}
hasBin: true
dependencies:
cac: 6.7.14
debug: 4.3.4
mlly: 1.1.1
pathe: 1.1.0
picocolors: 1.0.0
source-map: 0.6.1
source-map-support: 0.5.21
vite: 4.1.1_@types+node@18.11.18
transitivePeerDependencies:
- '@types/node'
- less
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vite/4.1.1: /vite/4.1.1:
resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@@ -15720,6 +15882,61 @@ packages:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true dev: true
/vitest/0.28.5:
resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==}
engines: {node: '>=v14.16.0'}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@vitest/browser': '*'
'@vitest/ui': '*'
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
'@vitest/browser':
optional: true
'@vitest/ui':
optional: true
happy-dom:
optional: true
jsdom:
optional: true
dependencies:
'@types/chai': 4.3.4
'@types/chai-subset': 1.3.3
'@types/node': 18.11.18
'@vitest/expect': 0.28.5
'@vitest/runner': 0.28.5
'@vitest/spy': 0.28.5
'@vitest/utils': 0.28.5
acorn: 8.8.2
acorn-walk: 8.2.0
cac: 6.7.14
chai: 4.3.7
debug: 4.3.4
local-pkg: 0.4.3
pathe: 1.1.0
picocolors: 1.0.0
source-map: 0.6.1
std-env: 3.3.2
strip-literal: 1.0.1
tinybench: 2.3.1
tinypool: 0.3.1
tinyspy: 1.1.1
vite: 4.1.1_@types+node@18.11.18
vite-node: 0.28.5_@types+node@18.11.18
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/void-elements/3.1.0: /void-elements/3.1.0:
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@@ -15903,6 +16120,15 @@ packages:
isexe: 2.0.0 isexe: 2.0.0
dev: true dev: true
/why-is-node-running/2.2.2:
resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
engines: {node: '>=8'}
hasBin: true
dependencies:
siginfo: 2.0.0
stackback: 0.0.2
dev: true
/wide-align/1.1.5: /wide-align/1.1.5:
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
dependencies: dependencies:
@@ -16313,6 +16539,11 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
dev: true dev: true
/yocto-queue/1.0.0:
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
engines: {node: '>=12.20'}
dev: true
/zod/3.20.6: /zod/3.20.6:
resolution: {integrity: sha512-oyu0m54SGCtzh6EClBVqDDlAYRz4jrVtKwQ7ZnsEmMI9HnzuZFj8QFwAY1M5uniIYACdGvv0PBWPF2kO0aNofA==} resolution: {integrity: sha512-oyu0m54SGCtzh6EClBVqDDlAYRz4jrVtKwQ7ZnsEmMI9HnzuZFj8QFwAY1M5uniIYACdGvv0PBWPF2kO0aNofA==}
dev: false dev: false

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { clickPageMoreActions } from './libs/page-logic.js'; import { clickPageMoreActions } from './libs/page-logic';
loadPage(); loadPage();
test.describe('Change page mode(Paper or Edgeless)', () => { test.describe('Change page mode(Paper or Edgeless)', () => {

View File

@@ -1,12 +1,9 @@
import fs from 'fs'; import fs from 'fs';
import path from 'path'; import path from 'path';
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const pkgPath = path.join(__dirname, '../apps/web/package.json'); const pkgPath = path.join(__dirname, '../apps/web/package.json');
const record = fs.readFileSync(pkgPath, 'utf8'); const record = fs.readFileSync(pkgPath, 'utf8');
const temp = JSON.parse(record); const temp = JSON.parse(record);

View File

@@ -1,6 +1,6 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
loadPage(); loadPage();

View File

@@ -1,6 +1,6 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
loadPage(); loadPage();

View File

@@ -1,6 +1,6 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
loadPage(); loadPage();

View File

@@ -1,6 +1,6 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
loadPage(); loadPage();

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage } from './libs/page-logic.js'; import { newPage } from './libs/page-logic';
loadPage(); loadPage();

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage, clickPageMoreActions } from './libs/page-logic.js'; import { newPage, clickPageMoreActions } from './libs/page-logic';
loadPage(); loadPage();
test.describe('Local first export page', () => { test.describe('Local first export page', () => {

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage, clickPageMoreActions } from './libs/page-logic.js'; import { newPage, clickPageMoreActions } from './libs/page-logic';
loadPage(); loadPage();
test.describe('Local first favorite and cancel favorite page', () => { test.describe('Local first favorite and cancel favorite page', () => {

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage, clickPageMoreActions } from './libs/page-logic.js'; import { newPage, clickPageMoreActions } from './libs/page-logic';
loadPage(); loadPage();
test.describe('Local first favorite items ui', () => { test.describe('Local first favorite items ui', () => {

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage } from './libs/page-logic.js'; import { newPage } from './libs/page-logic';
loadPage(); loadPage();
test.describe('local first new page', () => { test.describe('local first new page', () => {

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage } from './libs/page-logic.js'; import { newPage } from './libs/page-logic';
loadPage(); loadPage();
test.describe('local first new page', () => { test.describe('local first new page', () => {

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage } from './libs/page-logic.js'; import { newPage } from './libs/page-logic';
loadPage(); loadPage();
test.describe('Local first delete page', () => { test.describe('Local first delete page', () => {

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage, clickPageMoreActions } from './libs/page-logic.js'; import { newPage, clickPageMoreActions } from './libs/page-logic';
loadPage(); loadPage();
test.describe('Local first delete page', () => { test.describe('Local first delete page', () => {

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { newPage } from './libs/page-logic.js'; import { newPage } from './libs/page-logic';
loadPage(); loadPage();
test.describe('Local first trash page', () => { test.describe('Local first trash page', () => {

View File

@@ -1,7 +1,7 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { createWorkspace } from './libs/workspace-logic.js'; import { createWorkspace } from './libs/workspace-logic';
loadPage(); loadPage();
test.describe('Local first workspace list', () => { test.describe('Local first workspace list', () => {

View File

@@ -1,6 +1,6 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
loadPage(); loadPage();

View File

@@ -1,5 +1,5 @@
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
loadPage(); loadPage();

View File

@@ -1,8 +1,8 @@
import { expect, type Page } from '@playwright/test'; import { expect, type Page } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
import { withCtrlOrMeta } from './libs/keyboard.js'; import { withCtrlOrMeta } from './libs/keyboard';
import { newPage } from './libs/page-logic.js'; import { newPage } from './libs/page-logic';
loadPage(); loadPage();
const openQuickSearchByShortcut = async (page: Page) => const openQuickSearchByShortcut = async (page: Page) =>

View File

@@ -1,6 +1,6 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
loadPage(); loadPage();

View File

@@ -1,6 +1,6 @@
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
import { test } from './libs/playwright.js'; import { test } from './libs/playwright';
import { loadPage } from './libs/load-page.js'; import { loadPage } from './libs/load-page';
loadPage(); loadPage();

8
tests/tsconfig.json Normal file
View File

@@ -0,0 +1,8 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"baseUrl": ".",
"noEmit": true
},
"include": ["**.spec.ts", "**.test.ts"]
}

View File

@@ -17,13 +17,17 @@
"experimentalDecorators": true, "experimentalDecorators": true,
"baseUrl": ".", "baseUrl": ".",
"paths": { "paths": {
"@/*": ["src/*"],
"@affine/component": ["packages/component/src/index"], "@affine/component": ["packages/component/src/index"],
"@affine/datacenter": ["packages/datacenter/src"], "@affine/datacenter": ["packages/datacenter/src"],
"@affine/i18n": ["packages/i18n/src"], "@affine/i18n": ["packages/i18n/src"],
"@affine/logger": ["packages/logger/src"] "@affine/logger": ["packages/logger/src"]
} }
}, },
"references": [
{
"path": "./tests"
}
],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules"] "exclude": ["node_modules"]
} }

13
vitest.config.ts Normal file
View File

@@ -0,0 +1,13 @@
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
include: ['packages/**/*.spec.ts'],
testTimeout: 5000,
coverage: {
provider: 'istanbul', // or 'c8'
reporter: ['lcov'],
reportsDirectory: '.coverage/store',
},
},
});