placementt-core 1.400.1003 → 1.400.1005
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/deploy-all.js +19 -8
- package/lib/algoliaConfig.d.ts +11 -0
- package/lib/algoliaConfig.js +15 -0
- package/lib/algoliaConfig.js.map +1 -0
- package/lib/features/search/globalSearch.js +2 -2
- package/lib/features/search/globalSearch.js.map +1 -1
- package/lib/firebase/util.js +10 -4
- package/lib/firebase/util.js.map +1 -1
- package/lib/groups.d.ts +121 -0
- package/lib/groups.js +117 -0
- package/lib/groups.js.map +1 -0
- package/lib/groups.test.d.ts +1 -0
- package/lib/groups.test.js +138 -0
- package/lib/groups.test.js.map +1 -0
- package/lib/hooks.js +6 -5
- package/lib/hooks.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/typeDefinitions.d.ts +55 -1
- package/package.json +1 -1
- package/src/algoliaConfig.ts +12 -0
- package/src/features/search/globalSearch.ts +1 -2
- package/src/firebase/util.tsx +10 -4
- package/src/groups.test.ts +173 -0
- package/src/groups.ts +215 -0
- package/src/hooks.tsx +6 -5
- package/src/index.ts +1 -0
- package/src/typeDefinitions.ts +57 -2
- package/test-local.js +20 -5
- package/watch-local.js +21 -5
package/deploy-all.js
CHANGED
|
@@ -25,10 +25,25 @@ function updateVersion(version) {
|
|
|
25
25
|
|
|
26
26
|
// ---- Keep original file contents for reset ----
|
|
27
27
|
const firebaseConfigPath = 'src/firebase/firebaseConfig.tsx';
|
|
28
|
-
|
|
28
|
+
// Every Algolia client reads the app id from this one module, so swapping it
|
|
29
|
+
// here is what repoints the whole package at the dev Algolia application.
|
|
30
|
+
const algoliaConfigPath = 'src/algoliaConfig.ts';
|
|
29
31
|
|
|
30
32
|
const originalFirebaseConfig = fs.readFileSync(firebaseConfigPath, 'utf8');
|
|
31
|
-
const
|
|
33
|
+
const originalAlgoliaConfig = fs.readFileSync(algoliaConfigPath, 'utf8');
|
|
34
|
+
|
|
35
|
+
// A dev build that silently keeps the prod app id would query the production
|
|
36
|
+
// indexes, so refuse to publish one rather than let the swap miss.
|
|
37
|
+
function toDevAlgoliaConfig(source) {
|
|
38
|
+
const swapped = source.replace(/XMPXCMUUOJ/g, 'A0ZB50I7VS');
|
|
39
|
+
|
|
40
|
+
if (swapped === source) {
|
|
41
|
+
console.error(`❌ No prod Algolia app id found in ${algoliaConfigPath} — the dev build would still point at production.`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return swapped;
|
|
46
|
+
}
|
|
32
47
|
|
|
33
48
|
// -------------------------------
|
|
34
49
|
// 1️⃣ PROD VERSION
|
|
@@ -53,11 +68,7 @@ let firebaseConfig = originalFirebaseConfig.replace(
|
|
|
53
68
|
);
|
|
54
69
|
fs.writeFileSync(firebaseConfigPath, firebaseConfig);
|
|
55
70
|
|
|
56
|
-
|
|
57
|
-
/XMPXCMUUOJ/g,
|
|
58
|
-
'A0ZB50I7VS'
|
|
59
|
-
);
|
|
60
|
-
fs.writeFileSync(hooksPath, hooks);
|
|
71
|
+
fs.writeFileSync(algoliaConfigPath, toDevAlgoliaConfig(originalAlgoliaConfig));
|
|
61
72
|
|
|
62
73
|
const devVersion = `1.400.${nextPatch}`;
|
|
63
74
|
updateVersion(devVersion);
|
|
@@ -93,7 +104,7 @@ run('npm publish --tag emu');
|
|
|
93
104
|
// -------------------------------
|
|
94
105
|
console.log("🧹 Resetting source files...");
|
|
95
106
|
fs.writeFileSync(firebaseConfigPath, originalFirebaseConfig);
|
|
96
|
-
fs.writeFileSync(
|
|
107
|
+
fs.writeFileSync(algoliaConfigPath, originalAlgoliaConfig);
|
|
97
108
|
|
|
98
109
|
console.log("🎉 Deployment complete!");
|
|
99
110
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which Algolia application the package talks to.
|
|
3
|
+
*
|
|
4
|
+
* This lives on its own, away from any code that runs on import, because the
|
|
5
|
+
* dev flavour of placementt-core is published by rewriting the app id in this
|
|
6
|
+
* file (see deploy-all.js, test-local.js and watch-local.js). Keeping every
|
|
7
|
+
* Algolia client pointed at this one constant is what stops a dev build from
|
|
8
|
+
* querying the production indexes — so read the id from here rather than
|
|
9
|
+
* writing it inline at a call site.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ALGOLIA_APP_ID = "A0ZB50I7VS";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Which Algolia application the package talks to.
|
|
4
|
+
*
|
|
5
|
+
* This lives on its own, away from any code that runs on import, because the
|
|
6
|
+
* dev flavour of placementt-core is published by rewriting the app id in this
|
|
7
|
+
* file (see deploy-all.js, test-local.js and watch-local.js). Keeping every
|
|
8
|
+
* Algolia client pointed at this one constant is what stops a dev build from
|
|
9
|
+
* querying the production indexes — so read the id from here rather than
|
|
10
|
+
* writing it inline at a call site.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ALGOLIA_APP_ID = void 0;
|
|
14
|
+
exports.ALGOLIA_APP_ID = "A0ZB50I7VS";
|
|
15
|
+
//# sourceMappingURL=algoliaConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"algoliaConfig.js","sourceRoot":"","sources":["../src/algoliaConfig.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEU,QAAA,cAAc,GAAG,YAAY,CAAC"}
|
|
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.nonEmptyGlobalSearchSections = exports.totalGlobalSearchHits = exports.globalSearch = exports.availableGlobalSearchIndexes = exports.GLOBAL_SEARCH_INDEXES = exports.GLOBAL_SEARCH_INDEX_HITS = exports.GLOBAL_SEARCH_OVERVIEW_HITS = void 0;
|
|
18
18
|
const algoliasearch_1 = __importDefault(require("algoliasearch"));
|
|
19
19
|
const util_1 = require("../../firebase/util");
|
|
20
|
-
const
|
|
20
|
+
const algoliaConfig_1 = require("../../algoliaConfig");
|
|
21
21
|
/** How many results a section shows before the user drills into one index. */
|
|
22
22
|
exports.GLOBAL_SEARCH_OVERVIEW_HITS = 5;
|
|
23
23
|
/** How many results one index shows per page once the user has drilled in. */
|
|
@@ -111,7 +111,7 @@ const globalSearch = async ({ user, institute, query, indexIds, hitsPerPage = ex
|
|
|
111
111
|
.filter((index) => !indexIds || indexIds.includes(index.id));
|
|
112
112
|
if (!indexes.length)
|
|
113
113
|
return {};
|
|
114
|
-
const client = (0, algoliasearch_1.default)(ALGOLIA_APP_ID, user.algoliaKey);
|
|
114
|
+
const client = (0, algoliasearch_1.default)(algoliaConfig_1.ALGOLIA_APP_ID, user.algoliaKey);
|
|
115
115
|
const { results } = await client.multipleQueries(indexes.map((index) => ({
|
|
116
116
|
indexName: index.indexName,
|
|
117
117
|
query: trimmed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalSearch.js","sourceRoot":"","sources":["../../../src/features/search/globalSearch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;AAEH,kEAA0C;AAE1C,8CAA+D;
|
|
1
|
+
{"version":3,"file":"globalSearch.js","sourceRoot":"","sources":["../../../src/features/search/globalSearch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;AAEH,kEAA0C;AAE1C,8CAA+D;AAC/D,uDAAmD;AAEnD,8EAA8E;AACjE,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAE7C,8EAA8E;AACjE,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAoD3C,MAAM,QAAQ,GAAG,CAAC,QAAiB,EAAE,OAAgB,EAAE,EAAE,CACrD,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAEzD,MAAM,SAAS,GAAG,CAAC,GAAG,KAAiC,EAAE,EAAE,CACvD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;AAEnD,oEAAoE;AACpE,MAAM,eAAe,GAAG,CAAC,SAAyB,EAAE,EAAE,CAClD,SAAS,EAAE,OAAO,KAAK,gBAAgB,IAAI,SAAS,EAAE,OAAO,KAAK,gBAAgB,CAAC;AAEvF;;;;;GAKG;AACU,QAAA,qBAAqB,GAAkC;IAChE;QACI,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,aAAa,EAAE,WAAW;QAC1B,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,cAAc,CAAC;QAC1F,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAA,iCAA0B,EAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAChF,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,EAAE,EAAE,GAAG,CAAC,QAAQ;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,oBAAoB;YACpD,QAAQ,EAAE,SAAS,CACf,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EACrB,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,EAC9D,GAAG,CAAC,QAAQ,CACf;YACD,IAAI,EAAE,GAAG,CAAC,UAAU;YACpB,IAAI,EAAE,kCAAkC,GAAG,CAAC,QAAQ,EAAE;YACtD,GAAG,EAAE,GAAG;SACX,CAAC;KACL;IACD;QACI,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,aAAa,EAAE,UAAU;QACzB,SAAS,EAAE,kBAAkB;QAC7B,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC;QAC3E,2EAA2E;QAC3E,4DAA4D;QAC5D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,GAAG,cAAc;QACpD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,EAAE,EAAE,GAAG,CAAC,QAAQ;YAChB,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB;YAC1F,QAAQ,EAAE,SAAS,CACf,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,EAC9D,GAAG,CAAC,aAAa,CACpB;YACD,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,IAAI,EAAE,mCAAmC,GAAG,CAAC,QAAQ,EAAE;YACvD,GAAG,EAAE,GAAG;SACX,CAAC;KACL;IACD;QACI,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;QACpD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAA,iCAA0B,EAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB;QACtF,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,EAAE,EAAE,GAAG,CAAC,QAAQ;YAChB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,iBAAiB;YAC9F,QAAQ,EAAE,GAAG,CAAC,KAAK;YACnB,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI;YAC5C,IAAI,EAAE,qBAAqB,GAAG,CAAC,QAAQ,EAAE;YACzC,GAAG,EAAE,GAAG;SACX,CAAC;KACL;CACJ,CAAC;AAEF;;;;;;GAMG;AACI,MAAM,4BAA4B,GAAG,CAAC,SAAyB,EAAE,IAAe,EAAiC,EAAE,CACtH,6BAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AADjE,QAAA,4BAA4B,gCACqC;AAc9E;;;;;;;;;GASG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,EAC/B,IAAI,EACJ,SAAS,EACT,KAAK,EACL,QAAQ,EACR,WAAW,GAAG,mCAA2B,EACzC,IAAI,GAAG,CAAC,GACS,EAAgC,EAAE;IACnD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU;QAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,OAAO,GAAG,IAAA,oCAA4B,EAAC,SAAS,EAAE,IAAI,CAAC;SACxD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjE,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,8BAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAE9D,MAAM,EAAC,OAAO,EAAC,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,OAAO;QACd,MAAM,EAAE;YACJ,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;YACvC,WAAW;YACX,IAAI;SACP;KACJ,CAAC,CAAC,CAAC,CAAC;IAEL,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAA+E,CAAC;QACxG,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE;gBACd,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;gBAC3B,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI;gBAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC;gBAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;aAClB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAwB,CAAC;AAC/B,CAAC,CAAC;AAxCW,QAAA,YAAY,gBAwCvB;AAEF;;;;;GAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,OAA4B,EAAU,EAAE,CAC1E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AADxE,QAAA,qBAAqB,yBACmD;AAErF;;;;;GAKG;AACI,MAAM,4BAA4B,GAAG,CAAC,OAA4B,EAA8B,EAAE,CACrG,6BAAqB;KAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACjC,MAAM,CAAC,CAAC,OAAO,EAAuC,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAH7F,QAAA,4BAA4B,gCAGiE"}
|
package/lib/firebase/util.js
CHANGED
|
@@ -339,11 +339,17 @@ exports.flattenObject = flattenObject;
|
|
|
339
339
|
const getGeoHash = async (data) => {
|
|
340
340
|
if (!data?.["address-line1"] || !data.postal_code)
|
|
341
341
|
return;
|
|
342
|
-
const address =
|
|
343
|
-
|
|
344
|
-
|
|
342
|
+
const address = [
|
|
343
|
+
data["address-line1"],
|
|
344
|
+
data["address-line2"],
|
|
345
|
+
data.locality,
|
|
346
|
+
data.postal_code,
|
|
347
|
+
(0, exports.camelCaseToNormal)(data.country),
|
|
348
|
+
].filter((part) => part).join(" ");
|
|
349
|
+
// Encode the address, otherwise characters like & or # in an address line
|
|
350
|
+
// terminate the query parameter and Google only sees the leading fragment.
|
|
345
351
|
const apiQuery = "https://maps.googleapis.com/maps/api/geocode/json?address=" +
|
|
346
|
-
address + "&key=AIzaSyBOSSi4iHxOoAS9tLAJUAC_46HlZ6-D5Ss";
|
|
352
|
+
encodeURIComponent(address) + "&key=AIzaSyBOSSi4iHxOoAS9tLAJUAC_46HlZ6-D5Ss";
|
|
347
353
|
const location = await fetch(apiQuery)
|
|
348
354
|
.then(async (res) => await res.json())
|
|
349
355
|
.then((res) => {
|
package/lib/firebase/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/firebase/util.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/firebase/util.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+LA,oCAIC;AAmQD,oFA2BC;AA/dD,kDAAoC;AACpC,oEAA4C;AAC5C,8CAAqD;AACrD,qDAAyC;AAElC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;AAGxC,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB;AAEK,MAAM,eAAe,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAU,EAAE,EAAE;IACnD,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,WAAW,GAAG,CAAC,MAAa,EAAU,EAAE;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,OAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC,CAAC;AAZW,QAAA,WAAW,eAYtB;AAEK,MAAM,UAAU,GAAG,CAAC,CAAC,GAAC,EAAE,EAAE,EAAE;IAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB;AAEK,MAAM,eAAe,GAAG,CAAC,CAAC,GAAC,EAAE,EAAE,EAAE;IACpC,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,SAAS,GAAG,CAAC,CAAC,GAAC,EAAE,EAAE,EAAE;IAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC,CAAC;AAHW,QAAA,SAAS,aAGpB;AAEK,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,KAAK,CAAC,KAAK,CACd,uJAAuJ,CAC1J,CAAC;AACN,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AAEK,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,SAA+B,EAAE,GAAG,KAA2G,EAAE,EAAE;IACxL,qDAAqD;IACrD,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,OAAO,IAAK,IAAI,CAAC,SAAoB,EAAE,CAAC,IAAI,CAAC;YACpF,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;YACnK,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,IAAI,SAAS,EAAE,cAAc,CAAC,IAAI,SAAS,EAAE,OAAO,KAAK,YAAY,CAAC,CAAC;YAC1M,KAAK,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,yBAAyB;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB;AAEK,MAAM,YAAY,GAAG,CAAC,IAAS,EAAE,EAAE;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,GAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB;AAEF,MAAM,OAAO,GAA2B;IACtC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;CACrE,CAAC;AAEK,MAAM,qBAAqB,GAAG,CACjC,YAA4D,EACtD,EAAE;IACR,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE;QAC9D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/D,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,CAAC,CAAC;AAVW,QAAA,qBAAqB,yBAUhC;AAEK,MAAM,qBAAqB,GAAG,CACnC,KAAa,EACb,GAAW,EACX,UAAsE,EACtE,EAAE;IACF,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,OAAO,WAAW,KAAK,GAAG,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,WAAW,GAAG,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAU,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAtBW,QAAA,qBAAqB,yBAsBhC;AAEK,MAAM,YAAY,GAAG,CAAC,IAAiB,EAAE,EAAE;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO;IACX,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB;AAEK,MAAM,WAAW,GAAG,CACvB,KAAgD,EAChD,SAAyC,MAAM,EACtB,EAAE;IAC3B,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC;IAExC,IAAI,IAAsB,CAAC;IAE3B,8DAA8D;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,gCAAgC;SAC3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1C,IAAI,OAAQ,KAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9C,IAAI,GAAI,KAAa,CAAC,MAAM,EAAE,CAAC;QACnC,CAAC;aAAM,IAAI,SAAS,IAAI,KAAK,IAAI,OAAQ,KAAa,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC1E,MAAM,EAAE,GAAI,KAAa,CAAC,WAAW,IAAI,CAAC,CAAC;YAC3C,IAAI,GAAG,IAAI,IAAI,CAAE,KAAa,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC/B,IAAI,GAAG,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,oBAAoB;SACf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,6CAA6C,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,WAAW;IACX,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAEpG,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,CAAC;IAC1H,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AAChF,CAAC,CAAC;AArDW,QAAA,WAAW,eAqDtB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAW,EAAE,GAAQ,EAAU,EAAE;IACzD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACnI,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,gBAAgB,GAAG,CAAC,SAA2B,EAAE,EAAE;IAC5D,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACpH,CAAC;IAED,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAChH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B;AAEF,SAAgB,YAAY,CAAC,IAAY;IACrC,MAAM,WAAW,GAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,sIAAsI;AACtI,yEAAyE;AACzE,oEAAoE;AACpE,kBAAkB;AAClB,QAAQ;AAER,0EAA0E;AAE1E,iFAAiF;AACjF,wIAAwI;AAExI,4BAA4B;AAC5B,8HAA8H;AAC9H,eAAe;AACf,qCAAqC;AACrC,sHAAsH;AACtH,mBAAmB;AACnB,sDAAsD;AACtD,YAAY;AACZ,QAAQ;AAER,uBAAuB;AACvB,KAAK;AAEE,MAAM,gBAAgB,GAAG,CAC5B,GAAwB,EACxB,IAAiD,EACjD,KAAU,EACV,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,KAAK,CAAE,oCAAoC;EACtD,EAAE;IACA,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO;IACX,CAAC;IAGD,MAAM,QAAQ,GAAgB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;IAC5E,MAAM,aAAa,GAAc,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5D,CAAC,CAAE,QAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEb,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjB,QAAQ,CAAC,aAAoB,CAAC,GAAG,IAAA,wBAAgB,EAC7C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EACZ,IAAI,CAAC,aAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAChD,KAAK,EACL,QAAQ,EACR,MAAM,CACT,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3G,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAoB,CAAC,CAAC,EAAE,CAAC;YAChE,QAAQ,CAAC,aAAoB,CAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B;QACvF,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,aAAoB,CAAC,GAAG,KAAK,CAAC;QAC3C,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AArCW,QAAA,gBAAgB,oBAqC3B;AAGK,MAAM,qBAAqB,GAAG,CAAC,IAAa,EAAE,MAAM,EAAE,EAAE;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAY,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,IAAA,6BAAqB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC;AAEK,MAAM,iBAAiB,GAAG,CAAC,MAAM,GAAC,EAAE,EAAE,EAAE;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,UAAS,GAAG;QACpF,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAJW,QAAA,iBAAiB,qBAI5B;AAEK,MAAM,SAAS,GAAG,CAAC,MAAM,GAAC,EAAE,EAAE,EAAE;IACnC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5F,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,MAAM,GAAG,CAAC,IAAQ,EAAE,EAAE;IAC/B,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC;IAET,IAAI,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC;AAZW,QAAA,MAAM,UAYjB;AAEK,MAAM,yBAAyB,GAAG,CAAC,KAAe,EAAE,EAAE;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC;AAEK,MAAM,SAAS,GAAG,CAAC,IAAe,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAArE,QAAA,SAAS,aAA4D;AAE3E,MAAM,WAAW,GAAG,CAAC,CAAO,EAAE,CAAO,EAAE,EAAE;IAC5C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAExC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAGK,MAAM,YAAY,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAU,EAAE;IACvD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAC5C,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;QAC7B,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,CAAC,CAAC,GAAqB,CAAC,EAAE,CAAC,CAAC,GAAqB,CAAC,CAAC,CAAC,CACzF,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB;AAEK,MAAM,iBAAiB,GAAG,CAAC,KAAe,EAAE,EAAE;IACjD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAC/E,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAGK,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE;IACjC,MAAM,SAAS,GAAG,EAAE,CAAC;IAErB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAdW,QAAA,aAAa,iBAcxB;AAGK,MAAM,UAAU,GAAG,KAAK,EAAE,IAAqB,EAAE,EAAE;IACtD,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO;IAC1D,MAAM,OAAO,GAAG;QACZ,IAAI,CAAC,eAAe,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC;QACrB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,WAAW;QAChB,IAAA,yBAAiB,EAAC,IAAI,CAAC,OAAO,CAAC;KAClC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,4DAA4D;QACzE,kBAAkB,CAAC,OAAO,CAAC,GAAG,8CAA8C,CAAC;IAEjF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC;SACjC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAChB,MAAM,GAAG,CAAC,IAAI,EAAkD,CAAC;SACpE,IAAI,CAAC,CAAC,GAAiD,EAAE,EAAE;QACxD,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,CAAC,KAAY,EAAE,EAAE;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IAEP,IAAI,QAAQ,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACxD,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAoC,CAAC;IAEjF,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AA9BW,QAAA,UAAU,cA8BrB;AAEK,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,EAAE;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB;AAEK,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,GAAG,6BAA6B;QAC/B,sCAAsC,CAAC;IAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AAEK,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QACrB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEK,MAAM,OAAO,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAE,CAAE,CAAC,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAE,GAAG,GAAG,CAAC,MAAM,CAAC;AAA7E,QAAA,OAAO,WAAsE;AAEnF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,GAAG,GAAG,GAAG,CAAC;IAChB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACpC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAEpD,CAAC,CAAC;AAPW,QAAA,WAAW,eAOtB;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CE;AAEF,SAAgB,oCAAoC,CAAC,OAGnD;IACE,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;IAClC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAE9C,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IAEvB,oCAAoC;IACpC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3C,+DAA+D;IAC/D,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CACzE,CAAC;IAEF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,mDAAmD;QACnD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAU,CAAC;aAC7C,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAEnD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAGM,MAAM,8BAA8B,GAAG,KAAK,EAAE,OAAiB,EAClE,GAAW,EAAE,MAAe,EAAE,QAAiB,EAExB,EAAE;IACrB,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAC9C,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAA,aAAG,EAAC,wBAAO,EAAE,GAAG,OAAO,IAAI,GAAG,iBAAiB,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAc,EAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAkB,CAAC;IAEvF,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO;YACrD,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAuB,CAAC;QACnE,OAAO;YACH,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,SAAS,EAAE,KAAK;YACvB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,OAAO,EAAE,SAAS,CAAC,OAAO;SAC7B,CAAC;IACN,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAE,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,SAAS;QAClE,MAAM,CAAC,CAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAExC,MAAM,SAAS,GAAG,QAAQ,IAAI,UAAU,EAAE,QAAQ,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO;QACrD,UAAU,EAAE,eAAe,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAuB,CAAC;IAElG,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO;YACH,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,KAAK,EAAE,SAAS,EAAE,KAAK;SAC1B,CAAC;IACN,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,SAAS;QACxD,SAAS,CAAC,CAAwB,CAAC;IAEvC,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,IAAG,SAAS,CAAC,IAAI,CAAC;IAEvD,MAAM,SAAS,GAAG,IAAA,aAAG,EAAC,wBAAO,EAAE,GAAG,OAAO,IAAI,GAAG,IAAI,SAAS,MAAM,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAc,EAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAE3E,OAAO;QACH,KAAK,EAAE,WAAW,IAAI,QAAQ;QAC9B,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,SAAS,EAAE,KAAK;KAC1B,CAAC;AACN,CAAC,CAAC;AApDW,QAAA,8BAA8B,kCAoDzC;AAGK,MAAM,0BAA0B,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAA9F,QAAA,0BAA0B,8BAAoE;AAEpG,MAAM,uBAAuB,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAxE,QAAA,uBAAuB,2BAAiD"}
|
package/lib/groups.d.ts
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { EmployerSharing, HubGroup, InstituteData, ProviderContactData } from "./typeDefinitions";
|
|
2
|
+
/**
|
|
3
|
+
* Hub groups: who belongs to a region, and who that lets an employer reach.
|
|
4
|
+
*
|
|
5
|
+
* A hub group is one entity that both schools and employers belong to, so "North"
|
|
6
|
+
* means the same North on both sides. Two edges hang off it, and they mean
|
|
7
|
+
* different things:
|
|
8
|
+
*
|
|
9
|
+
* - membership — what the member *is*. The hub writes it.
|
|
10
|
+
* schools: careersHubLinks[hubId].groups
|
|
11
|
+
* employers: savedBy[hubId].groups
|
|
12
|
+
* - sharing — who the employer said they want to work with. The employer
|
|
13
|
+
* writes it, and nothing else ever overwrites it: savedBy[hubId].sharing
|
|
14
|
+
*
|
|
15
|
+
* A hub that wants employers kept inside their own region sets
|
|
16
|
+
* `groupSettings.employerSharingScope = "membership"`. That narrows reach at
|
|
17
|
+
* resolve time rather than editing what the employer asked for, so dropping the
|
|
18
|
+
* setting again restores their original preference with no data to migrate back.
|
|
19
|
+
*
|
|
20
|
+
* Membership only ever narrows. An employer who consented to two named schools
|
|
21
|
+
* stays limited to those two schools when a hub drops them into a region holding
|
|
22
|
+
* forty — the intersection honours the employer, and the mismatch is reported as
|
|
23
|
+
* a conflict rather than silently resolving to nothing.
|
|
24
|
+
*
|
|
25
|
+
* Every surface resolves through here: the event fan-out, campaign audiences,
|
|
26
|
+
* school and employer pickers, and the employer-facing request page. They used to
|
|
27
|
+
* each re-query `careersHubLinks.{hub}.schoolGroups` by hand, which is why the
|
|
28
|
+
* clamp has one home.
|
|
29
|
+
*/
|
|
30
|
+
/** Enough of a school to resolve membership, so callers can pass partials. */
|
|
31
|
+
export type SchoolGroupInput = Pick<InstituteData, "careersHubLinks">;
|
|
32
|
+
/** Enough of an employer to resolve, so callers can pass partials. */
|
|
33
|
+
export type EmployerGroupInput = Pick<ProviderContactData, "savedBy">;
|
|
34
|
+
export type EmployerReachConflict =
|
|
35
|
+
/** Membership left the employer reaching nobody, though they offered someone. */
|
|
36
|
+
"emptyReach" |
|
|
37
|
+
/** The hub put them in a group they never consented to work with. */
|
|
38
|
+
"membershipOutsideConsent";
|
|
39
|
+
export type ResolvedEmployerReach = {
|
|
40
|
+
/** Schools the employer reaches, after the clamp. */
|
|
41
|
+
schools: string[];
|
|
42
|
+
/** What the employer asked for, before the clamp. */
|
|
43
|
+
intended: string[];
|
|
44
|
+
/** True when membership removed schools the employer had offered to work with. */
|
|
45
|
+
clamped: boolean;
|
|
46
|
+
conflicts: EmployerReachConflict[];
|
|
47
|
+
/** Recorded onto dispatched requests so "why these schools in March?" is
|
|
48
|
+
* answerable in June, after the setting has changed twice. */
|
|
49
|
+
scope: "membership" | "unrestricted";
|
|
50
|
+
};
|
|
51
|
+
/** The hub's policy. Absent means unrestricted, which is how every hub behaved
|
|
52
|
+
* before group membership existed — so nothing changes until a hub opts in. */
|
|
53
|
+
export declare const getSharingScope: (hub?: Pick<InstituteData, "groupSettings">) => "membership" | "unrestricted";
|
|
54
|
+
/** School membership, falling back to the pre-migration field. Queries can't do
|
|
55
|
+
* this fallback, so the migration backfills `groups` and leaves `schoolGroups` in
|
|
56
|
+
* place; this covers anything read into memory before that has run. */
|
|
57
|
+
export declare const getSchoolGroupIds: (school: SchoolGroupInput | undefined, hubId: string) => string[];
|
|
58
|
+
/** Employer membership. No legacy fallback: `savedBy[hub].schoolGroups` was the
|
|
59
|
+
* employer's intent, not membership, and reading it as membership would silently
|
|
60
|
+
* turn a preference into a hub-assigned region. */
|
|
61
|
+
export declare const getEmployerGroupIds: (employer: EmployerGroupInput | undefined, hubId: string) => string[];
|
|
62
|
+
/** The employer's stated intent, migrating the legacy shape on read. An employer
|
|
63
|
+
* with no record of a preference is treated as having offered everyone, which is
|
|
64
|
+
* what the request form defaulted to before this existed. */
|
|
65
|
+
export declare const getEmployerSharing: (employer: EmployerGroupInput | undefined, hubId: string) => EmployerSharing;
|
|
66
|
+
/** Schools in a hub that have accepted their link. The gate on every resolution —
|
|
67
|
+
* an invited-but-not-joined school is not reachable however the groups fall. */
|
|
68
|
+
export declare const approvedHubSchools: (schools: {
|
|
69
|
+
[id: string]: SchoolGroupInput & {
|
|
70
|
+
careersHubLinks?: InstituteData["careersHubLinks"];
|
|
71
|
+
};
|
|
72
|
+
}, hubId: string) => string[];
|
|
73
|
+
/** Schools belonging to any of `groupIds`. Union, not intersection: a member of
|
|
74
|
+
* two regions reaches both. */
|
|
75
|
+
export declare const schoolsInGroups: (groupIds: string[], hubId: string, schools: {
|
|
76
|
+
[id: string]: SchoolGroupInput;
|
|
77
|
+
}) => string[];
|
|
78
|
+
/** The ceiling membership imposes. Unrestricted scope, or an employer the hub
|
|
79
|
+
* hasn't put in a group yet, means no ceiling — see `employerNeedsTriage` for why
|
|
80
|
+
* an ungrouped employer isn't clamped to nothing. */
|
|
81
|
+
export declare const permittedSchools: (employer: EmployerGroupInput | undefined, hubId: string, hub: Pick<InstituteData, "groupSettings"> | undefined, schools: {
|
|
82
|
+
[id: string]: SchoolGroupInput;
|
|
83
|
+
}) => string[];
|
|
84
|
+
/** An employer the hub has yet to place in a group, while scoping is on. Their
|
|
85
|
+
* request is accepted but held for the hub rather than fanned out — failing closed
|
|
86
|
+
* on submission would turn away brand-new employers, who are exactly the ones with
|
|
87
|
+
* no membership yet. Assigning them a group is what releases it. */
|
|
88
|
+
export declare const employerNeedsTriage: (employer: EmployerGroupInput | undefined, hubId: string, hub: Pick<InstituteData, "groupSettings"> | undefined) => boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Where an employer's offer actually lands: their intent, narrowed by membership
|
|
91
|
+
* when the hub has asked for that, and always narrowed to approved schools.
|
|
92
|
+
*/
|
|
93
|
+
export declare const resolveEmployerSchools: (employer: EmployerGroupInput | undefined, hubId: string, hub: Pick<InstituteData, "groupSettings"> | undefined, schools: {
|
|
94
|
+
[id: string]: SchoolGroupInput;
|
|
95
|
+
}) => ResolvedEmployerReach;
|
|
96
|
+
/** Both sides of a group, for management screens and pickers. */
|
|
97
|
+
export declare const resolveGroupMembers: (groupId: string, hubId: string, members: {
|
|
98
|
+
schools?: {
|
|
99
|
+
[id: string]: SchoolGroupInput;
|
|
100
|
+
};
|
|
101
|
+
employers?: {
|
|
102
|
+
[id: string]: EmployerGroupInput;
|
|
103
|
+
};
|
|
104
|
+
}) => {
|
|
105
|
+
schools: string[];
|
|
106
|
+
employers: string[];
|
|
107
|
+
};
|
|
108
|
+
/** Groups offered to a given member type. Absent `appliesTo` means schools only —
|
|
109
|
+
* every group created before employers had membership. */
|
|
110
|
+
export declare const groupsFor: (groups: {
|
|
111
|
+
[id: string]: HubGroup;
|
|
112
|
+
}, memberType: "school" | "employer") => {
|
|
113
|
+
[id: string]: HubGroup;
|
|
114
|
+
};
|
|
115
|
+
/** Of the groups an employer picked to work with, the ones that also make them a
|
|
116
|
+
* member. Picking "North" as somewhere you want to work is a statement that you
|
|
117
|
+
* belong there, so the hub doesn't have to file them by hand afterwards — but only
|
|
118
|
+
* for groups the hub marked as applying to employers. */
|
|
119
|
+
export declare const groupsGrantingMembership: (selectedGroupIds: string[], groups: {
|
|
120
|
+
[id: string]: HubGroup;
|
|
121
|
+
}) => string[];
|
package/lib/groups.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.groupsGrantingMembership = exports.groupsFor = exports.resolveGroupMembers = exports.resolveEmployerSchools = exports.employerNeedsTriage = exports.permittedSchools = exports.schoolsInGroups = exports.approvedHubSchools = exports.getEmployerSharing = exports.getEmployerGroupIds = exports.getSchoolGroupIds = exports.getSharingScope = void 0;
|
|
4
|
+
/** The hub's policy. Absent means unrestricted, which is how every hub behaved
|
|
5
|
+
* before group membership existed — so nothing changes until a hub opts in. */
|
|
6
|
+
const getSharingScope = (hub) => hub?.groupSettings?.employerSharingScope ?? "unrestricted";
|
|
7
|
+
exports.getSharingScope = getSharingScope;
|
|
8
|
+
/** School membership, falling back to the pre-migration field. Queries can't do
|
|
9
|
+
* this fallback, so the migration backfills `groups` and leaves `schoolGroups` in
|
|
10
|
+
* place; this covers anything read into memory before that has run. */
|
|
11
|
+
const getSchoolGroupIds = (school, hubId) => {
|
|
12
|
+
const link = school?.careersHubLinks?.[hubId];
|
|
13
|
+
return link?.groups ?? link?.schoolGroups ?? [];
|
|
14
|
+
};
|
|
15
|
+
exports.getSchoolGroupIds = getSchoolGroupIds;
|
|
16
|
+
/** Employer membership. No legacy fallback: `savedBy[hub].schoolGroups` was the
|
|
17
|
+
* employer's intent, not membership, and reading it as membership would silently
|
|
18
|
+
* turn a preference into a hub-assigned region. */
|
|
19
|
+
const getEmployerGroupIds = (employer, hubId) => employer?.savedBy?.[hubId]?.groups ?? [];
|
|
20
|
+
exports.getEmployerGroupIds = getEmployerGroupIds;
|
|
21
|
+
/** The employer's stated intent, migrating the legacy shape on read. An employer
|
|
22
|
+
* with no record of a preference is treated as having offered everyone, which is
|
|
23
|
+
* what the request form defaulted to before this existed. */
|
|
24
|
+
const getEmployerSharing = (employer, hubId) => {
|
|
25
|
+
const saved = employer?.savedBy?.[hubId];
|
|
26
|
+
if (saved?.sharing)
|
|
27
|
+
return saved.sharing;
|
|
28
|
+
const legacy = saved?.schoolGroups;
|
|
29
|
+
if (legacy && ((legacy.groups?.length ?? 0) > 0 || (legacy.specificSchools?.length ?? 0) > 0)) {
|
|
30
|
+
return { mode: "custom", groups: legacy.groups ?? [], specificSchools: legacy.specificSchools ?? [] };
|
|
31
|
+
}
|
|
32
|
+
return { mode: "all" };
|
|
33
|
+
};
|
|
34
|
+
exports.getEmployerSharing = getEmployerSharing;
|
|
35
|
+
const uniq = (ids) => [...new Set(ids)];
|
|
36
|
+
/** Schools in a hub that have accepted their link. The gate on every resolution —
|
|
37
|
+
* an invited-but-not-joined school is not reachable however the groups fall. */
|
|
38
|
+
const approvedHubSchools = (schools, hubId) => Object.entries(schools || {})
|
|
39
|
+
.filter(([, s]) => s?.careersHubLinks?.[hubId]?.status === "approved")
|
|
40
|
+
.map(([id]) => id);
|
|
41
|
+
exports.approvedHubSchools = approvedHubSchools;
|
|
42
|
+
/** Schools belonging to any of `groupIds`. Union, not intersection: a member of
|
|
43
|
+
* two regions reaches both. */
|
|
44
|
+
const schoolsInGroups = (groupIds, hubId, schools) => uniq(Object.entries(schools || {})
|
|
45
|
+
.filter(([, s]) => (0, exports.getSchoolGroupIds)(s, hubId).some((g) => groupIds.includes(g)))
|
|
46
|
+
.map(([id]) => id));
|
|
47
|
+
exports.schoolsInGroups = schoolsInGroups;
|
|
48
|
+
/** The ceiling membership imposes. Unrestricted scope, or an employer the hub
|
|
49
|
+
* hasn't put in a group yet, means no ceiling — see `employerNeedsTriage` for why
|
|
50
|
+
* an ungrouped employer isn't clamped to nothing. */
|
|
51
|
+
const permittedSchools = (employer, hubId, hub, schools) => {
|
|
52
|
+
const approved = (0, exports.approvedHubSchools)(schools, hubId);
|
|
53
|
+
if ((0, exports.getSharingScope)(hub) !== "membership")
|
|
54
|
+
return approved;
|
|
55
|
+
const membership = (0, exports.getEmployerGroupIds)(employer, hubId);
|
|
56
|
+
if (membership.length === 0)
|
|
57
|
+
return approved;
|
|
58
|
+
const inGroups = (0, exports.schoolsInGroups)(membership, hubId, schools);
|
|
59
|
+
return approved.filter((id) => inGroups.includes(id));
|
|
60
|
+
};
|
|
61
|
+
exports.permittedSchools = permittedSchools;
|
|
62
|
+
/** An employer the hub has yet to place in a group, while scoping is on. Their
|
|
63
|
+
* request is accepted but held for the hub rather than fanned out — failing closed
|
|
64
|
+
* on submission would turn away brand-new employers, who are exactly the ones with
|
|
65
|
+
* no membership yet. Assigning them a group is what releases it. */
|
|
66
|
+
const employerNeedsTriage = (employer, hubId, hub) => (0, exports.getSharingScope)(hub) === "membership" && (0, exports.getEmployerGroupIds)(employer, hubId).length === 0;
|
|
67
|
+
exports.employerNeedsTriage = employerNeedsTriage;
|
|
68
|
+
/**
|
|
69
|
+
* Where an employer's offer actually lands: their intent, narrowed by membership
|
|
70
|
+
* when the hub has asked for that, and always narrowed to approved schools.
|
|
71
|
+
*/
|
|
72
|
+
const resolveEmployerSchools = (employer, hubId, hub, schools) => {
|
|
73
|
+
const scope = (0, exports.getSharingScope)(hub);
|
|
74
|
+
const approved = (0, exports.approvedHubSchools)(schools, hubId);
|
|
75
|
+
const sharing = (0, exports.getEmployerSharing)(employer, hubId);
|
|
76
|
+
const intended = sharing.mode === "all" ? approved : uniq([
|
|
77
|
+
...(0, exports.schoolsInGroups)(sharing.groups ?? [], hubId, schools),
|
|
78
|
+
...(sharing.specificSchools ?? []),
|
|
79
|
+
]).filter((id) => approved.includes(id));
|
|
80
|
+
const permitted = (0, exports.permittedSchools)(employer, hubId, hub, schools);
|
|
81
|
+
const resolved = intended.filter((id) => permitted.includes(id));
|
|
82
|
+
const membership = (0, exports.getEmployerGroupIds)(employer, hubId);
|
|
83
|
+
const conflicts = [];
|
|
84
|
+
// Reported whatever the scope, because it's a fact about the employer's record
|
|
85
|
+
// rather than about the clamp: the hub filed them under a region they never
|
|
86
|
+
// agreed to work with, and will want to know before the setting is switched on.
|
|
87
|
+
if (sharing.mode === "custom" && membership.some((g) => !(sharing.groups ?? []).includes(g))) {
|
|
88
|
+
conflicts.push("membershipOutsideConsent");
|
|
89
|
+
}
|
|
90
|
+
if (intended.length > 0 && resolved.length === 0) {
|
|
91
|
+
conflicts.push("emptyReach");
|
|
92
|
+
}
|
|
93
|
+
return { schools: resolved, intended, clamped: resolved.length < intended.length, conflicts, scope };
|
|
94
|
+
};
|
|
95
|
+
exports.resolveEmployerSchools = resolveEmployerSchools;
|
|
96
|
+
/** Both sides of a group, for management screens and pickers. */
|
|
97
|
+
const resolveGroupMembers = (groupId, hubId, members) => ({
|
|
98
|
+
schools: Object.entries(members.schools || {})
|
|
99
|
+
.filter(([, s]) => (0, exports.getSchoolGroupIds)(s, hubId).includes(groupId))
|
|
100
|
+
.map(([id]) => id),
|
|
101
|
+
employers: Object.entries(members.employers || {})
|
|
102
|
+
.filter(([, e]) => (0, exports.getEmployerGroupIds)(e, hubId).includes(groupId))
|
|
103
|
+
.map(([id]) => id),
|
|
104
|
+
});
|
|
105
|
+
exports.resolveGroupMembers = resolveGroupMembers;
|
|
106
|
+
/** Groups offered to a given member type. Absent `appliesTo` means schools only —
|
|
107
|
+
* every group created before employers had membership. */
|
|
108
|
+
const groupsFor = (groups, memberType) => Object.fromEntries(Object.entries(groups || {})
|
|
109
|
+
.filter(([, g]) => (g.appliesTo ?? ["school"]).includes(memberType)));
|
|
110
|
+
exports.groupsFor = groupsFor;
|
|
111
|
+
/** Of the groups an employer picked to work with, the ones that also make them a
|
|
112
|
+
* member. Picking "North" as somewhere you want to work is a statement that you
|
|
113
|
+
* belong there, so the hub doesn't have to file them by hand afterwards — but only
|
|
114
|
+
* for groups the hub marked as applying to employers. */
|
|
115
|
+
const groupsGrantingMembership = (selectedGroupIds, groups) => selectedGroupIds.filter((id) => (groups?.[id]?.appliesTo ?? ["school"]).includes("employer"));
|
|
116
|
+
exports.groupsGrantingMembership = groupsGrantingMembership;
|
|
117
|
+
//# sourceMappingURL=groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../src/groups.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|