@telia-ace/alliance-internal-node-utilities 1.0.3 → 1.0.4-next.0

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,19 +1,196 @@
1
- import { InjectPinoLogger, LoggerModule as LoggerModule$1 } from 'nestjs-pino';
1
+ import { InjectPinoLogger, LoggerModule as LoggerModule$1, PinoLogger } from 'nestjs-pino';
2
2
  export { LoggerErrorInterceptor } from 'nestjs-pino';
3
- import RedisStore from 'connect-redis';
3
+ import { Store } from 'express-session';
4
4
  import { auth } from 'express-openid-connect';
5
5
  import { createClient } from 'redis';
6
6
  import { sign } from 'jsonwebtoken';
7
7
  import { validate } from 'jsonschema';
8
- import { resolve, dirname, relative } from 'node:path';
9
- import { readFileSync, writeFileSync, rmSync, existsSync, mkdirSync, createWriteStream, createReadStream, renameSync } from 'node:fs';
8
+ import { existsSync, mkdirSync, writeFileSync, readFileSync, rmSync } from 'node:fs';
9
+ import { resolve } from 'node:path';
10
10
  import { GraphQLError } from 'graphql';
11
11
  import { HttpStatus, HttpException, Catch, Injectable, Module } from '@nestjs/common';
12
12
  import { ConfigModule, ConfigService } from '@nestjs/config';
13
13
  import _slugify from 'slugify';
14
- import { pipeline } from 'node:stream/promises';
15
14
 
16
- var SharedConfigKeys = /* @__PURE__ */ ((SharedConfigKeys2) => {
15
+ var __defProp = Object.defineProperty;
16
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
17
+ var noop = /* @__PURE__ */ __name((_err, _data) => {
18
+ }, "noop");
19
+ var RedisStore = class RedisStore2 extends Store {
20
+ static {
21
+ __name(this, "RedisStore");
22
+ }
23
+ constructor(opts) {
24
+ super();
25
+ this.prefix = opts.prefix == null ? "sess:" : opts.prefix;
26
+ this.scanCount = opts.scanCount || 100;
27
+ this.serializer = opts.serializer || JSON;
28
+ this.ttl = opts.ttl || 86400;
29
+ this.disableTTL = opts.disableTTL || false;
30
+ this.disableTouch = opts.disableTouch || false;
31
+ this.client = this.normalizeClient(opts.client);
32
+ }
33
+ // Create a redis and ioredis compatible client
34
+ normalizeClient(client) {
35
+ let isRedis = "scanIterator" in client;
36
+ return {
37
+ get: (key) => client.get(key),
38
+ set: (key, val, ttl) => {
39
+ if (ttl) {
40
+ return isRedis ? client.set(key, val, {
41
+ EX: ttl
42
+ }) : client.set(key, val, "EX", ttl);
43
+ }
44
+ return client.set(key, val);
45
+ },
46
+ del: (key) => client.del(key),
47
+ expire: (key, ttl) => client.expire(key, ttl),
48
+ mget: (keys) => isRedis ? client.mGet(keys) : client.mget(keys),
49
+ scanIterator: (match, count) => {
50
+ if (isRedis)
51
+ return client.scanIterator({
52
+ MATCH: match,
53
+ COUNT: count
54
+ });
55
+ return async function* () {
56
+ let [c, xs] = await client.scan("0", "MATCH", match, "COUNT", count);
57
+ for (let key of xs)
58
+ yield key;
59
+ while (c !== "0") {
60
+ [c, xs] = await client.scan(c, "MATCH", match, "COUNT", count);
61
+ for (let key of xs)
62
+ yield key;
63
+ }
64
+ }();
65
+ }
66
+ };
67
+ }
68
+ async get(sid, cb = noop) {
69
+ let key = this.prefix + sid;
70
+ try {
71
+ let data = await this.client.get(key);
72
+ if (!data)
73
+ return cb();
74
+ return cb(null, await this.serializer.parse(data));
75
+ } catch (err) {
76
+ return cb(err);
77
+ }
78
+ }
79
+ async set(sid, sess, cb = noop) {
80
+ let key = this.prefix + sid;
81
+ let ttl = this._getTTL(sess);
82
+ try {
83
+ let val = this.serializer.stringify(sess);
84
+ if (ttl > 0) {
85
+ if (this.disableTTL)
86
+ await this.client.set(key, val);
87
+ else
88
+ await this.client.set(key, val, ttl);
89
+ return cb();
90
+ } else {
91
+ return this.destroy(sid, cb);
92
+ }
93
+ } catch (err) {
94
+ return cb(err);
95
+ }
96
+ }
97
+ async touch(sid, sess, cb = noop) {
98
+ let key = this.prefix + sid;
99
+ if (this.disableTouch || this.disableTTL)
100
+ return cb();
101
+ try {
102
+ await this.client.expire(key, this._getTTL(sess));
103
+ return cb();
104
+ } catch (err) {
105
+ return cb(err);
106
+ }
107
+ }
108
+ async destroy(sid, cb = noop) {
109
+ let key = this.prefix + sid;
110
+ try {
111
+ await this.client.del([
112
+ key
113
+ ]);
114
+ return cb();
115
+ } catch (err) {
116
+ return cb(err);
117
+ }
118
+ }
119
+ async clear(cb = noop) {
120
+ try {
121
+ let keys = await this._getAllKeys();
122
+ if (!keys.length)
123
+ return cb();
124
+ await this.client.del(keys);
125
+ return cb();
126
+ } catch (err) {
127
+ return cb(err);
128
+ }
129
+ }
130
+ async length(cb = noop) {
131
+ try {
132
+ let keys = await this._getAllKeys();
133
+ return cb(null, keys.length);
134
+ } catch (err) {
135
+ return cb(err);
136
+ }
137
+ }
138
+ async ids(cb = noop) {
139
+ let len = this.prefix.length;
140
+ try {
141
+ let keys = await this._getAllKeys();
142
+ return cb(null, keys.map((k) => k.substring(len)));
143
+ } catch (err) {
144
+ return cb(err);
145
+ }
146
+ }
147
+ async all(cb = noop) {
148
+ let len = this.prefix.length;
149
+ try {
150
+ let keys = await this._getAllKeys();
151
+ if (keys.length === 0)
152
+ return cb(null, []);
153
+ let data = await this.client.mget(keys);
154
+ let results = data.reduce((acc, raw, idx) => {
155
+ if (!raw)
156
+ return acc;
157
+ let sess = this.serializer.parse(raw);
158
+ sess.id = keys[idx].substring(len);
159
+ acc.push(sess);
160
+ return acc;
161
+ }, []);
162
+ return cb(null, results);
163
+ } catch (err) {
164
+ return cb(err);
165
+ }
166
+ }
167
+ _getTTL(sess) {
168
+ if (typeof this.ttl === "function") {
169
+ return this.ttl(sess);
170
+ }
171
+ let ttl;
172
+ if (sess && sess.cookie && sess.cookie.expires) {
173
+ let ms = Number(new Date(sess.cookie.expires)) - Date.now();
174
+ ttl = Math.ceil(ms / 1e3);
175
+ } else {
176
+ ttl = this.ttl;
177
+ }
178
+ return ttl;
179
+ }
180
+ async _getAllKeys() {
181
+ let pattern = this.prefix + "*";
182
+ let keys = [];
183
+ for await (let key of this.client.scanIterator(pattern, this.scanCount)) {
184
+ keys.push(key);
185
+ }
186
+ return keys;
187
+ }
188
+ };
189
+ var esm_default = RedisStore;
190
+
191
+ // src/constants/config.ts
192
+ var SharedConfigKeys;
193
+ (function(SharedConfigKeys2) {
17
194
  SharedConfigKeys2["AuthCookieName"] = "AUTH_COOKIE_NAME";
18
195
  SharedConfigKeys2["AuthCookieSecret"] = "AUTH_COOKIE_SECRET";
19
196
  SharedConfigKeys2["DbEndpoint"] = "DB_ENDPOINT";
@@ -22,33 +199,30 @@ var SharedConfigKeys = /* @__PURE__ */ ((SharedConfigKeys2) => {
22
199
  SharedConfigKeys2["ServicePort"] = "SERVICE_PORT";
23
200
  SharedConfigKeys2["RedisHost"] = "REDIS_HOST";
24
201
  SharedConfigKeys2["RedisPassword"] = "REDIS_PASSWORD";
25
- return SharedConfigKeys2;
26
- })(SharedConfigKeys || {});
202
+ })(SharedConfigKeys || (SharedConfigKeys = {}));
27
203
 
28
- var AllianceHeaders = /* @__PURE__ */ ((AllianceHeaders2) => {
204
+ // src/constants/headers.ts
205
+ var AllianceHeaders;
206
+ (function(AllianceHeaders2) {
29
207
  AllianceHeaders2["TargetUrl"] = "alliance-target-url";
30
208
  AllianceHeaders2["TargetApp"] = "alliance-target-app";
31
209
  AllianceHeaders2["TargetWorkspace"] = "alliance-target-workspace";
32
- return AllianceHeaders2;
33
- })(AllianceHeaders || {});
34
-
35
- function authMiddleware(configService, {
36
- baseURL = "https://127.0.0.1",
37
- clientSecret,
38
- clientID = " ",
39
- authRequired = true,
40
- authorizationParams = {},
41
- afterCallback,
42
- issuerBaseURL = "https://127.0.0.1"
43
- } = {}) {
44
- const redisClient = createClient({
45
- url: configService.getOrThrow(SharedConfigKeys.RedisHost),
46
- password: configService.get(SharedConfigKeys.RedisPassword)
47
- });
48
- redisClient.connect().catch(console.error);
49
- const redisStore = new RedisStore({
50
- client: redisClient
51
- });
210
+ })(AllianceHeaders || (AllianceHeaders = {}));
211
+
212
+ // src/auth/auth.middleware.ts
213
+ function authMiddleware(configService, { baseURL = "https://127.0.0.1", clientSecret, clientID = " ", authRequired = true, authorizationParams = {}, afterCallback, issuerBaseURL = "https://127.0.0.1", sessionCookiePath } = {}) {
214
+ let store;
215
+ const redisHostUrl = configService.get(SharedConfigKeys.RedisHost);
216
+ if (redisHostUrl) {
217
+ const redisClient = createClient({
218
+ url: configService.getOrThrow(SharedConfigKeys.RedisHost),
219
+ password: configService.get(SharedConfigKeys.RedisPassword)
220
+ });
221
+ redisClient.connect().catch(console.error);
222
+ store = new esm_default({
223
+ client: redisClient
224
+ });
225
+ }
52
226
  return auth({
53
227
  baseURL,
54
228
  clientSecret,
@@ -60,47 +234,42 @@ function authMiddleware(configService, {
60
234
  secret: configService.getOrThrow(SharedConfigKeys.AuthCookieSecret),
61
235
  session: {
62
236
  name: configService.getOrThrow(SharedConfigKeys.AuthCookieName),
63
- store: redisStore
237
+ // @ts-ignore
238
+ store,
239
+ cookie: {
240
+ path: sessionCookiePath
241
+ }
64
242
  },
65
243
  routes: {
66
244
  callback: "/signin-oidc"
67
245
  }
68
246
  });
69
247
  }
70
-
71
- function createBearerToken({
72
- privateKey,
73
- aud,
74
- sub,
75
- name,
76
- user,
77
- workspace
78
- }) {
79
- const jwt = sign(
80
- {
81
- iss: "Alliance",
82
- aud,
83
- sub,
84
- name,
85
- "https://alliance.teliacompany.net/user_type": user.type,
86
- "https://alliance.teliacompany.net/user_privileges": user.permissions,
87
- "https://alliance.teliacompany.net/workspace": workspace.slug,
88
- "https://alliance.teliacompany.net/workspace_name": workspace.name,
89
- "https://alliance.teliacompany.net/tenant": workspace.slug,
90
- "https://alliance.teliacompany.net/tenant_name": workspace.name
91
- },
92
- privateKey,
93
- {
94
- expiresIn: "1h",
95
- algorithm: "RS256"
96
- }
97
- );
248
+ __name(authMiddleware, "authMiddleware");
249
+ function createBearerToken({ privateKey, aud, sub, name, user, workspace }) {
250
+ const jwt = sign({
251
+ iss: "Alliance",
252
+ aud,
253
+ sub,
254
+ name,
255
+ "https://alliance.teliacompany.net/user_type": user.type,
256
+ "https://alliance.teliacompany.net/user_privileges": user.permissions,
257
+ "https://alliance.teliacompany.net/workspace": workspace.slug,
258
+ "https://alliance.teliacompany.net/workspace_name": workspace.name,
259
+ "https://alliance.teliacompany.net/tenant": workspace.slug,
260
+ "https://alliance.teliacompany.net/tenant_name": workspace.name
261
+ }, privateKey, {
262
+ expiresIn: "1h",
263
+ algorithm: "RS256"
264
+ });
98
265
  return `Bearer ${jwt}`;
99
266
  }
267
+ __name(createBearerToken, "createBearerToken");
100
268
  function getPrivateKey(configService) {
101
269
  const privateKey = configService.getOrThrow(SharedConfigKeys.JwtPrivateKey);
102
270
  return "-----BEGIN RSA PRIVATE KEY-----\n" + privateKey + "\n-----END RSA PRIVATE KEY-----";
103
271
  }
272
+ __name(getPrivateKey, "getPrivateKey");
104
273
  function createSystemUserToken(configService) {
105
274
  return createBearerToken({
106
275
  aud: "system",
@@ -117,7 +286,9 @@ function createSystemUserToken(configService) {
117
286
  privateKey: getPrivateKey(configService)
118
287
  });
119
288
  }
289
+ __name(createSystemUserToken, "createSystemUserToken");
120
290
 
291
+ // src/distribution/cookie-policy.ts
121
292
  function generateCookiePolicyHtml(appManifests) {
122
293
  const cookiePolicyTableRows = [];
123
294
  for (const appName in appManifests) {
@@ -132,8 +303,11 @@ function generateCookiePolicyHtml(appManifests) {
132
303
  }
133
304
  return cookiePolicyHtml.replace("{APP_COOKIES}", cookiePolicyTableRows.join(""));
134
305
  }
306
+ __name(generateCookiePolicyHtml, "generateCookiePolicyHtml");
135
307
  function createCookiePolicyTableRow(key, claimEntry) {
136
- const rows = ["<tr>"];
308
+ const rows = [
309
+ "<tr>"
310
+ ];
137
311
  const { category, purpose, lifespan } = claimEntry;
138
312
  rows.push(`<td>${key}</td>`);
139
313
  rows.push(`<td>${category}</td>`);
@@ -142,7 +316,8 @@ function createCookiePolicyTableRow(key, claimEntry) {
142
316
  rows.push("</tr>");
143
317
  return rows.join("");
144
318
  }
145
- const cookiePolicyHtml = `
319
+ __name(createCookiePolicyTableRow, "createCookiePolicyTableRow");
320
+ var cookiePolicyHtml = `
146
321
  <!DOCTYPE html>
147
322
  <html lang="en">
148
323
  <head>
@@ -430,14 +605,8 @@ const cookiePolicyHtml = `
430
605
  </body>
431
606
  </html>
432
607
  `;
433
-
434
608
  function getJsonSchemas() {
435
- const frameworkDistDirPath = resolve(
436
- process.cwd(),
437
- "node_modules",
438
- "@telia-ace/alliance-framework",
439
- "dist"
440
- );
609
+ const frameworkDistDirPath = resolve(process.cwd(), "node_modules", "@telia-ace/alliance-framework", "dist");
441
610
  const appConfigSchemaPath = resolve(frameworkDistDirPath, "config.schema.json");
442
611
  const appManifestSchemaPath = resolve(frameworkDistDirPath, "manifest.schema.json");
443
612
  const appConfigSchemaFile = readFileSync(appConfigSchemaPath).toString();
@@ -449,14 +618,17 @@ function getJsonSchemas() {
449
618
  appManifest
450
619
  };
451
620
  }
452
-
621
+ __name(getJsonSchemas, "getJsonSchemas");
453
622
  async function createTempModuleAndImport(moduleString, fileName) {
454
623
  const file = resolve(process.cwd(), `${fileName}.mjs`);
455
624
  writeFileSync(file, moduleString);
456
625
  const importedModule = await import(`file:///${file}`);
457
- rmSync(file, { force: true });
626
+ rmSync(file, {
627
+ force: true
628
+ });
458
629
  return importedModule;
459
630
  }
631
+ __name(createTempModuleAndImport, "createTempModuleAndImport");
460
632
  async function getAppManifests(apps) {
461
633
  const moduleStringParts = [];
462
634
  const manifestImportVariables = [];
@@ -466,18 +638,18 @@ async function getAppManifests(apps) {
466
638
  moduleStringParts.push(`import ${manifestImportVariable} from '${packageName}/manifest';`);
467
639
  }
468
640
  moduleStringParts.push(`export default [${manifestImportVariables.join(", ")}];`);
469
- const result = await createTempModuleAndImport(
470
- moduleStringParts.join("\n"),
471
- "app-manifests"
472
- );
641
+ const result = await createTempModuleAndImport(moduleStringParts.join("\n"), "app-manifests");
473
642
  return result.default;
474
643
  }
644
+ __name(getAppManifests, "getAppManifests");
475
645
 
646
+ // src/distribution/pkg-json.ts
476
647
  function getPkgJson() {
477
648
  const packageJson = resolve(process.cwd(), "package.json");
478
649
  const pkgJsonFile = readFileSync(packageJson).toString();
479
650
  return JSON.parse(pkgJsonFile);
480
651
  }
652
+ __name(getPkgJson, "getPkgJson");
481
653
  async function getManifests(pkgJson) {
482
654
  if (!pkgJson || !pkgJson.alliance || !pkgJson.alliance.apps) {
483
655
  throw new Error("Alliance apps not defined in package.json.");
@@ -488,12 +660,14 @@ async function getManifests(pkgJson) {
488
660
  return acc;
489
661
  }, {});
490
662
  }
491
-
492
- const PUBLIC_DIR_NAME = "public";
493
- const MANIFESTS_FILE_NAME = "manifests.json";
494
- const COOKIE_POLICY_FILE_NAME = "cookie-policy.html";
495
- const APP_CONFIG_SCHEMA_FILE_NAME = "config.schema.json";
496
- const APP_MANIFEST_SCHEMA_FILE_NAME = "manifest.schema.json";
663
+ __name(getManifests, "getManifests");
664
+
665
+ // src/distribution/create-public-files.ts
666
+ var PUBLIC_DIR_NAME = "public";
667
+ var MANIFESTS_FILE_NAME = "manifests.json";
668
+ var COOKIE_POLICY_FILE_NAME = "cookie-policy.html";
669
+ var APP_CONFIG_SCHEMA_FILE_NAME = "config.schema.json";
670
+ var APP_MANIFEST_SCHEMA_FILE_NAME = "manifest.schema.json";
497
671
  async function createPublicDistributionFiles() {
498
672
  const pkgJson = getPkgJson();
499
673
  const manifests = await getManifests(pkgJson);
@@ -503,12 +677,8 @@ async function createPublicDistributionFiles() {
503
677
  const validationResult = validate(manifest, schemas.appManifest);
504
678
  if (validationResult.errors.length) {
505
679
  const errors = validationResult.errors.map((e) => JSON.stringify(e, null, 2));
506
- throw new Error(
507
- `Validation of app manifest for app '${appName}' failed with the following errors:
508
- ${errors.join(
509
- "\n"
510
- )}`
511
- );
680
+ throw new Error(`Validation of app manifest for app '${appName}' failed with the following errors:
681
+ ${errors.join("\n")}`);
512
682
  }
513
683
  }
514
684
  const publicDirPath = resolve(process.cwd(), PUBLIC_DIR_NAME);
@@ -524,8 +694,9 @@ ${errors.join(
524
694
  writeFileSync(appConfigSchemaFilePath, JSON.stringify(schemas.appConfig));
525
695
  writeFileSync(appManifestSchemaFilePath, JSON.stringify(schemas.appManifest));
526
696
  }
527
-
528
- var GatewayErrorCodes = /* @__PURE__ */ ((GatewayErrorCodes2) => {
697
+ __name(createPublicDistributionFiles, "createPublicDistributionFiles");
698
+ var GatewayErrorCodes;
699
+ (function(GatewayErrorCodes2) {
529
700
  GatewayErrorCodes2[GatewayErrorCodes2["NoObjectId"] = 10001] = "NoObjectId";
530
701
  GatewayErrorCodes2[GatewayErrorCodes2["NoTargetAppHeader"] = 10002] = "NoTargetAppHeader";
531
702
  GatewayErrorCodes2[GatewayErrorCodes2["NoTargetWorkspaceHeader"] = 10003] = "NoTargetWorkspaceHeader";
@@ -538,145 +709,158 @@ var GatewayErrorCodes = /* @__PURE__ */ ((GatewayErrorCodes2) => {
538
709
  GatewayErrorCodes2[GatewayErrorCodes2["NoWorkspaceInRequestContext"] = 10010] = "NoWorkspaceInRequestContext";
539
710
  GatewayErrorCodes2[GatewayErrorCodes2["NoUserPermissionsInRequestContext"] = 10012] = "NoUserPermissionsInRequestContext";
540
711
  GatewayErrorCodes2[GatewayErrorCodes2["WorkspacePermissionDenied"] = 10013] = "WorkspacePermissionDenied";
541
- return GatewayErrorCodes2;
542
- })(GatewayErrorCodes || {});
543
- var DatabasesErrorCodes = /* @__PURE__ */ ((DatabasesErrorCodes2) => {
712
+ })(GatewayErrorCodes || (GatewayErrorCodes = {}));
713
+ var DatabasesErrorCodes;
714
+ (function(DatabasesErrorCodes2) {
544
715
  DatabasesErrorCodes2[DatabasesErrorCodes2["NoPublicKey"] = 11e3] = "NoPublicKey";
545
716
  DatabasesErrorCodes2[DatabasesErrorCodes2["NoAuthHeader"] = 11001] = "NoAuthHeader";
546
717
  DatabasesErrorCodes2[DatabasesErrorCodes2["FailedFileStore"] = 11002] = "FailedFileStore";
547
718
  DatabasesErrorCodes2[DatabasesErrorCodes2["FailedFileRead"] = 11003] = "FailedFileRead";
548
719
  DatabasesErrorCodes2[DatabasesErrorCodes2["NoRecord"] = 11004] = "NoRecord";
549
720
  DatabasesErrorCodes2[DatabasesErrorCodes2["UniqueConstrain"] = 11005] = "UniqueConstrain";
550
- return DatabasesErrorCodes2;
551
- })(DatabasesErrorCodes || {});
552
- var PortalErrorCodes = /* @__PURE__ */ ((PortalErrorCodes2) => {
721
+ })(DatabasesErrorCodes || (DatabasesErrorCodes = {}));
722
+ var PortalErrorCodes;
723
+ (function(PortalErrorCodes2) {
553
724
  PortalErrorCodes2[PortalErrorCodes2["NoObjectId"] = 12e3] = "NoObjectId";
554
- return PortalErrorCodes2;
555
- })(PortalErrorCodes || {});
556
- const allianceErrors = {
725
+ })(PortalErrorCodes || (PortalErrorCodes = {}));
726
+ var allianceErrors = {
557
727
  // gateway
558
- [10001 /* NoObjectId */]: {
728
+ [10001]: {
559
729
  httpCode: HttpStatus.UNAUTHORIZED,
560
730
  message: "No object id available on authenticated user."
561
731
  },
562
- [10002 /* NoTargetAppHeader */]: {
732
+ [10002]: {
563
733
  httpCode: HttpStatus.BAD_REQUEST,
564
734
  message: `Request missing header '${AllianceHeaders.TargetApp}'.`
565
735
  },
566
- [10003 /* NoTargetWorkspaceHeader */]: {
736
+ [10003]: {
567
737
  httpCode: HttpStatus.BAD_REQUEST,
568
738
  message: `Request missing header '${AllianceHeaders.TargetWorkspace}'.`
569
739
  },
570
- [10004 /* NoManifestsInCache */]: {
740
+ [10004]: {
571
741
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
572
742
  message: "App manifests missing in cache."
573
743
  },
574
- [10005 /* NoDevSessionInCache */]: {
744
+ [10005]: {
575
745
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
576
746
  message: "No dev session in memory cache."
577
747
  },
578
- [10006 /* NoManifest */]: {
748
+ [10006]: {
579
749
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
580
750
  message: "Could not find manifest for app '{{appSlug}}'."
581
751
  },
582
- [10007 /* NoRequestContext */]: {
752
+ [10007]: {
583
753
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
584
754
  message: "No request context."
585
755
  },
586
- [10008 /* NoUserInRequestContext */]: {
756
+ [10008]: {
587
757
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
588
758
  message: "No user in request context."
589
759
  },
590
- [10009 /* NoAppInRequestContext */]: {
760
+ [10009]: {
591
761
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
592
762
  message: "No app in request context."
593
763
  },
594
- [10010 /* NoWorkspaceInRequestContext */]: {
764
+ [10010]: {
595
765
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
596
766
  message: "No workspace in request context."
597
767
  },
598
- [10012 /* NoUserPermissionsInRequestContext */]: {
768
+ [10012]: {
599
769
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
600
770
  message: "No user permissions in request context."
601
771
  },
602
- [10013 /* WorkspacePermissionDenied */]: {
772
+ [10013]: {
603
773
  httpCode: HttpStatus.FORBIDDEN,
604
774
  message: "User does not have access to the current workspace."
605
775
  },
606
776
  // databases
607
- [11e3 /* NoPublicKey */]: {
777
+ [11e3]: {
608
778
  httpCode: HttpStatus.UNAUTHORIZED,
609
779
  message: "No public key available to decode JWT."
610
780
  },
611
- [11001 /* NoAuthHeader */]: {
781
+ [11001]: {
612
782
  httpCode: HttpStatus.UNAUTHORIZED,
613
783
  message: "No authorization header found."
614
784
  },
615
- [11002 /* FailedFileStore */]: {
785
+ [11002]: {
616
786
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
617
787
  message: "Error storing file."
618
788
  },
619
- [11003 /* FailedFileRead */]: {
789
+ [11003]: {
620
790
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
621
791
  message: "Error reading file."
622
792
  },
623
- [11004 /* NoRecord */]: {
793
+ [11004]: {
624
794
  httpCode: HttpStatus.INTERNAL_SERVER_ERROR,
625
795
  message: "Missing database record."
626
796
  },
627
- [11005 /* UniqueConstrain */]: {
797
+ [11005]: {
628
798
  httpCode: HttpStatus.CONFLICT,
629
799
  message: "Field has to be unique."
630
800
  },
631
801
  // portal
632
- [12e3 /* NoObjectId */]: {
802
+ [12e3]: {
633
803
  httpCode: HttpStatus.UNAUTHORIZED,
634
804
  message: "No object id found in user claims."
635
805
  }
636
806
  };
637
807
 
638
- function parseTemplates$1(message, variables) {
808
+ // src/exceptions/alliance-gql.exception.ts
809
+ function parseTemplates(message, variables) {
639
810
  return Object.entries(variables).reduce((acc, [key, value]) => {
640
811
  return acc.replaceAll(`{{${key}}}`, value);
641
812
  }, message);
642
813
  }
643
- class AllianceGqlException extends GraphQLError {
814
+ __name(parseTemplates, "parseTemplates");
815
+ var AllianceGqlException = class extends GraphQLError {
816
+ static {
817
+ __name(this, "AllianceGqlException");
818
+ }
819
+ info;
820
+ code;
644
821
  constructor(code, variables = {}, extensions) {
645
822
  const { message } = allianceErrors[code];
646
- super(parseTemplates$1(message, variables), {
823
+ super(parseTemplates(message, variables), {
647
824
  extensions
648
825
  });
649
826
  this.code = code;
650
827
  this.info = `https://github.com/telia-company/ace-alliance-sdk/wiki/error-codes#${code}`;
651
828
  }
652
- }
653
-
654
- function parseTemplates(message, variables) {
829
+ };
830
+ function parseTemplates2(message, variables) {
655
831
  return Object.entries(variables).reduce((acc, [key, value]) => {
656
832
  return acc.replaceAll(`{{${key}}}`, value);
657
833
  }, message);
658
834
  }
659
- class AllianceException extends HttpException {
835
+ __name(parseTemplates2, "parseTemplates");
836
+ var AllianceException = class extends HttpException {
837
+ static {
838
+ __name(this, "AllianceException");
839
+ }
840
+ info;
841
+ code;
660
842
  constructor(code, variables = {}) {
661
843
  const { message, httpCode } = allianceErrors[code];
662
- super(parseTemplates(message, variables), httpCode);
844
+ super(parseTemplates2(message, variables), httpCode);
663
845
  this.code = code;
664
846
  this.info = `https://github.com/telia-company/ace-alliance-sdk/wiki/error-codes#${code}`;
665
847
  }
666
- }
667
-
668
- var __defProp$2 = Object.defineProperty;
669
- var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
670
- var __decorateClass$2 = (decorators, target, key, kind) => {
671
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
672
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
673
- if (decorator = decorators[i])
674
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
675
- if (kind && result)
676
- __defProp$2(target, key, result);
677
- return result;
678
848
  };
679
- let AllianceExceptionFilter = class {
849
+ function _ts_decorate(decorators, target, key, desc) {
850
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
851
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
852
+ r = Reflect.decorate(decorators, target, key, desc);
853
+ else
854
+ for (var i = decorators.length - 1; i >= 0; i--)
855
+ if (d = decorators[i])
856
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
857
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
858
+ }
859
+ __name(_ts_decorate, "_ts_decorate");
860
+ var AllianceExceptionFilter = class AllianceExceptionFilter2 {
861
+ static {
862
+ __name(this, "AllianceExceptionFilter");
863
+ }
680
864
  catch(exception, host) {
681
865
  const ctx = host.switchToHttp();
682
866
  const response = ctx.getResponse();
@@ -689,23 +873,36 @@ let AllianceExceptionFilter = class {
689
873
  });
690
874
  }
691
875
  };
692
- AllianceExceptionFilter = __decorateClass$2([
876
+ AllianceExceptionFilter = _ts_decorate([
693
877
  Catch(AllianceException)
694
878
  ], AllianceExceptionFilter);
695
-
696
- var __defProp$1 = Object.defineProperty;
697
- var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
698
- var __decorateClass$1 = (decorators, target, key, kind) => {
699
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
700
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
701
- if (decorator = decorators[i])
702
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
703
- if (kind && result)
704
- __defProp$1(target, key, result);
705
- return result;
706
- };
707
- var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
708
- let LoggerService = class {
879
+ function _ts_decorate2(decorators, target, key, desc) {
880
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
881
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
882
+ r = Reflect.decorate(decorators, target, key, desc);
883
+ else
884
+ for (var i = decorators.length - 1; i >= 0; i--)
885
+ if (d = decorators[i])
886
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
887
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
888
+ }
889
+ __name(_ts_decorate2, "_ts_decorate");
890
+ function _ts_metadata(k, v) {
891
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
892
+ return Reflect.metadata(k, v);
893
+ }
894
+ __name(_ts_metadata, "_ts_metadata");
895
+ function _ts_param(paramIndex, decorator) {
896
+ return function(target, key) {
897
+ decorator(target, key, paramIndex);
898
+ };
899
+ }
900
+ __name(_ts_param, "_ts_param");
901
+ var LoggerService = class LoggerService2 {
902
+ static {
903
+ __name(this, "LoggerService");
904
+ }
905
+ logger;
709
906
  constructor(logger) {
710
907
  this.logger = logger;
711
908
  this.log = (...args) => this.logger.info(...args);
@@ -716,32 +913,51 @@ let LoggerService = class {
716
913
  this.error = (...args) => this.logger.error(...args);
717
914
  this.fatal = (...args) => this.logger.fatal(...args);
718
915
  }
916
+ log;
917
+ trace;
918
+ debug;
919
+ info;
920
+ warn;
921
+ error;
922
+ fatal;
719
923
  };
720
- LoggerService = __decorateClass$1([
924
+ LoggerService = _ts_decorate2([
721
925
  Injectable(),
722
- __decorateParam(0, InjectPinoLogger())
926
+ _ts_param(0, InjectPinoLogger()),
927
+ _ts_metadata("design:type", Function),
928
+ _ts_metadata("design:paramtypes", [
929
+ typeof PinoLogger === "undefined" ? Object : PinoLogger
930
+ ])
723
931
  ], LoggerService);
724
932
 
725
- var __defProp = Object.defineProperty;
726
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
727
- var __decorateClass = (decorators, target, key, kind) => {
728
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
729
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
730
- if (decorator = decorators[i])
731
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
732
- if (kind && result)
733
- __defProp(target, key, result);
734
- return result;
735
- };
736
- let LoggerModule = class {
933
+ // src/logging/logging.module.ts
934
+ function _ts_decorate3(decorators, target, key, desc) {
935
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
936
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
937
+ r = Reflect.decorate(decorators, target, key, desc);
938
+ else
939
+ for (var i = decorators.length - 1; i >= 0; i--)
940
+ if (d = decorators[i])
941
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
942
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
943
+ }
944
+ __name(_ts_decorate3, "_ts_decorate");
945
+ var LoggerModule = class LoggerModule2 {
946
+ static {
947
+ __name(this, "LoggerModule");
948
+ }
737
949
  static forRoot({ logLevel, redact = true } = {}) {
738
950
  return {
739
- module: LoggerModule,
951
+ module: LoggerModule2,
740
952
  controllers: [],
741
953
  imports: [
742
954
  LoggerModule$1.forRootAsync({
743
- imports: [ConfigModule],
744
- inject: [ConfigService],
955
+ imports: [
956
+ ConfigModule
957
+ ],
958
+ inject: [
959
+ ConfigService
960
+ ],
745
961
  useFactory: async (configService) => ({
746
962
  pinoHttp: {
747
963
  level: logLevel || configService.get(SharedConfigKeys.ServiceLogLevel) || "silent",
@@ -756,53 +972,32 @@ let LoggerModule = class {
756
972
  })
757
973
  ],
758
974
  global: true,
759
- providers: [LoggerService],
975
+ providers: [
976
+ LoggerService
977
+ ],
760
978
  exports: []
761
979
  };
762
980
  }
763
981
  };
764
- LoggerModule = __decorateClass([
982
+ LoggerModule = _ts_decorate3([
765
983
  Module({
766
- providers: [LoggerService],
767
- exports: [LoggerService]
984
+ providers: [
985
+ LoggerService
986
+ ],
987
+ exports: [
988
+ LoggerService
989
+ ]
768
990
  })
769
991
  ], LoggerModule);
770
-
771
992
  function slugify(name) {
772
- return _slugify(name, { strict: true, replacement: "-", lower: true });
773
- }
774
-
775
- function viteCssImportPlugin(outFilePath, relativePath = false) {
776
- return {
777
- name: "vite-plugin-css-import",
778
- apply: "build",
779
- enforce: "post",
780
- writeBundle: async (_, bundle) => {
781
- const cssFiles = Object.keys(bundle).filter((fileName) => fileName.endsWith(".css"));
782
- if (!cssFiles.length) {
783
- return;
784
- }
785
- const tempTargetFilePath = resolve(process.cwd(), `${outFilePath}-temp.js`);
786
- const targetFilePath = resolve(process.cwd(), `${outFilePath}.js`);
787
- const cssImportStatement = cssFiles.reduce((acc, cssFile) => {
788
- if (relativePath) {
789
- const targetDirname = dirname(targetFilePath);
790
- const relativePath2 = relative(targetDirname, cssFile);
791
- return `${acc}import "${relativePath2.replaceAll("\\", "/")}";
792
- `;
793
- }
794
- return `${acc}import "./${cssFile}";
795
- `;
796
- }, "");
797
- const writeStream = createWriteStream(tempTargetFilePath);
798
- writeStream.write(cssImportStatement, "utf8");
799
- const readStream = createReadStream(targetFilePath);
800
- await pipeline(readStream, writeStream);
801
- rmSync(targetFilePath, { force: true });
802
- renameSync(tempTargetFilePath, targetFilePath);
803
- writeStream.end();
804
- }
805
- };
993
+ return _slugify(name, {
994
+ strict: true,
995
+ replacement: "-",
996
+ lower: true
997
+ });
806
998
  }
999
+ __name(slugify, "slugify");
807
1000
 
808
- export { AllianceException, AllianceExceptionFilter, AllianceGqlException, AllianceHeaders, DatabasesErrorCodes, GatewayErrorCodes, LoggerModule, LoggerService, PortalErrorCodes, SharedConfigKeys, authMiddleware, createBearerToken, createPublicDistributionFiles, createSystemUserToken, getAppManifests, getPrivateKey, slugify, viteCssImportPlugin };
1001
+ export { AllianceException, AllianceExceptionFilter, AllianceGqlException, AllianceHeaders, DatabasesErrorCodes, GatewayErrorCodes, LoggerModule, LoggerService, PortalErrorCodes, SharedConfigKeys, authMiddleware, createBearerToken, createPublicDistributionFiles, createSystemUserToken, getAppManifests, getPrivateKey, slugify };
1002
+ //# sourceMappingURL=out.js.map
1003
+ //# sourceMappingURL=index.js.map