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.
Files changed (283) hide show
  1. package/api.d.ts +93 -98
  2. package/constants/{command-groups.contant.d.ts → command-groups.d.ts} +2 -1
  3. package/constants/{command-groups.contant.js → command-groups.js} +2 -0
  4. package/constants/extension-errors.d.ts +9 -0
  5. package/constants/extension-errors.js +18 -0
  6. package/constants/file-guard-errors.d.ts +8 -0
  7. package/constants/file-guard-errors.js +18 -0
  8. package/constants/git-errors.d.ts +9 -0
  9. package/constants/git-errors.js +18 -0
  10. package/constants/i18n-keys.d.ts +371 -0
  11. package/constants/i18n-keys.js +158 -0
  12. package/constants/index.d.ts +9 -1
  13. package/constants/index.js +9 -1
  14. package/constants/oauth-providers.d.ts +1 -0
  15. package/constants/oauth-providers.js +1 -0
  16. package/constants/route-names.d.ts +36 -0
  17. package/constants/route-names.js +37 -0
  18. package/constants/route-paths.d.ts +5 -0
  19. package/constants/route-paths.js +4 -0
  20. package/constants/style-sizes.d.ts +1 -0
  21. package/constants/style-sizes.js +1 -0
  22. package/encryption/__tests__/encryption.spec.js +4 -5
  23. package/encryption/__tests__/note-encryption.spec.js +46 -348
  24. package/encryption/encryption.d.ts +9 -4
  25. package/encryption/encryption.js +25 -5
  26. package/encryption/note-encryption.d.ts +1 -1
  27. package/encryption/note-encryption.js +6 -6
  28. package/files-api.d.ts +0 -1
  29. package/index.d.ts +4 -1
  30. package/index.js +4 -1
  31. package/mappers/orgnode-to-note.d.ts +2 -2
  32. package/mappers/orgnode-to-note.js +3 -2
  33. package/models/auth-store.d.ts +3 -3
  34. package/models/buffer-store.d.ts +14 -0
  35. package/models/buffer.d.ts +24 -0
  36. package/models/colors.d.ts +1 -0
  37. package/models/command.d.ts +13 -8
  38. package/models/commands-group-store.d.ts +11 -0
  39. package/models/commands-store.d.ts +13 -0
  40. package/models/completion-store.d.ts +14 -0
  41. package/models/completion.d.ts +16 -7
  42. package/models/config-store.d.ts +9 -0
  43. package/models/confirmation-modal.d.ts +11 -0
  44. package/models/context-menu-store.d.ts +10 -0
  45. package/models/cron-store.d.ts +21 -0
  46. package/models/cron-task.d.ts +30 -0
  47. package/models/css-utils.d.ts +17 -0
  48. package/models/default-commands.d.ts +52 -3
  49. package/models/default-commands.js +59 -2
  50. package/models/encryption-store.d.ts +10 -0
  51. package/models/encryption-store.js +1 -0
  52. package/models/encryption.d.ts +54 -11
  53. package/models/encryption.js +28 -1
  54. package/models/extension-registry-store.d.ts +9 -0
  55. package/models/extension-registry-store.js +1 -0
  56. package/models/extension-store.d.ts +18 -0
  57. package/models/extension-store.js +1 -0
  58. package/models/extension.d.ts +96 -24
  59. package/models/extension.js +88 -1
  60. package/models/file-guard-store.d.ts +14 -0
  61. package/models/file-guard-store.js +1 -0
  62. package/models/file-guard.d.ts +27 -0
  63. package/models/file-guard.js +1 -0
  64. package/models/{file-cache.d.ts → file-info.d.ts} +1 -1
  65. package/models/file-info.js +1 -0
  66. package/models/file-manager-store.d.ts +10 -12
  67. package/models/file-opener-store.d.ts +6 -4
  68. package/models/file-system-manager-store.d.ts +13 -0
  69. package/models/file-system-manager-store.js +1 -0
  70. package/models/file-system-store.d.ts +19 -0
  71. package/models/file-system-store.js +1 -0
  72. package/models/file-system.d.ts +32 -5
  73. package/models/file-system.js +2 -0
  74. package/models/file-upload.d.ts +6 -0
  75. package/models/file-upload.js +1 -0
  76. package/models/file-watcher-store.d.ts +18 -0
  77. package/models/file-watcher-store.js +1 -0
  78. package/models/files-store.d.ts +2 -2
  79. package/models/git-store.d.ts +12 -0
  80. package/models/git-store.js +1 -0
  81. package/models/git.d.ts +47 -0
  82. package/models/git.js +1 -0
  83. package/models/i18n-keys.d.ts +2 -0
  84. package/models/i18n-keys.js +1 -0
  85. package/models/index.d.ts +56 -2
  86. package/models/index.js +59 -2
  87. package/models/layout-snapshot-repository.d.ts +14 -0
  88. package/models/layout-snapshot-repository.js +1 -0
  89. package/models/layout-store.d.ts +17 -0
  90. package/models/layout-store.js +1 -0
  91. package/models/layout.d.ts +16 -0
  92. package/models/layout.js +1 -0
  93. package/models/log-repository.d.ts +17 -0
  94. package/models/log-repository.js +1 -0
  95. package/models/log-store.d.ts +15 -0
  96. package/models/log-store.js +1 -0
  97. package/models/log.d.ts +12 -0
  98. package/models/log.js +1 -0
  99. package/models/logger.d.ts +8 -0
  100. package/models/logger.js +1 -0
  101. package/models/menu-action.d.ts +18 -0
  102. package/models/menu-action.js +1 -0
  103. package/models/modal-store.d.ts +16 -0
  104. package/models/modal-store.js +1 -0
  105. package/models/modal.d.ts +10 -2
  106. package/models/note.d.ts +30 -13
  107. package/models/notification-config.d.ts +14 -0
  108. package/models/notification-config.js +1 -0
  109. package/models/notifications-store.d.ts +20 -0
  110. package/models/notifications-store.js +1 -0
  111. package/models/oauth-provider.d.ts +2 -1
  112. package/models/orgnote-config.d.ts +80 -0
  113. package/models/orgnote-config.js +42 -0
  114. package/models/orgnote-url.d.ts +6 -0
  115. package/models/orgnote-url.js +1 -0
  116. package/models/pane-snapshot-repository.d.ts +0 -0
  117. package/models/pane-snapshot-repository.js +0 -0
  118. package/models/pane.d.ts +38 -0
  119. package/models/pane.js +1 -0
  120. package/models/panes-store.d.ts +30 -0
  121. package/models/panes-store.js +1 -0
  122. package/models/platform-detection.d.ts +11 -0
  123. package/models/platform-detection.js +1 -0
  124. package/models/platform-specific.d.ts +1 -0
  125. package/models/platform-specific.js +1 -0
  126. package/models/platform.d.ts +2 -0
  127. package/models/platform.js +1 -0
  128. package/models/queue-store.d.ts +49 -0
  129. package/models/queue-store.js +1 -0
  130. package/models/queue-task.d.ts +15 -0
  131. package/models/queue-task.js +1 -0
  132. package/models/repositories.d.ts +58 -38
  133. package/models/screen-detection.d.ts +10 -0
  134. package/models/screen-detection.js +1 -0
  135. package/models/settings-store.d.ts +12 -0
  136. package/models/settings-store.js +1 -0
  137. package/models/settings-ui-store.d.ts +7 -0
  138. package/models/settings-ui-store.js +1 -0
  139. package/models/sidebar-store.d.ts +22 -0
  140. package/models/sidebar-store.js +1 -0
  141. package/models/splash-screen.d.ts +13 -0
  142. package/models/splash-screen.js +1 -0
  143. package/models/store.d.ts +1 -1
  144. package/models/style-size.d.ts +2 -0
  145. package/models/style-size.js +1 -0
  146. package/models/style-variant.d.ts +1 -0
  147. package/models/style-variant.js +1 -0
  148. package/models/sync-store.d.ts +8 -6
  149. package/models/sync.d.ts +0 -5
  150. package/models/system-info.d.ts +47 -0
  151. package/models/system-info.js +1 -0
  152. package/models/theme-store.d.ts +16 -0
  153. package/models/theme-store.js +1 -0
  154. package/models/theme-variables.d.ts +4 -189
  155. package/models/theme-variables.js +2 -191
  156. package/models/toolbar-store.d.ts +9 -0
  157. package/models/toolbar-store.js +1 -0
  158. package/models/ui-store.d.ts +6 -0
  159. package/models/ui-store.js +1 -0
  160. package/models/user.d.ts +3 -4
  161. package/models/vue-component.d.ts +4 -2
  162. package/package-lock.json +5553 -0
  163. package/package.json +37 -26
  164. package/remote-api/api.d.ts +288 -669
  165. package/remote-api/api.js +199 -485
  166. package/remote-api/base.js +1 -1
  167. package/remote-api/common.d.ts +1 -1
  168. package/sync/__tests__/memory-state.spec.d.ts +1 -0
  169. package/sync/__tests__/memory-state.spec.js +49 -0
  170. package/sync/__tests__/plan.spec.d.ts +1 -0
  171. package/sync/__tests__/plan.spec.js +116 -0
  172. package/sync/create-sync-plan.d.ts +2 -0
  173. package/sync/create-sync-plan.js +13 -0
  174. package/sync/fetch.d.ts +8 -0
  175. package/sync/fetch.js +32 -0
  176. package/sync/index.d.ts +10 -0
  177. package/sync/index.js +9 -0
  178. package/sync/memory-state.d.ts +2 -0
  179. package/sync/memory-state.js +22 -0
  180. package/sync/operations/conflict.d.ts +10 -0
  181. package/sync/operations/conflict.js +56 -0
  182. package/sync/operations/delete-local.d.ts +2 -0
  183. package/sync/operations/delete-local.js +17 -0
  184. package/sync/operations/delete-remote.d.ts +2 -0
  185. package/sync/operations/delete-remote.js +26 -0
  186. package/sync/operations/download.d.ts +2 -0
  187. package/sync/operations/download.js +20 -0
  188. package/sync/operations/index.d.ts +5 -0
  189. package/sync/operations/index.js +5 -0
  190. package/sync/operations/synced-file.d.ts +14 -0
  191. package/sync/operations/synced-file.js +5 -0
  192. package/sync/operations/upload.d.ts +2 -0
  193. package/sync/operations/upload.js +30 -0
  194. package/sync/plan.d.ts +9 -0
  195. package/sync/plan.js +57 -0
  196. package/sync/recovery.d.ts +2 -0
  197. package/sync/recovery.js +6 -0
  198. package/sync/scan.d.ts +4 -0
  199. package/sync/scan.js +40 -0
  200. package/sync/types.d.ts +74 -0
  201. package/sync/types.js +7 -0
  202. package/sync/utils/__tests__/oldest-synced-at.spec.d.ts +1 -0
  203. package/sync/utils/__tests__/oldest-synced-at.spec.js +38 -0
  204. package/sync/utils/oldest-synced-at.d.ts +2 -0
  205. package/sync/utils/oldest-synced-at.js +9 -0
  206. package/types/index.d.ts +0 -0
  207. package/types/index.js +0 -0
  208. package/utils/__tests__/find-files-diff.spec.d.ts +1 -0
  209. package/{tools → utils}/__tests__/find-files-diff.spec.js +3 -3
  210. package/utils/__tests__/find-note-files-diff.spec.d.ts +1 -0
  211. package/{tools → utils}/__tests__/find-note-files-diff.spec.js +5 -5
  212. package/utils/__tests__/get-file-name.spec.d.ts +1 -0
  213. package/utils/__tests__/get-string-path.spec.d.ts +1 -0
  214. package/utils/__tests__/is-gpg-encrypted.spec.d.ts +1 -0
  215. package/utils/__tests__/is-org-file.spec.d.ts +1 -0
  216. package/utils/__tests__/join.spec.d.ts +1 -0
  217. package/utils/__tests__/join.spec.js +32 -0
  218. package/utils/__tests__/nullable-guards.spec.d.ts +1 -0
  219. package/utils/__tests__/nullable-guards.spec.js +44 -0
  220. package/utils/__tests__/parent-folder.spec.d.ts +1 -0
  221. package/utils/__tests__/read-org-files-recursively.spec.d.ts +1 -0
  222. package/utils/__tests__/split-path.spec.d.ts +1 -0
  223. package/utils/__tests__/to-absolute-path.spec.d.ts +1 -0
  224. package/utils/__tests__/to-absolute-path.spec.js +26 -0
  225. package/utils/__tests__/to-error.spec.d.ts +1 -0
  226. package/utils/__tests__/to-error.spec.js +112 -0
  227. package/utils/__tests__/with-root.spec.d.ts +1 -0
  228. package/utils/__tests__/with-root.spec.js +20 -0
  229. package/{tools → utils}/find-notes-files-diff.js +6 -3
  230. package/{tools → utils}/index.d.ts +4 -1
  231. package/{tools → utils}/index.js +4 -1
  232. package/utils/join-path.d.ts +1 -0
  233. package/utils/join-path.js +13 -0
  234. package/utils/nullable-guards.d.ts +2 -0
  235. package/utils/nullable-guards.js +6 -0
  236. package/utils/to-absolute-path.d.ts +2 -0
  237. package/utils/to-absolute-path.js +2 -0
  238. package/utils/to-error.d.ts +6 -0
  239. package/utils/to-error.js +33 -0
  240. package/utils/toml.d.ts +3 -0
  241. package/utils/toml.js +31 -0
  242. package/utils/with-root.d.ts +1 -0
  243. package/utils/with-root.js +6 -0
  244. package/websocket/client.d.ts +24 -0
  245. package/websocket/client.js +83 -0
  246. package/models/file-tree.d.ts +0 -12
  247. package/tools/__tests__/join.spec.js +0 -24
  248. package/tools/join-path.d.ts +0 -1
  249. package/tools/join-path.js +0 -7
  250. package/tools/mock-server.d.ts +0 -1
  251. package/tools/mock-server.js +0 -12
  252. /package/models/{file-cache.js → buffer-store.js} +0 -0
  253. /package/models/{file-tree.js → buffer.js} +0 -0
  254. /package/{tools/__tests__/find-files-diff.spec.d.ts → models/colors.js} +0 -0
  255. /package/{tools/__tests__/find-note-files-diff.spec.d.ts → models/commands-group-store.js} +0 -0
  256. /package/{tools/__tests__/get-file-name.spec.d.ts → models/commands-store.js} +0 -0
  257. /package/{tools/__tests__/get-string-path.spec.d.ts → models/completion-store.js} +0 -0
  258. /package/{tools/__tests__/is-gpg-encrypted.spec.d.ts → models/config-store.js} +0 -0
  259. /package/{tools/__tests__/is-org-file.spec.d.ts → models/confirmation-modal.js} +0 -0
  260. /package/{tools/__tests__/join.spec.d.ts → models/context-menu-store.js} +0 -0
  261. /package/{tools/__tests__/parent-folder.spec.d.ts → models/cron-store.js} +0 -0
  262. /package/{tools/__tests__/read-org-files-recursively.spec.d.ts → models/cron-task.js} +0 -0
  263. /package/{tools/__tests__/split-path.spec.d.ts → models/css-utils.js} +0 -0
  264. /package/{tools → utils}/__tests__/get-file-name.spec.js +0 -0
  265. /package/{tools → utils}/__tests__/get-string-path.spec.js +0 -0
  266. /package/{tools → utils}/__tests__/is-gpg-encrypted.spec.js +0 -0
  267. /package/{tools → utils}/__tests__/is-org-file.spec.js +0 -0
  268. /package/{tools → utils}/__tests__/parent-folder.spec.js +0 -0
  269. /package/{tools → utils}/__tests__/read-org-files-recursively.spec.js +0 -0
  270. /package/{tools → utils}/__tests__/split-path.spec.js +0 -0
  271. /package/{tools → utils}/find-notes-files-diff.d.ts +0 -0
  272. /package/{tools → utils}/get-file-name.d.ts +0 -0
  273. /package/{tools → utils}/get-file-name.js +0 -0
  274. /package/{tools → utils}/get-parent-dir.d.ts +0 -0
  275. /package/{tools → utils}/get-parent-dir.js +0 -0
  276. /package/{tools → utils}/get-string-path.d.ts +0 -0
  277. /package/{tools → utils}/get-string-path.js +0 -0
  278. /package/{tools → utils}/is-gpg-encrypted.d.ts +0 -0
  279. /package/{tools → utils}/is-gpg-encrypted.js +0 -0
  280. /package/{tools → utils}/is-org-file.d.ts +0 -0
  281. /package/{tools → utils}/is-org-file.js +0 -0
  282. /package/{tools → utils}/split-path.d.ts +0 -0
  283. /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 = '';
@@ -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 { COMMAND_GROUPS } from '../constants/command-groups.contant.js';
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?: DefaultCommands | string;
13
- title?: string | (() => string);
14
- icon?: string | (() => 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
- disabled?: () => boolean;
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?: CommandHandlerParams<T>) => R | Promise<R>;
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>;
@@ -1,22 +1,31 @@
1
+ import { MaybeRefOrGetter } from 'vue';
1
2
  export interface CompletionCandidate<T = unknown> {
2
- icon?: string | (() => string);
3
- group?: string;
4
- title?: string | (() => string);
5
- description?: string | (() => 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?: (data: T) => void;
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 CompletionConfigs<T = unknown> {
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
- TOGGLE_DARK_MODE = "toggle dark mode",
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["TOGGLE_DARK_MODE"] = "toggle dark mode";
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 {};
@@ -1,4 +1,10 @@
1
- import type { ModelsPublicNoteEncryptionTypeEnum } from '../remote-api/index.js';
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
- export interface OrgNoteGpgEncryption {
10
- type: typeof ModelsPublicNoteEncryptionTypeEnum.GpgKeys;
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
- export interface OrgNotePasswordEncryption {
16
- type: typeof ModelsPublicNoteEncryptionTypeEnum.GpgPassword;
54
+ } | {
55
+ type: "gpgPassword";
17
56
  password: string;
18
- }
19
- export interface OrgNoteDisabledEncryption {
20
- type: typeof ModelsPublicNoteEncryptionTypeEnum.Disabled;
21
- }
22
- export type OrgNoteEncryption = OrgNoteGpgEncryption | OrgNotePasswordEncryption | OrgNoteDisabledEncryption;
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 {};
@@ -1 +1,28 @@
1
- export {};
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 {};