placementt-core 1.300.1209 → 1.300.1211

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,77 @@
1
1
  import { z } from "zod";
2
+ /**
3
+ * Contracts for staff adding student activities
4
+ * (`Placementt-Backend/functions/src/activities.ts`).
5
+ */
6
+ /** A table's "select all", as DataViewerSelectionBackend: its filters and any search. */
7
+ export declare const selectAllSelection: z.ZodObject<{
8
+ allSelected: z.ZodBoolean;
9
+ search: z.ZodOptional<z.ZodString>;
10
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
11
+ k: z.ZodString;
12
+ e: z.ZodOptional<z.ZodString>;
13
+ v: z.ZodUnknown;
14
+ }, "strip", z.ZodTypeAny, {
15
+ k: string;
16
+ v?: unknown;
17
+ e?: string | undefined;
18
+ }, {
19
+ k: string;
20
+ v?: unknown;
21
+ e?: string | undefined;
22
+ }>, "many">>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ allSelected: boolean;
25
+ search?: string | undefined;
26
+ filters?: {
27
+ k: string;
28
+ v?: unknown;
29
+ e?: string | undefined;
30
+ }[] | undefined;
31
+ }, {
32
+ allSelected: boolean;
33
+ search?: string | undefined;
34
+ filters?: {
35
+ k: string;
36
+ v?: unknown;
37
+ e?: string | undefined;
38
+ }[] | undefined;
39
+ }>;
40
+ /** The students picked in the student table, as DataViewerSelectionBackend:
41
+ * a filter (with an optional search), or a list of uids. */
42
+ export declare const studentSelection: z.ZodUnion<[z.ZodObject<{
43
+ allSelected: z.ZodBoolean;
44
+ search: z.ZodOptional<z.ZodString>;
45
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
46
+ k: z.ZodString;
47
+ e: z.ZodOptional<z.ZodString>;
48
+ v: z.ZodUnknown;
49
+ }, "strip", z.ZodTypeAny, {
50
+ k: string;
51
+ v?: unknown;
52
+ e?: string | undefined;
53
+ }, {
54
+ k: string;
55
+ v?: unknown;
56
+ e?: string | undefined;
57
+ }>, "many">>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ allSelected: boolean;
60
+ search?: string | undefined;
61
+ filters?: {
62
+ k: string;
63
+ v?: unknown;
64
+ e?: string | undefined;
65
+ }[] | undefined;
66
+ }, {
67
+ allSelected: boolean;
68
+ search?: string | undefined;
69
+ filters?: {
70
+ k: string;
71
+ v?: unknown;
72
+ e?: string | undefined;
73
+ }[] | undefined;
74
+ }>, z.ZodArray<z.ZodString, "many">]>;
2
75
  /** What staff fill in on the activity builder. Everything the server owns (who
3
76
  * it belongs to, who made it, how it is verified, when) is set there, never sent. */
4
77
  declare const staffActivity: z.ZodObject<{
@@ -1,23 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.activitiesCallables = void 0;
3
+ exports.activitiesCallables = exports.studentSelection = exports.selectAllSelection = void 0;
4
4
  const zod_1 = require("zod");
5
5
  /**
6
6
  * Contracts for staff adding student activities
7
7
  * (`Placementt-Backend/functions/src/activities.ts`).
8
8
  */
9
+ /** A table's "select all", as DataViewerSelectionBackend: its filters and any search. */
10
+ exports.selectAllSelection = zod_1.z.object({
11
+ allSelected: zod_1.z.boolean(),
12
+ search: zod_1.z.string().optional(),
13
+ filters: zod_1.z.array(zod_1.z.object({
14
+ k: zod_1.z.string(),
15
+ e: zod_1.z.string().optional(),
16
+ v: zod_1.z.unknown(),
17
+ })).optional(),
18
+ });
9
19
  /** The students picked in the student table, as DataViewerSelectionBackend:
10
20
  * a filter (with an optional search), or a list of uids. */
11
- const studentSelection = zod_1.z.union([
12
- zod_1.z.object({
13
- allSelected: zod_1.z.boolean(),
14
- search: zod_1.z.string().optional(),
15
- filters: zod_1.z.array(zod_1.z.object({
16
- k: zod_1.z.string(),
17
- e: zod_1.z.string().optional(),
18
- v: zod_1.z.unknown(),
19
- })).optional(),
20
- }),
21
+ exports.studentSelection = zod_1.z.union([
22
+ exports.selectAllSelection,
21
23
  zod_1.z.array(zod_1.z.string().min(1).max(128)).max(5000),
22
24
  ]);
23
25
  /** What staff fill in on the activity builder. Everything the server owns (who
@@ -50,7 +52,7 @@ exports.activitiesCallables = {
50
52
  request: zod_1.z.object({
51
53
  /** The school the students belong to. */
52
54
  oId: zod_1.z.string().min(1).max(128),
53
- students: studentSelection,
55
+ students: exports.studentSelection,
54
56
  activity: staffActivity,
55
57
  /** Set by `useExecuteCallableJob`. */
56
58
  jobId: zod_1.z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"activities.js","sourceRoot":"","sources":["../../src/callables/activities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activities.js","sourceRoot":"","sources":["../../src/callables/activities.ts"],"names":[],"mappings":"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"}
@@ -630,7 +630,39 @@ export declare const allCallables: {
630
630
  };
631
631
  "userManagement-checkStudentActivation": {
632
632
  request: z.ZodObject<{
633
- users: z.ZodUnion<[z.ZodArray<z.ZodObject<{
633
+ users: z.ZodUnion<[z.ZodObject<{
634
+ allSelected: z.ZodBoolean;
635
+ search: z.ZodOptional<z.ZodString>;
636
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
637
+ k: z.ZodString;
638
+ e: z.ZodOptional<z.ZodString>;
639
+ v: z.ZodUnknown;
640
+ }, "strip", z.ZodTypeAny, {
641
+ k: string;
642
+ v?: unknown;
643
+ e?: string | undefined;
644
+ }, {
645
+ k: string;
646
+ v?: unknown;
647
+ e?: string | undefined;
648
+ }>, "many">>;
649
+ }, "strip", z.ZodTypeAny, {
650
+ allSelected: boolean;
651
+ search?: string | undefined;
652
+ filters?: {
653
+ k: string;
654
+ v?: unknown;
655
+ e?: string | undefined;
656
+ }[] | undefined;
657
+ }, {
658
+ allSelected: boolean;
659
+ search?: string | undefined;
660
+ filters?: {
661
+ k: string;
662
+ v?: unknown;
663
+ e?: string | undefined;
664
+ }[] | undefined;
665
+ }>, z.ZodArray<z.ZodObject<{
634
666
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
635
667
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
636
668
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -643,14 +675,30 @@ export declare const allCallables: {
643
675
  filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
644
676
  cohortId: z.ZodOptional<z.ZodString>;
645
677
  }, "strip", z.ZodTypeAny, {
646
- users: Record<string, unknown> | z.objectOutputType<{
678
+ users: Record<string, unknown> | {
679
+ allSelected: boolean;
680
+ search?: string | undefined;
681
+ filters?: {
682
+ k: string;
683
+ v?: unknown;
684
+ e?: string | undefined;
685
+ }[] | undefined;
686
+ } | z.objectOutputType<{
647
687
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
648
688
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
649
689
  }, z.ZodTypeAny, "passthrough">[];
650
690
  cohortId?: string | undefined;
651
691
  filters?: Record<string, string | number | boolean> | undefined;
652
692
  }, {
653
- users: Record<string, unknown> | z.objectInputType<{
693
+ users: Record<string, unknown> | {
694
+ allSelected: boolean;
695
+ search?: string | undefined;
696
+ filters?: {
697
+ k: string;
698
+ v?: unknown;
699
+ e?: string | undefined;
700
+ }[] | undefined;
701
+ } | z.objectInputType<{
654
702
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
655
703
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
656
704
  }, z.ZodTypeAny, "passthrough">[];
@@ -4836,7 +4884,39 @@ export declare const callableGroups: {
4836
4884
  };
4837
4885
  "userManagement-checkStudentActivation": {
4838
4886
  request: z.ZodObject<{
4839
- users: z.ZodUnion<[z.ZodArray<z.ZodObject<{
4887
+ users: z.ZodUnion<[z.ZodObject<{
4888
+ allSelected: z.ZodBoolean;
4889
+ search: z.ZodOptional<z.ZodString>;
4890
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
4891
+ k: z.ZodString;
4892
+ e: z.ZodOptional<z.ZodString>;
4893
+ v: z.ZodUnknown;
4894
+ }, "strip", z.ZodTypeAny, {
4895
+ k: string;
4896
+ v?: unknown;
4897
+ e?: string | undefined;
4898
+ }, {
4899
+ k: string;
4900
+ v?: unknown;
4901
+ e?: string | undefined;
4902
+ }>, "many">>;
4903
+ }, "strip", z.ZodTypeAny, {
4904
+ allSelected: boolean;
4905
+ search?: string | undefined;
4906
+ filters?: {
4907
+ k: string;
4908
+ v?: unknown;
4909
+ e?: string | undefined;
4910
+ }[] | undefined;
4911
+ }, {
4912
+ allSelected: boolean;
4913
+ search?: string | undefined;
4914
+ filters?: {
4915
+ k: string;
4916
+ v?: unknown;
4917
+ e?: string | undefined;
4918
+ }[] | undefined;
4919
+ }>, z.ZodArray<z.ZodObject<{
4840
4920
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4841
4921
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
4842
4922
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -4849,14 +4929,30 @@ export declare const callableGroups: {
4849
4929
  filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
4850
4930
  cohortId: z.ZodOptional<z.ZodString>;
4851
4931
  }, "strip", z.ZodTypeAny, {
4852
- users: Record<string, unknown> | z.objectOutputType<{
4932
+ users: Record<string, unknown> | {
4933
+ allSelected: boolean;
4934
+ search?: string | undefined;
4935
+ filters?: {
4936
+ k: string;
4937
+ v?: unknown;
4938
+ e?: string | undefined;
4939
+ }[] | undefined;
4940
+ } | z.objectOutputType<{
4853
4941
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4854
4942
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
4855
4943
  }, z.ZodTypeAny, "passthrough">[];
4856
4944
  cohortId?: string | undefined;
4857
4945
  filters?: Record<string, string | number | boolean> | undefined;
4858
4946
  }, {
4859
- users: Record<string, unknown> | z.objectInputType<{
4947
+ users: Record<string, unknown> | {
4948
+ allSelected: boolean;
4949
+ search?: string | undefined;
4950
+ filters?: {
4951
+ k: string;
4952
+ v?: unknown;
4953
+ e?: string | undefined;
4954
+ }[] | undefined;
4955
+ } | z.objectInputType<{
4860
4956
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4861
4957
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
4862
4958
  }, z.ZodTypeAny, "passthrough">[];
@@ -42,8 +42,41 @@ export declare const userManagementCallables: {
42
42
  */
43
43
  "userManagement-checkStudentActivation": {
44
44
  request: z.ZodObject<{
45
- /** Query objects for a filtered or "all" selection, or picked students keyed by uid. */
46
- users: z.ZodUnion<[z.ZodArray<z.ZodObject<{
45
+ /** A table's "select all" as a DataViewer selection, picked students keyed
46
+ * by uid, or (older clients) query objects. */
47
+ users: z.ZodUnion<[z.ZodObject<{
48
+ allSelected: z.ZodBoolean;
49
+ search: z.ZodOptional<z.ZodString>;
50
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
51
+ k: z.ZodString;
52
+ e: z.ZodOptional<z.ZodString>;
53
+ v: z.ZodUnknown;
54
+ }, "strip", z.ZodTypeAny, {
55
+ k: string;
56
+ v?: unknown;
57
+ e?: string | undefined;
58
+ }, {
59
+ k: string;
60
+ v?: unknown;
61
+ e?: string | undefined;
62
+ }>, "many">>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ allSelected: boolean;
65
+ search?: string | undefined;
66
+ filters?: {
67
+ k: string;
68
+ v?: unknown;
69
+ e?: string | undefined;
70
+ }[] | undefined;
71
+ }, {
72
+ allSelected: boolean;
73
+ search?: string | undefined;
74
+ filters?: {
75
+ k: string;
76
+ v?: unknown;
77
+ e?: string | undefined;
78
+ }[] | undefined;
79
+ }>, z.ZodArray<z.ZodObject<{
47
80
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
48
81
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
49
82
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -57,14 +90,30 @@ export declare const userManagementCallables: {
57
90
  filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
58
91
  cohortId: z.ZodOptional<z.ZodString>;
59
92
  }, "strip", z.ZodTypeAny, {
60
- users: Record<string, unknown> | z.objectOutputType<{
93
+ users: Record<string, unknown> | {
94
+ allSelected: boolean;
95
+ search?: string | undefined;
96
+ filters?: {
97
+ k: string;
98
+ v?: unknown;
99
+ e?: string | undefined;
100
+ }[] | undefined;
101
+ } | z.objectOutputType<{
61
102
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
62
103
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
63
104
  }, z.ZodTypeAny, "passthrough">[];
64
105
  cohortId?: string | undefined;
65
106
  filters?: Record<string, string | number | boolean> | undefined;
66
107
  }, {
67
- users: Record<string, unknown> | z.objectInputType<{
108
+ users: Record<string, unknown> | {
109
+ allSelected: boolean;
110
+ search?: string | undefined;
111
+ filters?: {
112
+ k: string;
113
+ v?: unknown;
114
+ e?: string | undefined;
115
+ }[] | undefined;
116
+ } | z.objectInputType<{
68
117
  path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
69
118
  where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
70
119
  }, z.ZodTypeAny, "passthrough">[];
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.userManagementCallables = void 0;
4
4
  const zod_1 = require("zod");
5
+ const activities_1 = require("./activities");
5
6
  /**
6
7
  * Contracts for the typed user management callables
7
8
  * (`Placementt-Backend/functions/src/userManagement.ts`).
@@ -31,8 +32,10 @@ exports.userManagementCallables = {
31
32
  */
32
33
  "userManagement-checkStudentActivation": {
33
34
  request: zod_1.z.object({
34
- /** Query objects for a filtered or "all" selection, or picked students keyed by uid. */
35
+ /** A table's "select all" as a DataViewer selection, picked students keyed
36
+ * by uid, or (older clients) query objects. */
35
37
  users: zod_1.z.union([
38
+ activities_1.selectAllSelection,
36
39
  zod_1.z.array(zod_1.z.object({
37
40
  path: zod_1.z.array(zod_1.z.string()).optional(),
38
41
  where: zod_1.z.array(zod_1.z.array(zod_1.z.unknown())).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"userManagement.js","sourceRoot":"","sources":["../../src/callables/userManagement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userManagement.js","sourceRoot":"","sources":["../../src/callables/userManagement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const userManagement_1 = require("./userManagement");
4
+ const check = userManagement_1.userManagementCallables["userManagement-checkStudentActivation"].request;
5
+ describe("userManagement-checkStudentActivation users", () => {
6
+ it("takes a table's select all as a DataViewer selection, filters intact", () => {
7
+ const users = { allSelected: true, search: "", filters: [{ k: "details.year", e: "==", v: "10" }] };
8
+ const parsed = check.parse({ users });
9
+ expect(parsed.users).toEqual(users);
10
+ });
11
+ it("still takes picked students keyed by uid", () => {
12
+ expect(check.parse({ users: { uid1: true, uid2: true } }).users).toEqual({ uid1: true, uid2: true });
13
+ });
14
+ it("still takes query objects from older clients", () => {
15
+ const users = [{ path: ["users"], where: [["oId", "==", "school"]] }];
16
+ expect(check.parse({ users }).users).toEqual(users);
17
+ });
18
+ });
19
+ //# sourceMappingURL=userManagement.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userManagement.test.js","sourceRoot":"","sources":["../../src/callables/userManagement.test.ts"],"names":[],"mappings":";;AAAA,qDAAyD;AAEzD,MAAM,KAAK,GAAG,wCAAuB,CAAC,uCAAuC,CAAC,CAAC,OAAO,CAAC;AAEvF,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC5E,MAAM,KAAK,GAAG,EAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAC,CAAC,EAAC,CAAC;QAChG,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAAG,CAAC,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1267,6 +1267,8 @@ export type InstituteData = {
1267
1267
  activityLoggingConfig?: StudentLaunchConfig;
1268
1268
  careersLibraryConfig?: StudentLaunchConfig;
1269
1269
  nextStepsConfig?: StudentLaunchConfig;
1270
+ /** Activate students as they are added (CSV, Wonde, MIS), if they have something to use. New schools start on; unset is off. */
1271
+ autoActivateNewStudents?: boolean;
1270
1272
  destinationTracking?: boolean;
1271
1273
  docCheck?: boolean;
1272
1274
  adminLastCheckedDocs?: string;
@@ -1592,6 +1594,7 @@ export type CohortData = {
1592
1594
  search: string | undefined;
1593
1595
  filters: [string, unknown][] | undefined;
1594
1596
  };
1597
+ /** @deprecated Replaced by InstituteData.autoActivateNewStudents. No longer read. */
1595
1598
  autoActivateNewUsers?: boolean;
1596
1599
  allowOverlappingDates?: boolean;
1597
1600
  /** @deprecated The staff edit alert is now always sent. Removed by the email settings migration. */
@@ -1 +1 @@
1
- {"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;AA+uIA,sDASC;AAeD,oDAKC;AAaD,0CAEC;AA/pED;;;;;kFAKkF;AACrE,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,iBAAiB,GAAG,OAAO,CAAC;AA2kEzC;yEACyE;AAC5D,QAAA,0BAA0B,GAA2C;IAC9E,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,wBAAwB;IACvC,KAAK,EAAE,OAAO;CACjB,CAAC;AAEW,QAAA,0BAA0B,GAA+C;IAClF,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,SAAsC;IACxE,QAAQ,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,IAAwC,EACxC,MAA6C;IAE7C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAA6D;IACzF,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;AAkvIA,sDASC;AAeD,oDAKC;AAaD,0CAEC;AA/pED;;;;;kFAKkF;AACrE,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,iBAAiB,GAAG,OAAO,CAAC;AA2kEzC;yEACyE;AAC5D,QAAA,0BAA0B,GAA2C;IAC9E,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,wBAAwB;IACvC,KAAK,EAAE,OAAO;CACjB,CAAC;AAEW,QAAA,0BAA0B,GAA+C;IAClF,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,SAAsC;IACxE,QAAQ,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,IAAwC,EACxC,MAA6C;IAE7C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAA6D;IACzF,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.300.1209",
5
+ "version": "1.300.1211",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
@@ -6,18 +6,21 @@ import {CallableGroup} from "./types";
6
6
  * (`Placementt-Backend/functions/src/activities.ts`).
7
7
  */
8
8
 
9
+ /** A table's "select all", as DataViewerSelectionBackend: its filters and any search. */
10
+ export const selectAllSelection = z.object({
11
+ allSelected: z.boolean(),
12
+ search: z.string().optional(),
13
+ filters: z.array(z.object({
14
+ k: z.string(),
15
+ e: z.string().optional(),
16
+ v: z.unknown(),
17
+ })).optional(),
18
+ });
19
+
9
20
  /** The students picked in the student table, as DataViewerSelectionBackend:
10
21
  * a filter (with an optional search), or a list of uids. */
11
- const studentSelection = z.union([
12
- z.object({
13
- allSelected: z.boolean(),
14
- search: z.string().optional(),
15
- filters: z.array(z.object({
16
- k: z.string(),
17
- e: z.string().optional(),
18
- v: z.unknown(),
19
- })).optional(),
20
- }),
22
+ export const studentSelection = z.union([
23
+ selectAllSelection,
21
24
  z.array(z.string().min(1).max(128)).max(5000),
22
25
  ]);
23
26
 
@@ -0,0 +1,20 @@
1
+ import {userManagementCallables} from "./userManagement";
2
+
3
+ const check = userManagementCallables["userManagement-checkStudentActivation"].request;
4
+
5
+ describe("userManagement-checkStudentActivation users", () => {
6
+ it("takes a table's select all as a DataViewer selection, filters intact", () => {
7
+ const users = {allSelected: true, search: "", filters: [{k: "details.year", e: "==", v: "10"}]};
8
+ const parsed = check.parse({users});
9
+ expect(parsed.users).toEqual(users);
10
+ });
11
+
12
+ it("still takes picked students keyed by uid", () => {
13
+ expect(check.parse({users: {uid1: true, uid2: true}}).users).toEqual({uid1: true, uid2: true});
14
+ });
15
+
16
+ it("still takes query objects from older clients", () => {
17
+ const users = [{path: ["users"], where: [["oId", "==", "school"]]}];
18
+ expect(check.parse({users}).users).toEqual(users);
19
+ });
20
+ });
@@ -1,5 +1,6 @@
1
1
  import {z} from "zod";
2
2
  import {CallableGroup} from "./types";
3
+ import {selectAllSelection} from "./activities";
3
4
 
4
5
  /**
5
6
  * Contracts for the typed user management callables
@@ -30,8 +31,10 @@ export const userManagementCallables = {
30
31
  */
31
32
  "userManagement-checkStudentActivation": {
32
33
  request: z.object({
33
- /** Query objects for a filtered or "all" selection, or picked students keyed by uid. */
34
+ /** A table's "select all" as a DataViewer selection, picked students keyed
35
+ * by uid, or (older clients) query objects. */
34
36
  users: z.union([
37
+ selectAllSelection,
35
38
  z.array(z.object({
36
39
  path: z.array(z.string()).optional(),
37
40
  where: z.array(z.array(z.unknown())).optional(),
@@ -1293,6 +1293,8 @@ export type InstituteData = {
1293
1293
  activityLoggingConfig?: StudentLaunchConfig,
1294
1294
  careersLibraryConfig?: StudentLaunchConfig,
1295
1295
  nextStepsConfig?: StudentLaunchConfig,
1296
+ /** Activate students as they are added (CSV, Wonde, MIS), if they have something to use. New schools start on; unset is off. */
1297
+ autoActivateNewStudents?: boolean,
1296
1298
 
1297
1299
  destinationTracking?: boolean,
1298
1300
  docCheck?: boolean,
@@ -1632,6 +1634,7 @@ export type CohortData = {
1632
1634
  search: string | undefined;
1633
1635
  filters: [string, unknown][] | undefined;
1634
1636
  },
1637
+ /** @deprecated Replaced by InstituteData.autoActivateNewStudents. No longer read. */
1635
1638
  autoActivateNewUsers?: boolean,
1636
1639
  allowOverlappingDates?: boolean,
1637
1640
  /** @deprecated The staff edit alert is now always sent. Removed by the email settings migration. */