@kubun/protocol 0.3.10 → 0.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.
@@ -1,12 +1,42 @@
1
- import type { FromSchema } from '@enkaku/schema';
1
+ import { type FromSchema } from '@enkaku/schema';
2
+ import type { Logger } from '@kubun/logger';
3
+ import type { JSONSchema } from 'json-schema-typed';
2
4
  export declare const documentModelVersion: {
3
5
  readonly type: "string";
4
6
  readonly const: "1.0";
5
7
  };
6
- export declare const documentFieldMeta: {
8
+ export declare const documentFieldMetaAccount: {
9
+ readonly type: "object";
10
+ readonly properties: {
11
+ readonly type: {
12
+ readonly type: "string";
13
+ readonly const: "account";
14
+ };
15
+ };
16
+ readonly required: readonly ["type"];
17
+ readonly additionalProperties: false;
18
+ };
19
+ export type DocumentFieldMetaAccount = FromSchema<typeof documentFieldMetaAccount>;
20
+ export declare const documentFieldMetaAttachment: {
21
+ readonly type: "object";
22
+ readonly properties: {
23
+ readonly type: {
24
+ readonly type: "string";
25
+ readonly const: "attachment";
26
+ };
27
+ };
28
+ readonly required: readonly ["type"];
29
+ readonly additionalProperties: false;
30
+ };
31
+ export type DocumentFieldMetaAttachment = FromSchema<typeof documentFieldMetaAttachment>;
32
+ export declare const documentFieldMetaDocument: {
7
33
  readonly type: "object";
8
34
  readonly properties: {
9
- readonly relationModel: {
35
+ readonly type: {
36
+ readonly type: "string";
37
+ readonly const: "document";
38
+ };
39
+ readonly model: {
10
40
  readonly anyOf: readonly [{
11
41
  readonly type: "string";
12
42
  }, {
@@ -14,15 +44,39 @@ export declare const documentFieldMeta: {
14
44
  }];
15
45
  };
16
46
  };
47
+ readonly required: readonly ["type", "model"];
17
48
  readonly additionalProperties: false;
18
49
  };
19
- export type DocumentFieldMeta = FromSchema<typeof documentFieldsMeta>;
20
- export declare const documentFieldsMeta: {
21
- readonly type: "object";
22
- readonly additionalProperties: {
50
+ export type DocumentFieldMetaDocument = FromSchema<typeof documentFieldMetaDocument>;
51
+ export declare const documentFieldMeta: {
52
+ readonly anyOf: readonly [{
53
+ readonly type: "object";
54
+ readonly properties: {
55
+ readonly type: {
56
+ readonly type: "string";
57
+ readonly const: "account";
58
+ };
59
+ };
60
+ readonly required: readonly ["type"];
61
+ readonly additionalProperties: false;
62
+ }, {
23
63
  readonly type: "object";
24
64
  readonly properties: {
25
- readonly relationModel: {
65
+ readonly type: {
66
+ readonly type: "string";
67
+ readonly const: "attachment";
68
+ };
69
+ };
70
+ readonly required: readonly ["type"];
71
+ readonly additionalProperties: false;
72
+ }, {
73
+ readonly type: "object";
74
+ readonly properties: {
75
+ readonly type: {
76
+ readonly type: "string";
77
+ readonly const: "document";
78
+ };
79
+ readonly model: {
26
80
  readonly anyOf: readonly [{
27
81
  readonly type: "string";
28
82
  }, {
@@ -30,7 +84,52 @@ export declare const documentFieldsMeta: {
30
84
  }];
31
85
  };
32
86
  };
87
+ readonly required: readonly ["type", "model"];
33
88
  readonly additionalProperties: false;
89
+ }];
90
+ };
91
+ export type DocumentFieldMeta = FromSchema<typeof documentFieldMeta>;
92
+ export declare const documentFieldsMeta: {
93
+ readonly type: "object";
94
+ readonly additionalProperties: {
95
+ readonly anyOf: readonly [{
96
+ readonly type: "object";
97
+ readonly properties: {
98
+ readonly type: {
99
+ readonly type: "string";
100
+ readonly const: "account";
101
+ };
102
+ };
103
+ readonly required: readonly ["type"];
104
+ readonly additionalProperties: false;
105
+ }, {
106
+ readonly type: "object";
107
+ readonly properties: {
108
+ readonly type: {
109
+ readonly type: "string";
110
+ readonly const: "attachment";
111
+ };
112
+ };
113
+ readonly required: readonly ["type"];
114
+ readonly additionalProperties: false;
115
+ }, {
116
+ readonly type: "object";
117
+ readonly properties: {
118
+ readonly type: {
119
+ readonly type: "string";
120
+ readonly const: "document";
121
+ };
122
+ readonly model: {
123
+ readonly anyOf: readonly [{
124
+ readonly type: "string";
125
+ }, {
126
+ readonly type: "null";
127
+ }];
128
+ };
129
+ };
130
+ readonly required: readonly ["type", "model"];
131
+ readonly additionalProperties: false;
132
+ }];
34
133
  };
35
134
  };
36
135
  export type DocumentFieldsMeta = FromSchema<typeof documentFieldsMeta>;
@@ -621,17 +720,44 @@ export declare const documentModelBase: {
621
720
  readonly fieldsMeta: {
622
721
  readonly type: "object";
623
722
  readonly additionalProperties: {
624
- readonly type: "object";
625
- readonly properties: {
626
- readonly relationModel: {
627
- readonly anyOf: readonly [{
723
+ readonly anyOf: readonly [{
724
+ readonly type: "object";
725
+ readonly properties: {
726
+ readonly type: {
628
727
  readonly type: "string";
629
- }, {
630
- readonly type: "null";
631
- }];
728
+ readonly const: "account";
729
+ };
632
730
  };
633
- };
634
- readonly additionalProperties: false;
731
+ readonly required: readonly ["type"];
732
+ readonly additionalProperties: false;
733
+ }, {
734
+ readonly type: "object";
735
+ readonly properties: {
736
+ readonly type: {
737
+ readonly type: "string";
738
+ readonly const: "attachment";
739
+ };
740
+ };
741
+ readonly required: readonly ["type"];
742
+ readonly additionalProperties: false;
743
+ }, {
744
+ readonly type: "object";
745
+ readonly properties: {
746
+ readonly type: {
747
+ readonly type: "string";
748
+ readonly const: "document";
749
+ };
750
+ readonly model: {
751
+ readonly anyOf: readonly [{
752
+ readonly type: "string";
753
+ }, {
754
+ readonly type: "null";
755
+ }];
756
+ };
757
+ };
758
+ readonly required: readonly ["type", "model"];
759
+ readonly additionalProperties: false;
760
+ }];
635
761
  };
636
762
  };
637
763
  };
@@ -945,17 +1071,44 @@ export declare const documentModelDefault: {
945
1071
  readonly fieldsMeta: {
946
1072
  readonly type: "object";
947
1073
  readonly additionalProperties: {
948
- readonly type: "object";
949
- readonly properties: {
950
- readonly relationModel: {
951
- readonly anyOf: readonly [{
1074
+ readonly anyOf: readonly [{
1075
+ readonly type: "object";
1076
+ readonly properties: {
1077
+ readonly type: {
952
1078
  readonly type: "string";
953
- }, {
954
- readonly type: "null";
955
- }];
1079
+ readonly const: "account";
1080
+ };
956
1081
  };
957
- };
958
- readonly additionalProperties: false;
1082
+ readonly required: readonly ["type"];
1083
+ readonly additionalProperties: false;
1084
+ }, {
1085
+ readonly type: "object";
1086
+ readonly properties: {
1087
+ readonly type: {
1088
+ readonly type: "string";
1089
+ readonly const: "attachment";
1090
+ };
1091
+ };
1092
+ readonly required: readonly ["type"];
1093
+ readonly additionalProperties: false;
1094
+ }, {
1095
+ readonly type: "object";
1096
+ readonly properties: {
1097
+ readonly type: {
1098
+ readonly type: "string";
1099
+ readonly const: "document";
1100
+ };
1101
+ readonly model: {
1102
+ readonly anyOf: readonly [{
1103
+ readonly type: "string";
1104
+ }, {
1105
+ readonly type: "null";
1106
+ }];
1107
+ };
1108
+ };
1109
+ readonly required: readonly ["type", "model"];
1110
+ readonly additionalProperties: false;
1111
+ }];
959
1112
  };
960
1113
  };
961
1114
  };
@@ -1269,17 +1422,44 @@ export declare const documentModelInterface: {
1269
1422
  readonly fieldsMeta: {
1270
1423
  readonly type: "object";
1271
1424
  readonly additionalProperties: {
1272
- readonly type: "object";
1273
- readonly properties: {
1274
- readonly relationModel: {
1275
- readonly anyOf: readonly [{
1425
+ readonly anyOf: readonly [{
1426
+ readonly type: "object";
1427
+ readonly properties: {
1428
+ readonly type: {
1276
1429
  readonly type: "string";
1277
- }, {
1278
- readonly type: "null";
1279
- }];
1430
+ readonly const: "account";
1431
+ };
1280
1432
  };
1281
- };
1282
- readonly additionalProperties: false;
1433
+ readonly required: readonly ["type"];
1434
+ readonly additionalProperties: false;
1435
+ }, {
1436
+ readonly type: "object";
1437
+ readonly properties: {
1438
+ readonly type: {
1439
+ readonly type: "string";
1440
+ readonly const: "attachment";
1441
+ };
1442
+ };
1443
+ readonly required: readonly ["type"];
1444
+ readonly additionalProperties: false;
1445
+ }, {
1446
+ readonly type: "object";
1447
+ readonly properties: {
1448
+ readonly type: {
1449
+ readonly type: "string";
1450
+ readonly const: "document";
1451
+ };
1452
+ readonly model: {
1453
+ readonly anyOf: readonly [{
1454
+ readonly type: "string";
1455
+ }, {
1456
+ readonly type: "null";
1457
+ }];
1458
+ };
1459
+ };
1460
+ readonly required: readonly ["type", "model"];
1461
+ readonly additionalProperties: false;
1462
+ }];
1283
1463
  };
1284
1464
  };
1285
1465
  };
@@ -1599,17 +1779,44 @@ export declare const documentModelUnique: {
1599
1779
  readonly fieldsMeta: {
1600
1780
  readonly type: "object";
1601
1781
  readonly additionalProperties: {
1602
- readonly type: "object";
1603
- readonly properties: {
1604
- readonly relationModel: {
1605
- readonly anyOf: readonly [{
1782
+ readonly anyOf: readonly [{
1783
+ readonly type: "object";
1784
+ readonly properties: {
1785
+ readonly type: {
1606
1786
  readonly type: "string";
1607
- }, {
1608
- readonly type: "null";
1609
- }];
1787
+ readonly const: "account";
1788
+ };
1610
1789
  };
1611
- };
1612
- readonly additionalProperties: false;
1790
+ readonly required: readonly ["type"];
1791
+ readonly additionalProperties: false;
1792
+ }, {
1793
+ readonly type: "object";
1794
+ readonly properties: {
1795
+ readonly type: {
1796
+ readonly type: "string";
1797
+ readonly const: "attachment";
1798
+ };
1799
+ };
1800
+ readonly required: readonly ["type"];
1801
+ readonly additionalProperties: false;
1802
+ }, {
1803
+ readonly type: "object";
1804
+ readonly properties: {
1805
+ readonly type: {
1806
+ readonly type: "string";
1807
+ readonly const: "document";
1808
+ };
1809
+ readonly model: {
1810
+ readonly anyOf: readonly [{
1811
+ readonly type: "string";
1812
+ }, {
1813
+ readonly type: "null";
1814
+ }];
1815
+ };
1816
+ };
1817
+ readonly required: readonly ["type", "model"];
1818
+ readonly additionalProperties: false;
1819
+ }];
1613
1820
  };
1614
1821
  };
1615
1822
  };
@@ -1925,40 +2132,67 @@ export declare const documentModel: {
1925
2132
  readonly fieldsMeta: {
1926
2133
  readonly type: "object";
1927
2134
  readonly additionalProperties: {
1928
- readonly type: "object";
1929
- readonly properties: {
1930
- readonly relationModel: {
1931
- readonly anyOf: readonly [{
2135
+ readonly anyOf: readonly [{
2136
+ readonly type: "object";
2137
+ readonly properties: {
2138
+ readonly type: {
1932
2139
  readonly type: "string";
1933
- }, {
1934
- readonly type: "null";
1935
- }];
2140
+ readonly const: "account";
2141
+ };
1936
2142
  };
1937
- };
1938
- readonly additionalProperties: false;
1939
- };
1940
- };
1941
- };
1942
- readonly required: readonly ["name", "version", "interfaces", "schema", "fieldsMeta", "behavior"];
1943
- readonly additionalProperties: false;
1944
- }, {
1945
- readonly type: "object";
1946
- readonly properties: {
1947
- readonly behavior: {
1948
- readonly type: "string";
1949
- readonly const: "interface";
1950
- };
1951
- readonly name: {
1952
- readonly type: "string";
1953
- readonly pattern: "^[A-Z]+[A-Za-z0-9]+$";
1954
- };
1955
- readonly version: {
1956
- readonly type: "string";
1957
- readonly const: "1.0";
1958
- };
1959
- readonly interfaces: {
1960
- readonly type: "array";
1961
- readonly items: {
2143
+ readonly required: readonly ["type"];
2144
+ readonly additionalProperties: false;
2145
+ }, {
2146
+ readonly type: "object";
2147
+ readonly properties: {
2148
+ readonly type: {
2149
+ readonly type: "string";
2150
+ readonly const: "attachment";
2151
+ };
2152
+ };
2153
+ readonly required: readonly ["type"];
2154
+ readonly additionalProperties: false;
2155
+ }, {
2156
+ readonly type: "object";
2157
+ readonly properties: {
2158
+ readonly type: {
2159
+ readonly type: "string";
2160
+ readonly const: "document";
2161
+ };
2162
+ readonly model: {
2163
+ readonly anyOf: readonly [{
2164
+ readonly type: "string";
2165
+ }, {
2166
+ readonly type: "null";
2167
+ }];
2168
+ };
2169
+ };
2170
+ readonly required: readonly ["type", "model"];
2171
+ readonly additionalProperties: false;
2172
+ }];
2173
+ };
2174
+ };
2175
+ };
2176
+ readonly required: readonly ["name", "version", "interfaces", "schema", "fieldsMeta", "behavior"];
2177
+ readonly additionalProperties: false;
2178
+ }, {
2179
+ readonly type: "object";
2180
+ readonly properties: {
2181
+ readonly behavior: {
2182
+ readonly type: "string";
2183
+ readonly const: "interface";
2184
+ };
2185
+ readonly name: {
2186
+ readonly type: "string";
2187
+ readonly pattern: "^[A-Z]+[A-Za-z0-9]+$";
2188
+ };
2189
+ readonly version: {
2190
+ readonly type: "string";
2191
+ readonly const: "1.0";
2192
+ };
2193
+ readonly interfaces: {
2194
+ readonly type: "array";
2195
+ readonly items: {
1962
2196
  readonly type: "string";
1963
2197
  };
1964
2198
  };
@@ -2248,17 +2482,44 @@ export declare const documentModel: {
2248
2482
  readonly fieldsMeta: {
2249
2483
  readonly type: "object";
2250
2484
  readonly additionalProperties: {
2251
- readonly type: "object";
2252
- readonly properties: {
2253
- readonly relationModel: {
2254
- readonly anyOf: readonly [{
2485
+ readonly anyOf: readonly [{
2486
+ readonly type: "object";
2487
+ readonly properties: {
2488
+ readonly type: {
2255
2489
  readonly type: "string";
2256
- }, {
2257
- readonly type: "null";
2258
- }];
2490
+ readonly const: "account";
2491
+ };
2259
2492
  };
2260
- };
2261
- readonly additionalProperties: false;
2493
+ readonly required: readonly ["type"];
2494
+ readonly additionalProperties: false;
2495
+ }, {
2496
+ readonly type: "object";
2497
+ readonly properties: {
2498
+ readonly type: {
2499
+ readonly type: "string";
2500
+ readonly const: "attachment";
2501
+ };
2502
+ };
2503
+ readonly required: readonly ["type"];
2504
+ readonly additionalProperties: false;
2505
+ }, {
2506
+ readonly type: "object";
2507
+ readonly properties: {
2508
+ readonly type: {
2509
+ readonly type: "string";
2510
+ readonly const: "document";
2511
+ };
2512
+ readonly model: {
2513
+ readonly anyOf: readonly [{
2514
+ readonly type: "string";
2515
+ }, {
2516
+ readonly type: "null";
2517
+ }];
2518
+ };
2519
+ };
2520
+ readonly required: readonly ["type", "model"];
2521
+ readonly additionalProperties: false;
2522
+ }];
2262
2523
  };
2263
2524
  };
2264
2525
  };
@@ -2577,17 +2838,44 @@ export declare const documentModel: {
2577
2838
  readonly fieldsMeta: {
2578
2839
  readonly type: "object";
2579
2840
  readonly additionalProperties: {
2580
- readonly type: "object";
2581
- readonly properties: {
2582
- readonly relationModel: {
2583
- readonly anyOf: readonly [{
2841
+ readonly anyOf: readonly [{
2842
+ readonly type: "object";
2843
+ readonly properties: {
2844
+ readonly type: {
2584
2845
  readonly type: "string";
2585
- }, {
2586
- readonly type: "null";
2587
- }];
2846
+ readonly const: "account";
2847
+ };
2588
2848
  };
2589
- };
2590
- readonly additionalProperties: false;
2849
+ readonly required: readonly ["type"];
2850
+ readonly additionalProperties: false;
2851
+ }, {
2852
+ readonly type: "object";
2853
+ readonly properties: {
2854
+ readonly type: {
2855
+ readonly type: "string";
2856
+ readonly const: "attachment";
2857
+ };
2858
+ };
2859
+ readonly required: readonly ["type"];
2860
+ readonly additionalProperties: false;
2861
+ }, {
2862
+ readonly type: "object";
2863
+ readonly properties: {
2864
+ readonly type: {
2865
+ readonly type: "string";
2866
+ readonly const: "document";
2867
+ };
2868
+ readonly model: {
2869
+ readonly anyOf: readonly [{
2870
+ readonly type: "string";
2871
+ }, {
2872
+ readonly type: "null";
2873
+ }];
2874
+ };
2875
+ };
2876
+ readonly required: readonly ["type", "model"];
2877
+ readonly additionalProperties: false;
2878
+ }];
2591
2879
  };
2592
2880
  };
2593
2881
  };
@@ -2907,17 +3195,44 @@ export declare const documentModelsCluster: {
2907
3195
  readonly fieldsMeta: {
2908
3196
  readonly type: "object";
2909
3197
  readonly additionalProperties: {
2910
- readonly type: "object";
2911
- readonly properties: {
2912
- readonly relationModel: {
2913
- readonly anyOf: readonly [{
3198
+ readonly anyOf: readonly [{
3199
+ readonly type: "object";
3200
+ readonly properties: {
3201
+ readonly type: {
2914
3202
  readonly type: "string";
2915
- }, {
2916
- readonly type: "null";
2917
- }];
3203
+ readonly const: "account";
3204
+ };
2918
3205
  };
2919
- };
2920
- readonly additionalProperties: false;
3206
+ readonly required: readonly ["type"];
3207
+ readonly additionalProperties: false;
3208
+ }, {
3209
+ readonly type: "object";
3210
+ readonly properties: {
3211
+ readonly type: {
3212
+ readonly type: "string";
3213
+ readonly const: "attachment";
3214
+ };
3215
+ };
3216
+ readonly required: readonly ["type"];
3217
+ readonly additionalProperties: false;
3218
+ }, {
3219
+ readonly type: "object";
3220
+ readonly properties: {
3221
+ readonly type: {
3222
+ readonly type: "string";
3223
+ readonly const: "document";
3224
+ };
3225
+ readonly model: {
3226
+ readonly anyOf: readonly [{
3227
+ readonly type: "string";
3228
+ }, {
3229
+ readonly type: "null";
3230
+ }];
3231
+ };
3232
+ };
3233
+ readonly required: readonly ["type", "model"];
3234
+ readonly additionalProperties: false;
3235
+ }];
2921
3236
  };
2922
3237
  };
2923
3238
  };
@@ -3230,17 +3545,44 @@ export declare const documentModelsCluster: {
3230
3545
  readonly fieldsMeta: {
3231
3546
  readonly type: "object";
3232
3547
  readonly additionalProperties: {
3233
- readonly type: "object";
3234
- readonly properties: {
3235
- readonly relationModel: {
3236
- readonly anyOf: readonly [{
3548
+ readonly anyOf: readonly [{
3549
+ readonly type: "object";
3550
+ readonly properties: {
3551
+ readonly type: {
3237
3552
  readonly type: "string";
3238
- }, {
3239
- readonly type: "null";
3240
- }];
3553
+ readonly const: "account";
3554
+ };
3241
3555
  };
3242
- };
3243
- readonly additionalProperties: false;
3556
+ readonly required: readonly ["type"];
3557
+ readonly additionalProperties: false;
3558
+ }, {
3559
+ readonly type: "object";
3560
+ readonly properties: {
3561
+ readonly type: {
3562
+ readonly type: "string";
3563
+ readonly const: "attachment";
3564
+ };
3565
+ };
3566
+ readonly required: readonly ["type"];
3567
+ readonly additionalProperties: false;
3568
+ }, {
3569
+ readonly type: "object";
3570
+ readonly properties: {
3571
+ readonly type: {
3572
+ readonly type: "string";
3573
+ readonly const: "document";
3574
+ };
3575
+ readonly model: {
3576
+ readonly anyOf: readonly [{
3577
+ readonly type: "string";
3578
+ }, {
3579
+ readonly type: "null";
3580
+ }];
3581
+ };
3582
+ };
3583
+ readonly required: readonly ["type", "model"];
3584
+ readonly additionalProperties: false;
3585
+ }];
3244
3586
  };
3245
3587
  };
3246
3588
  };
@@ -3559,17 +3901,44 @@ export declare const documentModelsCluster: {
3559
3901
  readonly fieldsMeta: {
3560
3902
  readonly type: "object";
3561
3903
  readonly additionalProperties: {
3562
- readonly type: "object";
3563
- readonly properties: {
3564
- readonly relationModel: {
3565
- readonly anyOf: readonly [{
3904
+ readonly anyOf: readonly [{
3905
+ readonly type: "object";
3906
+ readonly properties: {
3907
+ readonly type: {
3566
3908
  readonly type: "string";
3567
- }, {
3568
- readonly type: "null";
3569
- }];
3909
+ readonly const: "account";
3910
+ };
3570
3911
  };
3571
- };
3572
- readonly additionalProperties: false;
3912
+ readonly required: readonly ["type"];
3913
+ readonly additionalProperties: false;
3914
+ }, {
3915
+ readonly type: "object";
3916
+ readonly properties: {
3917
+ readonly type: {
3918
+ readonly type: "string";
3919
+ readonly const: "attachment";
3920
+ };
3921
+ };
3922
+ readonly required: readonly ["type"];
3923
+ readonly additionalProperties: false;
3924
+ }, {
3925
+ readonly type: "object";
3926
+ readonly properties: {
3927
+ readonly type: {
3928
+ readonly type: "string";
3929
+ readonly const: "document";
3930
+ };
3931
+ readonly model: {
3932
+ readonly anyOf: readonly [{
3933
+ readonly type: "string";
3934
+ }, {
3935
+ readonly type: "null";
3936
+ }];
3937
+ };
3938
+ };
3939
+ readonly required: readonly ["type", "model"];
3940
+ readonly additionalProperties: false;
3941
+ }];
3573
3942
  };
3574
3943
  };
3575
3944
  };
@@ -3890,17 +4259,44 @@ export declare const documentModelsRecord: {
3890
4259
  readonly fieldsMeta: {
3891
4260
  readonly type: "object";
3892
4261
  readonly additionalProperties: {
3893
- readonly type: "object";
3894
- readonly properties: {
3895
- readonly relationModel: {
3896
- readonly anyOf: readonly [{
4262
+ readonly anyOf: readonly [{
4263
+ readonly type: "object";
4264
+ readonly properties: {
4265
+ readonly type: {
3897
4266
  readonly type: "string";
3898
- }, {
3899
- readonly type: "null";
3900
- }];
4267
+ readonly const: "account";
4268
+ };
3901
4269
  };
3902
- };
3903
- readonly additionalProperties: false;
4270
+ readonly required: readonly ["type"];
4271
+ readonly additionalProperties: false;
4272
+ }, {
4273
+ readonly type: "object";
4274
+ readonly properties: {
4275
+ readonly type: {
4276
+ readonly type: "string";
4277
+ readonly const: "attachment";
4278
+ };
4279
+ };
4280
+ readonly required: readonly ["type"];
4281
+ readonly additionalProperties: false;
4282
+ }, {
4283
+ readonly type: "object";
4284
+ readonly properties: {
4285
+ readonly type: {
4286
+ readonly type: "string";
4287
+ readonly const: "document";
4288
+ };
4289
+ readonly model: {
4290
+ readonly anyOf: readonly [{
4291
+ readonly type: "string";
4292
+ }, {
4293
+ readonly type: "null";
4294
+ }];
4295
+ };
4296
+ };
4297
+ readonly required: readonly ["type", "model"];
4298
+ readonly additionalProperties: false;
4299
+ }];
3904
4300
  };
3905
4301
  };
3906
4302
  };
@@ -4213,17 +4609,44 @@ export declare const documentModelsRecord: {
4213
4609
  readonly fieldsMeta: {
4214
4610
  readonly type: "object";
4215
4611
  readonly additionalProperties: {
4216
- readonly type: "object";
4217
- readonly properties: {
4218
- readonly relationModel: {
4219
- readonly anyOf: readonly [{
4612
+ readonly anyOf: readonly [{
4613
+ readonly type: "object";
4614
+ readonly properties: {
4615
+ readonly type: {
4220
4616
  readonly type: "string";
4221
- }, {
4222
- readonly type: "null";
4223
- }];
4617
+ readonly const: "account";
4618
+ };
4224
4619
  };
4225
- };
4226
- readonly additionalProperties: false;
4620
+ readonly required: readonly ["type"];
4621
+ readonly additionalProperties: false;
4622
+ }, {
4623
+ readonly type: "object";
4624
+ readonly properties: {
4625
+ readonly type: {
4626
+ readonly type: "string";
4627
+ readonly const: "attachment";
4628
+ };
4629
+ };
4630
+ readonly required: readonly ["type"];
4631
+ readonly additionalProperties: false;
4632
+ }, {
4633
+ readonly type: "object";
4634
+ readonly properties: {
4635
+ readonly type: {
4636
+ readonly type: "string";
4637
+ readonly const: "document";
4638
+ };
4639
+ readonly model: {
4640
+ readonly anyOf: readonly [{
4641
+ readonly type: "string";
4642
+ }, {
4643
+ readonly type: "null";
4644
+ }];
4645
+ };
4646
+ };
4647
+ readonly required: readonly ["type", "model"];
4648
+ readonly additionalProperties: false;
4649
+ }];
4227
4650
  };
4228
4651
  };
4229
4652
  };
@@ -4542,17 +4965,44 @@ export declare const documentModelsRecord: {
4542
4965
  readonly fieldsMeta: {
4543
4966
  readonly type: "object";
4544
4967
  readonly additionalProperties: {
4545
- readonly type: "object";
4546
- readonly properties: {
4547
- readonly relationModel: {
4548
- readonly anyOf: readonly [{
4968
+ readonly anyOf: readonly [{
4969
+ readonly type: "object";
4970
+ readonly properties: {
4971
+ readonly type: {
4549
4972
  readonly type: "string";
4550
- }, {
4551
- readonly type: "null";
4552
- }];
4973
+ readonly const: "account";
4974
+ };
4553
4975
  };
4554
- };
4555
- readonly additionalProperties: false;
4976
+ readonly required: readonly ["type"];
4977
+ readonly additionalProperties: false;
4978
+ }, {
4979
+ readonly type: "object";
4980
+ readonly properties: {
4981
+ readonly type: {
4982
+ readonly type: "string";
4983
+ readonly const: "attachment";
4984
+ };
4985
+ };
4986
+ readonly required: readonly ["type"];
4987
+ readonly additionalProperties: false;
4988
+ }, {
4989
+ readonly type: "object";
4990
+ readonly properties: {
4991
+ readonly type: {
4992
+ readonly type: "string";
4993
+ readonly const: "document";
4994
+ };
4995
+ readonly model: {
4996
+ readonly anyOf: readonly [{
4997
+ readonly type: "string";
4998
+ }, {
4999
+ readonly type: "null";
5000
+ }];
5001
+ };
5002
+ };
5003
+ readonly required: readonly ["type", "model"];
5004
+ readonly additionalProperties: false;
5005
+ }];
4556
5006
  };
4557
5007
  };
4558
5008
  };
@@ -4749,4 +5199,296 @@ export declare const documentMutation: {
4749
5199
  }];
4750
5200
  };
4751
5201
  export type DocumentMutation = FromSchema<typeof documentMutation>;
5202
+ export declare const validateDocumentModel: import("@enkaku/schema").Validator<{
5203
+ name: string;
5204
+ version: "1.0";
5205
+ schema: {
5206
+ type: "object";
5207
+ required: string[];
5208
+ properties: {
5209
+ [x: string]: {
5210
+ $ref: string;
5211
+ };
5212
+ };
5213
+ additionalProperties: boolean;
5214
+ $defs: {
5215
+ [x: string]: {
5216
+ default?: boolean | undefined;
5217
+ type: "boolean";
5218
+ } | {
5219
+ maximum?: number | undefined;
5220
+ minimum?: number | undefined;
5221
+ default?: number | undefined;
5222
+ type: "integer";
5223
+ } | {
5224
+ default?: number | undefined;
5225
+ min?: number | undefined;
5226
+ max?: number | undefined;
5227
+ type: "number";
5228
+ } | {
5229
+ title?: string | undefined;
5230
+ default?: string | undefined;
5231
+ type: "string";
5232
+ const: string;
5233
+ } | {
5234
+ maxLength?: number | undefined;
5235
+ minLength?: number | undefined;
5236
+ pattern?: string | undefined;
5237
+ title?: string | undefined;
5238
+ default?: string | undefined;
5239
+ type: "string";
5240
+ } | {
5241
+ default?: string | undefined;
5242
+ type: "string";
5243
+ enum: string[];
5244
+ title: string;
5245
+ } | {
5246
+ maxLength?: number | undefined;
5247
+ minLength?: number | undefined;
5248
+ title?: string | undefined;
5249
+ default?: string | undefined;
5250
+ type: "string";
5251
+ format: "date" | "date-time" | "duration" | "email" | "time" | "uri";
5252
+ } | {
5253
+ maxItems?: number | undefined;
5254
+ minItems?: number | undefined;
5255
+ uniqueItems?: boolean | undefined;
5256
+ type: "array";
5257
+ items: {
5258
+ $ref: string;
5259
+ };
5260
+ title: string;
5261
+ } | {
5262
+ type: "object";
5263
+ required: string[];
5264
+ properties: {
5265
+ [x: string]: {
5266
+ $ref: string;
5267
+ };
5268
+ };
5269
+ additionalProperties: boolean;
5270
+ title: string;
5271
+ } | {
5272
+ type: "object";
5273
+ additionalProperties: true;
5274
+ title: "JSONObject";
5275
+ };
5276
+ };
5277
+ };
5278
+ fieldsMeta: {
5279
+ [x: string]: {
5280
+ type: "account";
5281
+ } | {
5282
+ type: "attachment";
5283
+ } | {
5284
+ type: "document";
5285
+ model: string | null;
5286
+ };
5287
+ };
5288
+ interfaces: string[];
5289
+ behavior: "default";
5290
+ } | {
5291
+ name: string;
5292
+ version: "1.0";
5293
+ schema: {
5294
+ type: "object";
5295
+ required: string[];
5296
+ properties: {
5297
+ [x: string]: {
5298
+ $ref: string;
5299
+ };
5300
+ };
5301
+ additionalProperties: boolean;
5302
+ $defs: {
5303
+ [x: string]: {
5304
+ default?: boolean | undefined;
5305
+ type: "boolean";
5306
+ } | {
5307
+ maximum?: number | undefined;
5308
+ minimum?: number | undefined;
5309
+ default?: number | undefined;
5310
+ type: "integer";
5311
+ } | {
5312
+ default?: number | undefined;
5313
+ min?: number | undefined;
5314
+ max?: number | undefined;
5315
+ type: "number";
5316
+ } | {
5317
+ title?: string | undefined;
5318
+ default?: string | undefined;
5319
+ type: "string";
5320
+ const: string;
5321
+ } | {
5322
+ maxLength?: number | undefined;
5323
+ minLength?: number | undefined;
5324
+ pattern?: string | undefined;
5325
+ title?: string | undefined;
5326
+ default?: string | undefined;
5327
+ type: "string";
5328
+ } | {
5329
+ default?: string | undefined;
5330
+ type: "string";
5331
+ enum: string[];
5332
+ title: string;
5333
+ } | {
5334
+ maxLength?: number | undefined;
5335
+ minLength?: number | undefined;
5336
+ title?: string | undefined;
5337
+ default?: string | undefined;
5338
+ type: "string";
5339
+ format: "date" | "date-time" | "duration" | "email" | "time" | "uri";
5340
+ } | {
5341
+ maxItems?: number | undefined;
5342
+ minItems?: number | undefined;
5343
+ uniqueItems?: boolean | undefined;
5344
+ type: "array";
5345
+ items: {
5346
+ $ref: string;
5347
+ };
5348
+ title: string;
5349
+ } | {
5350
+ type: "object";
5351
+ required: string[];
5352
+ properties: {
5353
+ [x: string]: {
5354
+ $ref: string;
5355
+ };
5356
+ };
5357
+ additionalProperties: boolean;
5358
+ title: string;
5359
+ } | {
5360
+ type: "object";
5361
+ additionalProperties: true;
5362
+ title: "JSONObject";
5363
+ };
5364
+ };
5365
+ };
5366
+ fieldsMeta: {
5367
+ [x: string]: {
5368
+ type: "account";
5369
+ } | {
5370
+ type: "attachment";
5371
+ } | {
5372
+ type: "document";
5373
+ model: string | null;
5374
+ };
5375
+ };
5376
+ interfaces: string[];
5377
+ behavior: "interface";
5378
+ } | {
5379
+ name: string;
5380
+ version: "1.0";
5381
+ schema: {
5382
+ type: "object";
5383
+ required: string[];
5384
+ properties: {
5385
+ [x: string]: {
5386
+ $ref: string;
5387
+ };
5388
+ };
5389
+ additionalProperties: boolean;
5390
+ $defs: {
5391
+ [x: string]: {
5392
+ default?: boolean | undefined;
5393
+ type: "boolean";
5394
+ } | {
5395
+ maximum?: number | undefined;
5396
+ minimum?: number | undefined;
5397
+ default?: number | undefined;
5398
+ type: "integer";
5399
+ } | {
5400
+ default?: number | undefined;
5401
+ min?: number | undefined;
5402
+ max?: number | undefined;
5403
+ type: "number";
5404
+ } | {
5405
+ title?: string | undefined;
5406
+ default?: string | undefined;
5407
+ type: "string";
5408
+ const: string;
5409
+ } | {
5410
+ maxLength?: number | undefined;
5411
+ minLength?: number | undefined;
5412
+ pattern?: string | undefined;
5413
+ title?: string | undefined;
5414
+ default?: string | undefined;
5415
+ type: "string";
5416
+ } | {
5417
+ default?: string | undefined;
5418
+ type: "string";
5419
+ enum: string[];
5420
+ title: string;
5421
+ } | {
5422
+ maxLength?: number | undefined;
5423
+ minLength?: number | undefined;
5424
+ title?: string | undefined;
5425
+ default?: string | undefined;
5426
+ type: "string";
5427
+ format: "date" | "date-time" | "duration" | "email" | "time" | "uri";
5428
+ } | {
5429
+ maxItems?: number | undefined;
5430
+ minItems?: number | undefined;
5431
+ uniqueItems?: boolean | undefined;
5432
+ type: "array";
5433
+ items: {
5434
+ $ref: string;
5435
+ };
5436
+ title: string;
5437
+ } | {
5438
+ type: "object";
5439
+ required: string[];
5440
+ properties: {
5441
+ [x: string]: {
5442
+ $ref: string;
5443
+ };
5444
+ };
5445
+ additionalProperties: boolean;
5446
+ title: string;
5447
+ } | {
5448
+ type: "object";
5449
+ additionalProperties: true;
5450
+ title: "JSONObject";
5451
+ };
5452
+ };
5453
+ };
5454
+ fieldsMeta: {
5455
+ [x: string]: {
5456
+ type: "account";
5457
+ } | {
5458
+ type: "attachment";
5459
+ } | {
5460
+ type: "document";
5461
+ model: string | null;
5462
+ };
5463
+ };
5464
+ interfaces: string[];
5465
+ behavior: "unique";
5466
+ uniqueFields: string[];
5467
+ }>;
5468
+ type JSONSchemaScalar = JSONSchema.Boolean | JSONSchema.Integer | JSONSchema.Number | JSONSchema.String;
5469
+ type JSONSchemaShape = JSONSchema.Array | JSONSchema.Object;
5470
+ type JSONSchemaType = JSONSchemaScalar | JSONSchemaShape;
5471
+ export type JSONSchemaReferencesRecord = Record<string, JSONSchemaType>;
5472
+ export declare const REFERENCE_PREFIX = "#/$defs/";
5473
+ export type DocumentModelBehavior = 'default' | 'interface' | 'unique';
5474
+ export type DocumentModelInput = Omit<DocumentModel, 'version' | 'behavior' | 'interfaces' | 'schema' | 'fieldsMeta'> & {
5475
+ version?: string;
5476
+ behavior?: DocumentModelBehavior;
5477
+ uniqueFields?: Array<string>;
5478
+ interfaces?: Array<string>;
5479
+ schema?: JSONSchema.Object;
5480
+ fieldsMeta?: DocumentFieldsMeta;
5481
+ };
5482
+ export type DocumentModelNormalizerParams = {
5483
+ inputModel: DocumentModelInput;
5484
+ interfaceModels: Array<DocumentModel>;
5485
+ logger: Logger;
5486
+ normalizedInterfaceIDs: Array<string>;
5487
+ };
5488
+ export declare class DocumentModelNormalizer {
5489
+ #private;
5490
+ constructor(params: DocumentModelNormalizerParams);
5491
+ toDocumentModel(): DocumentModel;
5492
+ }
5493
+ export {};
4752
5494
  //# sourceMappingURL=document.d.ts.map