@kubun/protocol 0.3.11 → 0.4.1
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/lib/models/cluster.d.ts +134 -300
- package/lib/models/cluster.d.ts.map +1 -1
- package/lib/models/cluster.js +14 -201
- package/lib/models/document.d.ts +890 -148
- package/lib/models/document.d.ts.map +1 -1
- package/lib/models/document.js +300 -2
- package/lib/services/graph.d.ts +2066 -1576
- package/lib/services/graph.d.ts.map +1 -1
- package/lib/services/graph.js +12 -11
- package/package.json +3 -2
package/lib/models/cluster.d.ts
CHANGED
|
@@ -1,272 +1,7 @@
|
|
|
1
1
|
import { type FromSchema } from '@enkaku/schema';
|
|
2
2
|
import { DocumentModelID } from '@kubun/id';
|
|
3
|
-
import type
|
|
4
|
-
import
|
|
5
|
-
export type DocumentModelBehavior = 'default' | 'interface' | 'unique';
|
|
6
|
-
export type SetDocumentModel = Omit<DocumentModel, 'version' | 'behavior' | 'interfaces' | 'schema' | 'fieldsMeta'> & {
|
|
7
|
-
version?: string;
|
|
8
|
-
behavior?: DocumentModelBehavior;
|
|
9
|
-
uniqueFields?: Array<string>;
|
|
10
|
-
interfaces?: Array<string>;
|
|
11
|
-
schema?: JSONSchema.Object;
|
|
12
|
-
fieldsMeta?: DocumentFieldsMeta;
|
|
13
|
-
};
|
|
14
|
-
type JSONSchemaScalar = JSONSchema.Boolean | JSONSchema.Integer | JSONSchema.Number | JSONSchema.String;
|
|
15
|
-
type JSONSchemaShape = JSONSchema.Array | JSONSchema.Object;
|
|
16
|
-
type JSONSchemaType = JSONSchemaScalar | JSONSchemaShape;
|
|
17
|
-
export type JSONSchemaReferencesRecord = Record<string, JSONSchemaType>;
|
|
18
|
-
export declare const REFERENCE_PREFIX = "#/$defs/";
|
|
19
|
-
export declare const validateDocumentModel: import("@enkaku/schema").Validator<{
|
|
20
|
-
name: string;
|
|
21
|
-
version: "1.0";
|
|
22
|
-
schema: {
|
|
23
|
-
type: "object";
|
|
24
|
-
required: string[];
|
|
25
|
-
properties: {
|
|
26
|
-
[x: string]: {
|
|
27
|
-
$ref: string;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
additionalProperties: boolean;
|
|
31
|
-
$defs: {
|
|
32
|
-
[x: string]: {
|
|
33
|
-
default?: boolean | undefined;
|
|
34
|
-
type: "boolean";
|
|
35
|
-
} | {
|
|
36
|
-
maximum?: number | undefined;
|
|
37
|
-
minimum?: number | undefined;
|
|
38
|
-
default?: number | undefined;
|
|
39
|
-
type: "integer";
|
|
40
|
-
} | {
|
|
41
|
-
default?: number | undefined;
|
|
42
|
-
min?: number | undefined;
|
|
43
|
-
max?: number | undefined;
|
|
44
|
-
type: "number";
|
|
45
|
-
} | {
|
|
46
|
-
title?: string | undefined;
|
|
47
|
-
default?: string | undefined;
|
|
48
|
-
type: "string";
|
|
49
|
-
const: string;
|
|
50
|
-
} | {
|
|
51
|
-
maxLength?: number | undefined;
|
|
52
|
-
minLength?: number | undefined;
|
|
53
|
-
pattern?: string | undefined;
|
|
54
|
-
title?: string | undefined;
|
|
55
|
-
default?: string | undefined;
|
|
56
|
-
type: "string";
|
|
57
|
-
} | {
|
|
58
|
-
default?: string | undefined;
|
|
59
|
-
type: "string";
|
|
60
|
-
enum: string[];
|
|
61
|
-
title: string;
|
|
62
|
-
} | {
|
|
63
|
-
maxLength?: number | undefined;
|
|
64
|
-
minLength?: number | undefined;
|
|
65
|
-
title?: string | undefined;
|
|
66
|
-
default?: string | undefined;
|
|
67
|
-
type: "string";
|
|
68
|
-
format: "date" | "date-time" | "duration" | "email" | "time" | "uri";
|
|
69
|
-
} | {
|
|
70
|
-
maxItems?: number | undefined;
|
|
71
|
-
minItems?: number | undefined;
|
|
72
|
-
uniqueItems?: boolean | undefined;
|
|
73
|
-
type: "array";
|
|
74
|
-
items: {
|
|
75
|
-
$ref: string;
|
|
76
|
-
};
|
|
77
|
-
title: string;
|
|
78
|
-
} | {
|
|
79
|
-
type: "object";
|
|
80
|
-
required: string[];
|
|
81
|
-
properties: {
|
|
82
|
-
[x: string]: {
|
|
83
|
-
$ref: string;
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
additionalProperties: boolean;
|
|
87
|
-
title: string;
|
|
88
|
-
} | {
|
|
89
|
-
type: "object";
|
|
90
|
-
additionalProperties: true;
|
|
91
|
-
title: "JSONObject";
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
fieldsMeta: {
|
|
96
|
-
[x: string]: {
|
|
97
|
-
relationModel?: string | null | undefined;
|
|
98
|
-
};
|
|
99
|
-
};
|
|
100
|
-
interfaces: string[];
|
|
101
|
-
behavior: "default";
|
|
102
|
-
} | {
|
|
103
|
-
name: string;
|
|
104
|
-
version: "1.0";
|
|
105
|
-
schema: {
|
|
106
|
-
type: "object";
|
|
107
|
-
required: string[];
|
|
108
|
-
properties: {
|
|
109
|
-
[x: string]: {
|
|
110
|
-
$ref: string;
|
|
111
|
-
};
|
|
112
|
-
};
|
|
113
|
-
additionalProperties: boolean;
|
|
114
|
-
$defs: {
|
|
115
|
-
[x: string]: {
|
|
116
|
-
default?: boolean | undefined;
|
|
117
|
-
type: "boolean";
|
|
118
|
-
} | {
|
|
119
|
-
maximum?: number | undefined;
|
|
120
|
-
minimum?: number | undefined;
|
|
121
|
-
default?: number | undefined;
|
|
122
|
-
type: "integer";
|
|
123
|
-
} | {
|
|
124
|
-
default?: number | undefined;
|
|
125
|
-
min?: number | undefined;
|
|
126
|
-
max?: number | undefined;
|
|
127
|
-
type: "number";
|
|
128
|
-
} | {
|
|
129
|
-
title?: string | undefined;
|
|
130
|
-
default?: string | undefined;
|
|
131
|
-
type: "string";
|
|
132
|
-
const: string;
|
|
133
|
-
} | {
|
|
134
|
-
maxLength?: number | undefined;
|
|
135
|
-
minLength?: number | undefined;
|
|
136
|
-
pattern?: string | undefined;
|
|
137
|
-
title?: string | undefined;
|
|
138
|
-
default?: string | undefined;
|
|
139
|
-
type: "string";
|
|
140
|
-
} | {
|
|
141
|
-
default?: string | undefined;
|
|
142
|
-
type: "string";
|
|
143
|
-
enum: string[];
|
|
144
|
-
title: string;
|
|
145
|
-
} | {
|
|
146
|
-
maxLength?: number | undefined;
|
|
147
|
-
minLength?: number | undefined;
|
|
148
|
-
title?: string | undefined;
|
|
149
|
-
default?: string | undefined;
|
|
150
|
-
type: "string";
|
|
151
|
-
format: "date" | "date-time" | "duration" | "email" | "time" | "uri";
|
|
152
|
-
} | {
|
|
153
|
-
maxItems?: number | undefined;
|
|
154
|
-
minItems?: number | undefined;
|
|
155
|
-
uniqueItems?: boolean | undefined;
|
|
156
|
-
type: "array";
|
|
157
|
-
items: {
|
|
158
|
-
$ref: string;
|
|
159
|
-
};
|
|
160
|
-
title: string;
|
|
161
|
-
} | {
|
|
162
|
-
type: "object";
|
|
163
|
-
required: string[];
|
|
164
|
-
properties: {
|
|
165
|
-
[x: string]: {
|
|
166
|
-
$ref: string;
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
|
-
additionalProperties: boolean;
|
|
170
|
-
title: string;
|
|
171
|
-
} | {
|
|
172
|
-
type: "object";
|
|
173
|
-
additionalProperties: true;
|
|
174
|
-
title: "JSONObject";
|
|
175
|
-
};
|
|
176
|
-
};
|
|
177
|
-
};
|
|
178
|
-
fieldsMeta: {
|
|
179
|
-
[x: string]: {
|
|
180
|
-
relationModel?: string | null | undefined;
|
|
181
|
-
};
|
|
182
|
-
};
|
|
183
|
-
interfaces: string[];
|
|
184
|
-
behavior: "interface";
|
|
185
|
-
} | {
|
|
186
|
-
name: string;
|
|
187
|
-
version: "1.0";
|
|
188
|
-
schema: {
|
|
189
|
-
type: "object";
|
|
190
|
-
required: string[];
|
|
191
|
-
properties: {
|
|
192
|
-
[x: string]: {
|
|
193
|
-
$ref: string;
|
|
194
|
-
};
|
|
195
|
-
};
|
|
196
|
-
additionalProperties: boolean;
|
|
197
|
-
$defs: {
|
|
198
|
-
[x: string]: {
|
|
199
|
-
default?: boolean | undefined;
|
|
200
|
-
type: "boolean";
|
|
201
|
-
} | {
|
|
202
|
-
maximum?: number | undefined;
|
|
203
|
-
minimum?: number | undefined;
|
|
204
|
-
default?: number | undefined;
|
|
205
|
-
type: "integer";
|
|
206
|
-
} | {
|
|
207
|
-
default?: number | undefined;
|
|
208
|
-
min?: number | undefined;
|
|
209
|
-
max?: number | undefined;
|
|
210
|
-
type: "number";
|
|
211
|
-
} | {
|
|
212
|
-
title?: string | undefined;
|
|
213
|
-
default?: string | undefined;
|
|
214
|
-
type: "string";
|
|
215
|
-
const: string;
|
|
216
|
-
} | {
|
|
217
|
-
maxLength?: number | undefined;
|
|
218
|
-
minLength?: number | undefined;
|
|
219
|
-
pattern?: string | undefined;
|
|
220
|
-
title?: string | undefined;
|
|
221
|
-
default?: string | undefined;
|
|
222
|
-
type: "string";
|
|
223
|
-
} | {
|
|
224
|
-
default?: string | undefined;
|
|
225
|
-
type: "string";
|
|
226
|
-
enum: string[];
|
|
227
|
-
title: string;
|
|
228
|
-
} | {
|
|
229
|
-
maxLength?: number | undefined;
|
|
230
|
-
minLength?: number | undefined;
|
|
231
|
-
title?: string | undefined;
|
|
232
|
-
default?: string | undefined;
|
|
233
|
-
type: "string";
|
|
234
|
-
format: "date" | "date-time" | "duration" | "email" | "time" | "uri";
|
|
235
|
-
} | {
|
|
236
|
-
maxItems?: number | undefined;
|
|
237
|
-
minItems?: number | undefined;
|
|
238
|
-
uniqueItems?: boolean | undefined;
|
|
239
|
-
type: "array";
|
|
240
|
-
items: {
|
|
241
|
-
$ref: string;
|
|
242
|
-
};
|
|
243
|
-
title: string;
|
|
244
|
-
} | {
|
|
245
|
-
type: "object";
|
|
246
|
-
required: string[];
|
|
247
|
-
properties: {
|
|
248
|
-
[x: string]: {
|
|
249
|
-
$ref: string;
|
|
250
|
-
};
|
|
251
|
-
};
|
|
252
|
-
additionalProperties: boolean;
|
|
253
|
-
title: string;
|
|
254
|
-
} | {
|
|
255
|
-
type: "object";
|
|
256
|
-
additionalProperties: true;
|
|
257
|
-
title: "JSONObject";
|
|
258
|
-
};
|
|
259
|
-
};
|
|
260
|
-
};
|
|
261
|
-
fieldsMeta: {
|
|
262
|
-
[x: string]: {
|
|
263
|
-
relationModel?: string | null | undefined;
|
|
264
|
-
};
|
|
265
|
-
};
|
|
266
|
-
interfaces: string[];
|
|
267
|
-
behavior: "unique";
|
|
268
|
-
uniqueFields: string[];
|
|
269
|
-
}>;
|
|
3
|
+
import { type Logger } from '@kubun/logger';
|
|
4
|
+
import type { DocumentModel, DocumentModelInput, DocumentModelsCluster, DocumentModelsRecord } from './document.js';
|
|
270
5
|
export declare const clusterModel: {
|
|
271
6
|
readonly $id: "urn:kubun:protocol:model:cluster";
|
|
272
7
|
readonly type: "object";
|
|
@@ -587,17 +322,44 @@ export declare const clusterModel: {
|
|
|
587
322
|
readonly fieldsMeta: {
|
|
588
323
|
readonly type: "object";
|
|
589
324
|
readonly additionalProperties: {
|
|
590
|
-
readonly
|
|
591
|
-
|
|
592
|
-
readonly
|
|
593
|
-
readonly
|
|
325
|
+
readonly anyOf: readonly [{
|
|
326
|
+
readonly type: "object";
|
|
327
|
+
readonly properties: {
|
|
328
|
+
readonly type: {
|
|
594
329
|
readonly type: "string";
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
}];
|
|
330
|
+
readonly const: "account";
|
|
331
|
+
};
|
|
598
332
|
};
|
|
599
|
-
|
|
600
|
-
|
|
333
|
+
readonly required: readonly ["type"];
|
|
334
|
+
readonly additionalProperties: false;
|
|
335
|
+
}, {
|
|
336
|
+
readonly type: "object";
|
|
337
|
+
readonly properties: {
|
|
338
|
+
readonly type: {
|
|
339
|
+
readonly type: "string";
|
|
340
|
+
readonly const: "attachment";
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
readonly required: readonly ["type"];
|
|
344
|
+
readonly additionalProperties: false;
|
|
345
|
+
}, {
|
|
346
|
+
readonly type: "object";
|
|
347
|
+
readonly properties: {
|
|
348
|
+
readonly type: {
|
|
349
|
+
readonly type: "string";
|
|
350
|
+
readonly const: "document";
|
|
351
|
+
};
|
|
352
|
+
readonly model: {
|
|
353
|
+
readonly anyOf: readonly [{
|
|
354
|
+
readonly type: "string";
|
|
355
|
+
}, {
|
|
356
|
+
readonly type: "null";
|
|
357
|
+
}];
|
|
358
|
+
};
|
|
359
|
+
};
|
|
360
|
+
readonly required: readonly ["type", "model"];
|
|
361
|
+
readonly additionalProperties: false;
|
|
362
|
+
}];
|
|
601
363
|
};
|
|
602
364
|
};
|
|
603
365
|
};
|
|
@@ -910,17 +672,44 @@ export declare const clusterModel: {
|
|
|
910
672
|
readonly fieldsMeta: {
|
|
911
673
|
readonly type: "object";
|
|
912
674
|
readonly additionalProperties: {
|
|
913
|
-
readonly
|
|
914
|
-
|
|
915
|
-
readonly
|
|
916
|
-
readonly
|
|
675
|
+
readonly anyOf: readonly [{
|
|
676
|
+
readonly type: "object";
|
|
677
|
+
readonly properties: {
|
|
678
|
+
readonly type: {
|
|
917
679
|
readonly type: "string";
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
}];
|
|
680
|
+
readonly const: "account";
|
|
681
|
+
};
|
|
921
682
|
};
|
|
922
|
-
|
|
923
|
-
|
|
683
|
+
readonly required: readonly ["type"];
|
|
684
|
+
readonly additionalProperties: false;
|
|
685
|
+
}, {
|
|
686
|
+
readonly type: "object";
|
|
687
|
+
readonly properties: {
|
|
688
|
+
readonly type: {
|
|
689
|
+
readonly type: "string";
|
|
690
|
+
readonly const: "attachment";
|
|
691
|
+
};
|
|
692
|
+
};
|
|
693
|
+
readonly required: readonly ["type"];
|
|
694
|
+
readonly additionalProperties: false;
|
|
695
|
+
}, {
|
|
696
|
+
readonly type: "object";
|
|
697
|
+
readonly properties: {
|
|
698
|
+
readonly type: {
|
|
699
|
+
readonly type: "string";
|
|
700
|
+
readonly const: "document";
|
|
701
|
+
};
|
|
702
|
+
readonly model: {
|
|
703
|
+
readonly anyOf: readonly [{
|
|
704
|
+
readonly type: "string";
|
|
705
|
+
}, {
|
|
706
|
+
readonly type: "null";
|
|
707
|
+
}];
|
|
708
|
+
};
|
|
709
|
+
};
|
|
710
|
+
readonly required: readonly ["type", "model"];
|
|
711
|
+
readonly additionalProperties: false;
|
|
712
|
+
}];
|
|
924
713
|
};
|
|
925
714
|
};
|
|
926
715
|
};
|
|
@@ -1239,17 +1028,44 @@ export declare const clusterModel: {
|
|
|
1239
1028
|
readonly fieldsMeta: {
|
|
1240
1029
|
readonly type: "object";
|
|
1241
1030
|
readonly additionalProperties: {
|
|
1242
|
-
readonly
|
|
1243
|
-
|
|
1244
|
-
readonly
|
|
1245
|
-
readonly
|
|
1031
|
+
readonly anyOf: readonly [{
|
|
1032
|
+
readonly type: "object";
|
|
1033
|
+
readonly properties: {
|
|
1034
|
+
readonly type: {
|
|
1246
1035
|
readonly type: "string";
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
}];
|
|
1036
|
+
readonly const: "account";
|
|
1037
|
+
};
|
|
1250
1038
|
};
|
|
1251
|
-
|
|
1252
|
-
|
|
1039
|
+
readonly required: readonly ["type"];
|
|
1040
|
+
readonly additionalProperties: false;
|
|
1041
|
+
}, {
|
|
1042
|
+
readonly type: "object";
|
|
1043
|
+
readonly properties: {
|
|
1044
|
+
readonly type: {
|
|
1045
|
+
readonly type: "string";
|
|
1046
|
+
readonly const: "attachment";
|
|
1047
|
+
};
|
|
1048
|
+
};
|
|
1049
|
+
readonly required: readonly ["type"];
|
|
1050
|
+
readonly additionalProperties: false;
|
|
1051
|
+
}, {
|
|
1052
|
+
readonly type: "object";
|
|
1053
|
+
readonly properties: {
|
|
1054
|
+
readonly type: {
|
|
1055
|
+
readonly type: "string";
|
|
1056
|
+
readonly const: "document";
|
|
1057
|
+
};
|
|
1058
|
+
readonly model: {
|
|
1059
|
+
readonly anyOf: readonly [{
|
|
1060
|
+
readonly type: "string";
|
|
1061
|
+
}, {
|
|
1062
|
+
readonly type: "null";
|
|
1063
|
+
}];
|
|
1064
|
+
};
|
|
1065
|
+
};
|
|
1066
|
+
readonly required: readonly ["type", "model"];
|
|
1067
|
+
readonly additionalProperties: false;
|
|
1068
|
+
}];
|
|
1253
1069
|
};
|
|
1254
1070
|
};
|
|
1255
1071
|
};
|
|
@@ -1353,7 +1169,12 @@ export declare const validateClusterModel: import("@enkaku/schema").Validator<{
|
|
|
1353
1169
|
};
|
|
1354
1170
|
fieldsMeta: {
|
|
1355
1171
|
[x: string]: {
|
|
1356
|
-
|
|
1172
|
+
type: "account";
|
|
1173
|
+
} | {
|
|
1174
|
+
type: "attachment";
|
|
1175
|
+
} | {
|
|
1176
|
+
type: "document";
|
|
1177
|
+
model: string | null;
|
|
1357
1178
|
};
|
|
1358
1179
|
};
|
|
1359
1180
|
interfaces: string[];
|
|
@@ -1436,7 +1257,12 @@ export declare const validateClusterModel: import("@enkaku/schema").Validator<{
|
|
|
1436
1257
|
};
|
|
1437
1258
|
fieldsMeta: {
|
|
1438
1259
|
[x: string]: {
|
|
1439
|
-
|
|
1260
|
+
type: "account";
|
|
1261
|
+
} | {
|
|
1262
|
+
type: "attachment";
|
|
1263
|
+
} | {
|
|
1264
|
+
type: "document";
|
|
1265
|
+
model: string | null;
|
|
1440
1266
|
};
|
|
1441
1267
|
};
|
|
1442
1268
|
interfaces: string[];
|
|
@@ -1519,7 +1345,12 @@ export declare const validateClusterModel: import("@enkaku/schema").Validator<{
|
|
|
1519
1345
|
};
|
|
1520
1346
|
fieldsMeta: {
|
|
1521
1347
|
[x: string]: {
|
|
1522
|
-
|
|
1348
|
+
type: "account";
|
|
1349
|
+
} | {
|
|
1350
|
+
type: "attachment";
|
|
1351
|
+
} | {
|
|
1352
|
+
type: "document";
|
|
1353
|
+
model: string | null;
|
|
1523
1354
|
};
|
|
1524
1355
|
};
|
|
1525
1356
|
interfaces: string[];
|
|
@@ -1531,14 +1362,17 @@ export declare const validateClusterModel: import("@enkaku/schema").Validator<{
|
|
|
1531
1362
|
};
|
|
1532
1363
|
}>;
|
|
1533
1364
|
export declare function verifyCluster(cluster: ClusterModel): DocumentModelsRecord;
|
|
1365
|
+
export type ClusterBuilderParams = {
|
|
1366
|
+
logger?: Logger;
|
|
1367
|
+
};
|
|
1534
1368
|
export declare class ClusterBuilder {
|
|
1535
1369
|
#private;
|
|
1370
|
+
constructor(params?: ClusterBuilderParams);
|
|
1536
1371
|
get cluster(): DocumentModelsCluster;
|
|
1537
1372
|
get length(): number;
|
|
1538
1373
|
build(): ClusterModel;
|
|
1539
1374
|
get(id: DocumentModelID | string | number): DocumentModel;
|
|
1540
|
-
add(inputModel:
|
|
1541
|
-
addAll(models: Array<
|
|
1375
|
+
add(inputModel: DocumentModelInput): DocumentModelID;
|
|
1376
|
+
addAll(models: Array<DocumentModelInput>): Array<DocumentModelID>;
|
|
1542
1377
|
}
|
|
1543
|
-
export {};
|
|
1544
1378
|
//# sourceMappingURL=cluster.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/models/cluster.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,UAAU,EAAe,MAAM,gBAAgB,CAAA;AAC1F,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/models/cluster.ts"],"names":[],"mappings":"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"}
|