@data-loom/service-js 0.4.12-alpha.1 → 0.4.13-alpha.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.
- package/dist/main/services/session-service/index.d.ts.map +1 -1
- package/dist/main/services/session-service/index.js +1 -0
- package/dist/main/services/session-service/index.js.map +1 -1
- package/dist/module/services/session-service/index.d.ts.map +1 -1
- package/dist/module/services/session-service/index.js +1 -0
- package/dist/module/services/session-service/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/session-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAiB,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAgBjE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,mBAAmB;IACpD,WAAW,cAA8B;IAElD;;OAEG;IACH,eAAe,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,uBAAuB,CAAC,SAAS,CAAC;IAiCvF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/session-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAiB,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAgBjE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,mBAAmB;IACpD,WAAW,cAA8B;IAElD;;OAEG;IACH,eAAe,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,uBAAuB,CAAC,SAAS,CAAC;IAiCvF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAoBvD;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAa7B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAkDvE;;OAEG;IACH,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;CA0BrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/session-service/index.ts"],"names":[],"mappings":";;;;;AAAA,iFAAyD;AACzD,6CAAgD;AAIhD,iDAAgD;AAEhD,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE;QACL,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,kCAAkC;QAC3C,IAAI,EAAE,qDAAqD;QAC3D,OAAO,EAAE,yDAAyD;KACnE;IACD,MAAM,EAAE,GAAG;IACX,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAqB,cAAe,SAAQ,6BAAmB;IAA/D;;QACW,gBAAW,GAAG,mBAAW,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/session-service/index.ts"],"names":[],"mappings":"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","sourcesContent":["import DataloomServiceBase from '../DataloomServiceBase';\nimport { ServiceName } from '../../utils/types';\nimport type { Avatar, I18ns, SignInRedirectionOptions, UserInfoResponse } from './types';\nimport type { DataloomServiceResponse } from '../../utils/types';\n\nimport { isBrowser } from '../../utils/helpers';\n\nconst browserEnvError = {\n data: null,\n error: {\n code: 400,\n message: 'Incompatible runtime environment',\n hint: 'Please check if the current environment is browser.',\n details: 'This method can only be invoked in browser environment.',\n },\n status: 400,\n statusText: 'Bad Request',\n};\n\nexport default class SessionService extends DataloomServiceBase {\n override serviceName = ServiceName.SessionService;\n\n /**\n * Redirect to login page within app runtime environment.\n */\n redirectToLogin(options?: SignInRedirectionOptions): DataloomServiceResponse<'success'> {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.RedirectToLogin] dataloom.service.session.redirectToLogin can only be invoked in browser environment.'\n );\n return browserEnvError;\n }\n const { returnUrl, newTab = false } = options ?? {};\n\n const encodedRedirectUrl = encodeURIComponent(\n decodeURIComponent(returnUrl || window.location.href)\n );\n // 根据当前页面路径判断是否需要添加 /spark/faas 前缀\n const isSparkFaasPath = window.location.pathname.startsWith('/spark');\n const baseLoginUrl = isSparkFaasPath\n ? `/spark/faas/${this.appId}/runtime/page/login`\n : `/app/${this.appId}/runtime/page/login`;\n const loginPageUrl = `${baseLoginUrl}?biz_source=${this.bizSource}&redirect_uri=${encodedRedirectUrl}`;\n\n if (newTab) {\n window.open(loginPageUrl, '_blank');\n } else {\n window.location.href = loginPageUrl;\n }\n\n return {\n data: 'success',\n error: null,\n status: 200,\n statusText: 'OK',\n };\n }\n\n /**\n * Sign out current user session.\n */\n async signOut(): Promise<DataloomServiceResponse<null>> {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.SignOut] dataloom.service.session.signOut can only be invoked in browser environment.'\n );\n\n return browserEnvError;\n }\n\n const location = this.getUrlWithBizSource();\n\n return this.fetchData<null>('/af/runtime/api/v1/account/logout', {\n method: 'POST',\n body: {\n appID: this.appId,\n redirectURI: location,\n },\n });\n }\n\n /**\n * Get current page URL with biz_source parameter\n */\n getUrlWithBizSource(): string {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.GetUrlWithBizSource] dataloom.service.session.getUrlWithBizSource can only be invoked in browser environment.'\n );\n return '';\n }\n\n const currentUrl = new URL(window.location.href);\n currentUrl.searchParams.set('biz_source', this.bizSource);\n return currentUrl.toString();\n }\n\n /**\n * Gets the current user information if there is an existing session.\n */\n async getUserInfo(): Promise<DataloomServiceResponse<UserInfoResponse>> {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.GetUserInfo] dataloom.service.session.getUserInfo can only be invoked in browser environment.'\n );\n return Promise.resolve(browserEnvError);\n }\n\n const url = `/app/${this.appId}/__runtime__/api/v1/account/login/user`;\n\n // Get tenantDomainName from current URL hostname\n const urlObj = new URL(globalThis.location.href);\n const pathSegments = urlObj.hostname.split('.');\n const tenantDomainName = pathSegments[0] ?? '';\n\n const response = await this.fetchData<{\n userInfo: {\n userID?: number;\n name?: I18ns;\n avatar?: Avatar;\n email?: string;\n desensitizedPhoneNumber?: string;\n };\n }>(url, {\n method: 'POST',\n body: {\n appID: this.appId,\n tenantDomainName,\n },\n });\n\n // 字段映射 - 确保包含所有必需的响应属性\n const userInfoResponse: DataloomServiceResponse<UserInfoResponse> = {\n data: {\n user_info: {\n user_id: response.data?.userInfo?.userID,\n name: response.data?.userInfo?.name,\n avatar: response.data?.userInfo?.avatar,\n email: response.data?.userInfo?.email,\n phone_number: response.data?.userInfo?.desensitizedPhoneNumber,\n },\n },\n error: null,\n status: response.status,\n statusText: response.statusText,\n };\n\n return userInfoResponse;\n }\n\n /**\n * Navigate to user profile page within app runtime environment.\n */\n navigateToUserProfile(options?: { newTab?: boolean }) {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.NavigateToUserProfile] dataloom.service.session.navigateToUserProfile can only be invoked in browser environment.'\n );\n return browserEnvError;\n }\n\n const { newTab = false } = options ?? {};\n\n const encodedReturnUrl = encodeURIComponent(window.location.href);\n const profilePageUrl = `/suda/user?brand=${this.brandId}&returnUrl=${encodedReturnUrl}&appId=${this.appId}`;\n\n if (newTab) {\n window.open(profilePageUrl, '_blank');\n } else {\n window.location.href = profilePageUrl;\n }\n\n return {\n data: 'success',\n error: null,\n status: 200,\n statusText: 'OK',\n };\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/session-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAiB,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAgBjE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,mBAAmB;IACpD,WAAW,cAA8B;IAElD;;OAEG;IACH,eAAe,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,uBAAuB,CAAC,SAAS,CAAC;IAiCvF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/session-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAiB,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAgBjE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,mBAAmB;IACpD,WAAW,cAA8B;IAElD;;OAEG;IACH,eAAe,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,uBAAuB,CAAC,SAAS,CAAC;IAiCvF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAoBvD;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAa7B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAkDvE;;OAEG;IACH,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;CA0BrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/session-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE;QACL,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,kCAAkC;QAC3C,IAAI,EAAE,qDAAqD;QAC3D,OAAO,EAAE,yDAAyD;KACnE;IACD,MAAM,EAAE,GAAG;IACX,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,mBAAmB;IAA/D;;QACW,gBAAW,GAAG,WAAW,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/session-service/index.ts"],"names":[],"mappings":"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","sourcesContent":["import DataloomServiceBase from '../DataloomServiceBase';\nimport { ServiceName } from '../../utils/types';\nimport type { Avatar, I18ns, SignInRedirectionOptions, UserInfoResponse } from './types';\nimport type { DataloomServiceResponse } from '../../utils/types';\n\nimport { isBrowser } from '../../utils/helpers';\n\nconst browserEnvError = {\n data: null,\n error: {\n code: 400,\n message: 'Incompatible runtime environment',\n hint: 'Please check if the current environment is browser.',\n details: 'This method can only be invoked in browser environment.',\n },\n status: 400,\n statusText: 'Bad Request',\n};\n\nexport default class SessionService extends DataloomServiceBase {\n override serviceName = ServiceName.SessionService;\n\n /**\n * Redirect to login page within app runtime environment.\n */\n redirectToLogin(options?: SignInRedirectionOptions): DataloomServiceResponse<'success'> {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.RedirectToLogin] dataloom.service.session.redirectToLogin can only be invoked in browser environment.'\n );\n return browserEnvError;\n }\n const { returnUrl, newTab = false } = options ?? {};\n\n const encodedRedirectUrl = encodeURIComponent(\n decodeURIComponent(returnUrl || window.location.href)\n );\n // 根据当前页面路径判断是否需要添加 /spark/faas 前缀\n const isSparkFaasPath = window.location.pathname.startsWith('/spark');\n const baseLoginUrl = isSparkFaasPath\n ? `/spark/faas/${this.appId}/runtime/page/login`\n : `/app/${this.appId}/runtime/page/login`;\n const loginPageUrl = `${baseLoginUrl}?biz_source=${this.bizSource}&redirect_uri=${encodedRedirectUrl}`;\n\n if (newTab) {\n window.open(loginPageUrl, '_blank');\n } else {\n window.location.href = loginPageUrl;\n }\n\n return {\n data: 'success',\n error: null,\n status: 200,\n statusText: 'OK',\n };\n }\n\n /**\n * Sign out current user session.\n */\n async signOut(): Promise<DataloomServiceResponse<null>> {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.SignOut] dataloom.service.session.signOut can only be invoked in browser environment.'\n );\n\n return browserEnvError;\n }\n\n const location = this.getUrlWithBizSource();\n\n return this.fetchData<null>('/af/runtime/api/v1/account/logout', {\n method: 'POST',\n body: {\n appID: this.appId,\n redirectURI: location,\n },\n });\n }\n\n /**\n * Get current page URL with biz_source parameter\n */\n getUrlWithBizSource(): string {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.GetUrlWithBizSource] dataloom.service.session.getUrlWithBizSource can only be invoked in browser environment.'\n );\n return '';\n }\n\n const currentUrl = new URL(window.location.href);\n currentUrl.searchParams.set('biz_source', this.bizSource);\n return currentUrl.toString();\n }\n\n /**\n * Gets the current user information if there is an existing session.\n */\n async getUserInfo(): Promise<DataloomServiceResponse<UserInfoResponse>> {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.GetUserInfo] dataloom.service.session.getUserInfo can only be invoked in browser environment.'\n );\n return Promise.resolve(browserEnvError);\n }\n\n const url = `/app/${this.appId}/__runtime__/api/v1/account/login/user`;\n\n // Get tenantDomainName from current URL hostname\n const urlObj = new URL(globalThis.location.href);\n const pathSegments = urlObj.hostname.split('.');\n const tenantDomainName = pathSegments[0] ?? '';\n\n const response = await this.fetchData<{\n userInfo: {\n userID?: number;\n name?: I18ns;\n avatar?: Avatar;\n email?: string;\n desensitizedPhoneNumber?: string;\n };\n }>(url, {\n method: 'POST',\n body: {\n appID: this.appId,\n tenantDomainName,\n },\n });\n\n // 字段映射 - 确保包含所有必需的响应属性\n const userInfoResponse: DataloomServiceResponse<UserInfoResponse> = {\n data: {\n user_info: {\n user_id: response.data?.userInfo?.userID,\n name: response.data?.userInfo?.name,\n avatar: response.data?.userInfo?.avatar,\n email: response.data?.userInfo?.email,\n phone_number: response.data?.userInfo?.desensitizedPhoneNumber,\n },\n },\n error: null,\n status: response.status,\n statusText: response.statusText,\n };\n\n return userInfoResponse;\n }\n\n /**\n * Navigate to user profile page within app runtime environment.\n */\n navigateToUserProfile(options?: { newTab?: boolean }) {\n if (!isBrowser()) {\n console.log(\n '[Dataloom][SessionService.NavigateToUserProfile] dataloom.service.session.navigateToUserProfile can only be invoked in browser environment.'\n );\n return browserEnvError;\n }\n\n const { newTab = false } = options ?? {};\n\n const encodedReturnUrl = encodeURIComponent(window.location.href);\n const profilePageUrl = `/suda/user?brand=${this.brandId}&returnUrl=${encodedReturnUrl}&appId=${this.appId}`;\n\n if (newTab) {\n window.open(profilePageUrl, '_blank');\n } else {\n window.location.href = profilePageUrl;\n }\n\n return {\n data: 'success',\n error: null,\n status: 200,\n statusText: 'OK',\n };\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-loom/service-js",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.13-alpha.1",
|
|
4
4
|
"description": "Dataloom service",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"service",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"test:types:watch": "run-s build && tsd --files 'test/**/*.test-d.ts' --watch"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@data-loom/node-fetch": "0.4.
|
|
36
|
+
"@data-loom/node-fetch": "0.4.13-alpha.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/jest": "^29.5.14",
|