placementt-core 1.400.1115 → 1.400.1117
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/callables/index.d.ts +1 -0
- package/lib/callables/index.js +1 -0
- package/lib/callables/index.js.map +1 -1
- package/lib/callables/misSync.d.ts +172 -0
- package/lib/callables/misSync.js +63 -0
- package/lib/callables/misSync.js.map +1 -0
- package/lib/callables/registry.d.ts +316 -0
- package/lib/callables/registry.js +19 -1
- package/lib/callables/registry.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/misSync.d.ts +360 -0
- package/lib/misSync.js +359 -0
- package/lib/misSync.js.map +1 -0
- package/lib/misSync.test.d.ts +1 -0
- package/lib/misSync.test.js +128 -0
- package/lib/misSync.test.js.map +1 -0
- package/lib/typeDefinitions.d.ts +9 -1
- package/lib/typeDefinitions.js.map +1 -1
- package/package.json +1 -1
- package/src/callables/index.ts +1 -0
- package/src/callables/misSync.ts +62 -0
- package/src/callables/registry.ts +19 -1
- package/src/index.ts +1 -0
- package/src/misSync.test.ts +157 -0
- package/src/misSync.ts +588 -0
- package/src/typeDefinitions.ts +13 -1
- package/watch-local.js +38 -1
package/lib/callables/index.d.ts
CHANGED
package/lib/callables/index.js
CHANGED
|
@@ -27,4 +27,5 @@ __exportStar(require("./billing"), exports);
|
|
|
27
27
|
__exportStar(require("./hubImpactReport"), exports);
|
|
28
28
|
__exportStar(require("./e2e"), exports);
|
|
29
29
|
__exportStar(require("./wonde"), exports);
|
|
30
|
+
__exportStar(require("./misSync"), exports);
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/callables/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,uDAAqC;AACrC,8CAA4B;AAC5B,2CAAyB;AACzB,6CAA2B;AAC3B,oDAAkC;AAClC,uCAAqB;AACrB,oDAAkC;AAClC,4CAA0B;AAC1B,oDAAkC;AAClC,wCAAsB;AACtB,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/callables/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,uDAAqC;AACrC,8CAA4B;AAC5B,2CAAyB;AACzB,6CAA2B;AAC3B,oDAAkC;AAClC,uCAAqB;AACrB,oDAAkC;AAClC,4CAA0B;AAC1B,oDAAkC;AAClC,wCAAsB;AACtB,0CAAwB;AACxB,4CAA0B"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Contracts for the MIS file sync
|
|
4
|
+
* (`Placementt-Backend/functions/src/misSync/index.ts`).
|
|
5
|
+
*
|
|
6
|
+
* Every callable here needs a staff member of the institute with permission to
|
|
7
|
+
* add students. The config doc itself is read-only to the client: all writes go
|
|
8
|
+
* through `saveConfig` so these rules are enforced in one place.
|
|
9
|
+
*/
|
|
10
|
+
export declare const misSyncCallables: {
|
|
11
|
+
"misSync-saveConfig": {
|
|
12
|
+
request: z.ZodObject<z.objectUtil.extendShape<{
|
|
13
|
+
enabled: z.ZodBoolean;
|
|
14
|
+
method: z.ZodEnum<["email", "api"]>;
|
|
15
|
+
allowedSenders: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
|
|
16
|
+
studentEmailDomains: z.ZodArray<z.ZodString, "many">;
|
|
17
|
+
columnMapping: z.ZodRecord<z.ZodEnum<["mis_student_id", "first_name", "last_name", "email", "year_group", "course", "tutor_group", "status", "start_date", "leave_date"]>, z.ZodString>;
|
|
18
|
+
inactiveStatuses: z.ZodArray<z.ZodString, "many">;
|
|
19
|
+
requireApproval: z.ZodBoolean;
|
|
20
|
+
maxArchivePercent: z.ZodNumber;
|
|
21
|
+
maxRowDropPercent: z.ZodNumber;
|
|
22
|
+
staleAfterHours: z.ZodNumber;
|
|
23
|
+
retentionDays: z.ZodNumber;
|
|
24
|
+
alertEmails: z.ZodArray<z.ZodString, "many">;
|
|
25
|
+
}, {
|
|
26
|
+
oId: z.ZodString;
|
|
27
|
+
}>, "strip", z.ZodTypeAny, {
|
|
28
|
+
method: "email" | "api";
|
|
29
|
+
oId: string;
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
allowedSenders: string[];
|
|
32
|
+
studentEmailDomains: string[];
|
|
33
|
+
columnMapping: Partial<Record<"email" | "status" | "mis_student_id" | "first_name" | "last_name" | "year_group" | "course" | "tutor_group" | "start_date" | "leave_date", string>>;
|
|
34
|
+
inactiveStatuses: string[];
|
|
35
|
+
requireApproval: boolean;
|
|
36
|
+
maxArchivePercent: number;
|
|
37
|
+
maxRowDropPercent: number;
|
|
38
|
+
staleAfterHours: number;
|
|
39
|
+
retentionDays: number;
|
|
40
|
+
alertEmails: string[];
|
|
41
|
+
}, {
|
|
42
|
+
method: "email" | "api";
|
|
43
|
+
oId: string;
|
|
44
|
+
enabled: boolean;
|
|
45
|
+
allowedSenders: string[];
|
|
46
|
+
studentEmailDomains: string[];
|
|
47
|
+
columnMapping: Partial<Record<"email" | "status" | "mis_student_id" | "first_name" | "last_name" | "year_group" | "course" | "tutor_group" | "start_date" | "leave_date", string>>;
|
|
48
|
+
inactiveStatuses: string[];
|
|
49
|
+
requireApproval: boolean;
|
|
50
|
+
maxArchivePercent: number;
|
|
51
|
+
maxRowDropPercent: number;
|
|
52
|
+
staleAfterHours: number;
|
|
53
|
+
retentionDays: number;
|
|
54
|
+
alertEmails: string[];
|
|
55
|
+
}>;
|
|
56
|
+
response: z.ZodObject<{
|
|
57
|
+
/** The address the college should email files to. */
|
|
58
|
+
inboundAddress: z.ZodString;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
inboundAddress: string;
|
|
61
|
+
}, {
|
|
62
|
+
inboundAddress: string;
|
|
63
|
+
}>;
|
|
64
|
+
};
|
|
65
|
+
"misSync-rotateInboundAddress": {
|
|
66
|
+
request: z.ZodObject<{
|
|
67
|
+
oId: z.ZodString;
|
|
68
|
+
}, "strip", z.ZodTypeAny, {
|
|
69
|
+
oId: string;
|
|
70
|
+
}, {
|
|
71
|
+
oId: string;
|
|
72
|
+
}>;
|
|
73
|
+
response: z.ZodObject<{
|
|
74
|
+
inboundAddress: z.ZodString;
|
|
75
|
+
}, "strip", z.ZodTypeAny, {
|
|
76
|
+
inboundAddress: string;
|
|
77
|
+
}, {
|
|
78
|
+
inboundAddress: string;
|
|
79
|
+
}>;
|
|
80
|
+
};
|
|
81
|
+
"misSync-createApiKey": {
|
|
82
|
+
request: z.ZodObject<{
|
|
83
|
+
oId: z.ZodString;
|
|
84
|
+
label: z.ZodString;
|
|
85
|
+
/** Revoke this key in the same step, for a rotation. */
|
|
86
|
+
replacesKeyId: z.ZodOptional<z.ZodString>;
|
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
|
88
|
+
label: string;
|
|
89
|
+
oId: string;
|
|
90
|
+
replacesKeyId?: string | undefined;
|
|
91
|
+
}, {
|
|
92
|
+
label: string;
|
|
93
|
+
oId: string;
|
|
94
|
+
replacesKeyId?: string | undefined;
|
|
95
|
+
}>;
|
|
96
|
+
response: z.ZodObject<{
|
|
97
|
+
keyId: z.ZodString;
|
|
98
|
+
/** Shown once. Only a hash is stored. */
|
|
99
|
+
apiKey: z.ZodString;
|
|
100
|
+
}, "strip", z.ZodTypeAny, {
|
|
101
|
+
apiKey: string;
|
|
102
|
+
keyId: string;
|
|
103
|
+
}, {
|
|
104
|
+
apiKey: string;
|
|
105
|
+
keyId: string;
|
|
106
|
+
}>;
|
|
107
|
+
};
|
|
108
|
+
"misSync-revokeApiKey": {
|
|
109
|
+
request: z.ZodObject<{
|
|
110
|
+
oId: z.ZodString;
|
|
111
|
+
keyId: z.ZodString;
|
|
112
|
+
}, "strip", z.ZodTypeAny, {
|
|
113
|
+
oId: string;
|
|
114
|
+
keyId: string;
|
|
115
|
+
}, {
|
|
116
|
+
oId: string;
|
|
117
|
+
keyId: string;
|
|
118
|
+
}>;
|
|
119
|
+
response: z.ZodObject<{
|
|
120
|
+
revoked: z.ZodBoolean;
|
|
121
|
+
}, "strip", z.ZodTypeAny, {
|
|
122
|
+
revoked: boolean;
|
|
123
|
+
}, {
|
|
124
|
+
revoked: boolean;
|
|
125
|
+
}>;
|
|
126
|
+
};
|
|
127
|
+
"misSync-approveRun": {
|
|
128
|
+
request: z.ZodObject<{
|
|
129
|
+
oId: z.ZodString;
|
|
130
|
+
runId: z.ZodString;
|
|
131
|
+
/** Must be true to approve a run a safety stop blocked. */
|
|
132
|
+
acknowledgeBlocks: z.ZodDefault<z.ZodBoolean>;
|
|
133
|
+
}, "strip", z.ZodTypeAny, {
|
|
134
|
+
oId: string;
|
|
135
|
+
runId: string;
|
|
136
|
+
acknowledgeBlocks: boolean;
|
|
137
|
+
}, {
|
|
138
|
+
oId: string;
|
|
139
|
+
runId: string;
|
|
140
|
+
acknowledgeBlocks?: boolean | undefined;
|
|
141
|
+
}>;
|
|
142
|
+
response: z.ZodObject<{
|
|
143
|
+
status: z.ZodString;
|
|
144
|
+
}, "strip", z.ZodTypeAny, {
|
|
145
|
+
status: string;
|
|
146
|
+
}, {
|
|
147
|
+
status: string;
|
|
148
|
+
}>;
|
|
149
|
+
};
|
|
150
|
+
"misSync-rejectRun": {
|
|
151
|
+
request: z.ZodObject<{
|
|
152
|
+
oId: z.ZodString;
|
|
153
|
+
runId: z.ZodString;
|
|
154
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
155
|
+
}, "strip", z.ZodTypeAny, {
|
|
156
|
+
oId: string;
|
|
157
|
+
runId: string;
|
|
158
|
+
reason?: string | undefined;
|
|
159
|
+
}, {
|
|
160
|
+
oId: string;
|
|
161
|
+
runId: string;
|
|
162
|
+
reason?: string | undefined;
|
|
163
|
+
}>;
|
|
164
|
+
response: z.ZodObject<{
|
|
165
|
+
status: z.ZodString;
|
|
166
|
+
}, "strip", z.ZodTypeAny, {
|
|
167
|
+
status: string;
|
|
168
|
+
}, {
|
|
169
|
+
status: string;
|
|
170
|
+
}>;
|
|
171
|
+
};
|
|
172
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.misSyncCallables = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const misSync_1 = require("../misSync");
|
|
6
|
+
const oId = zod_1.z.string().min(1).max(128);
|
|
7
|
+
const runId = zod_1.z.string().min(1).max(128);
|
|
8
|
+
/**
|
|
9
|
+
* Contracts for the MIS file sync
|
|
10
|
+
* (`Placementt-Backend/functions/src/misSync/index.ts`).
|
|
11
|
+
*
|
|
12
|
+
* Every callable here needs a staff member of the institute with permission to
|
|
13
|
+
* add students. The config doc itself is read-only to the client: all writes go
|
|
14
|
+
* through `saveConfig` so these rules are enforced in one place.
|
|
15
|
+
*/
|
|
16
|
+
exports.misSyncCallables = {
|
|
17
|
+
"misSync-saveConfig": {
|
|
18
|
+
request: misSync_1.misSyncSettingsSchema.extend({ oId }),
|
|
19
|
+
response: zod_1.z.object({
|
|
20
|
+
/** The address the college should email files to. */
|
|
21
|
+
inboundAddress: zod_1.z.string(),
|
|
22
|
+
}),
|
|
23
|
+
},
|
|
24
|
+
"misSync-rotateInboundAddress": {
|
|
25
|
+
request: zod_1.z.object({ oId }),
|
|
26
|
+
response: zod_1.z.object({ inboundAddress: zod_1.z.string() }),
|
|
27
|
+
},
|
|
28
|
+
"misSync-createApiKey": {
|
|
29
|
+
request: zod_1.z.object({
|
|
30
|
+
oId,
|
|
31
|
+
label: zod_1.z.string().trim().min(1).max(80),
|
|
32
|
+
/** Revoke this key in the same step, for a rotation. */
|
|
33
|
+
replacesKeyId: zod_1.z.string().min(1).max(64).optional(),
|
|
34
|
+
}),
|
|
35
|
+
response: zod_1.z.object({
|
|
36
|
+
keyId: zod_1.z.string(),
|
|
37
|
+
/** Shown once. Only a hash is stored. */
|
|
38
|
+
apiKey: zod_1.z.string(),
|
|
39
|
+
}),
|
|
40
|
+
},
|
|
41
|
+
"misSync-revokeApiKey": {
|
|
42
|
+
request: zod_1.z.object({ oId, keyId: zod_1.z.string().min(1).max(64) }),
|
|
43
|
+
response: zod_1.z.object({ revoked: zod_1.z.boolean() }),
|
|
44
|
+
},
|
|
45
|
+
"misSync-approveRun": {
|
|
46
|
+
request: zod_1.z.object({
|
|
47
|
+
oId,
|
|
48
|
+
runId,
|
|
49
|
+
/** Must be true to approve a run a safety stop blocked. */
|
|
50
|
+
acknowledgeBlocks: zod_1.z.boolean().default(false),
|
|
51
|
+
}),
|
|
52
|
+
response: zod_1.z.object({ status: zod_1.z.string() }),
|
|
53
|
+
},
|
|
54
|
+
"misSync-rejectRun": {
|
|
55
|
+
request: zod_1.z.object({
|
|
56
|
+
oId,
|
|
57
|
+
runId,
|
|
58
|
+
reason: zod_1.z.string().trim().max(500).optional(),
|
|
59
|
+
}),
|
|
60
|
+
response: zod_1.z.object({ status: zod_1.z.string() }),
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=misSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misSync.js","sourceRoot":"","sources":["../../src/callables/misSync.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AAEtB,wCAAiD;AAEjD,MAAM,GAAG,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,KAAK,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzC;;;;;;;GAOG;AACU,QAAA,gBAAgB,GAAG;IAC5B,oBAAoB,EAAE;QAClB,OAAO,EAAE,+BAAqB,CAAC,MAAM,CAAC,EAAC,GAAG,EAAC,CAAC;QAC5C,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,qDAAqD;YACrD,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE;SAC7B,CAAC;KACL;IACD,8BAA8B,EAAE;QAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,GAAG,EAAC,CAAC;QACxB,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,EAAC,CAAC;KACnD;IACD,sBAAsB,EAAE;QACpB,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,GAAG;YACH,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,wDAAwD;YACxD,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;SACtD,CAAC;QACF,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;YACjB,yCAAyC;YACzC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;SACrB,CAAC;KACL;IACD,sBAAsB,EAAE;QACpB,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,CAAC;QAC1D,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,EAAC,CAAC;KAC7C;IACD,oBAAoB,EAAE;QAClB,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,GAAG;YACH,KAAK;YACL,2DAA2D;YAC3D,iBAAiB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SAChD,CAAC;QACF,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAC,CAAC;KAC3C;IACD,mBAAmB,EAAE;QACjB,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,GAAG;YACH,KAAK;YACL,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SAChD,CAAC;QACF,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAC,CAAC;KAC3C;CACoB,CAAC"}
|
|
@@ -11,6 +11,163 @@ import { z } from "zod";
|
|
|
11
11
|
* equals the sum of the group key counts.
|
|
12
12
|
*/
|
|
13
13
|
export declare const allCallables: {
|
|
14
|
+
"misSync-saveConfig": {
|
|
15
|
+
request: z.ZodObject<z.objectUtil.extendShape<{
|
|
16
|
+
enabled: z.ZodBoolean;
|
|
17
|
+
method: z.ZodEnum<["email", "api"]>;
|
|
18
|
+
allowedSenders: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
|
|
19
|
+
studentEmailDomains: z.ZodArray<z.ZodString, "many">;
|
|
20
|
+
columnMapping: z.ZodRecord<z.ZodEnum<["mis_student_id", "first_name", "last_name", "email", "year_group", "course", "tutor_group", "status", "start_date", "leave_date"]>, z.ZodString>;
|
|
21
|
+
inactiveStatuses: z.ZodArray<z.ZodString, "many">;
|
|
22
|
+
requireApproval: z.ZodBoolean;
|
|
23
|
+
maxArchivePercent: z.ZodNumber;
|
|
24
|
+
maxRowDropPercent: z.ZodNumber;
|
|
25
|
+
staleAfterHours: z.ZodNumber;
|
|
26
|
+
retentionDays: z.ZodNumber;
|
|
27
|
+
alertEmails: z.ZodArray<z.ZodString, "many">;
|
|
28
|
+
}, {
|
|
29
|
+
oId: z.ZodString;
|
|
30
|
+
}>, "strip", z.ZodTypeAny, {
|
|
31
|
+
method: "email" | "api";
|
|
32
|
+
oId: string;
|
|
33
|
+
enabled: boolean;
|
|
34
|
+
allowedSenders: string[];
|
|
35
|
+
studentEmailDomains: string[];
|
|
36
|
+
columnMapping: Partial<Record<"email" | "status" | "mis_student_id" | "first_name" | "last_name" | "year_group" | "course" | "tutor_group" | "start_date" | "leave_date", string>>;
|
|
37
|
+
inactiveStatuses: string[];
|
|
38
|
+
requireApproval: boolean;
|
|
39
|
+
maxArchivePercent: number;
|
|
40
|
+
maxRowDropPercent: number;
|
|
41
|
+
staleAfterHours: number;
|
|
42
|
+
retentionDays: number;
|
|
43
|
+
alertEmails: string[];
|
|
44
|
+
}, {
|
|
45
|
+
method: "email" | "api";
|
|
46
|
+
oId: string;
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
allowedSenders: string[];
|
|
49
|
+
studentEmailDomains: string[];
|
|
50
|
+
columnMapping: Partial<Record<"email" | "status" | "mis_student_id" | "first_name" | "last_name" | "year_group" | "course" | "tutor_group" | "start_date" | "leave_date", string>>;
|
|
51
|
+
inactiveStatuses: string[];
|
|
52
|
+
requireApproval: boolean;
|
|
53
|
+
maxArchivePercent: number;
|
|
54
|
+
maxRowDropPercent: number;
|
|
55
|
+
staleAfterHours: number;
|
|
56
|
+
retentionDays: number;
|
|
57
|
+
alertEmails: string[];
|
|
58
|
+
}>;
|
|
59
|
+
response: z.ZodObject<{
|
|
60
|
+
inboundAddress: z.ZodString;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
inboundAddress: string;
|
|
63
|
+
}, {
|
|
64
|
+
inboundAddress: string;
|
|
65
|
+
}>;
|
|
66
|
+
};
|
|
67
|
+
"misSync-rotateInboundAddress": {
|
|
68
|
+
request: z.ZodObject<{
|
|
69
|
+
oId: z.ZodString;
|
|
70
|
+
}, "strip", z.ZodTypeAny, {
|
|
71
|
+
oId: string;
|
|
72
|
+
}, {
|
|
73
|
+
oId: string;
|
|
74
|
+
}>;
|
|
75
|
+
response: z.ZodObject<{
|
|
76
|
+
inboundAddress: z.ZodString;
|
|
77
|
+
}, "strip", z.ZodTypeAny, {
|
|
78
|
+
inboundAddress: string;
|
|
79
|
+
}, {
|
|
80
|
+
inboundAddress: string;
|
|
81
|
+
}>;
|
|
82
|
+
};
|
|
83
|
+
"misSync-createApiKey": {
|
|
84
|
+
request: z.ZodObject<{
|
|
85
|
+
oId: z.ZodString;
|
|
86
|
+
label: z.ZodString;
|
|
87
|
+
replacesKeyId: z.ZodOptional<z.ZodString>;
|
|
88
|
+
}, "strip", z.ZodTypeAny, {
|
|
89
|
+
label: string;
|
|
90
|
+
oId: string;
|
|
91
|
+
replacesKeyId?: string | undefined;
|
|
92
|
+
}, {
|
|
93
|
+
label: string;
|
|
94
|
+
oId: string;
|
|
95
|
+
replacesKeyId?: string | undefined;
|
|
96
|
+
}>;
|
|
97
|
+
response: z.ZodObject<{
|
|
98
|
+
keyId: z.ZodString;
|
|
99
|
+
apiKey: z.ZodString;
|
|
100
|
+
}, "strip", z.ZodTypeAny, {
|
|
101
|
+
apiKey: string;
|
|
102
|
+
keyId: string;
|
|
103
|
+
}, {
|
|
104
|
+
apiKey: string;
|
|
105
|
+
keyId: string;
|
|
106
|
+
}>;
|
|
107
|
+
};
|
|
108
|
+
"misSync-revokeApiKey": {
|
|
109
|
+
request: z.ZodObject<{
|
|
110
|
+
oId: z.ZodString;
|
|
111
|
+
keyId: z.ZodString;
|
|
112
|
+
}, "strip", z.ZodTypeAny, {
|
|
113
|
+
oId: string;
|
|
114
|
+
keyId: string;
|
|
115
|
+
}, {
|
|
116
|
+
oId: string;
|
|
117
|
+
keyId: string;
|
|
118
|
+
}>;
|
|
119
|
+
response: z.ZodObject<{
|
|
120
|
+
revoked: z.ZodBoolean;
|
|
121
|
+
}, "strip", z.ZodTypeAny, {
|
|
122
|
+
revoked: boolean;
|
|
123
|
+
}, {
|
|
124
|
+
revoked: boolean;
|
|
125
|
+
}>;
|
|
126
|
+
};
|
|
127
|
+
"misSync-approveRun": {
|
|
128
|
+
request: z.ZodObject<{
|
|
129
|
+
oId: z.ZodString;
|
|
130
|
+
runId: z.ZodString;
|
|
131
|
+
acknowledgeBlocks: z.ZodDefault<z.ZodBoolean>;
|
|
132
|
+
}, "strip", z.ZodTypeAny, {
|
|
133
|
+
oId: string;
|
|
134
|
+
runId: string;
|
|
135
|
+
acknowledgeBlocks: boolean;
|
|
136
|
+
}, {
|
|
137
|
+
oId: string;
|
|
138
|
+
runId: string;
|
|
139
|
+
acknowledgeBlocks?: boolean | undefined;
|
|
140
|
+
}>;
|
|
141
|
+
response: z.ZodObject<{
|
|
142
|
+
status: z.ZodString;
|
|
143
|
+
}, "strip", z.ZodTypeAny, {
|
|
144
|
+
status: string;
|
|
145
|
+
}, {
|
|
146
|
+
status: string;
|
|
147
|
+
}>;
|
|
148
|
+
};
|
|
149
|
+
"misSync-rejectRun": {
|
|
150
|
+
request: z.ZodObject<{
|
|
151
|
+
oId: z.ZodString;
|
|
152
|
+
runId: z.ZodString;
|
|
153
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
154
|
+
}, "strip", z.ZodTypeAny, {
|
|
155
|
+
oId: string;
|
|
156
|
+
runId: string;
|
|
157
|
+
reason?: string | undefined;
|
|
158
|
+
}, {
|
|
159
|
+
oId: string;
|
|
160
|
+
runId: string;
|
|
161
|
+
reason?: string | undefined;
|
|
162
|
+
}>;
|
|
163
|
+
response: z.ZodObject<{
|
|
164
|
+
status: z.ZodString;
|
|
165
|
+
}, "strip", z.ZodTypeAny, {
|
|
166
|
+
status: string;
|
|
167
|
+
}, {
|
|
168
|
+
status: string;
|
|
169
|
+
}>;
|
|
170
|
+
};
|
|
14
171
|
"wonde-requestConnection": {
|
|
15
172
|
request: z.ZodObject<{
|
|
16
173
|
oId: z.ZodString;
|
|
@@ -2601,4 +2758,163 @@ export declare const callableGroups: {
|
|
|
2601
2758
|
}>;
|
|
2602
2759
|
};
|
|
2603
2760
|
};
|
|
2761
|
+
misSyncCallables: {
|
|
2762
|
+
"misSync-saveConfig": {
|
|
2763
|
+
request: z.ZodObject<z.objectUtil.extendShape<{
|
|
2764
|
+
enabled: z.ZodBoolean;
|
|
2765
|
+
method: z.ZodEnum<["email", "api"]>;
|
|
2766
|
+
allowedSenders: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
|
|
2767
|
+
studentEmailDomains: z.ZodArray<z.ZodString, "many">;
|
|
2768
|
+
columnMapping: z.ZodRecord<z.ZodEnum<["mis_student_id", "first_name", "last_name", "email", "year_group", "course", "tutor_group", "status", "start_date", "leave_date"]>, z.ZodString>;
|
|
2769
|
+
inactiveStatuses: z.ZodArray<z.ZodString, "many">;
|
|
2770
|
+
requireApproval: z.ZodBoolean;
|
|
2771
|
+
maxArchivePercent: z.ZodNumber;
|
|
2772
|
+
maxRowDropPercent: z.ZodNumber;
|
|
2773
|
+
staleAfterHours: z.ZodNumber;
|
|
2774
|
+
retentionDays: z.ZodNumber;
|
|
2775
|
+
alertEmails: z.ZodArray<z.ZodString, "many">;
|
|
2776
|
+
}, {
|
|
2777
|
+
oId: z.ZodString;
|
|
2778
|
+
}>, "strip", z.ZodTypeAny, {
|
|
2779
|
+
method: "email" | "api";
|
|
2780
|
+
oId: string;
|
|
2781
|
+
enabled: boolean;
|
|
2782
|
+
allowedSenders: string[];
|
|
2783
|
+
studentEmailDomains: string[];
|
|
2784
|
+
columnMapping: Partial<Record<"email" | "status" | "mis_student_id" | "first_name" | "last_name" | "year_group" | "course" | "tutor_group" | "start_date" | "leave_date", string>>;
|
|
2785
|
+
inactiveStatuses: string[];
|
|
2786
|
+
requireApproval: boolean;
|
|
2787
|
+
maxArchivePercent: number;
|
|
2788
|
+
maxRowDropPercent: number;
|
|
2789
|
+
staleAfterHours: number;
|
|
2790
|
+
retentionDays: number;
|
|
2791
|
+
alertEmails: string[];
|
|
2792
|
+
}, {
|
|
2793
|
+
method: "email" | "api";
|
|
2794
|
+
oId: string;
|
|
2795
|
+
enabled: boolean;
|
|
2796
|
+
allowedSenders: string[];
|
|
2797
|
+
studentEmailDomains: string[];
|
|
2798
|
+
columnMapping: Partial<Record<"email" | "status" | "mis_student_id" | "first_name" | "last_name" | "year_group" | "course" | "tutor_group" | "start_date" | "leave_date", string>>;
|
|
2799
|
+
inactiveStatuses: string[];
|
|
2800
|
+
requireApproval: boolean;
|
|
2801
|
+
maxArchivePercent: number;
|
|
2802
|
+
maxRowDropPercent: number;
|
|
2803
|
+
staleAfterHours: number;
|
|
2804
|
+
retentionDays: number;
|
|
2805
|
+
alertEmails: string[];
|
|
2806
|
+
}>;
|
|
2807
|
+
response: z.ZodObject<{
|
|
2808
|
+
inboundAddress: z.ZodString;
|
|
2809
|
+
}, "strip", z.ZodTypeAny, {
|
|
2810
|
+
inboundAddress: string;
|
|
2811
|
+
}, {
|
|
2812
|
+
inboundAddress: string;
|
|
2813
|
+
}>;
|
|
2814
|
+
};
|
|
2815
|
+
"misSync-rotateInboundAddress": {
|
|
2816
|
+
request: z.ZodObject<{
|
|
2817
|
+
oId: z.ZodString;
|
|
2818
|
+
}, "strip", z.ZodTypeAny, {
|
|
2819
|
+
oId: string;
|
|
2820
|
+
}, {
|
|
2821
|
+
oId: string;
|
|
2822
|
+
}>;
|
|
2823
|
+
response: z.ZodObject<{
|
|
2824
|
+
inboundAddress: z.ZodString;
|
|
2825
|
+
}, "strip", z.ZodTypeAny, {
|
|
2826
|
+
inboundAddress: string;
|
|
2827
|
+
}, {
|
|
2828
|
+
inboundAddress: string;
|
|
2829
|
+
}>;
|
|
2830
|
+
};
|
|
2831
|
+
"misSync-createApiKey": {
|
|
2832
|
+
request: z.ZodObject<{
|
|
2833
|
+
oId: z.ZodString;
|
|
2834
|
+
label: z.ZodString;
|
|
2835
|
+
replacesKeyId: z.ZodOptional<z.ZodString>;
|
|
2836
|
+
}, "strip", z.ZodTypeAny, {
|
|
2837
|
+
label: string;
|
|
2838
|
+
oId: string;
|
|
2839
|
+
replacesKeyId?: string | undefined;
|
|
2840
|
+
}, {
|
|
2841
|
+
label: string;
|
|
2842
|
+
oId: string;
|
|
2843
|
+
replacesKeyId?: string | undefined;
|
|
2844
|
+
}>;
|
|
2845
|
+
response: z.ZodObject<{
|
|
2846
|
+
keyId: z.ZodString;
|
|
2847
|
+
apiKey: z.ZodString;
|
|
2848
|
+
}, "strip", z.ZodTypeAny, {
|
|
2849
|
+
apiKey: string;
|
|
2850
|
+
keyId: string;
|
|
2851
|
+
}, {
|
|
2852
|
+
apiKey: string;
|
|
2853
|
+
keyId: string;
|
|
2854
|
+
}>;
|
|
2855
|
+
};
|
|
2856
|
+
"misSync-revokeApiKey": {
|
|
2857
|
+
request: z.ZodObject<{
|
|
2858
|
+
oId: z.ZodString;
|
|
2859
|
+
keyId: z.ZodString;
|
|
2860
|
+
}, "strip", z.ZodTypeAny, {
|
|
2861
|
+
oId: string;
|
|
2862
|
+
keyId: string;
|
|
2863
|
+
}, {
|
|
2864
|
+
oId: string;
|
|
2865
|
+
keyId: string;
|
|
2866
|
+
}>;
|
|
2867
|
+
response: z.ZodObject<{
|
|
2868
|
+
revoked: z.ZodBoolean;
|
|
2869
|
+
}, "strip", z.ZodTypeAny, {
|
|
2870
|
+
revoked: boolean;
|
|
2871
|
+
}, {
|
|
2872
|
+
revoked: boolean;
|
|
2873
|
+
}>;
|
|
2874
|
+
};
|
|
2875
|
+
"misSync-approveRun": {
|
|
2876
|
+
request: z.ZodObject<{
|
|
2877
|
+
oId: z.ZodString;
|
|
2878
|
+
runId: z.ZodString;
|
|
2879
|
+
acknowledgeBlocks: z.ZodDefault<z.ZodBoolean>;
|
|
2880
|
+
}, "strip", z.ZodTypeAny, {
|
|
2881
|
+
oId: string;
|
|
2882
|
+
runId: string;
|
|
2883
|
+
acknowledgeBlocks: boolean;
|
|
2884
|
+
}, {
|
|
2885
|
+
oId: string;
|
|
2886
|
+
runId: string;
|
|
2887
|
+
acknowledgeBlocks?: boolean | undefined;
|
|
2888
|
+
}>;
|
|
2889
|
+
response: z.ZodObject<{
|
|
2890
|
+
status: z.ZodString;
|
|
2891
|
+
}, "strip", z.ZodTypeAny, {
|
|
2892
|
+
status: string;
|
|
2893
|
+
}, {
|
|
2894
|
+
status: string;
|
|
2895
|
+
}>;
|
|
2896
|
+
};
|
|
2897
|
+
"misSync-rejectRun": {
|
|
2898
|
+
request: z.ZodObject<{
|
|
2899
|
+
oId: z.ZodString;
|
|
2900
|
+
runId: z.ZodString;
|
|
2901
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
2902
|
+
}, "strip", z.ZodTypeAny, {
|
|
2903
|
+
oId: string;
|
|
2904
|
+
runId: string;
|
|
2905
|
+
reason?: string | undefined;
|
|
2906
|
+
}, {
|
|
2907
|
+
oId: string;
|
|
2908
|
+
runId: string;
|
|
2909
|
+
reason?: string | undefined;
|
|
2910
|
+
}>;
|
|
2911
|
+
response: z.ZodObject<{
|
|
2912
|
+
status: z.ZodString;
|
|
2913
|
+
}, "strip", z.ZodTypeAny, {
|
|
2914
|
+
status: string;
|
|
2915
|
+
}, {
|
|
2916
|
+
status: string;
|
|
2917
|
+
}>;
|
|
2918
|
+
};
|
|
2919
|
+
};
|
|
2604
2920
|
};
|
|
@@ -15,6 +15,7 @@ const jobRoles_1 = require("./jobRoles");
|
|
|
15
15
|
const hubImpactReport_1 = require("./hubImpactReport");
|
|
16
16
|
const e2e_1 = require("./e2e");
|
|
17
17
|
const wonde_1 = require("./wonde");
|
|
18
|
+
const misSync_1 = require("./misSync");
|
|
18
19
|
/**
|
|
19
20
|
* The single source of truth for every typed callable. Add a feature group's
|
|
20
21
|
* spread here and its callables are automatically covered by:
|
|
@@ -41,7 +42,24 @@ exports.allCallables = {
|
|
|
41
42
|
...hubImpactReport_1.hubImpactReportCallables,
|
|
42
43
|
...e2e_1.e2eCallables,
|
|
43
44
|
...wonde_1.wondeCallables,
|
|
45
|
+
...misSync_1.misSyncCallables,
|
|
44
46
|
};
|
|
45
47
|
/** The per-group maps, exported so tests can assert no key collisions. */
|
|
46
|
-
exports.callableGroups = {
|
|
48
|
+
exports.callableGroups = {
|
|
49
|
+
destinationsConfigCallables: destinationsConfig_1.destinationsConfigCallables,
|
|
50
|
+
placementCallables: placement_1.placementCallables,
|
|
51
|
+
eventsCallables: events_1.eventsCallables,
|
|
52
|
+
surveyCallables: surveys_1.surveyCallables,
|
|
53
|
+
checksCallables: checks_1.checksCallables,
|
|
54
|
+
benchmarksCallables: benchmarks_1.benchmarksCallables,
|
|
55
|
+
apprenticeshipsCallables: apprenticeships_1.apprenticeshipsCallables,
|
|
56
|
+
heCallables: he_1.heCallables,
|
|
57
|
+
studentLaunchCallables: studentLaunches_1.studentLaunchCallables,
|
|
58
|
+
billingCallables: billing_1.billingCallables,
|
|
59
|
+
jobRolesCallables: jobRoles_1.jobRolesCallables,
|
|
60
|
+
hubImpactReportCallables: hubImpactReport_1.hubImpactReportCallables,
|
|
61
|
+
e2eCallables: e2e_1.e2eCallables,
|
|
62
|
+
wondeCallables: wonde_1.wondeCallables,
|
|
63
|
+
misSyncCallables: misSync_1.misSyncCallables,
|
|
64
|
+
};
|
|
47
65
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/callables/registry.ts"],"names":[],"mappings":";;;AAEA,6DAAiE;AACjE,2CAA+C;AAC/C,qCAAyC;AACzC,uCAA0C;AAC1C,qCAAyC;AACzC,6CAAiD;AACjD,uDAA2D;AAC3D,6BAAiC;AACjC,uDAAyD;AACzD,uCAA2C;AAC3C,yCAA6C;AAC7C,uDAA2D;AAC3D,+BAAmC;AACnC,mCAAuC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/callables/registry.ts"],"names":[],"mappings":";;;AAEA,6DAAiE;AACjE,2CAA+C;AAC/C,qCAAyC;AACzC,uCAA0C;AAC1C,qCAAyC;AACzC,6CAAiD;AACjD,uDAA2D;AAC3D,6BAAiC;AACjC,uDAAyD;AACzD,uCAA2C;AAC3C,yCAA6C;AAC7C,uDAA2D;AAC3D,+BAAmC;AACnC,mCAAuC;AACvC,uCAA2C;AAE3C;;;;;;;;;;GAUG;AACU,QAAA,YAAY,GAAG;IACxB,GAAG,gDAA2B;IAC9B,GAAG,8BAAkB;IACrB,GAAG,wBAAe;IAClB,GAAG,yBAAe;IAClB,GAAG,wBAAe;IAClB,GAAG,gCAAmB;IACtB,GAAG,0CAAwB;IAC3B,GAAG,gBAAW;IACd,GAAG,wCAAsB;IACzB,GAAG,0BAAgB;IACnB,GAAG,4BAAiB;IACpB,GAAG,0CAAwB;IAC3B,GAAG,kBAAY;IACf,GAAG,sBAAc;IACjB,GAAG,0BAAgB;CACE,CAAC;AAiB1B,0EAA0E;AAC7D,QAAA,cAAc,GAAG;IAC1B,2BAA2B,EAA3B,gDAA2B;IAC3B,kBAAkB,EAAlB,8BAAkB;IAClB,eAAe,EAAf,wBAAe;IACf,eAAe,EAAf,yBAAe;IACf,eAAe,EAAf,wBAAe;IACf,mBAAmB,EAAnB,gCAAmB;IACnB,wBAAwB,EAAxB,0CAAwB;IACxB,WAAW,EAAX,gBAAW;IACX,sBAAsB,EAAtB,wCAAsB;IACtB,gBAAgB,EAAhB,0BAAgB;IAChB,iBAAiB,EAAjB,4BAAiB;IACjB,wBAAwB,EAAxB,0CAAwB;IACxB,YAAY,EAAZ,kBAAY;IACZ,cAAc,EAAd,sBAAc;IACd,gBAAgB,EAAhB,0BAAgB;CACnB,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export * from "./studentTools";
|
|
|
23
23
|
export * from "./featureMarketing";
|
|
24
24
|
export * from "./onboardingPathways";
|
|
25
25
|
export * from "./studentData";
|
|
26
|
+
export * from "./misSync";
|
|
26
27
|
export * from "./lmi";
|
|
27
28
|
export * from "./lmiCategories";
|
|
28
29
|
export * from "./pathways";
|
package/lib/index.js
CHANGED
|
@@ -43,6 +43,7 @@ __exportStar(require("./studentTools"), exports);
|
|
|
43
43
|
__exportStar(require("./featureMarketing"), exports);
|
|
44
44
|
__exportStar(require("./onboardingPathways"), exports);
|
|
45
45
|
__exportStar(require("./studentData"), exports);
|
|
46
|
+
__exportStar(require("./misSync"), exports);
|
|
46
47
|
__exportStar(require("./lmi"), exports);
|
|
47
48
|
__exportStar(require("./lmiCategories"), exports);
|
|
48
49
|
__exportStar(require("./pathways"), exports);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,gEAA8C;AAC9C,0DAAwC;AACxC,2DAAyC;AACzC,kDAAgC;AAChC,uDAAqC;AACrC,4DAA0C;AAC1C,2DAAyC;AAEzC,oDAAkC;AAClC,8CAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AACnC,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,mDAAiC;AACjC,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,qDAAmC;AACnC,uDAAqC;AACrC,gDAA8B;AAC9B,wCAAsB;AACtB,kDAAgC;AAChC,6CAA2B;AAC3B,oDAAkC;AAClC,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAAyB;AACzB,kDAAgC;AAChC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,0DAAwC;AACxC,iDAA+B;AAC/B,2DAAyC;AACzC,uDAAqC;AACrC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,qDAAmC;AACnC,0CAAwB;AACxB,kDAAgC;AAChC,yCAAuB;AACvB,4DAA0C;AAC1C,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,4DAA0C;AAC1C,oEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,yGAAuF;AACvF,0GAAwF;AACxF,+FAA6E;AAC7E,4DAA0C;AAC1C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C;AAC9C,2EAAyD;AACzD,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,gEAA8C;AAC9C,0DAAwC;AACxC,2DAAyC;AACzC,kDAAgC;AAChC,uDAAqC;AACrC,4DAA0C;AAC1C,2DAAyC;AAEzC,oDAAkC;AAClC,8CAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AACnC,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,mDAAiC;AACjC,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,qDAAmC;AACnC,uDAAqC;AACrC,gDAA8B;AAC9B,4CAA0B;AAC1B,wCAAsB;AACtB,kDAAgC;AAChC,6CAA2B;AAC3B,oDAAkC;AAClC,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAAyB;AACzB,kDAAgC;AAChC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,0DAAwC;AACxC,iDAA+B;AAC/B,2DAAyC;AACzC,uDAAqC;AACrC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,qDAAmC;AACnC,0CAAwB;AACxB,kDAAgC;AAChC,yCAAuB;AACvB,4DAA0C;AAC1C,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,4DAA0C;AAC1C,oEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,yGAAuF;AACvF,0GAAwF;AACxF,+FAA6E;AAC7E,4DAA0C;AAC1C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C;AAC9C,2EAAyD;AACzD,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB"}
|