@bitrix24/b24jssdk 1.0.5 → 1.1.0
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/README-AI.md +26 -3
- package/dist/esm/_virtual/_commonjsHelpers.mjs +1 -1
- package/dist/esm/_virtual/protobuf.mjs +1 -1
- package/dist/esm/_virtual/protobuf2.mjs +1 -1
- package/dist/esm/core/abstract-b24.mjs +1 -1
- package/dist/esm/core/actions/abstract-action.mjs +1 -1
- package/dist/esm/core/actions/abstract-batch.mjs +1 -1
- package/dist/esm/core/actions/manager.mjs +1 -1
- package/dist/esm/core/actions/v2/batch-by-chunk.mjs +1 -1
- package/dist/esm/core/actions/v2/batch.mjs +1 -1
- package/dist/esm/core/actions/v2/call-list.mjs +7 -3
- package/dist/esm/core/actions/v2/call-list.mjs.map +1 -1
- package/dist/esm/core/actions/v2/call.mjs +1 -1
- package/dist/esm/core/actions/v2/fetch-list.mjs +7 -3
- package/dist/esm/core/actions/v2/fetch-list.mjs.map +1 -1
- package/dist/esm/core/actions/v2/manager-v2.mjs +1 -1
- package/dist/esm/core/actions/v3/batch-by-chunk.mjs +1 -1
- package/dist/esm/core/actions/v3/batch.mjs +1 -1
- package/dist/esm/core/actions/v3/call-list.mjs +9 -5
- package/dist/esm/core/actions/v3/call-list.mjs.map +1 -1
- package/dist/esm/core/actions/v3/call.mjs +1 -1
- package/dist/esm/core/actions/v3/fetch-list.mjs +9 -5
- package/dist/esm/core/actions/v3/fetch-list.mjs.map +1 -1
- package/dist/esm/core/actions/v3/manager-v3.mjs +1 -1
- package/dist/esm/core/http/abstract-http.mjs +2 -2
- package/dist/esm/core/http/ajax-error.mjs +1 -1
- package/dist/esm/core/http/ajax-result.mjs +44 -4
- package/dist/esm/core/http/ajax-result.mjs.map +1 -1
- package/dist/esm/core/http/limiters/adaptive-delayer.mjs +1 -1
- package/dist/esm/core/http/limiters/manager.mjs +1 -1
- package/dist/esm/core/http/limiters/operating-limiter.mjs +1 -1
- package/dist/esm/core/http/limiters/params-factory.mjs +1 -1
- package/dist/esm/core/http/limiters/rate-limiter.mjs +1 -1
- package/dist/esm/core/http/v2.mjs +2 -2
- package/dist/esm/core/http/v3.mjs +2 -2
- package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs +1 -1
- package/dist/esm/core/interaction/batch/parse-row.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs +1 -1
- package/dist/esm/core/interaction/batch/v2.mjs +1 -1
- package/dist/esm/core/interaction/batch/v3.mjs +1 -1
- package/dist/esm/core/language/list.mjs +1 -1
- package/dist/esm/core/request-id-generator.mjs +1 -1
- package/dist/esm/core/result.mjs +1 -1
- package/dist/esm/core/sdk-error.mjs +1 -1
- package/dist/esm/core/tools/abstract-tool.mjs +1 -1
- package/dist/esm/core/tools/healthcheck.mjs +1 -1
- package/dist/esm/core/tools/manager.mjs +1 -1
- package/dist/esm/core/tools/ping.mjs +1 -1
- package/dist/esm/core/version-manager.mjs +1 -1
- package/dist/esm/frame/auth.mjs +1 -1
- package/dist/esm/frame/b24.mjs +1 -1
- package/dist/esm/frame/dialog.mjs +45 -5
- package/dist/esm/frame/dialog.mjs.map +1 -1
- package/dist/esm/frame/frame.mjs +1 -1
- package/dist/esm/frame/message/commands.mjs +1 -1
- package/dist/esm/frame/message/controller.mjs +1 -1
- package/dist/esm/frame/options.mjs +1 -1
- package/dist/esm/frame/parent.mjs +1 -1
- package/dist/esm/frame/placement.mjs +32 -9
- package/dist/esm/frame/placement.mjs.map +1 -1
- package/dist/esm/frame/slider.mjs +1 -1
- package/dist/esm/helper/abstract-helper.mjs +1 -1
- package/dist/esm/helper/app-manager.mjs +1 -1
- package/dist/esm/helper/currency-manager.mjs +1 -1
- package/dist/esm/helper/helper-manager.mjs +2 -2
- package/dist/esm/helper/license-manager.mjs +1 -1
- package/dist/esm/helper/options-manager.mjs +1 -1
- package/dist/esm/helper/payment-manager.mjs +1 -1
- package/dist/esm/helper/profile-manager.mjs +1 -1
- package/dist/esm/helper/use-b24-helper.mjs +1 -1
- package/dist/esm/hook/auth.mjs +1 -1
- package/dist/esm/hook/b24.mjs +1 -1
- package/dist/esm/index.d.mts +109 -13
- package/dist/esm/index.d.ts +109 -13
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/loader-b24frame.mjs +1 -1
- package/dist/esm/logger/abstract-logger.mjs +1 -1
- package/dist/esm/logger/browser.mjs +1 -1
- package/dist/esm/logger/formatter/abstract-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/json-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/line-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/telegram-formatter.mjs +1 -1
- package/dist/esm/logger/handler/abstract-handler.mjs +1 -1
- package/dist/esm/logger/handler/consola-adapter.mjs +1 -1
- package/dist/esm/logger/handler/console-handler.mjs +1 -1
- package/dist/esm/logger/handler/console-v2-handler.mjs +1 -1
- package/dist/esm/logger/handler/memory-handler.mjs +1 -1
- package/dist/esm/logger/handler/stream-handler.mjs +1 -1
- package/dist/esm/logger/handler/telegram-handler.mjs +1 -1
- package/dist/esm/logger/handler/winston-adapter.mjs +1 -1
- package/dist/esm/logger/logger-factory.mjs +1 -1
- package/dist/esm/logger/logger.mjs +1 -1
- package/dist/esm/logger/null-logger.mjs +1 -1
- package/dist/esm/logger/processor/memory-usage-processor.mjs +1 -1
- package/dist/esm/logger/processor/pid-processor.mjs +1 -1
- package/dist/esm/oauth/auth.mjs +1 -1
- package/dist/esm/oauth/b24.mjs +1 -1
- package/dist/esm/oauth/refresh-token-error.mjs +1 -1
- package/dist/esm/pullClient/abstract-connector.mjs +1 -1
- package/dist/esm/pullClient/channel-manager.mjs +1 -1
- package/dist/esm/pullClient/channel-manager.mjs.map +1 -1
- package/dist/esm/pullClient/client.mjs +1 -1
- package/dist/esm/pullClient/errors.mjs +1 -1
- package/dist/esm/pullClient/json-rpc.mjs +1 -1
- package/dist/esm/pullClient/long-polling-connector.mjs +1 -1
- package/dist/esm/pullClient/protobuf/index.mjs +1 -1
- package/dist/esm/pullClient/protobuf/model.mjs +1 -1
- package/dist/esm/pullClient/protobuf/protobuf.mjs +1 -1
- package/dist/esm/pullClient/shared-config.mjs +1 -1
- package/dist/esm/pullClient/storage-manager.mjs +1 -1
- package/dist/esm/pullClient/web-socket-connector.mjs +1 -1
- package/dist/esm/tools/browser.mjs +1 -1
- package/dist/esm/tools/environment.mjs +1 -1
- package/dist/esm/tools/formatters/iban.mjs +1 -1
- package/dist/esm/tools/formatters/numbers.mjs +1 -1
- package/dist/esm/tools/index.mjs +1 -1
- package/dist/esm/tools/scroll-size.mjs +1 -1
- package/dist/esm/tools/text.mjs +1 -1
- package/dist/esm/tools/type.mjs +1 -1
- package/dist/esm/tools/use-formatters.mjs +1 -1
- package/dist/esm/tools/uuidv7.mjs +1 -1
- package/dist/esm/types/b24-helper.mjs +1 -1
- package/dist/esm/types/b24.mjs +1 -1
- package/dist/esm/types/bizproc/index.mjs +1 -1
- package/dist/esm/types/catalog/index.mjs +1 -1
- package/dist/esm/types/common.mjs +1 -1
- package/dist/esm/types/crm/entity-type.mjs +1 -1
- package/dist/esm/types/crm/productrow.mjs +1 -1
- package/dist/esm/types/logger.mjs +1 -1
- package/dist/esm/types/pull.mjs +1 -1
- package/dist/umd/index.js +1321 -846
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/index.min.js +37 -34
- package/dist/umd/index.min.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ajax-result.mjs","sources":["../../../../src/core/http/ajax-result.ts"],"sourcesContent":["import type { IResult } from '../result'\nimport type { Payload, SuccessPayload } from '../../types/payloads'\nimport type { TypeCallParams, TypeHttp } from '../../types/http'\nimport type { TypeDescriptionError, TypeDescriptionErrorV3 } from '../../types/auth'\nimport { Type } from '../../tools/type'\nimport { Text } from '../../tools/text'\nimport { Result } from '../result'\nimport { AjaxError } from './ajax-error'\nimport { ApiVersion } from '../../types/b24'\nimport { SdkError } from '../sdk-error'\n\nexport type AjaxQuery = Readonly<{\n method: string\n params: TypeCallParams\n requestId: string\n}>\n\ntype AjaxResultOptions<T> = Readonly<{\n answer: Payload<T>\n query: AjaxQuery\n status: number\n}>\n\ntype ErrorData = {\n code: string\n description: string\n status: number\n}\n\n/**\n * Result of request to Rest Api\n *\n * @todo docs\n */\nexport class AjaxResult<T = unknown> extends Result<Payload<T>> implements IResult<Payload<T>> {\n private readonly _status: number\n private readonly _query: AjaxQuery\n protected override _data: Payload<T> | null | undefined\n\n constructor(options: AjaxResultOptions<T>) {\n super()\n\n this._data = options.answer ? Object.freeze(options.answer) : undefined\n this._query = Object.freeze(structuredClone(options.query))\n this._status = options.status\n\n this.#processErrors()\n }\n\n override get isSuccess(): boolean {\n return this.#getIsSuccess()\n }\n\n /**\n * @todo test this predicate\n */\n #getIsSuccess(): this is { getData: () => SuccessPayload<T> } {\n return this._errors.size === 0\n }\n\n override getData(): undefined | SuccessPayload<T> {\n if (!this.isSuccess) {\n return undefined\n }\n\n const payload = this._data as SuccessPayload<T>\n\n return Object.freeze({\n result: payload.result,\n next: 'next' in payload ? payload.next : undefined,\n total: 'total' in payload ? payload.total : undefined,\n time: payload.time\n }) as SuccessPayload<T>\n }\n\n /**\n * If the response contains error data, we'll restore it to an error.\n *\n * @todo make single function\n * @see AbstractHttp._convertAxiosErrorToAjaxError()\n */\n #processErrors(): void {\n if (this._data && typeof this._data === 'object' && 'error' in this._data) {\n const responseData = this._data as TypeDescriptionError | TypeDescriptionErrorV3\n\n if (\n responseData.error\n && typeof responseData.error === 'object'\n && 'code' in responseData.error\n ) {\n const errorCode = responseData.error.code\n let errorDescription = responseData.error.message.trimEnd()\n if (responseData.error.validation) {\n if (errorDescription.length > 0) {\n if (!errorDescription.endsWith('.')) {\n errorDescription += `.`\n }\n errorDescription += ` `\n }\n responseData.error.validation.forEach((row) => {\n errorDescription += `${row?.message || JSON.stringify(row)}`\n })\n }\n\n this.addError(this.#createAjaxError({\n code: errorCode,\n description: errorDescription,\n status: this._status\n }), 'base-error')\n } else if (responseData.error && typeof responseData.error === 'string') {\n const errorCode = responseData.error !== '0' ? responseData.error : 'JSSDK_RESPONSE_ERROR'\n const errorDescription = (responseData as TypeDescriptionError)?.error_description ?? 'Some error in response'\n\n this.addError(this.#createAjaxError({\n code: errorCode,\n description: errorDescription,\n status: this._status\n }), 'base-error')\n }\n }\n }\n\n #createAjaxError(errorData: ErrorData): AjaxError {\n return new AjaxError({\n code: errorData.code,\n description: errorData.description,\n status: errorData.status,\n requestInfo: {\n method: this._query.method,\n params: this._query.params,\n requestId: this._query.requestId\n }\n })\n }\n\n /**\n * Alias for isMore\n */\n hasMore(): boolean {\n return this.isMore()\n }\n\n isMore(): boolean {\n if (!this.isSuccess) {\n return false\n }\n const payload = this._data as SuccessPayload<T>\n const nextValue = 'next' in payload ? payload.next : undefined\n\n return Type.isNumber(nextValue)\n }\n\n getTotal(): number {\n if (!this.isSuccess) {\n return 0\n }\n const payload = this._data as SuccessPayload<T>\n const totalValue = 'total' in payload ? payload.total : undefined\n\n return Text.toInteger(totalValue)\n }\n\n getStatus(): number {\n return this._status\n }\n\n getQuery(): Readonly<AjaxQuery> {\n return this._query\n }\n\n /**\n * Alias for getNext\n * @param http\n *\n * @todo !fix api version\n */\n async fetchNext(http: TypeHttp): Promise<AjaxResult<T> | null> {\n const data = await this.getNext(http)\n if (data === false) {\n return null\n }\n\n return data\n }\n\n async getNext(http: TypeHttp): Promise<AjaxResult<T> | false> {\n // @todo ! Correction -> we can use pagination to navigate to the next page\n if (http.apiVersion === ApiVersion.v3) {\n throw new SdkError({\n code: 'JSSDK_CORE_METHOD_NOT_SUPPORT_IN_API_V3',\n description: `restApi:v3 not support method getNext`,\n status: 500\n })\n }\n if (\n !this.isSuccess\n || !this.isMore()\n ) {\n return false\n }\n\n const nextPageQuery = this.#buildNextPageQuery()\n return http.call(\n nextPageQuery.method,\n nextPageQuery.params\n ) as Promise<AjaxResult<T>>\n }\n\n #buildNextPageQuery(): AjaxQuery {\n const result = { ...this._query }\n\n const payload = this._data as SuccessPayload<T>\n const nextValue = 'next' in payload ? payload.next : undefined\n\n result.params.start = Text.toInteger(Text.toInteger(nextValue))\n\n return result\n }\n\n // Immutable API\n override setData(): never {\n throw new ReferenceError('AjaxResult does not allow data modification')\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ajax-result.mjs","sources":["../../../../src/core/http/ajax-result.ts"],"sourcesContent":["import type { IResult } from '../result'\nimport type { Payload, SuccessPayload } from '../../types/payloads'\nimport type { TypeCallParams, TypeHttp } from '../../types/http'\nimport type { TypeDescriptionError, TypeDescriptionErrorV3 } from '../../types/auth'\nimport { Type } from '../../tools/type'\nimport { Text } from '../../tools/text'\nimport { Result } from '../result'\nimport { AjaxError } from './ajax-error'\nimport { ApiVersion } from '../../types/b24'\nimport { SdkError } from '../sdk-error'\n\nexport type AjaxQuery = Readonly<{\n method: string\n params: TypeCallParams\n requestId: string\n}>\n\ntype AjaxResultOptions<T> = Readonly<{\n answer: Payload<T>\n query: AjaxQuery\n status: number\n}>\n\ntype ErrorData = {\n code: string\n description: string\n status: number\n}\n\n/**\n * Result of request to Rest Api\n *\n * @todo docs\n */\nexport class AjaxResult<T = unknown> extends Result<Payload<T>> implements IResult<Payload<T>> {\n private readonly _status: number\n private readonly _query: AjaxQuery\n protected override _data: Payload<T> | null | undefined\n\n constructor(options: AjaxResultOptions<T>) {\n super()\n\n this._data = options.answer ? Object.freeze(options.answer) : undefined\n this._query = Object.freeze(structuredClone(options.query))\n this._status = options.status\n\n this.#processErrors()\n }\n\n override get isSuccess(): boolean {\n return this.#getIsSuccess()\n }\n\n /**\n * @todo test this predicate\n */\n #getIsSuccess(): this is { getData: () => SuccessPayload<T> } {\n return this._errors.size === 0\n }\n\n override getData(): undefined | SuccessPayload<T> {\n if (!this.isSuccess) {\n return undefined\n }\n\n const payload = this._data as SuccessPayload<T>\n\n return Object.freeze({\n result: payload.result,\n time: payload.time\n }) as SuccessPayload<T>\n }\n\n /**\n * If the response contains error data, we'll restore it to an error.\n *\n * @todo make single function\n * @see AbstractHttp._convertAxiosErrorToAjaxError()\n */\n #processErrors(): void {\n if (this._data && typeof this._data === 'object' && 'error' in this._data) {\n const responseData = this._data as TypeDescriptionError | TypeDescriptionErrorV3\n\n if (\n responseData.error\n && typeof responseData.error === 'object'\n && 'code' in responseData.error\n ) {\n const errorCode = responseData.error.code\n let errorDescription = responseData.error.message.trimEnd()\n if (responseData.error.validation) {\n if (errorDescription.length > 0) {\n if (!errorDescription.endsWith('.')) {\n errorDescription += `.`\n }\n errorDescription += ` `\n }\n responseData.error.validation.forEach((row) => {\n errorDescription += `${row?.message || JSON.stringify(row)}`\n })\n }\n\n this.addError(this.#createAjaxError({\n code: errorCode,\n description: errorDescription,\n status: this._status\n }), 'base-error')\n } else if (responseData.error && typeof responseData.error === 'string') {\n const errorCode = responseData.error !== '0' ? responseData.error : 'JSSDK_RESPONSE_ERROR'\n const errorDescription = (responseData as TypeDescriptionError)?.error_description ?? 'Some error in response'\n\n this.addError(this.#createAjaxError({\n code: errorCode,\n description: errorDescription,\n status: this._status\n }), 'base-error')\n }\n }\n }\n\n #createAjaxError(errorData: ErrorData): AjaxError {\n return new AjaxError({\n code: errorData.code,\n description: errorData.description,\n status: errorData.status,\n requestInfo: {\n method: this._query.method,\n params: this._query.params,\n requestId: this._query.requestId\n }\n })\n }\n\n /**\n * Alias for isMore\n *\n * @deprecated Will be removed in `2.0.0`. Tied to the `restApi:v2` envelope\n * field `next`, which `restApi:v3` does not return. Use the SDK's list\n * helpers — they hide pagination entirely:\n * - `restApi:v2`: {@link CallListV2.make `b24.actions.v2.callList.make`} or {@link FetchListV2.make `b24.actions.v2.fetchList.make`}\n * - `restApi:v3`: {@link CallListV3.make `b24.actions.v3.callList.make`} or {@link FetchListV3.make `b24.actions.v3.fetchList.make`}\n *\n * @removed 2.0.0\n */\n hasMore(): boolean {\n return this.isMore()\n }\n\n /**\n * @deprecated Will be removed in `2.0.0`. Tied to the `restApi:v2` envelope\n * field `next`, which `restApi:v3` does not return. Use the SDK's list\n * helpers — they hide pagination entirely:\n * - `restApi:v2`: {@link CallListV2.make `b24.actions.v2.callList.make`} or {@link FetchListV2.make `b24.actions.v2.fetchList.make`}\n * - `restApi:v3`: {@link CallListV3.make `b24.actions.v3.callList.make`} or {@link FetchListV3.make `b24.actions.v3.fetchList.make`}\n *\n * @removed 2.0.0\n */\n isMore(): boolean {\n if (!this.isSuccess) {\n return false\n }\n const payload = this._data as { next?: number }\n const nextValue = 'next' in payload ? payload.next : undefined\n\n return Type.isNumber(nextValue)\n }\n\n /**\n * @deprecated Will be removed in `2.0.0`. Tied to the `restApi:v2` envelope\n * field `total`, which `restApi:v3` does not return. For `restApi:v3` the\n * SDK exposes element counts via the `aggregate` action (`count` /\n * `countDistinct`); for `restApi:v2` use the list helpers, which iterate\n * without exposing `total`.\n *\n * @removed 2.0.0\n */\n getTotal(): number {\n if (!this.isSuccess) {\n return 0\n }\n const payload = this._data as { total?: number }\n const totalValue = 'total' in payload ? payload.total : undefined\n\n return Text.toInteger(totalValue)\n }\n\n getStatus(): number {\n return this._status\n }\n\n getQuery(): Readonly<AjaxQuery> {\n return this._query\n }\n\n /**\n * Alias for getNext\n * @param http\n *\n * @deprecated Will be removed in `2.0.0`. `restApi:v3` does not support\n * `getNext()` (the v2 envelope field `next` does not exist). Use the SDK's\n * list helpers instead — they hide pagination entirely:\n * - `restApi:v2`: {@link CallListV2.make `b24.actions.v2.callList.make`} or {@link FetchListV2.make `b24.actions.v2.fetchList.make`}\n * - `restApi:v3`: {@link CallListV3.make `b24.actions.v3.callList.make`} or {@link FetchListV3.make `b24.actions.v3.fetchList.make`}\n *\n * @removed 2.0.0\n */\n async fetchNext(http: TypeHttp): Promise<AjaxResult<T> | null> {\n const data = await this.getNext(http)\n if (data === false) {\n return null\n }\n\n return data\n }\n\n /**\n * @deprecated Will be removed in `2.0.0`. Throws on `restApi:v3` because the\n * v2 envelope field `next` is not part of the v3 protocol. Use the SDK's\n * list helpers instead — they hide pagination entirely:\n * - `restApi:v2`: {@link CallListV2.make `b24.actions.v2.callList.make`} or {@link FetchListV2.make `b24.actions.v2.fetchList.make`}\n * - `restApi:v3`: {@link CallListV3.make `b24.actions.v3.callList.make`} or {@link FetchListV3.make `b24.actions.v3.fetchList.make`}\n *\n * @throws {SdkError} `JSSDK_CORE_METHOD_NOT_SUPPORT_IN_API_V3` when called against a `restApi:v3` HTTP client. This throw is preserved until `2.0.0`.\n * @removed 2.0.0\n */\n async getNext(http: TypeHttp): Promise<AjaxResult<T> | false> {\n // @todo ! Correction -> we can use pagination to navigate to the next page\n if (http.apiVersion === ApiVersion.v3) {\n throw new SdkError({\n code: 'JSSDK_CORE_METHOD_NOT_SUPPORT_IN_API_V3',\n description: `restApi:v3 not support method getNext`,\n status: 500\n })\n }\n if (\n !this.isSuccess\n || !this.isMore()\n ) {\n return false\n }\n\n const nextPageQuery = this.#buildNextPageQuery()\n return http.call(\n nextPageQuery.method,\n nextPageQuery.params\n ) as Promise<AjaxResult<T>>\n }\n\n #buildNextPageQuery(): AjaxQuery {\n const result = { ...this._query }\n\n const payload = this._data as { next?: number }\n const nextValue = 'next' in payload ? payload.next : undefined\n\n result.params.start = Text.toInteger(Text.toInteger(nextValue))\n\n return result\n }\n\n // Immutable API\n override setData(): never {\n throw new ReferenceError('AjaxResult does not allow data modification')\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @package @bitrix24/b24jssdk
|
|
3
|
-
* @version 1.0
|
|
3
|
+
* @version 1.1.0
|
|
4
4
|
* @copyright (c) 2026 Bitrix24
|
|
5
5
|
* @license MIT
|
|
6
6
|
* @see https://github.com/bitrix24/b24jssdk
|
|
@@ -88,7 +88,7 @@ class HttpV2 extends AbstractHttp {
|
|
|
88
88
|
}
|
|
89
89
|
const queryParams = new URLSearchParams({
|
|
90
90
|
[this._requestIdGenerator.getQueryStringParameterName()]: requestId,
|
|
91
|
-
[this._requestIdGenerator.getQueryStringSdkParameterName()]: "1.0
|
|
91
|
+
[this._requestIdGenerator.getQueryStringSdkParameterName()]: "1.1.0",
|
|
92
92
|
[this._requestIdGenerator.getQueryStringSdkTypeParameterName()]: "b24-js-sdk"
|
|
93
93
|
});
|
|
94
94
|
return `${baseUrl}${methodUrl}?${queryParams.toString()}`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @package @bitrix24/b24jssdk
|
|
3
|
-
* @version 1.0
|
|
3
|
+
* @version 1.1.0
|
|
4
4
|
* @copyright (c) 2026 Bitrix24
|
|
5
5
|
* @license MIT
|
|
6
6
|
* @see https://github.com/bitrix24/b24jssdk
|
|
@@ -82,7 +82,7 @@ class HttpV3 extends AbstractHttp {
|
|
|
82
82
|
const methodUrl = `/${encodeURIComponent(method)}`;
|
|
83
83
|
const queryParams = new URLSearchParams({
|
|
84
84
|
[this._requestIdGenerator.getQueryStringParameterName()]: requestId,
|
|
85
|
-
[this._requestIdGenerator.getQueryStringSdkParameterName()]: "1.0
|
|
85
|
+
[this._requestIdGenerator.getQueryStringSdkParameterName()]: "1.1.0",
|
|
86
86
|
[this._requestIdGenerator.getQueryStringSdkTypeParameterName()]: "b24-js-sdk"
|
|
87
87
|
});
|
|
88
88
|
return `${baseUrl}${methodUrl}?${queryParams.toString()}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-processing.mjs","sources":["../../../../../../../src/core/interaction/batch/processing/v2/abstract-processing.ts"],"sourcesContent":["import type { BatchCommandV3, ICallBatchResult } from '../../../../../types/http'\nimport type { IProcessingStrategy, ResponseHelper, ResultItems } from '../interface-strategy'\nimport type { BatchResponseData } from '../../abstract-interaction-batch'\nimport * as qs from 'qs-esm'\nimport { AbstractProcessing } from '../interface-strategy'\nimport { SdkError } from '../../../../sdk-error'\nimport { AjaxResult } from '../../../../http/ajax-result'\nimport { Result } from '../../../../result'\n\nexport abstract class AbstractProcessingV2 extends AbstractProcessing implements IProcessingStrategy {\n protected _buildRow(command: BatchCommandV3): string {\n return `${command.method}?${qs.stringify(command.query || {})}`\n }\n\n public buildCommands(commands: BatchCommandV3[]): string[] | Record<string, string> {\n if (commands.length < 1) {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_STRATEGY_V2_EMPTY_COMMANDS',\n description: 'commands not set',\n status: 500\n })\n }\n\n const firstCommand = commands[0]!\n const asObject = (typeof firstCommand.as === 'string' && firstCommand.as.length > 0)\n\n if (asObject) {\n const result: Record<string, string> = {}\n\n for (const command of commands) {\n result[command.as!] = this._buildRow(command)\n }\n return result\n }\n\n const result: string[] = []\n\n for (const command of commands) {\n result.push(this._buildRow(command))\n }\n return result\n }\n\n // region prepareItems ////\n public override async prepareItems<T>(\n commands: BatchCommandV3[],\n responseHelper: ResponseHelper<T>\n ): Promise<ResultItems<T>> {\n const results: ResultItems<T> = new Map()\n\n for (const [index, command] of commands.entries()) {\n await this._processResponseItem<T>(\n command,\n // @memo for apiVer2 in this pace we get objectIndex from `command.as` OR array `index` from `commands[]`\n command.as ?? index,\n responseHelper,\n results\n )\n }\n\n return results\n }\n\n protected override async _processResponseItem<T>(\n command: BatchCommandV3,\n index: string | number,\n responseHelper: ResponseHelper<T>,\n results: Map<string | number, AjaxResult<T>>\n ): Promise<void> {\n const responseResult = responseHelper.response.getData()!.result as BatchResponseData<T>\n const resultData = this._getBatchResultByIndex(responseResult.result, index)\n const resultError = this._getBatchResultByIndex(responseResult.result_error, index)\n\n if (\n typeof resultData !== 'undefined'\n || typeof resultError !== 'undefined'\n ) {\n const methodName = command.method\n\n // Update operating statistics for each method in the batch\n const resultTime = this._getBatchResultByIndex(responseResult.result_time, index)\n if (typeof resultTime !== 'undefined') {\n await responseHelper.restrictionManager.updateStats(responseHelper.requestId, `batch::${methodName}`, resultTime)\n }\n\n const result = new AjaxResult<T>({\n answer: {\n error: resultError ? (typeof resultError === 'string' ? resultError : resultError.error) : undefined,\n error_description: resultError ? (typeof resultError === 'string' ? undefined : resultError.error_description) : undefined,\n result: (resultData ?? {}) as T,\n total: Number.parseInt(this._getBatchResultByIndex(responseResult.result_total, index) || '0'),\n next: Number.parseInt(this._getBatchResultByIndex(responseResult.result_next, index) || '0'),\n time: resultTime!\n },\n query: {\n method: methodName,\n params: command.query || {},\n requestId: responseHelper.requestId\n },\n status: responseHelper.response.getStatus()\n })\n\n results.set(index, result)\n\n return\n }\n\n if (responseHelper.parallelDefaultValue) {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_STRATEGY_V2_EMPTY_COMMAND_RESPONSE',\n description: `There were difficulties parsing the response for batch { index: ${index}, method: ${command.method} }`,\n status: 500\n })\n }\n }\n // endregion ////\n\n // region handleResults ////\n public override async handleResults<T>(_commands: BatchCommandV3[], results: ResultItems<T>, responseHelper: ResponseHelper<T>): Promise<Result<ICallBatchResult<T>>> {\n const result = new Result<ICallBatchResult<T>>()\n const dataResult: ResultItems<T> = new Map()\n\n for (const [index, data] of results) {\n if (data.getStatus() !== 200 || !data.isSuccess) {\n const ajaxError = this._createErrorFromAjaxResult(data)\n\n /*\n * This should contain code similar to #isOperatingLimitError with a check for\n * the error 'Method is blocked due to operation time limit.'\n * However, `batch` is executed without retries, so there will be an immediate error.\n */\n\n // @todo fix docs\n // @memo we not throw ajaxError\n this._processResponseError<T>(result, ajaxError, `${index}`)\n dataResult.set(index, data)\n\n // if (responseHelper.parallelDefaultValue && !data.isSuccess) {\n // this._processResponseError<T>(result, ajaxError, `${index}`)\n // dataResult.set(index, data)\n // continue\n // }\n //\n // throw ajaxError\n }\n\n dataResult.set(index, data)\n }\n\n result.setData({\n result: dataResult,\n time: responseHelper.response.getData()!.time\n })\n\n return result\n }\n // endregion ////\n}\n"],"names":["result"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abstract-processing.mjs","sources":["../../../../../../../src/core/interaction/batch/processing/v2/abstract-processing.ts"],"sourcesContent":["import type { BatchCommandV3, ICallBatchResult } from '../../../../../types/http'\nimport type { IProcessingStrategy, ResponseHelper, ResultItems } from '../interface-strategy'\nimport type { BatchResponseData } from '../../abstract-interaction-batch'\nimport * as qs from 'qs-esm'\nimport { AbstractProcessing } from '../interface-strategy'\nimport { SdkError } from '../../../../sdk-error'\nimport { AjaxResult } from '../../../../http/ajax-result'\nimport { Result } from '../../../../result'\n\nexport abstract class AbstractProcessingV2 extends AbstractProcessing implements IProcessingStrategy {\n protected _buildRow(command: BatchCommandV3): string {\n return `${command.method}?${qs.stringify(command.query || {})}`\n }\n\n public buildCommands(commands: BatchCommandV3[]): string[] | Record<string, string> {\n if (commands.length < 1) {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_STRATEGY_V2_EMPTY_COMMANDS',\n description: 'commands not set',\n status: 500\n })\n }\n\n const firstCommand = commands[0]!\n const asObject = (typeof firstCommand.as === 'string' && firstCommand.as.length > 0)\n\n if (asObject) {\n const result: Record<string, string> = {}\n\n for (const command of commands) {\n result[command.as!] = this._buildRow(command)\n }\n return result\n }\n\n const result: string[] = []\n\n for (const command of commands) {\n result.push(this._buildRow(command))\n }\n return result\n }\n\n // region prepareItems ////\n public override async prepareItems<T>(\n commands: BatchCommandV3[],\n responseHelper: ResponseHelper<T>\n ): Promise<ResultItems<T>> {\n const results: ResultItems<T> = new Map()\n\n for (const [index, command] of commands.entries()) {\n await this._processResponseItem<T>(\n command,\n // @memo for apiVer2 in this pace we get objectIndex from `command.as` OR array `index` from `commands[]`\n command.as ?? index,\n responseHelper,\n results\n )\n }\n\n return results\n }\n\n protected override async _processResponseItem<T>(\n command: BatchCommandV3,\n index: string | number,\n responseHelper: ResponseHelper<T>,\n results: Map<string | number, AjaxResult<T>>\n ): Promise<void> {\n const responseResult = responseHelper.response.getData()!.result as unknown as BatchResponseData<T>\n const resultData = this._getBatchResultByIndex(responseResult.result, index)\n const resultError = this._getBatchResultByIndex(responseResult.result_error, index)\n\n if (\n typeof resultData !== 'undefined'\n || typeof resultError !== 'undefined'\n ) {\n const methodName = command.method\n\n // Update operating statistics for each method in the batch\n const resultTime = this._getBatchResultByIndex(responseResult.result_time, index)\n if (typeof resultTime !== 'undefined') {\n await responseHelper.restrictionManager.updateStats(responseHelper.requestId, `batch::${methodName}`, resultTime)\n }\n\n const result = new AjaxResult<T>({\n answer: {\n error: resultError ? (typeof resultError === 'string' ? resultError : resultError.error) : undefined,\n error_description: resultError ? (typeof resultError === 'string' ? undefined : resultError.error_description) : undefined,\n result: (resultData ?? {}) as T,\n total: Number.parseInt(this._getBatchResultByIndex(responseResult.result_total, index) || '0'),\n next: Number.parseInt(this._getBatchResultByIndex(responseResult.result_next, index) || '0'),\n time: resultTime!\n },\n query: {\n method: methodName,\n params: command.query || {},\n requestId: responseHelper.requestId\n },\n status: responseHelper.response.getStatus()\n })\n\n results.set(index, result)\n\n return\n }\n\n if (responseHelper.parallelDefaultValue) {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_STRATEGY_V2_EMPTY_COMMAND_RESPONSE',\n description: `There were difficulties parsing the response for batch { index: ${index}, method: ${command.method} }`,\n status: 500\n })\n }\n }\n // endregion ////\n\n // region handleResults ////\n public override async handleResults<T>(_commands: BatchCommandV3[], results: ResultItems<T>, responseHelper: ResponseHelper<T>): Promise<Result<ICallBatchResult<T>>> {\n const result = new Result<ICallBatchResult<T>>()\n const dataResult: ResultItems<T> = new Map()\n\n for (const [index, data] of results) {\n if (data.getStatus() !== 200 || !data.isSuccess) {\n const ajaxError = this._createErrorFromAjaxResult(data)\n\n /*\n * This should contain code similar to #isOperatingLimitError with a check for\n * the error 'Method is blocked due to operation time limit.'\n * However, `batch` is executed without retries, so there will be an immediate error.\n */\n\n // @todo fix docs\n // @memo we not throw ajaxError\n this._processResponseError<T>(result, ajaxError, `${index}`)\n dataResult.set(index, data)\n\n // if (responseHelper.parallelDefaultValue && !data.isSuccess) {\n // this._processResponseError<T>(result, ajaxError, `${index}`)\n // dataResult.set(index, data)\n // continue\n // }\n //\n // throw ajaxError\n }\n\n dataResult.set(index, data)\n }\n\n result.setData({\n result: dataResult,\n time: responseHelper.response.getData()!.time\n })\n\n return result\n }\n // endregion ////\n}\n"],"names":["result"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-processing.mjs","sources":["../../../../../../../src/core/interaction/batch/processing/v3/abstract-processing.ts"],"sourcesContent":["import type { BatchCommandV3, ICallBatchResult } from '../../../../../types/http'\nimport type { IProcessingStrategy, ResponseHelper, ResultItems } from '../interface-strategy'\nimport type { BatchResponseData } from '../../abstract-interaction-batch'\nimport { AbstractProcessing } from '../interface-strategy'\nimport { SdkError } from '../../../../sdk-error'\nimport { AjaxResult } from '../../../../http/ajax-result'\nimport { Result } from '../../../../result'\n\nexport abstract class AbstractProcessingV3 extends AbstractProcessing implements IProcessingStrategy {\n public buildCommands(commands: BatchCommandV3[]): BatchCommandV3[] {\n if (commands.length < 1) {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_BUILD_STRATEGY_V3_EMPTY_COMMANDS',\n description: 'commands not set',\n status: 500\n })\n }\n\n return commands\n }\n\n // region prepareItems ////\n public override async prepareItems<T>(\n commands: BatchCommandV3[],\n responseHelper: ResponseHelper<T>\n ): Promise<ResultItems<T>> {\n const results: ResultItems<T> = new Map()\n\n /**\n * In API V3, batch processing does not return data for each row in case of parallel processing errors.\n *\n * @see AbstractProcessingV3.handleResults()\n *\n * @todo ! api ver3 waite docs - this fake\n */\n if (!responseHelper.response.isSuccess) {\n return results\n }\n\n for (const [index, command] of commands.entries()) {\n await this._processResponseItem<T>(\n command,\n // @memo for apiVer3 in this pace we get objectIndex from array `index` from `commands[]`\n index,\n responseHelper,\n results\n )\n }\n\n return results\n }\n\n /**\n * @todo ! api ver3 waite docs\n */\n protected override async _processResponseItem<T>(\n command: BatchCommandV3,\n index: string | number,\n responseHelper: ResponseHelper<T>,\n results: Map<string | number, AjaxResult<T>>\n ): Promise<void> {\n const responseResult = responseHelper.response.getData()!.result as BatchResponseData<T>\n const resultData = this._getBatchResultByIndex((responseResult as T[] | Record<string | number, T> | undefined), index)\n const methodName = command.method\n\n /**\n * @todo ! api ver3 waite docs - this fake\n */\n const resultError = undefined\n\n /**\n * @todo ! api ver3 waite docs - this fake\n */\n const resultTime = responseHelper.response.getData()!.time\n // Update operating statistics for each method in the batch\n if (typeof resultTime !== 'undefined') {\n await responseHelper.restrictionManager.updateStats(responseHelper.requestId, `batch::${methodName}`, resultTime)\n }\n\n const result = new AjaxResult<T>({\n answer: {\n result: (resultData ?? {}) as T,\n error: resultError,\n time: resultTime\n },\n query: {\n method: command.method,\n params: command.query || {},\n requestId: responseHelper.requestId\n },\n status: responseHelper.response.getStatus()\n })\n\n results.set(index, result)\n return\n }\n // endregion ////\n\n // region handleResults ////\n public override async handleResults<T>(commands: BatchCommandV3[], results: ResultItems<T>, responseHelper: ResponseHelper<T>): Promise<Result<ICallBatchResult<T>>> {\n const result = new Result<ICallBatchResult<T>>()\n const dataResult: ResultItems<T> = new Map()\n /**\n * In API V3, batch processing does not return data for each row in case of parallel processing errors.\n *\n * @see AbstractProcessingV3.prepareItems()\n *\n * @todo ! api ver3 waite docs - this fake\n */\n if (!responseHelper.response.isSuccess) {\n for (const [index, error] of responseHelper.response.errors) {\n result.addError(error, index)\n }\n result.setData({\n result: dataResult,\n time: undefined\n })\n return result\n }\n\n for (const [index, data] of results) {\n const rowIndex = Number.parseInt(`${index}`)\n const command = commands[rowIndex]\n if (typeof command === 'undefined') {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_BUILD_STRATEGY_V3_EMPTY_COMMAND',\n description: `command for index ${index} not set`,\n status: 500\n })\n }\n\n const commandIndex = command.as ?? index\n if (data.getStatus() !== 200 || !data.isSuccess) {\n const ajaxError = this._createErrorFromAjaxResult(data)\n\n /*\n * This should contain code similar to #isOperatingLimitError with a check for\n * the error 'Method is blocked due to operation time limit.'\n * However, `batch` is executed without retries, so there will be an immediate error.\n */\n\n // @todo fix docs\n // @memo we not throw ajaxError\n this._processResponseError<T>(result, ajaxError, `${commandIndex}`)\n dataResult.set(commandIndex, data)\n\n // if (responseHelper.parallelDefaultValue && !data.isSuccess) {\n // this._processResponseError<T>(result, ajaxError, `${index}`)\n // dataResult.set(index, data)\n // continue\n // }\n //\n // throw ajaxError\n }\n\n dataResult.set(commandIndex, data)\n }\n\n result.setData({\n result: dataResult,\n time: responseHelper.response.getData()!.time\n })\n\n return result\n }\n // endregion ////\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abstract-processing.mjs","sources":["../../../../../../../src/core/interaction/batch/processing/v3/abstract-processing.ts"],"sourcesContent":["import type { BatchCommandV3, ICallBatchResult } from '../../../../../types/http'\nimport type { IProcessingStrategy, ResponseHelper, ResultItems } from '../interface-strategy'\nimport type { BatchResponseData } from '../../abstract-interaction-batch'\nimport { AbstractProcessing } from '../interface-strategy'\nimport { SdkError } from '../../../../sdk-error'\nimport { AjaxResult } from '../../../../http/ajax-result'\nimport { Result } from '../../../../result'\n\nexport abstract class AbstractProcessingV3 extends AbstractProcessing implements IProcessingStrategy {\n public buildCommands(commands: BatchCommandV3[]): BatchCommandV3[] {\n if (commands.length < 1) {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_BUILD_STRATEGY_V3_EMPTY_COMMANDS',\n description: 'commands not set',\n status: 500\n })\n }\n\n return commands\n }\n\n // region prepareItems ////\n public override async prepareItems<T>(\n commands: BatchCommandV3[],\n responseHelper: ResponseHelper<T>\n ): Promise<ResultItems<T>> {\n const results: ResultItems<T> = new Map()\n\n /**\n * In API V3, batch processing does not return data for each row in case of parallel processing errors.\n *\n * @see AbstractProcessingV3.handleResults()\n *\n * @todo ! api ver3 waite docs - this fake\n */\n if (!responseHelper.response.isSuccess) {\n return results\n }\n\n for (const [index, command] of commands.entries()) {\n await this._processResponseItem<T>(\n command,\n // @memo for apiVer3 in this pace we get objectIndex from array `index` from `commands[]`\n index,\n responseHelper,\n results\n )\n }\n\n return results\n }\n\n /**\n * @todo ! api ver3 waite docs\n */\n protected override async _processResponseItem<T>(\n command: BatchCommandV3,\n index: string | number,\n responseHelper: ResponseHelper<T>,\n results: Map<string | number, AjaxResult<T>>\n ): Promise<void> {\n const responseResult = responseHelper.response.getData()!.result as unknown as BatchResponseData<T>\n const resultData = this._getBatchResultByIndex((responseResult as T[] | Record<string | number, T> | undefined), index)\n const methodName = command.method\n\n /**\n * @todo ! api ver3 waite docs - this fake\n */\n const resultError = undefined\n\n /**\n * @todo ! api ver3 waite docs - this fake\n */\n const resultTime = responseHelper.response.getData()!.time\n // Update operating statistics for each method in the batch\n if (typeof resultTime !== 'undefined') {\n await responseHelper.restrictionManager.updateStats(responseHelper.requestId, `batch::${methodName}`, resultTime)\n }\n\n const result = new AjaxResult<T>({\n answer: {\n result: (resultData ?? {}) as T,\n error: resultError,\n time: resultTime\n },\n query: {\n method: command.method,\n params: command.query || {},\n requestId: responseHelper.requestId\n },\n status: responseHelper.response.getStatus()\n })\n\n results.set(index, result)\n return\n }\n // endregion ////\n\n // region handleResults ////\n public override async handleResults<T>(commands: BatchCommandV3[], results: ResultItems<T>, responseHelper: ResponseHelper<T>): Promise<Result<ICallBatchResult<T>>> {\n const result = new Result<ICallBatchResult<T>>()\n const dataResult: ResultItems<T> = new Map()\n /**\n * In API V3, batch processing does not return data for each row in case of parallel processing errors.\n *\n * @see AbstractProcessingV3.prepareItems()\n *\n * @todo ! api ver3 waite docs - this fake\n */\n if (!responseHelper.response.isSuccess) {\n for (const [index, error] of responseHelper.response.errors) {\n result.addError(error, index)\n }\n result.setData({\n result: dataResult,\n time: undefined\n })\n return result\n }\n\n for (const [index, data] of results) {\n const rowIndex = Number.parseInt(`${index}`)\n const command = commands[rowIndex]\n if (typeof command === 'undefined') {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_BUILD_STRATEGY_V3_EMPTY_COMMAND',\n description: `command for index ${index} not set`,\n status: 500\n })\n }\n\n const commandIndex = command.as ?? index\n if (data.getStatus() !== 200 || !data.isSuccess) {\n const ajaxError = this._createErrorFromAjaxResult(data)\n\n /*\n * This should contain code similar to #isOperatingLimitError with a check for\n * the error 'Method is blocked due to operation time limit.'\n * However, `batch` is executed without retries, so there will be an immediate error.\n */\n\n // @todo fix docs\n // @memo we not throw ajaxError\n this._processResponseError<T>(result, ajaxError, `${commandIndex}`)\n dataResult.set(commandIndex, data)\n\n // if (responseHelper.parallelDefaultValue && !data.isSuccess) {\n // this._processResponseError<T>(result, ajaxError, `${index}`)\n // dataResult.set(index, data)\n // continue\n // }\n //\n // throw ajaxError\n }\n\n dataResult.set(commandIndex, data)\n }\n\n result.setData({\n result: dataResult,\n time: responseHelper.response.getData()!.time\n })\n\n return result\n }\n // endregion ////\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/core/result.mjs
CHANGED
package/dist/esm/frame/auth.mjs
CHANGED
package/dist/esm/frame/b24.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @package @bitrix24/b24jssdk
|
|
3
|
-
* @version 1.0
|
|
3
|
+
* @version 1.1.0
|
|
4
4
|
* @copyright (c) 2026 Bitrix24
|
|
5
5
|
* @license MIT
|
|
6
6
|
* @see https://github.com/bitrix24/b24jssdk
|
|
@@ -58,19 +58,59 @@ class DialogManager {
|
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* Invokes the system dialog for selecting CRM entities
|
|
62
|
+
* (leads, contacts, companies, deals, quotes).
|
|
62
63
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
64
|
+
* The resolved `SelectedCRM` object contains a separate bucket per
|
|
65
|
+
* entity type. Each present bucket is a real `Array`, so consumers can
|
|
66
|
+
* use `.length`, `.map()`, `for..of`, etc. directly. Buckets for entity
|
|
67
|
+
* types that were not selected (or not requested via `entityType`) are
|
|
68
|
+
* left `undefined` rather than being set to an empty array.
|
|
69
|
+
*
|
|
70
|
+
* Note: the parent window historically returned each bucket as a
|
|
71
|
+
* `Record<string, SelectedCRMEntity>` (e.g. `{ 0: {...}, 1: {...} }`).
|
|
72
|
+
* The SDK normalizes that response to a real array before returning it.
|
|
73
|
+
*
|
|
74
|
+
* @param {SelectCRMParams} [params] - Filter and behavior options.
|
|
75
|
+
* - `entityType`: which entity types are shown in the dialog.
|
|
76
|
+
* - `multiple`: allow multiple selection (default `false`).
|
|
77
|
+
* - `value`: pre-selected entities (only applied when `multiple` is `true`).
|
|
78
|
+
* @return {Promise<SelectedCRM>} Resolves to an object whose properties
|
|
79
|
+
* (`lead`, `contact`, `company`, `deal`, `quote`) are arrays of
|
|
80
|
+
* {@link SelectedCRMEntity} objects.
|
|
65
81
|
*
|
|
66
82
|
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-crm.html
|
|
67
83
|
*/
|
|
68
84
|
async selectCRM(params) {
|
|
69
|
-
|
|
85
|
+
const response = await this.#messageManager.send(MessageCommands.selectCRM, {
|
|
70
86
|
entityType: params?.entityType,
|
|
71
87
|
multiple: params?.multiple,
|
|
72
88
|
value: params?.value
|
|
73
89
|
});
|
|
90
|
+
const result = {};
|
|
91
|
+
if (!response) {
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
const toArray = /* @__PURE__ */ __name((bucket) => {
|
|
95
|
+
if (bucket === void 0 || bucket === null) {
|
|
96
|
+
return void 0;
|
|
97
|
+
}
|
|
98
|
+
if (Array.isArray(bucket)) {
|
|
99
|
+
return bucket;
|
|
100
|
+
}
|
|
101
|
+
return Object.values(bucket);
|
|
102
|
+
}, "toArray");
|
|
103
|
+
const lead = toArray(response.lead);
|
|
104
|
+
if (lead) result.lead = lead;
|
|
105
|
+
const contact = toArray(response.contact);
|
|
106
|
+
if (contact) result.contact = contact;
|
|
107
|
+
const company = toArray(response.company);
|
|
108
|
+
if (company) result.company = company;
|
|
109
|
+
const deal = toArray(response.deal);
|
|
110
|
+
if (deal) result.deal = deal;
|
|
111
|
+
const quote = toArray(response.quote);
|
|
112
|
+
if (quote) result.quote = quote;
|
|
113
|
+
return result;
|
|
74
114
|
}
|
|
75
115
|
}
|
|
76
116
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.mjs","sources":["../../../src/frame/dialog.ts"],"sourcesContent":["import type { MessageManager } from './message'\nimport { MessageCommands } from './message'\nimport type { NumberString } from '../types/common'\n\nexport type SelectedUser = {\n /**\n * user identifier\n */\n id: NumberString\n\n /**\n * formatted username\n */\n name: string\n\n photo: string\n\n position: string\n\n url: string\n\n /**\n * The flag indicates that the selected user is a subordinate of the current user\n */\n sub: boolean\n\n /**\n * The flag indicates that the selected user is the manager of the current user\n */\n sup: boolean\n}\n\nexport type SelectedAccess = {\n /**\n * access permission identifier. Examples of identifiers:\n * - U1 — user with identifier 1\n * - IU1 — employees with identifier 1\n * - DR2 — all department and subdepartment employees with identifier 2\n * - D6 — all department employees with identifier 6\n * - G2 — group with identifier 2 (all visitors)\n * - SG4 — social network group with identifier 4\n * - AU — all authorized users\n * - CR — current user\n */\n id:\n | `AU`\n | `CR`\n | `U${number}`\n | `IU${number}`\n | `DR${number}`\n | `D${number}`\n | `G${number}`\n | `SG${number}`\n\n /**\n * name of the access permission\n */\n name: string\n}\n\nexport type SelectCRMParamsEntityType\n = | 'lead'\n | 'contact'\n | 'company'\n | 'deal'\n | 'quote'\n\nexport type SelectCRMParamsValue = {\n lead?: number[]\n contact?: number[]\n company?: number[]\n deal?: number[]\n quote?: number[]\n}\n\nexport type SelectCRMParams = {\n /**\n * Which types of objects to display in the dialog. Possible values:\n * - lead — Leads\n * - contact — Contacts\n * - company — Companies\n * - deal — Deals\n * - quote — Estimates\n */\n entityType: SelectCRMParamsEntityType[]\n\n /**\n * Whether multiple objects can be selected. Default is `false`\n */\n multiple: boolean\n\n /**\n * Which objects to initially add to the selected in the dialog. Works only if `multiple = true`\n */\n value?: SelectCRMParamsValue\n}\n\nexport type SelectedCRMEntity = {\n id: string\n type: SelectCRMParamsEntityType\n place: string\n title: string\n desc: string\n url: string\n}\n\nexport type SelectedCRM = {\n lead?: (SelectedCRMEntity & { id: `L_${number}` })[]\n contact?: (SelectedCRMEntity & { id: `C_${number}`, image: string })[]\n company?: (SelectedCRMEntity & { id: `CO_${number}`, image: string })[]\n deal?: (SelectedCRMEntity & { id: `D_${number}` })[]\n quote?: (SelectedCRMEntity & { id: `Q_${number}` })[]\n}\n\n/**\n * Select dialog manager\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/index.html\n */\nexport class DialogManager {\n #messageManager: MessageManager\n\n constructor(messageManager: MessageManager) {\n this.#messageManager = messageManager\n }\n\n /**\n * Method displays the standard single user selection dialog\n * It only shows company employees\n *\n * @return {Promise<null|SelectedUser>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-user.html\n */\n async selectUser(): Promise<null | SelectedUser> {\n return this.#messageManager.send(MessageCommands.selectUser, {\n mult: false\n })\n }\n\n /**\n * Method displays the standard multiple user selection dialog\n * It only shows company employees\n *\n * @return {Promise<SelectedUser[]>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-users.html\n */\n async selectUsers(): Promise<SelectedUser[]> {\n return this.#messageManager.send(MessageCommands.selectUser, {\n mult: true\n })\n }\n\n /**\n * Method displays a standard access permission selection dialog\n *\n * @param {string[]} blockedAccessPermissions\n * @return {Promise<SelectedAccess[]>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-access.html\n */\n async selectAccess(\n blockedAccessPermissions: string[] = []\n ): Promise<SelectedAccess[]> {\n return this.#messageManager.send(MessageCommands.selectAccess, {\n value: blockedAccessPermissions\n })\n }\n\n /**\n *
|
|
1
|
+
{"version":3,"file":"dialog.mjs","sources":["../../../src/frame/dialog.ts"],"sourcesContent":["import type { MessageManager } from './message'\nimport { MessageCommands } from './message'\nimport type { NumberString } from '../types/common'\n\nexport type SelectedUser = {\n /**\n * user identifier\n */\n id: NumberString\n\n /**\n * formatted username\n */\n name: string\n\n photo: string\n\n position: string\n\n url: string\n\n /**\n * The flag indicates that the selected user is a subordinate of the current user\n */\n sub: boolean\n\n /**\n * The flag indicates that the selected user is the manager of the current user\n */\n sup: boolean\n}\n\nexport type SelectedAccess = {\n /**\n * access permission identifier. Examples of identifiers:\n * - U1 — user with identifier 1\n * - IU1 — employees with identifier 1\n * - DR2 — all department and subdepartment employees with identifier 2\n * - D6 — all department employees with identifier 6\n * - G2 — group with identifier 2 (all visitors)\n * - SG4 — social network group with identifier 4\n * - AU — all authorized users\n * - CR — current user\n */\n id:\n | `AU`\n | `CR`\n | `U${number}`\n | `IU${number}`\n | `DR${number}`\n | `D${number}`\n | `G${number}`\n | `SG${number}`\n\n /**\n * name of the access permission\n */\n name: string\n}\n\nexport type SelectCRMParamsEntityType\n = | 'lead'\n | 'contact'\n | 'company'\n | 'deal'\n | 'quote'\n\nexport type SelectCRMParamsValue = {\n lead?: number[]\n contact?: number[]\n company?: number[]\n deal?: number[]\n quote?: number[]\n}\n\nexport type SelectCRMParams = {\n /**\n * Which types of objects to display in the dialog. Possible values:\n * - lead — Leads\n * - contact — Contacts\n * - company — Companies\n * - deal — Deals\n * - quote — Estimates\n */\n entityType: SelectCRMParamsEntityType[]\n\n /**\n * Whether multiple objects can be selected. Default is `false`\n */\n multiple: boolean\n\n /**\n * Which objects to initially add to the selected in the dialog. Works only if `multiple = true`\n */\n value?: SelectCRMParamsValue\n}\n\nexport type SelectedCRMEntity = {\n id: string\n type: SelectCRMParamsEntityType\n place: string\n title: string\n desc: string\n url: string\n}\n\nexport type SelectedCRM = {\n lead?: (SelectedCRMEntity & { id: `L_${number}` })[]\n contact?: (SelectedCRMEntity & { id: `C_${number}`, image: string })[]\n company?: (SelectedCRMEntity & { id: `CO_${number}`, image: string })[]\n deal?: (SelectedCRMEntity & { id: `D_${number}` })[]\n quote?: (SelectedCRMEntity & { id: `Q_${number}` })[]\n}\n\n/**\n * Select dialog manager\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/index.html\n */\nexport class DialogManager {\n #messageManager: MessageManager\n\n constructor(messageManager: MessageManager) {\n this.#messageManager = messageManager\n }\n\n /**\n * Method displays the standard single user selection dialog\n * It only shows company employees\n *\n * @return {Promise<null|SelectedUser>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-user.html\n */\n async selectUser(): Promise<null | SelectedUser> {\n return this.#messageManager.send(MessageCommands.selectUser, {\n mult: false\n })\n }\n\n /**\n * Method displays the standard multiple user selection dialog\n * It only shows company employees\n *\n * @return {Promise<SelectedUser[]>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-users.html\n */\n async selectUsers(): Promise<SelectedUser[]> {\n return this.#messageManager.send(MessageCommands.selectUser, {\n mult: true\n })\n }\n\n /**\n * Method displays a standard access permission selection dialog\n *\n * @param {string[]} blockedAccessPermissions\n * @return {Promise<SelectedAccess[]>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-access.html\n */\n async selectAccess(\n blockedAccessPermissions: string[] = []\n ): Promise<SelectedAccess[]> {\n return this.#messageManager.send(MessageCommands.selectAccess, {\n value: blockedAccessPermissions\n })\n }\n\n /**\n * Invokes the system dialog for selecting CRM entities\n * (leads, contacts, companies, deals, quotes).\n *\n * The resolved `SelectedCRM` object contains a separate bucket per\n * entity type. Each present bucket is a real `Array`, so consumers can\n * use `.length`, `.map()`, `for..of`, etc. directly. Buckets for entity\n * types that were not selected (or not requested via `entityType`) are\n * left `undefined` rather than being set to an empty array.\n *\n * Note: the parent window historically returned each bucket as a\n * `Record<string, SelectedCRMEntity>` (e.g. `{ 0: {...}, 1: {...} }`).\n * The SDK normalizes that response to a real array before returning it.\n *\n * @param {SelectCRMParams} [params] - Filter and behavior options.\n * - `entityType`: which entity types are shown in the dialog.\n * - `multiple`: allow multiple selection (default `false`).\n * - `value`: pre-selected entities (only applied when `multiple` is `true`).\n * @return {Promise<SelectedCRM>} Resolves to an object whose properties\n * (`lead`, `contact`, `company`, `deal`, `quote`) are arrays of\n * {@link SelectedCRMEntity} objects.\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-crm.html\n */\n async selectCRM(params?: SelectCRMParams): Promise<SelectedCRM> {\n const response = await this.#messageManager.send(MessageCommands.selectCRM, {\n entityType: params?.entityType,\n multiple: params?.multiple,\n value: params?.value\n }) as Partial<Record<SelectCRMParamsEntityType, unknown>> | null | undefined\n\n // The parent window returns each entity bucket as a Record<string, SelectedCRMEntity>\n // (e.g. { 0: {...}, 1: {...} }) rather than a real array. Normalize to arrays so\n // the runtime shape matches the documented `SelectedCRM` types.\n const result: SelectedCRM = {}\n if (!response) {\n return result\n }\n\n const toArray = <T>(bucket: unknown): T[] | undefined => {\n if (bucket === undefined || bucket === null) {\n return undefined\n }\n if (Array.isArray(bucket)) {\n return bucket as T[]\n }\n return Object.values(bucket as Record<string, T>)\n }\n\n const lead = toArray<SelectedCRMEntity & { id: `L_${number}` }>(response.lead)\n if (lead) result.lead = lead\n\n const contact = toArray<SelectedCRMEntity & { id: `C_${number}`, image: string }>(response.contact)\n if (contact) result.contact = contact\n\n const company = toArray<SelectedCRMEntity & { id: `CO_${number}`, image: string }>(response.company)\n if (company) result.company = company\n\n const deal = toArray<SelectedCRMEntity & { id: `D_${number}` }>(response.deal)\n if (deal) result.deal = deal\n\n const quote = toArray<SelectedCRMEntity & { id: `Q_${number}` }>(response.quote)\n if (quote) result.quote = quote\n\n return result\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAuHO,MAAM,aAAA,CAAc;AAAA,EAvH3B;AAuH2B,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAAA,EACzB,eAAA;AAAA,EAEA,YAAY,cAAA,EAAgC;AAC1C,IAAA,IAAA,CAAK,eAAA,GAAkB,cAAA;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,UAAA,GAA2C;AAC/C,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,UAAA,EAAY;AAAA,MAC3D,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,WAAA,GAAuC;AAC3C,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,UAAA,EAAY;AAAA,MAC3D,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,YAAA,CACJ,wBAAA,GAAqC,EAAC,EACX;AAC3B,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,YAAA,EAAc;AAAA,MAC7D,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BA,MAAM,UAAU,MAAA,EAAgD;AAC9D,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,gBAAgB,SAAA,EAAW;AAAA,MAC1E,YAAY,MAAA,EAAQ,UAAA;AAAA,MACpB,UAAU,MAAA,EAAQ,QAAA;AAAA,MAClB,OAAO,MAAA,EAAQ;AAAA,KAChB,CAAA;AAKD,IAAA,MAAM,SAAsB,EAAC;AAC7B,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,MAAM,OAAA,2BAAc,MAAA,KAAqC;AACvD,MAAA,IAAI,MAAA,KAAW,MAAA,IAAa,MAAA,KAAW,IAAA,EAAM;AAC3C,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AACzB,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,OAAO,MAAA,CAAO,OAAO,MAA2B,CAAA;AAAA,IAClD,CAAA,EARgB,SAAA,CAAA;AAUhB,IAAA,MAAM,IAAA,GAAO,OAAA,CAAmD,QAAA,CAAS,IAAI,CAAA;AAC7E,IAAA,IAAI,IAAA,SAAa,IAAA,GAAO,IAAA;AAExB,IAAA,MAAM,OAAA,GAAU,OAAA,CAAkE,QAAA,CAAS,OAAO,CAAA;AAClG,IAAA,IAAI,OAAA,SAAgB,OAAA,GAAU,OAAA;AAE9B,IAAA,MAAM,OAAA,GAAU,OAAA,CAAmE,QAAA,CAAS,OAAO,CAAA;AACnG,IAAA,IAAI,OAAA,SAAgB,OAAA,GAAU,OAAA;AAE9B,IAAA,MAAM,IAAA,GAAO,OAAA,CAAmD,QAAA,CAAS,IAAI,CAAA;AAC7E,IAAA,IAAI,IAAA,SAAa,IAAA,GAAO,IAAA;AAExB,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAmD,QAAA,CAAS,KAAK,CAAA;AAC/E,IAAA,IAAI,KAAA,SAAc,KAAA,GAAQ,KAAA;AAE1B,IAAA,OAAO,MAAA;AAAA,EACT;AACF;;;;"}
|
package/dist/esm/frame/frame.mjs
CHANGED