@next-core/runtime 1.24.0 → 1.24.1

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.
@@ -90,7 +90,8 @@ function handleHttpError(error) {
90
90
  title: _i18n.i18n.t(`${_i18n2.NS}:${_i18n2.K.REQUEST_FAILED}`),
91
91
  content: message,
92
92
  contentStyle: {
93
- whiteSpace: "pre-wrap"
93
+ whiteSpace: "pre-wrap",
94
+ wordBreak: "break-word"
94
95
  }
95
96
  }).then(() => {
96
97
  lastErrorMessage = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"handleHttpError.js","names":["_http","require","_i18n","_Runtime","_history","_i18n2","_Dialog","_setLoginStateCookie","httpErrorToString","error","Event","target","HTMLScriptElement","src","HttpFetchError","i18n","t","NS","K","NETWORK_ERROR","HttpResponseError","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","HttpAbortError","window","NO_AUTH_GUARD","Dialog","show","type","content","LOGIN_TIMEOUT_MESSAGE","then","redirectToLogin","console","message","title","REQUEST_FAILED","contentStyle","whiteSpace","undefined","ssoEnabled","getRuntime","getFeatureFlags","history","getHistory","setLoginStateCookie","location","push","from","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\nimport { setLoginStateCookie } from \"./setLoginStateCookie.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18n.t(`${NS}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n }).then(\n () => {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n () => {\n unauthenticatedConfirming = false;\n }\n );\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n contentStyle: {\n whiteSpace: \"pre-wrap\",\n },\n }).then(() => {\n lastErrorMessage = undefined;\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n setLoginStateCookie(history.location);\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"handleHttpError.js","names":["_http","require","_i18n","_Runtime","_history","_i18n2","_Dialog","_setLoginStateCookie","httpErrorToString","error","Event","target","HTMLScriptElement","src","HttpFetchError","i18n","t","NS","K","NETWORK_ERROR","HttpResponseError","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","HttpAbortError","window","NO_AUTH_GUARD","Dialog","show","type","content","LOGIN_TIMEOUT_MESSAGE","then","redirectToLogin","console","message","title","REQUEST_FAILED","contentStyle","whiteSpace","wordBreak","undefined","ssoEnabled","getRuntime","getFeatureFlags","history","getHistory","setLoginStateCookie","location","push","from","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\nimport { setLoginStateCookie } from \"./setLoginStateCookie.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18n.t(`${NS}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n }).then(\n () => {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n () => {\n unauthenticatedConfirming = false;\n }\n );\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n contentStyle: {\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n },\n }).then(() => {\n lastErrorMessage = undefined;\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n setLoginStateCookie(history.location);\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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"}
@@ -84,7 +84,8 @@ export function handleHttpError(error) {
84
84
  title: i18n.t("".concat(NS, ":").concat(K.REQUEST_FAILED)),
85
85
  content: message,
86
86
  contentStyle: {
87
- whiteSpace: "pre-wrap"
87
+ whiteSpace: "pre-wrap",
88
+ wordBreak: "break-word"
88
89
  }
89
90
  }).then(() => {
90
91
  lastErrorMessage = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"handleHttpError.js","names":["HttpAbortError","HttpFetchError","HttpResponseError","i18n","getRuntime","getHistory","K","NS","Dialog","setLoginStateCookie","httpErrorToString","error","Event","target","HTMLScriptElement","src","t","concat","NETWORK_ERROR","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","window","NO_AUTH_GUARD","show","type","content","LOGIN_TIMEOUT_MESSAGE","then","redirectToLogin","console","message","title","REQUEST_FAILED","contentStyle","whiteSpace","undefined","ssoEnabled","getFeatureFlags","history","location","push","from","_objectSpread","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\nimport { setLoginStateCookie } from \"./setLoginStateCookie.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18n.t(`${NS}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n }).then(\n () => {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n () => {\n unauthenticatedConfirming = false;\n }\n );\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n contentStyle: {\n whiteSpace: \"pre-wrap\",\n },\n }).then(() => {\n lastErrorMessage = undefined;\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n setLoginStateCookie(history.location);\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"handleHttpError.js","names":["HttpAbortError","HttpFetchError","HttpResponseError","i18n","getRuntime","getHistory","K","NS","Dialog","setLoginStateCookie","httpErrorToString","error","Event","target","HTMLScriptElement","src","t","concat","NETWORK_ERROR","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","window","NO_AUTH_GUARD","show","type","content","LOGIN_TIMEOUT_MESSAGE","then","redirectToLogin","console","message","title","REQUEST_FAILED","contentStyle","whiteSpace","wordBreak","undefined","ssoEnabled","getFeatureFlags","history","location","push","from","_objectSpread","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\nimport { setLoginStateCookie } from \"./setLoginStateCookie.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18n.t(`${NS}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n }).then(\n () => {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n () => {\n unauthenticatedConfirming = false;\n }\n );\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n contentStyle: {\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n },\n }).then(() => {\n lastErrorMessage = undefined;\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n setLoginStateCookie(history.location);\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/runtime",
3
- "version": "1.24.0",
3
+ "version": "1.24.1",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -65,5 +65,5 @@
65
65
  "@next-core/build-next-libs": "^1.0.8",
66
66
  "@next-core/test-next": "^1.0.11"
67
67
  },
68
- "gitHead": "0cf0083bfde5b06e3aa4a8ef6af809de6eb9450a"
68
+ "gitHead": "66b6a25cc4724cd7604ad1f702dcf51d6b8b69c4"
69
69
  }