@ikonintegration/module-config-api 2.0.20 → 2.0.22
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/Api.ts +62 -17
- package/CacheClient.ts +57 -55
- package/CacheTypes.ts +271 -1
- package/dist/Api.d.ts +62 -17
- package/dist/Api.js +1 -1
- package/dist/Api.js.map +1 -1
- package/dist/CacheClient.d.ts +16 -22
- package/dist/CacheClient.js +15 -21
- package/dist/CacheClient.js.map +1 -1
- package/dist/CacheTypes.d.ts +300 -3
- package/dist/CacheTypes.js +1 -1
- package/dist/MemoryCache.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/index.ts +12 -1
- package/package.json +1 -1
package/dist/CacheClient.js
CHANGED
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CacheClient = void 0;
|
|
4
4
|
// @ts-nocheck — This file is compiled in CI alongside generated sources (Api.js)
|
|
5
|
-
const Api_js_1 = require("./Api.js");
|
|
6
5
|
const MemoryCache_js_1 = require("./MemoryCache.js");
|
|
7
6
|
const CacheTypes_js_1 = require("./CacheTypes.js");
|
|
8
7
|
/**
|
|
9
8
|
* Extended client that wraps the auto-generated Api with Redis cache support.
|
|
10
|
-
* Provides direct Redis-backed lookups for customers, tenants, certifications, and courses
|
|
9
|
+
* Provides direct Redis-backed lookups for expanded customers, tenants, certifications, and courses
|
|
10
|
+
* as they are stored in the persistent cache (not the raw API responses).
|
|
11
11
|
*
|
|
12
12
|
* Usage:
|
|
13
13
|
* ```ts
|
|
14
|
-
* import { CacheClient } from "@ikonintegration/module-config-api
|
|
14
|
+
* import { CacheClient } from "@ikonintegration/module-config-api";
|
|
15
15
|
*
|
|
16
16
|
* const client = new CacheClient({
|
|
17
|
-
* // API layer (passed to the generated Api client)
|
|
18
17
|
* baseUrl: "https://api.example.com",
|
|
19
|
-
* // Cache layer (optional — enables Redis-backed lookups)
|
|
20
18
|
* cache: {
|
|
21
19
|
* endpoint: "redis.example.com",
|
|
22
20
|
* username: "default",
|
|
@@ -30,10 +28,6 @@ const CacheTypes_js_1 = require("./CacheTypes.js");
|
|
|
30
28
|
class CacheClient {
|
|
31
29
|
constructor(options) {
|
|
32
30
|
this._remoteCache = null;
|
|
33
|
-
this.api = new Api_js_1.Api({
|
|
34
|
-
baseURL: options.baseUrl,
|
|
35
|
-
...options.baseApiParams,
|
|
36
|
-
});
|
|
37
31
|
this._localCache = new MemoryCache_js_1.MemoryCache();
|
|
38
32
|
this._cacheConfig = options.cache || null;
|
|
39
33
|
}
|
|
@@ -97,18 +91,18 @@ class CacheClient {
|
|
|
97
91
|
/********* CACHE LAYER — Certifications & Courses *********/
|
|
98
92
|
async getCertificationByID(certID, tenantID) {
|
|
99
93
|
const tenant = await this.getTenantByID(tenantID);
|
|
100
|
-
if (!tenant
|
|
94
|
+
if (!tenant?.certifications)
|
|
101
95
|
return null;
|
|
102
|
-
return tenant.certifications.find(
|
|
96
|
+
return tenant.certifications.find(c => c.id === certID) || null;
|
|
103
97
|
}
|
|
104
98
|
async getCourseByID(courseID, tenantID) {
|
|
105
99
|
const tenant = await this.getTenantByID(tenantID);
|
|
106
|
-
if (!tenant
|
|
100
|
+
if (!tenant?.certifications)
|
|
107
101
|
return null;
|
|
108
102
|
for (const cert of tenant.certifications) {
|
|
109
103
|
for (const req of cert.requirements || []) {
|
|
110
104
|
if (Array.isArray(req)) {
|
|
111
|
-
const found = req.find(
|
|
105
|
+
const found = req.find(r => r.id === courseID);
|
|
112
106
|
if (found)
|
|
113
107
|
return found;
|
|
114
108
|
}
|
|
@@ -120,14 +114,14 @@ class CacheClient {
|
|
|
120
114
|
}
|
|
121
115
|
async getCourseInCertificationByID(certificationID, courseID, tenantID) {
|
|
122
116
|
const tenant = await this.getTenantByID(tenantID);
|
|
123
|
-
if (!tenant
|
|
117
|
+
if (!tenant?.certifications)
|
|
124
118
|
return null;
|
|
125
|
-
const cert = tenant.certifications.find(
|
|
119
|
+
const cert = tenant.certifications.find(c => c.id === certificationID);
|
|
126
120
|
if (!cert)
|
|
127
121
|
return null;
|
|
128
122
|
for (const req of cert.requirements || []) {
|
|
129
123
|
if (Array.isArray(req)) {
|
|
130
|
-
const found = req.find(
|
|
124
|
+
const found = req.find(r => r.id === courseID);
|
|
131
125
|
if (found)
|
|
132
126
|
return found;
|
|
133
127
|
}
|
|
@@ -138,7 +132,7 @@ class CacheClient {
|
|
|
138
132
|
}
|
|
139
133
|
async getAllCoursesByTenantID(tenantID) {
|
|
140
134
|
const tenant = await this.getTenantByID(tenantID);
|
|
141
|
-
if (!tenant
|
|
135
|
+
if (!tenant?.certifications)
|
|
142
136
|
return null;
|
|
143
137
|
const courses = [];
|
|
144
138
|
for (const cert of tenant.certifications) {
|
|
@@ -155,7 +149,7 @@ class CacheClient {
|
|
|
155
149
|
}
|
|
156
150
|
async getAllCoursesByCertificationID(certID, tenantID) {
|
|
157
151
|
const tenant = await this.getTenantByID(tenantID);
|
|
158
|
-
if (!tenant
|
|
152
|
+
if (!tenant?.certifications)
|
|
159
153
|
return null;
|
|
160
154
|
const courses = [];
|
|
161
155
|
for (const cert of tenant.certifications) {
|
|
@@ -182,7 +176,7 @@ class CacheClient {
|
|
|
182
176
|
const filtered = allTenants.filter(t => !customerID || t.customerID === customerID);
|
|
183
177
|
const courses = [];
|
|
184
178
|
for (const tenant of filtered) {
|
|
185
|
-
if (!
|
|
179
|
+
if (!tenant.certifications)
|
|
186
180
|
continue;
|
|
187
181
|
for (const cert of tenant.certifications) {
|
|
188
182
|
for (const req of cert.requirements || []) {
|
|
@@ -204,9 +198,9 @@ class CacheClient {
|
|
|
204
198
|
/********* CACHE LAYER — Course Providers *********/
|
|
205
199
|
async getCourseProviderByIDs(courseProviderID, customerID) {
|
|
206
200
|
const customer = await this.getCustomerByID(customerID);
|
|
207
|
-
if (!customer
|
|
201
|
+
if (!customer?.allowedOnlineCourseProviders)
|
|
208
202
|
return null;
|
|
209
|
-
return customer.
|
|
203
|
+
return customer.allowedOnlineCourseProviders.find(p => p.id === courseProviderID) || null;
|
|
210
204
|
}
|
|
211
205
|
/********* Private *********/
|
|
212
206
|
async _getAllRemoteCustomers() {
|
package/dist/CacheClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheClient.js","sourceRoot":"","sources":["../CacheClient.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"CacheClient.js","sourceRoot":"","sources":["../CacheClient.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AACjF,qDAA8C;AAC9C,mDAQwB;AAExB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAOE,YAAY,OAAgC;QAJpC,iBAAY,GAAqB,IAAI,CAAA;QAK3C,IAAI,CAAC,WAAW,GAAG,IAAI,4BAAW,EAAE,CAAA;QACpC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAA;IAC3C,CAAC;IAED,6CAA6C;IAE7C,KAAK,CAAC,eAAe;QACnB,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAmB,8BAAc,CAAC,cAAc,CAAC,CAAA;QAC7F,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACnD,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAClD,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAA;YAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,8BAAc,CAAC,cAAc,EAAE,YAAY,EAAE,8BAAc,CAAC,eAAe,CAAC,CAAA;QACxG,CAAC;QACD,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,sBAAsB;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAiB,GAAG,8BAAc,CAAC,cAAc,GAAG,UAAU,EAAE,CAAC,CAAA;QACzG,wCAAwC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAmB,8BAAc,CAAC,cAAc,CAAC,CAAA;YAC/F,QAAQ,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,IAAI,IAAI,CAAA;QACjE,CAAC;QACD,uBAAuB;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,UAAU,CAAC,CAAA;YAC3D,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,8BAAc,CAAC,cAAc,GAAG,UAAU,EAAE,CAAC,CAAA;YACzF,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YACrB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC1B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,8BAAc,CAAC,cAAc,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,8BAAc,CAAC,WAAW,CAAC,CAAA;QAClH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,2CAA2C;IAE3C,KAAK,CAAC,aAAa;QACjB,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAiB,8BAAc,CAAC,YAAY,CAAC,CAAA;QACvF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;YACjD,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;YAC9C,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAA;YAC5B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,8BAAc,CAAC,YAAY,EAAE,UAAU,EAAE,8BAAc,CAAC,aAAa,CAAC,CAAA;QAClG,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAe,GAAG,8BAAc,CAAC,YAAY,GAAG,QAAQ,EAAE,CAAC,CAAA;QACjG,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAA;YACvD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,8BAAc,CAAC,YAAY,GAAG,QAAQ,EAAE,CAAC,CAAA;YACrF,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YACrB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,8BAAc,CAAC,YAAY,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE,8BAAc,CAAC,SAAS,CAAC,CAAA;QAC1G,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,4DAA4D;IAE5D,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,QAAgB;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,EAAE,cAAc;YAAE,OAAO,IAAI,CAAA;QACxC,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,QAAgB;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,EAAE,cAAc;YAAE,OAAO,IAAI,CAAA;QACxC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;oBAC9C,IAAI,KAAK;wBAAE,OAAO,KAAK,CAAA;gBACzB,CAAC;qBAAM,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAA;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,eAAuB,EACvB,QAAgB,EAChB,QAAgB;QAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,EAAE,cAAc;YAAE,OAAO,IAAI,CAAA;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,CAAA;QACtE,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;gBAC9C,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAA;YACzB,CAAC;iBAAM,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ;gBAAE,OAAO,GAAG,CAAA;QAC5C,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,QAAgB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,EAAE,cAAc;YAAE,OAAO,IAAI,CAAA;QACxC,MAAM,OAAO,GAAmB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,KAAK,MAAM,GAAG,IAAI,GAAG;wBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC1C,CAAC;;oBAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,MAAc,EAAE,QAAgB;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,EAAE,cAAc;YAAE,OAAO,IAAI,CAAA;QACxC,MAAM,OAAO,GAAmB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM;gBAAE,SAAQ;YAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,KAAK,MAAM,GAAG,IAAI,GAAG;wBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC1C,CAAC;;oBAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,UAAyB;QACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC7C,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAA;QAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAA;QACnF,MAAM,OAAO,GAAmB,EAAE,CAAA;QAClC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,cAAc;gBAAE,SAAQ;YACpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBACzC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;oBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;4BACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;gCAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;wBAC5D,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;4BAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBAC5D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,oDAAoD;IAEpD,KAAK,CAAC,sBAAsB,CAAC,gBAAwB,EAAE,UAAkB;QACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QACvD,IAAI,CAAC,QAAQ,EAAE,4BAA4B;YAAE,OAAO,IAAI,CAAA;QACxD,OAAO,QAAQ,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,IAAI,IAAI,CAAA;IAC3F,CAAC;IAED,6BAA6B;IAErB,KAAK,CAAC,sBAAsB;QAClC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAA;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,8BAAc,CAAC,cAAc,GAAG,CAAC,CAAA;QACjF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAChE,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAA;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,8BAAc,CAAC,YAAY,GAAG,CAAC,CAAA;QAC/E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAChE,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAM;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAA;QAEhC,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,CAAC,wBAAwB,CAAC,CAAA;YAChD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;YAChD,IAAI,CAAC,YAAY,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;gBACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;aACpC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAA;YACzD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;YACtD,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;gBACpC,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;aACpC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF"}
|
package/dist/CacheTypes.d.ts
CHANGED
|
@@ -19,13 +19,310 @@ export interface CacheConfig {
|
|
|
19
19
|
version?: number;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Cache key prefixes and TTL constants (matching the
|
|
22
|
+
* Cache key prefixes and TTL constants (matching the persistent cache).
|
|
23
23
|
*/
|
|
24
24
|
export declare const CacheConstants: {
|
|
25
|
-
readonly CustomerPrefix:
|
|
25
|
+
readonly CustomerPrefix: 'CO::';
|
|
26
26
|
readonly AllCustomersTTL: number;
|
|
27
27
|
readonly CustomerTTL: 60;
|
|
28
|
-
readonly TenantPrefix:
|
|
28
|
+
readonly TenantPrefix: 'TN::';
|
|
29
29
|
readonly AllTenantsTTL: number;
|
|
30
30
|
readonly TenantTTL: 60;
|
|
31
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Course provider object as stored in the expanded customer cache.
|
|
34
|
+
*/
|
|
35
|
+
export interface CachedCourseProvider {
|
|
36
|
+
id: string;
|
|
37
|
+
type?: string;
|
|
38
|
+
onlineTemplateIDs?: string[];
|
|
39
|
+
provider?: any;
|
|
40
|
+
createdBy?: string;
|
|
41
|
+
createdOn?: number;
|
|
42
|
+
updatedBy?: string;
|
|
43
|
+
updatedOn?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Tile permissions as injected into the cached customer.
|
|
47
|
+
*/
|
|
48
|
+
export interface CachedTilePermissions {
|
|
49
|
+
customerID?: string;
|
|
50
|
+
tilePermissions?: Record<string, any>;
|
|
51
|
+
[key: string]: any;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The expanded customer object stored in the persistent cache.
|
|
55
|
+
* Differs from CustomerResponse:
|
|
56
|
+
* - `allowedOnlineCourseProviders` contains full CourseProvider objects (not just IDs)
|
|
57
|
+
* - `tilePermissions` is injected from the PortalTilePermissions table
|
|
58
|
+
*/
|
|
59
|
+
export interface CachedCustomer {
|
|
60
|
+
id: string;
|
|
61
|
+
createdBy?: string;
|
|
62
|
+
createdOn?: number;
|
|
63
|
+
updatedBy?: string;
|
|
64
|
+
updatedOn?: number;
|
|
65
|
+
timezoneCode?: string;
|
|
66
|
+
adminRole?: string;
|
|
67
|
+
userRole?: string;
|
|
68
|
+
instructorRole?: string;
|
|
69
|
+
idmKey?: string;
|
|
70
|
+
idmToken?: string;
|
|
71
|
+
idmAPIUser?: string;
|
|
72
|
+
idmAPIPassword?: string;
|
|
73
|
+
mailerSender?: string;
|
|
74
|
+
preventUserFromUpdatingNames?: boolean;
|
|
75
|
+
orgModEndpoint?: string;
|
|
76
|
+
orgAdminRole?: string;
|
|
77
|
+
orgSubAdminRole?: string;
|
|
78
|
+
orgUserRole?: string;
|
|
79
|
+
orgModNamespace?: string;
|
|
80
|
+
/** Expanded: full CourseProvider objects (not just IDs) */
|
|
81
|
+
allowedOnlineCourseProviders?: CachedCourseProvider[];
|
|
82
|
+
allowedForeignReqs?: string[];
|
|
83
|
+
displayName?: string;
|
|
84
|
+
sharedModuleLicenseAPIKey?: string;
|
|
85
|
+
sharedModuleConfigAPIKey?: string;
|
|
86
|
+
sharedModuleAuditingAPIKey?: string;
|
|
87
|
+
sharedModuleAgreementAPIKey?: string;
|
|
88
|
+
sharedModuleOrganizationAPIKey?: string;
|
|
89
|
+
sharedModuleClassroomAPIKey?: string;
|
|
90
|
+
sharedModuleMailerAPIKey?: string;
|
|
91
|
+
authConfig?: Record<string, any>;
|
|
92
|
+
portalConfig?: {
|
|
93
|
+
theme?: string;
|
|
94
|
+
domain?: string;
|
|
95
|
+
cookiesHubDomain?: string;
|
|
96
|
+
acceptConnectionsFrom?: string;
|
|
97
|
+
};
|
|
98
|
+
theme?: Record<string, any>;
|
|
99
|
+
domain?: string;
|
|
100
|
+
cookiesHubDomain?: string;
|
|
101
|
+
acceptConnectionsFrom?: string[];
|
|
102
|
+
worksafeTerm?: string;
|
|
103
|
+
cancelationPolicies?: Array<{
|
|
104
|
+
id?: string;
|
|
105
|
+
description?: string;
|
|
106
|
+
cancelPolicy?: {
|
|
107
|
+
isBusinessDays?: boolean;
|
|
108
|
+
canBeCanceled?: boolean;
|
|
109
|
+
canBeRescheduled?: boolean;
|
|
110
|
+
rules?: Array<{
|
|
111
|
+
untilDaysBefore?: number;
|
|
112
|
+
percentageRefunded?: number;
|
|
113
|
+
amountCharged?: number;
|
|
114
|
+
deductEnrolmentPayment?: boolean;
|
|
115
|
+
}>;
|
|
116
|
+
};
|
|
117
|
+
}>;
|
|
118
|
+
salesTaxLabel?: string;
|
|
119
|
+
ignoreCustomAttributesForSignUp?: boolean;
|
|
120
|
+
timezone?: string;
|
|
121
|
+
/** Injected from PortalTilePermissions table */
|
|
122
|
+
tilePermissions?: CachedTilePermissions | null;
|
|
123
|
+
cooldownPolicies?: Array<{
|
|
124
|
+
id?: string;
|
|
125
|
+
description?: string;
|
|
126
|
+
cooldownPolicy?: {
|
|
127
|
+
rules?: Array<{
|
|
128
|
+
untilFailedAttempts?: number;
|
|
129
|
+
cooldownPeriod?: number;
|
|
130
|
+
invalidateCourseRequirements?: boolean;
|
|
131
|
+
lockApplication?: boolean;
|
|
132
|
+
blockCourse?: boolean;
|
|
133
|
+
autoUnlockInDays?: number;
|
|
134
|
+
}>;
|
|
135
|
+
};
|
|
136
|
+
}>;
|
|
137
|
+
ui?: {
|
|
138
|
+
banner?: {
|
|
139
|
+
type?: string;
|
|
140
|
+
content?: string;
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
featureFlags?: Array<{
|
|
144
|
+
name: string;
|
|
145
|
+
enabled: boolean;
|
|
146
|
+
metadata?: string;
|
|
147
|
+
}>;
|
|
148
|
+
[key: string]: any;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Course object as stored inside cached certification requirements.
|
|
152
|
+
*/
|
|
153
|
+
export interface CachedCourse {
|
|
154
|
+
id: string;
|
|
155
|
+
certificationID: string;
|
|
156
|
+
tenantID?: string;
|
|
157
|
+
customerID?: string;
|
|
158
|
+
productID?: string;
|
|
159
|
+
waivePayments?: boolean;
|
|
160
|
+
coolDownPeriod?: number | number[] | null;
|
|
161
|
+
coolDownPolicy?: any;
|
|
162
|
+
enableRequestToEnrol?: boolean;
|
|
163
|
+
materialsProductID?: string;
|
|
164
|
+
maxRetry?: number;
|
|
165
|
+
requirementsIDs?: string[];
|
|
166
|
+
requiredOnRenew?: boolean;
|
|
167
|
+
validityPeriod?: number;
|
|
168
|
+
validityPeriodInMonths?: number;
|
|
169
|
+
validityPeriodInYears?: number;
|
|
170
|
+
webhooks?: string[];
|
|
171
|
+
isRetakeAllowed?: boolean;
|
|
172
|
+
allowStudentUploads?: boolean;
|
|
173
|
+
allowIfAnyRequirementMet?: boolean;
|
|
174
|
+
allowOnlyIfCertificationIsValid?: boolean;
|
|
175
|
+
gracePeriodAfterCertCompletion?: number;
|
|
176
|
+
courseFailWebhooks?: string[];
|
|
177
|
+
cooldownStartWebhooks?: string[];
|
|
178
|
+
cooldownEndWebhooks?: string[];
|
|
179
|
+
lockAfterFailure?: boolean;
|
|
180
|
+
agreementID?: string;
|
|
181
|
+
isMandatory?: boolean;
|
|
182
|
+
points?: number;
|
|
183
|
+
courseBooks?: Array<{
|
|
184
|
+
fileID: string;
|
|
185
|
+
fileName: string;
|
|
186
|
+
attachToEmail?: boolean;
|
|
187
|
+
}>;
|
|
188
|
+
courseCertificateType?: string;
|
|
189
|
+
courseCertificateTemplate?: string;
|
|
190
|
+
courseCertNumberMaskFormat?: string;
|
|
191
|
+
courseCertNumberMode?: string;
|
|
192
|
+
courseCertNumberInitialNumber?: string;
|
|
193
|
+
externalRequirementWebhook?: string;
|
|
194
|
+
reuseCertNumber?: boolean;
|
|
195
|
+
warningDuePaymentRemainingDays?: number;
|
|
196
|
+
warningRemainingDays?: Array<{
|
|
197
|
+
template: string;
|
|
198
|
+
period: number;
|
|
199
|
+
}>;
|
|
200
|
+
onlineWarningRemainingDays?: Array<{
|
|
201
|
+
template: string;
|
|
202
|
+
period: number;
|
|
203
|
+
}>;
|
|
204
|
+
emailComplement?: string;
|
|
205
|
+
emailTemplates?: {
|
|
206
|
+
coursePassed?: string | null;
|
|
207
|
+
courseFailed?: string | null;
|
|
208
|
+
};
|
|
209
|
+
emailEventOverrides?: Array<{
|
|
210
|
+
eventID: string;
|
|
211
|
+
templateID?: string;
|
|
212
|
+
cc?: string[];
|
|
213
|
+
}>;
|
|
214
|
+
displayName?: string;
|
|
215
|
+
cardDescription?: string;
|
|
216
|
+
description?: string;
|
|
217
|
+
uiTerm?: string;
|
|
218
|
+
uiLogo?: string;
|
|
219
|
+
calendarColor?: string;
|
|
220
|
+
showCollapsed?: boolean;
|
|
221
|
+
passUiTerm?: string;
|
|
222
|
+
failUiTerm?: string;
|
|
223
|
+
courseType?: string;
|
|
224
|
+
preventLaunchIfCompleted?: boolean;
|
|
225
|
+
requirementUserAttribIDs?: Array<{
|
|
226
|
+
partition: string;
|
|
227
|
+
attributeName: string;
|
|
228
|
+
description: string;
|
|
229
|
+
}>;
|
|
230
|
+
createdBy?: string;
|
|
231
|
+
createdOn?: number;
|
|
232
|
+
updatedBy?: string;
|
|
233
|
+
updatedOn?: number;
|
|
234
|
+
[key: string]: any;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Training provider object as stored inside cached certifications.
|
|
238
|
+
*/
|
|
239
|
+
export interface CachedTrainingProvider {
|
|
240
|
+
id: string;
|
|
241
|
+
customerID: string;
|
|
242
|
+
name?: string;
|
|
243
|
+
url?: string;
|
|
244
|
+
isDisabled?: boolean;
|
|
245
|
+
createdBy?: string;
|
|
246
|
+
createdOn?: number;
|
|
247
|
+
updatedBy?: string;
|
|
248
|
+
updatedOn?: number;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Application section within a cached certification.
|
|
252
|
+
*/
|
|
253
|
+
export interface CachedApplicationSection {
|
|
254
|
+
applicationEnabled?: boolean;
|
|
255
|
+
equivalenciesSection?: {
|
|
256
|
+
sectionEnabled?: boolean;
|
|
257
|
+
/** Expanded equivalence objects with isDisabled flag */
|
|
258
|
+
options?: Array<{
|
|
259
|
+
id: string;
|
|
260
|
+
isDisabled?: boolean;
|
|
261
|
+
[key: string]: any;
|
|
262
|
+
}>;
|
|
263
|
+
};
|
|
264
|
+
requirementsSection?: {
|
|
265
|
+
sectionEnabled?: boolean;
|
|
266
|
+
/** Expanded requirement objects with isDisabled flag */
|
|
267
|
+
requirements?: Array<{
|
|
268
|
+
id: string;
|
|
269
|
+
isDisabled?: boolean;
|
|
270
|
+
[key: string]: any;
|
|
271
|
+
}>;
|
|
272
|
+
};
|
|
273
|
+
electiveRequirementsSection?: {
|
|
274
|
+
sectionEnabled?: boolean;
|
|
275
|
+
requirements?: Array<{
|
|
276
|
+
id: string;
|
|
277
|
+
isDisabled?: boolean;
|
|
278
|
+
[key: string]: any;
|
|
279
|
+
}>;
|
|
280
|
+
};
|
|
281
|
+
customRequirementsSections?: Array<{
|
|
282
|
+
sectionEnabled?: boolean;
|
|
283
|
+
requirements?: Array<{
|
|
284
|
+
id: string;
|
|
285
|
+
isDisabled?: boolean;
|
|
286
|
+
[key: string]: any;
|
|
287
|
+
}>;
|
|
288
|
+
[key: string]: any;
|
|
289
|
+
}>;
|
|
290
|
+
[key: string]: any;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Certification object as stored inside the cached tenant.
|
|
294
|
+
* Contains expanded requirements (full course objects) and application sections.
|
|
295
|
+
*/
|
|
296
|
+
export interface CachedCertification {
|
|
297
|
+
id: string;
|
|
298
|
+
customerID: string;
|
|
299
|
+
tenantID: string;
|
|
300
|
+
/** Expanded course requirements — can be CachedCourse or CachedCourse[] (grouped alternatives) */
|
|
301
|
+
requirements?: (CachedCourse | CachedCourse[])[];
|
|
302
|
+
application?: CachedApplicationSection;
|
|
303
|
+
renewal?: {
|
|
304
|
+
application?: CachedApplicationSection;
|
|
305
|
+
[key: string]: any;
|
|
306
|
+
};
|
|
307
|
+
/** Training providers relevant to this certification */
|
|
308
|
+
trainingProviders?: CachedTrainingProvider[];
|
|
309
|
+
[key: string]: any;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* The expanded tenant object stored in the persistent cache.
|
|
313
|
+
* Differs from TenantResponse:
|
|
314
|
+
* - `certifications` array is injected with fully expanded certification objects
|
|
315
|
+
* (including courses, applications with equivalencies/requirements, training providers)
|
|
316
|
+
*/
|
|
317
|
+
export interface CachedTenant {
|
|
318
|
+
id: string;
|
|
319
|
+
customerID: string;
|
|
320
|
+
createdBy?: string;
|
|
321
|
+
createdOn?: number;
|
|
322
|
+
updatedBy?: string;
|
|
323
|
+
updatedOn?: number;
|
|
324
|
+
name?: string;
|
|
325
|
+
/** Expanded certifications with full course/application/training provider data */
|
|
326
|
+
certifications?: CachedCertification[];
|
|
327
|
+
[key: string]: any;
|
|
328
|
+
}
|
package/dist/CacheTypes.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CacheConstants = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Cache key prefixes and TTL constants (matching the
|
|
5
|
+
* Cache key prefixes and TTL constants (matching the persistent cache).
|
|
6
6
|
*/
|
|
7
7
|
exports.CacheConstants = {
|
|
8
8
|
// Customer
|
package/dist/MemoryCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryCache.js","sourceRoot":"","sources":["../MemoryCache.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"MemoryCache.js","sourceRoot":"","sources":["../MemoryCache.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH;IAAA;QACU,UAAK,GAAmD,IAAI,GAAG,EAAE,CAAA;IAwB3E,CAAC;IAtBC,QAAQ,CAAU,GAAW;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAC,KAAU,CAAA;IACzB,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,KAAU,EAAE,UAAU,GAAW,CAAC;QACtD,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export * from './Api.js';
|
|
|
6
6
|
export { CacheClient } from './CacheClient.js';
|
|
7
7
|
export { MemoryCache } from './MemoryCache.js';
|
|
8
8
|
export { CacheConstants } from './CacheTypes.js';
|
|
9
|
-
export type { RedisLike, CacheConfig } from './CacheTypes.js';
|
|
9
|
+
export type { RedisLike, CacheConfig, CachedCustomer, CachedTenant, CachedCertification, CachedCourse, CachedCourseProvider, CachedTrainingProvider, CachedApplicationSection, CachedTilePermissions, } from './CacheTypes.js';
|
package/index.ts
CHANGED
|
@@ -11,4 +11,15 @@ export * from './Api.js'
|
|
|
11
11
|
export { CacheClient } from './CacheClient.js'
|
|
12
12
|
export { MemoryCache } from './MemoryCache.js'
|
|
13
13
|
export { CacheConstants } from './CacheTypes.js'
|
|
14
|
-
export type {
|
|
14
|
+
export type {
|
|
15
|
+
RedisLike,
|
|
16
|
+
CacheConfig,
|
|
17
|
+
CachedCustomer,
|
|
18
|
+
CachedTenant,
|
|
19
|
+
CachedCertification,
|
|
20
|
+
CachedCourse,
|
|
21
|
+
CachedCourseProvider,
|
|
22
|
+
CachedTrainingProvider,
|
|
23
|
+
CachedApplicationSection,
|
|
24
|
+
CachedTilePermissions,
|
|
25
|
+
} from './CacheTypes.js'
|