Merge branch 'canary' into stable

This commit is contained in:
李华桥
2023-12-12 11:04:33 +08:00
26 changed files with 633 additions and 570 deletions
+1
View File
@@ -15,6 +15,7 @@ packages/backend/server/src/schema.gql
packages/frontend/i18n/src/i18n-generated.ts
packages/frontend/graphql/src/graphql/index.ts
tests/affine-legacy/**/static
.yarnrc.yml
# auto-generated by NAPI-RS
# fixme(@joooye34): need script to check and generate ignore list here
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -6,10 +6,10 @@ nmMode: hardlinks-local
nodeLinker: node-modules
npmAuthToken: '${NPM_TOKEN:-NONE}'
npmAuthToken: "${NPM_TOKEN:-NONE}"
npmPublishAccess: public
npmPublishRegistry: 'https://registry.npmjs.org'
npmPublishRegistry: "https://registry.npmjs.org"
yarnPath: .yarn/releases/yarn-4.0.1.cjs
yarnPath: .yarn/releases/yarn-4.0.2.cjs
+1 -1
View File
@@ -227,7 +227,7 @@ See [LICENSE] for details.
[jobs available]: ./docs/jobs.md
[latest packages]: https://github.com/toeverything/AFFiNE/pkgs/container/affine-self-hosted
[contributor license agreement]: https://github.com/toeverything/affine/edit/canary/.github/CLA.md
[rust-version-icon]: https://img.shields.io/badge/Rust-1.74.0-dea584
[rust-version-icon]: https://img.shields.io/badge/Rust-1.74.1-dea584
[stars-icon]: https://img.shields.io/github/stars/toeverything/AFFiNE.svg?style=flat&logo=github&colorB=red&label=stars
[codecov]: https://codecov.io/gh/toeverything/affine/branch/canary/graphs/badge.svg?branch=canary
[node-version-icon]: https://img.shields.io/badge/node-%3E=18.16.1-success
+3 -3
View File
@@ -109,13 +109,13 @@
"typescript": "^5.3.2",
"vite": "^5.0.6",
"vite-plugin-istanbul": "^5.0.0",
"vite-plugin-static-copy": "^0.17.1",
"vite-plugin-static-copy": "^1.0.0",
"vite-tsconfig-paths": "^4.2.1",
"vitest": "0.34.6",
"vitest-fetch-mock": "^0.2.2",
"vitest-mock-extended": "^1.3.1"
},
"packageManager": "yarn@4.0.1",
"packageManager": "yarn@4.0.2",
"resolutions": {
"vite": "^5.0.6",
"array-buffer-byte-length": "npm:@nolyfill/array-buffer-byte-length@latest",
@@ -174,7 +174,7 @@
"which-boxed-primitive": "npm:@nolyfill/which-boxed-primitive@latest",
"which-typed-array": "npm:@nolyfill/which-typed-array@latest",
"next-auth@^4.24.5": "patch:next-auth@npm%3A4.24.5#~/.yarn/patches/next-auth-npm-4.24.5-8428e11927.patch",
"@reforged/maker-appimage/@electron-forge/maker-base": "7.1.0",
"@reforged/maker-appimage/@electron-forge/maker-base": "7.2.0",
"macos-alias": "npm:macos-alias-building@latest",
"fs-xattr": "npm:@napi-rs/xattr@latest"
}
@@ -11,12 +11,8 @@ globalStyle('html', {
vars: lightCssVariables,
});
globalStyle('html', {
'@media': {
'(prefers-color-scheme: dark)': {
vars: darkCssVariables,
},
},
globalStyle('html[data-theme="dark"]', {
vars: darkCssVariables,
});
if (process.env.NODE_ENV === 'development') {
@@ -2,7 +2,6 @@
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="color-scheme" content="light dark" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1"
@@ -87,17 +87,9 @@ const CloudShareMenu = (props: ShareMenuProps) => {
}}
>
<Button data-testid="cloud-share-menu-button" type="primary">
<div
style={{
color: isSharedPage
? 'var(--affine-link-color)'
: 'var(--affine-text-primary-color)',
}}
>
{isSharedPage
? t['com.affine.share-menu.sharedButton']()
: t['com.affine.share-menu.shareButton']()}
</div>
{isSharedPage
? t['com.affine.share-menu.sharedButton']()
: t['com.affine.share-menu.shareButton']()}
</Button>
</Menu>
);
@@ -10,6 +10,9 @@ export const editor = style({
'--affine-editor-side-padding': '15px',
},
},
'&.is-public-page': {
height: '100%',
},
},
});
@@ -16,12 +16,19 @@ interface HeaderPros {
right?: ReactNode;
center?: ReactNode;
bottomBorder?: boolean;
isFloat?: boolean;
}
// The Header component is used to solve the following problems
// 1. Manage layout issues independently of page or business logic
// 2. Dynamic centered middle element (relative to the main-container), when the middle element is detected to collide with the two elements, the line wrapping process is performed
export const Header = ({ left, center, right, bottomBorder }: HeaderPros) => {
export const Header = ({
left,
center,
right,
bottomBorder,
isFloat,
}: HeaderPros) => {
const sidebarSwitchRef = useRef<HTMLDivElement | null>(null);
const leftSlotRef = useRef<HTMLDivElement | null>(null);
const centerSlotRef = useRef<HTMLDivElement | null>(null);
@@ -45,7 +52,9 @@ export const Header = ({ left, center, right, bottomBorder }: HeaderPros) => {
const appSidebarFloating = useAtomValue(appSidebarFloatingAtom);
return (
<div
className={clsx(style.header, bottomBorder && style.bottomBorder)}
className={clsx(style.header, bottomBorder && style.bottomBorder, {
[style.headerFloat]: isFloat,
})}
data-open={open}
data-sidebar-floating={appSidebarFloating}
data-testid="header"
@@ -24,6 +24,11 @@ export const header = style({
},
} as ComplexStyleRule);
export const headerFloat = style({
position: 'absolute',
width: '100%',
});
export const bottomBorder = style({
borderBottom: '1px solid var(--affine-border-color)',
});
@@ -1,46 +1,19 @@
import {
createEmptyCollection,
useCollectionManager,
useEditCollectionName,
} from '@affine/component/page-list';
import { IconButton } from '@affine/component/ui/button';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { PlusIcon } from '@blocksuite/icons';
import { nanoid } from 'nanoid';
import { useCallback } from 'react';
import type { ReactElement } from 'react';
import { collectionsCRUDAtom } from '../../../../atoms/collections';
import { useCurrentWorkspace } from '../../../../hooks/current/use-current-workspace';
import { useNavigateHelper } from '../../../../hooks/use-navigate-helper';
export const AddCollectionButton = () => {
const setting = useCollectionManager(collectionsCRUDAtom);
const t = useAFFiNEI18N();
const { node, open } = useEditCollectionName({
title: t['com.affine.editCollection.createCollection'](),
showTips: true,
});
const navigateHelper = useNavigateHelper();
const [workspace] = useCurrentWorkspace();
const handleClick = useCallback(() => {
open('')
.then(name => {
const id = nanoid();
return setting
.createCollection(createEmptyCollection(id, { name }))
.then(() => {
navigateHelper.jumpToCollection(workspace.id, id);
});
})
.catch(err => {
console.error(err);
});
}, [navigateHelper, open, setting, workspace.id]);
export const AddCollectionButton = ({
node,
onClick,
}: {
node: ReactElement | null;
onClick: () => void;
}) => {
return (
<>
<IconButton
data-testid="slider-bar-add-collection-button"
onClick={handleClick}
onClick={onClick}
size="small"
>
<PlusIcon />
@@ -1,8 +1,5 @@
import { AnimatedCollectionsIcon, toast } from '@affine/component';
import {
MenuItem as SidebarMenuItem,
MenuLinkItem as SidebarMenuLinkItem,
} from '@affine/component/app-sidebar';
import { MenuLinkItem as SidebarMenuLinkItem } from '@affine/component/app-sidebar';
import {
CollectionOperations,
filterPage,
@@ -10,10 +7,10 @@ import {
useCollectionManager,
useSavedCollections,
} from '@affine/component/page-list';
import { IconButton } from '@affine/component/ui/button';
import { Button, IconButton } from '@affine/component/ui/button';
import type { Collection, DeleteCollectionInfo } from '@affine/env/filter';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { InformationIcon, MoreHorizontalIcon } from '@blocksuite/icons';
import { MoreHorizontalIcon, ViewLayersIcon } from '@blocksuite/icons';
import type { PageMeta, Workspace } from '@blocksuite/store';
import type { DragEndEvent } from '@dnd-kit/core';
import { useDroppable } from '@dnd-kit/core';
@@ -155,19 +152,32 @@ const CollectionRenderer = ({
</Collapsible.Root>
);
};
export const CollectionsList = ({ workspace, info }: CollectionsListProps) => {
export const CollectionsList = ({
workspace,
info,
onCreate,
}: CollectionsListProps) => {
const metas = useBlockSuitePageMeta(workspace);
const { collections } = useSavedCollections(collectionsCRUDAtom);
const t = useAFFiNEI18N();
if (collections.length === 0) {
return (
<SidebarMenuItem
data-testid="slider-bar-collection-null-description"
icon={<InformationIcon />}
disabled
>
<span>{t['Create a collection']()}</span>
</SidebarMenuItem>
<div className={styles.emptyCollectionWrapper}>
<div className={styles.emptyCollectionContent}>
<div className={styles.emptyCollectionIconWrapper}>
<ViewLayersIcon className={styles.emptyCollectionIcon} />
</div>
<div
data-testid="slider-bar-collection-null-description"
className={styles.emptyCollectionMessage}
>
{t['com.affine.collections.empty.message']()}
</div>
</div>
<Button className={styles.emptyCollectionNewButton} onClick={onCreate}>
{t['com.affine.collections.empty.new-collection-button']()}
</Button>
</div>
);
}
return (
@@ -87,3 +87,45 @@ export const collapsibleContent = style({
},
},
});
export const emptyCollectionWrapper = style({
padding: '9px 0',
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
gap: 8,
});
export const emptyCollectionContent = style({
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
gap: 6,
});
export const emptyCollectionIconWrapper = style({
width: 36,
height: 36,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
borderRadius: '50%',
backgroundColor: 'var(--affine-background-secondary-color)',
});
export const emptyCollectionIcon = style({
fontSize: 20,
color: 'var(--affine-icon-secondary)',
});
export const emptyCollectionMessage = style({
fontSize: 'var(--affine-font-sm)',
textAlign: 'center',
color: 'var(--affine-text-secondary-color)',
});
export const emptyCollectionNewButton = style({
padding: '0 8px',
height: '30px',
fontSize: 'var(--affine-font-sm)',
});
@@ -8,4 +8,5 @@ export type FavoriteListProps = {
export type CollectionsListProps = {
workspace: Workspace;
info: DeleteCollectionInfo;
onCreate?: () => void;
};
@@ -12,15 +12,22 @@ import {
SidebarContainer,
SidebarScrollableContainer,
} from '@affine/component/app-sidebar';
import { MoveToTrash } from '@affine/component/page-list';
import {
createEmptyCollection,
MoveToTrash,
useCollectionManager,
useEditCollectionName,
} from '@affine/component/page-list';
import { Menu } from '@affine/component/ui/menu';
import { collectionsCRUDAtom } from '@affine/core/atoms/collections';
import { WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { FolderIcon, SettingsIcon } from '@blocksuite/icons';
import type { Page } from '@blocksuite/store';
import { type Page } from '@blocksuite/store';
import { useDroppable } from '@dnd-kit/core';
import { useAsyncCallback } from '@toeverything/hooks/affine-async-hooks';
import { useAtom, useAtomValue } from 'jotai';
import { nanoid } from 'nanoid';
import type { HTMLAttributes, ReactElement } from 'react';
import { forwardRef, useCallback, useEffect, useMemo } from 'react';
@@ -171,6 +178,24 @@ export const RootAppSidebar = ({
}, [setOpenUserWorkspaceList]);
useRegisterBrowserHistoryCommands(router.back, router.forward);
const userInfo = useDeleteCollectionInfo();
const setting = useCollectionManager(collectionsCRUDAtom);
const { node, open } = useEditCollectionName({
title: t['com.affine.editCollection.createCollection'](),
showTips: true,
});
const handleCreateCollection = useCallback(() => {
open('')
.then(async name => {
const id = nanoid();
await setting.createCollection(createEmptyCollection(id, { name }));
navigateHelper.jumpToCollection(blockSuiteWorkspace.id, id);
})
.catch(err => {
console.error(err);
});
}, [blockSuiteWorkspace.id, navigateHelper, open, setting]);
return (
<AppSidebar
router={router}
@@ -245,9 +270,13 @@ export const RootAppSidebar = ({
</CategoryDivider>
<FavoriteList workspace={blockSuiteWorkspace} />
<CategoryDivider label={t['com.affine.rootAppSidebar.collections']()}>
<AddCollectionButton />
<AddCollectionButton node={node} onClick={handleCreateCollection} />
</CategoryDivider>
<CollectionsList workspace={blockSuiteWorkspace} info={userInfo} />
<CollectionsList
workspace={blockSuiteWorkspace}
info={userInfo}
onCreate={handleCreateCollection}
/>
<CategoryDivider label={t['com.affine.rootAppSidebar.others']()} />
{/* fixme: remove the following spacer */}
<div style={{ height: '4px' }} />
@@ -20,6 +20,7 @@ export function ShareHeader({
return (
<Header
isFloat={publishMode === 'edgeless'}
left={<ShareHeaderLeftItem />}
center={
<BlockSuiteHeaderTitle
@@ -158,7 +158,7 @@ const DetailPageLayout = ({
onExpand={onExpandSidebar}
ref={sidebarRef}
defaultSizePixels={Math.max(sidebarState.width, 240)}
minSizePixels={240}
minSizePixels={sidebarState.isOpen ? 240 : 0}
maxSizePercentage={50}
>
{sidebar}
+10 -9
View File
@@ -36,15 +36,15 @@
"@blocksuite/lit": "0.11.0-nightly-202312070955-2b5bb47",
"@blocksuite/presets": "0.11.0-nightly-202312070955-2b5bb47",
"@blocksuite/store": "0.11.0-nightly-202312070955-2b5bb47",
"@electron-forge/cli": "^7.1.0",
"@electron-forge/core": "^7.1.0",
"@electron-forge/core-utils": "^7.1.0",
"@electron-forge/maker-deb": "^7.1.0",
"@electron-forge/maker-dmg": "^7.1.0",
"@electron-forge/maker-squirrel": "^7.1.0",
"@electron-forge/maker-zip": "^7.1.0",
"@electron-forge/plugin-auto-unpack-natives": "^7.1.0",
"@electron-forge/shared-types": "^7.1.0",
"@electron-forge/cli": "^7.2.0",
"@electron-forge/core": "^7.2.0",
"@electron-forge/core-utils": "^7.2.0",
"@electron-forge/maker-deb": "^7.2.0",
"@electron-forge/maker-dmg": "^7.2.0",
"@electron-forge/maker-squirrel": "^7.2.0",
"@electron-forge/maker-zip": "^7.2.0",
"@electron-forge/plugin-auto-unpack-natives": "^7.2.0",
"@electron-forge/shared-types": "^7.2.0",
"@electron/remote": "2.1.0",
"@reforged/maker-appimage": "^3.3.1",
"@toeverything/infra": "workspace:*",
@@ -63,6 +63,7 @@
"rxjs": "^7.8.1",
"semver": "^7.5.4",
"tinykeys": "^2.1.0",
"tree-kill": "^1.2.2",
"ts-node": "^10.9.1",
"undici": "^6.0.0",
"uuid": "^9.0.1",
+3 -2
View File
@@ -4,6 +4,7 @@ import { resolve } from 'node:path';
import type { ChildProcessWithoutNullStreams } from 'child_process';
import type { BuildContext } from 'esbuild';
import * as esbuild from 'esbuild';
import kill from 'tree-kill';
import { config, electronDir, rootDir } from './common';
@@ -24,9 +25,9 @@ function spawnOrReloadElectron() {
if (watchMode) {
return;
}
if (spawnProcess !== null) {
if (spawnProcess !== null && spawnProcess.pid) {
spawnProcess.off('exit', process.exit);
spawnProcess.kill('SIGINT');
kill(spawnProcess.pid);
spawnProcess = null;
}
@@ -553,6 +553,8 @@
"com.affine.collection.menu.rename": "Rename",
"com.affine.collectionBar.backToAll": "Back to all",
"com.affine.collections.header": "Collections",
"com.affine.collections.empty.message": "No collections",
"com.affine.collections.empty.new-collection-button": "New collection",
"com.affine.confirmModal.button.cancel": "Cancel",
"com.affine.currentYear": "Current Year",
"com.affine.deleteLeaveWorkspace.description": "Delete workspace from this device and optionally delete all data.",
+1 -1
View File
@@ -21,7 +21,7 @@
"clsx": "^2.0.0",
"idb": "^8.0.0",
"langchain": "^0.0.166",
"marked": "^9.1.2",
"marked": "^11.0.0",
"marked-gfm-heading-id": "^3.1.0",
"marked-mangle": "^1.1.4",
"zod": "^3.22.4"
@@ -23,7 +23,13 @@ export interface ConversationProps {
}
export const Conversation = (props: ConversationProps): ReactElement => {
const html = useMemo(() => marked.parse(props.text), [props.text]);
const html = useMemo(
() =>
marked.parse(props.text, {
async: false,
}) as string,
[props.text]
);
return (
<div
className={clsx(styles.containerStyle, {
+1 -1
View File
@@ -1,3 +1,3 @@
[toolchain]
channel = "1.74.0"
channel = "1.74.1"
profile = "default"
+1 -1
View File
@@ -51,7 +51,7 @@ export default {
}),
],
define: {
'process.on': '(() => void 0)',
'process.on': 'undefined',
'process.env': {},
'process.env.COVERAGE': JSON.stringify(!!process.env.COVERAGE),
'process.env.SHOULD_REPORT_TRACE': `${Boolean(
+132 -140
View File
@@ -324,7 +324,7 @@ __metadata:
idb: "npm:^8.0.0"
jotai: "npm:^2.5.1"
langchain: "npm:^0.0.166"
marked: "npm:^9.1.2"
marked: "npm:^11.0.0"
marked-gfm-heading-id: "npm:^3.1.0"
marked-mangle: "npm:^1.1.4"
react: "npm:18.2.0"
@@ -468,15 +468,15 @@ __metadata:
"@blocksuite/lit": "npm:0.11.0-nightly-202312070955-2b5bb47"
"@blocksuite/presets": "npm:0.11.0-nightly-202312070955-2b5bb47"
"@blocksuite/store": "npm:0.11.0-nightly-202312070955-2b5bb47"
"@electron-forge/cli": "npm:^7.1.0"
"@electron-forge/core": "npm:^7.1.0"
"@electron-forge/core-utils": "npm:^7.1.0"
"@electron-forge/maker-deb": "npm:^7.1.0"
"@electron-forge/maker-dmg": "npm:^7.1.0"
"@electron-forge/maker-squirrel": "npm:^7.1.0"
"@electron-forge/maker-zip": "npm:^7.1.0"
"@electron-forge/plugin-auto-unpack-natives": "npm:^7.1.0"
"@electron-forge/shared-types": "npm:^7.1.0"
"@electron-forge/cli": "npm:^7.2.0"
"@electron-forge/core": "npm:^7.2.0"
"@electron-forge/core-utils": "npm:^7.2.0"
"@electron-forge/maker-deb": "npm:^7.2.0"
"@electron-forge/maker-dmg": "npm:^7.2.0"
"@electron-forge/maker-squirrel": "npm:^7.2.0"
"@electron-forge/maker-zip": "npm:^7.2.0"
"@electron-forge/plugin-auto-unpack-natives": "npm:^7.2.0"
"@electron-forge/shared-types": "npm:^7.2.0"
"@electron/remote": "npm:2.1.0"
"@reforged/maker-appimage": "npm:^3.3.1"
"@toeverything/infra": "workspace:*"
@@ -499,6 +499,7 @@ __metadata:
rxjs: "npm:^7.8.1"
semver: "npm:^7.5.4"
tinykeys: "npm:^2.1.0"
tree-kill: "npm:^1.2.2"
ts-node: "npm:^10.9.1"
undici: "npm:^6.0.0"
uuid: "npm:^9.0.1"
@@ -644,7 +645,7 @@ __metadata:
typescript: "npm:^5.3.2"
vite: "npm:^5.0.6"
vite-plugin-istanbul: "npm:^5.0.0"
vite-plugin-static-copy: "npm:^0.17.1"
vite-plugin-static-copy: "npm:^1.0.0"
vite-tsconfig-paths: "npm:^4.2.1"
vitest: "npm:0.34.6"
vitest-fetch-mock: "npm:^0.2.2"
@@ -4605,12 +4606,12 @@ __metadata:
languageName: node
linkType: hard
"@electron-forge/cli@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/cli@npm:7.1.0"
"@electron-forge/cli@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/cli@npm:7.2.0"
dependencies:
"@electron-forge/core": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/core": "npm:7.2.0"
"@electron-forge/shared-types": "npm:7.2.0"
"@electron/get": "npm:^3.0.0"
chalk: "npm:^4.0.0"
commander: "npm:^4.1.1"
@@ -4622,15 +4623,15 @@ __metadata:
electron-forge: dist/electron-forge.js
electron-forge-vscode-nix: script/vscode.sh
electron-forge-vscode-win: script/vscode.cmd
checksum: c73a1448578f3b8502c8b4f34076966dc40eee7adc26b27d361d62bbacfac4dde990532b67012805350d8b05ea9533713e5ae416b0d25abd461166feab728d54
checksum: 96d29c15b5ab1425ac2efce1b48bd28ce7d930cfd9d00da8ff52c54060d4a227f7dbf85e41d6bfc28ac72cdda8d84a77ef5e5a2efdd39831f2751d8d1b184dc3
languageName: node
linkType: hard
"@electron-forge/core-utils@npm:7.1.0, @electron-forge/core-utils@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/core-utils@npm:7.1.0"
"@electron-forge/core-utils@npm:7.2.0, @electron-forge/core-utils@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/core-utils@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.2.0"
"@electron/rebuild": "npm:^3.2.10"
"@malept/cross-spawn-promise": "npm:^2.0.0"
chalk: "npm:^4.0.0"
@@ -4640,25 +4641,25 @@ __metadata:
log-symbols: "npm:^4.0.0"
semver: "npm:^7.2.1"
yarn-or-npm: "npm:^3.0.1"
checksum: 6fd2310f275cda236fba4d6adf3166dc6f9fa9478183e6ed736b08b02d805f3acab2dc76a596c7f53bdd0fcb19ba73e21fb93bf69ca20a1ebf4ef9995939e38c
checksum: 3ea83ba3120b4b9061356b855234a939c90a7c99806ec909b5de49f6cc2241138c46ba39db3b9a83d34260f2aa5b9f62c64537eba91fab81a75b8f122d5f3c9f
languageName: node
linkType: hard
"@electron-forge/core@npm:7.1.0, @electron-forge/core@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/core@npm:7.1.0"
"@electron-forge/core@npm:7.2.0, @electron-forge/core@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/core@npm:7.2.0"
dependencies:
"@electron-forge/core-utils": "npm:7.1.0"
"@electron-forge/maker-base": "npm:7.1.0"
"@electron-forge/plugin-base": "npm:7.1.0"
"@electron-forge/publisher-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/template-base": "npm:7.1.0"
"@electron-forge/template-vite": "npm:7.1.0"
"@electron-forge/template-vite-typescript": "npm:7.1.0"
"@electron-forge/template-webpack": "npm:7.1.0"
"@electron-forge/template-webpack-typescript": "npm:7.1.0"
"@electron-forge/tracer": "npm:7.1.0"
"@electron-forge/core-utils": "npm:7.2.0"
"@electron-forge/maker-base": "npm:7.2.0"
"@electron-forge/plugin-base": "npm:7.2.0"
"@electron-forge/publisher-base": "npm:7.2.0"
"@electron-forge/shared-types": "npm:7.2.0"
"@electron-forge/template-base": "npm:7.2.0"
"@electron-forge/template-vite": "npm:7.2.0"
"@electron-forge/template-vite-typescript": "npm:7.2.0"
"@electron-forge/template-webpack": "npm:7.2.0"
"@electron-forge/template-webpack-typescript": "npm:7.2.0"
"@electron-forge/tracer": "npm:7.2.0"
"@electron/get": "npm:^3.0.0"
"@electron/packager": "npm:^18.0.0"
"@electron/rebuild": "npm:^3.2.10"
@@ -4683,181 +4684,181 @@ __metadata:
sudo-prompt: "npm:^9.1.1"
username: "npm:^5.1.0"
yarn-or-npm: "npm:^3.0.1"
checksum: 0f8dc243e3f70a065c6a4cfcb18bf995257f294e1360ee46aa2f63a68c1c4522d8c9db1e26e0f59b22ae1280aa9b8696f48f97ec606576a450b0e11f5660d4f6
checksum: fcc0e2d8c6ad4f693beb04daebc172d00b285458399cc5046dddd43778bd3cd92bc6e7ca3b763de5b324c2d3bbca4eff6e192b93e8a93c4bd0c21664aebe3a63
languageName: node
linkType: hard
"@electron-forge/maker-base@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/maker-base@npm:7.1.0"
"@electron-forge/maker-base@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/maker-base@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.2.0"
fs-extra: "npm:^10.0.0"
which: "npm:^2.0.2"
checksum: 8e00e6477adf292186d7fb26f15bb9806d8c5dfd7011e8beab9dcaca519f4139b67f3a297906eb73987f660e2dd0cb881036cedcb53d4b4e1ee7a099995b782e
checksum: e0054c248acd7845a0ddd2f1b4856cd3648f72fdde6330ecc795619826197016f3c0fbf26d9b05b32ea1106a49dcf0b66e20431386847d400ddbd925db01cd64
languageName: node
linkType: hard
"@electron-forge/maker-deb@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/maker-deb@npm:7.1.0"
"@electron-forge/maker-deb@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/maker-deb@npm:7.2.0"
dependencies:
"@electron-forge/maker-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/maker-base": "npm:7.2.0"
"@electron-forge/shared-types": "npm:7.2.0"
electron-installer-debian: "npm:^3.2.0"
dependenciesMeta:
electron-installer-debian:
optional: true
checksum: 85b40ac7b1bde82cca33ac6a4c78b103dbe4bd18165effd48a140625ba3f18e382dc2402afbe9d4b00554a5485a5982c5fb47be4733cf5e9f992a010e5931315
checksum: 45036af3ad2743245c3de347a9c7d8dc338d330ba19a234fb0e6fe06a8d44d7bdf6e1e4ca78e55b58d0acb004cc793f452596ca534f24547f7521daa0479e0ed
languageName: node
linkType: hard
"@electron-forge/maker-dmg@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/maker-dmg@npm:7.1.0"
"@electron-forge/maker-dmg@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/maker-dmg@npm:7.2.0"
dependencies:
"@electron-forge/maker-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/maker-base": "npm:7.2.0"
"@electron-forge/shared-types": "npm:7.2.0"
electron-installer-dmg: "npm:^4.0.0"
fs-extra: "npm:^10.0.0"
dependenciesMeta:
electron-installer-dmg:
optional: true
checksum: 7a269bffa19bb010822efb3e51e7871c686416ddfab70df39e2d4637590d90f2f0b394a7d579cf0c6e38e1feacf085d9c259bc2d64e91496f51da61d0cf70dd4
checksum: 0111c2cebbaf2956e92a05e31fa96312e85d46eb1334be888fb4aca92fd3ae30189fb5b71fc7ac26eebab58b75538d1245cdf6d88319f1f78b0d5f80c92336a1
languageName: node
linkType: hard
"@electron-forge/maker-squirrel@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/maker-squirrel@npm:7.1.0"
"@electron-forge/maker-squirrel@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/maker-squirrel@npm:7.2.0"
dependencies:
"@electron-forge/maker-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/maker-base": "npm:7.2.0"
"@electron-forge/shared-types": "npm:7.2.0"
electron-winstaller: "npm:^5.0.0"
fs-extra: "npm:^10.0.0"
dependenciesMeta:
electron-winstaller:
optional: true
checksum: b4c22ace96b8bf204cc462e8c7b509a313ba4df1345bee26225f0a01243699cac04249194168bb7fc1e3c7a7a8eff562e507c038a6a85d4a297ff72bd06c5e1c
checksum: 58b6898e0617d0fa9b6fed0a2a4d80d1bbc93f833476de7dbd79bcedac936741784aa9846836b320c35c56df5ccb53aa672eee04dd9c710a815cf1d93e79aba9
languageName: node
linkType: hard
"@electron-forge/maker-zip@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/maker-zip@npm:7.1.0"
"@electron-forge/maker-zip@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/maker-zip@npm:7.2.0"
dependencies:
"@electron-forge/maker-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/maker-base": "npm:7.2.0"
"@electron-forge/shared-types": "npm:7.2.0"
cross-zip: "npm:^4.0.0"
fs-extra: "npm:^10.0.0"
got: "npm:^11.8.5"
checksum: ac7f751d8277e477bdcdc75bc75c590fb865b0eef8a0185fc2b9645f1d1fda281ceb186d4fffa2c7136ae38bf32c891fca6c3f28e808f618b5c7693f79fd817b
checksum: a03f844429848fc241c9206ccbedc534b9c17f9bdc9da5254be608c24d021e6dfb53243e2d7e1e0f9ba885bfdd9f7f675c2468cd54cd1fdc626a2c8dad8fc099
languageName: node
linkType: hard
"@electron-forge/plugin-auto-unpack-natives@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/plugin-auto-unpack-natives@npm:7.1.0"
"@electron-forge/plugin-auto-unpack-natives@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/plugin-auto-unpack-natives@npm:7.2.0"
dependencies:
"@electron-forge/plugin-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.1.0"
checksum: fb5c1c04af4152e75cb356989307182ac2582ee9ad193b7e646a80e6be7b847e89b5e7b1322d1c4db6ef45080fe010203d60fa2fe0831bdea46ef3b5d51f7638
"@electron-forge/plugin-base": "npm:7.2.0"
"@electron-forge/shared-types": "npm:7.2.0"
checksum: bab7524638165b291129f7c82fb80a1e954ae80e0bd172b977e484aa1ece657a04150a7b69758f97bb2611d2c79254588ad9b652619ba91a2b6848fbdee8fff9
languageName: node
linkType: hard
"@electron-forge/plugin-base@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/plugin-base@npm:7.1.0"
"@electron-forge/plugin-base@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/plugin-base@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
checksum: c686c5b3fc4a26873a7e6a67386e465831123cafb1b61463eaa58c093507ad55d162cc7eb1e4c4279ba08850aeaa7765dffb166a5b8e7c4b2e149c2aa976200d
"@electron-forge/shared-types": "npm:7.2.0"
checksum: e8cc39879def2c5ab24fbd87c7cec7bdcd8210f9aa8a0a4c6fec3989467369489d7ecc6fc996a349deb2b8dd886609e3ccb79252afa18331015481b86bd73410
languageName: node
linkType: hard
"@electron-forge/publisher-base@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/publisher-base@npm:7.1.0"
"@electron-forge/publisher-base@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/publisher-base@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
checksum: a8d231a129b5b3a7313c864455f5d4e9437c686b88fc80b5be6f3f6a5db0206ce92d28d003e6faf33552a9da33da3733a5af47df28e7969b5b8717565ac41f32
"@electron-forge/shared-types": "npm:7.2.0"
checksum: be0544216759138de1a007b1cd821bc04f6483bcc5c4cedb47a27a02554e2dac3e04e8f64a2ec4585b6efb565973fabdae87f5c0cd0c96a5c99ef50ddfce5cfc
languageName: node
linkType: hard
"@electron-forge/shared-types@npm:7.1.0, @electron-forge/shared-types@npm:^7.1.0":
version: 7.1.0
resolution: "@electron-forge/shared-types@npm:7.1.0"
"@electron-forge/shared-types@npm:7.2.0, @electron-forge/shared-types@npm:^7.2.0":
version: 7.2.0
resolution: "@electron-forge/shared-types@npm:7.2.0"
dependencies:
"@electron-forge/tracer": "npm:7.1.0"
"@electron-forge/tracer": "npm:7.2.0"
"@electron/packager": "npm:^18.0.0"
"@electron/rebuild": "npm:^3.2.10"
listr2: "npm:^5.0.3"
checksum: 24caf5e607d253a94a976b3495eaf063480ded669a3fa6ce6f29975c0554eeb98760f3d22150b9dee2e63839dcf9ffe013301e4a1d6b043ddb75c50a5e881a8b
checksum: f844c179b12befe6712485a373ebc14a4d385cf2a4a0534b83547934a98a64d6a9637c9ab04fd030ed4e37c4902c4d17748d6d18dad3eb8635122e8c79189323
languageName: node
linkType: hard
"@electron-forge/template-base@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/template-base@npm:7.1.0"
"@electron-forge/template-base@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/template-base@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.2.0"
"@malept/cross-spawn-promise": "npm:^2.0.0"
debug: "npm:^4.3.1"
fs-extra: "npm:^10.0.0"
username: "npm:^5.1.0"
checksum: a01223886a7b9891a1ef618d601670e6edad214b029de9450944be18b4f259c26a0429a1ff0817f1ee766c95fe0fd3b400218e970681e5145dab06871159f143
checksum: f8a15cd2cb40943ac829e197ef09d9cec5ab4be428cd57cc3823932b602d77ddf35b3796fa3f7c28338425047ba59f3faa5cf04abb1e7cdefd8fb3edb61f42af
languageName: node
linkType: hard
"@electron-forge/template-vite-typescript@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/template-vite-typescript@npm:7.1.0"
"@electron-forge/template-vite-typescript@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/template-vite-typescript@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/template-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.2.0"
"@electron-forge/template-base": "npm:7.2.0"
fs-extra: "npm:^10.0.0"
checksum: d9343af750852cb99ea246ce9dfe92de74cff03b98c4ad226d4913410aa5eb454196a3e2f1af1ba691e954b9b1ee4adccd49fc04869165d1d13adc6b5af46641
checksum: 222446ada8874ed13a19f5b7608eba00ecf5bfd58ad8dc11734b1728d1cb485535c1ea9ab89467115243b44b9f031e20129dd493626b5141f4fab97de2db2ed4
languageName: node
linkType: hard
"@electron-forge/template-vite@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/template-vite@npm:7.1.0"
"@electron-forge/template-vite@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/template-vite@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/template-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.2.0"
"@electron-forge/template-base": "npm:7.2.0"
fs-extra: "npm:^10.0.0"
checksum: 2285cdc76f2d73c0dd76eefcf9c6371db611321e339efa6cd6fefc4339d36aaf58dcbd6f16c2d47c5daf4344abb0bfb289a536581c3d52087a5c5956d7187dd1
checksum: 20ba694cc38ef77b11bd8208724eefdeebc449904a46b7eef3135f4114a1286b55a1e1bd6bc7b9136be742adf1fbf5fc389a60dc0611d662a1e735478c5636f3
languageName: node
linkType: hard
"@electron-forge/template-webpack-typescript@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/template-webpack-typescript@npm:7.1.0"
"@electron-forge/template-webpack-typescript@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/template-webpack-typescript@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/template-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.2.0"
"@electron-forge/template-base": "npm:7.2.0"
fs-extra: "npm:^10.0.0"
checksum: 6aed304f16e484bcedcdd2a36c0dd2bb2f75c950df7fd2fa3af8bccebc3be9901328f0e434e9dddd1ec33c4c5dd4dc293372ab67f82fb9f4d7a12ac647ae40df
checksum: 3a54ac9e24335af6cc022ad43afab1f3952c1d44f9c86dbc82134b7159ec0c0bd94f4f7375654ec8a6730cda931782035f395a3f2f4b940857b5b67cc9805027
languageName: node
linkType: hard
"@electron-forge/template-webpack@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/template-webpack@npm:7.1.0"
"@electron-forge/template-webpack@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/template-webpack@npm:7.2.0"
dependencies:
"@electron-forge/shared-types": "npm:7.1.0"
"@electron-forge/template-base": "npm:7.1.0"
"@electron-forge/shared-types": "npm:7.2.0"
"@electron-forge/template-base": "npm:7.2.0"
fs-extra: "npm:^10.0.0"
checksum: c79748332478d1d4e354b424e95f22fb341a7271b70102270d2fd3d5d9e6452900782dcfc04690c79378f7311d015f38c21e71838911588b9a1554f51129ea0c
checksum: 9f06d3918b07c321331c576b4f60f10a579340c26bef757615b7d449cde8383a1c225a6faef943645b420d981d7a81161f0352d871844d0163dc97155a493d49
languageName: node
linkType: hard
"@electron-forge/tracer@npm:7.1.0":
version: 7.1.0
resolution: "@electron-forge/tracer@npm:7.1.0"
"@electron-forge/tracer@npm:7.2.0":
version: 7.2.0
resolution: "@electron-forge/tracer@npm:7.2.0"
dependencies:
chrome-trace-event: "npm:^1.0.3"
checksum: d537a2de2605a5704530d62f04c339f033d230d1afcf72e0e678db5743c684deae8614c11072bff75682a917b99818a9658f0508bbb59ea3fecfd09b7a3251cb
checksum: fed8ccbc823abe621eabfc3648a48d611944f90b9ed4ec7206447ff42539b74fb30fc66dbc938bbc9d577d26af7ac59beff275f67e57f61d1cce3d932a278c03
languageName: node
linkType: hard
@@ -27007,12 +27008,12 @@ __metadata:
languageName: node
linkType: hard
"marked@npm:*":
version: 10.0.0
resolution: "marked@npm:10.0.0"
"marked@npm:*, marked@npm:^11.0.0":
version: 11.0.0
resolution: "marked@npm:11.0.0"
bin:
marked: bin/marked.js
checksum: f7442f6bd6a678e48eb3ca2f4b15e6d80ce63fa8363d319733ad7d968cfea410eacd01e764dc76c59d7ff77d409007bf5628d215ec84ef4ffa65f44ae08f0255
checksum: bc533791a77a041291a92f91083482a95d59767c4adaf39c4aa3008400446e586933578065ceb4c66c340aed0fb13a61b489d7d88adfbecda7c8ed7bfcead102
languageName: node
linkType: hard
@@ -27025,15 +27026,6 @@ __metadata:
languageName: node
linkType: hard
"marked@npm:^9.1.2":
version: 9.1.6
resolution: "marked@npm:9.1.6"
bin:
marked: bin/marked.js
checksum: 29d073500c70b6b53cd35a8d19f5e43df6e2819ddeca8848a31901b87b82ca0ea46a8a831920c656c69c33ad5dce4b75654c4c4ced34a67f4e4e4a31c7620cfe
languageName: node
linkType: hard
"matcher@npm:^3.0.0":
version: 3.0.0
resolution: "matcher@npm:3.0.0"
@@ -35091,11 +35083,11 @@ __metadata:
"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.3.2#optional!builtin<compat/typescript>":
version: 5.3.2
resolution: "typescript@patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=29ae49"
resolution: "typescript@patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 43c3346528a1b410b9ee7f218d709ce8d1336eb8e47b0f8bb43954f98ed43fd11e35de398c9a5f4a085b6889c89782362789b00db7aac862bd09d083058a01a2
checksum: 1b45cdfb577a78ae7a9a9d0b77a7b772142cb98ba05e4e5aefba7044a028ded885bcecef63166407a5986645cea816fe4986894336aacd5e791796ea79a6a7ed
languageName: node
linkType: hard
@@ -35950,17 +35942,17 @@ __metadata:
languageName: node
linkType: hard
"vite-plugin-static-copy@npm:^0.17.1":
version: 0.17.1
resolution: "vite-plugin-static-copy@npm:0.17.1"
"vite-plugin-static-copy@npm:^1.0.0":
version: 1.0.0
resolution: "vite-plugin-static-copy@npm:1.0.0"
dependencies:
chokidar: "npm:^3.5.3"
fast-glob: "npm:^3.2.11"
fs-extra: "npm:^11.1.0"
picocolors: "npm:^1.0.0"
peerDependencies:
vite: ^3.0.0 || ^4.0.0 || ^5.0.0
checksum: 53762f6504ea65148d92603b0e01ea7c67008d6c1adab2cc5575c0d76d8f456e5b4a88c9379376ed6415bea1348042b2648a1a91f6a3a92ab87f49ec80471855
vite: ^5.0.0
checksum: 838353190f60973bbc6fb944336caf4375cd5fb7e2534c219e3185b28bfdf2e87ee3babc56c538a7f7d78e15c662b7b8b3a2d2a8d97f1e74dc8f3d71f6c3f539
languageName: node
linkType: hard