@genesislcap/foundation-comms 14.151.1 → 14.152.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,4 @@
1
+ import { Auth } from '../../auth';
1
2
  import { Connect } from '../../connect';
2
3
  import { KVStorageConfig } from './kv-config.service';
3
4
  import { KeyValue, KeyValueTransfer, KVValue, KVEventFailureResponse } from './kv.types';
@@ -26,8 +27,14 @@ export interface KVStorage {
26
27
  */
27
28
  export declare class DefaultKVStorage implements KVStorage {
28
29
  private connect;
30
+ private auth;
29
31
  private kvStorageConfig;
30
- constructor(connect: Connect, kvStorageConfig?: KVStorageConfig);
32
+ constructor(connect: Connect, auth: Auth, kvStorageConfig?: KVStorageConfig);
33
+ /**
34
+ * Determine whether KV Storage is available for use.
35
+ * @internal
36
+ */
37
+ private checkAvailability;
31
38
  /**
32
39
  * Deletes the specified key-value pairs from the KV storage.
33
40
  * @alpha
@@ -1 +1 @@
1
- {"version":3,"file":"kv.service.d.ts","sourceRoot":"","sources":["../../../../src/storage/kv/kv.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAA0B,MAAM,eAAe,CAAC;AAE9E,OAAO,EAA0B,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC,CAAC;IAC/D,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC,CAAC;CACvE;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAErC,OAAO,CAAC,OAAO;IACG,OAAO,CAAC,eAAe;gBADjC,OAAO,EAAE,OAAO,EACE,eAAe,kBAAyB;IAG7E;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;IAuBpE;;;;;;;;;;;;;;;;;OAiBG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAwBpE;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAqB/B;;;;;;;;;;;;OAYG;IACG,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;CAsB5E;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,iEAAsE,CAAC"}
1
+ {"version":3,"file":"kv.service.d.ts","sourceRoot":"","sources":["../../../../src/storage/kv/kv.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAgB,OAAO,EAA0B,MAAM,eAAe,CAAC;AAE9E,OAAO,EAA0B,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC,CAAC;IAC/D,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC,CAAC;CACvE;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAErC,OAAO,CAAC,OAAO;IAClB,OAAO,CAAC,IAAI;IACS,OAAO,CAAC,eAAe;gBAFjC,OAAO,EAAE,OAAO,EACnB,IAAI,EAAE,IAAI,EACW,eAAe,kBAAyB;IAK7E;;;OAGG;YACW,iBAAiB;IAa/B;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;IAmBpE;;;;;;;;;;;;;;;;;OAiBG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAoBpE;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiB/B;;;;;;;;;;;;OAYG;IACG,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;CAkB5E;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,iEAAsE,CAAC"}
@@ -7,7 +7,7 @@ export const defaultKVStorageConfig = {
7
7
  account: 'genesis',
8
8
  namespace: 'default',
9
9
  authKey: 'kv-default',
10
- authEmail: 'kv@genesis.global',
10
+ authEmail: undefined,
11
11
  };
12
12
  /**
13
13
  * KVStorageConfig DI key.
@@ -1,5 +1,6 @@
1
1
  import { __awaiter, __decorate, __param } from "tslib";
2
2
  import { DI, optional } from '@microsoft/fast-foundation';
3
+ import { Auth } from '../../auth';
3
4
  import { Connect } from '../../connect';
4
5
  import { logger } from '../../utils';
5
6
  import { defaultKVStorageConfig, KVStorageConfig } from './kv-config.service';
@@ -9,9 +10,25 @@ import { KVEventMessageType, KVMessageType, } from './kv.types';
9
10
  * @alpha
10
11
  */
11
12
  let DefaultKVStorage = class DefaultKVStorage {
12
- constructor(connect, kvStorageConfig = defaultKVStorageConfig) {
13
+ constructor(connect, auth, kvStorageConfig = defaultKVStorageConfig) {
13
14
  this.connect = connect;
15
+ this.auth = auth;
14
16
  this.kvStorageConfig = kvStorageConfig;
17
+ this.checkAvailability();
18
+ }
19
+ /**
20
+ * Determine whether KV Storage is available for use.
21
+ * @internal
22
+ */
23
+ checkAvailability() {
24
+ var _a;
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const allSystemTables = yield this.connect.request('SYSTEM_TABLES');
27
+ const isKVStoreAvailable = !!((_a = allSystemTables === null || allSystemTables === void 0 ? void 0 : allSystemTables.REPLY) === null || _a === void 0 ? void 0 : _a.find((table) => table.TABLE_NAME === 'KEY_VALUE'));
28
+ if (!isKVStoreAvailable) {
29
+ logger.error('KV Storage is not available on the server resources. Update your server to use it.');
30
+ }
31
+ });
15
32
  }
16
33
  /**
17
34
  * Deletes the specified key-value pairs from the KV storage.
@@ -34,15 +51,12 @@ let DefaultKVStorage = class DefaultKVStorage {
34
51
  },
35
52
  };
36
53
  const result = yield this.connect.commitEvent(KVEventMessageType.EVENT_KEY_VALUE_DELETE, params);
37
- logger.debug('KV Delete result: ', result);
38
- return new Promise((resolve) => {
39
- if (result && result.MESSAGE_TYPE === 'EVENT_ACK') {
40
- resolve(true);
41
- }
42
- else {
43
- resolve({ ERROR: result.ERROR, WARNING: result.WARNING });
44
- }
45
- });
54
+ if (result && result.MESSAGE_TYPE === 'EVENT_ACK') {
55
+ return true;
56
+ }
57
+ else {
58
+ return { ERROR: result.ERROR, WARNING: result.WARNING };
59
+ }
46
60
  });
47
61
  }
48
62
  /**
@@ -64,24 +78,22 @@ let DefaultKVStorage = class DefaultKVStorage {
64
78
  * ```
65
79
  */
66
80
  get(key) {
81
+ var _a, _b, _c;
67
82
  return __awaiter(this, void 0, void 0, function* () {
68
83
  const params = {
69
84
  REQUEST: {
70
- USER_NAME: this.kvStorageConfig.authEmail,
85
+ USER_NAME: (_a = this.kvStorageConfig.authEmail) !== null && _a !== void 0 ? _a : (_c = (_b = this.auth) === null || _b === void 0 ? void 0 : _b.currentUser) === null || _c === void 0 ? void 0 : _c.username,
71
86
  KEY: key,
72
87
  },
73
88
  };
74
89
  const result = yield this.connect.request(KVMessageType.REQ_KEY_VALUE_READ, params);
75
- logger.debug('KV Get result: ', result);
76
- return new Promise((resolve) => {
77
- if (result && result.REPLY && result.REPLY.length > 0) {
78
- const kvs = result.REPLY.map((kv) => ({ kv: { key: kv.KEY, value: kv.VALUE } }));
79
- resolve(kvs);
80
- }
81
- else {
82
- resolve([]);
83
- }
84
- });
90
+ if (result && result.REPLY && result.REPLY.length > 0) {
91
+ const kvs = result.REPLY.map((kv) => ({ kv: { key: kv.KEY, value: kv.VALUE } }));
92
+ return kvs;
93
+ }
94
+ else {
95
+ return [];
96
+ }
85
97
  });
86
98
  }
87
99
  /**
@@ -97,23 +109,21 @@ let DefaultKVStorage = class DefaultKVStorage {
97
109
  * ```
98
110
  */
99
111
  list() {
112
+ var _a, _b, _c;
100
113
  return __awaiter(this, void 0, void 0, function* () {
101
114
  const params = {
102
115
  REQUEST: {
103
- USER_NAME: this.kvStorageConfig.authEmail,
116
+ USER_NAME: (_a = this.kvStorageConfig.authEmail) !== null && _a !== void 0 ? _a : (_c = (_b = this.auth) === null || _b === void 0 ? void 0 : _b.currentUser) === null || _c === void 0 ? void 0 : _c.username,
104
117
  },
105
118
  };
106
119
  const result = yield this.connect.request(KVMessageType.REQ_KEY_VALUE_LIST, params);
107
- logger.debug('KV List result: ', result);
108
- return new Promise((resolve) => {
109
- if (result && result.REPLY && result.REPLY.length > 0) {
110
- const keys = result.REPLY.map((kv) => kv.KEY);
111
- resolve(keys);
112
- }
113
- else {
114
- resolve([]);
115
- }
116
- });
120
+ if (result && result.REPLY && result.REPLY.length > 0) {
121
+ const keys = result.REPLY.map((kv) => kv.KEY);
122
+ return keys;
123
+ }
124
+ else {
125
+ return [];
126
+ }
117
127
  });
118
128
  }
119
129
  /**
@@ -140,21 +150,19 @@ let DefaultKVStorage = class DefaultKVStorage {
140
150
  },
141
151
  };
142
152
  const result = yield this.connect.commitEvent(KVEventMessageType.EVENT_KEY_VALUE_PUT, params);
143
- logger.debug('KV Put result: ', result);
144
- return new Promise((resolve) => {
145
- if (result && result.MESSAGE_TYPE === 'EVENT_ACK') {
146
- resolve(true);
147
- }
148
- else {
149
- resolve({ ERROR: result.ERROR, WARNING: result.WARNING });
150
- }
151
- });
153
+ if (result && result.MESSAGE_TYPE === 'EVENT_ACK') {
154
+ return true;
155
+ }
156
+ else {
157
+ return { ERROR: result.ERROR, WARNING: result.WARNING };
158
+ }
152
159
  });
153
160
  }
154
161
  };
155
162
  DefaultKVStorage = __decorate([
156
163
  __param(0, Connect),
157
- __param(1, optional(KVStorageConfig))
164
+ __param(1, Auth),
165
+ __param(2, optional(KVStorageConfig))
158
166
  ], DefaultKVStorage);
159
167
  export { DefaultKVStorage };
160
168
  /**
@@ -1245,8 +1245,14 @@ export declare const defaultHttpConnectConfig: HttpConnectConfig;
1245
1245
  */
1246
1246
  export declare class DefaultKVStorage implements KVStorage {
1247
1247
  private connect;
1248
+ private auth;
1248
1249
  private kvStorageConfig;
1249
- constructor(connect: Connect, kvStorageConfig?: KVStorageConfig);
1250
+ constructor(connect: Connect, auth: Auth, kvStorageConfig?: KVStorageConfig);
1251
+ /**
1252
+ * Determine whether KV Storage is available for use.
1253
+ * @internal
1254
+ */
1255
+ private checkAvailability;
1250
1256
  /**
1251
1257
  * Deletes the specified key-value pairs from the KV storage.
1252
1258
  * @alpha
@@ -751,7 +751,7 @@ export const defaultHttpConnectConfig: HttpConnectConfig;
751
751
 
752
752
  // @alpha
753
753
  export class DefaultKVStorage implements KVStorage {
754
- constructor(connect: Connect, kvStorageConfig?: KVStorageConfig);
754
+ constructor(connect: Connect, auth: Auth, kvStorageConfig?: KVStorageConfig);
755
755
  delete(keys: string[]): Promise<true | KVEventFailureResponse>;
756
756
  get<T = KVValue>(key?: string): Promise<KeyValueTransfer<T>[]>;
757
757
  list(): Promise<string[]>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-comms",
3
3
  "description": "Genesis Foundation UI Comms",
4
- "version": "14.151.1",
4
+ "version": "14.152.0",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -59,13 +59,13 @@
59
59
  "test:debug": "genx test --debug"
60
60
  },
61
61
  "devDependencies": {
62
- "@genesislcap/foundation-testing": "14.151.1",
63
- "@genesislcap/genx": "14.151.1",
64
- "@genesislcap/rollup-builder": "14.151.1",
65
- "@genesislcap/ts-builder": "14.151.1",
66
- "@genesislcap/uvu-playwright-builder": "14.151.1",
67
- "@genesislcap/vite-builder": "14.151.1",
68
- "@genesislcap/webpack-builder": "14.151.1",
62
+ "@genesislcap/foundation-testing": "14.152.0",
63
+ "@genesislcap/genx": "14.152.0",
64
+ "@genesislcap/rollup-builder": "14.152.0",
65
+ "@genesislcap/ts-builder": "14.152.0",
66
+ "@genesislcap/uvu-playwright-builder": "14.152.0",
67
+ "@genesislcap/vite-builder": "14.152.0",
68
+ "@genesislcap/webpack-builder": "14.152.0",
69
69
  "@types/js-cookie": "^3.0.2",
70
70
  "@types/json-schema": "^7.0.11",
71
71
  "@types/webappsec-credential-management": "^0.6.2",
@@ -73,8 +73,8 @@
73
73
  },
74
74
  "dependencies": {
75
75
  "@finos/fdc3": "^1.2.0",
76
- "@genesislcap/foundation-logger": "14.151.1",
77
- "@genesislcap/foundation-utils": "14.151.1",
76
+ "@genesislcap/foundation-logger": "14.152.0",
77
+ "@genesislcap/foundation-utils": "14.152.0",
78
78
  "@microsoft/fast-element": "^1.12.0",
79
79
  "@microsoft/fast-foundation": "^2.49.4",
80
80
  "analytics": "^0.8.0",
@@ -91,5 +91,5 @@
91
91
  "publishConfig": {
92
92
  "access": "public"
93
93
  },
94
- "gitHead": "b56ae0d22c24098e5fd2e771a9ec1749de9cabbf"
94
+ "gitHead": "f3d0250895a2e94b877e74ed2e2767831ee7b1de"
95
95
  }