document-drive 1.19.0 → 1.20.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/README.md +4 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/src/cache/memory.d.ts +10 -0
- package/dist/src/cache/memory.d.ts.map +1 -0
- package/dist/src/cache/memory.js +26 -0
- package/dist/src/cache/redis.d.ts +14 -0
- package/dist/src/cache/redis.d.ts.map +1 -0
- package/dist/src/cache/redis.js +40 -0
- package/dist/src/cache/types.d.ts +7 -0
- package/dist/src/cache/types.d.ts.map +1 -0
- package/dist/src/cache/types.js +1 -0
- package/dist/src/drive-document-model/constants.d.ts +2 -0
- package/dist/src/drive-document-model/constants.d.ts.map +1 -0
- package/dist/src/drive-document-model/constants.js +1 -0
- package/dist/src/drive-document-model/gen/actions.d.ts +7 -0
- package/dist/src/drive-document-model/gen/actions.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/actions.js +2 -0
- package/dist/src/drive-document-model/gen/constants.d.ts +7 -0
- package/dist/src/drive-document-model/gen/constants.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/constants.js +16 -0
- package/dist/src/drive-document-model/gen/creators.d.ts +3 -0
- package/dist/src/drive-document-model/gen/creators.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/creators.js +2 -0
- package/dist/src/drive-document-model/gen/document-model.d.ts +3 -0
- package/dist/src/drive-document-model/gen/document-model.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/document-model.js +210 -0
- package/dist/src/drive-document-model/gen/drive/actions.d.ts +12 -0
- package/dist/src/drive-document-model/gen/drive/actions.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/actions.js +1 -0
- package/dist/src/drive-document-model/gen/drive/creators.d.ts +11 -0
- package/dist/src/drive-document-model/gen/drive/creators.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/creators.js +10 -0
- package/dist/src/drive-document-model/gen/drive/error.d.ts +2 -0
- package/dist/src/drive-document-model/gen/drive/error.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/error.js +1 -0
- package/dist/src/drive-document-model/gen/drive/object.d.ts +14 -0
- package/dist/src/drive-document-model/gen/drive/object.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/object.js +28 -0
- package/dist/src/drive-document-model/gen/drive/operations.d.ts +14 -0
- package/dist/src/drive-document-model/gen/drive/operations.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/operations.js +1 -0
- package/dist/src/drive-document-model/gen/node/actions.d.ts +11 -0
- package/dist/src/drive-document-model/gen/node/actions.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/actions.js +1 -0
- package/dist/src/drive-document-model/gen/node/creators.d.ts +10 -0
- package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/creators.js +9 -0
- package/dist/src/drive-document-model/gen/node/error.d.ts +2 -0
- package/dist/src/drive-document-model/gen/node/error.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/error.js +1 -0
- package/dist/src/drive-document-model/gen/node/object.d.ts +13 -0
- package/dist/src/drive-document-model/gen/node/object.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/object.js +25 -0
- package/dist/src/drive-document-model/gen/node/operations.d.ts +13 -0
- package/dist/src/drive-document-model/gen/node/operations.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/operations.js +1 -0
- package/dist/src/drive-document-model/gen/object.d.ts +21 -0
- package/dist/src/drive-document-model/gen/object.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/object.js +28 -0
- package/dist/src/drive-document-model/gen/reducer.d.ts +4 -0
- package/dist/src/drive-document-model/gen/reducer.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/reducer.js +74 -0
- package/dist/src/drive-document-model/gen/schema/types.d.ts +176 -0
- package/dist/src/drive-document-model/gen/schema/types.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/schema/types.js +1 -0
- package/dist/src/drive-document-model/gen/schema/zod.d.ts +87 -0
- package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/schema/zod.js +203 -0
- package/dist/src/drive-document-model/gen/types.d.ts +9 -0
- package/dist/src/drive-document-model/gen/types.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/types.js +1 -0
- package/dist/src/drive-document-model/gen/utils.d.ts +10 -0
- package/dist/src/drive-document-model/gen/utils.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/utils.js +27 -0
- package/dist/src/drive-document-model/index.d.ts +2 -0
- package/dist/src/drive-document-model/index.d.ts.map +1 -0
- package/dist/src/drive-document-model/index.js +1 -0
- package/dist/src/drive-document-model/module.d.ts +3 -0
- package/dist/src/drive-document-model/module.d.ts.map +1 -0
- package/dist/src/drive-document-model/module.js +12 -0
- package/dist/src/drive-document-model/src/reducers/drive.d.ts +8 -0
- package/dist/src/drive-document-model/src/reducers/drive.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/reducers/drive.js +37 -0
- package/dist/src/drive-document-model/src/reducers/node.d.ts +8 -0
- package/dist/src/drive-document-model/src/reducers/node.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/reducers/node.js +185 -0
- package/dist/src/drive-document-model/src/utils.d.ts +34 -0
- package/dist/src/drive-document-model/src/utils.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/utils.js +146 -0
- package/dist/src/queue/base.d.ts +43 -0
- package/dist/src/queue/base.d.ts.map +1 -0
- package/dist/src/queue/base.js +241 -0
- package/dist/src/queue/redis.d.ts +28 -0
- package/dist/src/queue/redis.d.ts.map +1 -0
- package/dist/src/queue/redis.js +110 -0
- package/dist/src/queue/types.d.ts +55 -0
- package/dist/src/queue/types.d.ts.map +1 -0
- package/dist/src/queue/types.js +6 -0
- package/dist/src/read-mode/errors.d.ts +12 -0
- package/dist/src/read-mode/errors.d.ts.map +1 -0
- package/dist/src/read-mode/errors.js +17 -0
- package/dist/src/read-mode/server.d.ts +4 -0
- package/dist/src/read-mode/server.d.ts.map +1 -0
- package/dist/src/read-mode/server.js +78 -0
- package/dist/src/read-mode/service.d.ts +18 -0
- package/dist/src/read-mode/service.d.ts.map +1 -0
- package/dist/src/read-mode/service.js +112 -0
- package/dist/src/read-mode/types.d.ts +35 -0
- package/dist/src/read-mode/types.d.ts.map +1 -0
- package/dist/src/read-mode/types.js +1 -0
- package/dist/src/server/base-server.d.ts +112 -0
- package/dist/src/server/base-server.d.ts.map +1 -0
- package/dist/src/server/base-server.js +1280 -0
- package/dist/src/server/builder.d.ts +30 -0
- package/dist/src/server/builder.d.ts.map +1 -0
- package/dist/src/server/builder.js +89 -0
- package/dist/src/server/constants.d.ts +2 -0
- package/dist/src/server/constants.d.ts.map +1 -0
- package/dist/src/server/constants.js +1 -0
- package/dist/src/server/error.d.ts +30 -0
- package/dist/src/server/error.d.ts.map +1 -0
- package/dist/src/server/error.js +47 -0
- package/dist/src/server/event-emitter.d.ts +8 -0
- package/dist/src/server/event-emitter.d.ts.map +1 -0
- package/dist/src/server/event-emitter.js +10 -0
- package/dist/src/server/listener/index.d.ts +2 -0
- package/dist/src/server/listener/index.d.ts.map +1 -0
- package/dist/src/server/listener/index.js +1 -0
- package/dist/src/server/listener/listener-manager.d.ts +27 -0
- package/dist/src/server/listener/listener-manager.d.ts.map +1 -0
- package/dist/src/server/listener/listener-manager.js +401 -0
- package/dist/src/server/listener/transmitter/factory.d.ts +8 -0
- package/dist/src/server/listener/transmitter/factory.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/factory.js +25 -0
- package/dist/src/server/listener/transmitter/internal.d.ts +34 -0
- package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/internal.js +87 -0
- package/dist/src/server/listener/transmitter/pull-responder.d.ts +38 -0
- package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/pull-responder.js +256 -0
- package/dist/src/server/listener/transmitter/switchboard-push.d.ts +9 -0
- package/dist/src/server/listener/transmitter/switchboard-push.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/switchboard-push.js +77 -0
- package/dist/src/server/listener/transmitter/types.d.ts +20 -0
- package/dist/src/server/listener/transmitter/types.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/types.js +1 -0
- package/dist/src/server/listener/util.d.ts +2 -0
- package/dist/src/server/listener/util.d.ts.map +1 -0
- package/dist/src/server/listener/util.js +22 -0
- package/dist/src/server/sync-manager.d.ts +30 -0
- package/dist/src/server/sync-manager.d.ts.map +1 -0
- package/dist/src/server/sync-manager.js +287 -0
- package/dist/src/server/types.d.ts +308 -0
- package/dist/src/server/types.d.ts.map +1 -0
- package/dist/src/server/types.js +12 -0
- package/dist/src/server/utils.d.ts +8 -0
- package/dist/src/server/utils.d.ts.map +1 -0
- package/dist/src/server/utils.js +47 -0
- package/dist/src/storage/base.d.ts +36 -0
- package/dist/src/storage/base.d.ts.map +1 -0
- package/dist/src/storage/base.js +4 -0
- package/dist/src/storage/browser.d.ts +36 -0
- package/dist/src/storage/browser.d.ts.map +1 -0
- package/dist/src/storage/browser.js +155 -0
- package/dist/src/storage/filesystem.d.ts +33 -0
- package/dist/src/storage/filesystem.d.ts.map +1 -0
- package/dist/src/storage/filesystem.js +197 -0
- package/dist/src/storage/memory.d.ts +33 -0
- package/dist/src/storage/memory.d.ts.map +1 -0
- package/dist/src/storage/memory.js +139 -0
- package/dist/src/storage/prisma.d.ts +67 -0
- package/dist/src/storage/prisma.d.ts.map +1 -0
- package/dist/src/storage/prisma.js +445 -0
- package/dist/src/storage/sequelize.d.ts +32 -0
- package/dist/src/storage/sequelize.d.ts.map +1 -0
- package/dist/src/storage/sequelize.js +373 -0
- package/dist/src/storage/types.d.ts +43 -0
- package/dist/src/storage/types.d.ts.map +1 -0
- package/dist/src/storage/types.js +1 -0
- package/dist/src/utils/default-drives-manager.d.ts +29 -0
- package/dist/src/utils/default-drives-manager.d.ts.map +1 -0
- package/dist/src/utils/default-drives-manager.js +208 -0
- package/dist/src/utils/graphql.d.ts +34 -0
- package/dist/src/utils/graphql.d.ts.map +1 -0
- package/dist/src/utils/graphql.js +183 -0
- package/dist/src/utils/logger.d.ts +27 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +105 -0
- package/dist/src/utils/migrations.d.ts +4 -0
- package/dist/src/utils/migrations.d.ts.map +1 -0
- package/dist/src/utils/migrations.js +41 -0
- package/dist/src/utils/misc.d.ts +11 -0
- package/dist/src/utils/misc.d.ts.map +1 -0
- package/dist/src/utils/misc.js +43 -0
- package/dist/src/utils/run-asap.d.ts +12 -0
- package/dist/src/utils/run-asap.d.ts.map +1 -0
- package/dist/src/utils/run-asap.js +131 -0
- package/dist/test/document-helpers/utils.d.ts +8 -0
- package/dist/test/document-helpers/utils.d.ts.map +1 -0
- package/dist/test/document-helpers/utils.js +21 -0
- package/dist/test/utils.d.ts +48 -0
- package/dist/test/utils.d.ts.map +1 -0
- package/dist/test/utils.js +132 -0
- package/dist/test/vitest-setup.d.ts +2 -0
- package/dist/test/vitest-setup.d.ts.map +1 -0
- package/dist/test/vitest-setup.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +20 -0
- package/package.json +20 -38
- package/src/cache/index.ts +0 -2
- package/src/cache/memory.ts +0 -33
- package/src/cache/redis.ts +0 -56
- package/src/cache/types.ts +0 -9
- package/src/index.ts +0 -4
- package/src/queue/base.ts +0 -320
- package/src/queue/index.ts +0 -2
- package/src/queue/redis.ts +0 -144
- package/src/queue/types.ts +0 -79
- package/src/read-mode/errors.ts +0 -19
- package/src/read-mode/index.ts +0 -125
- package/src/read-mode/service.ts +0 -207
- package/src/read-mode/types.ts +0 -108
- package/src/server/error.ts +0 -70
- package/src/server/index.ts +0 -2444
- package/src/server/listener/index.ts +0 -2
- package/src/server/listener/manager.ts +0 -652
- package/src/server/listener/transmitter/index.ts +0 -4
- package/src/server/listener/transmitter/internal.ts +0 -143
- package/src/server/listener/transmitter/pull-responder.ts +0 -462
- package/src/server/listener/transmitter/switchboard-push.ts +0 -125
- package/src/server/listener/transmitter/types.ts +0 -27
- package/src/server/types.ts +0 -596
- package/src/server/utils.ts +0 -82
- package/src/storage/base.ts +0 -81
- package/src/storage/browser.ts +0 -238
- package/src/storage/filesystem.ts +0 -297
- package/src/storage/index.ts +0 -2
- package/src/storage/memory.ts +0 -211
- package/src/storage/prisma.ts +0 -653
- package/src/storage/sequelize.ts +0 -498
- package/src/storage/types.ts +0 -97
- package/src/utils/default-drives-manager.ts +0 -341
- package/src/utils/document-helpers.ts +0 -21
- package/src/utils/graphql.ts +0 -301
- package/src/utils/index.ts +0 -90
- package/src/utils/logger.ts +0 -38
- package/src/utils/migrations.ts +0 -58
- package/src/utils/run-asap.ts +0 -156
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const isDefinedNonNullAny = (v) => v !== undefined && v !== null;
|
|
3
|
+
export const definedNonNullAnySchema = z
|
|
4
|
+
.any()
|
|
5
|
+
.refine((v) => isDefinedNonNullAny(v));
|
|
6
|
+
export const TransmitterTypeSchema = z.enum([
|
|
7
|
+
"Internal",
|
|
8
|
+
"MatrixConnect",
|
|
9
|
+
"PullResponder",
|
|
10
|
+
"RESTWebhook",
|
|
11
|
+
"SecureConnect",
|
|
12
|
+
"SwitchboardPush",
|
|
13
|
+
]);
|
|
14
|
+
export const TriggerTypeSchema = z.enum(["PullResponder"]);
|
|
15
|
+
export function AddFileInputSchema() {
|
|
16
|
+
return z.object({
|
|
17
|
+
document: z.unknown().nullish(),
|
|
18
|
+
documentType: z.string(),
|
|
19
|
+
id: z.string(),
|
|
20
|
+
name: z.string(),
|
|
21
|
+
parentFolder: z.string().nullish(),
|
|
22
|
+
synchronizationUnits: z.array(SynchronizationUnitSchema()),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function AddFolderInputSchema() {
|
|
26
|
+
return z.object({
|
|
27
|
+
id: z.string(),
|
|
28
|
+
name: z.string(),
|
|
29
|
+
parentFolder: z.string().nullish(),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export function AddListenerInputSchema() {
|
|
33
|
+
return z.object({
|
|
34
|
+
listener: ListenerSchema(),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export function AddTriggerInputSchema() {
|
|
38
|
+
return z.object({
|
|
39
|
+
trigger: TriggerSchema(),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export function CopyNodeInputSchema() {
|
|
43
|
+
return z.object({
|
|
44
|
+
srcId: z.string(),
|
|
45
|
+
synchronizationUnits: z.array(SynchronizationUnitSchema()).nullish(),
|
|
46
|
+
targetId: z.string(),
|
|
47
|
+
targetName: z.string().nullish(),
|
|
48
|
+
targetParentFolder: z.string().nullish(),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export function DeleteNodeInputSchema() {
|
|
52
|
+
return z.object({
|
|
53
|
+
id: z.string(),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
export function DocumentDriveLocalStateSchema() {
|
|
57
|
+
return z.object({
|
|
58
|
+
__typename: z.literal("DocumentDriveLocalState").optional(),
|
|
59
|
+
availableOffline: z.boolean(),
|
|
60
|
+
listeners: z.array(ListenerSchema()),
|
|
61
|
+
sharingType: z.string().nullable(),
|
|
62
|
+
triggers: z.array(TriggerSchema()),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
export function DocumentDriveStateSchema() {
|
|
66
|
+
return z.object({
|
|
67
|
+
__typename: z.literal("DocumentDriveState").optional(),
|
|
68
|
+
icon: z.string().nullable(),
|
|
69
|
+
id: z.string(),
|
|
70
|
+
name: z.string(),
|
|
71
|
+
nodes: z.array(NodeSchema()),
|
|
72
|
+
slug: z.string().nullable(),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
export function FileNodeSchema() {
|
|
76
|
+
return z.object({
|
|
77
|
+
__typename: z.literal("FileNode").optional(),
|
|
78
|
+
documentType: z.string(),
|
|
79
|
+
id: z.string(),
|
|
80
|
+
kind: z.string(),
|
|
81
|
+
name: z.string(),
|
|
82
|
+
parentFolder: z.string().nullable(),
|
|
83
|
+
synchronizationUnits: z.array(SynchronizationUnitSchema()),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
export function FolderNodeSchema() {
|
|
87
|
+
return z.object({
|
|
88
|
+
__typename: z.literal("FolderNode").optional(),
|
|
89
|
+
id: z.string(),
|
|
90
|
+
kind: z.string(),
|
|
91
|
+
name: z.string(),
|
|
92
|
+
parentFolder: z.string().nullable(),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
export function ListenerSchema() {
|
|
96
|
+
return z.object({
|
|
97
|
+
__typename: z.literal("Listener").optional(),
|
|
98
|
+
block: z.boolean(),
|
|
99
|
+
callInfo: ListenerCallInfoSchema().nullable(),
|
|
100
|
+
filter: ListenerFilterSchema(),
|
|
101
|
+
label: z.string().nullable(),
|
|
102
|
+
listenerId: z.string(),
|
|
103
|
+
system: z.boolean(),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
export function ListenerCallInfoSchema() {
|
|
107
|
+
return z.object({
|
|
108
|
+
__typename: z.literal("ListenerCallInfo").optional(),
|
|
109
|
+
data: z.string().nullable(),
|
|
110
|
+
name: z.string().nullable(),
|
|
111
|
+
transmitterType: TransmitterTypeSchema.nullable(),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
export function ListenerFilterSchema() {
|
|
115
|
+
return z.object({
|
|
116
|
+
__typename: z.literal("ListenerFilter").optional(),
|
|
117
|
+
branch: z.array(z.string()).nullable(),
|
|
118
|
+
documentId: z.array(z.string()).nullable(),
|
|
119
|
+
documentType: z.array(z.string()),
|
|
120
|
+
scope: z.array(z.string()).nullable(),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
export function MoveNodeInputSchema() {
|
|
124
|
+
return z.object({
|
|
125
|
+
srcFolder: z.string(),
|
|
126
|
+
targetParentFolder: z.string().nullish(),
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
export function NodeSchema() {
|
|
130
|
+
return z.union([FileNodeSchema(), FolderNodeSchema()]);
|
|
131
|
+
}
|
|
132
|
+
export function PullResponderTriggerDataSchema() {
|
|
133
|
+
return z.object({
|
|
134
|
+
__typename: z.literal("PullResponderTriggerData").optional(),
|
|
135
|
+
interval: z.string(),
|
|
136
|
+
listenerId: z.string(),
|
|
137
|
+
url: z.string(),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
export function RemoveListenerInputSchema() {
|
|
141
|
+
return z.object({
|
|
142
|
+
listenerId: z.string(),
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
export function RemoveTriggerInputSchema() {
|
|
146
|
+
return z.object({
|
|
147
|
+
triggerId: z.string(),
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
export function SetAvailableOfflineInputSchema() {
|
|
151
|
+
return z.object({
|
|
152
|
+
availableOffline: z.boolean(),
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
export function SetDriveIconInputSchema() {
|
|
156
|
+
return z.object({
|
|
157
|
+
icon: z.string(),
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
export function SetDriveNameInputSchema() {
|
|
161
|
+
return z.object({
|
|
162
|
+
name: z.string(),
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
export function SetSharingTypeInputSchema() {
|
|
166
|
+
return z.object({
|
|
167
|
+
type: z.string(),
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
export function SynchronizationUnitSchema() {
|
|
171
|
+
return z.object({
|
|
172
|
+
__typename: z.literal("SynchronizationUnit").optional(),
|
|
173
|
+
branch: z.string(),
|
|
174
|
+
scope: z.string(),
|
|
175
|
+
syncId: z.string(),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
export function TriggerSchema() {
|
|
179
|
+
return z.object({
|
|
180
|
+
__typename: z.literal("Trigger").optional(),
|
|
181
|
+
data: TriggerDataSchema().nullable(),
|
|
182
|
+
id: z.string(),
|
|
183
|
+
type: TriggerTypeSchema,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
export function TriggerDataSchema() {
|
|
187
|
+
return PullResponderTriggerDataSchema();
|
|
188
|
+
}
|
|
189
|
+
export function UpdateFileInputSchema() {
|
|
190
|
+
return z.object({
|
|
191
|
+
documentType: z.string().nullish(),
|
|
192
|
+
id: z.string(),
|
|
193
|
+
name: z.string().nullish(),
|
|
194
|
+
parentFolder: z.string().nullish(),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
export function UpdateNodeInputSchema() {
|
|
198
|
+
return z.object({
|
|
199
|
+
id: z.string(),
|
|
200
|
+
name: z.string().nullish(),
|
|
201
|
+
parentFolder: z.string().nullish(),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DocumentModelModule, ExtendedState, PHDocument } from "document-model";
|
|
2
|
+
import type { DocumentDriveAction } from "./actions.js";
|
|
3
|
+
import type { DocumentDriveLocalState, DocumentDriveState } from "./schema/types.js";
|
|
4
|
+
export type * from "./schema/types.js";
|
|
5
|
+
export { DocumentDriveAction, DocumentDriveLocalState, DocumentDriveState };
|
|
6
|
+
export type ExtendedDocumentDriveState = ExtendedState<DocumentDriveState, DocumentDriveLocalState>;
|
|
7
|
+
export type DocumentDriveDocument = PHDocument<DocumentDriveState, DocumentDriveLocalState, DocumentDriveAction>;
|
|
8
|
+
export type DriveDocumentModelModule = DocumentModelModule<DocumentDriveDocument>;
|
|
9
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/drive-document-model/gen/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,mBAAmB,mBAAmB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,CAAC;AAC5E,MAAM,MAAM,0BAA0B,GAAG,aAAa,CACpD,kBAAkB,EAClB,uBAAuB,CACxB,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAC5C,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,CACpB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAClC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CreateDocument, CreateExtendedState, CreateState, LoadFromFile, LoadFromInput, SaveToFile, SaveToFileHandle } from "document-model";
|
|
2
|
+
import { DocumentDriveDocument } from "./types.js";
|
|
3
|
+
export declare const createState: CreateState<DocumentDriveDocument>;
|
|
4
|
+
export declare const createExtendedState: CreateExtendedState<DocumentDriveDocument>;
|
|
5
|
+
export declare const createDocument: CreateDocument<DocumentDriveDocument>;
|
|
6
|
+
export declare const saveToFile: SaveToFile;
|
|
7
|
+
export declare const saveToFileHandle: SaveToFileHandle;
|
|
8
|
+
export declare const loadFromFile: LoadFromFile<DocumentDriveDocument>;
|
|
9
|
+
export declare const loadFromInput: LoadFromInput<DocumentDriveDocument>;
|
|
10
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/drive-document-model/gen/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,UAAU,EACV,gBAAgB,EAOjB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAEL,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,qBAAqB,CAK1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,qBAAqB,CAO1E,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,qBAAqB,CAEhE,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAExB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gBAE9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,qBAAqB,CAE5D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,qBAAqB,CAE9D,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { baseCreateDocument, baseCreateExtendedState, baseLoadFromFile, baseLoadFromInput, baseSaveToFile, baseSaveToFileHandle, } from "document-model";
|
|
2
|
+
import { documentType, fileExtension, initialGlobalState, initialLocalState, } from "./constants.js";
|
|
3
|
+
import { reducer } from "./reducer.js";
|
|
4
|
+
export const createState = (state) => {
|
|
5
|
+
return {
|
|
6
|
+
global: { ...initialGlobalState, ...state?.global },
|
|
7
|
+
local: { ...initialLocalState, ...state?.local },
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export const createExtendedState = (extendedState) => {
|
|
11
|
+
return baseCreateExtendedState({ ...extendedState, documentType }, createState);
|
|
12
|
+
};
|
|
13
|
+
export const createDocument = (state) => {
|
|
14
|
+
return baseCreateDocument(createExtendedState(state), createState);
|
|
15
|
+
};
|
|
16
|
+
export const saveToFile = (document, path, name) => {
|
|
17
|
+
return baseSaveToFile(document, path, fileExtension, name);
|
|
18
|
+
};
|
|
19
|
+
export const saveToFileHandle = (document, input) => {
|
|
20
|
+
return baseSaveToFileHandle(document, input);
|
|
21
|
+
};
|
|
22
|
+
export const loadFromFile = (path) => {
|
|
23
|
+
return baseLoadFromFile(path, reducer);
|
|
24
|
+
};
|
|
25
|
+
export const loadFromInput = (input) => {
|
|
26
|
+
return baseLoadFromInput(input, reducer);
|
|
27
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/drive-document-model/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/drive-document-model/module.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAI1D,eAAO,MAAM,wBAAwB,EAAE,wBAKtC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as actions from "./gen/actions.js";
|
|
2
|
+
import * as creators from "./gen/creators.js";
|
|
3
|
+
import { documentModelState } from "./gen/document-model.js";
|
|
4
|
+
import { reducer } from "./gen/reducer.js";
|
|
5
|
+
import * as documentModelUtils from "./gen/utils.js";
|
|
6
|
+
import * as customUtils from "./src/utils.js";
|
|
7
|
+
export const driveDocumentModelModule = {
|
|
8
|
+
reducer,
|
|
9
|
+
documentModel: documentModelState,
|
|
10
|
+
actions: { ...creators, ...actions },
|
|
11
|
+
utils: { ...documentModelUtils, ...customUtils },
|
|
12
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is a scaffold file meant for customization:
|
|
3
|
+
* - modify it by implementing the reducer functions
|
|
4
|
+
* - delete the file and run the code generator again to have it reset
|
|
5
|
+
*/
|
|
6
|
+
import { DocumentDriveDriveOperations } from "../../gen/drive/operations.js";
|
|
7
|
+
export declare const reducer: DocumentDriveDriveOperations;
|
|
8
|
+
//# sourceMappingURL=drive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../../../src/drive-document-model/src/reducers/drive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE7E,eAAO,MAAM,OAAO,EAAE,4BA6CrB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is a scaffold file meant for customization:
|
|
3
|
+
* - modify it by implementing the reducer functions
|
|
4
|
+
* - delete the file and run the code generator again to have it reset
|
|
5
|
+
*/
|
|
6
|
+
export const reducer = {
|
|
7
|
+
setDriveNameOperation(state, action, dispatch) {
|
|
8
|
+
state.name = action.input.name;
|
|
9
|
+
},
|
|
10
|
+
setDriveIconOperation(state, action, dispatch) {
|
|
11
|
+
state.icon = action.input.icon;
|
|
12
|
+
},
|
|
13
|
+
setSharingTypeOperation(state, action, dispatch) {
|
|
14
|
+
state.sharingType = action.input.type;
|
|
15
|
+
},
|
|
16
|
+
setAvailableOfflineOperation(state, action, dispatch) {
|
|
17
|
+
state.availableOffline = action.input.availableOffline;
|
|
18
|
+
},
|
|
19
|
+
addListenerOperation(state, action, dispatch) {
|
|
20
|
+
if (state.listeners.find((listener) => listener.listenerId === action.input.listener.listenerId)) {
|
|
21
|
+
throw new Error(`A listener with Id: ${action.input.listener.listenerId} already exists`);
|
|
22
|
+
}
|
|
23
|
+
state.listeners.push(action.input.listener);
|
|
24
|
+
},
|
|
25
|
+
removeListenerOperation(state, action, dispatch) {
|
|
26
|
+
state.listeners = state.listeners.filter((listener) => listener.listenerId !== action.input.listenerId);
|
|
27
|
+
},
|
|
28
|
+
addTriggerOperation(state, action, dispatch) {
|
|
29
|
+
if (state.triggers.find((trigger) => trigger.id === action.input.trigger.id)) {
|
|
30
|
+
throw new Error(`A trigger with Id: ${action.input.trigger.id} already exists`);
|
|
31
|
+
}
|
|
32
|
+
state.triggers.push(action.input.trigger);
|
|
33
|
+
},
|
|
34
|
+
removeTriggerOperation(state, action, dispatch) {
|
|
35
|
+
state.triggers = state.triggers.filter((trigger) => trigger.id !== action.input.triggerId);
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is a scaffold file meant for customization:
|
|
3
|
+
* - modify it by implementing the reducer functions
|
|
4
|
+
* - delete the file and run the code generator again to have it reset
|
|
5
|
+
*/
|
|
6
|
+
import { DocumentDriveNodeOperations } from "../../gen/node/operations.js";
|
|
7
|
+
export declare const reducer: DocumentDriveNodeOperations;
|
|
8
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../../src/drive-document-model/src/reducers/node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAS3E,eAAO,MAAM,OAAO,EAAE,2BAqPrB,CAAC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is a scaffold file meant for customization:
|
|
3
|
+
* - modify it by implementing the reducer functions
|
|
4
|
+
* - delete the file and run the code generator again to have it reset
|
|
5
|
+
*/
|
|
6
|
+
import { getDescendants, handleTargetNameCollisions, isFileNode, isFolderNode, } from "../utils.js";
|
|
7
|
+
export const reducer = {
|
|
8
|
+
addFileOperation(state, action, dispatch) {
|
|
9
|
+
if (state.nodes.find((node) => node.id === action.input.id)) {
|
|
10
|
+
throw new Error(`Node with id ${action.input.id} already exists!`);
|
|
11
|
+
}
|
|
12
|
+
const name = handleTargetNameCollisions({
|
|
13
|
+
nodes: state.nodes,
|
|
14
|
+
srcName: action.input.name,
|
|
15
|
+
targetParentFolder: action.input.parentFolder || null,
|
|
16
|
+
});
|
|
17
|
+
const synchronizationUnits = action.input
|
|
18
|
+
.synchronizationUnits;
|
|
19
|
+
const invalidSyncUnit = synchronizationUnits.find((unit) => !!state.nodes.find((node) => isFileNode(node) &&
|
|
20
|
+
node.synchronizationUnits.find((fileUnit) => fileUnit.syncId === unit.syncId)));
|
|
21
|
+
if (invalidSyncUnit) {
|
|
22
|
+
throw new Error(`A synchronization unit with Id ${invalidSyncUnit.syncId} already exists`);
|
|
23
|
+
}
|
|
24
|
+
const fileNode = {
|
|
25
|
+
id: action.input.id,
|
|
26
|
+
name,
|
|
27
|
+
kind: "file",
|
|
28
|
+
parentFolder: action.input.parentFolder ?? null,
|
|
29
|
+
synchronizationUnits,
|
|
30
|
+
documentType: action.input.documentType,
|
|
31
|
+
};
|
|
32
|
+
state.nodes.push(fileNode);
|
|
33
|
+
dispatch?.({
|
|
34
|
+
type: "CREATE_CHILD_DOCUMENT",
|
|
35
|
+
input: {
|
|
36
|
+
id: action.input.id,
|
|
37
|
+
documentType: action.input.documentType,
|
|
38
|
+
synchronizationUnits,
|
|
39
|
+
document: action.input.document,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
addFolderOperation(state, action) {
|
|
44
|
+
if (state.nodes.find((node) => node.id === action.input.id)) {
|
|
45
|
+
throw new Error(`Node with id ${action.input.id} already exists!`);
|
|
46
|
+
}
|
|
47
|
+
const name = handleTargetNameCollisions({
|
|
48
|
+
nodes: state.nodes,
|
|
49
|
+
srcName: action.input.name,
|
|
50
|
+
targetParentFolder: action.input.parentFolder || null,
|
|
51
|
+
});
|
|
52
|
+
state.nodes.push({
|
|
53
|
+
...action.input,
|
|
54
|
+
name,
|
|
55
|
+
kind: "folder",
|
|
56
|
+
parentFolder: action.input.parentFolder ?? null,
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
deleteNodeOperation(state, action, dispatch) {
|
|
60
|
+
const node = state.nodes.find((node) => node.id === action.input.id);
|
|
61
|
+
if (!node) {
|
|
62
|
+
throw new Error(`Node with id ${action.input.id} not found`);
|
|
63
|
+
}
|
|
64
|
+
const descendants = getDescendants(node, state.nodes);
|
|
65
|
+
state.nodes = state.nodes.filter((node) => node.id !== action.input.id &&
|
|
66
|
+
!descendants.find((descendant) => descendant.id === node.id));
|
|
67
|
+
[node, ...descendants]
|
|
68
|
+
.filter((node) => isFileNode(node))
|
|
69
|
+
.forEach((node) => {
|
|
70
|
+
dispatch?.({
|
|
71
|
+
type: "DELETE_CHILD_DOCUMENT",
|
|
72
|
+
input: {
|
|
73
|
+
id: node.id,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
updateFileOperation(state, action) {
|
|
79
|
+
state.nodes = state.nodes.map((node) => node.id === action.input.id
|
|
80
|
+
? {
|
|
81
|
+
...node,
|
|
82
|
+
...{
|
|
83
|
+
name: handleTargetNameCollisions({
|
|
84
|
+
nodes: state.nodes,
|
|
85
|
+
srcName: action.input.name ?? node.name,
|
|
86
|
+
targetParentFolder: action.input.parentFolder || null,
|
|
87
|
+
}),
|
|
88
|
+
documentType: action.input.documentType ?? node.documentType,
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
: node);
|
|
92
|
+
},
|
|
93
|
+
updateNodeOperation(state, action) {
|
|
94
|
+
state.nodes = state.nodes.map((node) => node.id === action.input.id
|
|
95
|
+
? {
|
|
96
|
+
...node,
|
|
97
|
+
...{
|
|
98
|
+
name: handleTargetNameCollisions({
|
|
99
|
+
nodes: state.nodes,
|
|
100
|
+
srcName: action.input.name ?? node.name,
|
|
101
|
+
targetParentFolder: action.input.parentFolder || null,
|
|
102
|
+
}),
|
|
103
|
+
parentFolder: action.input.parentFolder === null ? null : node.parentFolder,
|
|
104
|
+
},
|
|
105
|
+
}
|
|
106
|
+
: node);
|
|
107
|
+
},
|
|
108
|
+
copyNodeOperation(state, action, dispatch) {
|
|
109
|
+
const node = state.nodes.find((node) => node.id === action.input.srcId);
|
|
110
|
+
if (!node) {
|
|
111
|
+
throw new Error(`Node with id ${action.input.srcId} not found`);
|
|
112
|
+
}
|
|
113
|
+
const duplicatedNode = state.nodes.find((node) => node.id === action.input.targetId);
|
|
114
|
+
if (duplicatedNode) {
|
|
115
|
+
throw new Error(`Node with id ${action.input.targetId} already exists`);
|
|
116
|
+
}
|
|
117
|
+
const name = handleTargetNameCollisions({
|
|
118
|
+
nodes: state.nodes,
|
|
119
|
+
srcName: action.input.targetName || node.name,
|
|
120
|
+
targetParentFolder: action.input.targetParentFolder || null,
|
|
121
|
+
});
|
|
122
|
+
const newNode = {
|
|
123
|
+
...node,
|
|
124
|
+
name,
|
|
125
|
+
id: action.input.targetId,
|
|
126
|
+
parentFolder: action.input.targetParentFolder || null,
|
|
127
|
+
};
|
|
128
|
+
const isFile = isFileNode(newNode);
|
|
129
|
+
if (isFile) {
|
|
130
|
+
const synchronizationUnits = action.input
|
|
131
|
+
.synchronizationUnits;
|
|
132
|
+
if (!action.input.synchronizationUnits) {
|
|
133
|
+
throw new Error("Synchronization units were not provided");
|
|
134
|
+
}
|
|
135
|
+
const invalidSyncUnit = synchronizationUnits.find((unit) => !!state.nodes.find((node) => isFileNode(node) &&
|
|
136
|
+
node.synchronizationUnits.find((fileUnit) => fileUnit.syncId === unit.syncId)));
|
|
137
|
+
if (invalidSyncUnit) {
|
|
138
|
+
throw new Error(`A synchronization unit with Id ${invalidSyncUnit.syncId} already exists`);
|
|
139
|
+
}
|
|
140
|
+
newNode.synchronizationUnits = synchronizationUnits;
|
|
141
|
+
}
|
|
142
|
+
state.nodes.push(newNode);
|
|
143
|
+
if (isFile) {
|
|
144
|
+
dispatch?.({
|
|
145
|
+
type: "COPY_CHILD_DOCUMENT",
|
|
146
|
+
input: {
|
|
147
|
+
id: action.input.srcId,
|
|
148
|
+
newId: action.input.targetId,
|
|
149
|
+
synchronizationUnits: newNode.synchronizationUnits,
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
moveNodeOperation(state, action) {
|
|
155
|
+
if (action.input.srcFolder === action.input.targetParentFolder) {
|
|
156
|
+
throw new Error("Circular Reference Error: Attempting to move a node to its current parent folder");
|
|
157
|
+
}
|
|
158
|
+
const node = state.nodes.find((node) => node.id === action.input.srcFolder);
|
|
159
|
+
if (!node) {
|
|
160
|
+
throw new Error(`Node with id ${action.input.srcFolder} not found`);
|
|
161
|
+
}
|
|
162
|
+
const name = handleTargetNameCollisions({
|
|
163
|
+
nodes: state.nodes,
|
|
164
|
+
srcName: node.name,
|
|
165
|
+
targetParentFolder: action.input.targetParentFolder || null,
|
|
166
|
+
});
|
|
167
|
+
if (isFolderNode(node)) {
|
|
168
|
+
const descendants = getDescendants(node, state.nodes);
|
|
169
|
+
// throw error if moving a folder to one of its descendants
|
|
170
|
+
if (descendants.find((descendant) => descendant.id === action.input.targetParentFolder)) {
|
|
171
|
+
throw new Error("Circular Reference Error: Cannot move a folder to one of its descendants");
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
state.nodes = state.nodes.map((node) => {
|
|
175
|
+
if (node.id === action.input.srcFolder) {
|
|
176
|
+
return {
|
|
177
|
+
...node,
|
|
178
|
+
name,
|
|
179
|
+
parentFolder: action.input.targetParentFolder || null,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
return node;
|
|
183
|
+
});
|
|
184
|
+
},
|
|
185
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OperationScope } from "document-model";
|
|
2
|
+
import { AddFileAction, CopyNodeAction } from "../gen/node/actions.js";
|
|
3
|
+
import { AddFileInput, CopyNodeInput, DocumentDriveState, FileNode, FolderNode, Node, SynchronizationUnit } from "../gen/types.js";
|
|
4
|
+
export declare function isFileNode(node: Node): node is FileNode;
|
|
5
|
+
export declare function isFolderNode(node: Node): node is FolderNode;
|
|
6
|
+
export declare function getAncestors(node: Node, allNodes: Node[]): Node[];
|
|
7
|
+
export declare function getDescendants(node: Node, allNodes: Node[]): Node[];
|
|
8
|
+
export type GenerateNodesCopySrc = {
|
|
9
|
+
srcId: Node["id"];
|
|
10
|
+
targetName?: Node["name"];
|
|
11
|
+
targetParentFolder?: Node["parentFolder"];
|
|
12
|
+
};
|
|
13
|
+
export type GenerateNodesCopyIdGenerator = (prevId: Node["id"]) => Node["id"];
|
|
14
|
+
/**
|
|
15
|
+
* Generates a copy of nodes based on the provided source and target information.
|
|
16
|
+
* @param src - The source information for generating the copy.
|
|
17
|
+
* @param idGenerator - The function used to generate new IDs for the copied nodes.
|
|
18
|
+
* @param nodes - The array of nodes to copy from.
|
|
19
|
+
* @returns An array of copied nodes with updated IDs and parent folders.
|
|
20
|
+
* @throws Error if the root node with the specified ID is not found.
|
|
21
|
+
*/
|
|
22
|
+
export declare function generateNodesCopy(src: GenerateNodesCopySrc, idGenerator: GenerateNodesCopyIdGenerator, nodes: Node[]): CopyNodeInput[];
|
|
23
|
+
export declare function generateSynchronizationUnitId(nodes: DocumentDriveState["nodes"]): string;
|
|
24
|
+
export declare function generateSynchronizationUnits(state: DocumentDriveState, scopes: OperationScope[], branch?: string): SynchronizationUnit[];
|
|
25
|
+
export declare function generateAddNodeAction(state: DocumentDriveState, action: Omit<AddFileInput, "synchronizationUnits">, scopes: OperationScope[]): AddFileAction;
|
|
26
|
+
export declare function generateCopyNodeAction(state: DocumentDriveState, action: Omit<CopyNodeInput, "synchronizationUnits">): CopyNodeAction;
|
|
27
|
+
export declare function getNextCopyNumber(files: string[], baseFilename: string): number;
|
|
28
|
+
export declare function escapeRegExp(string: string): string;
|
|
29
|
+
export declare function handleTargetNameCollisions(params: {
|
|
30
|
+
nodes: Node[];
|
|
31
|
+
targetParentFolder: string | null;
|
|
32
|
+
srcName: string;
|
|
33
|
+
}): string;
|
|
34
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/drive-document-model/src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,QAAQ,CAEvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,UAAU,CAE3D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAUjE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAInE;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAE9E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,oBAAoB,EACzB,WAAW,EAAE,4BAA4B,EACzC,KAAK,EAAE,IAAI,EAAE,GACZ,aAAa,EAAE,CAmDjB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACjC,MAAM,CAaR;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,cAAc,EAAE,EACxB,MAAM,SAAS,GACd,mBAAmB,EAAE,CAMvB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,EAClD,MAAM,EAAE,cAAc,EAAE,GACvB,aAAa,CAKf;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,GAClD,cAAc,CAqBhB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,MAAM,GACnB,MAAM,CAmBR;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,UAE1C;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB,UAkBA"}
|