placementt-core 1.400.1115 → 1.400.1116

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.
@@ -11,3 +11,4 @@ export * from "./billing";
11
11
  export * from "./hubImpactReport";
12
12
  export * from "./e2e";
13
13
  export * from "./wonde";
14
+ export * from "./misSync";
@@ -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 = { destinationsConfigCallables: destinationsConfig_1.destinationsConfigCallables, placementCallables: placement_1.placementCallables, eventsCallables: events_1.eventsCallables, surveyCallables: surveys_1.surveyCallables, checksCallables: checks_1.checksCallables, benchmarksCallables: benchmarks_1.benchmarksCallables, apprenticeshipsCallables: apprenticeships_1.apprenticeshipsCallables, heCallables: he_1.heCallables, studentLaunchCallables: studentLaunches_1.studentLaunchCallables, billingCallables: billing_1.billingCallables, jobRolesCallables: jobRoles_1.jobRolesCallables, hubImpactReportCallables: hubImpactReport_1.hubImpactReportCallables, e2eCallables: e2e_1.e2eCallables, wondeCallables: wonde_1.wondeCallables };
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;AAEvC;;;;;;;;;;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;CACI,CAAC;AAiB1B,0EAA0E;AAC7D,QAAA,cAAc,GAAG,EAAC,2BAA2B,EAA3B,gDAA2B,EAAE,kBAAkB,EAAlB,8BAAkB,EAAE,eAAe,EAAf,wBAAe,EAAE,eAAe,EAAf,yBAAe,EAAE,eAAe,EAAf,wBAAe,EAAE,mBAAmB,EAAnB,gCAAmB,EAAE,wBAAwB,EAAxB,0CAAwB,EAAE,WAAW,EAAX,gBAAW,EAAE,sBAAsB,EAAtB,wCAAsB,EAAE,gBAAgB,EAAhB,0BAAgB,EAAE,iBAAiB,EAAjB,4BAAiB,EAAE,wBAAwB,EAAxB,0CAAwB,EAAE,YAAY,EAAZ,kBAAY,EAAE,cAAc,EAAd,sBAAc,EAAC,CAAC"}
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"}