@aeolus-fleet/common 0.29.2 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/header/command-palette.d.ts +2 -0
- package/dist/header/command-palette.js +2 -1
- package/dist/header/command-palette.js.map +1 -1
- package/dist/rules/index.d.ts +2 -0
- package/dist/rules/index.js +2 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/page-size.d.ts +4 -0
- package/dist/rules/page-size.js +5 -0
- package/dist/rules/page-size.js.map +1 -0
- package/dist/rules/ship-filter.d.ts +102 -0
- package/dist/rules/ship-filter.js +99 -0
- package/dist/rules/ship-filter.js.map +1 -0
- package/dist/schemas/crew-request.d.ts +18 -0
- package/dist/schemas/crew-request.js +8 -0
- package/dist/schemas/crew-request.js.map +1 -1
- package/dist/schemas/delivery.d.ts +3 -1
- package/dist/schemas/delivery.js +6 -2
- package/dist/schemas/delivery.js.map +1 -1
- package/dist/schemas/fleet.d.ts +149 -3
- package/dist/schemas/fleet.js +25 -2
- package/dist/schemas/fleet.js.map +1 -1
- package/dist/schemas/health.d.ts +91 -0
- package/dist/schemas/health.js +17 -0
- package/dist/schemas/health.js.map +1 -1
- package/dist/schemas/history.d.ts +148 -130
- package/dist/schemas/history.js +10 -5
- package/dist/schemas/history.js.map +1 -1
- package/dist/schemas/index.d.ts +2 -0
- package/dist/schemas/index.js +2 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/label.d.ts +242 -6
- package/dist/schemas/label.js +81 -4
- package/dist/schemas/label.js.map +1 -1
- package/dist/schemas/needs-attention.d.ts +48 -30
- package/dist/schemas/needs-attention.js +8 -4
- package/dist/schemas/needs-attention.js.map +1 -1
- package/dist/schemas/network-rules-file.d.ts +301 -0
- package/dist/schemas/network-rules-file.js +97 -0
- package/dist/schemas/network-rules-file.js.map +1 -0
- package/dist/schemas/network.d.ts +72 -66
- package/dist/schemas/network.js +5 -4
- package/dist/schemas/network.js.map +1 -1
- package/dist/schemas/operator-inbox.d.ts +59 -36
- package/dist/schemas/operator-inbox.js +15 -4
- package/dist/schemas/operator-inbox.js.map +1 -1
- package/dist/schemas/page.d.ts +20 -0
- package/dist/schemas/page.js +20 -0
- package/dist/schemas/page.js.map +1 -0
- package/dist/schemas/question.d.ts +2 -2
- package/dist/schemas/question.js +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* The network rules file (docs/design/network-io): a fleet's applied rules
|
|
4
|
+
* and the labels they use, by name, so they leave one fleet and come back
|
|
5
|
+
* into it or another. Export writes it; import checks it, shows its
|
|
6
|
+
* differences with the fleet and fills the draft from it (decision 0035).
|
|
7
|
+
* A file of another version is refused, never migrated (decision 0013).
|
|
8
|
+
*/
|
|
9
|
+
export declare const NETWORK_RULES_FILE_FORMAT: "aeolus.network-rules";
|
|
10
|
+
export declare const NETWORK_RULES_FILE_VERSION: 1;
|
|
11
|
+
/**
|
|
12
|
+
* One term by name: a label by its key with a value text, `*` for any value
|
|
13
|
+
* or `#` for the same value as the other side's; or the owner by its ship's
|
|
14
|
+
* name, `*` or `#` (decisions 0034, 0045).
|
|
15
|
+
*/
|
|
16
|
+
export declare const fileTermSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
17
|
+
label: z.ZodString;
|
|
18
|
+
value: z.ZodString;
|
|
19
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
20
|
+
owner: z.ZodString;
|
|
21
|
+
}, z.core.$strip>]>;
|
|
22
|
+
export type FileTerm = z.infer<typeof fileTermSchema>;
|
|
23
|
+
export declare const fileRuleSchema: z.ZodObject<{
|
|
24
|
+
verb: z.ZodEnum<{
|
|
25
|
+
send: "send";
|
|
26
|
+
read: "read";
|
|
27
|
+
manage: "manage";
|
|
28
|
+
}>;
|
|
29
|
+
from: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
30
|
+
label: z.ZodString;
|
|
31
|
+
value: z.ZodString;
|
|
32
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
33
|
+
owner: z.ZodString;
|
|
34
|
+
}, z.core.$strip>]>>;
|
|
35
|
+
to: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
36
|
+
label: z.ZodString;
|
|
37
|
+
value: z.ZodString;
|
|
38
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
39
|
+
owner: z.ZodString;
|
|
40
|
+
}, z.core.$strip>]>>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export type FileRule = z.infer<typeof fileRuleSchema>;
|
|
43
|
+
/** A label the rules use: its key, its values and its definer, a ship by name or `installation`. */
|
|
44
|
+
export declare const fileLabelSchema: z.ZodObject<{
|
|
45
|
+
key: z.ZodString;
|
|
46
|
+
values: z.ZodArray<z.ZodString>;
|
|
47
|
+
definer: z.ZodString;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
export type FileLabel = z.infer<typeof fileLabelSchema>;
|
|
50
|
+
/**
|
|
51
|
+
* The file. `fleet` and `rulesVersion`, the settings version of the applied
|
|
52
|
+
* rules, tell two files apart; rules of null are none applied, all-to-all.
|
|
53
|
+
*/
|
|
54
|
+
export declare const networkRulesFileSchema: z.ZodObject<{
|
|
55
|
+
format: z.ZodLiteral<"aeolus.network-rules">;
|
|
56
|
+
version: z.ZodLiteral<1>;
|
|
57
|
+
exportedAt: z.ZodISODateTime;
|
|
58
|
+
fleet: z.ZodObject<{
|
|
59
|
+
id: z.ZodType<`flt_${string}`, unknown, z.core.$ZodTypeInternals<`flt_${string}`, unknown>>;
|
|
60
|
+
name: z.ZodString;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
rulesVersion: z.ZodInt;
|
|
63
|
+
labels: z.ZodArray<z.ZodObject<{
|
|
64
|
+
key: z.ZodString;
|
|
65
|
+
values: z.ZodArray<z.ZodString>;
|
|
66
|
+
definer: z.ZodString;
|
|
67
|
+
}, z.core.$strip>>;
|
|
68
|
+
rules: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
69
|
+
verb: z.ZodEnum<{
|
|
70
|
+
send: "send";
|
|
71
|
+
read: "read";
|
|
72
|
+
manage: "manage";
|
|
73
|
+
}>;
|
|
74
|
+
from: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
75
|
+
label: z.ZodString;
|
|
76
|
+
value: z.ZodString;
|
|
77
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
78
|
+
owner: z.ZodString;
|
|
79
|
+
}, z.core.$strip>]>>;
|
|
80
|
+
to: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
81
|
+
label: z.ZodString;
|
|
82
|
+
value: z.ZodString;
|
|
83
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
84
|
+
owner: z.ZodString;
|
|
85
|
+
}, z.core.$strip>]>>;
|
|
86
|
+
}, z.core.$strip>>>;
|
|
87
|
+
}, z.core.$strip>;
|
|
88
|
+
export type NetworkRulesFile = z.infer<typeof networkRulesFileSchema>;
|
|
89
|
+
/**
|
|
90
|
+
* Output of `fleet.exportNetworkRules` (fleet:network): the file, and each
|
|
91
|
+
* applied rule it left out, by its place in the applied list from 1, with
|
|
92
|
+
* why: a rule naming a label or ship the fleet no longer has matches no
|
|
93
|
+
* ship, so it does not travel, but never silently.
|
|
94
|
+
*/
|
|
95
|
+
export declare const exportNetworkRulesOutputSchema: z.ZodObject<{
|
|
96
|
+
file: z.ZodObject<{
|
|
97
|
+
format: z.ZodLiteral<"aeolus.network-rules">;
|
|
98
|
+
version: z.ZodLiteral<1>;
|
|
99
|
+
exportedAt: z.ZodISODateTime;
|
|
100
|
+
fleet: z.ZodObject<{
|
|
101
|
+
id: z.ZodType<`flt_${string}`, unknown, z.core.$ZodTypeInternals<`flt_${string}`, unknown>>;
|
|
102
|
+
name: z.ZodString;
|
|
103
|
+
}, z.core.$strip>;
|
|
104
|
+
rulesVersion: z.ZodInt;
|
|
105
|
+
labels: z.ZodArray<z.ZodObject<{
|
|
106
|
+
key: z.ZodString;
|
|
107
|
+
values: z.ZodArray<z.ZodString>;
|
|
108
|
+
definer: z.ZodString;
|
|
109
|
+
}, z.core.$strip>>;
|
|
110
|
+
rules: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
111
|
+
verb: z.ZodEnum<{
|
|
112
|
+
send: "send";
|
|
113
|
+
read: "read";
|
|
114
|
+
manage: "manage";
|
|
115
|
+
}>;
|
|
116
|
+
from: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
117
|
+
label: z.ZodString;
|
|
118
|
+
value: z.ZodString;
|
|
119
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
120
|
+
owner: z.ZodString;
|
|
121
|
+
}, z.core.$strip>]>>;
|
|
122
|
+
to: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
123
|
+
label: z.ZodString;
|
|
124
|
+
value: z.ZodString;
|
|
125
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
126
|
+
owner: z.ZodString;
|
|
127
|
+
}, z.core.$strip>]>>;
|
|
128
|
+
}, z.core.$strip>>>;
|
|
129
|
+
}, z.core.$strip>;
|
|
130
|
+
leftOut: z.ZodArray<z.ZodObject<{
|
|
131
|
+
rule: z.ZodInt;
|
|
132
|
+
reason: z.ZodString;
|
|
133
|
+
}, z.core.$strip>>;
|
|
134
|
+
}, z.core.$strip>;
|
|
135
|
+
export type ExportedNetworkRules = z.infer<typeof exportNetworkRulesOutputSchema>;
|
|
136
|
+
/** Input of `fleet.checkNetworkRulesFile` (fleet:network and labels:define). */
|
|
137
|
+
export declare const checkNetworkRulesFileInputSchema: z.ZodObject<{
|
|
138
|
+
file: z.ZodString;
|
|
139
|
+
}, z.core.$strip>;
|
|
140
|
+
/** The ways to resolve a difference (design network-io, Q9). */
|
|
141
|
+
export declare const DIFFERENCE_WAYS: readonly ["useExisting", "dropRules", "pickShip"];
|
|
142
|
+
export type DifferenceWay = (typeof DIFFERENCE_WAYS)[number];
|
|
143
|
+
/**
|
|
144
|
+
* A difference between the file and the fleet, with the ways offered for it:
|
|
145
|
+
* a key the fleet has with another definer (use the existing label, or drop
|
|
146
|
+
* the rules on it); a key the fleet has with other values (use the existing
|
|
147
|
+
* label when it has every value the rules name, else drop the rules naming a
|
|
148
|
+
* value it lacks); an owner's ship name no active ship has (pick an active
|
|
149
|
+
* ship, or drop the rules naming it).
|
|
150
|
+
*/
|
|
151
|
+
export declare const networkRulesDifferenceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
152
|
+
kind: z.ZodLiteral<"definer">;
|
|
153
|
+
key: z.ZodString;
|
|
154
|
+
fileDefiner: z.ZodString;
|
|
155
|
+
fleetDefiner: z.ZodString;
|
|
156
|
+
ways: z.ZodArray<z.ZodEnum<{
|
|
157
|
+
useExisting: "useExisting";
|
|
158
|
+
dropRules: "dropRules";
|
|
159
|
+
}>>;
|
|
160
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
161
|
+
kind: z.ZodLiteral<"values">;
|
|
162
|
+
key: z.ZodString;
|
|
163
|
+
fileValues: z.ZodArray<z.ZodString>;
|
|
164
|
+
fleetValues: z.ZodArray<z.ZodString>;
|
|
165
|
+
missingValues: z.ZodArray<z.ZodString>;
|
|
166
|
+
ways: z.ZodArray<z.ZodEnum<{
|
|
167
|
+
useExisting: "useExisting";
|
|
168
|
+
dropRules: "dropRules";
|
|
169
|
+
}>>;
|
|
170
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
171
|
+
kind: z.ZodLiteral<"ship">;
|
|
172
|
+
name: z.ZodString;
|
|
173
|
+
ways: z.ZodArray<z.ZodEnum<{
|
|
174
|
+
dropRules: "dropRules";
|
|
175
|
+
pickShip: "pickShip";
|
|
176
|
+
}>>;
|
|
177
|
+
}, z.core.$strip>], "kind">;
|
|
178
|
+
export type NetworkRulesDifference = z.infer<typeof networkRulesDifferenceSchema>;
|
|
179
|
+
/** Output of `fleet.checkNetworkRulesFile`: the file as read, the keys import would define, and every difference with the fleet. */
|
|
180
|
+
export declare const checkNetworkRulesFileOutputSchema: z.ZodObject<{
|
|
181
|
+
file: z.ZodObject<{
|
|
182
|
+
format: z.ZodLiteral<"aeolus.network-rules">;
|
|
183
|
+
version: z.ZodLiteral<1>;
|
|
184
|
+
exportedAt: z.ZodISODateTime;
|
|
185
|
+
fleet: z.ZodObject<{
|
|
186
|
+
id: z.ZodType<`flt_${string}`, unknown, z.core.$ZodTypeInternals<`flt_${string}`, unknown>>;
|
|
187
|
+
name: z.ZodString;
|
|
188
|
+
}, z.core.$strip>;
|
|
189
|
+
rulesVersion: z.ZodInt;
|
|
190
|
+
labels: z.ZodArray<z.ZodObject<{
|
|
191
|
+
key: z.ZodString;
|
|
192
|
+
values: z.ZodArray<z.ZodString>;
|
|
193
|
+
definer: z.ZodString;
|
|
194
|
+
}, z.core.$strip>>;
|
|
195
|
+
rules: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
196
|
+
verb: z.ZodEnum<{
|
|
197
|
+
send: "send";
|
|
198
|
+
read: "read";
|
|
199
|
+
manage: "manage";
|
|
200
|
+
}>;
|
|
201
|
+
from: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
202
|
+
label: z.ZodString;
|
|
203
|
+
value: z.ZodString;
|
|
204
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
205
|
+
owner: z.ZodString;
|
|
206
|
+
}, z.core.$strip>]>>;
|
|
207
|
+
to: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
208
|
+
label: z.ZodString;
|
|
209
|
+
value: z.ZodString;
|
|
210
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
211
|
+
owner: z.ZodString;
|
|
212
|
+
}, z.core.$strip>]>>;
|
|
213
|
+
}, z.core.$strip>>>;
|
|
214
|
+
}, z.core.$strip>;
|
|
215
|
+
newLabels: z.ZodArray<z.ZodString>;
|
|
216
|
+
differences: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
217
|
+
kind: z.ZodLiteral<"definer">;
|
|
218
|
+
key: z.ZodString;
|
|
219
|
+
fileDefiner: z.ZodString;
|
|
220
|
+
fleetDefiner: z.ZodString;
|
|
221
|
+
ways: z.ZodArray<z.ZodEnum<{
|
|
222
|
+
useExisting: "useExisting";
|
|
223
|
+
dropRules: "dropRules";
|
|
224
|
+
}>>;
|
|
225
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
226
|
+
kind: z.ZodLiteral<"values">;
|
|
227
|
+
key: z.ZodString;
|
|
228
|
+
fileValues: z.ZodArray<z.ZodString>;
|
|
229
|
+
fleetValues: z.ZodArray<z.ZodString>;
|
|
230
|
+
missingValues: z.ZodArray<z.ZodString>;
|
|
231
|
+
ways: z.ZodArray<z.ZodEnum<{
|
|
232
|
+
useExisting: "useExisting";
|
|
233
|
+
dropRules: "dropRules";
|
|
234
|
+
}>>;
|
|
235
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
236
|
+
kind: z.ZodLiteral<"ship">;
|
|
237
|
+
name: z.ZodString;
|
|
238
|
+
ways: z.ZodArray<z.ZodEnum<{
|
|
239
|
+
dropRules: "dropRules";
|
|
240
|
+
pickShip: "pickShip";
|
|
241
|
+
}>>;
|
|
242
|
+
}, z.core.$strip>], "kind">>;
|
|
243
|
+
}, z.core.$strip>;
|
|
244
|
+
export type CheckedNetworkRulesFile = z.infer<typeof checkNetworkRulesFileOutputSchema>;
|
|
245
|
+
/** How the person resolved one difference, named by its kind and its key or ship name. */
|
|
246
|
+
export declare const networkRulesResolutionSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
247
|
+
kind: z.ZodEnum<{
|
|
248
|
+
values: "values";
|
|
249
|
+
definer: "definer";
|
|
250
|
+
}>;
|
|
251
|
+
key: z.ZodString;
|
|
252
|
+
way: z.ZodEnum<{
|
|
253
|
+
useExisting: "useExisting";
|
|
254
|
+
dropRules: "dropRules";
|
|
255
|
+
}>;
|
|
256
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
257
|
+
kind: z.ZodLiteral<"ship">;
|
|
258
|
+
name: z.ZodString;
|
|
259
|
+
way: z.ZodLiteral<"pickShip">;
|
|
260
|
+
shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
261
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
262
|
+
kind: z.ZodLiteral<"ship">;
|
|
263
|
+
name: z.ZodString;
|
|
264
|
+
way: z.ZodLiteral<"dropRules">;
|
|
265
|
+
}, z.core.$strip>]>;
|
|
266
|
+
export type NetworkRulesResolution = z.infer<typeof networkRulesResolutionSchema>;
|
|
267
|
+
/**
|
|
268
|
+
* Input of `fleet.importNetworkRules` (fleet:network and labels:define): the
|
|
269
|
+
* file, the ship that defines the labels import creates, argo when none is
|
|
270
|
+
* named, and a resolution of every difference the check answered.
|
|
271
|
+
*/
|
|
272
|
+
export declare const importNetworkRulesInputSchema: z.ZodObject<{
|
|
273
|
+
file: z.ZodString;
|
|
274
|
+
definerShipId: z.ZodOptional<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
|
|
275
|
+
resolutions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
276
|
+
kind: z.ZodEnum<{
|
|
277
|
+
values: "values";
|
|
278
|
+
definer: "definer";
|
|
279
|
+
}>;
|
|
280
|
+
key: z.ZodString;
|
|
281
|
+
way: z.ZodEnum<{
|
|
282
|
+
useExisting: "useExisting";
|
|
283
|
+
dropRules: "dropRules";
|
|
284
|
+
}>;
|
|
285
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
286
|
+
kind: z.ZodLiteral<"ship">;
|
|
287
|
+
name: z.ZodString;
|
|
288
|
+
way: z.ZodLiteral<"pickShip">;
|
|
289
|
+
shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
290
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
291
|
+
kind: z.ZodLiteral<"ship">;
|
|
292
|
+
name: z.ZodString;
|
|
293
|
+
way: z.ZodLiteral<"dropRules">;
|
|
294
|
+
}, z.core.$strip>]>>;
|
|
295
|
+
}, z.core.$strip>;
|
|
296
|
+
export type ImportNetworkRulesInput = z.infer<typeof importNetworkRulesInputSchema>;
|
|
297
|
+
/** Output of `fleet.importNetworkRules`: the settings version the draft was saved against, which its apply names, and the keys it defined. */
|
|
298
|
+
export declare const importNetworkRulesOutputSchema: z.ZodObject<{
|
|
299
|
+
savedAgainstVersion: z.ZodInt;
|
|
300
|
+
definedLabels: z.ZodArray<z.ZodString>;
|
|
301
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { idSchema } from '../ids/index.js';
|
|
3
|
+
import { PAYLOAD_MAX_BYTES, payloadBytes } from '../rules/payload.js';
|
|
4
|
+
import { NETWORK_VERBS } from './network.js';
|
|
5
|
+
/**
|
|
6
|
+
* The network rules file (docs/design/network-io): a fleet's applied rules
|
|
7
|
+
* and the labels they use, by name, so they leave one fleet and come back
|
|
8
|
+
* into it or another. Export writes it; import checks it, shows its
|
|
9
|
+
* differences with the fleet and fills the draft from it (decision 0035).
|
|
10
|
+
* A file of another version is refused, never migrated (decision 0013).
|
|
11
|
+
*/
|
|
12
|
+
export const NETWORK_RULES_FILE_FORMAT = 'aeolus.network-rules';
|
|
13
|
+
export const NETWORK_RULES_FILE_VERSION = 1;
|
|
14
|
+
/**
|
|
15
|
+
* One term by name: a label by its key with a value text, `*` for any value
|
|
16
|
+
* or `#` for the same value as the other side's; or the owner by its ship's
|
|
17
|
+
* name, `*` or `#` (decisions 0034, 0045).
|
|
18
|
+
*/
|
|
19
|
+
export const fileTermSchema = z.union([z.object({ label: z.string(), value: z.string() }), z.object({ owner: z.string() })]);
|
|
20
|
+
export const fileRuleSchema = z.object({ verb: z.enum(NETWORK_VERBS), from: z.array(fileTermSchema), to: z.array(fileTermSchema) });
|
|
21
|
+
/** A label the rules use: its key, its values and its definer, a ship by name or `installation`. */
|
|
22
|
+
export const fileLabelSchema = z.object({ key: z.string(), values: z.array(z.string()), definer: z.string() });
|
|
23
|
+
/**
|
|
24
|
+
* The file. `fleet` and `rulesVersion`, the settings version of the applied
|
|
25
|
+
* rules, tell two files apart; rules of null are none applied, all-to-all.
|
|
26
|
+
*/
|
|
27
|
+
export const networkRulesFileSchema = z.object({
|
|
28
|
+
format: z.literal(NETWORK_RULES_FILE_FORMAT),
|
|
29
|
+
version: z.literal(NETWORK_RULES_FILE_VERSION),
|
|
30
|
+
exportedAt: z.iso.datetime(),
|
|
31
|
+
fleet: z.object({ id: idSchema('fleet'), name: z.string() }),
|
|
32
|
+
rulesVersion: z.int().min(0),
|
|
33
|
+
labels: z.array(fileLabelSchema),
|
|
34
|
+
rules: z.array(fileRuleSchema).nullable(),
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Output of `fleet.exportNetworkRules` (fleet:network): the file, and each
|
|
38
|
+
* applied rule it left out, by its place in the applied list from 1, with
|
|
39
|
+
* why: a rule naming a label or ship the fleet no longer has matches no
|
|
40
|
+
* ship, so it does not travel, but never silently.
|
|
41
|
+
*/
|
|
42
|
+
export const exportNetworkRulesOutputSchema = z.object({
|
|
43
|
+
file: networkRulesFileSchema,
|
|
44
|
+
leftOut: z.array(z.object({ rule: z.int().min(1), reason: z.string() })),
|
|
45
|
+
});
|
|
46
|
+
/** The file as attached or pasted: its text, parsed by the server, of at most 64 KB (decision 0006). */
|
|
47
|
+
const fileTextSchema = z.string().refine((text) => payloadBytes(text) <= PAYLOAD_MAX_BYTES, `A network rules file is at most ${String(PAYLOAD_MAX_BYTES)} bytes (64 KB) in UTF-8`);
|
|
48
|
+
/** Input of `fleet.checkNetworkRulesFile` (fleet:network and labels:define). */
|
|
49
|
+
export const checkNetworkRulesFileInputSchema = z.object({ file: fileTextSchema });
|
|
50
|
+
/** The ways to resolve a difference (design network-io, Q9). */
|
|
51
|
+
export const DIFFERENCE_WAYS = ['useExisting', 'dropRules', 'pickShip'];
|
|
52
|
+
/**
|
|
53
|
+
* A difference between the file and the fleet, with the ways offered for it:
|
|
54
|
+
* a key the fleet has with another definer (use the existing label, or drop
|
|
55
|
+
* the rules on it); a key the fleet has with other values (use the existing
|
|
56
|
+
* label when it has every value the rules name, else drop the rules naming a
|
|
57
|
+
* value it lacks); an owner's ship name no active ship has (pick an active
|
|
58
|
+
* ship, or drop the rules naming it).
|
|
59
|
+
*/
|
|
60
|
+
export const networkRulesDifferenceSchema = z.discriminatedUnion('kind', [
|
|
61
|
+
z.object({ kind: z.literal('definer'), key: z.string(), fileDefiner: z.string(), fleetDefiner: z.string(), ways: z.array(z.enum(['useExisting', 'dropRules'])) }),
|
|
62
|
+
z.object({
|
|
63
|
+
kind: z.literal('values'),
|
|
64
|
+
key: z.string(),
|
|
65
|
+
fileValues: z.array(z.string()),
|
|
66
|
+
fleetValues: z.array(z.string()),
|
|
67
|
+
/** The values the rules name that the fleet's label lacks. */
|
|
68
|
+
missingValues: z.array(z.string()),
|
|
69
|
+
ways: z.array(z.enum(['useExisting', 'dropRules'])),
|
|
70
|
+
}),
|
|
71
|
+
z.object({ kind: z.literal('ship'), name: z.string(), ways: z.array(z.enum(['pickShip', 'dropRules'])) }),
|
|
72
|
+
]);
|
|
73
|
+
/** Output of `fleet.checkNetworkRulesFile`: the file as read, the keys import would define, and every difference with the fleet. */
|
|
74
|
+
export const checkNetworkRulesFileOutputSchema = z.object({
|
|
75
|
+
file: networkRulesFileSchema,
|
|
76
|
+
newLabels: z.array(z.string()),
|
|
77
|
+
differences: z.array(networkRulesDifferenceSchema),
|
|
78
|
+
});
|
|
79
|
+
/** How the person resolved one difference, named by its kind and its key or ship name. */
|
|
80
|
+
export const networkRulesResolutionSchema = z.union([
|
|
81
|
+
z.object({ kind: z.enum(['definer', 'values']), key: z.string(), way: z.enum(['useExisting', 'dropRules']) }),
|
|
82
|
+
z.object({ kind: z.literal('ship'), name: z.string(), way: z.literal('pickShip'), shipId: idSchema('ship') }),
|
|
83
|
+
z.object({ kind: z.literal('ship'), name: z.string(), way: z.literal('dropRules') }),
|
|
84
|
+
]);
|
|
85
|
+
/**
|
|
86
|
+
* Input of `fleet.importNetworkRules` (fleet:network and labels:define): the
|
|
87
|
+
* file, the ship that defines the labels import creates, argo when none is
|
|
88
|
+
* named, and a resolution of every difference the check answered.
|
|
89
|
+
*/
|
|
90
|
+
export const importNetworkRulesInputSchema = z.object({
|
|
91
|
+
file: fileTextSchema,
|
|
92
|
+
definerShipId: idSchema('ship').optional(),
|
|
93
|
+
resolutions: z.array(networkRulesResolutionSchema),
|
|
94
|
+
});
|
|
95
|
+
/** Output of `fleet.importNetworkRules`: the settings version the draft was saved against, which its apply names, and the keys it defined. */
|
|
96
|
+
export const importNetworkRulesOutputSchema = z.object({ savedAgainstVersion: z.int().min(0), definedLabels: z.array(z.string()) });
|
|
97
|
+
//# sourceMappingURL=network-rules-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-rules-file.js","sourceRoot":"","sources":["../../src/schemas/network-rules-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,6 @@ import { z } from 'zod';
|
|
|
10
10
|
export declare const NETWORK_RULES_MAX = 200;
|
|
11
11
|
/** The most rules one ship may declare (decision 0037). */
|
|
12
12
|
export declare const DECLARED_NETWORK_RULES_MAX = 20;
|
|
13
|
-
/** The most refusals one read of them answers: the latest. */
|
|
14
|
-
export declare const REACH_REFUSALS_READ_MAX = 100;
|
|
15
13
|
/** A term's value that is any value of its label: the ship carries the label. */
|
|
16
14
|
export declare const ANY_LABEL_VALUE: "*";
|
|
17
15
|
/** A term's value that is any value of its label the ship on the other side of the rule carries too. */
|
|
@@ -486,57 +484,17 @@ export declare const reachRefusalSchema: z.ZodObject<{
|
|
|
486
484
|
settingsVersion: z.ZodInt;
|
|
487
485
|
}, z.core.$strip>;
|
|
488
486
|
export type ReachRefusal = z.infer<typeof reachRefusalSchema>;
|
|
489
|
-
/**
|
|
490
|
-
export declare const
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
value: z.ZodString;
|
|
501
|
-
}, z.core.$strip>>;
|
|
502
|
-
owner: z.ZodNullable<z.ZodObject<{
|
|
503
|
-
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
504
|
-
name: z.ZodString;
|
|
505
|
-
}, z.core.$strip>>;
|
|
506
|
-
kind: z.ZodLiteral<"ship">;
|
|
507
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
508
|
-
kind: z.ZodLiteral<"account">;
|
|
509
|
-
accountId: z.core.$ZodBranded<z.ZodString, "AccountId", "out">;
|
|
510
|
-
labels: z.ZodArray<z.ZodObject<{
|
|
511
|
-
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
512
|
-
key: z.ZodString;
|
|
513
|
-
valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
|
|
514
|
-
value: z.ZodString;
|
|
515
|
-
}, z.core.$strip>>;
|
|
516
|
-
personShip: z.ZodNullable<z.ZodObject<{
|
|
517
|
-
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
518
|
-
name: z.ZodString;
|
|
519
|
-
}, z.core.$strip>>;
|
|
520
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
521
|
-
kind: z.ZodLiteral<"installation">;
|
|
522
|
-
}, z.core.$strip>], "kind">;
|
|
523
|
-
askedBy: z.ZodNullable<z.ZodObject<{
|
|
524
|
-
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
525
|
-
name: z.ZodString;
|
|
526
|
-
labels: z.ZodArray<z.ZodObject<{
|
|
527
|
-
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
528
|
-
key: z.ZodString;
|
|
529
|
-
valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
|
|
530
|
-
value: z.ZodString;
|
|
531
|
-
}, z.core.$strip>>;
|
|
532
|
-
owner: z.ZodNullable<z.ZodObject<{
|
|
533
|
-
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
534
|
-
name: z.ZodString;
|
|
535
|
-
}, z.core.$strip>>;
|
|
536
|
-
}, z.core.$strip>>;
|
|
537
|
-
recipient: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
538
|
-
kind: z.ZodLiteral<"ship">;
|
|
539
|
-
ship: z.ZodObject<{
|
|
487
|
+
/** Input of `fleet.reachRefusals`: the cursor and size of a page. */
|
|
488
|
+
export declare const reachRefusalsInputSchema: z.ZodObject<{
|
|
489
|
+
cursor: z.ZodOptional<z.ZodType<`rfs_${string}`, unknown, z.core.$ZodTypeInternals<`rfs_${string}`, unknown>>>;
|
|
490
|
+
limit: z.ZodOptional<z.ZodInt>;
|
|
491
|
+
}, z.core.$strip>;
|
|
492
|
+
/** Output of `fleet.reachRefusals` (fleet:explain): a page of the fleet's refusals, newest first. */
|
|
493
|
+
export declare const reachRefusalsOutputSchema: z.ZodObject<{
|
|
494
|
+
items: z.ZodArray<z.ZodObject<{
|
|
495
|
+
id: z.ZodType<`rfs_${string}`, unknown, z.core.$ZodTypeInternals<`rfs_${string}`, unknown>>;
|
|
496
|
+
at: z.ZodISODateTime;
|
|
497
|
+
sender: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
540
498
|
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
541
499
|
name: z.ZodString;
|
|
542
500
|
labels: z.ZodArray<z.ZodObject<{
|
|
@@ -549,11 +507,24 @@ export declare const reachRefusalsOutputSchema: z.ZodArray<z.ZodObject<{
|
|
|
549
507
|
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
550
508
|
name: z.ZodString;
|
|
551
509
|
}, z.core.$strip>>;
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
510
|
+
kind: z.ZodLiteral<"ship">;
|
|
511
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
512
|
+
kind: z.ZodLiteral<"account">;
|
|
513
|
+
accountId: z.core.$ZodBranded<z.ZodString, "AccountId", "out">;
|
|
514
|
+
labels: z.ZodArray<z.ZodObject<{
|
|
515
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
516
|
+
key: z.ZodString;
|
|
517
|
+
valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
|
|
518
|
+
value: z.ZodString;
|
|
519
|
+
}, z.core.$strip>>;
|
|
520
|
+
personShip: z.ZodNullable<z.ZodObject<{
|
|
521
|
+
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
522
|
+
name: z.ZodString;
|
|
523
|
+
}, z.core.$strip>>;
|
|
524
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
525
|
+
kind: z.ZodLiteral<"installation">;
|
|
526
|
+
}, z.core.$strip>], "kind">;
|
|
527
|
+
askedBy: z.ZodNullable<z.ZodObject<{
|
|
557
528
|
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
558
529
|
name: z.ZodString;
|
|
559
530
|
labels: z.ZodArray<z.ZodObject<{
|
|
@@ -567,14 +538,49 @@ export declare const reachRefusalsOutputSchema: z.ZodArray<z.ZodObject<{
|
|
|
567
538
|
name: z.ZodString;
|
|
568
539
|
}, z.core.$strip>>;
|
|
569
540
|
}, z.core.$strip>>;
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
541
|
+
recipient: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
542
|
+
kind: z.ZodLiteral<"ship">;
|
|
543
|
+
ship: z.ZodObject<{
|
|
544
|
+
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
545
|
+
name: z.ZodString;
|
|
546
|
+
labels: z.ZodArray<z.ZodObject<{
|
|
547
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
548
|
+
key: z.ZodString;
|
|
549
|
+
valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
|
|
550
|
+
value: z.ZodString;
|
|
551
|
+
}, z.core.$strip>>;
|
|
552
|
+
owner: z.ZodNullable<z.ZodObject<{
|
|
553
|
+
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
554
|
+
name: z.ZodString;
|
|
555
|
+
}, z.core.$strip>>;
|
|
556
|
+
}, z.core.$strip>;
|
|
557
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
558
|
+
kind: z.ZodLiteral<"type">;
|
|
559
|
+
type: z.ZodString;
|
|
560
|
+
ships: z.ZodArray<z.ZodObject<{
|
|
561
|
+
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
562
|
+
name: z.ZodString;
|
|
563
|
+
labels: z.ZodArray<z.ZodObject<{
|
|
564
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
565
|
+
key: z.ZodString;
|
|
566
|
+
valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
|
|
567
|
+
value: z.ZodString;
|
|
568
|
+
}, z.core.$strip>>;
|
|
569
|
+
owner: z.ZodNullable<z.ZodObject<{
|
|
570
|
+
id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
571
|
+
name: z.ZodString;
|
|
572
|
+
}, z.core.$strip>>;
|
|
573
|
+
}, z.core.$strip>>;
|
|
574
|
+
}, z.core.$strip>], "kind">;
|
|
575
|
+
verb: z.ZodEnum<{
|
|
576
|
+
send: "send";
|
|
577
|
+
read: "read";
|
|
578
|
+
manage: "manage";
|
|
579
|
+
}>;
|
|
580
|
+
settingsVersion: z.ZodInt;
|
|
581
|
+
}, z.core.$strip>>;
|
|
582
|
+
nextCursor: z.ZodNullable<z.ZodType<`rfs_${string}`, unknown, z.core.$ZodTypeInternals<`rfs_${string}`, unknown>>>;
|
|
583
|
+
}, z.core.$strip>;
|
|
578
584
|
/** Input of `fleet.explainReach` (fleet:explain): the ship to explain from, the one ship asked about or none for every ship, and the rules to explain against: the applied ones, or the draft. */
|
|
579
585
|
export declare const explainReachInputSchema: z.ZodObject<{
|
|
580
586
|
fromShipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
package/dist/schemas/network.js
CHANGED
|
@@ -2,6 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
import { idSchema } from '../ids/index.js';
|
|
3
3
|
import { accountIdSchema } from './account-token.js';
|
|
4
4
|
import { carriedLabelSchema } from './label.js';
|
|
5
|
+
import { pageInputOf, pageOutputOf } from './page.js';
|
|
5
6
|
/**
|
|
6
7
|
* Network rules (decision 0034): which ships may send to, read or manage
|
|
7
8
|
* which. A rule names its verb and says that the ships matching one selector
|
|
@@ -13,8 +14,6 @@ import { carriedLabelSchema } from './label.js';
|
|
|
13
14
|
export const NETWORK_RULES_MAX = 200;
|
|
14
15
|
/** The most rules one ship may declare (decision 0037). */
|
|
15
16
|
export const DECLARED_NETWORK_RULES_MAX = 20;
|
|
16
|
-
/** The most refusals one read of them answers: the latest. */
|
|
17
|
-
export const REACH_REFUSALS_READ_MAX = 100;
|
|
18
17
|
/** A term's value that is any value of its label: the ship carries the label. */
|
|
19
18
|
export const ANY_LABEL_VALUE = '*';
|
|
20
19
|
/** A term's value that is any value of its label the ship on the other side of the rule carries too. */
|
|
@@ -132,8 +131,10 @@ export const reachRefusalSchema = z.object({
|
|
|
132
131
|
verb: z.enum(NETWORK_VERBS),
|
|
133
132
|
settingsVersion: z.int().min(1),
|
|
134
133
|
});
|
|
135
|
-
/**
|
|
136
|
-
export const
|
|
134
|
+
/** Input of `fleet.reachRefusals`: the cursor and size of a page. */
|
|
135
|
+
export const reachRefusalsInputSchema = pageInputOf(idSchema('reachRefusal'));
|
|
136
|
+
/** Output of `fleet.reachRefusals` (fleet:explain): a page of the fleet's refusals, newest first. */
|
|
137
|
+
export const reachRefusalsOutputSchema = pageOutputOf(reachRefusalSchema, idSchema('reachRefusal'));
|
|
137
138
|
/** Input of `fleet.explainReach` (fleet:explain): the ship to explain from, the one ship asked about or none for every ship, and the rules to explain against: the applied ones, or the draft. */
|
|
138
139
|
export const explainReachInputSchema = z.object({ fromShipId: idSchema('ship'), toShipId: idSchema('ship').optional(), against: z.enum(['applied', 'draft']).optional() });
|
|
139
140
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/schemas/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/schemas/network.ts"],"names":[],"mappings":"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"}
|