orgnote-api 0.20.2 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.d.ts +93 -98
- package/constants/{command-groups.contant.d.ts → command-groups.d.ts} +2 -1
- package/constants/{command-groups.contant.js → command-groups.js} +2 -0
- package/constants/extension-errors.d.ts +9 -0
- package/constants/extension-errors.js +18 -0
- package/constants/file-guard-errors.d.ts +8 -0
- package/constants/file-guard-errors.js +18 -0
- package/constants/git-errors.d.ts +9 -0
- package/constants/git-errors.js +18 -0
- package/constants/i18n-keys.d.ts +371 -0
- package/constants/i18n-keys.js +158 -0
- package/constants/index.d.ts +9 -1
- package/constants/index.js +9 -1
- package/constants/oauth-providers.d.ts +1 -0
- package/constants/oauth-providers.js +1 -0
- package/constants/route-names.d.ts +36 -0
- package/constants/route-names.js +37 -0
- package/constants/route-paths.d.ts +5 -0
- package/constants/route-paths.js +4 -0
- package/constants/style-sizes.d.ts +1 -0
- package/constants/style-sizes.js +1 -0
- package/encryption/__tests__/encryption.spec.js +4 -5
- package/encryption/__tests__/note-encryption.spec.js +46 -348
- package/encryption/encryption.d.ts +9 -4
- package/encryption/encryption.js +25 -5
- package/encryption/note-encryption.d.ts +1 -1
- package/encryption/note-encryption.js +6 -6
- package/files-api.d.ts +0 -1
- package/index.d.ts +4 -1
- package/index.js +4 -1
- package/mappers/orgnode-to-note.d.ts +2 -2
- package/mappers/orgnode-to-note.js +3 -2
- package/models/auth-store.d.ts +3 -3
- package/models/buffer-store.d.ts +14 -0
- package/models/buffer.d.ts +24 -0
- package/models/colors.d.ts +1 -0
- package/models/command.d.ts +13 -8
- package/models/commands-group-store.d.ts +11 -0
- package/models/commands-store.d.ts +13 -0
- package/models/completion-store.d.ts +14 -0
- package/models/completion.d.ts +16 -7
- package/models/config-store.d.ts +9 -0
- package/models/confirmation-modal.d.ts +11 -0
- package/models/context-menu-store.d.ts +10 -0
- package/models/cron-store.d.ts +21 -0
- package/models/cron-task.d.ts +30 -0
- package/models/css-utils.d.ts +17 -0
- package/models/default-commands.d.ts +52 -3
- package/models/default-commands.js +59 -2
- package/models/encryption-store.d.ts +10 -0
- package/models/encryption-store.js +1 -0
- package/models/encryption.d.ts +54 -11
- package/models/encryption.js +28 -1
- package/models/extension-registry-store.d.ts +9 -0
- package/models/extension-registry-store.js +1 -0
- package/models/extension-store.d.ts +18 -0
- package/models/extension-store.js +1 -0
- package/models/extension.d.ts +96 -24
- package/models/extension.js +88 -1
- package/models/file-guard-store.d.ts +14 -0
- package/models/file-guard-store.js +1 -0
- package/models/file-guard.d.ts +27 -0
- package/models/file-guard.js +1 -0
- package/models/{file-cache.d.ts → file-info.d.ts} +1 -1
- package/models/file-info.js +1 -0
- package/models/file-manager-store.d.ts +10 -12
- package/models/file-opener-store.d.ts +6 -4
- package/models/file-system-manager-store.d.ts +13 -0
- package/models/file-system-manager-store.js +1 -0
- package/models/file-system-store.d.ts +19 -0
- package/models/file-system-store.js +1 -0
- package/models/file-system.d.ts +32 -5
- package/models/file-system.js +2 -0
- package/models/file-upload.d.ts +6 -0
- package/models/file-upload.js +1 -0
- package/models/file-watcher-store.d.ts +18 -0
- package/models/file-watcher-store.js +1 -0
- package/models/files-store.d.ts +2 -2
- package/models/git-store.d.ts +12 -0
- package/models/git-store.js +1 -0
- package/models/git.d.ts +47 -0
- package/models/git.js +1 -0
- package/models/i18n-keys.d.ts +2 -0
- package/models/i18n-keys.js +1 -0
- package/models/index.d.ts +56 -2
- package/models/index.js +59 -2
- package/models/layout-snapshot-repository.d.ts +14 -0
- package/models/layout-snapshot-repository.js +1 -0
- package/models/layout-store.d.ts +17 -0
- package/models/layout-store.js +1 -0
- package/models/layout.d.ts +16 -0
- package/models/layout.js +1 -0
- package/models/log-repository.d.ts +17 -0
- package/models/log-repository.js +1 -0
- package/models/log-store.d.ts +15 -0
- package/models/log-store.js +1 -0
- package/models/log.d.ts +12 -0
- package/models/log.js +1 -0
- package/models/logger.d.ts +8 -0
- package/models/logger.js +1 -0
- package/models/menu-action.d.ts +18 -0
- package/models/menu-action.js +1 -0
- package/models/modal-store.d.ts +16 -0
- package/models/modal-store.js +1 -0
- package/models/modal.d.ts +10 -2
- package/models/note.d.ts +30 -13
- package/models/notification-config.d.ts +14 -0
- package/models/notification-config.js +1 -0
- package/models/notifications-store.d.ts +20 -0
- package/models/notifications-store.js +1 -0
- package/models/oauth-provider.d.ts +2 -1
- package/models/orgnote-config.d.ts +80 -0
- package/models/orgnote-config.js +42 -0
- package/models/orgnote-url.d.ts +6 -0
- package/models/orgnote-url.js +1 -0
- package/models/pane-snapshot-repository.d.ts +0 -0
- package/models/pane-snapshot-repository.js +0 -0
- package/models/pane.d.ts +38 -0
- package/models/pane.js +1 -0
- package/models/panes-store.d.ts +30 -0
- package/models/panes-store.js +1 -0
- package/models/platform-detection.d.ts +11 -0
- package/models/platform-detection.js +1 -0
- package/models/platform-specific.d.ts +1 -0
- package/models/platform-specific.js +1 -0
- package/models/platform.d.ts +2 -0
- package/models/platform.js +1 -0
- package/models/queue-store.d.ts +49 -0
- package/models/queue-store.js +1 -0
- package/models/queue-task.d.ts +15 -0
- package/models/queue-task.js +1 -0
- package/models/repositories.d.ts +58 -38
- package/models/screen-detection.d.ts +10 -0
- package/models/screen-detection.js +1 -0
- package/models/settings-store.d.ts +12 -0
- package/models/settings-store.js +1 -0
- package/models/settings-ui-store.d.ts +7 -0
- package/models/settings-ui-store.js +1 -0
- package/models/sidebar-store.d.ts +22 -0
- package/models/sidebar-store.js +1 -0
- package/models/splash-screen.d.ts +13 -0
- package/models/splash-screen.js +1 -0
- package/models/store.d.ts +1 -1
- package/models/style-size.d.ts +2 -0
- package/models/style-size.js +1 -0
- package/models/style-variant.d.ts +1 -0
- package/models/style-variant.js +1 -0
- package/models/sync-store.d.ts +8 -6
- package/models/sync.d.ts +0 -5
- package/models/system-info.d.ts +47 -0
- package/models/system-info.js +1 -0
- package/models/theme-store.d.ts +16 -0
- package/models/theme-store.js +1 -0
- package/models/theme-variables.d.ts +4 -189
- package/models/theme-variables.js +2 -191
- package/models/toolbar-store.d.ts +9 -0
- package/models/toolbar-store.js +1 -0
- package/models/ui-store.d.ts +6 -0
- package/models/ui-store.js +1 -0
- package/models/user.d.ts +3 -4
- package/models/vue-component.d.ts +4 -2
- package/package-lock.json +5553 -0
- package/package.json +37 -26
- package/remote-api/api.d.ts +288 -669
- package/remote-api/api.js +199 -485
- package/remote-api/base.js +1 -1
- package/remote-api/common.d.ts +1 -1
- package/sync/__tests__/memory-state.spec.d.ts +1 -0
- package/sync/__tests__/memory-state.spec.js +49 -0
- package/sync/__tests__/plan.spec.d.ts +1 -0
- package/sync/__tests__/plan.spec.js +116 -0
- package/sync/create-sync-plan.d.ts +2 -0
- package/sync/create-sync-plan.js +13 -0
- package/sync/fetch.d.ts +8 -0
- package/sync/fetch.js +32 -0
- package/sync/index.d.ts +10 -0
- package/sync/index.js +9 -0
- package/sync/memory-state.d.ts +2 -0
- package/sync/memory-state.js +22 -0
- package/sync/operations/conflict.d.ts +10 -0
- package/sync/operations/conflict.js +56 -0
- package/sync/operations/delete-local.d.ts +2 -0
- package/sync/operations/delete-local.js +17 -0
- package/sync/operations/delete-remote.d.ts +2 -0
- package/sync/operations/delete-remote.js +26 -0
- package/sync/operations/download.d.ts +2 -0
- package/sync/operations/download.js +20 -0
- package/sync/operations/index.d.ts +5 -0
- package/sync/operations/index.js +5 -0
- package/sync/operations/synced-file.d.ts +14 -0
- package/sync/operations/synced-file.js +5 -0
- package/sync/operations/upload.d.ts +2 -0
- package/sync/operations/upload.js +30 -0
- package/sync/plan.d.ts +9 -0
- package/sync/plan.js +57 -0
- package/sync/recovery.d.ts +2 -0
- package/sync/recovery.js +6 -0
- package/sync/scan.d.ts +4 -0
- package/sync/scan.js +40 -0
- package/sync/types.d.ts +74 -0
- package/sync/types.js +7 -0
- package/sync/utils/__tests__/oldest-synced-at.spec.d.ts +1 -0
- package/sync/utils/__tests__/oldest-synced-at.spec.js +38 -0
- package/sync/utils/oldest-synced-at.d.ts +2 -0
- package/sync/utils/oldest-synced-at.js +9 -0
- package/types/index.d.ts +0 -0
- package/types/index.js +0 -0
- package/utils/__tests__/find-files-diff.spec.d.ts +1 -0
- package/{tools → utils}/__tests__/find-files-diff.spec.js +3 -3
- package/utils/__tests__/find-note-files-diff.spec.d.ts +1 -0
- package/{tools → utils}/__tests__/find-note-files-diff.spec.js +5 -5
- package/utils/__tests__/get-file-name.spec.d.ts +1 -0
- package/utils/__tests__/get-string-path.spec.d.ts +1 -0
- package/utils/__tests__/is-gpg-encrypted.spec.d.ts +1 -0
- package/utils/__tests__/is-org-file.spec.d.ts +1 -0
- package/utils/__tests__/join.spec.d.ts +1 -0
- package/utils/__tests__/join.spec.js +32 -0
- package/utils/__tests__/nullable-guards.spec.d.ts +1 -0
- package/utils/__tests__/nullable-guards.spec.js +44 -0
- package/utils/__tests__/parent-folder.spec.d.ts +1 -0
- package/utils/__tests__/read-org-files-recursively.spec.d.ts +1 -0
- package/utils/__tests__/split-path.spec.d.ts +1 -0
- package/utils/__tests__/to-absolute-path.spec.d.ts +1 -0
- package/utils/__tests__/to-absolute-path.spec.js +26 -0
- package/utils/__tests__/to-error.spec.d.ts +1 -0
- package/utils/__tests__/to-error.spec.js +112 -0
- package/utils/__tests__/with-root.spec.d.ts +1 -0
- package/utils/__tests__/with-root.spec.js +20 -0
- package/{tools → utils}/find-notes-files-diff.js +6 -3
- package/{tools → utils}/index.d.ts +4 -1
- package/{tools → utils}/index.js +4 -1
- package/utils/join-path.d.ts +1 -0
- package/utils/join-path.js +13 -0
- package/utils/nullable-guards.d.ts +2 -0
- package/utils/nullable-guards.js +6 -0
- package/utils/to-absolute-path.d.ts +2 -0
- package/utils/to-absolute-path.js +2 -0
- package/utils/to-error.d.ts +6 -0
- package/utils/to-error.js +33 -0
- package/utils/toml.d.ts +3 -0
- package/utils/toml.js +31 -0
- package/utils/with-root.d.ts +1 -0
- package/utils/with-root.js +6 -0
- package/websocket/client.d.ts +24 -0
- package/websocket/client.js +83 -0
- package/models/file-tree.d.ts +0 -12
- package/tools/__tests__/join.spec.js +0 -24
- package/tools/join-path.d.ts +0 -1
- package/tools/join-path.js +0 -7
- package/tools/mock-server.d.ts +0 -1
- package/tools/mock-server.js +0 -12
- /package/models/{file-cache.js → buffer-store.js} +0 -0
- /package/models/{file-tree.js → buffer.js} +0 -0
- /package/{tools/__tests__/find-files-diff.spec.d.ts → models/colors.js} +0 -0
- /package/{tools/__tests__/find-note-files-diff.spec.d.ts → models/commands-group-store.js} +0 -0
- /package/{tools/__tests__/get-file-name.spec.d.ts → models/commands-store.js} +0 -0
- /package/{tools/__tests__/get-string-path.spec.d.ts → models/completion-store.js} +0 -0
- /package/{tools/__tests__/is-gpg-encrypted.spec.d.ts → models/config-store.js} +0 -0
- /package/{tools/__tests__/is-org-file.spec.d.ts → models/confirmation-modal.js} +0 -0
- /package/{tools/__tests__/join.spec.d.ts → models/context-menu-store.js} +0 -0
- /package/{tools/__tests__/parent-folder.spec.d.ts → models/cron-store.js} +0 -0
- /package/{tools/__tests__/read-org-files-recursively.spec.d.ts → models/cron-task.js} +0 -0
- /package/{tools/__tests__/split-path.spec.d.ts → models/css-utils.js} +0 -0
- /package/{tools → utils}/__tests__/get-file-name.spec.js +0 -0
- /package/{tools → utils}/__tests__/get-string-path.spec.js +0 -0
- /package/{tools → utils}/__tests__/is-gpg-encrypted.spec.js +0 -0
- /package/{tools → utils}/__tests__/is-org-file.spec.js +0 -0
- /package/{tools → utils}/__tests__/parent-folder.spec.js +0 -0
- /package/{tools → utils}/__tests__/read-org-files-recursively.spec.js +0 -0
- /package/{tools → utils}/__tests__/split-path.spec.js +0 -0
- /package/{tools → utils}/find-notes-files-diff.d.ts +0 -0
- /package/{tools → utils}/get-file-name.d.ts +0 -0
- /package/{tools → utils}/get-file-name.js +0 -0
- /package/{tools → utils}/get-parent-dir.d.ts +0 -0
- /package/{tools → utils}/get-parent-dir.js +0 -0
- /package/{tools → utils}/get-string-path.d.ts +0 -0
- /package/{tools → utils}/get-string-path.js +0 -0
- /package/{tools → utils}/is-gpg-encrypted.d.ts +0 -0
- /package/{tools → utils}/is-gpg-encrypted.js +0 -0
- /package/{tools → utils}/is-org-file.d.ts +0 -0
- /package/{tools → utils}/is-org-file.js +0 -0
- /package/{tools → utils}/split-path.d.ts +0 -0
- /package/{tools → utils}/split-path.js +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import { StoreDefinition } from './store.js';
|
|
3
|
+
import { Buffer } from './buffer.js';
|
|
4
|
+
export interface BufferStore {
|
|
5
|
+
buffers: Ref<Map<string, Buffer>>;
|
|
6
|
+
allBuffers: ComputedRef<Buffer[]>;
|
|
7
|
+
getOrCreateBuffer: (path: string) => Promise<Buffer>;
|
|
8
|
+
releaseBuffer: (path: string) => void;
|
|
9
|
+
closeBuffer: (path: string, force?: boolean) => Promise<boolean>;
|
|
10
|
+
getBufferByPath: (path: string) => Buffer | undefined;
|
|
11
|
+
saveAllBuffers: () => Promise<void>;
|
|
12
|
+
cleanup: () => void;
|
|
13
|
+
}
|
|
14
|
+
export type BufferStoreDefinition = StoreDefinition<BufferStore>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ValidationState } from './file-guard.js';
|
|
2
|
+
type BufferError = string;
|
|
3
|
+
export interface BufferMetadata<T = unknown> {
|
|
4
|
+
[key: string]: T;
|
|
5
|
+
}
|
|
6
|
+
export interface BufferGuard {
|
|
7
|
+
readonly: boolean;
|
|
8
|
+
reason?: string;
|
|
9
|
+
validation?: ValidationState;
|
|
10
|
+
}
|
|
11
|
+
export interface Buffer<T = unknown> {
|
|
12
|
+
path: string;
|
|
13
|
+
title: string;
|
|
14
|
+
content: string;
|
|
15
|
+
isSaving: boolean;
|
|
16
|
+
isLoading: boolean;
|
|
17
|
+
encryptionStatus?: boolean;
|
|
18
|
+
errors: BufferError[];
|
|
19
|
+
lastAccessed: Date;
|
|
20
|
+
referenceCount: number;
|
|
21
|
+
metadata: BufferMetadata<T>;
|
|
22
|
+
guard?: BufferGuard;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Colors = '';
|
package/models/command.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { COMMAND_GROUPS } from "../constants/index.js";
|
|
1
3
|
import { DefaultCommands } from './default-commands.js';
|
|
2
|
-
import {
|
|
4
|
+
import { OrgNoteApi } from "../api.js";
|
|
3
5
|
export type CommandGroup = (typeof COMMAND_GROUPS)[number] | (string & Record<never, never>);
|
|
6
|
+
export type CommandName = DefaultCommands | (string & {});
|
|
4
7
|
export interface CommandHandlerParams<T = any> {
|
|
5
8
|
event?: KeyboardEvent;
|
|
6
9
|
data?: T;
|
|
@@ -8,22 +11,24 @@ export interface CommandHandlerParams<T = any> {
|
|
|
8
11
|
[key: string]: unknown;
|
|
9
12
|
}
|
|
10
13
|
export interface CommandPreview {
|
|
11
|
-
description?: string
|
|
12
|
-
command?:
|
|
13
|
-
title?: string |
|
|
14
|
-
icon?: string |
|
|
14
|
+
description?: MaybeRefOrGetter<string | undefined>;
|
|
15
|
+
command?: CommandName;
|
|
16
|
+
title?: MaybeRefOrGetter<string | undefined>;
|
|
17
|
+
icon?: MaybeRefOrGetter<string | undefined>;
|
|
15
18
|
}
|
|
16
19
|
export interface CommandMeta<T = any> extends Partial<CommandPreview> {
|
|
17
|
-
keySequence?: string | string[];
|
|
18
20
|
group?: CommandGroup;
|
|
19
21
|
allowOnInput?: boolean;
|
|
20
22
|
interactive?: boolean;
|
|
21
23
|
system?: boolean;
|
|
22
|
-
|
|
24
|
+
hide?: (api: OrgNoteApi) => boolean;
|
|
25
|
+
disabled?: (api: OrgNoteApi) => boolean;
|
|
26
|
+
isActive?: (api: OrgNoteApi) => boolean;
|
|
23
27
|
context?: {
|
|
24
28
|
[key: string]: T;
|
|
25
29
|
};
|
|
26
30
|
}
|
|
27
31
|
export interface Command<T = any, R = unknown> extends CommandMeta<T> {
|
|
28
|
-
handler: (params
|
|
32
|
+
handler: (api: OrgNoteApi, params: CommandHandlerParams<T>) => R | Promise<R>;
|
|
29
33
|
}
|
|
34
|
+
export type CommandCallback = <T = any>(meta: Command, data: T) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { Command, CommandGroup } from './command.js';
|
|
3
|
+
import { StoreDefinition } from './store.js';
|
|
4
|
+
export interface CommandsGroupStore {
|
|
5
|
+
activateGroup: (group: CommandGroup) => void;
|
|
6
|
+
deactivateGroup: (group: CommandGroup) => void;
|
|
7
|
+
getCommandsByGroup: (group: CommandGroup) => Command[];
|
|
8
|
+
currentGroupsCommands: Ref<Command[]>;
|
|
9
|
+
currentGroups: Ref<CommandGroup[]>;
|
|
10
|
+
}
|
|
11
|
+
export type CommandsGroupStoreDefinition = StoreDefinition<CommandsGroupStore>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { Command, CommandCallback } from './command.js';
|
|
3
|
+
import { StoreDefinition } from './store.js';
|
|
4
|
+
export type CommandUnsubscribFn = () => void;
|
|
5
|
+
export interface CommandsStore {
|
|
6
|
+
add: (...newCommands: Command[]) => void;
|
|
7
|
+
remove: (...commandsToUnregister: Command[]) => void;
|
|
8
|
+
get: (name: string) => Command | undefined;
|
|
9
|
+
commands: Ref<Command[]>;
|
|
10
|
+
execute: (name: string, data?: unknown) => Promise<void>;
|
|
11
|
+
afterExecute: (commandNames: string | string[], callback: CommandCallback) => CommandUnsubscribFn;
|
|
12
|
+
}
|
|
13
|
+
export type CommandsStoreDefinition = StoreDefinition<CommandsStore>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ComputedRef } from 'vue';
|
|
2
|
+
import { Completion, CompletionConfig } from './completion.js';
|
|
3
|
+
import { StoreDefinition } from './store.js';
|
|
4
|
+
export interface CompletionStore {
|
|
5
|
+
restore: () => void;
|
|
6
|
+
close: <TData = unknown>(data?: TData) => void;
|
|
7
|
+
closeAll: () => void;
|
|
8
|
+
open: <TItem, TReturn = void>(config: CompletionConfig<TItem>) => Promise<TReturn>;
|
|
9
|
+
activeCompletion: ComputedRef<Completion | undefined>;
|
|
10
|
+
nextCandidate: () => void;
|
|
11
|
+
previousCandidate: () => void;
|
|
12
|
+
search: (limit?: number, offset?: number) => void;
|
|
13
|
+
}
|
|
14
|
+
export type CompletionStoreDefinition = StoreDefinition<CompletionStore>;
|
package/models/completion.d.ts
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
1
2
|
export interface CompletionCandidate<T = unknown> {
|
|
2
|
-
icon?: string |
|
|
3
|
-
group?: string
|
|
4
|
-
title?: string |
|
|
5
|
-
description?: string |
|
|
6
|
-
command: string;
|
|
3
|
+
icon?: MaybeRefOrGetter<string | undefined>;
|
|
4
|
+
group?: MaybeRefOrGetter<string | undefined>;
|
|
5
|
+
title?: MaybeRefOrGetter<string | undefined>;
|
|
6
|
+
description?: MaybeRefOrGetter<string | undefined>;
|
|
7
7
|
data: T;
|
|
8
|
-
commandHandler
|
|
8
|
+
commandHandler: (data: T) => void;
|
|
9
9
|
}
|
|
10
10
|
export interface CompletionSearchResult<T = unknown> {
|
|
11
11
|
total?: number;
|
|
12
12
|
result: CompletionCandidate<T>[];
|
|
13
13
|
}
|
|
14
14
|
export type CandidateGetterFn<T = unknown> = (filter: string, limit?: number, offset?: number) => CompletionSearchResult<T> | Promise<CompletionSearchResult<T>>;
|
|
15
|
-
export interface
|
|
15
|
+
export interface CompletionConfig<T = unknown> {
|
|
16
16
|
searchAutocompletions?: string[];
|
|
17
17
|
itemsGetter: CandidateGetterFn<T>;
|
|
18
|
+
type?: 'input' | 'choice' | 'input-choice';
|
|
18
19
|
placeholder?: string;
|
|
19
20
|
itemHeight?: string;
|
|
20
21
|
searchText?: string;
|
|
21
22
|
onClicked?: (candidate: CompletionCandidate<T>) => void;
|
|
22
23
|
}
|
|
24
|
+
export interface Completion<T = any, TResult = any> extends CompletionConfig<T> {
|
|
25
|
+
level?: number;
|
|
26
|
+
candidates?: CompletionCandidate<T>[];
|
|
27
|
+
selectedCandidateIndex?: number;
|
|
28
|
+
total?: number;
|
|
29
|
+
searchQuery: string;
|
|
30
|
+
result: Promise<TResult>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Ref, UnwrapNestedRefs } from 'vue';
|
|
2
|
+
import { OrgNoteConfig } from './orgnote-config.js';
|
|
3
|
+
import { StoreDefinition } from './store.js';
|
|
4
|
+
export interface ConfigStore {
|
|
5
|
+
config: UnwrapNestedRefs<OrgNoteConfig>;
|
|
6
|
+
configErrors: Ref<string[]>;
|
|
7
|
+
sync: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export type ConfigStoreDefinition = StoreDefinition<ConfigStore>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ConfirmationModalParams {
|
|
2
|
+
title?: string;
|
|
3
|
+
message?: string;
|
|
4
|
+
confirmText?: string;
|
|
5
|
+
cancelText?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ConfirmationModal {
|
|
8
|
+
confirm: (params?: ConfirmationModalParams) => Promise<boolean>;
|
|
9
|
+
resolveConfirmation: (data?: boolean) => void;
|
|
10
|
+
}
|
|
11
|
+
export type UseConfirmationModal = () => ConfirmationModal;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MenuAction, MenuGroupParams } from './menu-action.js';
|
|
2
|
+
import { StoreDefinition } from './store.js';
|
|
3
|
+
export interface ContextMenuStore {
|
|
4
|
+
registerGroup: (group: string) => void;
|
|
5
|
+
updateContextGroup: (group: string, params: MenuGroupParams) => void;
|
|
6
|
+
addContextMenuAction: (group: string, action: MenuAction) => void;
|
|
7
|
+
removeContextMenuAction: (group: string, action: MenuAction) => void;
|
|
8
|
+
getContextMenuActions: (group: string) => MenuAction[];
|
|
9
|
+
}
|
|
10
|
+
export type ContextMenuStoreDefinition = StoreDefinition<ContextMenuStore>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { StoreDefinition } from './store.js';
|
|
3
|
+
import { CronTask, CronTaskConfig, PeriodicTaskStatus } from './cron-task.js';
|
|
4
|
+
export type SchedulerStatus = 'running' | 'stopped' | 'error';
|
|
5
|
+
export interface CronStore {
|
|
6
|
+
tasks: Ref<Record<string, CronTask>>;
|
|
7
|
+
status: Ref<SchedulerStatus>;
|
|
8
|
+
init: () => Promise<void>;
|
|
9
|
+
cleanup: () => Promise<void>;
|
|
10
|
+
get: (id: string) => CronTask | undefined;
|
|
11
|
+
pause: (id: string) => Promise<void>;
|
|
12
|
+
resume: (id: string) => Promise<void>;
|
|
13
|
+
stop: (id: string) => Promise<void>;
|
|
14
|
+
runImmediately: (id: string) => Promise<void>;
|
|
15
|
+
pauseAll: () => Promise<void>;
|
|
16
|
+
resumeAll: () => Promise<void>;
|
|
17
|
+
getByStatus: (status: PeriodicTaskStatus) => CronTask[];
|
|
18
|
+
register: (task: CronTaskConfig) => Promise<CronTask>;
|
|
19
|
+
unregister: (id: string) => Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export type CronStoreDefinition = StoreDefinition<CronStore>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { OrgNoteApi } from "../api.js";
|
|
2
|
+
import { Platform } from './platform.js';
|
|
3
|
+
export type PeriodicTaskStatus = 'active' | 'paused' | 'stopped';
|
|
4
|
+
export type PeriodicTaskRunResult = 'success' | 'error' | 'skipped';
|
|
5
|
+
export interface BaseCronTaskConfig {
|
|
6
|
+
id: string;
|
|
7
|
+
handler: (api: OrgNoteApi) => Promise<void> | void;
|
|
8
|
+
runImmediately?: boolean;
|
|
9
|
+
catchUpOnResume?: boolean;
|
|
10
|
+
/** Default 1 **/
|
|
11
|
+
maxCatchUpRuns?: number;
|
|
12
|
+
/** Default true **/
|
|
13
|
+
preventOverrun?: boolean;
|
|
14
|
+
/** Default 30000 ms per task, when maximum time is exceeded, the task is considered failed **/
|
|
15
|
+
timeout?: number;
|
|
16
|
+
runWhen?: (api: OrgNoteApi) => Promise<boolean>;
|
|
17
|
+
platforms?: Platform[];
|
|
18
|
+
}
|
|
19
|
+
export interface IntervalCronTask extends BaseCronTaskConfig {
|
|
20
|
+
interval: number;
|
|
21
|
+
}
|
|
22
|
+
export interface CronExpressionTask extends BaseCronTaskConfig {
|
|
23
|
+
cron: string;
|
|
24
|
+
}
|
|
25
|
+
export type CronTaskConfig = IntervalCronTask | CronExpressionTask;
|
|
26
|
+
export type CronTask = CronTaskConfig & {
|
|
27
|
+
status: PeriodicTaskStatus;
|
|
28
|
+
lastRun?: number;
|
|
29
|
+
nextRun?: number;
|
|
30
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ThemeVariable } from './theme-variables.js';
|
|
2
|
+
export type ThemeColors = {
|
|
3
|
+
[key in ThemeVariable]?: string;
|
|
4
|
+
};
|
|
5
|
+
export type GetCssVar = (varName: string) => string | undefined;
|
|
6
|
+
export type GetCssTheme = (variableNames: string[]) => {
|
|
7
|
+
[key in ThemeVariable]?: string;
|
|
8
|
+
};
|
|
9
|
+
export type GetNumericCssVar = (varName: string) => number | undefined;
|
|
10
|
+
export type GetCssProperty = (element: Element, propertyName: string) => string | undefined;
|
|
11
|
+
export type GetCssNumericProperty = (element: Element, propertyName: string) => number | undefined;
|
|
12
|
+
export type ApplyCSSVariables<T extends string> = (variables: {
|
|
13
|
+
[key in T]?: string | number;
|
|
14
|
+
}) => void;
|
|
15
|
+
export type ResetCSSVariables<T extends string> = (variables: T[]) => void;
|
|
16
|
+
export type ApplyScopedStyles = (scopeName: string, styles: string) => void;
|
|
17
|
+
export type RemoveScopedStyles = (scopeName: string) => void;
|
|
@@ -2,6 +2,7 @@ export declare enum DefaultCommands {
|
|
|
2
2
|
REPORT_BUG = "report bug",
|
|
3
3
|
OPEN_DEBUG_INFO = "open debug info",
|
|
4
4
|
SHOW_LOGS = "show logs",
|
|
5
|
+
CLEAR_LOGS = "clear logs",
|
|
5
6
|
TOGGLE_SIDEBAR = "toggle sidebar",
|
|
6
7
|
TOGGLE_FILE_MANAGER = "toggle file manager",
|
|
7
8
|
CREATE_NOTE = "create note",
|
|
@@ -15,19 +16,67 @@ export declare enum DefaultCommands {
|
|
|
15
16
|
EXECUTE_CANDIDATE = "execute candidate",
|
|
16
17
|
SETTINGS = "settings",
|
|
17
18
|
RESET_THEME = "reset theme",
|
|
18
|
-
|
|
19
|
+
SELECT_THEME_MODE = "select theme mode",
|
|
19
20
|
TOGGLE_DEBUG_MODE = "toggle debug mode",
|
|
20
21
|
SELECT_THEME = "select theme",
|
|
22
|
+
SYSTEM_SETTINGS = "system settings",
|
|
23
|
+
LANGUAGE_SETTINGS = "language settings",
|
|
24
|
+
INTERFACE_SETTINGS = "interface settings",
|
|
25
|
+
SYNCHRONISATION_SETTINGS = "synchronisation settings",
|
|
26
|
+
SUBSCRIPTION_SETTINGS = "subscription settings",
|
|
27
|
+
KEYBINDINGS_SETTINGS = "keybindings settings",
|
|
28
|
+
DEVELOPER_SETTINGS = "developer settings",
|
|
29
|
+
EXTENSIONS_SETTINGS = "extensions",
|
|
30
|
+
ENCRYPTION_SETTINGS = "encryption settings",
|
|
31
|
+
API_SETTINGS = "api settings",
|
|
32
|
+
AUTHENTICATION_SETTINGS = "authentication settings",
|
|
33
|
+
SOURCE_CODE = "show source code",
|
|
34
|
+
READ_WIKI = "read wiki",
|
|
35
|
+
SPONSOR = "sponsor",
|
|
36
|
+
DELETE_ALL_DATA = "delete all data",
|
|
37
|
+
DELETE_ALL_NOTES = "delete all notes",
|
|
38
|
+
DELETE_ACCOUNT = "delete account",
|
|
39
|
+
STORAGE_SETTINGS = "storage settings",
|
|
21
40
|
OPEN_MY_NOTES = "my notes",
|
|
22
41
|
OPEN_DASHBOARD = "dashboard",
|
|
23
42
|
OPEN_PUBLIC_NOTE_LIST = "public note list",
|
|
24
43
|
OPEN_NOTE_EDITOR = "edit mode",
|
|
25
44
|
OPEN_NOTE_VIEWER = "view mode",
|
|
26
45
|
OPEN_GRAPH = "graph",
|
|
27
|
-
OPEN_EXTENSIONS = "extensions",
|
|
28
46
|
SELECT_FILE_PATH = "select file path",
|
|
29
47
|
PICK_SYNC_DIR = "pick sync dir",
|
|
30
48
|
SYNC_FILES = "sync files",
|
|
49
|
+
RELOAD_FILES = "reload files",
|
|
31
50
|
ENCRYPT_NOTE = "encrypt note",
|
|
32
|
-
DECRYPT_NOTE = "decrypt note"
|
|
51
|
+
DECRYPT_NOTE = "decrypt note",
|
|
52
|
+
MAXIMIZE_FILE_MANAGER = "maximize file manager",
|
|
53
|
+
CREATE_FOLDER = "create folder",
|
|
54
|
+
CREATE_FILE = "create file",
|
|
55
|
+
RENAME_FILE = "rename file",
|
|
56
|
+
DELETE_FILE = "delete file",
|
|
57
|
+
CONFIRM_FILE_DELETION = "are you sure you want to delete file?",
|
|
58
|
+
NEW_FILE_PATH = "new file path",
|
|
59
|
+
OPEN_NOTE = "open note",
|
|
60
|
+
OPEN_CODE_EDITOR = "open code editor",
|
|
61
|
+
TABS = "show tabs",
|
|
62
|
+
SHOW_TAB_SWITCHER = "show tab switcher",
|
|
63
|
+
CLOSE_TAB = "close tab",
|
|
64
|
+
NEW_TAB = "new tab",
|
|
65
|
+
RESIZE_PANE_LEFT = "resize pane left",
|
|
66
|
+
RESIZE_PANE_RIGHT = "resize pane right",
|
|
67
|
+
RESIZE_PANE_UP = "resize pane up",
|
|
68
|
+
RESIZE_PANE_DOWN = "resize pane down",
|
|
69
|
+
CLOSE_MODAL = "close modal",
|
|
70
|
+
OPEN_QUEUE_MANAGER = "open queue manager",
|
|
71
|
+
RESTART_QUEUE = "restart queue",
|
|
72
|
+
STOP_QUEUE = "stop queue",
|
|
73
|
+
CLEAR_QUEUE = "clear queue",
|
|
74
|
+
OPEN_CRON = "open cron manager",
|
|
75
|
+
CLEAR_OLD_QUEUE_TASKS = "clear old queue tasks",
|
|
76
|
+
COPY_COMMAND_URL = "copy command url",
|
|
77
|
+
IMPORT_EXTENSION = "import extension",
|
|
78
|
+
OPEN_EXTENSIONS_MANAGER = "open extensions manager",
|
|
79
|
+
LOGIN = "login",
|
|
80
|
+
LOGOUT = "logout",
|
|
81
|
+
REMOVE_ACCOUNT = "remove account"
|
|
33
82
|
}
|
|
@@ -9,6 +9,7 @@ export var DefaultCommands;
|
|
|
9
9
|
DefaultCommands["REPORT_BUG"] = "report bug";
|
|
10
10
|
DefaultCommands["OPEN_DEBUG_INFO"] = "open debug info";
|
|
11
11
|
DefaultCommands["SHOW_LOGS"] = "show logs";
|
|
12
|
+
DefaultCommands["CLEAR_LOGS"] = "clear logs";
|
|
12
13
|
DefaultCommands["TOGGLE_SIDEBAR"] = "toggle sidebar";
|
|
13
14
|
DefaultCommands["TOGGLE_FILE_MANAGER"] = "toggle file manager";
|
|
14
15
|
DefaultCommands["CREATE_NOTE"] = "create note";
|
|
@@ -24,9 +25,27 @@ export var DefaultCommands;
|
|
|
24
25
|
// Settings
|
|
25
26
|
DefaultCommands["SETTINGS"] = "settings";
|
|
26
27
|
DefaultCommands["RESET_THEME"] = "reset theme";
|
|
27
|
-
DefaultCommands["
|
|
28
|
+
DefaultCommands["SELECT_THEME_MODE"] = "select theme mode";
|
|
28
29
|
DefaultCommands["TOGGLE_DEBUG_MODE"] = "toggle debug mode";
|
|
29
30
|
DefaultCommands["SELECT_THEME"] = "select theme";
|
|
31
|
+
DefaultCommands["SYSTEM_SETTINGS"] = "system settings";
|
|
32
|
+
DefaultCommands["LANGUAGE_SETTINGS"] = "language settings";
|
|
33
|
+
DefaultCommands["INTERFACE_SETTINGS"] = "interface settings";
|
|
34
|
+
DefaultCommands["SYNCHRONISATION_SETTINGS"] = "synchronisation settings";
|
|
35
|
+
DefaultCommands["SUBSCRIPTION_SETTINGS"] = "subscription settings";
|
|
36
|
+
DefaultCommands["KEYBINDINGS_SETTINGS"] = "keybindings settings";
|
|
37
|
+
DefaultCommands["DEVELOPER_SETTINGS"] = "developer settings";
|
|
38
|
+
DefaultCommands["EXTENSIONS_SETTINGS"] = "extensions";
|
|
39
|
+
DefaultCommands["ENCRYPTION_SETTINGS"] = "encryption settings";
|
|
40
|
+
DefaultCommands["API_SETTINGS"] = "api settings";
|
|
41
|
+
DefaultCommands["AUTHENTICATION_SETTINGS"] = "authentication settings";
|
|
42
|
+
DefaultCommands["SOURCE_CODE"] = "show source code";
|
|
43
|
+
DefaultCommands["READ_WIKI"] = "read wiki";
|
|
44
|
+
DefaultCommands["SPONSOR"] = "sponsor";
|
|
45
|
+
DefaultCommands["DELETE_ALL_DATA"] = "delete all data";
|
|
46
|
+
DefaultCommands["DELETE_ALL_NOTES"] = "delete all notes";
|
|
47
|
+
DefaultCommands["DELETE_ACCOUNT"] = "delete account";
|
|
48
|
+
DefaultCommands["STORAGE_SETTINGS"] = "storage settings";
|
|
30
49
|
// Routing
|
|
31
50
|
DefaultCommands["OPEN_MY_NOTES"] = "my notes";
|
|
32
51
|
DefaultCommands["OPEN_DASHBOARD"] = "dashboard";
|
|
@@ -34,12 +53,50 @@ export var DefaultCommands;
|
|
|
34
53
|
DefaultCommands["OPEN_NOTE_EDITOR"] = "edit mode";
|
|
35
54
|
DefaultCommands["OPEN_NOTE_VIEWER"] = "view mode";
|
|
36
55
|
DefaultCommands["OPEN_GRAPH"] = "graph";
|
|
37
|
-
DefaultCommands["OPEN_EXTENSIONS"] = "extensions";
|
|
38
56
|
// Native mobile specific
|
|
39
57
|
DefaultCommands["SELECT_FILE_PATH"] = "select file path";
|
|
40
58
|
DefaultCommands["PICK_SYNC_DIR"] = "pick sync dir";
|
|
41
59
|
// File management
|
|
42
60
|
DefaultCommands["SYNC_FILES"] = "sync files";
|
|
61
|
+
DefaultCommands["RELOAD_FILES"] = "reload files";
|
|
43
62
|
DefaultCommands["ENCRYPT_NOTE"] = "encrypt note";
|
|
44
63
|
DefaultCommands["DECRYPT_NOTE"] = "decrypt note";
|
|
64
|
+
// File manager
|
|
65
|
+
DefaultCommands["MAXIMIZE_FILE_MANAGER"] = "maximize file manager";
|
|
66
|
+
DefaultCommands["CREATE_FOLDER"] = "create folder";
|
|
67
|
+
DefaultCommands["CREATE_FILE"] = "create file";
|
|
68
|
+
DefaultCommands["RENAME_FILE"] = "rename file";
|
|
69
|
+
DefaultCommands["DELETE_FILE"] = "delete file";
|
|
70
|
+
DefaultCommands["CONFIRM_FILE_DELETION"] = "are you sure you want to delete file?";
|
|
71
|
+
DefaultCommands["NEW_FILE_PATH"] = "new file path";
|
|
72
|
+
// Notes commands
|
|
73
|
+
DefaultCommands["OPEN_NOTE"] = "open note";
|
|
74
|
+
DefaultCommands["OPEN_CODE_EDITOR"] = "open code editor";
|
|
75
|
+
// Windows & buffers
|
|
76
|
+
DefaultCommands["TABS"] = "show tabs";
|
|
77
|
+
DefaultCommands["SHOW_TAB_SWITCHER"] = "show tab switcher";
|
|
78
|
+
DefaultCommands["CLOSE_TAB"] = "close tab";
|
|
79
|
+
DefaultCommands["NEW_TAB"] = "new tab";
|
|
80
|
+
// Pane resize
|
|
81
|
+
DefaultCommands["RESIZE_PANE_LEFT"] = "resize pane left";
|
|
82
|
+
DefaultCommands["RESIZE_PANE_RIGHT"] = "resize pane right";
|
|
83
|
+
DefaultCommands["RESIZE_PANE_UP"] = "resize pane up";
|
|
84
|
+
DefaultCommands["RESIZE_PANE_DOWN"] = "resize pane down";
|
|
85
|
+
// Modal
|
|
86
|
+
DefaultCommands["CLOSE_MODAL"] = "close modal";
|
|
87
|
+
// Developer settings
|
|
88
|
+
DefaultCommands["OPEN_QUEUE_MANAGER"] = "open queue manager";
|
|
89
|
+
DefaultCommands["RESTART_QUEUE"] = "restart queue";
|
|
90
|
+
DefaultCommands["STOP_QUEUE"] = "stop queue";
|
|
91
|
+
DefaultCommands["CLEAR_QUEUE"] = "clear queue";
|
|
92
|
+
DefaultCommands["OPEN_CRON"] = "open cron manager";
|
|
93
|
+
DefaultCommands["CLEAR_OLD_QUEUE_TASKS"] = "clear old queue tasks";
|
|
94
|
+
DefaultCommands["COPY_COMMAND_URL"] = "copy command url";
|
|
95
|
+
// Extensions
|
|
96
|
+
DefaultCommands["IMPORT_EXTENSION"] = "import extension";
|
|
97
|
+
DefaultCommands["OPEN_EXTENSIONS_MANAGER"] = "open extensions manager";
|
|
98
|
+
// Auth
|
|
99
|
+
DefaultCommands["LOGIN"] = "login";
|
|
100
|
+
DefaultCommands["LOGOUT"] = "logout";
|
|
101
|
+
DefaultCommands["REMOVE_ACCOUNT"] = "remove account";
|
|
45
102
|
})(DefaultCommands || (DefaultCommands = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseOrgNoteEncryption, OrgNoteEncryption, BaseOrgNoteDecryption } from './encryption.js';
|
|
2
|
+
import { NoteInfo } from './note.js';
|
|
3
|
+
import { StoreDefinition } from './store.js';
|
|
4
|
+
export interface EncryptionStore {
|
|
5
|
+
encrypt: (text: string, format?: BaseOrgNoteEncryption['format'], encryptionConfig?: OrgNoteEncryption) => Promise<string>;
|
|
6
|
+
decrypt: (content: string | Uint8Array, format?: BaseOrgNoteDecryption['format'], encryptionConfig?: OrgNoteEncryption) => Promise<string>;
|
|
7
|
+
encryptNote: (noteInfo: NoteInfo, noteText: string) => Promise<[NoteInfo, string]>;
|
|
8
|
+
decryptNote: (noteInfo: NoteInfo, noteText: string) => Promise<[NoteInfo, string | Uint8Array]>;
|
|
9
|
+
}
|
|
10
|
+
export type EncryptionStoreDefinition = StoreDefinition<EncryptionStore>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/models/encryption.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { InferOutput } from 'valibot';
|
|
2
|
+
export declare const EncryptionType: {
|
|
3
|
+
readonly GpgKeys: "gpgKeys";
|
|
4
|
+
readonly GpgPassword: "gpgPassword";
|
|
5
|
+
readonly Disabled: "disabled";
|
|
6
|
+
};
|
|
7
|
+
export type EncryptionType = (typeof EncryptionType)[keyof typeof EncryptionType];
|
|
2
8
|
export type EcnryptionFormat = 'binary' | 'armored';
|
|
3
9
|
export interface BaseOrgNoteEncryption {
|
|
4
10
|
format?: 'binary' | 'armored';
|
|
@@ -6,20 +12,56 @@ export interface BaseOrgNoteEncryption {
|
|
|
6
12
|
export interface BaseOrgNoteDecryption {
|
|
7
13
|
format?: 'utf8' | 'binary';
|
|
8
14
|
}
|
|
9
|
-
|
|
10
|
-
type:
|
|
15
|
+
declare const OrgNoteGpgEncryptionSchema: import("valibot").ObjectSchema<{
|
|
16
|
+
readonly type: import("valibot").LiteralSchema<"gpgKeys", undefined>;
|
|
17
|
+
readonly privateKey: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").MetadataAction<string, {
|
|
18
|
+
readonly textarea: true;
|
|
19
|
+
readonly upload: true;
|
|
20
|
+
}>]>;
|
|
21
|
+
readonly publicKey: import("valibot").SchemaWithPipe<readonly [import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>, import("valibot").MetadataAction<string, {
|
|
22
|
+
readonly textarea: true;
|
|
23
|
+
readonly upload: true;
|
|
24
|
+
}>]>;
|
|
25
|
+
readonly privateKeyPassphrase: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
26
|
+
}, undefined>;
|
|
27
|
+
declare const OrgNotePasswordEncryptionSchema: import("valibot").ObjectSchema<{
|
|
28
|
+
readonly type: import("valibot").LiteralSchema<"gpgPassword", undefined>;
|
|
29
|
+
readonly password: import("valibot").StringSchema<undefined>;
|
|
30
|
+
}, undefined>;
|
|
31
|
+
export declare const OrgNoteEncryptionSchema: import("valibot").IntersectSchema<[import("valibot").ObjectSchema<{
|
|
32
|
+
readonly encryptFilesByDefault: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
33
|
+
}, undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").ObjectSchema<{
|
|
34
|
+
readonly type: import("valibot").LiteralSchema<"gpgKeys", undefined>;
|
|
35
|
+
readonly privateKey: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").MetadataAction<string, {
|
|
36
|
+
readonly textarea: true;
|
|
37
|
+
readonly upload: true;
|
|
38
|
+
}>]>;
|
|
39
|
+
readonly publicKey: import("valibot").SchemaWithPipe<readonly [import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>, import("valibot").MetadataAction<string, {
|
|
40
|
+
readonly textarea: true;
|
|
41
|
+
readonly upload: true;
|
|
42
|
+
}>]>;
|
|
43
|
+
readonly privateKeyPassphrase: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
44
|
+
}, undefined>, import("valibot").ObjectSchema<{
|
|
45
|
+
readonly type: import("valibot").LiteralSchema<"gpgPassword", undefined>;
|
|
46
|
+
readonly password: import("valibot").StringSchema<undefined>;
|
|
47
|
+
}, undefined>, import("valibot").ObjectSchema<{
|
|
48
|
+
readonly type: import("valibot").LiteralSchema<"disabled", undefined>;
|
|
49
|
+
}, undefined>], undefined>, import("valibot").MetadataAction<{
|
|
50
|
+
type: "gpgKeys";
|
|
11
51
|
privateKey: string;
|
|
12
52
|
publicKey?: string;
|
|
13
53
|
privateKeyPassphrase?: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
type: typeof ModelsPublicNoteEncryptionTypeEnum.GpgPassword;
|
|
54
|
+
} | {
|
|
55
|
+
type: "gpgPassword";
|
|
17
56
|
password: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
57
|
+
} | {
|
|
58
|
+
type: "disabled";
|
|
59
|
+
}, {
|
|
60
|
+
readonly conditionalKey: "type";
|
|
61
|
+
}>]>], undefined>;
|
|
62
|
+
export type OrgNoteGpgEncryption = InferOutput<typeof OrgNoteGpgEncryptionSchema>;
|
|
63
|
+
export type OrgNotePasswordEncryption = InferOutput<typeof OrgNotePasswordEncryptionSchema>;
|
|
64
|
+
export type OrgNoteEncryption = InferOutput<typeof OrgNoteEncryptionSchema>;
|
|
23
65
|
export type EncryptionData = {
|
|
24
66
|
content: string;
|
|
25
67
|
};
|
|
@@ -29,3 +71,4 @@ export type DecriptionData = {
|
|
|
29
71
|
};
|
|
30
72
|
export type WithDecryptionContent<T extends OrgNoteEncryption = OrgNoteEncryption> = T & DecriptionData & BaseOrgNoteDecryption;
|
|
31
73
|
export type WithNoteDecryptionContent<T extends OrgNoteEncryption = OrgNoteEncryption> = T & DecriptionData;
|
|
74
|
+
export {};
|
package/models/encryption.js
CHANGED
|
@@ -1 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import { boolean, metadata } from 'valibot';
|
|
2
|
+
import { object, string, union, optional, literal, intersect, pipe, } from 'valibot';
|
|
3
|
+
export const EncryptionType = {
|
|
4
|
+
GpgKeys: 'gpgKeys',
|
|
5
|
+
GpgPassword: 'gpgPassword',
|
|
6
|
+
Disabled: 'disabled',
|
|
7
|
+
};
|
|
8
|
+
const OrgNoteGpgEncryptionSchema = object({
|
|
9
|
+
type: literal(EncryptionType.GpgKeys),
|
|
10
|
+
privateKey: pipe(string(), metadata({ textarea: true, upload: true })),
|
|
11
|
+
publicKey: pipe(optional(string()), metadata({ textarea: true, upload: true })),
|
|
12
|
+
privateKeyPassphrase: optional(string()),
|
|
13
|
+
});
|
|
14
|
+
const OrgNotePasswordEncryptionSchema = object({
|
|
15
|
+
type: literal(EncryptionType.GpgPassword),
|
|
16
|
+
password: string(),
|
|
17
|
+
});
|
|
18
|
+
const OrgNoteDisabledEncryptionSchema = object({
|
|
19
|
+
type: literal(EncryptionType.Disabled),
|
|
20
|
+
});
|
|
21
|
+
export const OrgNoteEncryptionSchema = intersect([
|
|
22
|
+
object({ encryptFilesByDefault: optional(boolean()) }),
|
|
23
|
+
pipe(union([
|
|
24
|
+
OrgNoteGpgEncryptionSchema,
|
|
25
|
+
OrgNotePasswordEncryptionSchema,
|
|
26
|
+
OrgNoteDisabledEncryptionSchema,
|
|
27
|
+
]), metadata({ conditionalKey: 'type' })),
|
|
28
|
+
]);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { ExtensionManifest } from './extension.js';
|
|
3
|
+
import type { StoreDefinition } from './store.js';
|
|
4
|
+
export interface ExtensionRegistryStore {
|
|
5
|
+
availableExtensions: Ref<ExtensionManifest[]>;
|
|
6
|
+
loading: Ref<boolean>;
|
|
7
|
+
refresh: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export type ExtensionRegistryStoreDefinition = StoreDefinition<ExtensionRegistryStore>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import { ExtensionMeta, ExtensionSource, ExtensionSourceInfo } from './extension.js';
|
|
3
|
+
import { StoreDefinition } from './store.js';
|
|
4
|
+
export interface ExtensionStore {
|
|
5
|
+
ready: Ref<boolean>;
|
|
6
|
+
extensions: Ref<ExtensionMeta[]>;
|
|
7
|
+
sync: () => Promise<void>;
|
|
8
|
+
enableExtension: (extensionName: string) => Promise<void>;
|
|
9
|
+
disableExtension: (extensionName: string) => Promise<void>;
|
|
10
|
+
enableSafeMode: () => Promise<void>;
|
|
11
|
+
disableSafeMode: () => Promise<void>;
|
|
12
|
+
isExtensionExist: (extensionName: string) => boolean;
|
|
13
|
+
installExtension: (source: ExtensionSourceInfo) => Promise<void>;
|
|
14
|
+
addExtension: (meta: ExtensionMeta, source: ExtensionSource) => Promise<void>;
|
|
15
|
+
importExtension: (file: File) => Promise<void>;
|
|
16
|
+
deleteExtension: (extensionName: string) => Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export type ExtensionStoreDefinition = StoreDefinition<ExtensionStore>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|