@stack-spot/portal-network 0.99.2 → 0.99.3

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,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.99.3](https://github.com/stack-spot/portal-commons/compare/portal-network@v0.99.2...portal-network@v0.99.3) (2025-03-19)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * interpolate error masssges ([#810](https://github.com/stack-spot/portal-commons/issues/810)) ([351be8d](https://github.com/stack-spot/portal-commons/commit/351be8d00540061a491d36bd5c4884ec6487d8a9))
9
+
3
10
  ## [0.99.2](https://github.com/stack-spot/portal-commons/compare/portal-network@v0.99.1...portal-network@v0.99.2) (2025-03-19)
4
11
 
5
12
 
@@ -1,6 +1,7 @@
1
1
  import { Dictionary } from '@stack-spot/portal-translate';
2
2
  import { ErrorResponse } from '../api/account.js';
3
3
  import { StackspotAPIError } from './StackspotAPIError.js';
4
+ export declare function interpolateErrors(message: string, values: string[], fieldValuesFileContent: Record<string, string>): string;
4
5
  /**
5
6
  * This represents the Error thrown by most Stackspot APIs.
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAPIError.d.ts","sourceRoot":"","sources":["../../src/error/DefaultAPIError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,8BAA8B,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAqB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAA0B,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAkD/E;;GAEG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD;;OAEG;IACH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAA;;IAGP;;OAEG;IACH,WAAW,EAAE,GAAG;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM;IACd;;OAEG;IACH,UAAU,EAAE,UAAU;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO;CAkBpB"}
1
+ {"version":3,"file":"DefaultAPIError.d.ts","sourceRoot":"","sources":["../../src/error/DefaultAPIError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,8BAA8B,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAqB,MAAM,gBAAgB,CAAA;AAOjE,OAAO,EAA0B,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAmC/E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAUlH;AA0BD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD;;OAEG;IACH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAA;;IAGP;;OAEG;IACH,WAAW,EAAE,GAAG;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM;IACd;;OAEG;IACH,UAAU,EAAE,UAAU;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO;CAkBpB"}
@@ -1,10 +1,11 @@
1
1
  import { every, isString } from 'lodash';
2
- import { StackspotAPIError } from './StackspotAPIError.js';
2
+ import { actionDetails } from './dictionary/action-details.js';
3
3
  import { baseDictionary } from './dictionary/base.js';
4
4
  import { cntFields } from './dictionary/cnt-fields.js';
5
- import { workspaceFields } from './dictionary/workspace-fields.js';
6
5
  import { workspaceDetails } from './dictionary/workspace-details.js';
7
- import { actionDetails } from './dictionary/action-details.js';
6
+ import { workspaceFields } from './dictionary/workspace-fields.js';
7
+ import { ignoredTitleErrorCodes } from './IgnoredErrorCodes.js';
8
+ import { StackspotAPIError } from './StackspotAPIError.js';
8
9
  // these details don't say anything the status already doesn't and we'd better use local translations for them.
9
10
  const ignoredDescriptions = [
10
11
  'internal server error', 'not found', 'gateway timeout', 'temporally unavailable', 'forbidden', 'unauthorized', 'bad request',
@@ -18,6 +19,8 @@ const detailsDictionary = {
18
19
  actionapi: actionDetails,
19
20
  };
20
21
  function getTitle(status, raw, dictionary, language) {
22
+ if (ignoredTitleErrorCodes.includes(raw.code))
23
+ return ' ';
21
24
  if (dictionary[language][raw.code])
22
25
  return dictionary[language][raw.code];
23
26
  if (raw.details && !ignoredDescriptions.includes(raw.details))
@@ -27,6 +30,21 @@ function getTitle(status, raw, dictionary, language) {
27
30
  function getValues(detail) {
28
31
  return detail.values && every(detail.values, isString) ? `\n${detail.values.join('\n')}` : '';
29
32
  }
33
+ const UNIT_REGEX_TEMPLATE = /{\d}/g;
34
+ const RANGE_REGEX_TEMPLATE = /{1-n}/g;
35
+ function containsNumberInBraces(input) {
36
+ return UNIT_REGEX_TEMPLATE.test(input) || RANGE_REGEX_TEMPLATE.test(input);
37
+ }
38
+ export function interpolateErrors(message, values, fieldValuesFileContent) {
39
+ return message
40
+ .replace(UNIT_REGEX_TEMPLATE, (value) => {
41
+ const position = +value.replace(/{|}/g, '');
42
+ const index = position - 1;
43
+ const fieldValue = values[index];
44
+ return fieldValuesFileContent[fieldValue] || fieldValue;
45
+ })
46
+ .replace(RANGE_REGEX_TEMPLATE, () => values.toString());
47
+ }
30
48
  function createMessage(status, raw, dictionary, language) {
31
49
  const title = getTitle(status, raw, dictionary, language || 'en');
32
50
  const api = raw.code?.split(/[-_]/)[0];
@@ -36,8 +54,11 @@ function createMessage(status, raw, dictionary, language) {
36
54
  return { description: title, ...dictionaryDetails };
37
55
  const details = raw.validationDetails?.map((detail) => {
38
56
  const dict = (fieldDictionary[api?.toLowerCase()] ?? {})[language || 'en'] ?? {};
39
- const name = dict[detail.code] || detail.field ||
40
- (raw.code !== detail.code && dictionary[language || 'en'][detail.code]) || detail.details || '';
57
+ const codeTranslatedMessage = raw.code !== detail.code && dictionary[language || 'en'][detail.code];
58
+ if (codeTranslatedMessage && containsNumberInBraces(codeTranslatedMessage) && detail.values?.length) {
59
+ return interpolateErrors(codeTranslatedMessage, detail.values, dict);
60
+ }
61
+ const name = dict[detail.code] || detail.field || codeTranslatedMessage || detail.details || '';
41
62
  return `${name}${getValues(detail)}`;
42
63
  })?.filter(d => !!d);
43
64
  return { description: details ? `${title}\n${details?.join('\n')}` : title, ...dictionaryDetails };
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAPIError.js","sourceRoot":"","sources":["../../src/error/DefaultAPIError.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DefaultAPIError.js","sourceRoot":"","sources":["../../src/error/DefaultAPIError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const ignoredTitleErrorCodes: string[];
2
+ //# sourceMappingURL=IgnoredErrorCodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IgnoredErrorCodes.d.ts","sourceRoot":"","sources":["../../src/error/IgnoredErrorCodes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,UAAuC,CAAA"}
@@ -0,0 +1,3 @@
1
+ // A list o errors we would not like to render on screen as title messages.
2
+ export const ignoredTitleErrorCodes = ['WKS_CONTEXT_ATTRIBUTE_TYPE_ERROR'];
3
+ //# sourceMappingURL=IgnoredErrorCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IgnoredErrorCodes.js","sourceRoot":"","sources":["../../src/error/IgnoredErrorCodes.ts"],"names":[],"mappings":"AACA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,kCAAkC,CAAC,CAAA"}
@@ -77,7 +77,10 @@ export declare const workspaceDictionary: {
77
77
  WKS_PLUGIN_NOT_ASSOCIATED_WITH_SPECIFIC_STACK_VERSION: string;
78
78
  WKS_PARAMETER_CONFIG_NOT_FOUND: string;
79
79
  WKS_CONTEXT_ATTRIBUTE_NOT_ALLOWED_FOR_ACCOUNT: string;
80
- WKS_CONTEXT_ATTRIBUTE_TYPE_ERROR: string;
80
+ WKS_CONTEXT_ATTRIBUTE_SPECIFIC_ERROR: string;
81
+ WKS_CONTEXT_ATTRIBUTE_CONNECTION_TYPE_ERROR: string;
82
+ WKS_CONTEXT_ATTRIBUTE_GENERATED_CONNECTION_TYPE_ERROR: string;
83
+ WKS_CONTEXT_ATTRIBUTE_CANNOT_VARY_PER_ENV: string;
81
84
  SCM_API_4001_GITHUB_GET_REPO_BRANCHES_NOT_FOUND: string;
82
85
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_UNAUTHORIZED: string;
83
86
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_FORBIDDEN: string;
@@ -175,7 +178,10 @@ export declare const workspaceDictionary: {
175
178
  WKS_PLUGIN_NOT_ASSOCIATED_WITH_SPECIFIC_STACK_VERSION: string;
176
179
  WKS_PARAMETER_CONFIG_NOT_FOUND: string;
177
180
  WKS_CONTEXT_ATTRIBUTE_NOT_ALLOWED_FOR_ACCOUNT: string;
178
- WKS_CONTEXT_ATTRIBUTE_TYPE_ERROR: string;
181
+ WKS_CONTEXT_ATTRIBUTE_SPECIFIC_ERROR: string;
182
+ WKS_CONTEXT_ATTRIBUTE_CONNECTION_TYPE_ERROR: string;
183
+ WKS_CONTEXT_ATTRIBUTE_GENERATED_CONNECTION_TYPE_ERROR: string;
184
+ WKS_CONTEXT_ATTRIBUTE_CANNOT_VARY_PER_ENV: string;
179
185
  SCM_API_4001_GITHUB_GET_REPO_BRANCHES_NOT_FOUND: string;
180
186
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_UNAUTHORIZED: string;
181
187
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_FORBIDDEN: string;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/error/dictionary/workspace.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsMV,CAAA"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/error/dictionary/workspace.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4MV,CAAA"}
@@ -77,7 +77,10 @@ export const workspaceDictionary = {
77
77
  WKS_PLUGIN_NOT_ASSOCIATED_WITH_SPECIFIC_STACK_VERSION: 'Plugin {1} is not associated with stack {2}',
78
78
  WKS_PARAMETER_CONFIG_NOT_FOUND: 'Parameter {1} is missing in Workspace',
79
79
  WKS_CONTEXT_ATTRIBUTE_NOT_ALLOWED_FOR_ACCOUNT: 'Connection inputs are not allowed in account contexts',
80
- WKS_CONTEXT_ATTRIBUTE_TYPE_ERROR: 'Value {1} doesn\'t match the expected type for this input. Expected type: {2}',
80
+ WKS_CONTEXT_ATTRIBUTE_SPECIFIC_ERROR: "Field '{1}' doesn't accept value '{2}'",
81
+ WKS_CONTEXT_ATTRIBUTE_CONNECTION_TYPE_ERROR: "Field '{1}' doesn't accept value '{2}'. No connection interfaces were found of type '{3}'",
82
+ WKS_CONTEXT_ATTRIBUTE_GENERATED_CONNECTION_TYPE_ERROR: "Field '{1}' doesn't accept value '{2}'. Connection interface already exists",
83
+ WKS_CONTEXT_ATTRIBUTE_CANNOT_VARY_PER_ENV: "Field '{1}' doesn't allow varying per environment",
81
84
  SCM_API_4001_GITHUB_GET_REPO_BRANCHES_NOT_FOUND: 'The specified repository could not be found on GitHub.',
82
85
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_UNAUTHORIZED: 'Unauthorized access to the repository on GitHub. Please check your credentials.',
83
86
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_FORBIDDEN: 'Access to the repository on GitHub is forbidden. Verify your permissions.',
@@ -175,7 +178,10 @@ export const workspaceDictionary = {
175
178
  WKS_PLUGIN_NOT_ASSOCIATED_WITH_SPECIFIC_STACK_VERSION: 'O plugin {1} não está associado à stack {2}',
176
179
  WKS_PARAMETER_CONFIG_NOT_FOUND: 'O parâmetro {1} está ausente no Workspace',
177
180
  WKS_CONTEXT_ATTRIBUTE_NOT_ALLOWED_FOR_ACCOUNT: 'Entradas de conexão não são permitidas em contextos de conta',
178
- WKS_CONTEXT_ATTRIBUTE_TYPE_ERROR: 'O valor {1} não corresponde ao tipo esperado para este input. Tipo esperado: {2}',
181
+ WKS_CONTEXT_ATTRIBUTE_SPECIFIC_ERROR: 'O campo {1} não aceita o valor {2}',
182
+ WKS_CONTEXT_ATTRIBUTE_CONNECTION_TYPE_ERROR: 'O campo {1} não aceita o valor {2}. Nenhuma interface de conexão foi encontrada do tipo {3}',
183
+ WKS_CONTEXT_ATTRIBUTE_GENERATED_CONNECTION_TYPE_ERROR: 'O campo {1} não aceita o valor {2}. A interface de conexão já existe',
184
+ WKS_CONTEXT_ATTRIBUTE_CANNOT_VARY_PER_ENV: 'O campo {1} não permite variação por ambiente',
179
185
  SCM_API_4001_GITHUB_GET_REPO_BRANCHES_NOT_FOUND: 'O repositório especificado não foi encontrado no GitHub.',
180
186
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_UNAUTHORIZED: 'Acesso não autorizado ao repositório no GitHub. Verifique suas credenciais.',
181
187
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_FORBIDDEN: 'Acesso ao repositório no GitHub foi proibido. Verifique suas permissões.',
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/error/dictionary/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/error/dictionary/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/portal-network",
3
- "version": "0.99.2",
3
+ "version": "0.99.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,12 +1,13 @@
1
1
  import { Dictionary, Language } from '@stack-spot/portal-translate'
2
2
  import { every, isString } from 'lodash'
3
3
  import { ErrorResponse, ValidationDetails } from '../api/account'
4
- import { ErrorDetailsProperties, StackspotAPIError } from './StackspotAPIError'
4
+ import { actionDetails } from './dictionary/action-details'
5
5
  import { baseDictionary } from './dictionary/base'
6
6
  import { cntFields } from './dictionary/cnt-fields'
7
- import { workspaceFields } from './dictionary/workspace-fields'
8
7
  import { workspaceDetails } from './dictionary/workspace-details'
9
- import { actionDetails } from './dictionary/action-details'
8
+ import { workspaceFields } from './dictionary/workspace-fields'
9
+ import { ignoredTitleErrorCodes } from './IgnoredErrorCodes'
10
+ import { ErrorDetailsProperties, StackspotAPIError } from './StackspotAPIError'
10
11
 
11
12
  // these details don't say anything the status already doesn't and we'd better use local translations for them.
12
13
  const ignoredDescriptions = [
@@ -24,6 +25,7 @@ const detailsDictionary = {
24
25
  }
25
26
 
26
27
  function getTitle(status: number, raw: ErrorResponse, dictionary: Dictionary, language: Language) {
28
+ if (ignoredTitleErrorCodes.includes(raw.code)) return ' '
27
29
  if (dictionary[language][raw.code]) return dictionary[language][raw.code]
28
30
  if (raw.details && !ignoredDescriptions.includes(raw.details)) return raw.details
29
31
  return (baseDictionary as Dictionary)[language][status] || baseDictionary[language].defaultTitle
@@ -33,18 +35,43 @@ function getValues(detail: ValidationDetails) {
33
35
  return detail.values && every(detail.values, isString) ? `\n${detail.values.join('\n')}` : ''
34
36
  }
35
37
 
36
- function createMessage(status: number, raw: ErrorResponse, dictionary: Dictionary, language?: Language): ErrorDetailsProperties {
38
+ const UNIT_REGEX_TEMPLATE = /{\d}/g
39
+ const RANGE_REGEX_TEMPLATE = /{1-n}/g
40
+
41
+ function containsNumberInBraces(input: string) {
42
+ return UNIT_REGEX_TEMPLATE.test(input) || RANGE_REGEX_TEMPLATE.test(input)
43
+ }
44
+
45
+ export function interpolateErrors(message: string, values: string[], fieldValuesFileContent: Record<string, string>) {
46
+ return message
47
+ .replace(UNIT_REGEX_TEMPLATE, (value) => {
48
+ const position = +value.replace(/{|}/g, '')
49
+ const index = position - 1
50
+
51
+ const fieldValue = values[index]
52
+ return fieldValuesFileContent[fieldValue] || fieldValue
53
+ })
54
+ .replace(RANGE_REGEX_TEMPLATE, () => values.toString())
55
+ }
56
+
57
+
58
+ function createMessage(status: number, raw: ErrorResponse, dictionary: Dictionary, language?: Language): ErrorDetailsProperties {
37
59
  const title = getTitle(status, raw, dictionary, language || 'en')
38
60
  const api = raw.code?.split(/[-_]/)[0]
39
61
  const dictDetails = (detailsDictionary[api?.toLowerCase() as keyof typeof detailsDictionary] ?? {})[language || 'en']
40
62
  const dictionaryDetails = raw.code && dictDetails ? dictDetails[raw.code] : {}
41
63
 
42
- if (!raw.validationDetails?.length) return { description : title, ...dictionaryDetails }
43
-
64
+ if (!raw.validationDetails?.length) return { description: title, ...dictionaryDetails }
65
+
44
66
  const details = raw.validationDetails?.map((detail) => {
45
67
  const dict: Record<string, string> = (fieldDictionary[api?.toLowerCase() as keyof typeof fieldDictionary] ?? {})[language || 'en'] ?? {}
46
- const name = dict[detail.code] || detail.field ||
47
- (raw.code !== detail.code && dictionary[language || 'en'][detail.code]) || detail.details || ''
68
+ const codeTranslatedMessage = raw.code !== detail.code && dictionary[language || 'en'][detail.code]
69
+
70
+ if (codeTranslatedMessage && containsNumberInBraces(codeTranslatedMessage) && detail.values?.length) {
71
+ return interpolateErrors(codeTranslatedMessage, detail.values, dict)
72
+ }
73
+
74
+ const name = dict[detail.code] || detail.field || codeTranslatedMessage || detail.details || ''
48
75
  return `${name}${getValues(detail)}`
49
76
  })?.filter(d => !!d)
50
77
 
@@ -0,0 +1,3 @@
1
+
2
+ // A list o errors we would not like to render on screen as title messages.
3
+ export const ignoredTitleErrorCodes = ['WKS_CONTEXT_ATTRIBUTE_TYPE_ERROR']
@@ -79,7 +79,10 @@ export const workspaceDictionary = {
79
79
  WKS_PLUGIN_NOT_ASSOCIATED_WITH_SPECIFIC_STACK_VERSION: 'Plugin {1} is not associated with stack {2}',
80
80
  WKS_PARAMETER_CONFIG_NOT_FOUND: 'Parameter {1} is missing in Workspace',
81
81
  WKS_CONTEXT_ATTRIBUTE_NOT_ALLOWED_FOR_ACCOUNT: 'Connection inputs are not allowed in account contexts',
82
- WKS_CONTEXT_ATTRIBUTE_TYPE_ERROR: 'Value {1} doesn\'t match the expected type for this input. Expected type: {2}',
82
+ WKS_CONTEXT_ATTRIBUTE_SPECIFIC_ERROR: "Field '{1}' doesn't accept value '{2}'",
83
+ WKS_CONTEXT_ATTRIBUTE_CONNECTION_TYPE_ERROR: "Field '{1}' doesn't accept value '{2}'. No connection interfaces were found of type '{3}'",
84
+ WKS_CONTEXT_ATTRIBUTE_GENERATED_CONNECTION_TYPE_ERROR: "Field '{1}' doesn't accept value '{2}'. Connection interface already exists",
85
+ WKS_CONTEXT_ATTRIBUTE_CANNOT_VARY_PER_ENV: "Field '{1}' doesn't allow varying per environment",
83
86
  SCM_API_4001_GITHUB_GET_REPO_BRANCHES_NOT_FOUND: 'The specified repository could not be found on GitHub.',
84
87
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_UNAUTHORIZED: 'Unauthorized access to the repository on GitHub. Please check your credentials.',
85
88
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_FORBIDDEN: 'Access to the repository on GitHub is forbidden. Verify your permissions.',
@@ -177,7 +180,10 @@ export const workspaceDictionary = {
177
180
  WKS_PLUGIN_NOT_ASSOCIATED_WITH_SPECIFIC_STACK_VERSION: 'O plugin {1} não está associado à stack {2}',
178
181
  WKS_PARAMETER_CONFIG_NOT_FOUND: 'O parâmetro {1} está ausente no Workspace',
179
182
  WKS_CONTEXT_ATTRIBUTE_NOT_ALLOWED_FOR_ACCOUNT: 'Entradas de conexão não são permitidas em contextos de conta',
180
- WKS_CONTEXT_ATTRIBUTE_TYPE_ERROR: 'O valor {1} não corresponde ao tipo esperado para este input. Tipo esperado: {2}',
183
+ WKS_CONTEXT_ATTRIBUTE_SPECIFIC_ERROR: 'O campo {1} não aceita o valor {2}',
184
+ WKS_CONTEXT_ATTRIBUTE_CONNECTION_TYPE_ERROR: 'O campo {1} não aceita o valor {2}. Nenhuma interface de conexão foi encontrada do tipo {3}',
185
+ WKS_CONTEXT_ATTRIBUTE_GENERATED_CONNECTION_TYPE_ERROR: 'O campo {1} não aceita o valor {2}. A interface de conexão já existe',
186
+ WKS_CONTEXT_ATTRIBUTE_CANNOT_VARY_PER_ENV: 'O campo {1} não permite variação por ambiente',
181
187
  SCM_API_4001_GITHUB_GET_REPO_BRANCHES_NOT_FOUND: 'O repositório especificado não foi encontrado no GitHub.',
182
188
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_UNAUTHORIZED: 'Acesso não autorizado ao repositório no GitHub. Verifique suas credenciais.',
183
189
  SCM_API_4002_GITHUB_GET_REPO_BRANCHES_FORBIDDEN: 'Acesso ao repositório no GitHub foi proibido. Verifique suas permissões.',