@pierre/diffs 1.3.6 → 1.4.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/dist/components/CodeView.d.ts +113 -68
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +153 -58
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +75 -15
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +223 -62
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +97 -21
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +400 -100
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts +2 -2
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/UnresolvedFile.js +2 -2
- package/dist/components/UnresolvedFile.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +16 -7
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +140 -51
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +14 -8
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +183 -93
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/VirtulizerDevelopment.d.ts +1 -1
- package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
- package/dist/edit/index.d.ts +7 -4
- package/dist/edit/index.js +5 -1
- package/dist/editor/EditStateManager.d.ts +56 -0
- package/dist/editor/EditStateManager.d.ts.map +1 -0
- package/dist/editor/EditStateManager.js +135 -0
- package/dist/editor/EditStateManager.js.map +1 -0
- package/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts +7 -0
- package/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts.map +1 -0
- package/dist/editor/cloneRetainedDiffSessionSnapshot.js +16 -0
- package/dist/editor/cloneRetainedDiffSessionSnapshot.js.map +1 -0
- package/dist/editor/editPrediction.d.ts +76 -0
- package/dist/editor/editPrediction.d.ts.map +1 -0
- package/dist/editor/editPrediction.js +365 -0
- package/dist/editor/editPrediction.js.map +1 -0
- package/dist/editor/editStack.d.ts +19 -40
- package/dist/editor/editStack.d.ts.map +1 -1
- package/dist/editor/editStack.js +67 -4
- package/dist/editor/editStack.js.map +1 -1
- package/dist/editor/editor.d.ts +118 -29
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +1103 -383
- package/dist/editor/editor.js.map +1 -1
- package/dist/editor/editor2.js +1 -1
- package/dist/editor/languages.d.ts +3 -3
- package/dist/editor/languages.d.ts.map +1 -1
- package/dist/editor/languages.js.map +1 -1
- package/dist/editor/lineAnnotations.d.ts +3 -3
- package/dist/editor/lineAnnotations.d.ts.map +1 -1
- package/dist/editor/lineAnnotations.js +16 -7
- package/dist/editor/lineAnnotations.js.map +1 -1
- package/dist/editor/marker.d.ts +2 -2
- package/dist/editor/marker.d.ts.map +1 -1
- package/dist/editor/marker.js.map +1 -1
- package/dist/editor/matchBrackets.d.ts +2 -2
- package/dist/editor/matchBrackets.d.ts.map +1 -1
- package/dist/editor/matchBrackets.js.map +1 -1
- package/dist/editor/pieceTable.d.ts +1 -1
- package/dist/editor/pieceTable.js.map +1 -1
- package/dist/editor/searchPanel.d.ts +2 -2
- package/dist/editor/searchPanel.js +1 -1
- package/dist/editor/searchPanel.js.map +1 -1
- package/dist/editor/selection.d.ts +32 -23
- package/dist/editor/selection.d.ts.map +1 -1
- package/dist/editor/selection.js +3 -3
- package/dist/editor/selection.js.map +1 -1
- package/dist/editor/selectionAction.d.ts +3 -3
- package/dist/editor/selectionAction.d.ts.map +1 -1
- package/dist/editor/selectionAction.js.map +1 -1
- package/dist/editor/textDocument.d.ts +11 -8
- package/dist/editor/textDocument.d.ts.map +1 -1
- package/dist/editor/textDocument.js +28 -5
- package/dist/editor/textDocument.js.map +1 -1
- package/dist/editor/textDocumentChangeTransaction.d.ts +15 -0
- package/dist/editor/textDocumentChangeTransaction.d.ts.map +1 -0
- package/dist/editor/textDocumentChangeTransaction.js +12 -0
- package/dist/editor/textDocumentChangeTransaction.js.map +1 -0
- package/dist/editor/textMeasure.d.ts +5 -0
- package/dist/editor/textMeasure.d.ts.map +1 -1
- package/dist/editor/textMeasure.js +10 -0
- package/dist/editor/textMeasure.js.map +1 -1
- package/dist/editor/tokenizer.d.ts +1 -1
- package/dist/editor/tokenizer.js.map +1 -1
- package/dist/editor/types.d.ts +267 -0
- package/dist/editor/types.d.ts.map +1 -0
- package/dist/editor/types.js +0 -0
- package/dist/editor/utils.d.ts +2 -1
- package/dist/editor/utils.d.ts.map +1 -1
- package/dist/editor/utils.js +4 -1
- package/dist/editor/utils.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.js +9 -8
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +7 -0
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/react/CodeView.d.ts +36 -25
- package/dist/react/CodeView.d.ts.map +1 -1
- package/dist/react/CodeView.js +15 -14
- package/dist/react/CodeView.js.map +1 -1
- package/dist/react/EditContext.d.ts +8 -11
- package/dist/react/EditContext.d.ts.map +1 -1
- package/dist/react/EditContext.js +2 -9
- package/dist/react/EditContext.js.map +1 -1
- package/dist/react/File.d.ts +10 -6
- package/dist/react/File.d.ts.map +1 -1
- package/dist/react/File.js +8 -4
- package/dist/react/File.js.map +1 -1
- package/dist/react/FileDiff.d.ts +10 -5
- package/dist/react/FileDiff.d.ts.map +1 -1
- package/dist/react/FileDiff.js +8 -4
- package/dist/react/FileDiff.js.map +1 -1
- package/dist/react/MultiFileDiff.d.ts +8 -5
- package/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/dist/react/MultiFileDiff.js +8 -12
- package/dist/react/MultiFileDiff.js.map +1 -1
- package/dist/react/PatchDiff.d.ts +7 -4
- package/dist/react/PatchDiff.d.ts.map +1 -1
- package/dist/react/PatchDiff.js +8 -4
- package/dist/react/PatchDiff.js.map +1 -1
- package/dist/react/UnresolvedFile.d.ts +3 -3
- package/dist/react/UnresolvedFile.d.ts.map +1 -1
- package/dist/react/UnresolvedFile.js.map +1 -1
- package/dist/react/index.d.ts +8 -5
- package/dist/react/types.d.ts +46 -9
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.d.ts +14 -12
- package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.js +2 -2
- package/dist/react/utils/renderDiffChildren.js.map +1 -1
- package/dist/react/utils/renderFileChildren.d.ts +14 -12
- package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
- package/dist/react/utils/renderFileChildren.js +2 -2
- package/dist/react/utils/renderFileChildren.js.map +1 -1
- package/dist/react/utils/useFileDiffInstance.d.ts +22 -10
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +112 -22
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/react/utils/useFileInstance.d.ts +15 -9
- package/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileInstance.js +84 -25
- package/dist/react/utils/useFileInstance.js.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +30 -15
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +172 -108
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +27 -11
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +138 -64
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +2 -2
- package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/UnresolvedFileHunksRenderer.js +2 -2
- package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
- package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
- package/dist/shiki-stream/tokenizer.js +2 -1
- package/dist/shiki-stream/tokenizer.js.map +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/ssr/preloadDiffs.d.ts +21 -21
- package/dist/ssr/preloadDiffs.d.ts.map +1 -1
- package/dist/ssr/preloadDiffs.js +1 -1
- package/dist/ssr/preloadDiffs.js.map +1 -1
- package/dist/ssr/preloadFile.d.ts +6 -6
- package/dist/ssr/preloadFile.d.ts.map +1 -1
- package/dist/ssr/preloadFile.js.map +1 -1
- package/dist/ssr/preloadPatchFile.d.ts +4 -4
- package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
- package/dist/ssr/preloadPatchFile.js.map +1 -1
- package/dist/style.js +1 -1
- package/dist/types.d.ts +13 -263
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/appendItems.d.ts +5 -0
- package/dist/utils/appendItems.d.ts.map +1 -0
- package/dist/utils/appendItems.js +8 -0
- package/dist/utils/appendItems.js.map +1 -0
- package/dist/utils/areDiffTargetsEqual.js +1 -1
- package/dist/utils/areDiffTargetsEqual.js.map +1 -1
- package/dist/utils/areFileTargetsEqual.d.ts +7 -0
- package/dist/utils/areFileTargetsEqual.d.ts.map +1 -0
- package/dist/utils/areFileTargetsEqual.js +8 -0
- package/dist/utils/areFileTargetsEqual.js.map +1 -0
- package/dist/utils/areManagedSnapshotsEqual.d.ts +1 -1
- package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
- package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
- package/dist/utils/areOptionsEqual.d.ts +3 -3
- package/dist/utils/areOptionsEqual.d.ts.map +1 -1
- package/dist/utils/areOptionsEqual.js.map +1 -1
- package/dist/utils/cloneFileDiffMetadata.d.ts +3 -2
- package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -1
- package/dist/utils/cloneFileDiffMetadata.js +8 -5
- package/dist/utils/cloneFileDiffMetadata.js.map +1 -1
- package/dist/utils/composeCacheKey.d.ts +6 -0
- package/dist/utils/composeCacheKey.d.ts.map +1 -0
- package/dist/utils/composeCacheKey.js +10 -0
- package/dist/utils/composeCacheKey.js.map +1 -0
- package/dist/utils/editSessionAnnotations.d.ts +69 -0
- package/dist/utils/editSessionAnnotations.d.ts.map +1 -0
- package/dist/utils/editSessionAnnotations.js +64 -0
- package/dist/utils/editSessionAnnotations.js.map +1 -0
- package/dist/utils/editSessionHunks.d.ts +5 -3
- package/dist/utils/editSessionHunks.d.ts.map +1 -1
- package/dist/utils/editSessionHunks.js +7 -5
- package/dist/utils/editSessionHunks.js.map +1 -1
- package/dist/utils/getDiffHunksRendererOptions.d.ts +1 -1
- package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
- package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
- package/dist/utils/getFileRendererOptions.d.ts +1 -1
- package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
- package/dist/utils/getFileRendererOptions.js.map +1 -1
- package/dist/utils/hydratePartialDiff.d.ts.map +1 -1
- package/dist/utils/hydratePartialDiff.js +2 -1
- package/dist/utils/hydratePartialDiff.js.map +1 -1
- package/dist/utils/lineAnnotationIdentity.d.ts +16 -0
- package/dist/utils/lineAnnotationIdentity.d.ts.map +1 -0
- package/dist/utils/lineAnnotationIdentity.js +17 -0
- package/dist/utils/lineAnnotationIdentity.js.map +1 -0
- package/dist/utils/parseDiffFromFile.d.ts +2 -2
- package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
- package/dist/utils/parseDiffFromFile.js +6 -6
- package/dist/utils/parseDiffFromFile.js.map +1 -1
- package/dist/utils/parsePatchFiles.d.ts +6 -3
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +34 -9
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.js +6 -5
- package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
- package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderFileWithHighlighter.js +7 -4
- package/dist/utils/renderFileWithHighlighter.js.map +1 -1
- package/dist/utils/trimPatchContext.d.ts.map +1 -1
- package/dist/utils/trimPatchContext.js +3 -2
- package/dist/utils/trimPatchContext.js.map +1 -1
- package/dist/utils/updateDiffHunks.js +1 -1
- package/dist/utils/virtualDiffLayout.js +1 -1
- package/dist/worker/WorkerPoolManager.d.ts +4 -3
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +33 -4
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/types.d.ts +5 -0
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +14 -6
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +14 -6
- package/dist/worker/worker.js.map +1 -1
- package/package.json +9 -1
- package/dist/editor/stateStorage.d.ts +0 -15
- package/dist/editor/stateStorage.d.ts.map +0 -1
- package/dist/editor/stateStorage.js +0 -65
- package/dist/editor/stateStorage.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pierre/diffs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"license": "apache-2.0",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -96,5 +96,13 @@
|
|
|
96
96
|
"react": "^18.3.1 || ^19.0.0",
|
|
97
97
|
"react-dom": "^18.3.1 || ^19.0.0"
|
|
98
98
|
},
|
|
99
|
+
"peerDependenciesMeta": {
|
|
100
|
+
"react": {
|
|
101
|
+
"optional": true
|
|
102
|
+
},
|
|
103
|
+
"react-dom": {
|
|
104
|
+
"optional": true
|
|
105
|
+
}
|
|
106
|
+
},
|
|
99
107
|
"scripts": {}
|
|
100
108
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { EditorState } from "../types.js";
|
|
2
|
-
|
|
3
|
-
//#region src/editor/stateStorage.d.ts
|
|
4
|
-
interface IStateStorage {
|
|
5
|
-
/** Read the editor state stored for a file cache key. */
|
|
6
|
-
get(cacheKey: string): EditorState | undefined | Promise<EditorState | undefined>;
|
|
7
|
-
/** Store the editor state for a file cache key. */
|
|
8
|
-
set(cacheKey: string, state: EditorState): void | Promise<void>;
|
|
9
|
-
}
|
|
10
|
-
type PersistStateStorage = 'inMemory' | 'indexedDB' | IStateStorage;
|
|
11
|
-
declare function cloneEditorState(state: EditorState): EditorState;
|
|
12
|
-
declare function createStateStorage(storage: PersistStateStorage): IStateStorage;
|
|
13
|
-
//#endregion
|
|
14
|
-
export { IStateStorage, PersistStateStorage, cloneEditorState, createStateStorage };
|
|
15
|
-
//# sourceMappingURL=stateStorage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stateStorage.d.ts","names":[],"sources":["../../src/editor/stateStorage.ts"],"mappings":";;;UAEiB,aAAA;;EAEf,GAAA,CACE,QAAA,WACC,WAAA,eAA0B,OAAA,CAAQ,WAAA;EAJT;EAM5B,GAAA,CAAI,QAAA,UAAkB,KAAA,EAAO,WAAA,UAAqB,OAAA;AAAA;AAAA,KAGxC,mBAAA,8BAAiD,aAAa;AAAA,iBAE1D,gBAAA,CAAiB,KAAA,EAAO,WAAA,GAAc,WAAW;AAAA,iBAWjD,kBAAA,CACd,OAAA,EAAS,mBAAA,GACR,aAAa"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
//#region src/editor/stateStorage.ts
|
|
2
|
-
function cloneEditorState(state) {
|
|
3
|
-
return {
|
|
4
|
-
selections: state.selections?.map((selection) => ({
|
|
5
|
-
start: { ...selection.start },
|
|
6
|
-
end: { ...selection.end },
|
|
7
|
-
direction: selection.direction
|
|
8
|
-
})),
|
|
9
|
-
view: state.view === void 0 ? void 0 : { ...state.view }
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
function createStateStorage(storage) {
|
|
13
|
-
return typeof storage === "object" ? storage : storage === "indexedDB" ? new IndexedDBStateStorage() : new InMemoryStateStorage();
|
|
14
|
-
}
|
|
15
|
-
var InMemoryStateStorage = class {
|
|
16
|
-
#states = /* @__PURE__ */ new Map();
|
|
17
|
-
get(cacheKey) {
|
|
18
|
-
const state = this.#states.get(cacheKey);
|
|
19
|
-
return state === void 0 ? void 0 : cloneEditorState(state);
|
|
20
|
-
}
|
|
21
|
-
set(cacheKey, state) {
|
|
22
|
-
this.#states.set(cacheKey, cloneEditorState(state));
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
const DATABASE_NAME = "pierre-diffs-editor-state";
|
|
26
|
-
const DATABASE_VERSION = 1;
|
|
27
|
-
const STORE_NAME = "states";
|
|
28
|
-
var IndexedDBStateStorage = class {
|
|
29
|
-
#database = openDatabase();
|
|
30
|
-
async get(cacheKey) {
|
|
31
|
-
const database = await this.#database;
|
|
32
|
-
if (database === void 0) return;
|
|
33
|
-
const state = await requestToPromise(database.transaction(STORE_NAME, "readonly").objectStore(STORE_NAME).get(cacheKey));
|
|
34
|
-
return state === void 0 ? void 0 : cloneEditorState(state);
|
|
35
|
-
}
|
|
36
|
-
async set(cacheKey, state) {
|
|
37
|
-
const database = await this.#database;
|
|
38
|
-
if (database === void 0) return;
|
|
39
|
-
await requestToPromise(database.transaction(STORE_NAME, "readwrite").objectStore(STORE_NAME).put(cloneEditorState(state), cacheKey));
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
function openDatabase() {
|
|
43
|
-
try {
|
|
44
|
-
const factory = globalThis.indexedDB;
|
|
45
|
-
if (factory === void 0) return Promise.resolve(void 0);
|
|
46
|
-
const request = factory.open(DATABASE_NAME, DATABASE_VERSION);
|
|
47
|
-
request.onupgradeneeded = () => {
|
|
48
|
-
const database = request.result;
|
|
49
|
-
if (!database.objectStoreNames.contains(STORE_NAME)) database.createObjectStore(STORE_NAME);
|
|
50
|
-
};
|
|
51
|
-
return requestToPromise(request);
|
|
52
|
-
} catch {
|
|
53
|
-
return Promise.resolve(void 0);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function requestToPromise(request) {
|
|
57
|
-
return new Promise((resolve, reject) => {
|
|
58
|
-
request.onsuccess = () => resolve(request.result);
|
|
59
|
-
request.onerror = () => reject(request.error);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
//#endregion
|
|
63
|
-
export { cloneEditorState, createStateStorage };
|
|
64
|
-
|
|
65
|
-
//# sourceMappingURL=stateStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stateStorage.js","names":["#states","#database"],"sources":["../../src/editor/stateStorage.ts"],"sourcesContent":["import type { EditorState } from '../types';\n\nexport interface IStateStorage {\n /** Read the editor state stored for a file cache key. */\n get(\n cacheKey: string\n ): EditorState | undefined | Promise<EditorState | undefined>;\n /** Store the editor state for a file cache key. */\n set(cacheKey: string, state: EditorState): void | Promise<void>;\n}\n\nexport type PersistStateStorage = 'inMemory' | 'indexedDB' | IStateStorage;\n\nexport function cloneEditorState(state: EditorState): EditorState {\n return {\n selections: state.selections?.map((selection) => ({\n start: { ...selection.start },\n end: { ...selection.end },\n direction: selection.direction,\n })),\n view: state.view === undefined ? undefined : { ...state.view },\n };\n}\n\nexport function createStateStorage(\n storage: PersistStateStorage\n): IStateStorage {\n return typeof storage === 'object'\n ? storage\n : storage === 'indexedDB'\n ? new IndexedDBStateStorage()\n : new InMemoryStateStorage();\n}\n\nclass InMemoryStateStorage implements IStateStorage {\n #states = new Map<string, EditorState>();\n\n get(cacheKey: string): EditorState | undefined {\n const state = this.#states.get(cacheKey);\n return state === undefined ? undefined : cloneEditorState(state);\n }\n\n set(cacheKey: string, state: EditorState): void {\n this.#states.set(cacheKey, cloneEditorState(state));\n }\n}\n\nconst DATABASE_NAME = 'pierre-diffs-editor-state';\nconst DATABASE_VERSION = 1;\nconst STORE_NAME = 'states';\n\nclass IndexedDBStateStorage implements IStateStorage {\n #database = openDatabase();\n\n async get(cacheKey: string): Promise<EditorState | undefined> {\n const database = await this.#database;\n if (database === undefined) {\n return undefined;\n }\n const state = await requestToPromise<EditorState | undefined>(\n database\n .transaction(STORE_NAME, 'readonly')\n .objectStore(STORE_NAME)\n .get(cacheKey)\n );\n return state === undefined ? undefined : cloneEditorState(state);\n }\n\n async set(cacheKey: string, state: EditorState): Promise<void> {\n const database = await this.#database;\n if (database === undefined) {\n return;\n }\n await requestToPromise(\n database\n .transaction(STORE_NAME, 'readwrite')\n .objectStore(STORE_NAME)\n .put(cloneEditorState(state), cacheKey)\n );\n }\n}\n\nfunction openDatabase(): Promise<IDBDatabase | undefined> {\n try {\n const factory = globalThis.indexedDB;\n if (factory === undefined) {\n return Promise.resolve(undefined);\n }\n\n const request = factory.open(DATABASE_NAME, DATABASE_VERSION);\n request.onupgradeneeded = () => {\n const database = request.result;\n if (!database.objectStoreNames.contains(STORE_NAME)) {\n database.createObjectStore(STORE_NAME);\n }\n };\n return requestToPromise(request);\n } catch {\n return Promise.resolve(undefined);\n }\n}\n\nfunction requestToPromise<T>(request: IDBRequest<T>): Promise<T> {\n return new Promise((resolve, reject) => {\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(request.error);\n });\n}\n"],"mappings":";AAaA,SAAgB,iBAAiB,OAAiC;CAChE,OAAO;EACL,YAAY,MAAM,YAAY,KAAK,eAAe;GAChD,OAAO,EAAE,GAAG,UAAU,MAAM;GAC5B,KAAK,EAAE,GAAG,UAAU,IAAI;GACxB,WAAW,UAAU;EACvB,EAAE;EACF,MAAM,MAAM,SAAS,KAAA,IAAY,KAAA,IAAY,EAAE,GAAG,MAAM,KAAK;CAC/D;AACF;AAEA,SAAgB,mBACd,SACe;CACf,OAAO,OAAO,YAAY,WACtB,UACA,YAAY,cACV,IAAI,sBAAsB,IAC1B,IAAI,qBAAqB;AACjC;AAEA,IAAM,uBAAN,MAAoD;CAClD,0BAAU,IAAI,IAAyB;CAEvC,IAAI,UAA2C;EAC7C,MAAM,QAAQ,KAAKA,QAAQ,IAAI,QAAQ;EACvC,OAAO,UAAU,KAAA,IAAY,KAAA,IAAY,iBAAiB,KAAK;CACjE;CAEA,IAAI,UAAkB,OAA0B;EAC9C,KAAKA,QAAQ,IAAI,UAAU,iBAAiB,KAAK,CAAC;CACpD;AACF;AAEA,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AACzB,MAAM,aAAa;AAEnB,IAAM,wBAAN,MAAqD;CACnD,YAAY,aAAa;CAEzB,MAAM,IAAI,UAAoD;EAC5D,MAAM,WAAW,MAAM,KAAKC;EAC5B,IAAI,aAAa,KAAA,GACf;EAEF,MAAM,QAAQ,MAAM,iBAClB,SACG,YAAY,YAAY,UAAU,CAAC,CACnC,YAAY,UAAU,CAAC,CACvB,IAAI,QAAQ,CACjB;EACA,OAAO,UAAU,KAAA,IAAY,KAAA,IAAY,iBAAiB,KAAK;CACjE;CAEA,MAAM,IAAI,UAAkB,OAAmC;EAC7D,MAAM,WAAW,MAAM,KAAKA;EAC5B,IAAI,aAAa,KAAA,GACf;EAEF,MAAM,iBACJ,SACG,YAAY,YAAY,WAAW,CAAC,CACpC,YAAY,UAAU,CAAC,CACvB,IAAI,iBAAiB,KAAK,GAAG,QAAQ,CAC1C;CACF;AACF;AAEA,SAAS,eAAiD;CACxD,IAAI;EACF,MAAM,UAAU,WAAW;EAC3B,IAAI,YAAY,KAAA,GACd,OAAO,QAAQ,QAAQ,KAAA,CAAS;EAGlC,MAAM,UAAU,QAAQ,KAAK,eAAe,gBAAgB;EAC5D,QAAQ,wBAAwB;GAC9B,MAAM,WAAW,QAAQ;GACzB,IAAI,CAAC,SAAS,iBAAiB,SAAS,UAAU,GAChD,SAAS,kBAAkB,UAAU;EAEzC;EACA,OAAO,iBAAiB,OAAO;CACjC,QAAQ;EACN,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;AACF;AAEA,SAAS,iBAAoB,SAAoC;CAC/D,OAAO,IAAI,SAAS,SAAS,WAAW;EACtC,QAAQ,kBAAkB,QAAQ,QAAQ,MAAM;EAChD,QAAQ,gBAAgB,OAAO,QAAQ,KAAK;CAC9C,CAAC;AACH"}
|