{"version":3,"file":"frame.mjs","sources":["../../../src/frame/frame.ts"],"sourcesContent":["import type { B24FrameQueryParams, MessageInitData } from '../types/auth'\nimport { B24LangList } from '../core/language/list'\nimport { ApiVersion } from '../types/b24'\n\n/**\n * Application Frame Data Manager\n */\nexport class AppFrame {\n  #domain: string = ''\n  #protocol: boolean = true\n  #appSid: null | string = null\n  #path: null | string = null\n  #lang: null | string = null\n  #b24TargetRest: string\n  #b24Target: string\n  readonly #b24TargetRestWithPath: Map<ApiVersion, string>\n\n  constructor(\n    queryParams: B24FrameQueryParams\n  ) {\n    if (queryParams.DOMAIN) {\n      this.#domain = queryParams.DOMAIN\n      this.#domain = this.#domain.replace(/:(80|443)$/, '')\n    }\n\n    this.#protocol = queryParams.PROTOCOL === true\n\n    if (queryParams.LANG) {\n      this.#lang = queryParams.LANG\n    }\n\n    if (queryParams.APP_SID) {\n      this.#appSid = queryParams.APP_SID\n    }\n\n    this.#b24TargetRestWithPath = new Map()\n\n    this.#b24Target = `${this.#protocol ? 'https' : 'http'}://${this.#domain}`\n    this.#b24TargetRest = `${this.#b24Target}/rest`\n\n    this.#b24TargetRestWithPath.set(ApiVersion.v2, `${this.#b24TargetRest}`)\n    this.#b24TargetRestWithPath.set(ApiVersion.v3, `${this.#b24TargetRest}/api`)\n  }\n\n  /**\n   * Initializes the data received from the parent window message.\n   * @param data\n   */\n  initData(data: MessageInitData): AppFrame {\n    if (!this.#domain) {\n      this.#domain = data.DOMAIN\n    }\n\n    if (!this.#path) {\n      this.#path = data.PATH\n    }\n\n    if (!this.#lang) {\n      this.#lang = data.LANG\n    }\n\n    this.#protocol = Number.parseInt(data.PROTOCOL) === 1\n    this.#domain = this.#domain.replace(/:(80|443)$/, '')\n\n    this.#b24Target = `${this.#protocol ? 'https' : 'http'}://${this.#domain}`\n    this.#b24TargetRest = `${this.#b24Target}/rest`\n\n    this.#b24TargetRestWithPath.set(ApiVersion.v2, `${this.#b24TargetRest}`)\n    this.#b24TargetRestWithPath.set(ApiVersion.v3, `${this.#b24TargetRest}/api`)\n\n    return this\n  }\n\n  /**\n   * Returns the sid of the application relative to the parent window like this `9c33468728e1d2c8c97562475edfd96`\n   */\n  getAppSid(): string {\n    if (null === this.#appSid) {\n      throw new Error(`Not init appSid`)\n    }\n\n    return this.#appSid\n  }\n\n  /**\n   * Get the account address BX24 (https://your_domain.bitrix24.com)\n   */\n  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/`\n   *   - ver3` https://your_domain.bitrix24.com/rest/api/`\n   */\n  getTargetOriginWithPath(): Map<ApiVersion, string> {\n    return this.#b24TargetRestWithPath\n  }\n\n  /**\n   * Returns the localization of the B24 interface\n   * @return {B24LangList} - default `B24LangList.en`\n   *\n   * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-get-lang.html\n   */\n  getLang(): B24LangList {\n    return (this.#lang as B24LangList) || B24LangList.en\n  }\n}\n"],"names":[],"mappings":"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"}