mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-16 19:57:52 +01:00
editor: add keyboard specific android editor tests
This commit is contained in:
committed by
Abdullah Atta
parent
58de07073d
commit
fc84c1af51
48
packages/editor-mobile/__e2e__/device-utils.ts
Normal file
48
packages/editor-mobile/__e2e__/device-utils.ts
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
This file is part of the Notesnook project (https://notesnook.com/)
|
||||||
|
|
||||||
|
Copyright (C) 2023 Streetwriters (Private) Limited
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { AndroidDevice } from "@playwright/test";
|
||||||
|
export type DeviceSize = {
|
||||||
|
width: number;
|
||||||
|
height: number;
|
||||||
|
/**
|
||||||
|
* Convert device independent height to device specific height
|
||||||
|
*/
|
||||||
|
h: (percentage: number) => number;
|
||||||
|
/**
|
||||||
|
* Convert device independent width to device specific width
|
||||||
|
*/
|
||||||
|
w: (percentage: number) => number;
|
||||||
|
};
|
||||||
|
export async function getDeviceSize(
|
||||||
|
device: AndroidDevice
|
||||||
|
): Promise<DeviceSize> {
|
||||||
|
const output = (await device.shell(`wm size`)).toString("utf-8");
|
||||||
|
const parsed = /(\d+)x(\d+)/g.exec(output);
|
||||||
|
if (!parsed) throw new Error("Failed to find device size.");
|
||||||
|
|
||||||
|
const width = parseInt(parsed[1]);
|
||||||
|
const height = parseInt(parsed[2]);
|
||||||
|
return {
|
||||||
|
height,
|
||||||
|
width,
|
||||||
|
h: (p) => p * height,
|
||||||
|
w: (p) => p * width
|
||||||
|
};
|
||||||
|
}
|
||||||
97
packages/editor-mobile/__e2e__/editor.mobile.test.ts
Normal file
97
packages/editor-mobile/__e2e__/editor.mobile.test.ts
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
This file is part of the Notesnook project (https://notesnook.com/)
|
||||||
|
|
||||||
|
Copyright (C) 2023 Streetwriters (Private) Limited
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { expect, test } from "@playwright/test";
|
||||||
|
import { androidTest } from "./test-utils";
|
||||||
|
import { getKey, setKeyboard, type } from "./keyboard-utils";
|
||||||
|
|
||||||
|
androidTest(
|
||||||
|
"backspacing from new line should not change caret position",
|
||||||
|
async ({ chrome, device, keyboards, baseURL, size }, info) => {
|
||||||
|
info.setTimeout(30000);
|
||||||
|
|
||||||
|
for (const keyboard of keyboards) {
|
||||||
|
await test.step(keyboard.name, async () => {
|
||||||
|
if (!(await setKeyboard(device, keyboard.ime)))
|
||||||
|
throw new Error("Failed to set keyboard.");
|
||||||
|
|
||||||
|
const page = await chrome.newPage();
|
||||||
|
|
||||||
|
await page.goto(baseURL);
|
||||||
|
|
||||||
|
await page.focus(".ProseMirror");
|
||||||
|
|
||||||
|
await page.waitForTimeout(1000);
|
||||||
|
|
||||||
|
await type(page, device, keyboard, size, "HI\nLA");
|
||||||
|
|
||||||
|
await page.waitForTimeout(100);
|
||||||
|
|
||||||
|
await page.keyboard.press("ArrowLeft");
|
||||||
|
await page.keyboard.press("ArrowLeft");
|
||||||
|
|
||||||
|
await device.input.tap(getKey(keyboard, size, "DEL"));
|
||||||
|
|
||||||
|
await page.waitForTimeout(100);
|
||||||
|
|
||||||
|
await type(page, device, keyboard, size, "HO");
|
||||||
|
|
||||||
|
expect((await page.textContent(".ProseMirror"))?.toLowerCase()).toBe(
|
||||||
|
"hihola"
|
||||||
|
);
|
||||||
|
|
||||||
|
await page.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
androidTest(
|
||||||
|
"pressing enter after entering a word should move the caret to the new line",
|
||||||
|
async ({ chrome, device, keyboards, baseURL, size }, info) => {
|
||||||
|
info.setTimeout(30000);
|
||||||
|
|
||||||
|
for (const keyboard of keyboards) {
|
||||||
|
await test.step(keyboard.name, async () => {
|
||||||
|
if (!(await setKeyboard(device, keyboard.ime)))
|
||||||
|
throw new Error("Failed to set keyboard.");
|
||||||
|
|
||||||
|
const page = await chrome.newPage();
|
||||||
|
|
||||||
|
await page.goto(baseURL);
|
||||||
|
|
||||||
|
await page.focus(".ProseMirror");
|
||||||
|
|
||||||
|
await page.waitForTimeout(1000);
|
||||||
|
|
||||||
|
await type(page, device, keyboard, size, "HELLO");
|
||||||
|
|
||||||
|
await page.waitForTimeout(100);
|
||||||
|
|
||||||
|
await type(page, device, keyboard, size, "\nWORLD");
|
||||||
|
|
||||||
|
expect((await page.innerHTML(".ProseMirror"))?.toLowerCase()).toBe(
|
||||||
|
'<p data-spacing="double">hello</p><p data-spacing="double">world</p>'
|
||||||
|
);
|
||||||
|
|
||||||
|
await page.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
213
packages/editor-mobile/__e2e__/keyboard-utils.ts
Normal file
213
packages/editor-mobile/__e2e__/keyboard-utils.ts
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
/*
|
||||||
|
This file is part of the Notesnook project (https://notesnook.com/)
|
||||||
|
|
||||||
|
Copyright (C) 2023 Streetwriters (Private) Limited
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { AndroidDevice, Page } from "@playwright/test";
|
||||||
|
import { DeviceSize } from "./device-utils";
|
||||||
|
|
||||||
|
export type Keyboard = {
|
||||||
|
name: string;
|
||||||
|
ime: string;
|
||||||
|
pkg: string;
|
||||||
|
layout: {
|
||||||
|
start: number;
|
||||||
|
end: number;
|
||||||
|
keyHeight: number;
|
||||||
|
keyWidth: number;
|
||||||
|
rowMargin: number;
|
||||||
|
specialKeyWidth: number;
|
||||||
|
spaceBarWidth: number;
|
||||||
|
rows: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const KEYBOARD_ROWS = [
|
||||||
|
"QWERTYUIOP".split(""),
|
||||||
|
["", ..."ASDFGHJKL".split(""), ""],
|
||||||
|
["SHIFT", ..."ZXCVBNM".split(""), "DEL"]
|
||||||
|
];
|
||||||
|
|
||||||
|
const SPECIAL_KEY_MAP = {
|
||||||
|
"\n": "Enter",
|
||||||
|
".": "Period",
|
||||||
|
" ": "Space"
|
||||||
|
} as const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pixels to device independent height (percentage based)
|
||||||
|
*/
|
||||||
|
function h(px: number) {
|
||||||
|
return px / 2460;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Pixels to device independent width (percentage based)
|
||||||
|
*/
|
||||||
|
function w(px: number) {
|
||||||
|
return px / 1080;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const SUPPORTED_KEYBOARDS: Keyboard[] = [
|
||||||
|
{
|
||||||
|
name: "Gboard",
|
||||||
|
ime: "com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME",
|
||||||
|
pkg: "com.google.android.inputmethod.latin",
|
||||||
|
|
||||||
|
layout: {
|
||||||
|
start: h(1700), //,
|
||||||
|
end: h(2300),
|
||||||
|
keyHeight: h(120),
|
||||||
|
keyWidth: w(100),
|
||||||
|
rowMargin: h(30),
|
||||||
|
specialKeyWidth: w(100 + 50),
|
||||||
|
spaceBarWidth: w(100 * 4),
|
||||||
|
rows: 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "OpenBoard",
|
||||||
|
ime: "org.dslul.openboard.inputmethod.latin/.LatinIME",
|
||||||
|
pkg: "org.dslul.openboard.inputmethod.latin",
|
||||||
|
layout: {
|
||||||
|
start: h(1650),
|
||||||
|
end: h(2300),
|
||||||
|
keyHeight: h(110),
|
||||||
|
rowMargin: h(40),
|
||||||
|
keyWidth: w(100),
|
||||||
|
specialKeyWidth: w(100 + 50),
|
||||||
|
spaceBarWidth: w(100 * 4),
|
||||||
|
rows: 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SwiftKey",
|
||||||
|
ime: "com.touchtype.swiftkey/com.touchtype.KeyboardService",
|
||||||
|
pkg: "com.touchtype.swiftkey",
|
||||||
|
layout: {
|
||||||
|
start: h(1800),
|
||||||
|
end: h(2300),
|
||||||
|
keyHeight: h(100),
|
||||||
|
rowMargin: h(10),
|
||||||
|
keyWidth: w(100),
|
||||||
|
specialKeyWidth: w(100 + 50),
|
||||||
|
spaceBarWidth: w(100 * 4.5),
|
||||||
|
rows: 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Grammarly Keyboard",
|
||||||
|
ime: "com.grammarly.android.keyboard/.LatinIME",
|
||||||
|
pkg: "com.grammarly.android.keyboard",
|
||||||
|
layout: {
|
||||||
|
start: h(1700),
|
||||||
|
end: h(2300),
|
||||||
|
keyHeight: h(120),
|
||||||
|
rowMargin: h(25),
|
||||||
|
keyWidth: w(100),
|
||||||
|
specialKeyWidth: w(140),
|
||||||
|
spaceBarWidth: w(100 * 4),
|
||||||
|
rows: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export async function getKeyboards(device: AndroidDevice) {
|
||||||
|
const imeList = (await device.shell("ime list -s -a"))
|
||||||
|
.toString("utf-8")
|
||||||
|
.split("\n");
|
||||||
|
return SUPPORTED_KEYBOARDS.filter((keyboard) =>
|
||||||
|
imeList.includes(keyboard.ime)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function setKeyboard(device: AndroidDevice, ime: string) {
|
||||||
|
const output = (await device.shell(`ime set ${ime}`)).toString("utf-8");
|
||||||
|
return output.includes(`Input method ${ime} selected`);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function type(
|
||||||
|
page: Page,
|
||||||
|
device: AndroidDevice,
|
||||||
|
keyboard: Keyboard,
|
||||||
|
deviceSize: DeviceSize,
|
||||||
|
str: string
|
||||||
|
) {
|
||||||
|
for (const char of str) {
|
||||||
|
const specialKey = SPECIAL_KEY_MAP[char];
|
||||||
|
if (specialKey)
|
||||||
|
await device.input.tap(getSpecialKey(keyboard, deviceSize, specialKey));
|
||||||
|
else await device.input.tap(getKey(keyboard, deviceSize, char));
|
||||||
|
|
||||||
|
await page.waitForTimeout(50);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getKey(
|
||||||
|
keyboard: Keyboard,
|
||||||
|
deviceSize: DeviceSize,
|
||||||
|
key: string
|
||||||
|
) {
|
||||||
|
key = key.toUpperCase();
|
||||||
|
const rowIndex = KEYBOARD_ROWS.findIndex((r) => r.includes(key));
|
||||||
|
if (rowIndex < 0) throw new Error(`Key (${key}) not found in any row.`);
|
||||||
|
const keyIndex = KEYBOARD_ROWS[rowIndex].indexOf(key);
|
||||||
|
const specialKeysCount = KEYBOARD_ROWS[rowIndex].filter(
|
||||||
|
(k, i) => k.length > 1 && i <= keyIndex
|
||||||
|
).length;
|
||||||
|
const emptySpaceCount = KEYBOARD_ROWS[rowIndex].filter(
|
||||||
|
(k, i) => k.length < 1 && i <= keyIndex
|
||||||
|
).length;
|
||||||
|
|
||||||
|
const keyHeight = deviceSize.h(keyboard.layout.keyHeight);
|
||||||
|
const rowMargin = deviceSize.h(keyboard.layout.rowMargin);
|
||||||
|
const keyWidth = deviceSize.w(keyboard.layout.keyWidth);
|
||||||
|
const specialKeyWidth = deviceSize.w(keyboard.layout.specialKeyWidth);
|
||||||
|
const start = deviceSize.h(keyboard.layout.start);
|
||||||
|
|
||||||
|
const specialKeysX = specialKeysCount * specialKeyWidth;
|
||||||
|
const emptySpaceX = emptySpaceCount * (keyWidth / 2);
|
||||||
|
const keysX = (keyIndex + 1 - specialKeysCount - emptySpaceCount) * keyWidth;
|
||||||
|
|
||||||
|
const y = (rowIndex + 1) * (keyHeight + rowMargin) + start;
|
||||||
|
|
||||||
|
//console.log(key, keysX + specialKeysX + emptySpaceX, y);
|
||||||
|
|
||||||
|
return { y, x: keysX + specialKeysX + emptySpaceX };
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getSpecialKey(
|
||||||
|
keyboard: Keyboard,
|
||||||
|
deviceSize: DeviceSize,
|
||||||
|
key: "Space" | "Enter" | "Period"
|
||||||
|
) {
|
||||||
|
const keyHeight = deviceSize.h(keyboard.layout.keyHeight);
|
||||||
|
const rowMargin = deviceSize.h(keyboard.layout.rowMargin);
|
||||||
|
const keyWidth = deviceSize.w(keyboard.layout.keyWidth);
|
||||||
|
const specialKeyWidth = deviceSize.w(keyboard.layout.specialKeyWidth);
|
||||||
|
const spaceBarWidth = deviceSize.w(keyboard.layout.spaceBarWidth);
|
||||||
|
const start = deviceSize.h(keyboard.layout.start);
|
||||||
|
|
||||||
|
return {
|
||||||
|
x:
|
||||||
|
key === "Space"
|
||||||
|
? specialKeyWidth + 2 * keyWidth + spaceBarWidth / 2
|
||||||
|
: key === "Period"
|
||||||
|
? specialKeyWidth + 3 * keyWidth + spaceBarWidth
|
||||||
|
: specialKeyWidth + 4 * keyWidth + spaceBarWidth,
|
||||||
|
y: keyboard.layout.rows * (keyHeight + rowMargin) + start
|
||||||
|
};
|
||||||
|
}
|
||||||
83
packages/editor-mobile/__e2e__/test-utils.ts
Normal file
83
packages/editor-mobile/__e2e__/test-utils.ts
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
This file is part of the Notesnook project (https://notesnook.com/)
|
||||||
|
|
||||||
|
Copyright (C) 2023 Streetwriters (Private) Limited
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {
|
||||||
|
AndroidDevice,
|
||||||
|
BrowserContext,
|
||||||
|
TestInfo,
|
||||||
|
_android as android,
|
||||||
|
test
|
||||||
|
} from "@playwright/test";
|
||||||
|
import { Keyboard, SUPPORTED_KEYBOARDS, getKeyboards } from "./keyboard-utils";
|
||||||
|
import * as ip from "ip";
|
||||||
|
import { DeviceSize, getDeviceSize } from "./device-utils";
|
||||||
|
|
||||||
|
type AndroidTestArgs = {
|
||||||
|
chrome: BrowserContext;
|
||||||
|
device: AndroidDevice;
|
||||||
|
baseURL: string;
|
||||||
|
keyboards: Keyboard[];
|
||||||
|
size: DeviceSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
const SERVER_ADDRESS = `http://${ip.address("Wi-Fi", "ipv4")}:3000`;
|
||||||
|
|
||||||
|
export function androidTest(
|
||||||
|
title: string,
|
||||||
|
testFunction: (
|
||||||
|
args: AndroidTestArgs,
|
||||||
|
testInfo: TestInfo
|
||||||
|
) => Promise<void> | void
|
||||||
|
) {
|
||||||
|
test(title, async ({ channel: _ }, testInfo) => {
|
||||||
|
const [device] = await android.devices();
|
||||||
|
if (!device) {
|
||||||
|
console.error("Please connect an Android device or emulator.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const keyboards = await getKeyboards(device);
|
||||||
|
if (!keyboards.length) {
|
||||||
|
console.error(
|
||||||
|
"No supported keyboard found. Please install one of",
|
||||||
|
SUPPORTED_KEYBOARDS
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const deviceSize = await getDeviceSize(device);
|
||||||
|
|
||||||
|
await device.shell("am force-stop com.android.chrome");
|
||||||
|
const chrome = await device.launchBrowser({});
|
||||||
|
|
||||||
|
await testFunction(
|
||||||
|
{
|
||||||
|
chrome: chrome,
|
||||||
|
device,
|
||||||
|
keyboards,
|
||||||
|
baseURL: SERVER_ADDRESS,
|
||||||
|
size: deviceSize
|
||||||
|
},
|
||||||
|
testInfo
|
||||||
|
);
|
||||||
|
|
||||||
|
await device.shell("am force-stop com.android.chrome");
|
||||||
|
await device.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
306
packages/editor-mobile/package-lock.json
generated
306
packages/editor-mobile/package-lock.json
generated
@@ -21,14 +21,17 @@
|
|||||||
"zustand": "^3.6.8"
|
"zustand": "^3.6.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@playwright/test": "^1.37.1",
|
||||||
"@testing-library/jest-dom": "^5.16.0",
|
"@testing-library/jest-dom": "^5.16.0",
|
||||||
"@testing-library/react": "^11.2.7",
|
"@testing-library/react": "^11.2.7",
|
||||||
"@testing-library/user-event": "^12.8.3",
|
"@testing-library/user-event": "^12.8.3",
|
||||||
|
"@types/ip": "^1.1.0",
|
||||||
"@types/jest": "^27.0.3",
|
"@types/jest": "^27.0.3",
|
||||||
"@types/node": "^16.11.11",
|
"@types/node": "^16.11.11",
|
||||||
"@types/react": "^17.0.2",
|
"@types/react": "^17.0.2",
|
||||||
"@types/react-dom": "^17.0.2",
|
"@types/react-dom": "^17.0.2",
|
||||||
"env-cmd": "^10.1.0",
|
"env-cmd": "^10.1.0",
|
||||||
|
"ip": "^1.1.8",
|
||||||
"react-error-overlay": "6.0.9",
|
"react-error-overlay": "6.0.9",
|
||||||
"react-scripts": "^5.0.1",
|
"react-scripts": "^5.0.1",
|
||||||
"web-vitals": "^1.1.2"
|
"web-vitals": "^1.1.2"
|
||||||
@@ -40,40 +43,42 @@
|
|||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.10.0",
|
"@emotion/react": "11.11.1",
|
||||||
"@notesnook/core": "file:../core",
|
"@notesnook/core": "file:../core",
|
||||||
"@notesnook/theme": "file:../theme",
|
"@notesnook/theme": "file:../theme",
|
||||||
"@notesnook/ui": "file:../ui",
|
"@notesnook/ui": "file:../ui",
|
||||||
"@social-embed/lib": "^0.0.2-next.1",
|
"@social-embed/lib": "^0.0.2-next.1",
|
||||||
"@theme-ui/components": ">=0.14.0",
|
"@theme-ui/components": ">=0.14.0",
|
||||||
"@theme-ui/core": ">=0.14.0",
|
"@theme-ui/core": ">=0.14.0",
|
||||||
"@tiptap/core": "2.0.3",
|
"@tiptap/core": "2.1.7",
|
||||||
"@tiptap/extension-character-count": "2.0.3",
|
"@tiptap/extension-character-count": "2.1.7",
|
||||||
"@tiptap/extension-color": "2.0.3",
|
"@tiptap/extension-color": "2.1.7",
|
||||||
"@tiptap/extension-font-family": "2.0.3",
|
"@tiptap/extension-font-family": "2.1.7",
|
||||||
"@tiptap/extension-history": "2.0.3",
|
"@tiptap/extension-history": "2.1.7",
|
||||||
"@tiptap/extension-horizontal-rule": "2.0.3",
|
"@tiptap/extension-horizontal-rule": "2.1.7",
|
||||||
"@tiptap/extension-link": "2.0.3",
|
"@tiptap/extension-link": "2.1.7",
|
||||||
"@tiptap/extension-placeholder": "2.0.3",
|
"@tiptap/extension-list-keymap": "2.1.7",
|
||||||
"@tiptap/extension-subscript": "2.0.3",
|
"@tiptap/extension-placeholder": "2.1.7",
|
||||||
"@tiptap/extension-superscript": "2.0.3",
|
"@tiptap/extension-subscript": "2.1.7",
|
||||||
"@tiptap/extension-table": "2.0.3",
|
"@tiptap/extension-superscript": "2.1.7",
|
||||||
"@tiptap/extension-table-cell": "2.0.3",
|
"@tiptap/extension-table": "2.1.7",
|
||||||
"@tiptap/extension-table-header": "2.0.3",
|
"@tiptap/extension-table-cell": "2.1.7",
|
||||||
"@tiptap/extension-table-row": "2.0.3",
|
"@tiptap/extension-table-header": "2.1.7",
|
||||||
"@tiptap/extension-task-item": "2.0.3",
|
"@tiptap/extension-table-row": "2.1.7",
|
||||||
"@tiptap/extension-task-list": "2.0.3",
|
"@tiptap/extension-task-item": "2.1.7",
|
||||||
"@tiptap/extension-text-align": "2.0.3",
|
"@tiptap/extension-task-list": "2.1.7",
|
||||||
"@tiptap/extension-text-style": "2.0.3",
|
"@tiptap/extension-text-align": "2.1.7",
|
||||||
"@tiptap/extension-underline": "2.0.3",
|
"@tiptap/extension-text-style": "2.1.7",
|
||||||
"@tiptap/pm": "2.0.3",
|
"@tiptap/extension-underline": "2.1.7",
|
||||||
"@tiptap/starter-kit": "2.0.3",
|
"@tiptap/pm": "2.1.7",
|
||||||
|
"@tiptap/starter-kit": "2.1.7",
|
||||||
"clipboard-polyfill": "4.0.0",
|
"clipboard-polyfill": "4.0.0",
|
||||||
"detect-indent": "^7.0.0",
|
"detect-indent": "^7.0.0",
|
||||||
"katex": "0.16.4",
|
"katex": "0.16.4",
|
||||||
"nanoid": "^4.0.1",
|
"nanoid": "^4.0.1",
|
||||||
"prism-themes": "^1.9.0",
|
"prism-themes": "^1.9.0",
|
||||||
"prosemirror-codemark": "^0.4.1",
|
"prosemirror-codemark": "^0.4.2",
|
||||||
|
"prosemirror-view": "^1.31.7",
|
||||||
"re-resizable": "^6.9.9",
|
"re-resizable": "^6.9.9",
|
||||||
"react-colorful": "^5.5.1",
|
"react-colorful": "^5.5.1",
|
||||||
"react-modal": "3.13.1",
|
"react-modal": "3.13.1",
|
||||||
@@ -3705,6 +3710,25 @@
|
|||||||
"resolved": "../theme",
|
"resolved": "../theme",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@playwright/test": {
|
||||||
|
"version": "1.37.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.37.1.tgz",
|
||||||
|
"integrity": "sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "*",
|
||||||
|
"playwright-core": "1.37.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"playwright": "cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"fsevents": "2.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@pmmmwh/react-refresh-webpack-plugin": {
|
"node_modules/@pmmmwh/react-refresh-webpack-plugin": {
|
||||||
"version": "0.5.10",
|
"version": "0.5.10",
|
||||||
"resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
|
"resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
|
||||||
@@ -4390,6 +4414,15 @@
|
|||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/ip": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/ip/-/ip-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-dwNe8gOoF70VdL6WJBwVHtQmAX4RMd62M+mAB9HQFjG1/qiCLM/meRy95Pd14FYBbEDwCq7jgJs89cHpLBu4HQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/istanbul-lib-coverage": {
|
"node_modules/@types/istanbul-lib-coverage": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
|
||||||
@@ -10201,6 +10234,12 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ip": {
|
||||||
|
"version": "1.1.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
|
||||||
|
"integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/ipaddr.js": {
|
"node_modules/ipaddr.js": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
|
||||||
@@ -14167,6 +14206,18 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/playwright-core": {
|
||||||
|
"version": "1.37.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.37.1.tgz",
|
||||||
|
"integrity": "sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==",
|
||||||
|
"dev": true,
|
||||||
|
"bin": {
|
||||||
|
"playwright-core": "cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/popmotion": {
|
"node_modules/popmotion": {
|
||||||
"version": "11.0.3",
|
"version": "11.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
|
||||||
@@ -17820,6 +17871,20 @@
|
|||||||
"is-typedarray": "^1.0.0"
|
"is-typedarray": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/typescript": {
|
||||||
|
"version": "4.9.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
||||||
|
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
|
||||||
|
"dev": true,
|
||||||
|
"peer": true,
|
||||||
|
"bin": {
|
||||||
|
"tsc": "bin/tsc",
|
||||||
|
"tsserver": "bin/tsserver"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/unbox-primitive": {
|
"node_modules/unbox-primitive": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
|
||||||
@@ -20568,13 +20633,15 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
|
||||||
"integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
|
"integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@csstools/selector-specificity": {
|
"@csstools/selector-specificity": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz",
|
||||||
"integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==",
|
"integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@emotion/babel-plugin": {
|
"@emotion/babel-plugin": {
|
||||||
"version": "11.11.0",
|
"version": "11.11.0",
|
||||||
@@ -20692,7 +20759,8 @@
|
|||||||
"@emotion/use-insertion-effect-with-fallbacks": {
|
"@emotion/use-insertion-effect-with-fallbacks": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz",
|
||||||
"integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw=="
|
"integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==",
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@emotion/utils": {
|
"@emotion/utils": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
@@ -21577,7 +21645,7 @@
|
|||||||
"@notesnook/editor": {
|
"@notesnook/editor": {
|
||||||
"version": "file:../editor",
|
"version": "file:../editor",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@emotion/react": "^11.10.0",
|
"@emotion/react": "11.11.1",
|
||||||
"@mdi/js": "^7.2.96",
|
"@mdi/js": "^7.2.96",
|
||||||
"@mdi/react": "^1.6.1",
|
"@mdi/react": "^1.6.1",
|
||||||
"@notesnook/core": "file:../core",
|
"@notesnook/core": "file:../core",
|
||||||
@@ -21586,27 +21654,28 @@
|
|||||||
"@social-embed/lib": "^0.0.2-next.1",
|
"@social-embed/lib": "^0.0.2-next.1",
|
||||||
"@theme-ui/components": ">=0.14.0",
|
"@theme-ui/components": ">=0.14.0",
|
||||||
"@theme-ui/core": ">=0.14.0",
|
"@theme-ui/core": ">=0.14.0",
|
||||||
"@tiptap/core": "2.0.3",
|
"@tiptap/core": "2.1.7",
|
||||||
"@tiptap/extension-character-count": "2.0.3",
|
"@tiptap/extension-character-count": "2.1.7",
|
||||||
"@tiptap/extension-color": "2.0.3",
|
"@tiptap/extension-color": "2.1.7",
|
||||||
"@tiptap/extension-font-family": "2.0.3",
|
"@tiptap/extension-font-family": "2.1.7",
|
||||||
"@tiptap/extension-history": "2.0.3",
|
"@tiptap/extension-history": "2.1.7",
|
||||||
"@tiptap/extension-horizontal-rule": "2.0.3",
|
"@tiptap/extension-horizontal-rule": "2.1.7",
|
||||||
"@tiptap/extension-link": "2.0.3",
|
"@tiptap/extension-link": "2.1.7",
|
||||||
"@tiptap/extension-placeholder": "2.0.3",
|
"@tiptap/extension-list-keymap": "2.1.7",
|
||||||
"@tiptap/extension-subscript": "2.0.3",
|
"@tiptap/extension-placeholder": "2.1.7",
|
||||||
"@tiptap/extension-superscript": "2.0.3",
|
"@tiptap/extension-subscript": "2.1.7",
|
||||||
"@tiptap/extension-table": "2.0.3",
|
"@tiptap/extension-superscript": "2.1.7",
|
||||||
"@tiptap/extension-table-cell": "2.0.3",
|
"@tiptap/extension-table": "2.1.7",
|
||||||
"@tiptap/extension-table-header": "2.0.3",
|
"@tiptap/extension-table-cell": "2.1.7",
|
||||||
"@tiptap/extension-table-row": "2.0.3",
|
"@tiptap/extension-table-header": "2.1.7",
|
||||||
"@tiptap/extension-task-item": "2.0.3",
|
"@tiptap/extension-table-row": "2.1.7",
|
||||||
"@tiptap/extension-task-list": "2.0.3",
|
"@tiptap/extension-task-item": "2.1.7",
|
||||||
"@tiptap/extension-text-align": "2.0.3",
|
"@tiptap/extension-task-list": "2.1.7",
|
||||||
"@tiptap/extension-text-style": "2.0.3",
|
"@tiptap/extension-text-align": "2.1.7",
|
||||||
"@tiptap/extension-underline": "2.0.3",
|
"@tiptap/extension-text-style": "2.1.7",
|
||||||
"@tiptap/pm": "2.0.3",
|
"@tiptap/extension-underline": "2.1.7",
|
||||||
"@tiptap/starter-kit": "2.0.3",
|
"@tiptap/pm": "2.1.7",
|
||||||
|
"@tiptap/starter-kit": "2.1.7",
|
||||||
"@types/katex": "^0.14.0",
|
"@types/katex": "^0.14.0",
|
||||||
"@types/prismjs": "^1.26.0",
|
"@types/prismjs": "^1.26.0",
|
||||||
"@types/react": "17.0.2",
|
"@types/react": "17.0.2",
|
||||||
@@ -21622,8 +21691,9 @@
|
|||||||
"katex": "0.16.4",
|
"katex": "0.16.4",
|
||||||
"nanoid": "^4.0.1",
|
"nanoid": "^4.0.1",
|
||||||
"prism-themes": "^1.9.0",
|
"prism-themes": "^1.9.0",
|
||||||
"prosemirror-codemark": "^0.4.1",
|
"prosemirror-codemark": "^0.4.2",
|
||||||
"prosemirror-test-builder": "^1.1.0",
|
"prosemirror-test-builder": "^1.1.0",
|
||||||
|
"prosemirror-view": "^1.31.7",
|
||||||
"re-resizable": "^6.9.9",
|
"re-resizable": "^6.9.9",
|
||||||
"react": "17.0.2",
|
"react": "17.0.2",
|
||||||
"react-colorful": "^5.5.1",
|
"react-colorful": "^5.5.1",
|
||||||
@@ -21656,6 +21726,17 @@
|
|||||||
"zustand": "^4.3.8"
|
"zustand": "^4.3.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@playwright/test": {
|
||||||
|
"version": "1.37.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.37.1.tgz",
|
||||||
|
"integrity": "sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "*",
|
||||||
|
"fsevents": "2.3.2",
|
||||||
|
"playwright-core": "1.37.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@pmmmwh/react-refresh-webpack-plugin": {
|
"@pmmmwh/react-refresh-webpack-plugin": {
|
||||||
"version": "0.5.10",
|
"version": "0.5.10",
|
||||||
"resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
|
"resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
|
||||||
@@ -22148,6 +22229,15 @@
|
|||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/ip": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/ip/-/ip-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-dwNe8gOoF70VdL6WJBwVHtQmAX4RMd62M+mAB9HQFjG1/qiCLM/meRy95Pd14FYBbEDwCq7jgJs89cHpLBu4HQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/istanbul-lib-coverage": {
|
"@types/istanbul-lib-coverage": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
|
||||||
@@ -22784,13 +22874,15 @@
|
|||||||
"version": "1.8.0",
|
"version": "1.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
|
||||||
"integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
|
"integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"acorn-jsx": {
|
"acorn-jsx": {
|
||||||
"version": "5.3.2",
|
"version": "5.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
|
||||||
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
|
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"acorn-node": {
|
"acorn-node": {
|
||||||
"version": "1.8.2",
|
"version": "1.8.2",
|
||||||
@@ -23151,7 +23243,8 @@
|
|||||||
"version": "3.5.2",
|
"version": "3.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
||||||
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"json-schema-traverse": {
|
"json-schema-traverse": {
|
||||||
"version": "0.4.1",
|
"version": "0.4.1",
|
||||||
@@ -23220,7 +23313,8 @@
|
|||||||
"version": "0.3.8",
|
"version": "0.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz",
|
||||||
"integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==",
|
"integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"babel-plugin-polyfill-corejs2": {
|
"babel-plugin-polyfill-corejs2": {
|
||||||
"version": "0.3.3",
|
"version": "0.3.3",
|
||||||
@@ -23942,7 +24036,8 @@
|
|||||||
"version": "6.3.1",
|
"version": "6.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
|
||||||
"integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
|
"integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"css-has-pseudo": {
|
"css-has-pseudo": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
@@ -24042,7 +24137,8 @@
|
|||||||
"version": "6.0.3",
|
"version": "6.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
|
||||||
"integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==",
|
"integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"css-select": {
|
"css-select": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
@@ -24157,7 +24253,8 @@
|
|||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
|
||||||
"integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
|
"integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"csso": {
|
"csso": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
@@ -25205,7 +25302,8 @@
|
|||||||
"version": "4.6.0",
|
"version": "4.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
|
||||||
"integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
|
"integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"eslint-plugin-testing-library": {
|
"eslint-plugin-testing-library": {
|
||||||
"version": "5.10.2",
|
"version": "5.10.2",
|
||||||
@@ -25819,7 +25917,8 @@
|
|||||||
"version": "3.5.2",
|
"version": "3.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
||||||
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"chalk": {
|
"chalk": {
|
||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
@@ -26460,7 +26559,8 @@
|
|||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
|
||||||
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
|
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"idb": {
|
"idb": {
|
||||||
"version": "7.1.1",
|
"version": "7.1.1",
|
||||||
@@ -26560,6 +26660,12 @@
|
|||||||
"side-channel": "^1.0.4"
|
"side-channel": "^1.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ip": {
|
||||||
|
"version": "1.1.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
|
||||||
|
"integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"ipaddr.js": {
|
"ipaddr.js": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
|
||||||
@@ -27793,7 +27899,8 @@
|
|||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
|
||||||
"integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
|
"integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"jest-regex-util": {
|
"jest-regex-util": {
|
||||||
"version": "27.5.1",
|
"version": "27.5.1",
|
||||||
@@ -28890,7 +28997,8 @@
|
|||||||
"mdi-react": {
|
"mdi-react": {
|
||||||
"version": "9.1.0",
|
"version": "9.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/mdi-react/-/mdi-react-9.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/mdi-react/-/mdi-react-9.1.0.tgz",
|
||||||
"integrity": "sha512-QFY9BkhX5MaEFpq+0ZGbM7S0iOGkgPb3RLRyzHJIxo8LT8jGu8VY0M+3tfXAaRgYN83t7ksA7D8kuFTt8d/oag=="
|
"integrity": "sha512-QFY9BkhX5MaEFpq+0ZGbM7S0iOGkgPb3RLRyzHJIxo8LT8jGu8VY0M+3tfXAaRgYN83t7ksA7D8kuFTt8d/oag==",
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"mdn-data": {
|
"mdn-data": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
@@ -29564,6 +29672,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"playwright-core": {
|
||||||
|
"version": "1.37.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.37.1.tgz",
|
||||||
|
"integrity": "sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"popmotion": {
|
"popmotion": {
|
||||||
"version": "11.0.3",
|
"version": "11.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
|
||||||
@@ -29599,7 +29713,8 @@
|
|||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz",
|
||||||
"integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==",
|
"integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-calc": {
|
"postcss-calc": {
|
||||||
"version": "8.2.4",
|
"version": "8.2.4",
|
||||||
@@ -29709,25 +29824,29 @@
|
|||||||
"version": "5.1.2",
|
"version": "5.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
|
||||||
"integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
|
"integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-discard-duplicates": {
|
"postcss-discard-duplicates": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
|
||||||
"integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
|
"integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-discard-empty": {
|
"postcss-discard-empty": {
|
||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
|
||||||
"integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
|
"integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-discard-overridden": {
|
"postcss-discard-overridden": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
|
||||||
"integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
|
"integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-double-position-gradients": {
|
"postcss-double-position-gradients": {
|
||||||
"version": "3.1.2",
|
"version": "3.1.2",
|
||||||
@@ -29752,7 +29871,8 @@
|
|||||||
"version": "5.0.2",
|
"version": "5.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz",
|
||||||
"integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==",
|
"integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-focus-visible": {
|
"postcss-focus-visible": {
|
||||||
"version": "6.0.4",
|
"version": "6.0.4",
|
||||||
@@ -29776,13 +29896,15 @@
|
|||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
|
||||||
"integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
|
"integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-gap-properties": {
|
"postcss-gap-properties": {
|
||||||
"version": "3.0.5",
|
"version": "3.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz",
|
||||||
"integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==",
|
"integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-image-set-function": {
|
"postcss-image-set-function": {
|
||||||
"version": "4.0.7",
|
"version": "4.0.7",
|
||||||
@@ -29808,7 +29930,8 @@
|
|||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
|
||||||
"integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
|
"integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-js": {
|
"postcss-js": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
@@ -29880,13 +30003,15 @@
|
|||||||
"version": "5.0.4",
|
"version": "5.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
|
||||||
"integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
|
"integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-media-minmax": {
|
"postcss-media-minmax": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
|
||||||
"integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
|
"integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-merge-longhand": {
|
"postcss-merge-longhand": {
|
||||||
"version": "5.1.7",
|
"version": "5.1.7",
|
||||||
@@ -29954,7 +30079,8 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
|
||||||
"integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
|
"integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-modules-local-by-default": {
|
"postcss-modules-local-by-default": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
@@ -30019,7 +30145,8 @@
|
|||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
|
||||||
"integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
|
"integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-normalize-display-values": {
|
"postcss-normalize-display-values": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
@@ -30099,7 +30226,8 @@
|
|||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz",
|
||||||
"integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==",
|
"integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-ordered-values": {
|
"postcss-ordered-values": {
|
||||||
"version": "5.1.3",
|
"version": "5.1.3",
|
||||||
@@ -30124,7 +30252,8 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
|
||||||
"integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
|
"integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-place": {
|
"postcss-place": {
|
||||||
"version": "7.0.5",
|
"version": "7.0.5",
|
||||||
@@ -30224,7 +30353,8 @@
|
|||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
|
||||||
"integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
|
"integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"postcss-selector-not": {
|
"postcss-selector-not": {
|
||||||
"version": "6.0.1",
|
"version": "6.0.1",
|
||||||
@@ -31171,7 +31301,8 @@
|
|||||||
"version": "3.5.2",
|
"version": "3.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
||||||
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"json-schema-traverse": {
|
"json-schema-traverse": {
|
||||||
"version": "0.4.1",
|
"version": "0.4.1",
|
||||||
@@ -31646,7 +31777,8 @@
|
|||||||
"version": "3.3.1",
|
"version": "3.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz",
|
||||||
"integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==",
|
"integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"style-value-types": {
|
"style-value-types": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
@@ -32129,6 +32261,13 @@
|
|||||||
"is-typedarray": "^1.0.0"
|
"is-typedarray": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"typescript": {
|
||||||
|
"version": "4.9.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
||||||
|
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
|
||||||
|
"dev": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"unbox-primitive": {
|
"unbox-primitive": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
|
||||||
@@ -32508,7 +32647,8 @@
|
|||||||
"version": "8.12.1",
|
"version": "8.12.1",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz",
|
||||||
"integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==",
|
"integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -32977,7 +33117,8 @@
|
|||||||
"version": "7.5.9",
|
"version": "7.5.9",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
|
||||||
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
|
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {}
|
||||||
},
|
},
|
||||||
"xml-name-validator": {
|
"xml-name-validator": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
@@ -33044,7 +33185,8 @@
|
|||||||
"zustand": {
|
"zustand": {
|
||||||
"version": "3.7.2",
|
"version": "3.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
|
||||||
"integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA=="
|
"integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
|
||||||
|
"requires": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,29 +3,32 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@emotion/react": "11.11.1",
|
||||||
|
"@mdi/js": "^7.2.96",
|
||||||
|
"@mdi/react": "^1.6.0",
|
||||||
"@notesnook/editor": "file:../editor",
|
"@notesnook/editor": "file:../editor",
|
||||||
"@notesnook/theme": "file:../theme",
|
"@notesnook/theme": "file:../theme",
|
||||||
"framer-motion": "^6.5.1",
|
"framer-motion": "^6.5.1",
|
||||||
"@mdi/js": "^7.2.96",
|
|
||||||
"@mdi/react": "^1.6.0",
|
|
||||||
"mdi-react": "9.1.0",
|
"mdi-react": "9.1.0",
|
||||||
"react": "^17.0.2",
|
"react": "^17.0.2",
|
||||||
"react-dom": "^17.0.2",
|
"react-dom": "^17.0.2",
|
||||||
"zustand": "^3.6.8",
|
"zustand": "^3.6.8"
|
||||||
"@emotion/react": "11.11.1"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@playwright/test": "^1.37.1",
|
||||||
"@testing-library/jest-dom": "^5.16.0",
|
"@testing-library/jest-dom": "^5.16.0",
|
||||||
"@testing-library/react": "^11.2.7",
|
"@testing-library/react": "^11.2.7",
|
||||||
"@testing-library/user-event": "^12.8.3",
|
"@testing-library/user-event": "^12.8.3",
|
||||||
|
"@types/ip": "^1.1.0",
|
||||||
"@types/jest": "^27.0.3",
|
"@types/jest": "^27.0.3",
|
||||||
"@types/node": "^16.11.11",
|
"@types/node": "^16.11.11",
|
||||||
"@types/react": "^17.0.2",
|
"@types/react": "^17.0.2",
|
||||||
"@types/react-dom": "^17.0.2",
|
"@types/react-dom": "^17.0.2",
|
||||||
|
"env-cmd": "^10.1.0",
|
||||||
|
"ip": "^1.1.8",
|
||||||
"react-error-overlay": "6.0.9",
|
"react-error-overlay": "6.0.9",
|
||||||
"react-scripts": "^5.0.1",
|
"react-scripts": "^5.0.1",
|
||||||
"web-vitals": "^1.1.2",
|
"web-vitals": "^1.1.2"
|
||||||
"env-cmd": "^10.1.0"
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "env-cmd -e all react-scripts start",
|
"start": "env-cmd -e all react-scripts start",
|
||||||
|
|||||||
52
packages/editor-mobile/playwright.config.ts
Normal file
52
packages/editor-mobile/playwright.config.ts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
This file is part of the Notesnook project (https://notesnook.com/)
|
||||||
|
|
||||||
|
Copyright (C) 2023 Streetwriters (Private) Limited
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { PlaywrightTestConfig } from "@playwright/test";
|
||||||
|
|
||||||
|
const IS_CI = !!process.env.CI;
|
||||||
|
|
||||||
|
const config: PlaywrightTestConfig = {
|
||||||
|
webServer: {
|
||||||
|
command: "npm run start",
|
||||||
|
port: 3000,
|
||||||
|
timeout: 60 * 1000,
|
||||||
|
reuseExistingServer: false
|
||||||
|
},
|
||||||
|
// Look for test files in thcleare "tests" directory, relative to this configuration file
|
||||||
|
testDir: "__e2e__",
|
||||||
|
|
||||||
|
timeout: IS_CI ? 60 * 1000 : 30 * 1000,
|
||||||
|
workers: IS_CI ? 2 : 2,
|
||||||
|
reporter: "list",
|
||||||
|
retries: IS_CI ? 1 : 0,
|
||||||
|
fullyParallel: true,
|
||||||
|
preserveOutput: "failures-only",
|
||||||
|
outputDir: "test-results",
|
||||||
|
use: {
|
||||||
|
headless: true,
|
||||||
|
acceptDownloads: true,
|
||||||
|
|
||||||
|
// Artifacts
|
||||||
|
trace: "retain-on-failure",
|
||||||
|
screenshot: "only-on-failure",
|
||||||
|
video: "retry-with-video"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
||||||
@@ -65,7 +65,6 @@ export const EmotionEditorToolbarTheme = (props: PropsWithChildren<any>) => {
|
|||||||
[colors, isDark]
|
[colors, isDark]
|
||||||
);
|
);
|
||||||
modifyToolbarTheme(theme);
|
modifyToolbarTheme(theme);
|
||||||
console.log(theme);
|
|
||||||
return (
|
return (
|
||||||
<EmotionThemeProvider theme={theme}>{props.children}</EmotionThemeProvider>
|
<EmotionThemeProvider theme={theme}>{props.children}</EmotionThemeProvider>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ export function post<T extends keyof typeof EventTypes>(
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
console.log(type, value);
|
// console.log(type, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user