@telia-ace/alliance-utilities 1.0.10-next.0 → 1.0.10-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,17 @@
1
1
  # @telia-ace/alliance-utilities
2
2
 
3
+ ## 1.0.10-next.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 1150fac: Improved handling of URLs.
8
+
9
+ ## 1.0.10-next.1
10
+
11
+ ### Patch Changes
12
+
13
+ - c04ce55: Add `getCurrentLocationInfo()` and `matchRegExpLike()` utility functions.
14
+
3
15
  ## 1.0.10-next.0
4
16
 
5
17
  ### Patch Changes
package/frontend/index.js CHANGED
@@ -1,18 +1,48 @@
1
1
  var f = Object.defineProperty;
2
- var m = (e, r, t) => r in e ? f(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
3
- var n = (e, r, t) => (m(e, typeof r != "symbol" ? r + "" : r, t), t);
4
- function h(e) {
2
+ var v = (e, r, t) => r in e ? f(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
3
+ var u = (e, r, t) => (v(e, typeof r != "symbol" ? r + "" : r, t), t);
4
+ function m(e) {
5
5
  const t = Object.entries(e).reduce((i, o) => {
6
6
  const [p, c] = o;
7
7
  return typeof c > "u" || (typeof c == "object" && c !== null ? i[p] = JSON.stringify(c) : i[p] = c), i;
8
8
  }, {});
9
9
  return Object.keys(t).length ? `?${new URLSearchParams(t)}` : "";
10
10
  }
11
- function w(e = "", r = "", t = {}) {
12
- return e ? r ? `/${e}/${r}${h(t)}` : `/${e}${h(t)}` : h(t);
11
+ function s() {
12
+ const e = a(), { href: r, search: t } = window.location;
13
+ return r.replace(e, "").replace(t, "");
13
14
  }
14
- var a = /* @__PURE__ */ ((e) => (e[e.Done = 0] = "Done", e[e.NoWorkspaceName = 1] = "NoWorkspaceName", e[e.NoAppName = 2] = "NoAppName", e[e.AlreadyExists = 3] = "AlreadyExists", e[e.NoAppOrWorkspaceInCurrentDirectory = 4] = "NoAppOrWorkspaceInCurrentDirectory", e[e.UnrecognizedCommand = 5] = "UnrecognizedCommand", e[e.WorkspaceCreated = 6] = "WorkspaceCreated", e[e.AppCreated = 7] = "AppCreated", e[e.ServedStopped = 8] = "ServedStopped", e[e.WorkspaceNameInquiry = 9] = "WorkspaceNameInquiry", e[e.AppNameInquiry = 10] = "AppNameInquiry", e[e.ServerModeInquiry = 11] = "ServerModeInquiry", e[e.CreateWorkspaceDescription = 12] = "CreateWorkspaceDescription", e[e.CreateAppDescription = 13] = "CreateAppDescription", e[e.ServeDescription = 14] = "ServeDescription", e[e.BuildDescription = 15] = "BuildDescription", e[e.MissingTranslationKey = 16] = "MissingTranslationKey", e[e.OperationCancelled = 17] = "OperationCancelled", e[e.StopServerInstructions = 18] = "StopServerInstructions", e[e.TemplateLanguageInquiry = 19] = "TemplateLanguageInquiry", e[e.TemplateFrameworkInquiry = 20] = "TemplateFrameworkInquiry", e[e.DevServerPortDescription = 21] = "DevServerPortDescription", e[e.ApiGatewayPortDescription = 22] = "ApiGatewayPortDescription", e[e.ApiServerModeDescription = 23] = "ApiServerModeDescription", e[e.DevServerOpenDescription = 24] = "DevServerOpenDescription", e[e.BuildWatchDescription = 25] = "BuildWatchDescription", e[e.CouldNotStartGatewayInDocker = 26] = "CouldNotStartGatewayInDocker", e[e.PullingLatestImage = 27] = "PullingLatestImage", e[e.AppEntryBuildOptionDescription = 28] = "AppEntryBuildOptionDescription", e[e.ManifestEntryBuildOptionDescription = 29] = "ManifestEntryBuildOptionDescription", e[e.BuildModeOptionDescription = 30] = "BuildModeOptionDescription", e[e.FetchPackageVersionError = 31] = "FetchPackageVersionError", e[e.DockerNotStartedOrInstalled = 32] = "DockerNotStartedOrInstalled", e[e.EnableDevAuthentication = 33] = "EnableDevAuthentication", e[e.NoAppNameFound = 34] = "NoAppNameFound", e[e.AppConfigurationPath = 35] = "AppConfigurationPath", e[e.ServerGatewayMode = 36] = "ServerGatewayMode", e[e.ServerProxyMode = 37] = "ServerProxyMode", e[e.ServerMode = 38] = "ServerMode", e[e.DevLoginUrl = 39] = "DevLoginUrl", e))(a || {});
15
- const g = {
15
+ function A(e) {
16
+ return e.replaceAll(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&");
17
+ }
18
+ function E(e = "", r = "", t = {}) {
19
+ const i = a().replace(location.origin, ""), o = m(t);
20
+ return e ? r ? `${i}/${e}/${r}${o}` : `${i}/${e}${o}` : `${i}${o}`;
21
+ }
22
+ function I() {
23
+ const e = s(), [r = "", t = ""] = e.split("/").filter((i) => !!i);
24
+ return {
25
+ app: r,
26
+ capability: t
27
+ };
28
+ }
29
+ function D(e, r) {
30
+ const t = A(e);
31
+ return new RegExp(`^${t.replaceAll("\\?", ".?").replaceAll("\\*", ".*")}`, "i").test(r);
32
+ }
33
+ function S() {
34
+ const { origin: e, pathname: r } = window.location;
35
+ if (D("https://alliance*.ace.teliacompany.net", e)) {
36
+ const [t] = r.split("/").filter((i) => !!i);
37
+ return globalThis.__ALLIANCE_RUNTIME_ROOT_URL = `${e}/${t}`;
38
+ }
39
+ return globalThis.__ALLIANCE_RUNTIME_ROOT_URL = e;
40
+ }
41
+ function a() {
42
+ return globalThis.__ALLIANCE_RUNTIME_ROOT_URL || S(), globalThis.__ALLIANCE_RUNTIME_ROOT_URL;
43
+ }
44
+ var l = /* @__PURE__ */ ((e) => (e[e.Done = 0] = "Done", e[e.NoWorkspaceName = 1] = "NoWorkspaceName", e[e.NoAppName = 2] = "NoAppName", e[e.AlreadyExists = 3] = "AlreadyExists", e[e.NoAppOrWorkspaceInCurrentDirectory = 4] = "NoAppOrWorkspaceInCurrentDirectory", e[e.UnrecognizedCommand = 5] = "UnrecognizedCommand", e[e.WorkspaceCreated = 6] = "WorkspaceCreated", e[e.AppCreated = 7] = "AppCreated", e[e.ServedStopped = 8] = "ServedStopped", e[e.WorkspaceNameInquiry = 9] = "WorkspaceNameInquiry", e[e.AppNameInquiry = 10] = "AppNameInquiry", e[e.ServerModeInquiry = 11] = "ServerModeInquiry", e[e.CreateWorkspaceDescription = 12] = "CreateWorkspaceDescription", e[e.CreateAppDescription = 13] = "CreateAppDescription", e[e.ServeDescription = 14] = "ServeDescription", e[e.BuildDescription = 15] = "BuildDescription", e[e.MissingTranslationKey = 16] = "MissingTranslationKey", e[e.OperationCancelled = 17] = "OperationCancelled", e[e.StopServerInstructions = 18] = "StopServerInstructions", e[e.TemplateLanguageInquiry = 19] = "TemplateLanguageInquiry", e[e.TemplateFrameworkInquiry = 20] = "TemplateFrameworkInquiry", e[e.DevServerPortDescription = 21] = "DevServerPortDescription", e[e.ApiGatewayPortDescription = 22] = "ApiGatewayPortDescription", e[e.ApiServerModeDescription = 23] = "ApiServerModeDescription", e[e.DevServerOpenDescription = 24] = "DevServerOpenDescription", e[e.BuildWatchDescription = 25] = "BuildWatchDescription", e[e.CouldNotStartGatewayInDocker = 26] = "CouldNotStartGatewayInDocker", e[e.PullingLatestImage = 27] = "PullingLatestImage", e[e.AppEntryBuildOptionDescription = 28] = "AppEntryBuildOptionDescription", e[e.ManifestEntryBuildOptionDescription = 29] = "ManifestEntryBuildOptionDescription", e[e.BuildModeOptionDescription = 30] = "BuildModeOptionDescription", e[e.FetchPackageVersionError = 31] = "FetchPackageVersionError", e[e.DockerNotStartedOrInstalled = 32] = "DockerNotStartedOrInstalled", e[e.EnableDevAuthentication = 33] = "EnableDevAuthentication", e[e.NoAppNameFound = 34] = "NoAppNameFound", e[e.AppConfigurationPath = 35] = "AppConfigurationPath", e[e.ServerGatewayMode = 36] = "ServerGatewayMode", e[e.ServerProxyMode = 37] = "ServerProxyMode", e[e.ServerMode = 38] = "ServerMode", e[e.DevLoginUrl = 39] = "DevLoginUrl", e))(l || {});
45
+ const N = {
16
46
  [
17
47
  0
18
48
  /* Done */
@@ -174,30 +204,30 @@ const g = {
174
204
  39
175
205
  /* DevLoginUrl */
176
206
  ]: "Log in using http://localhost:{0}/-/dev/login"
177
- }, u = class {
207
+ }, d = class {
178
208
  };
179
- let d = u;
180
- n(d, "getTranslations", () => g), n(d, "getTranslation", (r, ...t) => {
181
- const o = u.getTranslations()[r];
209
+ let n = d;
210
+ u(n, "getTranslations", () => N), u(n, "getTranslation", (r, ...t) => {
211
+ const o = d.getTranslations()[r];
182
212
  if (!o)
183
213
  throw new Error(`Could not find text with given key '${r}'.`);
184
214
  return t.reduce(
185
- (c, l, v) => c.toString().replace(`{${v}}`, l.toString()),
215
+ (c, h, g) => c.toString().replace(`{${g}}`, h.toString()),
186
216
  o
187
217
  ).toString();
188
- }), n(d, "get", (r = a.MissingTranslationKey, ...t) => u.getTranslation(r, ...t));
189
- function A(e, r) {
190
- return S(Object.values(e), ({ name: t }) => ({
218
+ }), u(n, "get", (r = l.MissingTranslationKey, ...t) => d.getTranslation(r, ...t));
219
+ function O(e, r) {
220
+ return k(Object.values(e), ({ name: t }) => ({
191
221
  label: t,
192
222
  value: t,
193
223
  selected: r === t
194
224
  }));
195
225
  }
196
- var D = /* @__PURE__ */ ((e) => (e.Primary = "primary", e.Secondary = "secondary", e.Expressive = "expressive", e.Destructive = "destructive", e.Text = "text", e.PrimaryWhite = "primary-white", e.SecondaryWhite = "secondary-white", e.ExpressiveWhite = "expressive-white", e.TertiaryPurple = "tertiary-purple", e))(D || {});
197
- function N(e, r) {
226
+ var w = /* @__PURE__ */ ((e) => (e.Primary = "primary", e.Secondary = "secondary", e.Expressive = "expressive", e.Destructive = "destructive", e.Text = "text", e.PrimaryWhite = "primary-white", e.SecondaryWhite = "secondary-white", e.ExpressiveWhite = "expressive-white", e.TertiaryPurple = "tertiary-purple", e))(w || {});
227
+ function W(e, r) {
198
228
  return Object.values(e).find((i) => i.name === r);
199
229
  }
200
- function S(e, r) {
230
+ function k(e, r) {
201
231
  return e.reduce(
202
232
  (t, i) => (t.push({
203
233
  disabled: !1,
@@ -214,12 +244,12 @@ function S(e, r) {
214
244
  ]
215
245
  );
216
246
  }
217
- function s(e) {
247
+ function L(e) {
218
248
  return (r) => {
219
249
  r.key === "Enter" && e(r);
220
250
  };
221
251
  }
222
- function C(e, r = "all") {
252
+ function P(e, r = "all") {
223
253
  const { email: t, displayName: i } = e, o = i && i !== "unknown", p = !!t;
224
254
  switch (r) {
225
255
  case "all": {
@@ -239,19 +269,23 @@ function C(e, r = "all") {
239
269
  }
240
270
  return "<UNKNOWN USER>";
241
271
  }
242
- function W(...e) {
272
+ function R(...e) {
243
273
  return e.filter((r) => !!r).join(" ");
244
274
  }
245
275
  export {
246
- d as Texts,
247
- a as TranslationsKey,
248
- D as VocaButtonVariant,
249
- W as classNames,
250
- w as createCapabilityPath,
251
- C as friendlyUserName,
252
- N as getVocaIcon,
253
- S as mapToVocaOptions,
254
- s as onEnter,
255
- A as vocaIconsToOptions
276
+ n as Texts,
277
+ l as TranslationsKey,
278
+ w as VocaButtonVariant,
279
+ R as classNames,
280
+ E as createCapabilityPath,
281
+ P as friendlyUserName,
282
+ I as getCurrentLocationInfo,
283
+ a as getRuntimeRootUrl,
284
+ W as getVocaIcon,
285
+ k as mapToVocaOptions,
286
+ D as matchRegExpLike,
287
+ L as onEnter,
288
+ S as setRuntimeRootUrl,
289
+ O as vocaIconsToOptions
256
290
  };
257
291
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/frontend/routing.ts","../src/frontend/translations.ts","../src/frontend/texts.ts","../src/frontend/ui.ts"],"sourcesContent":["import { SerializeableObject } from './types';\n\nfunction createQueryString(args: SerializeableObject) {\n const entries = Object.entries(args);\n\n const filteredArgs = entries.reduce<SerializeableObject>((acc, entry) => {\n const [key, value] = entry;\n\n if (typeof value === 'undefined') {\n return acc;\n } else if (typeof value === 'object' && value !== null) {\n acc[key] = JSON.stringify(value);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n\n if (!Object.keys(filteredArgs).length) {\n return '';\n }\n\n return `?${new URLSearchParams(filteredArgs as Record<string, any>)}`;\n}\n\nexport function createCapabilityPath(\n app: string = '',\n capability: string = '',\n args: SerializeableObject = {}\n) {\n if (!app) {\n return createQueryString(args);\n }\n\n if (!capability) {\n return `/${app}${createQueryString(args)}`;\n }\n\n return `/${app}/${capability}${createQueryString(args)}`;\n}\n","export type Translations = {\n [key in TranslationsKey]: string;\n};\n\nexport enum TranslationsKey {\n Done,\n NoWorkspaceName,\n NoAppName,\n AlreadyExists,\n NoAppOrWorkspaceInCurrentDirectory,\n UnrecognizedCommand,\n WorkspaceCreated,\n AppCreated,\n ServedStopped,\n WorkspaceNameInquiry,\n AppNameInquiry,\n ServerModeInquiry,\n CreateWorkspaceDescription,\n CreateAppDescription,\n ServeDescription,\n BuildDescription,\n MissingTranslationKey,\n OperationCancelled,\n StopServerInstructions,\n TemplateLanguageInquiry,\n TemplateFrameworkInquiry,\n DevServerPortDescription,\n ApiGatewayPortDescription,\n ApiServerModeDescription,\n DevServerOpenDescription,\n BuildWatchDescription,\n CouldNotStartGatewayInDocker,\n PullingLatestImage,\n AppEntryBuildOptionDescription,\n ManifestEntryBuildOptionDescription,\n BuildModeOptionDescription,\n FetchPackageVersionError,\n DockerNotStartedOrInstalled,\n EnableDevAuthentication,\n NoAppNameFound,\n AppConfigurationPath,\n ServerGatewayMode,\n ServerProxyMode,\n ServerMode,\n DevLoginUrl,\n}\n\nexport const en: Translations = {\n [TranslationsKey.Done]: 'Done',\n [TranslationsKey.NoWorkspaceName]: 'No workspace name provided!',\n [TranslationsKey.NoAppName]: 'No app name provided!',\n [TranslationsKey.AlreadyExists]: \"File or directory '{0}' already exists!\",\n [TranslationsKey.NoAppOrWorkspaceInCurrentDirectory]:\n \"Could not find any app entry file at '{0}' or any apps under the alliance.apps property in '{1}'!\",\n [TranslationsKey.UnrecognizedCommand]: 'Unrecognized command(s) {0}!',\n [TranslationsKey.WorkspaceCreated]: \"Workspace was created at path '{0}'!\",\n [TranslationsKey.AppCreated]: \"App was created at path '{0}'!\",\n [TranslationsKey.ServedStopped]: 'Server stopped.',\n [TranslationsKey.CreateWorkspaceDescription]:\n 'Creates an Alliance Workspace in the current directory.',\n [TranslationsKey.CreateAppDescription]:\n 'Creates an Alliance Application in the current directory or Alliance Workspace.',\n [TranslationsKey.ServeDescription]:\n 'Starts a Alliance development server using the current directory package.json.',\n [TranslationsKey.BuildDescription]: 'Builds an Alliance Application using Vite.',\n [TranslationsKey.WorkspaceNameInquiry]: 'Enter the name of your workspace',\n [TranslationsKey.ServerModeInquiry]: 'Which server mode do you want to use?',\n [TranslationsKey.AppNameInquiry]: 'Enter the name of your app',\n [TranslationsKey.MissingTranslationKey]: 'No translation key provided!',\n [TranslationsKey.OperationCancelled]: 'Operation cancelled.',\n [TranslationsKey.StopServerInstructions]: 'Press CTRL + C to stop the server.\\n',\n [TranslationsKey.TemplateLanguageInquiry]: 'Select preferred language',\n [TranslationsKey.TemplateFrameworkInquiry]: 'Select preferred framework template',\n [TranslationsKey.DevServerPortDescription]: 'The port that the dev server should use.',\n [TranslationsKey.ApiGatewayPortDescription]: 'The port that the api gateway should use.',\n [TranslationsKey.ApiServerModeDescription]:\n 'Which components to start. [server|server-proxy|server-gateway].',\n [TranslationsKey.DevServerOpenDescription]:\n 'Whether the dev server should automatically open in your browser or not.',\n [TranslationsKey.BuildWatchDescription]:\n 'Whether the build should start watching and rebuild when files change or not.',\n [TranslationsKey.CouldNotStartGatewayInDocker]:\n 'Could not start Docker container with Alliance gateway.',\n [TranslationsKey.PullingLatestImage]: 'Pulling latest image...',\n [TranslationsKey.AppEntryBuildOptionDescription]: 'The entry file for the app (./src/app).',\n [TranslationsKey.ManifestEntryBuildOptionDescription]:\n 'The entry file for the app manifest (./src/manifest).',\n [TranslationsKey.BuildModeOptionDescription]:\n 'Which mode to use when building the app. [production|development]',\n [TranslationsKey.FetchPackageVersionError]:\n \"Failed to fetch package info from the NPM registry for package '${0}'!\",\n [TranslationsKey.DockerNotStartedOrInstalled]: 'Docker not started or not installed.',\n [TranslationsKey.EnableDevAuthentication]:\n 'Whether user authentication should be enabled or not.',\n [TranslationsKey.NoAppNameFound]: 'Could not find app name in manifest.',\n [TranslationsKey.AppConfigurationPath]: 'The path to the app configuration file.',\n [TranslationsKey.ServerMode]: 'Server',\n [TranslationsKey.ServerProxyMode]: 'Server with proxy',\n [TranslationsKey.ServerGatewayMode]: 'Server with gateway',\n [TranslationsKey.DevLoginUrl]: 'Log in using http://localhost:{0}/-/dev/login',\n};\n","import { en, TranslationsKey, type Translations } from './translations';\n\nexport type TextArgs = (string | number)[];\n\nexport class Texts {\n protected static getTranslations = (): Translations => {\n return en;\n };\n\n protected static getTranslation = (key: TranslationsKey, ...args: TextArgs): string => {\n const translations = Texts.getTranslations();\n const translation = translations[key];\n\n if (!translation) throw new Error(`Could not find text with given key '${key}'.`);\n\n const formattedTranslation = args.reduce(\n (acc, curr, index) => acc.toString().replace(`{${index}}`, curr.toString()),\n translation\n );\n\n return formattedTranslation.toString();\n };\n\n public static get = (\n key: TranslationsKey = TranslationsKey.MissingTranslationKey,\n ...args: TextArgs\n ) => this.getTranslation(key, ...args);\n}\n\nexport default Texts;\n","export function vocaIconsToOptions(vocaIcons: any, selected: string) {\n return mapToVocaOptions(Object.values(vocaIcons), ({ name }: any) => ({\n label: name,\n value: name,\n selected: selected === name,\n }));\n}\n\nexport type VocaIcon = { name: string; svg: string };\n\nexport enum VocaButtonVariant {\n Primary = 'primary',\n Secondary = 'secondary',\n Expressive = 'expressive',\n Destructive = 'destructive',\n Text = 'text',\n PrimaryWhite = 'primary-white',\n SecondaryWhite = 'secondary-white',\n ExpressiveWhite = 'expressive-white',\n TertiaryPurple = 'tertiary-purple',\n}\n\nexport type VocaOption = { label: string; value: string; disabled?: boolean; selected?: boolean };\n\nexport function getVocaIcon(vocaIcons: any, name: string) {\n const icon = Object.values(vocaIcons).find((icon: any) => icon.name === name);\n return icon as VocaIcon;\n}\n\nexport type Unpacked<T> = T extends (infer U)[] ? U : T;\n\nexport function mapToVocaOptions<T>(\n items: T,\n mapper: (item: Unpacked<T>) => VocaOption\n): VocaOption[] {\n return (items as []).reduce<VocaOption[]>(\n (acc, item) => {\n acc.push({\n disabled: false,\n selected: false,\n ...mapper(item),\n });\n\n return acc;\n },\n [\n {\n label: 'Choose...',\n value: '',\n disabled: true,\n selected: true,\n },\n ]\n );\n}\n\nexport function onEnter(fn: Function) {\n return (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n fn(e);\n }\n };\n}\n\nexport function friendlyUserName(\n user: { email: string; displayName: string },\n format: 'single' | 'all' = 'all'\n) {\n const { email, displayName } = user;\n\n const hasDisplayName = displayName && displayName !== 'unknown';\n const hasEmail = !!email;\n\n switch (format) {\n case 'all': {\n if (hasDisplayName && hasEmail) {\n return `${displayName} (${email})`;\n } else if (hasDisplayName) {\n return displayName;\n } else if (hasEmail) {\n return email;\n }\n }\n case 'single': {\n if (hasDisplayName) {\n return displayName;\n } else if (hasEmail) {\n return email;\n }\n }\n }\n\n return '<UNKNOWN USER>';\n}\n\nexport function classNames(...classes: string[]) {\n return classes.filter((c) => !!c).join(' ');\n}\n"],"names":["createQueryString","args","filteredArgs","acc","entry","key","value","createCapabilityPath","app","capability","TranslationsKey","TranslationsKey2","en","_Texts","Texts","__publicField","translation","curr","index","vocaIconsToOptions","vocaIcons","selected","mapToVocaOptions","name","VocaButtonVariant","getVocaIcon","icon","items","mapper","item","onEnter","fn","e","friendlyUserName","user","format","email","displayName","hasDisplayName","hasEmail","classNames","classes","c"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/frontend/routing.ts","../src/frontend/translations.ts","../src/frontend/texts.ts","../src/frontend/ui.ts"],"sourcesContent":["import { SerializeableObject } from './types';\n\nfunction createQueryString(args: SerializeableObject) {\n const entries = Object.entries(args);\n\n const filteredArgs = entries.reduce<SerializeableObject>((acc, entry) => {\n const [key, value] = entry;\n\n if (typeof value === 'undefined') {\n return acc;\n } else if (typeof value === 'object' && value !== null) {\n acc[key] = JSON.stringify(value);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n\n if (!Object.keys(filteredArgs).length) {\n return '';\n }\n\n return `?${new URLSearchParams(filteredArgs as Record<string, any>)}`;\n}\n\nfunction getCurrentPath() {\n const runtimeRootUrl = getRuntimeRootUrl();\n const { href, search } = window.location;\n\n return href.replace(runtimeRootUrl, '').replace(search, '');\n}\n\nfunction escapeRegex(str: string) {\n return str.replaceAll(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nexport function createCapabilityPath(\n app: string = '',\n capability: string = '',\n args: SerializeableObject = {}\n) {\n const rootPath = getRuntimeRootUrl().replace(location.origin, '');\n const queryString = createQueryString(args);\n\n if (!app) {\n return `${rootPath}${queryString}`;\n }\n\n if (!capability) {\n return `${rootPath}/${app}${queryString}`;\n }\n\n return `${rootPath}/${app}/${capability}${queryString}`;\n}\n\nexport function getCurrentLocationInfo() {\n const currentPath = getCurrentPath();\n const [app = '', capability = ''] = currentPath.split('/').filter((part) => !!part);\n\n return {\n app,\n capability,\n };\n}\n\nexport function matchRegExpLike(regExpLikeStr: string, testStr: string): boolean {\n const escaped = escapeRegex(regExpLikeStr);\n const regExp = new RegExp(`^${escaped.replaceAll('\\\\?', '.?').replaceAll('\\\\*', '.*')}`, 'i');\n return regExp.test(testStr);\n}\n\nexport function setRuntimeRootUrl() {\n const { origin, pathname } = window.location;\n\n // If on Alliance cloud environment - the first part of path is workspace\n if (matchRegExpLike('https://alliance*.ace.teliacompany.net', origin)) {\n const [workspace] = pathname.split('/').filter((part) => !!part);\n\n return (globalThis.__ALLIANCE_RUNTIME_ROOT_URL = `${origin}/${workspace}`);\n }\n\n return (globalThis.__ALLIANCE_RUNTIME_ROOT_URL = origin);\n}\n\nexport function getRuntimeRootUrl() {\n if (!globalThis.__ALLIANCE_RUNTIME_ROOT_URL) {\n setRuntimeRootUrl();\n }\n\n return globalThis.__ALLIANCE_RUNTIME_ROOT_URL;\n}\n","export type Translations = {\n [key in TranslationsKey]: string;\n};\n\nexport enum TranslationsKey {\n Done,\n NoWorkspaceName,\n NoAppName,\n AlreadyExists,\n NoAppOrWorkspaceInCurrentDirectory,\n UnrecognizedCommand,\n WorkspaceCreated,\n AppCreated,\n ServedStopped,\n WorkspaceNameInquiry,\n AppNameInquiry,\n ServerModeInquiry,\n CreateWorkspaceDescription,\n CreateAppDescription,\n ServeDescription,\n BuildDescription,\n MissingTranslationKey,\n OperationCancelled,\n StopServerInstructions,\n TemplateLanguageInquiry,\n TemplateFrameworkInquiry,\n DevServerPortDescription,\n ApiGatewayPortDescription,\n ApiServerModeDescription,\n DevServerOpenDescription,\n BuildWatchDescription,\n CouldNotStartGatewayInDocker,\n PullingLatestImage,\n AppEntryBuildOptionDescription,\n ManifestEntryBuildOptionDescription,\n BuildModeOptionDescription,\n FetchPackageVersionError,\n DockerNotStartedOrInstalled,\n EnableDevAuthentication,\n NoAppNameFound,\n AppConfigurationPath,\n ServerGatewayMode,\n ServerProxyMode,\n ServerMode,\n DevLoginUrl,\n}\n\nexport const en: Translations = {\n [TranslationsKey.Done]: 'Done',\n [TranslationsKey.NoWorkspaceName]: 'No workspace name provided!',\n [TranslationsKey.NoAppName]: 'No app name provided!',\n [TranslationsKey.AlreadyExists]: \"File or directory '{0}' already exists!\",\n [TranslationsKey.NoAppOrWorkspaceInCurrentDirectory]:\n \"Could not find any app entry file at '{0}' or any apps under the alliance.apps property in '{1}'!\",\n [TranslationsKey.UnrecognizedCommand]: 'Unrecognized command(s) {0}!',\n [TranslationsKey.WorkspaceCreated]: \"Workspace was created at path '{0}'!\",\n [TranslationsKey.AppCreated]: \"App was created at path '{0}'!\",\n [TranslationsKey.ServedStopped]: 'Server stopped.',\n [TranslationsKey.CreateWorkspaceDescription]:\n 'Creates an Alliance Workspace in the current directory.',\n [TranslationsKey.CreateAppDescription]:\n 'Creates an Alliance Application in the current directory or Alliance Workspace.',\n [TranslationsKey.ServeDescription]:\n 'Starts a Alliance development server using the current directory package.json.',\n [TranslationsKey.BuildDescription]: 'Builds an Alliance Application using Vite.',\n [TranslationsKey.WorkspaceNameInquiry]: 'Enter the name of your workspace',\n [TranslationsKey.ServerModeInquiry]: 'Which server mode do you want to use?',\n [TranslationsKey.AppNameInquiry]: 'Enter the name of your app',\n [TranslationsKey.MissingTranslationKey]: 'No translation key provided!',\n [TranslationsKey.OperationCancelled]: 'Operation cancelled.',\n [TranslationsKey.StopServerInstructions]: 'Press CTRL + C to stop the server.\\n',\n [TranslationsKey.TemplateLanguageInquiry]: 'Select preferred language',\n [TranslationsKey.TemplateFrameworkInquiry]: 'Select preferred framework template',\n [TranslationsKey.DevServerPortDescription]: 'The port that the dev server should use.',\n [TranslationsKey.ApiGatewayPortDescription]: 'The port that the api gateway should use.',\n [TranslationsKey.ApiServerModeDescription]:\n 'Which components to start. [server|server-proxy|server-gateway].',\n [TranslationsKey.DevServerOpenDescription]:\n 'Whether the dev server should automatically open in your browser or not.',\n [TranslationsKey.BuildWatchDescription]:\n 'Whether the build should start watching and rebuild when files change or not.',\n [TranslationsKey.CouldNotStartGatewayInDocker]:\n 'Could not start Docker container with Alliance gateway.',\n [TranslationsKey.PullingLatestImage]: 'Pulling latest image...',\n [TranslationsKey.AppEntryBuildOptionDescription]: 'The entry file for the app (./src/app).',\n [TranslationsKey.ManifestEntryBuildOptionDescription]:\n 'The entry file for the app manifest (./src/manifest).',\n [TranslationsKey.BuildModeOptionDescription]:\n 'Which mode to use when building the app. [production|development]',\n [TranslationsKey.FetchPackageVersionError]:\n \"Failed to fetch package info from the NPM registry for package '${0}'!\",\n [TranslationsKey.DockerNotStartedOrInstalled]: 'Docker not started or not installed.',\n [TranslationsKey.EnableDevAuthentication]:\n 'Whether user authentication should be enabled or not.',\n [TranslationsKey.NoAppNameFound]: 'Could not find app name in manifest.',\n [TranslationsKey.AppConfigurationPath]: 'The path to the app configuration file.',\n [TranslationsKey.ServerMode]: 'Server',\n [TranslationsKey.ServerProxyMode]: 'Server with proxy',\n [TranslationsKey.ServerGatewayMode]: 'Server with gateway',\n [TranslationsKey.DevLoginUrl]: 'Log in using http://localhost:{0}/-/dev/login',\n};\n","import { en, TranslationsKey, type Translations } from './translations';\n\nexport type TextArgs = (string | number)[];\n\nexport class Texts {\n protected static getTranslations = (): Translations => {\n return en;\n };\n\n protected static getTranslation = (key: TranslationsKey, ...args: TextArgs): string => {\n const translations = Texts.getTranslations();\n const translation = translations[key];\n\n if (!translation) throw new Error(`Could not find text with given key '${key}'.`);\n\n const formattedTranslation = args.reduce(\n (acc, curr, index) => acc.toString().replace(`{${index}}`, curr.toString()),\n translation\n );\n\n return formattedTranslation.toString();\n };\n\n public static get = (\n key: TranslationsKey = TranslationsKey.MissingTranslationKey,\n ...args: TextArgs\n ) => this.getTranslation(key, ...args);\n}\n\nexport default Texts;\n","export function vocaIconsToOptions(vocaIcons: any, selected: string) {\n return mapToVocaOptions(Object.values(vocaIcons), ({ name }: any) => ({\n label: name,\n value: name,\n selected: selected === name,\n }));\n}\n\nexport type VocaIcon = { name: string; svg: string };\n\nexport enum VocaButtonVariant {\n Primary = 'primary',\n Secondary = 'secondary',\n Expressive = 'expressive',\n Destructive = 'destructive',\n Text = 'text',\n PrimaryWhite = 'primary-white',\n SecondaryWhite = 'secondary-white',\n ExpressiveWhite = 'expressive-white',\n TertiaryPurple = 'tertiary-purple',\n}\n\nexport type VocaOption = { label: string; value: string; disabled?: boolean; selected?: boolean };\n\nexport function getVocaIcon(vocaIcons: any, name: string) {\n const icon = Object.values(vocaIcons).find((icon: any) => icon.name === name);\n return icon as VocaIcon;\n}\n\nexport type Unpacked<T> = T extends (infer U)[] ? U : T;\n\nexport function mapToVocaOptions<T>(\n items: T,\n mapper: (item: Unpacked<T>) => VocaOption\n): VocaOption[] {\n return (items as []).reduce<VocaOption[]>(\n (acc, item) => {\n acc.push({\n disabled: false,\n selected: false,\n ...mapper(item),\n });\n\n return acc;\n },\n [\n {\n label: 'Choose...',\n value: '',\n disabled: true,\n selected: true,\n },\n ]\n );\n}\n\nexport function onEnter(fn: Function) {\n return (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n fn(e);\n }\n };\n}\n\nexport function friendlyUserName(\n user: { email: string; displayName: string },\n format: 'single' | 'all' = 'all'\n) {\n const { email, displayName } = user;\n\n const hasDisplayName = displayName && displayName !== 'unknown';\n const hasEmail = !!email;\n\n switch (format) {\n case 'all': {\n if (hasDisplayName && hasEmail) {\n return `${displayName} (${email})`;\n } else if (hasDisplayName) {\n return displayName;\n } else if (hasEmail) {\n return email;\n }\n }\n case 'single': {\n if (hasDisplayName) {\n return displayName;\n } else if (hasEmail) {\n return email;\n }\n }\n }\n\n return '<UNKNOWN USER>';\n}\n\nexport function classNames(...classes: string[]) {\n return classes.filter((c) => !!c).join(' ');\n}\n"],"names":["createQueryString","args","filteredArgs","acc","entry","key","value","getCurrentPath","runtimeRootUrl","getRuntimeRootUrl","href","search","escapeRegex","str","createCapabilityPath","app","capability","rootPath","queryString","getCurrentLocationInfo","currentPath","part","matchRegExpLike","regExpLikeStr","testStr","escaped","setRuntimeRootUrl","origin","pathname","workspace","TranslationsKey","TranslationsKey2","en","_Texts","Texts","__publicField","translation","curr","index","vocaIconsToOptions","vocaIcons","selected","mapToVocaOptions","name","VocaButtonVariant","getVocaIcon","icon","items","mapper","item","onEnter","fn","e","friendlyUserName","user","format","email","displayName","hasDisplayName","hasEmail","classNames","classes","c"],"mappings":"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"}
@@ -1,2 +1,9 @@
1
1
  import { SerializeableObject } from './types';
2
2
  export declare function createCapabilityPath(app?: string, capability?: string, args?: SerializeableObject): string;
3
+ export declare function getCurrentLocationInfo(): {
4
+ app: string;
5
+ capability: string;
6
+ };
7
+ export declare function matchRegExpLike(regExpLikeStr: string, testStr: string): boolean;
8
+ export declare function setRuntimeRootUrl(): string;
9
+ export declare function getRuntimeRootUrl(): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/alliance-utilities",
3
- "version": "1.0.10-next.0",
3
+ "version": "1.0.10-next.2",
4
4
  "description": "Utilities used internally by ACE Alliance packages.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",