UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

1 lines 4.24 kB
{"version":3,"file":"auth.mjs","sources":["../../../src/hook/auth.ts"],"sourcesContent":["import type { AuthActions, AuthData, B24HookParams } from '../types/auth'\nimport { ApiVersion } from '../types/b24'\n\n/**\n * Authorization Manager\n */\nexport class AuthHookManager implements AuthActions {\n #b24HookParams: B24HookParams\n readonly #domain: string\n readonly #b24TargetRest: string\n readonly #b24Target: string\n readonly #b24TargetRestWithPath: Map<ApiVersion, string>\n\n constructor(\n b24HookParams: B24HookParams\n ) {\n this.#b24HookParams = Object.freeze(Object.assign({}, b24HookParams))\n this.#domain = this.#b24HookParams.b24Url\n .replaceAll('https://', '')\n .replaceAll('http://', '')\n .replace(/:(80|443)$/, '')\n\n this.#b24TargetRest = `https://${this.#domain}/rest`\n this.#b24Target = `https://${this.#domain}`\n\n this.#b24TargetRestWithPath = new Map()\n this.#b24TargetRestWithPath.set(ApiVersion.v2, `${this.#b24TargetRest}/${this.#b24HookParams.userId}/${this.#b24HookParams.secret}`)\n this.#b24TargetRestWithPath.set(ApiVersion.v3, `${this.#b24TargetRest}/api/${this.#b24HookParams.userId}/${this.#b24HookParams.secret}`)\n }\n\n /**\n * @see Http.#prepareParams\n */\n public getAuthData(): false | AuthData {\n return {\n access_token: this.#b24HookParams.secret,\n refresh_token: 'hook',\n expires: 0,\n expires_in: 0,\n domain: this.#domain,\n member_id: this.#domain\n }\n }\n\n public refreshAuth(): Promise<AuthData> {\n return Promise.resolve(this.getAuthData() as AuthData)\n }\n\n public getUniq(prefix: string): string {\n const authData = this.getAuthData()\n if (authData === false) {\n throw new Error('AuthData not init')\n }\n return [prefix, authData.member_id].join('_')\n }\n\n /**\n * @inheritDoc\n */\n public getTargetOrigin(): string {\n return `${this.#b24Target}`\n }\n\n /**\n * Get the account address BX24 with path\n * - ver2 `https://your_domain.bitrix24.com/rest/{id}/{webhook}`\n * - ver3` https://your_domain.bitrix24.com/rest/api/{id}/{webhook}`\n */\n public getTargetOriginWithPath(): Map<ApiVersion, string> {\n return this.#b24TargetRestWithPath\n }\n\n /**\n * We believe that hooks are created only by the admin\n */\n get isAdmin(): boolean {\n return true\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAMO,MAAM,eAAA,CAAuC;AAAA,EANpD;AAMoD,IAAA,MAAA,CAAA,IAAA,EAAA,iBAAA,CAAA;AAAA;AAAA,EAClD,cAAA;AAAA,EACS,OAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,sBAAA;AAAA,EAET,YACE,aAAA,EACA;AACA,IAAA,IAAA,CAAK,cAAA,GAAiB,OAAO,MAAA,CAAO,MAAA,CAAO,OAAO,EAAC,EAAG,aAAa,CAAC,CAAA;AACpE,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,MAAA,CAChC,WAAW,UAAA,EAAY,EAAE,CAAA,CACzB,UAAA,CAAW,SAAA,EAAW,EAAE,CAAA,CACxB,OAAA,CAAQ,cAAc,EAAE,CAAA;AAE3B,IAAA,IAAA,CAAK,cAAA,GAAiB,CAAA,QAAA,EAAW,IAAA,CAAK,OAAO,CAAA,KAAA,CAAA;AAC7C,IAAA,IAAA,CAAK,UAAA,GAAa,CAAA,QAAA,EAAW,IAAA,CAAK,OAAO,CAAA,CAAA;AAEzC,IAAA,IAAA,CAAK,sBAAA,uBAA6B,GAAA,EAAI;AACtC,IAAA,IAAA,CAAK,sBAAA,CAAuB,GAAA,CAAI,UAAA,CAAW,EAAA,EAAI,GAAG,IAAA,CAAK,cAAc,CAAA,CAAA,EAAI,IAAA,CAAK,eAAe,MAAM,CAAA,CAAA,EAAI,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA,CAAE,CAAA;AACnI,IAAA,IAAA,CAAK,sBAAA,CAAuB,GAAA,CAAI,UAAA,CAAW,EAAA,EAAI,GAAG,IAAA,CAAK,cAAc,CAAA,KAAA,EAAQ,IAAA,CAAK,eAAe,MAAM,CAAA,CAAA,EAAI,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA,CAAE,CAAA;AAAA,EACzI;AAAA;AAAA;AAAA;AAAA,EAKO,WAAA,GAAgC;AACrC,IAAA,OAAO;AAAA,MACL,YAAA,EAAc,KAAK,cAAA,CAAe,MAAA;AAAA,MAClC,aAAA,EAAe,MAAA;AAAA,MACf,OAAA,EAAS,CAAA;AAAA,MACT,UAAA,EAAY,CAAA;AAAA,MACZ,QAAQ,IAAA,CAAK,OAAA;AAAA,MACb,WAAW,IAAA,CAAK;AAAA,KAClB;AAAA,EACF;AAAA,EAEO,WAAA,GAAiC;AACtC,IAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,IAAA,CAAK,WAAA,EAAyB,CAAA;AAAA,EACvD;AAAA,EAEO,QAAQ,MAAA,EAAwB;AACrC,IAAA,MAAM,QAAA,GAAW,KAAK,WAAA,EAAY;AAClC,IAAA,IAAI,aAAa,KAAA,EAAO;AACtB,MAAA,MAAM,IAAI,MAAM,mBAAmB,CAAA;AAAA,IACrC;AACA,IAAA,OAAO,CAAC,MAAA,EAAQ,QAAA,CAAS,SAAS,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA,EAKO,eAAA,GAA0B;AAC/B,IAAA,OAAO,CAAA,EAAG,KAAK,UAAU,CAAA,CAAA;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,uBAAA,GAAmD;AACxD,IAAA,OAAO,IAAA,CAAK,sBAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAA,GAAmB;AACrB,IAAA,OAAO,IAAA;AAAA,EACT;AACF;;;;"}