{"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;;;;"}