@telia-ace/alliance-utilities 1.0.15-next.0 → 1.0.15-next.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @telia-ace/alliance-utilities
2
2
 
3
+ ## 1.0.15-next.2
4
+
5
+ ### Patch Changes
6
+
7
+ - @telia-ace/alliance-framework@1.0.14-next.1
8
+ - @telia-ace/alliance-internal-client-utilities@1.0.5-next.0
9
+
10
+ ## 1.0.15-next.1
11
+
12
+ ### Patch Changes
13
+
14
+ - 2858c59: Remove GraphQL specific error handling from `getCurrentUser()`.
15
+ - @telia-ace/alliance-internal-client-utilities@1.0.5-next.0
16
+
3
17
  ## 1.0.15-next.0
4
18
 
5
19
  ### Patch Changes
package/dist/index.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import { queryObjects, getAppManifest, getAppManifests } from '@telia-ace/alliance-framework';
2
2
  import { isAllianceError, FrameworkErrorCodes, AllianceError, UtilitiesErrorCodes } from '@telia-ace/alliance-internal-client-utilities';
3
3
 
4
- var __defProp = Object.defineProperty;
5
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
+ // src/get-current-user.ts
6
5
  var currentUser;
7
6
  async function getCurrentUser() {
8
7
  try {
@@ -13,32 +12,30 @@ async function getCurrentUser() {
13
12
  return {
14
13
  ...currentUser,
15
14
  hasPermission(appName, permissionName) {
16
- return !!currentUser?.permissions.find(({ permission }) => permission.app.name === appName && permission.name === permissionName);
15
+ return !!currentUser?.permissions.find(
16
+ ({ permission }) => permission.app.name === appName && permission.name === permissionName
17
+ );
17
18
  },
18
19
  isSystemAdmin() {
19
20
  return !!currentUser && currentUser.type === "system-admin";
20
21
  }
21
22
  };
22
23
  } catch (err) {
23
- if (isAllianceError(err) && err.code === FrameworkErrorCodes.MissingManagedObjectProvider) {
24
+ if (isAllianceError(err) && err?.code === FrameworkErrorCodes.MissingManagedObjectProvider) {
24
25
  throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingProvider);
25
- } else if (err.message.includes("GraphQL Error (Code: 404)")) {
26
- throw new AllianceError(UtilitiesErrorCodes.CurrentUserGatewayNotStarted);
27
- } else if (err.message.includes("GraphQL Error (Code: 500)")) {
28
- throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingBackend);
29
- } else if (err.message.includes("GraphQL Error (Code: 200)") && err.message.includes("Cannot return null for non-nullable field")) {
26
+ } else if (err.message?.includes("No User Found")) {
30
27
  throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingInDatabase);
28
+ } else if (err?.name === "TRPCClientError" && err.message.includes("is not valid JSON")) {
29
+ throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingBackend);
31
30
  } else {
32
31
  throw err;
33
32
  }
34
33
  }
35
34
  }
36
- __name(getCurrentUser, "getCurrentUser");
37
35
  async function getCurrentWorkspace() {
38
36
  const query = queryObjects("currentWorkspace");
39
37
  return await query.resolve();
40
38
  }
41
- __name(getCurrentWorkspace, "getCurrentWorkspace");
42
39
  function getDefaultLocalization(manifest) {
43
40
  const staticValues = {
44
41
  "app-name": manifest.name,
@@ -52,27 +49,20 @@ function getDefaultLocalization(manifest) {
52
49
  obj[item] = manifest.resources.localization[item].value;
53
50
  return obj;
54
51
  }, {});
55
- return {
56
- ...defaults,
57
- ...staticValues
58
- };
52
+ return { ...defaults, ...staticValues };
59
53
  }
60
- __name(getDefaultLocalization, "getDefaultLocalization");
61
54
  function parseTemplates(message = "", variables) {
62
55
  return Object.entries(variables).reduce((acc, [key, value]) => {
63
56
  return acc.replaceAll(`{{${key}}}`, value);
64
57
  }, message);
65
58
  }
66
- __name(parseTemplates, "parseTemplates");
67
59
  async function getAppLocalization() {
68
60
  const manifest = getAppManifest();
69
61
  const appManifests = getAppManifests();
70
62
  const defaultLocalization = getDefaultLocalization(manifest);
71
63
  let localization = {};
72
64
  if (appManifests?.find(({ name }) => name === "resource-management")) {
73
- localization = await queryObjects("resourceTexts", {
74
- app: manifest?.name
75
- }).resolve();
65
+ localization = await queryObjects("resourceTexts", { app: manifest?.name }).resolve();
76
66
  }
77
67
  return Object.keys(defaultLocalization).reduce((acc, key) => {
78
68
  if (localization[key]) {
@@ -81,7 +71,6 @@ async function getAppLocalization() {
81
71
  return acc;
82
72
  }, defaultLocalization);
83
73
  }
84
- __name(getAppLocalization, "getAppLocalization");
85
74
  var localizationStore = {};
86
75
  async function getTranslator() {
87
76
  if (Object.keys(localizationStore).length === 0) {
@@ -90,9 +79,7 @@ async function getTranslator() {
90
79
  return (key, params) => {
91
80
  const template = localizationStore[key];
92
81
  if (template === void 0) {
93
- throw new AllianceError(FrameworkErrorCodes.LocalizationTemplateNotDefined, {
94
- key
95
- });
82
+ throw new AllianceError(FrameworkErrorCodes.LocalizationTemplateNotDefined, { key });
96
83
  }
97
84
  if (!params || typeof params !== "object" || Object.keys(params).length === 0) {
98
85
  return template;
@@ -100,7 +87,6 @@ async function getTranslator() {
100
87
  return parseTemplates(template, params);
101
88
  };
102
89
  }
103
- __name(getTranslator, "getTranslator");
104
90
 
105
91
  export { getCurrentUser, getCurrentWorkspace, getTranslator };
106
92
  //# sourceMappingURL=out.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/get-current-user.ts","../src/get-current-workspace.ts","../src/get-translator.ts"],"names":["queryObjects","AllianceError","FrameworkErrorCodes","UtilitiesErrorCodes","isAllianceError","currentUser","getCurrentUser","query","resolve","hasPermission","appName","permissionName","permissions","find","permission","app","name","isSystemAdmin","type","err","code","MissingManagedObjectProvider","CurrentUserMissingProvider","message","includes","CurrentUserGatewayNotStarted","CurrentUserMissingBackend","CurrentUserMissingInDatabase","getCurrentWorkspace","getAppManifest","getAppManifests","getDefaultLocalization","manifest","staticValues","resources","localization","localizationKeys","Object","keys","defaults","reduce","obj","item","value","parseTemplates","variables","entries","acc","key","replaceAll","getAppLocalization","appManifests","defaultLocalization","localizationStore","getTranslator","length","params","template","undefined","LocalizationTemplateNotDefined"],"mappings":"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","sourcesContent":["import { queryObjects } from '@telia-ace/alliance-framework';\nimport {\n AllianceError,\n FrameworkErrorCodes,\n UtilitiesErrorCodes,\n isAllianceError,\n} from '@telia-ace/alliance-internal-client-utilities';\n\ntype CurrentUser = {\n displayName: string;\n email: string;\n type: 'system-admin' | 'user';\n objectId: string;\n permissions: { permission: { name: string; app: { name: string } } }[];\n workspaces: { workspace: { name: string; slug: string } }[];\n hasPermission: (appName: string, permissionName: string) => boolean;\n isSystemAdmin: () => boolean;\n};\n\nlet currentUser: CurrentUser;\n\nexport async function getCurrentUser(): Promise<CurrentUser> {\n try {\n if (!currentUser) {\n const query = queryObjects<CurrentUser>('currentUser');\n currentUser = await query.resolve();\n }\n\n return {\n ...currentUser,\n hasPermission(appName, permissionName) {\n return !!currentUser?.permissions.find(\n ({ permission }) =>\n permission.app.name === appName && permission.name === permissionName,\n );\n },\n isSystemAdmin() {\n return !!currentUser && currentUser.type === 'system-admin';\n },\n };\n } catch (err: any) {\n if (isAllianceError(err) && err.code === FrameworkErrorCodes.MissingManagedObjectProvider) {\n throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingProvider);\n } else if (err.message.includes('GraphQL Error (Code: 404)')) {\n throw new AllianceError(UtilitiesErrorCodes.CurrentUserGatewayNotStarted);\n } else if (err.message.includes('GraphQL Error (Code: 500)')) {\n throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingBackend);\n } else if (\n err.message.includes('GraphQL Error (Code: 200)') &&\n err.message.includes('Cannot return null for non-nullable field')\n ) {\n throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingInDatabase);\n } else {\n throw err;\n }\n }\n}\n","import { queryObjects } from '@telia-ace/alliance-framework';\n\ntype CurrentWorkspace = {\n name: string;\n slug: string;\n};\n\nexport async function getCurrentWorkspace() {\n const query = queryObjects<CurrentWorkspace>('currentWorkspace');\n return await query.resolve();\n}\n","import {\n type AppManifest,\n getAppManifest,\n getAppManifests,\n queryObjects,\n} from '@telia-ace/alliance-framework';\nimport { AllianceError, FrameworkErrorCodes } from '@telia-ace/alliance-internal-client-utilities';\n\ntype RecordEntries = Record<string, string>;\nexport type TranslatorFunction = (key: string, params?: RecordEntries) => string;\n\nexport function getDefaultLocalization(manifest: AppManifest): RecordEntries {\n const staticValues: RecordEntries = {\n 'app-name': manifest.name,\n 'app-description': '',\n };\n\n if (!manifest.resources?.localization) {\n return staticValues;\n }\n\n const localizationKeys = Object.keys(manifest.resources.localization);\n const defaults = localizationKeys.reduce((obj: RecordEntries, item: string) => {\n obj[item] = manifest.resources!.localization![item].value;\n\n return obj;\n }, {});\n\n return { ...defaults, ...staticValues };\n}\n\nfunction parseTemplates(message: string = '', variables: RecordEntries) {\n return Object.entries(variables).reduce((acc, [key, value]) => {\n return acc.replaceAll(`{{${key}}}`, value);\n }, message);\n}\n\nasync function getAppLocalization(): Promise<RecordEntries> {\n const manifest = getAppManifest();\n const appManifests = getAppManifests();\n\n const defaultLocalization = getDefaultLocalization(manifest);\n let localization: Record<string, string> = {};\n\n // Dont try to query objects if the resource management app is not installed\n if (appManifests?.find(({ name }) => name === 'resource-management')) {\n localization = await queryObjects('resourceTexts', { app: manifest?.name }).resolve();\n }\n\n return Object.keys(defaultLocalization).reduce<Record<string, string>>((acc, key) => {\n if (localization[key]) {\n acc[key] = localization[key];\n }\n\n return acc;\n }, defaultLocalization);\n}\n\nlet localizationStore: RecordEntries = {};\n\nexport async function getTranslator(): Promise<TranslatorFunction> {\n if (Object.keys(localizationStore).length === 0) {\n localizationStore = await getAppLocalization();\n }\n\n return (key: string, params?: RecordEntries): string => {\n const template = localizationStore[key];\n\n if (template === undefined) {\n throw new AllianceError(FrameworkErrorCodes.LocalizationTemplateNotDefined, { key });\n }\n\n if (!params || typeof params !== 'object' || Object.keys(params).length === 0) {\n return template;\n }\n\n return parseTemplates(template, params);\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/get-current-user.ts","../src/get-current-workspace.ts","../src/get-translator.ts"],"names":["queryObjects","AllianceError","FrameworkErrorCodes"],"mappings":"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","sourcesContent":["import { queryObjects } from '@telia-ace/alliance-framework';\nimport {\n AllianceError,\n FrameworkErrorCodes,\n UtilitiesErrorCodes,\n isAllianceError,\n} from '@telia-ace/alliance-internal-client-utilities';\n\ntype CurrentUser = {\n displayName: string;\n email: string;\n type: 'system-admin' | 'user';\n objectId: string;\n permissions: { permission: { name: string; app: { name: string } } }[];\n workspaces: { workspace: { name: string; slug: string } }[];\n hasPermission: (appName: string, permissionName: string) => boolean;\n isSystemAdmin: () => boolean;\n};\n\nlet currentUser: CurrentUser;\n\nexport async function getCurrentUser(): Promise<CurrentUser> {\n try {\n if (!currentUser) {\n const query = queryObjects<CurrentUser>('currentUser');\n currentUser = await query.resolve();\n }\n\n return {\n ...currentUser,\n hasPermission(appName, permissionName) {\n return !!currentUser?.permissions.find(\n ({ permission }) =>\n permission.app.name === appName && permission.name === permissionName,\n );\n },\n isSystemAdmin() {\n return !!currentUser && currentUser.type === 'system-admin';\n },\n };\n } catch (err: any) {\n if (\n isAllianceError(err) &&\n err?.code === FrameworkErrorCodes.MissingManagedObjectProvider\n ) {\n throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingProvider);\n } else if (err.message?.includes('No User Found')) {\n throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingInDatabase);\n } else if (err?.name === 'TRPCClientError' && err.message.includes('is not valid JSON')) {\n throw new AllianceError(UtilitiesErrorCodes.CurrentUserMissingBackend);\n } else {\n throw err;\n }\n }\n}\n","import { queryObjects } from '@telia-ace/alliance-framework';\n\ntype CurrentWorkspace = {\n name: string;\n slug: string;\n};\n\nexport async function getCurrentWorkspace() {\n const query = queryObjects<CurrentWorkspace>('currentWorkspace');\n return await query.resolve();\n}\n","import {\n type AppManifest,\n getAppManifest,\n getAppManifests,\n queryObjects,\n} from '@telia-ace/alliance-framework';\nimport { AllianceError, FrameworkErrorCodes } from '@telia-ace/alliance-internal-client-utilities';\n\ntype RecordEntries = Record<string, string>;\nexport type TranslatorFunction = (key: string, params?: RecordEntries) => string;\n\nexport function getDefaultLocalization(manifest: AppManifest): RecordEntries {\n const staticValues: RecordEntries = {\n 'app-name': manifest.name,\n 'app-description': '',\n };\n\n if (!manifest.resources?.localization) {\n return staticValues;\n }\n\n const localizationKeys = Object.keys(manifest.resources.localization);\n const defaults = localizationKeys.reduce((obj: RecordEntries, item: string) => {\n obj[item] = manifest.resources!.localization![item].value;\n\n return obj;\n }, {});\n\n return { ...defaults, ...staticValues };\n}\n\nfunction parseTemplates(message: string = '', variables: RecordEntries) {\n return Object.entries(variables).reduce((acc, [key, value]) => {\n return acc.replaceAll(`{{${key}}}`, value);\n }, message);\n}\n\nasync function getAppLocalization(): Promise<RecordEntries> {\n const manifest = getAppManifest();\n const appManifests = getAppManifests();\n\n const defaultLocalization = getDefaultLocalization(manifest);\n let localization: Record<string, string> = {};\n\n // Dont try to query objects if the resource management app is not installed\n if (appManifests?.find(({ name }) => name === 'resource-management')) {\n localization = await queryObjects('resourceTexts', { app: manifest?.name }).resolve();\n }\n\n return Object.keys(defaultLocalization).reduce<Record<string, string>>((acc, key) => {\n if (localization[key]) {\n acc[key] = localization[key];\n }\n\n return acc;\n }, defaultLocalization);\n}\n\nlet localizationStore: RecordEntries = {};\n\nexport async function getTranslator(): Promise<TranslatorFunction> {\n if (Object.keys(localizationStore).length === 0) {\n localizationStore = await getAppLocalization();\n }\n\n return (key: string, params?: RecordEntries): string => {\n const template = localizationStore[key];\n\n if (template === undefined) {\n throw new AllianceError(FrameworkErrorCodes.LocalizationTemplateNotDefined, { key });\n }\n\n if (!params || typeof params !== 'object' || Object.keys(params).length === 0) {\n return template;\n }\n\n return parseTemplates(template, params);\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/alliance-utilities",
3
- "version": "1.0.15-next.0",
3
+ "version": "1.0.15-next.2",
4
4
  "description": "Utilities used by ACE Alliance apps.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
@@ -14,8 +14,8 @@
14
14
  "dist"
15
15
  ],
16
16
  "dependencies": {
17
- "@telia-ace/alliance-framework": "1.0.14-next.0",
18
- "@telia-ace/alliance-internal-client-utilities": "1.0.5-next.0"
17
+ "@telia-ace/alliance-framework": "^1.0.14-next.1",
18
+ "@telia-ace/alliance-internal-client-utilities": "^1.0.5-next.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "tsup": "^7.2.0",