@wix/cli-app 1.1.164 → 1.1.166

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.
Files changed (81) hide show
  1. package/build/{AddPermissionCommand-U46BMFVU.js → AddPermissionCommand-AGZ6TBT7.js} +2 -2
  2. package/build/{DevCommand-YWRIFOIF.js → DevCommand-7FMNSUHV.js} +10 -10
  3. package/build/{GenerateCommand-AMNZH5AF.js → GenerateCommand-PNSM4OY4.js} +7 -7
  4. package/build/{LogsCommand-GHZITJ4T.js → LogsCommand-DMLGI5DE.js} +3 -3
  5. package/build/PreviewCommand-JNYEKW25.js +19 -0
  6. package/build/ReleaseCommand-C3SVTJQB.js +23 -0
  7. package/build/{ServeCommand-M42EXOG3.js → ServeCommand-7NUORVP2.js} +3 -3
  8. package/build/{build-T7X7PL7N.js → build-MJDWPRFY.js} +6 -6
  9. package/build/{chunk-RE4ID4UP.js → chunk-2MY7QQCL.js} +6 -6
  10. package/build/{chunk-FYDEESUF.js → chunk-2PKUEXXE.js} +4 -4
  11. package/build/{chunk-3EDHMQIU.js → chunk-46IYET3Y.js} +2 -2
  12. package/build/{chunk-DZ3D5WMG.js → chunk-5T4ALNIO.js} +7 -7
  13. package/build/{chunk-JBUC4W66.js → chunk-653TJU7I.js} +3 -3
  14. package/build/{chunk-BAQZEH6V.js → chunk-A4D4RSPQ.js} +2 -2
  15. package/build/{chunk-QC6FGGW3.js → chunk-ESVDFA6B.js} +3 -3
  16. package/build/{chunk-POOMMHIZ.js → chunk-GDTQBVDL.js} +2 -2
  17. package/build/{chunk-LPI46C5I.js → chunk-H3SI2KY5.js} +2 -2
  18. package/build/{chunk-74DVKY3Z.js → chunk-HDCH2WCL.js} +2 -2
  19. package/build/{chunk-CNBEY6LV.js → chunk-JDIWNPSE.js} +2 -2
  20. package/build/{chunk-Z4GMJP35.js → chunk-JWIQGUSY.js} +2 -2
  21. package/build/{chunk-Z4GMJP35.js.map → chunk-JWIQGUSY.js.map} +1 -1
  22. package/build/{chunk-WLAFKHEE.js → chunk-LQ6IMZDZ.js} +4 -4
  23. package/build/{chunk-AIEBGTGL.js → chunk-S4PWCDXT.js} +2 -2
  24. package/build/{chunk-3MWABOBS.js → chunk-T7S3EJPZ.js} +6 -6
  25. package/build/{chunk-BDFKTWJO.js → chunk-Y527U3BQ.js} +2 -2
  26. package/build/{chunk-CWEKJNH7.js → chunk-ZWCD4IUF.js} +2 -2
  27. package/build/cloudflare-runtime/entry.js +6 -6
  28. package/build/cloudflare-runtime/getRegisteredExtensions.js +6 -6
  29. package/build/index.js +23 -23
  30. package/build/platform-sdk/chunk-42Y3PAPA.js +2 -0
  31. package/build/platform-sdk/chunk-42Y3PAPA.js.map +1 -0
  32. package/build/platform-sdk/chunk-7JKHQSWI.js +2 -0
  33. package/build/platform-sdk/chunk-7JKHQSWI.js.map +1 -0
  34. package/build/platform-sdk/{chunk-UTEFPCPF.js → chunk-KXCY2KWZ.js} +2 -2
  35. package/build/platform-sdk/dashboard.js +1 -1
  36. package/build/platform-sdk/dashboard.js.map +1 -1
  37. package/build/platform-sdk/editor.js +1 -1
  38. package/build/platform-sdk/sdk-context.js +1 -1
  39. package/build/platform-sdk/sdk-context.js.map +1 -1
  40. package/build/platform-sdk/site.js +1 -1
  41. package/build/platform-sdk/site.js.map +1 -1
  42. package/build/platform-sdk/web-methods.js +1 -1
  43. package/build/{preview-YD4LLEOM.js → preview-V3RY4EZ5.js} +12 -12
  44. package/build/{release-Z6JEE7OI.js → release-3PRSCSLJ.js} +14 -14
  45. package/build/{render-command-ZT6KET7F.js → render-command-NQNLWE3A.js} +5 -5
  46. package/package.json +2 -2
  47. package/templates/dashboard-modal/dependencies.json +1 -1
  48. package/build/PreviewCommand-5L5QJVQF.js +0 -19
  49. package/build/ReleaseCommand-4MUB6PNS.js +0 -23
  50. package/build/platform-sdk/chunk-QSTEFEOT.js +0 -2
  51. package/build/platform-sdk/chunk-QSTEFEOT.js.map +0 -1
  52. package/build/platform-sdk/chunk-RSZB4TBC.js +0 -2
  53. package/build/platform-sdk/chunk-RSZB4TBC.js.map +0 -1
  54. /package/build/{AddPermissionCommand-U46BMFVU.js.map → AddPermissionCommand-AGZ6TBT7.js.map} +0 -0
  55. /package/build/{DevCommand-YWRIFOIF.js.map → DevCommand-7FMNSUHV.js.map} +0 -0
  56. /package/build/{GenerateCommand-AMNZH5AF.js.map → GenerateCommand-PNSM4OY4.js.map} +0 -0
  57. /package/build/{LogsCommand-GHZITJ4T.js.map → LogsCommand-DMLGI5DE.js.map} +0 -0
  58. /package/build/{PreviewCommand-5L5QJVQF.js.map → PreviewCommand-JNYEKW25.js.map} +0 -0
  59. /package/build/{ReleaseCommand-4MUB6PNS.js.map → ReleaseCommand-C3SVTJQB.js.map} +0 -0
  60. /package/build/{ServeCommand-M42EXOG3.js.map → ServeCommand-7NUORVP2.js.map} +0 -0
  61. /package/build/{build-T7X7PL7N.js.map → build-MJDWPRFY.js.map} +0 -0
  62. /package/build/{chunk-RE4ID4UP.js.map → chunk-2MY7QQCL.js.map} +0 -0
  63. /package/build/{chunk-FYDEESUF.js.map → chunk-2PKUEXXE.js.map} +0 -0
  64. /package/build/{chunk-3EDHMQIU.js.map → chunk-46IYET3Y.js.map} +0 -0
  65. /package/build/{chunk-DZ3D5WMG.js.map → chunk-5T4ALNIO.js.map} +0 -0
  66. /package/build/{chunk-JBUC4W66.js.map → chunk-653TJU7I.js.map} +0 -0
  67. /package/build/{chunk-BAQZEH6V.js.map → chunk-A4D4RSPQ.js.map} +0 -0
  68. /package/build/{chunk-QC6FGGW3.js.map → chunk-ESVDFA6B.js.map} +0 -0
  69. /package/build/{chunk-POOMMHIZ.js.map → chunk-GDTQBVDL.js.map} +0 -0
  70. /package/build/{chunk-LPI46C5I.js.map → chunk-H3SI2KY5.js.map} +0 -0
  71. /package/build/{chunk-74DVKY3Z.js.map → chunk-HDCH2WCL.js.map} +0 -0
  72. /package/build/{chunk-CNBEY6LV.js.map → chunk-JDIWNPSE.js.map} +0 -0
  73. /package/build/{chunk-WLAFKHEE.js.map → chunk-LQ6IMZDZ.js.map} +0 -0
  74. /package/build/{chunk-AIEBGTGL.js.map → chunk-S4PWCDXT.js.map} +0 -0
  75. /package/build/{chunk-3MWABOBS.js.map → chunk-T7S3EJPZ.js.map} +0 -0
  76. /package/build/{chunk-BDFKTWJO.js.map → chunk-Y527U3BQ.js.map} +0 -0
  77. /package/build/{chunk-CWEKJNH7.js.map → chunk-ZWCD4IUF.js.map} +0 -0
  78. /package/build/platform-sdk/{chunk-UTEFPCPF.js.map → chunk-KXCY2KWZ.js.map} +0 -0
  79. /package/build/{preview-YD4LLEOM.js.map → preview-V3RY4EZ5.js.map} +0 -0
  80. /package/build/{release-Z6JEE7OI.js.map → release-3PRSCSLJ.js.map} +0 -0
  81. /package/build/{render-command-ZT6KET7F.js.map → render-command-NQNLWE3A.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/@wix/sdk/build/wixClient.js","../../../node_modules/@wix/sdk/build/ambassador-modules.js","../../../node_modules/@wix/sdk/build/common.js","../../../node_modules/@wix/sdk/build/fetch-error.js","../../../node_modules/@wix/sdk/build/helpers.js","../../../node_modules/@wix/sdk/build/host-modules.js","../../../node_modules/@wix/sdk/build/bi/biHeaderGenerator.js","../../../node_modules/@wix/sdk/node_modules/@wix/sdk-runtime/build/utils.js","../../../node_modules/@wix/sdk/node_modules/@wix/sdk-runtime/build/transform-error.js","../../../node_modules/@wix/sdk/build/rest-modules.js","../../../node_modules/@wix/sdk/build/object-utils.js","../../../node_modules/@wix/sdk/build/flat-utils.js","../../../node_modules/@wix/sdk/build/modified-fields-manipulator.js","../../../node_modules/@wix/sdk/build/nanoevents.js","../../../node_modules/@wix/sdk/build/event-handlers-modules.js","../../../node_modules/@wix/sdk/build/service-plugin-modules.js"],"sourcesContent":["import { wixContext } from '@wix/sdk-context';\nimport { SERVICE_PLUGIN_ERROR_TYPE, } from '@wix/sdk-types';\nimport { isAmbassadorModule, toHTTPModule } from './ambassador-modules.js';\nimport { DEFAULT_API_URL, PUBLIC_METADATA_KEY } from './common.js';\nimport { FetchErrorResponse } from './fetch-error.js';\nimport { getDefaultContentHeader, isObject } from './helpers.js';\nimport { buildHostModule, isHostModule } from './host-modules.js';\nimport { buildRESTDescriptor } from './rest-modules.js';\nimport { eventHandlersModules, isEventHandlerModule, } from './event-handlers-modules.js';\nimport { isServicePluginModule, servicePluginsModules, } from './service-plugin-modules.js';\nimport { runWithoutContext } from '@wix/sdk-runtime/context';\nexport const X_WIX_CONSISTENT_HEADER = 'X-Wix-Consistent';\nexport function createClient(config) {\n const _headers = config.headers || { Authorization: '' };\n const defaultStrategy = {\n getAuthHeaders: (_) => Promise.resolve({ headers: {} }),\n };\n const auth = config.auth;\n const getAuthStrategy = typeof auth === 'function' ? auth : () => auth ?? defaultStrategy;\n const boundGetAuthHeaders = () => {\n return getAuthStrategy().getAuthHeaders(config.host);\n };\n const fetchWithAuth = async (urlOrRequest, requestInit) => {\n const authHeaders = await boundGetAuthHeaders();\n const headers = {\n ...(requestInit?.headers ?? {}),\n ...authHeaders.headers,\n ...config.host?.essentials?.passThroughHeaders,\n ...(_headers[X_WIX_CONSISTENT_HEADER]\n ? { [X_WIX_CONSISTENT_HEADER]: _headers[X_WIX_CONSISTENT_HEADER] }\n : {}),\n };\n const errorHandler = config.host?.getErrorHandler?.();\n try {\n if (typeof urlOrRequest === 'string' || urlOrRequest instanceof URL) {\n const response = await fetch(urlOrRequest, {\n ...requestInit,\n headers,\n });\n errorHandler?.handleError(response, {\n requestOptions: {\n url: urlOrRequest.toString(),\n method: requestInit?.method,\n },\n });\n const consistentHeader = findConsistentHeader(response);\n if (consistentHeader) {\n _headers[X_WIX_CONSISTENT_HEADER] = consistentHeader;\n }\n return response;\n }\n else {\n for (const [k, v] of Object.entries(headers)) {\n if (typeof v === 'string') {\n urlOrRequest.headers.set(k, v);\n }\n }\n const response = await fetch(urlOrRequest, requestInit);\n errorHandler?.handleError(response, {\n requestOptions: {\n url: urlOrRequest.url,\n method: requestInit?.method,\n },\n });\n const consistentHeader = findConsistentHeader(response);\n if (consistentHeader) {\n _headers[X_WIX_CONSISTENT_HEADER] = consistentHeader;\n }\n return response;\n }\n }\n catch (e) {\n errorHandler?.handleError(e, {\n requestOptions: {\n url: typeof urlOrRequest === 'string' || urlOrRequest instanceof URL\n ? urlOrRequest.toString()\n : urlOrRequest.url,\n method: requestInit?.method,\n },\n });\n throw e;\n }\n };\n const { client: servicePluginsClient, initModule: initServicePluginModule } = servicePluginsModules(getAuthStrategy);\n const { client: eventHandlersClient, initModule: initEventHandlerModule } = eventHandlersModules(getAuthStrategy);\n const boundFetch = async (url, options) => {\n const authHeaders = await boundGetAuthHeaders();\n const defaultContentTypeHeader = getDefaultContentHeader(options);\n const response = await fetch(url, {\n ...options,\n headers: {\n ...defaultContentTypeHeader,\n ..._headers,\n ...authHeaders?.headers,\n ...options?.headers,\n ...config.host?.essentials?.passThroughHeaders,\n // Ensure consistent header always takes precedence\n ...(_headers[X_WIX_CONSISTENT_HEADER]\n ? { [X_WIX_CONSISTENT_HEADER]: _headers[X_WIX_CONSISTENT_HEADER] }\n : {}),\n },\n });\n const consistentHeader = findConsistentHeader(response);\n if (consistentHeader) {\n _headers[X_WIX_CONSISTENT_HEADER] = consistentHeader;\n }\n return response;\n };\n // This is typed as `any` because when trying to properly type it as defined\n // on the WixClient, typescript starts failing with `Type instantiation is\n // excessively deep and possibly infinite.`\n const use = (modules, metadata) => {\n if (isEventHandlerModule(modules)) {\n return initEventHandlerModule(modules);\n }\n else if (isServicePluginModule(modules)) {\n return initServicePluginModule(modules);\n }\n else if (isHostModule(modules) && config.host) {\n return buildHostModule(modules, config.host);\n }\n else if (typeof modules === 'function') {\n // The generated namespaces all have the error classes on them and\n // a class is also a function, so we need to explicitly ignore these\n // error classes using a static field that exists on them.\n if ('__type' in modules && modules.__type === SERVICE_PLUGIN_ERROR_TYPE) {\n return modules;\n }\n const apiBaseUrl = config.host?.apiBaseUrl ?? DEFAULT_API_URL;\n const shouldUseCDN = config.useCDN === undefined\n ? getAuthStrategy().shouldUseCDN\n : config.useCDN;\n return buildRESTDescriptor(runWithoutContext(() => isAmbassadorModule(modules))\n ? toHTTPModule(modules)\n : modules, metadata ?? {}, boundFetch, config.host?.getErrorHandler?.(), (relativeUrl, fetchOptions) => {\n const finalUrl = new URL(relativeUrl, `https://${apiBaseUrl}`);\n finalUrl.host = apiBaseUrl;\n finalUrl.protocol = 'https';\n return boundFetch(finalUrl.toString(), fetchOptions);\n }, getAuthStrategy().getActiveToken, { HTTPHost: apiBaseUrl }, config.host?.name, shouldUseCDN);\n }\n else if (isObject(modules)) {\n return Object.fromEntries(Object.entries(modules).map(([key, value]) => {\n return [key, use(value, modules[PUBLIC_METADATA_KEY])];\n }));\n }\n else {\n return modules;\n }\n };\n const setHeaders = (headers) => {\n for (const k in headers) {\n _headers[k] = headers[k];\n }\n };\n const wrappedModules = config.modules\n ? use(config.modules)\n : {};\n return {\n ...wrappedModules,\n get auth() {\n const authStrategy = getAuthStrategy();\n const originalGetAuthHeaders = authStrategy.getAuthHeaders;\n authStrategy.getAuthHeaders = originalGetAuthHeaders.bind(undefined, config.host);\n return authStrategy;\n },\n setHeaders,\n use,\n enableContext(contextType, opts = { elevated: false }) {\n if (contextType === 'global') {\n if (globalThis.__wix_context__ != null) {\n if (opts.elevated) {\n globalThis.__wix_context__.elevatedClient = this;\n }\n else {\n globalThis.__wix_context__.client = this;\n }\n }\n else {\n if (opts.elevated) {\n globalThis.__wix_context__ = { elevatedClient: this };\n }\n else {\n globalThis.__wix_context__ = { client: this };\n }\n }\n }\n else {\n if (opts.elevated) {\n wixContext.elevatedClient = this;\n }\n else {\n wixContext.client = this;\n }\n }\n },\n /**\n * @param relativeUrl The URL to fetch relative to the API base URL\n * @param options The fetch options\n * @returns The fetch Response object\n * @deprecated Use `fetchWithAuth` instead\n */\n fetch: (relativeUrl, options) => {\n const apiBaseUrl = config.host?.apiBaseUrl ?? DEFAULT_API_URL;\n const finalUrl = new URL(relativeUrl, `https://${apiBaseUrl}`);\n finalUrl.host = apiBaseUrl;\n finalUrl.protocol = 'https';\n return boundFetch(finalUrl.toString(), options);\n },\n fetchWithAuth,\n async graphql(query, variables, opts = {\n apiVersion: 'alpha',\n }) {\n const apiBaseUrl = config?.host?.apiBaseUrl ?? DEFAULT_API_URL;\n const res = await boundFetch(`https://${apiBaseUrl}/graphql/${opts.apiVersion}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ query, variables }),\n });\n if (res.status !== 200) {\n throw new FetchErrorResponse(`GraphQL request failed with status ${res.status}`, res);\n }\n const { data, errors } = await res.json();\n return { data: data ?? {}, errors };\n },\n webhooks: eventHandlersClient,\n servicePlugins: servicePluginsClient,\n };\n}\nfunction findConsistentHeader(response) {\n return (response.headers?.get(X_WIX_CONSISTENT_HEADER) ??\n response.headers?.get(X_WIX_CONSISTENT_HEADER.toLowerCase()));\n}\n","const parseMethod = (method) => {\n switch (method) {\n case 'get':\n case 'GET':\n return 'GET';\n case 'post':\n case 'POST':\n return 'POST';\n case 'put':\n case 'PUT':\n return 'PUT';\n case 'delete':\n case 'DELETE':\n return 'DELETE';\n case 'patch':\n case 'PATCH':\n return 'PATCH';\n case 'head':\n case 'HEAD':\n return 'HEAD';\n case 'options':\n case 'OPTIONS':\n return 'OPTIONS';\n default:\n throw new Error(`Unknown method: ${method}`);\n }\n};\nexport const toHTTPModule = (factory) => (httpClient) => async (payload) => {\n let requestOptions;\n const HTTPFactory = (context) => {\n requestOptions = factory(payload)(context);\n if (requestOptions.url === undefined) {\n throw new Error('Url was not successfully created for this request, please reach out to support channels for assistance.');\n }\n const { method, url, params } = requestOptions;\n return {\n ...requestOptions,\n method: parseMethod(method),\n url,\n data: requestOptions.data,\n params,\n };\n };\n try {\n const response = await httpClient.request(HTTPFactory);\n if (requestOptions === undefined) {\n throw new Error('Request options were not created for this request, please reach out to support channels for assistance.');\n }\n const transformations = Array.isArray(requestOptions.transformResponse)\n ? requestOptions.transformResponse\n : [requestOptions.transformResponse];\n /**\n * Based on Axios implementation:\n * https://github.com/axios/axios/blob/3f53eb6960f05a1f88409c4b731a40de595cb825/lib/core/transformData.js#L22\n */\n let data = response.data;\n transformations.forEach((transform) => {\n if (transform) {\n data = transform(response.data, response.headers);\n }\n });\n return data;\n }\n catch (e) {\n if (typeof e === 'object' &&\n e !== null &&\n 'response' in e &&\n typeof e.response === 'object' &&\n e.response !== null &&\n 'data' in e.response) {\n throw e.response.data;\n }\n throw e;\n }\n};\n/*\n * Because of issues with tree-shaking, we cant really put static parameter on module.\n * We still have check for __isAmbassador for backward compatibility\n */\nexport const isAmbassadorModule = (module) => {\n if (module.__isAmbassador) {\n return true;\n }\n const fn = module();\n return Boolean(fn.__isAmbassador);\n};\n","export const PUBLIC_METADATA_KEY = '__metadata';\nexport const DEFAULT_API_URL = 'www.wixapis.com';\nexport const DEFAULT_EDGE_API_URL = 'edge.wixapis.com';\nexport const FORCE_WRITE_API_URLS = ['/ecom/v1/carts/current'];\n","export class FetchErrorResponse extends Error {\n message;\n response;\n constructor(message, response) {\n super(message);\n this.message = message;\n this.response = response;\n }\n async details() {\n const dataError = await this.response.json();\n return errorBuilder(this.response.status, dataError?.message, dataError?.details, {\n requestId: this.response.headers.get('X-Wix-Request-Id'),\n details: dataError,\n });\n }\n}\nconst errorBuilder = (code, description, details, data) => {\n return {\n details: {\n ...(!details?.validationError && {\n applicationError: {\n description,\n code,\n data,\n },\n }),\n ...details,\n },\n message: description,\n requestId: data?.requestId,\n };\n};\n","// we follow a simplified version of the axios convention\n// https://github.com/axios/axios/blob/649d739288c8e2c55829ac60e2345a0f3439c730/lib/defaults/index.js#L65\nexport const getDefaultContentHeader = (options) => {\n if (options?.method &&\n ['post', 'put', 'patch'].includes(options.method.toLocaleLowerCase()) &&\n options.body) {\n return { 'Content-Type': 'application/json' };\n }\n return {};\n};\nexport const isObject = (val) => val && typeof val === 'object' && !Array.isArray(val);\nexport function parsePublicKeyIfEncoded(publicKey) {\n if (publicKey.includes('\\n') || publicKey.includes('\\r')) {\n // publicKey is multi-line string, can be used as is\n return publicKey.trim();\n }\n else {\n // publicKey is base64 encoded\n return typeof atob !== 'undefined'\n ? atob(publicKey)\n : Buffer.from(publicKey, 'base64').toString('utf-8');\n }\n}\n","export const isHostModule = (val) => val.__type === 'host';\nexport function buildHostModule(val, host) {\n return val.create(host);\n}\n","export const WixBIHeaderName = 'x-wix-bi-gateway';\nexport function biHeaderGenerator(apiMetadata, publicMetadata, environment) {\n return {\n [WixBIHeaderName]: objectToKeyValue({\n environment: `js-sdk${environment ? `-${environment}` : ``}`,\n 'package-name': apiMetadata.packageName ?? publicMetadata?.PACKAGE_NAME,\n 'method-fqn': apiMetadata.methodFqn,\n entity: apiMetadata.entityFqdn,\n }),\n };\n}\nfunction objectToKeyValue(input) {\n return Object.entries(input)\n .filter(([_, value]) => Boolean(value))\n .map(([key, value]) => `${key}=${value}`)\n .join(',');\n}\n","import { WIX_PROTOCOL } from './constants.js';\nexport function alignIfLegacy(url, type) {\n const { protocol } = new URL(url);\n return protocol === `${type}:` ? `${WIX_PROTOCOL}${url}` : url;\n}\nexport function removeUndefinedKeys(obj) {\n return Object.fromEntries(Object.entries(obj).filter(([, value]) => value !== undefined));\n}\nexport function constantCase(input) {\n return split(input)\n .map((part) => part.toLocaleUpperCase())\n .join('_');\n}\nconst SPLIT_LOWER_UPPER_RE = /([\\p{Ll}\\d])(\\p{Lu})/gu;\nconst SPLIT_UPPER_UPPER_RE = /(\\p{Lu})([\\p{Lu}][\\p{Ll}])/gu;\nconst SPLIT_REPLACE_VALUE = '$1\\0$2';\nconst DEFAULT_STRIP_REGEXP = /[^\\p{L}\\d]+/giu;\nexport function split(value) {\n let result = value.trim();\n result = result\n .replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)\n .replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);\n result = result.replace(DEFAULT_STRIP_REGEXP, '\\0');\n let start = 0;\n let end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === '\\0') {\n start++;\n }\n if (start === end) {\n return [];\n }\n while (result.charAt(end - 1) === '\\0') {\n end--;\n }\n return result.slice(start, end).split(/\\0/g);\n}\n","import { constantCase } from './utils.js';\nconst isValidationError = (httpClientError) => 'validationError' in (httpClientError.response?.data?.details ?? {});\nconst isApplicationError = (httpClientError) => 'applicationError' in\n (httpClientError.response?.data?.details ?? {});\nconst isClientError = (httpClientError) => (httpClientError.response?.status ?? -1) >= 400 &&\n (httpClientError.response?.status ?? -1) < 500;\nexport function transformError(httpClientError, pathsToArguments = {\n explicitPathsToArguments: {},\n spreadPathsToArguments: {},\n singleArgumentUnchanged: false,\n}, argumentNames = []) {\n if (typeof httpClientError !== 'object' || httpClientError === null) {\n throw httpClientError;\n }\n if (isValidationError(httpClientError)) {\n return buildValidationError(httpClientError, pathsToArguments, argumentNames);\n }\n if (isApplicationError(httpClientError)) {\n return buildApplicationError(httpClientError);\n }\n if (isClientError(httpClientError)) {\n const status = httpClientError.response?.status;\n const statusText = httpClientError.response?.statusText ?? 'UNKNOWN';\n const message = httpClientError.response?.data?.message ?? statusText;\n const details = {\n applicationError: {\n description: statusText,\n code: constantCase(statusText),\n data: {},\n },\n requestId: httpClientError.requestId,\n };\n return wrapError(httpClientError, {\n message: JSON.stringify({\n message,\n details,\n }, null, 2),\n extraProperties: {\n details,\n status,\n },\n });\n }\n return buildSystemError(httpClientError);\n}\nconst buildValidationError = (httpClientError, pathsToArguments, argumentNames) => {\n const validationErrorResponse = httpClientError.response\n ?.data;\n const requestId = httpClientError.requestId;\n const { fieldViolations } = validationErrorResponse.details.validationError;\n const transformedFieldViolations = violationsWithRenamedFields(pathsToArguments, fieldViolations, argumentNames)?.sort((a, b) => (a.field < b.field ? -1 : 1));\n const message = `INVALID_ARGUMENT: ${transformedFieldViolations\n ?.map(({ field, description }) => `\"${field}\" ${description}`)\n ?.join(', ')}`;\n const details = {\n validationError: { fieldViolations: transformedFieldViolations },\n requestId,\n };\n return wrapError(httpClientError, {\n message: JSON.stringify({ message, details }, null, 2),\n extraProperties: {\n details,\n status: httpClientError.response?.status,\n requestId,\n },\n });\n};\nconst wrapError = (baseError, { message, extraProperties, }) => {\n return Object.assign(baseError, {\n ...extraProperties,\n message,\n });\n};\nconst buildApplicationError = (httpClientError) => {\n const status = httpClientError.response?.status;\n const statusText = httpClientError.response?.statusText ?? 'UNKNOWN';\n const message = httpClientError.response?.data?.message ?? statusText;\n const description = httpClientError.response?.data?.details?.applicationError?.description ??\n statusText;\n const code = httpClientError.response?.data?.details?.applicationError?.code ??\n constantCase(statusText);\n const data = httpClientError.response?.data?.details?.applicationError?.data ?? {};\n const combinedMessage = message === description ? message : `${message}: ${description}`;\n const details = {\n applicationError: {\n description,\n code,\n data,\n },\n requestId: httpClientError.requestId,\n };\n return wrapError(httpClientError, {\n message: JSON.stringify({ message: combinedMessage, details }, null, 2),\n extraProperties: {\n details,\n status,\n requestId: httpClientError.requestId,\n },\n });\n};\nconst buildSystemError = (httpClientError) => {\n const message = httpClientError.requestId\n ? `System error occurred, request-id: ${httpClientError.requestId}`\n : `System error occurred: ${JSON.stringify(httpClientError)}`;\n return wrapError(httpClientError, {\n message,\n extraProperties: {\n requestId: httpClientError.requestId,\n status: httpClientError.response?.status,\n code: constantCase(httpClientError.response?.statusText ?? 'UNKNOWN'),\n ...(!httpClientError.response && {\n runtimeError: httpClientError,\n }),\n },\n });\n};\nconst violationsWithRenamedFields = ({ spreadPathsToArguments, explicitPathsToArguments, singleArgumentUnchanged, }, fieldViolations, argumentNames) => {\n const allPathsToArguments = {\n ...spreadPathsToArguments,\n ...explicitPathsToArguments,\n };\n const allPathsToArgumentsKeys = Object.keys(allPathsToArguments);\n return fieldViolations\n ?.filter((fieldViolation) => {\n // In some cases, the violations error will include both some.nested and some.nested.path,\n // so we'll pick the more specific one if it's covered by the paths in the transformation.\n const containedInAMoreSpecificViolationField = fieldViolations.some((anotherViolation) => anotherViolation.field.length > fieldViolation.field.length &&\n anotherViolation.field.startsWith(fieldViolation.field) &&\n allPathsToArgumentsKeys.includes(anotherViolation.field));\n return !containedInAMoreSpecificViolationField;\n })\n .map((fieldViolation) => {\n // This means we've got some.nested.field in the violation,\n // matched against { some: { nested: { field: $[0].a.b.c } } } in the transformation.\n // some.nested.field is replaced entirely with $[0].a.b.c, with $[0] replaced with the name of argument 0\n const exactMatchArgumentExpression = explicitPathsToArguments[fieldViolation.field];\n if (exactMatchArgumentExpression) {\n return {\n ...fieldViolation,\n field: withRenamedArgument(exactMatchArgumentExpression, argumentNames),\n };\n }\n const longestPartialPathMatch = allPathsToArgumentsKeys\n ?.sort((a, b) => b.length - a.length)\n ?.find((path) => fieldViolation.field.startsWith(path));\n if (longestPartialPathMatch) {\n // This means we've got some.nested.field in the violation,\n // matched against { some: { nested: { *: $[0].a.b.c } } } in the transformation.\n // Only the prefix some.nested is replaced with $[0].a.b.c, with $[0] replaced with the name of argument 0\n // This can also happen in the case where the #wrap function is used.\n const partialMatchArgumentExpression = allPathsToArguments[longestPartialPathMatch];\n if (partialMatchArgumentExpression) {\n return {\n ...fieldViolation,\n field: fieldViolation.field.replace(longestPartialPathMatch, withRenamedArgument(partialMatchArgumentExpression, argumentNames)),\n };\n }\n }\n if (singleArgumentUnchanged) {\n return {\n ...fieldViolation,\n field: `${argumentNames[0]}.${fieldViolation.field}`,\n };\n }\n return fieldViolation;\n });\n};\nconst withRenamedArgument = (fieldValue, argumentNames) => {\n const argIndex = getArgumentIndex(fieldValue);\n if (argIndex !== null && typeof argIndex !== 'undefined') {\n return fieldValue.replace(`$[${argIndex}]`, argumentNames[argIndex]);\n }\n return fieldValue;\n};\nconst getArgumentIndex = (s) => {\n const match = s.match(/\\$\\[(?<argIndex>\\d+)\\]/);\n return match && match.groups && Number(match.groups.argIndex);\n};\n","import { biHeaderGenerator } from './bi/biHeaderGenerator.js';\nimport { DEFAULT_API_URL, DEFAULT_EDGE_API_URL } from './common.js';\nimport { runWithoutContext } from '@wix/sdk-runtime/context';\nimport { transformError } from '@wix/sdk-runtime/transform-error';\nexport function buildRESTDescriptor(origFunc, publicMetadata, boundFetch, errorHandler, wixAPIFetch, getActiveToken, options, hostName, useCDN) {\n return runWithoutContext(() => origFunc({\n request: async (factory) => {\n const requestOptions = factory({\n host: options?.HTTPHost || DEFAULT_API_URL,\n });\n let request = requestOptions;\n if (request.method === 'GET' &&\n request.fallback?.length &&\n (request.params?.toString().length ?? 0) > 4000) {\n request = requestOptions.fallback[0];\n }\n const domain = options?.HTTPHost ?? DEFAULT_API_URL;\n let url = `https://${useCDN ? DEFAULT_EDGE_API_URL : domain}${request.url}`;\n if (request.params && request.params.toString()) {\n url += `?${request.params.toString()}`;\n }\n try {\n const biHeader = biHeaderGenerator(requestOptions, publicMetadata, hostName);\n const requestOptionsInit = {\n method: request.method,\n ...(request.data && {\n body: JSON.stringify(request.data),\n }),\n headers: {\n ...biHeader,\n },\n };\n const res = await boundFetch(url, requestOptionsInit);\n if (res.status !== 200) {\n let dataError = null;\n try {\n dataError = await res.json();\n }\n catch (e) {\n //\n }\n const error = errorBuilder(res.status, dataError?.message, dataError?.details, {\n requestId: res.headers.get('X-Wix-Request-Id'),\n details: dataError,\n });\n const transformedError = transformError(error);\n errorHandler?.handleError(transformedError, {\n requestOptions: {\n url: request.url,\n method: request.method,\n entityFqdn: requestOptions.entityFqdn,\n methodFqn: requestOptions.methodFqn,\n },\n });\n throw error;\n }\n const rawData = await res.json();\n const data = \n // we only transform the response if the optInTransformResponse flag is set\n // this is for backwards compatibility as some users might rely on not transforming the response\n // in older modules. In that case the modules would not have the optInTransformResponse flag set\n request.migrationOptions?.optInTransformResponse &&\n request.transformResponse\n ? Array.isArray(request.transformResponse)\n ? request.transformResponse[0](rawData)\n : request.transformResponse(rawData)\n : rawData;\n return {\n data,\n headers: res.headers,\n status: res.status,\n statusText: res.statusText,\n };\n }\n catch (e) {\n if (e.message?.includes('fetch is not defined')) {\n console.error('Node.js v18+ is required');\n }\n throw e;\n }\n },\n fetchWithAuth: boundFetch,\n wixAPIFetch,\n getActiveToken,\n }));\n}\nclass SDKError extends Error {\n response;\n requestId;\n constructor(params) {\n super();\n this.response = params.response;\n this.requestId = params.requestId;\n }\n}\nconst errorBuilder = (code, description, details, data) => {\n return new SDKError({\n response: {\n data: {\n details: {\n ...(!details?.validationError && {\n applicationError: {\n description,\n code,\n data,\n },\n }),\n ...details,\n },\n message: description,\n },\n status: code,\n },\n requestId: data?.requestId,\n });\n};\n","const DELIMITER = '.';\nexport function set(obj, path, value) {\n if (obj == null) {\n throw new Error('Cannot set value on null or undefined');\n }\n const keys = toPathObject(path);\n let current = obj;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n // Last key → assign value\n if (i === keys.length - 1) {\n current[key] = value;\n break;\n }\n // Create object or array if missing\n const nextKey = keys[i + 1];\n if (!(key in current) || current[key] == null) {\n current[key] = typeof nextKey === 'number' ? [] : {};\n }\n else if (typeof current[key] !== 'object' || current[key] === null) {\n // Overwrite non-object values\n current[key] = typeof nextKey === 'number' ? [] : {};\n }\n current = current[key];\n }\n return obj;\n}\nexport function toPathObject(path) {\n if (Array.isArray(path)) {\n return path;\n }\n return path\n .split(DELIMITER)\n .map((segment) => (isNumericSegment(segment) ? Number(segment) : segment));\n}\nfunction isNumericSegment(segment) {\n return /^\\d+$/.test(segment);\n}\n","import { set, toPathObject } from './object-utils.js';\nexport function unflatten(flatObject) {\n const result = {};\n for (const [flatKey, value] of Object.entries(flatObject)) {\n // Skip prototype pollution keys\n if (isPrototypePollutionKey(flatKey)) {\n continue;\n }\n const path = toPathObject(flatKey);\n set(result, path, value);\n }\n return result;\n}\nfunction isPrototypePollutionKey(key) {\n return key === '__proto__' || key === 'constructor' || key === 'prototype';\n}\n","import { RESTResponseToSDKResponseRenameMap } from '@wix/sdk-runtime/rest-modules';\nimport { unflatten } from './flat-utils.js';\nexport class ModifiedFieldsManipulator {\n BRACKET_PATTERN = /\\[(\\d+)\\]/g;\n NUMERIC_PATTERN = /^\\d+$/;\n ESCAPED_DOT_PATTERN = /\\\\\\./g;\n ESCAPED_LEFT_BRACKET_PATTERN = /\\\\\\[/g;\n ESCAPED_RIGHT_BRACKET_PATTERN = /\\\\\\]/g;\n SPLIT_PATTERN = /\\.|\\[(\\d+)\\]/g;\n DOT_BEFORE_BRACKET_PATTERN = /\\.\\[/g;\n ESCAPED_DOT_PLACEHOLDER = '__DOT__';\n ESCAPED_RIGHT_BRACKET_PLACEHOLDER = '__RB__';\n ESCAPED_LEFT_BRACKET_PLACEHOLDER = '__LB__';\n modifiedFields;\n cleanedModifiedFields;\n constructor(modifiedFields) {\n this.modifiedFields = modifiedFields;\n }\n replaceEscapedCharacters(key) {\n return key\n .replace(this.ESCAPED_DOT_PATTERN, this.ESCAPED_DOT_PLACEHOLDER)\n .replace(this.ESCAPED_LEFT_BRACKET_PATTERN, this.ESCAPED_LEFT_BRACKET_PLACEHOLDER)\n .replace(this.ESCAPED_RIGHT_BRACKET_PATTERN, this.ESCAPED_RIGHT_BRACKET_PLACEHOLDER);\n }\n restoreEscapedCharacters(key) {\n return key\n .replace(this.ESCAPED_DOT_PLACEHOLDER, '\\\\.')\n .replace(this.ESCAPED_RIGHT_BRACKET_PLACEHOLDER, '\\\\]')\n .replace(this.ESCAPED_LEFT_BRACKET_PLACEHOLDER, '\\\\[');\n }\n unflatten() {\n this.cleanedModifiedFields = Object.fromEntries(Object.entries(this.modifiedFields).map(([key, value]) => [\n this.replaceEscapedCharacters(this.bracketToDotNotation(key)),\n value,\n ]));\n return unflatten(this.cleanedModifiedFields);\n }\n flatten(transformedModifiedFields) {\n let result = {};\n for (const originalKey of Object.keys(this.cleanedModifiedFields)) {\n const pathParts = this.splitPath(originalKey);\n const value = this.navigatePath(transformedModifiedFields, pathParts);\n result = { ...result, ...value };\n }\n return Object.fromEntries(Object.entries(result).map(([key, value]) => [\n this.restoreEscapedCharacters(key),\n value,\n ]));\n }\n splitPath(path) {\n const parts = [];\n let lastIndex = 0;\n const matches = Array.from(path.matchAll(this.SPLIT_PATTERN));\n for (const match of matches) {\n if (match.index > lastIndex) {\n parts.push(path.substring(lastIndex, match.index));\n }\n if (match[1]) {\n parts.push(match[1]);\n }\n lastIndex = match.index + match[0].length;\n }\n if (lastIndex < path.length) {\n parts.push(path.substring(lastIndex));\n }\n return parts;\n }\n navigatePath(obj, pathParts) {\n let current = obj;\n const transformedPath = [];\n const handleArray = (part) => {\n if (!Array.isArray(current)) {\n throw new Error(`Expected array at path ${this.buildPathString(transformedPath)}, but got ${typeof current}`);\n }\n transformedPath.push(`[${part}]`);\n current = current[parseInt(part, 10)];\n };\n const handleTransformedKeyName = (part, currentObj) => {\n const transformedKey = part in RESTResponseToSDKResponseRenameMap\n ? RESTResponseToSDKResponseRenameMap[part]\n : undefined;\n if (transformedKey && transformedKey in currentObj) {\n transformedPath.push(transformedKey);\n current = currentObj[transformedKey];\n return;\n }\n const camelCaseKey = camelCase(part);\n if (camelCaseKey && camelCaseKey in currentObj) {\n transformedPath.push(camelCaseKey);\n current = currentObj[camelCaseKey];\n return;\n }\n throw new Error(`Cannot find key '${part}' or its transformations at path ${this.buildPathString(transformedPath)}`);\n };\n const handleObject = (part, currentObj) => {\n transformedPath.push(part);\n current = currentObj[part];\n return;\n };\n for (const part of pathParts) {\n if (this.NUMERIC_PATTERN.test(part)) {\n handleArray(part);\n continue;\n }\n if (current === null || typeof current !== 'object') {\n throw new Error(`Cannot access property '${part}' on ${typeof current} at path ${this.buildPathString(transformedPath)}`);\n }\n const currentObj = current;\n if (part in current) {\n handleObject(part, currentObj);\n continue;\n }\n handleTransformedKeyName(part, currentObj);\n }\n return { [this.buildPathString(transformedPath)]: current };\n }\n buildPathString(pathParts) {\n return pathParts.join('.').replace(this.DOT_BEFORE_BRACKET_PATTERN, '[');\n }\n bracketToDotNotation(key) {\n return key.replace(this.BRACKET_PATTERN, (match, number, offset) => {\n if (offset > 0 && key[offset - 1] === '\\\\') {\n return match;\n }\n return '.' + number;\n });\n }\n}\n/**\n * Transforms an envelope while preserving the structure of modifiedFields.\n *\n * Modified fields come as flattened objects, while transformations are applied to the nested object (e.g. \"a.b.c\" -> { a: { b: { c: 'value' } } }).\n * This function handles the transformation of envelopes that contain flattened modifiedFields.\n * It unflattens the modifiedFields, applies the transformation function, and then flattens\n * the modifiedFields back to their original format while preserving the transformation.\n * @param envelope - The envelope object containing flattened modifiedFields\n * @param transformFromRESTFn - Function to transform the envelope from REST format to SDK format\n * @returns The transformed envelope with flattened modifiedFields, or null if transformation fails\n */\nexport function attemptTransformationWithModifiedFields(envelope, transformFromRESTFn) {\n const modifiedFields = envelope?.modifiedFields;\n if (!modifiedFields) {\n return null;\n }\n const unflattenedResult = attemptUnflatten(modifiedFields);\n if (!unflattenedResult) {\n return null;\n }\n const { unflattenedModifiedFields, modifiedFieldsManipulator } = unflattenedResult;\n envelope = {\n ...envelope,\n modifiedFields: unflattenedModifiedFields,\n };\n const transformedEnvelope = transformFromRESTFn(envelope);\n const transformedModifiedFields = transformedEnvelope\n ?.modifiedFields;\n if (!transformedModifiedFields) {\n return null;\n }\n const flattened = attemptFlatten(transformedModifiedFields, modifiedFieldsManipulator);\n if (flattened !== null) {\n transformedEnvelope.modifiedFields = flattened;\n return transformedEnvelope;\n }\n return null;\n}\nfunction attemptUnflatten(modifiedFields) {\n if (typeof modifiedFields === 'object' &&\n modifiedFields !== null &&\n !Array.isArray(modifiedFields)) {\n try {\n const modifiedFieldsManipulator = new ModifiedFieldsManipulator(modifiedFields);\n const unflattened = modifiedFieldsManipulator.unflatten();\n return {\n unflattenedModifiedFields: unflattened,\n modifiedFieldsManipulator,\n };\n }\n catch (error) {\n return null;\n }\n }\n return null;\n}\nfunction attemptFlatten(transformedModifiedFields, modifiedFieldsManipulator) {\n if (typeof transformedModifiedFields === 'object' &&\n transformedModifiedFields !== null &&\n !Array.isArray(transformedModifiedFields)) {\n try {\n const flattened = modifiedFieldsManipulator.flatten(transformedModifiedFields);\n return flattened;\n }\n catch (error) {\n return null;\n }\n }\n return null;\n}\n// Simple camelCase implementation to avoid lodash (which uses `new Function()` internally\n// and breaks Cloudflare Workers/Edge runtimes)\nfunction camelCase(str) {\n return str\n .replace(/[-_\\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''))\n .replace(/^./, (c) => c.toLowerCase());\n}\n","// Inlined from https://github.com/ai/nanoevents/blob/main/index.js\n/**\n * Create event emitter.\n *\n * ```js\n * import { createNanoEvents } from 'nanoevents'\n *\n * class Ticker {\n * constructor() {\n * this.emitter = createNanoEvents()\n * }\n * on(...args) {\n * return this.emitter.on(...args)\n * }\n * tick() {\n * this.emitter.emit('tick')\n * }\n * }\n * ```\n * @returns Event emitter.\n */\nexport function createNanoEvents() {\n return {\n emit(event, ...args) {\n for (let i = 0, callbacks = this.events[event] || [], length = callbacks.length; i < length; i++) {\n callbacks[i](...args);\n }\n },\n events: {},\n on(event, cb) {\n (this.events[event] ||= []).push(cb);\n return () => {\n this.events[event] = this.events[event]?.filter((i) => cb !== i);\n };\n },\n };\n}\n","import { EventDefinition, } from '@wix/sdk-types';\nimport { attemptTransformationWithModifiedFields } from './modified-fields-manipulator.js';\nimport { createNanoEvents } from './nanoevents.js';\nexport const isEventHandlerModule = (val) => val.__type === 'event-definition';\nexport function buildEventDefinition(eventDefinition, registerHandler) {\n return (handler) => {\n registerHandler(eventDefinition, handler);\n };\n}\nfunction runHandler(eventDefinition, handler, payload, baseEventMetadata) {\n let envelope;\n if (eventDefinition.isDomainEvent) {\n const domainEventPayload = payload;\n const { deletedEvent, actionEvent, createdEvent, updatedEvent, ...domainEventMetadata } = domainEventPayload;\n const metadata = {\n ...baseEventMetadata,\n ...domainEventMetadata,\n };\n if (deletedEvent) {\n if (deletedEvent?.deletedEntity) {\n envelope = {\n entity: deletedEvent?.deletedEntity,\n metadata,\n };\n }\n else {\n envelope = { metadata };\n }\n }\n else if (actionEvent) {\n envelope = {\n data: actionEvent.body,\n metadata,\n };\n }\n else if (updatedEvent) {\n envelope = {\n entity: updatedEvent.currentEntity,\n metadata,\n ...(updatedEvent.modifiedFields\n ? { modifiedFields: updatedEvent.modifiedFields }\n : {}),\n };\n }\n else {\n // createdEvent\n envelope = {\n entity: createdEvent?.entity,\n metadata,\n };\n }\n }\n else {\n envelope = {\n data: payload,\n metadata: baseEventMetadata,\n };\n }\n const transformFromRESTFn = eventDefinition.transformations ?? ((x) => x);\n let originalEnvelope = envelope;\n const envelopeAny = envelope;\n if (envelopeAny.modifiedFields) {\n const modifiedFieldsValue = envelopeAny.modifiedFields;\n if (typeof modifiedFieldsValue === 'object' &&\n modifiedFieldsValue !== null &&\n !Array.isArray(modifiedFieldsValue)) {\n originalEnvelope = structuredClone(envelope);\n const transformedEnvelope = attemptTransformationWithModifiedFields(envelopeAny, transformFromRESTFn);\n if (transformedEnvelope) {\n return handler(transformedEnvelope);\n }\n }\n }\n return handler(transformFromRESTFn(originalEnvelope));\n}\nexport function eventHandlersModules(getAuthStrategy) {\n const eventHandlers = new Map();\n const webhooksEmitter = createNanoEvents();\n const client = {\n ...webhooksEmitter,\n getRegisteredEvents: () => eventHandlers,\n async process(jwt, opts = {\n expectedEvents: [],\n }) {\n const { eventType, identity, instanceId, payload, accountInfo } = await this.parseJWT(jwt);\n const allExpectedEvents = [\n ...opts.expectedEvents,\n ...Array.from(eventHandlers.keys()).map((type) => ({ type })),\n ];\n if (allExpectedEvents.length > 0 &&\n !allExpectedEvents.some(({ type }) => type === eventType)) {\n throw new Error(`Unexpected event type: ${eventType}. Expected one of: ${allExpectedEvents\n .map((x) => x.type)\n .join(', ')}`);\n }\n const handlers = eventHandlers.get(eventType) ?? [];\n await Promise.all(handlers.map(({ eventDefinition, handler }) => runHandler(eventDefinition, handler, payload, {\n instanceId,\n identity,\n accountInfo,\n })));\n return {\n instanceId,\n eventType,\n payload,\n identity,\n accountInfo,\n };\n },\n async processRequest(request, opts) {\n const body = await request.text();\n return this.process(body, opts);\n },\n async parseJWT(jwt) {\n const authStrategy = getAuthStrategy();\n if (!authStrategy.decodeJWT) {\n throw new Error('decodeJWT is not supported by the authentication strategy');\n }\n const { decoded, valid } = await authStrategy.decodeJWT(jwt);\n if (!valid) {\n throw new Error('JWT is not valid');\n }\n if (typeof decoded.data !== 'string') {\n throw new Error(`Unexpected type of JWT data: expected string, got ${typeof decoded.data}`);\n }\n const parsedDecoded = JSON.parse(decoded.data);\n const eventType = parsedDecoded.eventType;\n const accountInfo = parsedDecoded.accountInfo;\n const instanceId = parsedDecoded.instanceId;\n const identity = parsedDecoded.identity\n ? JSON.parse(parsedDecoded.identity)\n : undefined;\n const payload = JSON.parse(parsedDecoded.data);\n return {\n instanceId,\n eventType,\n payload,\n identity,\n accountInfo,\n };\n },\n async parseRequest(request) {\n const jwt = await request.text();\n return this.parseJWT(jwt);\n },\n async executeHandlers(event) {\n const allExpectedEvents = Array.from(eventHandlers.keys()).map((type) => ({ type }));\n if (allExpectedEvents.length > 0 &&\n !allExpectedEvents.some(({ type }) => type === event.eventType)) {\n throw new Error(`Unexpected event type: ${event.eventType}. Expected one of: ${allExpectedEvents\n .map((x) => x.type)\n .join(', ')}`);\n }\n const handlers = eventHandlers.get(event.eventType) ?? [];\n await Promise.all(handlers.map(({ eventDefinition, handler }) => runHandler(eventDefinition, handler, event.payload, {\n instanceId: event.instanceId,\n identity: event.identity,\n })));\n },\n apps: {\n AppInstalled: EventDefinition('AppInstalled')(),\n AppRemoved: EventDefinition('AppRemoved')(),\n },\n };\n return {\n initModule(eventDefinition) {\n return (handler) => {\n const handlers = eventHandlers.get(eventDefinition.type) ?? [];\n handlers.push({ eventDefinition, handler });\n eventHandlers.set(eventDefinition.type, handlers);\n webhooksEmitter.emit('registered', eventDefinition);\n };\n },\n client,\n };\n}\n","import { createNanoEvents } from './nanoevents.js';\nexport const isServicePluginModule = (val) => val.__type === 'service-plugin-definition';\nexport function servicePluginsModules(getAuthStrategy) {\n const servicePluginsImplementations = new Map();\n const servicePluginsEmitter = createNanoEvents();\n const client = {\n ...servicePluginsEmitter,\n getRegisteredServicePlugins: () => servicePluginsImplementations,\n async parseJWT(jwt) {\n const authStrategy = getAuthStrategy();\n if (!authStrategy.decodeJWT) {\n throw new Error('decodeJWT is not supported by the authentication strategy');\n }\n const { decoded, valid } = await authStrategy.decodeJWT(jwt, true);\n if (!valid) {\n throw new Error('JWT is not valid');\n }\n if (typeof decoded.data !== 'object' ||\n decoded.data === null ||\n !('metadata' in decoded.data) ||\n typeof decoded.data.metadata !== 'object' ||\n decoded.data.metadata === null ||\n !('appExtensionType' in decoded.data.metadata) ||\n typeof decoded.data.metadata.appExtensionType !== 'string') {\n throw new Error('Unexpected JWT data: expected object with metadata.appExtensionType string');\n }\n return decoded.data;\n },\n async process(request) {\n const servicePluginRequest = await this.parseJWT(request.body);\n return this.executeHandler(servicePluginRequest, request.url);\n },\n async parseRequest(request) {\n const body = await request.text();\n return this.parseJWT(body);\n },\n async processRequest(request) {\n const url = request.url;\n const body = await request.text();\n try {\n const implMethodResult = await this.process({ url, body });\n return Response.json(implMethodResult);\n }\n catch (err) {\n if (err.errorType === 'SPI' && err.applicationCode && err.httpCode) {\n return Response.json({ applicationError: { code: err.applicationCode, data: err.data } }, { status: err.httpCode });\n }\n throw err;\n }\n },\n async executeHandler(servicePluginRequest, url) {\n const componentType = servicePluginRequest.metadata.appExtensionType.toLowerCase();\n const implementations = servicePluginsImplementations.get(componentType) ?? [];\n if (implementations.length === 0) {\n throw new Error(`No service plugin implementations found for component type ${componentType}`);\n }\n else if (implementations.length > 1) {\n throw new Error(`Multiple service plugin implementations found for component type ${componentType}. This is currently not supported`);\n }\n const { implementation: impl, servicePluginDefinition } = implementations[0];\n const method = servicePluginDefinition.methods.find((m) => url.endsWith(m.primaryHttpMappingPath));\n if (!method) {\n throw new Error('Unexpect request: request url did not match any method: ' + url);\n }\n const implMethod = impl[method.name];\n if (!implMethod) {\n throw new Error(`Got request for service plugin method ${method.name} but no implementation was provided. Available methods: ${Object.keys(impl).join(', ')}`);\n }\n return method.transformations.toREST(await implMethod(method.transformations.fromREST(servicePluginRequest)));\n },\n };\n return {\n initModule(servicePluginDefinition) {\n return (implementation) => {\n const implementations = servicePluginsImplementations.get(servicePluginDefinition.componentType.toLowerCase()) ?? [];\n implementations.push({ servicePluginDefinition, implementation });\n servicePluginsImplementations.set(servicePluginDefinition.componentType.toLowerCase(), implementations);\n servicePluginsEmitter.emit('registered', servicePluginDefinition);\n };\n },\n client,\n };\n}\n"],"mappings":"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","names":["wixContext","parseMethod","method","toHTTPModule","factory","httpClient","payload","requestOptions","HTTPFactory","context","url","params","response","transformations","data","transform","e","isAmbassadorModule","module","PUBLIC_METADATA_KEY","DEFAULT_API_URL","DEFAULT_EDGE_API_URL","FetchErrorResponse","message","response","__publicField","dataError","errorBuilder","code","description","details","data","getDefaultContentHeader","options","isObject","val","isHostModule","val","buildHostModule","host","WixBIHeaderName","biHeaderGenerator","apiMetadata","publicMetadata","environment","objectToKeyValue","input","_","value","key","constantCase","input","split","part","SPLIT_LOWER_UPPER_RE","SPLIT_UPPER_UPPER_RE","SPLIT_REPLACE_VALUE","DEFAULT_STRIP_REGEXP","value","result","start","end","isValidationError","httpClientError","isApplicationError","isClientError","transformError","pathsToArguments","argumentNames","buildValidationError","buildApplicationError","status","statusText","message","details","constantCase","wrapError","buildSystemError","validationErrorResponse","requestId","fieldViolations","transformedFieldViolations","violationsWithRenamedFields","a","b","field","description","baseError","extraProperties","code","data","combinedMessage","spreadPathsToArguments","explicitPathsToArguments","singleArgumentUnchanged","allPathsToArguments","allPathsToArgumentsKeys","fieldViolation","anotherViolation","exactMatchArgumentExpression","withRenamedArgument","longestPartialPathMatch","path","partialMatchArgumentExpression","fieldValue","argIndex","getArgumentIndex","s","match","buildRESTDescriptor","origFunc","publicMetadata","boundFetch","errorHandler","wixAPIFetch","getActiveToken","options","hostName","useCDN","runWithoutContext","factory","requestOptions","DEFAULT_API_URL","request","domain","url","DEFAULT_EDGE_API_URL","biHeader","biHeaderGenerator","requestOptionsInit","res","dataError","error","errorBuilder","transformedError","transformError","rawData","e","SDKError","params","__publicField","code","description","details","data","DELIMITER","set","obj","path","value","keys","toPathObject","current","i","key","nextKey","segment","isNumericSegment","unflatten","flatObject","result","flatKey","value","isPrototypePollutionKey","path","toPathObject","set","key","ModifiedFieldsManipulator","modifiedFields","__publicField","key","value","unflatten","transformedModifiedFields","result","originalKey","pathParts","path","parts","lastIndex","matches","match","obj","current","transformedPath","handleArray","part","handleTransformedKeyName","currentObj","transformedKey","RESTResponseToSDKResponseRenameMap","camelCaseKey","camelCase","handleObject","number","offset","attemptTransformationWithModifiedFields","envelope","transformFromRESTFn","unflattenedResult","attemptUnflatten","unflattenedModifiedFields","modifiedFieldsManipulator","transformedEnvelope","flattened","attemptFlatten","str","_","c","createNanoEvents","event","args","i","callbacks","length","cb","isEventHandlerModule","val","runHandler","eventDefinition","handler","payload","baseEventMetadata","envelope","domainEventPayload","deletedEvent","actionEvent","createdEvent","updatedEvent","domainEventMetadata","metadata","transformFromRESTFn","x","originalEnvelope","envelopeAny","modifiedFieldsValue","transformedEnvelope","attemptTransformationWithModifiedFields","eventHandlersModules","getAuthStrategy","eventHandlers","webhooksEmitter","createNanoEvents","client","jwt","opts","eventType","identity","instanceId","accountInfo","allExpectedEvents","type","handlers","request","body","authStrategy","decoded","valid","parsedDecoded","event","EventDefinition","isServicePluginModule","val","servicePluginsModules","getAuthStrategy","servicePluginsImplementations","servicePluginsEmitter","createNanoEvents","client","jwt","authStrategy","decoded","valid","request","servicePluginRequest","body","url","implMethodResult","err","componentType","implementations","impl","servicePluginDefinition","method","m","implMethod","implementation","X_WIX_CONSISTENT_HEADER","createClient","config","_headers","defaultStrategy","_","auth","getAuthStrategy","boundGetAuthHeaders","fetchWithAuth","urlOrRequest","requestInit","authHeaders","headers","errorHandler","response","consistentHeader","findConsistentHeader","k","v","e","servicePluginsClient","initServicePluginModule","servicePluginsModules","eventHandlersClient","initEventHandlerModule","eventHandlersModules","boundFetch","url","options","defaultContentTypeHeader","getDefaultContentHeader","use","modules","metadata","isEventHandlerModule","isServicePluginModule","isHostModule","buildHostModule","SERVICE_PLUGIN_ERROR_TYPE","apiBaseUrl","DEFAULT_API_URL","shouldUseCDN","buildRESTDescriptor","runWithoutContext","isAmbassadorModule","toHTTPModule","relativeUrl","fetchOptions","finalUrl","isObject","key","value","PUBLIC_METADATA_KEY","setHeaders","authStrategy","originalGetAuthHeaders","contextType","opts","wixContext","query","variables","res","FetchErrorResponse","data","errors"]}
@@ -1,2 +1,2 @@
1
- import{a as E,c as _}from"./chunk-SBZEOPXX.js";var v={};_(v,{EventDefinition:()=>S,SERVICE_PLUGIN_ERROR_TYPE:()=>O,SORT_CAPABILITIES:()=>f,SORT_DIRECTIONS:()=>n,ServicePluginDefinition:()=>o});function S(i,e=!1,r=t=>t){return()=>({__type:"event-definition",type:i,isDomainEvent:e,transformations:r})}function o(i,e){return{__type:"service-plugin-definition",componentType:i,methods:e}}var O,n,f,C=E(()=>{"use strict";O="wix_spi_error",n={ASC:"ASC",DESC:"DESC"},f={...n,BOTH:"BOTH",NONE:"NONE"}});export{S as a,O as b,v as c,C as d};
2
- //# sourceMappingURL=chunk-UTEFPCPF.js.map
1
+ import{a as E,c as _}from"./chunk-SBZEOPXX.js";var v={};_(v,{EventDefinition:()=>S,SERVICE_PLUGIN_ERROR_TYPE:()=>O,SORT_CAPABILITIES:()=>f,SORT_DIRECTIONS:()=>n,ServicePluginDefinition:()=>o});function S(i,e=!1,r=t=>t){return()=>({__type:"event-definition",type:i,isDomainEvent:e,transformations:r})}function o(i,e){return{__type:"service-plugin-definition",componentType:i,methods:e}}var O,n,f,C=E(()=>{"use strict";O="wix_spi_error",n={ASC:"ASC",DESC:"DESC"},f={...n,BOTH:"BOTH",NONE:"NONE"}});export{v as a,C as b};
2
+ //# sourceMappingURL=chunk-KXCY2KWZ.js.map
@@ -1,2 +1,2 @@
1
- import{a as Q}from"./chunk-EZGPNUD5.js";import{a as G}from"./chunk-QSTEFEOT.js";import"./chunk-RSZB4TBC.js";import"./chunk-UTEFPCPF.js";import"./chunk-SBZEOPXX.js";function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},A.apply(null,arguments)}import Be,{useEffect as Ke,useState as _e}from"react";import{wixContext as g}from"@wix/sdk-context";function X(){let e=typeof $wixContext<"u"&&$wixContext.initWixModules?$wixContext.initWixModules:typeof globalThis.__wix_context__<"u"&&globalThis.__wix_context__.initWixModules?globalThis.__wix_context__.initWixModules:void 0;if(e)return{initWixModules(r,o){return O(()=>e(r,o))},fetchWithAuth(){throw new Error("fetchWithAuth is not available in this context")},graphql(){throw new Error("graphql is not available in this context")}};let t=typeof $wixContext<"u"?$wixContext.client:typeof g.client<"u"?g.client:typeof globalThis.__wix_context__<"u"?globalThis.__wix_context__.client:void 0,n=typeof $wixContext<"u"?$wixContext.elevatedClient:typeof g.elevatedClient<"u"?g.elevatedClient:typeof globalThis.__wix_context__<"u"?globalThis.__wix_context__.elevatedClient:void 0;if(!(!t&&!n))return{initWixModules(r,o){if(o){if(!n)throw new Error("An elevated client is required to use elevated modules. Make sure to initialize the Wix context with an elevated client before using elevated SDK modules");return O(()=>n.use(r))}if(!t)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return O(()=>t.use(r))},fetchWithAuth:(r,o)=>{if(!t)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return t.fetchWithAuth(r,o)},getAuth(){if(!t)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return t.auth},async graphql(r,o,s){if(!t)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return t.graphql(r,o,s)}}}function O(e){let t=globalThis.__wix_context__,n={client:g.client,elevatedClient:g.elevatedClient},r;globalThis.__wix_context__=void 0,g.client=void 0,g.elevatedClient=void 0,typeof $wixContext<"u"&&(r={client:$wixContext?.client,elevatedClient:$wixContext?.elevatedClient},delete $wixContext.client,delete $wixContext.elevatedClient);try{return e()}finally{globalThis.__wix_context__=t,g.client=n.client,g.elevatedClient=n.elevatedClient,typeof $wixContext<"u"&&($wixContext.client=r.client,$wixContext.elevatedClient=r.elevatedClient)}}function Y(e,t){return{...e,...Object.fromEntries(t.map(n=>[n,(...r)=>{let o=X();if(!o)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return o.initWixModules(e)[n].apply(void 0,r)}]))}}function Z(e){return Y({__type:"host",create:t=>Object.entries(e).reduce((n,[r,o])=>({...n,[r]:o(t)}),{})},Object.keys(e))}function b(e){"@babel/helpers - typeof";return b=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(e)}function ee(e,t){if(b(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(b(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function te(e){var t=ee(e,"string");return b(t)=="symbol"?t:t+""}function ne(e,t,n){return(t=te(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=class extends Error{constructor(t){let{message:n,code:r}=t;super(n),ne(this,"code",void 0),this.message=n,this.code=r}};var re=()=>{let e=a=>{let{channel:i}=a;return function(){let f=i.showToast(...arguments);return{remove:()=>Promise.resolve(f).then(x=>x.remove())}}},t=a=>{let{channel:i}=a;return function(){let f=i.observeState(...arguments);return{disconnect:()=>Promise.resolve(f).then(x=>x.disconnect())}}};return{showToast:e,observeState:t,navigate:a=>{let{channel:i}=a;return function(){return i.navigate(...arguments)}},navigateBack:a=>{let{channel:i}=a;return()=>i.navigateBack()},openModal:a=>{let{channel:i}=a;return(f,m)=>{let[x,k]=typeof f=="string"?[f,m]:[f.modalId,f.params],C=i.openModal(x,k);return{modalClosed:Promise.resolve(C).then(w=>w.modalClosed)}}},closeModal:a=>{let{channel:i}=a;return f=>{if(f===void 0)return i.closeModal();let m=JSON.parse(JSON.stringify(f));return i.closeModal(m)}},getAccessToken:a=>{let{channel:i}=a;return()=>i.getAccessToken()},getPageUrl:a=>{let{channel:i}=a;return function(){return i.getPageUrl(...arguments)}},openMediaManager:a=>{let{channel:i}=a;return function(){return i.openMediaManager(...arguments)}},addSitePlugin:a=>{let{channel:i}=a;return(f,m)=>{let x="802c76e4-b381-4bb3-9152-96acabbf3194",k=m?.placement||{},C=i.openModal(x,{...k,placementsSlotId:m?.slotId,pluginId:f,action:"populate"});return Promise.resolve(C).then(w=>w.modalClosed).then(w=>{if(w?.type===void 0)throw new E({message:"Aborted by user",code:3006});if(w?.type==="ERROR")throw new E(w.data.error)})}},onBeforeUnload:a=>{let{channel:i}=a;return function(){return i.onBeforeUnload(...arguments)}},setPageTitle:a=>{let{channel:i}=a;return f=>i.setPageTitle(f)},getLanguage:a=>{let i=null;return async()=>{var f;if(i)return i;let m=null;return i=await new Promise(x=>{m=t(a)((k,C)=>{x(C.language)})}),(f=m)==null||f.disconnect(),i}},requestFeedback:a=>{let{channel:i}=a;return function(){return i.requestFeedback(...arguments)}},onLayerStateChange:a=>{let{channel:i}=a;return function(){let f=i.onLayerStateChange(...arguments);return{remove:()=>Promise.resolve(f).then(x=>x.remove())}}},installApp:a=>{let{channel:i}=a;return i.installApp},getSiteInfo:a=>{let{channel:i}=a;return i.getSiteInfo},getWidget:a=>{let{channel:i}=a;return function(){if("getWidget"in i)return i.getWidget(...arguments);throw new Error("Unsupported")}},getDashboardPlugins:a=>{let{channel:i}=a;return function(){if("getDashboardPlugins"in i)return i.getDashboardPlugins(...arguments);throw new Error("Unsupported")}},getDashboardMenuPlugins:a=>{let{channel:i}=a;return function(){if("getDashboardMenuPlugins"in i)return i.getDashboardMenuPlugins(...arguments);throw new Error("Unsupported")}},createStore:a=>{let{channel:i}=a;if(i.createStore)return i.createStore},getStore:a=>{let{channel:i}=a;if(i.getStore)return i.getStore}}};var oe=e=>{let{createHost:t}=e,n=re();return{...Z(n),host:t,auth:()=>({getAuthHeaders:async r=>({headers:{Authorization:await n.getAccessToken(r)()}})})}};var se=Symbol("Comlink.proxy"),Pe=Symbol("Comlink.endpoint"),I=Symbol("Comlink.releaseProxy"),U=Symbol("Comlink.thrown"),ae=e=>typeof e=="object"&&e!==null||typeof e=="function",Ce={canHandle:e=>ae(e)&&e[se],serialize(e){let{port1:t,port2:n}=new MessageChannel;return R(e,t),[n,[n]]},deserialize(e){return e.start(),L(e)}},Ee={canHandle:e=>ae(e)&&U in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},le=new Map([["proxy",Ce],["throw",Ee]]);function R(e,t=self){t.addEventListener("message",function n(r){if(!r||!r.data)return;let{id:o,type:s,path:u}=Object.assign({path:[]},r.data),l=(r.data.argumentList||[]).map(v),c;try{let d=u.slice(0,-1).reduce((p,y)=>p[y],e),h=u.reduce((p,y)=>p[y],e);switch(s){case 0:c=h;break;case 1:d[u.slice(-1)[0]]=v(r.data.value),c=!0;break;case 2:c=h.apply(d,l);break;case 3:{let p=new h(...l);c=W(p)}break;case 4:{let{port1:p,port2:y}=new MessageChannel;R(e,y),c=Ae(p,[p])}break;case 5:c=void 0;break}}catch(d){c={value:d,[U]:0}}Promise.resolve(c).catch(d=>({value:d,[U]:0})).then(d=>{let[h,p]=B(d);t.postMessage(Object.assign(Object.assign({},h),{id:o}),p),s===5&&(t.removeEventListener("message",n),ue(t))})}),t.start&&t.start()}function We(e){return e.constructor.name==="MessagePort"}function ue(e){We(e)&&e.close()}function L(e,t){return H(e,[],t)}function T(e){if(e)throw new Error("Proxy has been released and is not useable")}function H(e,t=[],n=function(){}){let r=!1,o=new Proxy(n,{get(s,u){if(T(r),u===I)return()=>S(e,{type:5,path:t.map(l=>l.toString())}).then(()=>{ue(e),r=!0});if(u==="then"){if(t.length===0)return{then:()=>o};let l=S(e,{type:0,path:t.map(c=>c.toString())}).then(v);return l.then.bind(l)}return H(e,[...t,u])},set(s,u,l){T(r);let[c,d]=B(l);return S(e,{type:1,path:[...t,u].map(h=>h.toString()),value:c},d).then(v)},apply(s,u,l){T(r);let c=t[t.length-1];if(c===Pe)return S(e,{type:4}).then(v);if(c==="bind")return H(e,t.slice(0,-1));let[d,h]=ie(l);return S(e,{type:2,path:t.map(p=>p.toString()),argumentList:d},h).then(v)},construct(s,u){T(r);let[l,c]=ie(u);return S(e,{type:3,path:t.map(d=>d.toString()),argumentList:l},c).then(v)}});return o}function ke(e){return Array.prototype.concat.apply([],e)}function ie(e){let t=e.map(B);return[t.map(n=>n[0]),ke(t.map(n=>n[1]))]}var ce=new WeakMap;function Ae(e,t){return ce.set(e,t),e}function W(e){return Object.assign(e,{[se]:!0})}function B(e){for(let[t,n]of le)if(n.canHandle(e)){let[r,o]=n.serialize(e);return[{type:3,name:t,value:r},o]}return[{type:0,value:e},ce.get(e)||[]]}function v(e){switch(e.type){case 3:return le.get(e.name).deserialize(e.value);case 0:return e.value}}function S(e,t,n){return new Promise(r=>{let o=Te();e.addEventListener("message",function s(u){!u.data||!u.data.id||u.data.id!==o||(e.removeEventListener("message",s),r(u.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),n)})}function Te(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var K="__proxyCallbackId__wixSDK__",j="__proxyPromiseId__wixSDK__",fe=e=>ze(e,t=>async function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];let[s,u]=$(r),l=await t(W(s),u);return pe(l)});var De=async e=>{let[t,n]=$(await e);return W({proxies:t,clonables:n})},pe=async e=>z(e?.proxies,await e?.clonables),$=e=>{let t=(o,s)=>{if(he(s)){let u=de();return o.promises[u]=s,{[j]:u}}if(Oe(s)){let u=de();return o.callbacks[u]=(l,c)=>{let d=z(l,c),h=s(...d);return De(h)},{[K]:u}}return Array.isArray(s)?s.map(u=>t(o,u)):D(s)?me(s,u=>t(o,u)):s},n={promises:{},callbacks:{}},r=t(n,e);return[n,r]},z=(e,t)=>{if(Array.isArray(t))return t.map(n=>z(e,n));if(D(t)&&t.hasOwnProperty(j)){let n=t[j];return e.promises[n]}if(D(t)&&t.hasOwnProperty(K)){let n=t[K];return async function(){for(var r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];let[u,l]=$(o),c=await e.callbacks[n](W(u),l);return pe(c)}}return D(t)?me(t,n=>z(e,n)):t},ze=(e,t)=>new Proxy(e,{get(n,r){return n[r]?t(n[r]):()=>{throw new Error(`Serialization error occurred while accessing ${r} property of ${n}`)}}}),he=e=>e instanceof Promise,D=e=>e&&typeof e=="object"&&!he(e),Oe=e=>typeof e=="function",me=(e,t)=>{let n=r=>{let[o,s]=r;return[o,t(s)]};return Object.fromEntries(Object.entries(e).map(n))},de=(()=>{let e=0;return()=>++e})();var Ue="wix-sdk-bo-hello-handshake",xe=e=>{let{postMessage:t,origin:n}=e,{port1:r,port2:o}=new MessageChannel;t({code:Ue,version:"1.0.0",port:o},n,[o]);let l=fe(L(r));return{channel:l,close:()=>l[I]()}};var ge=(e,t)=>{let n=()=>e.updateHeight(t.offsetHeight),r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()};var He=["https://manage.wix.com","https://manage.editorx.com"],Ie=new Set(He),we=e=>Ie.has(e);var ye=e=>{let t=new EventTarget,n=typeof window>"u",r=l=>{t.dispatchEvent(new CustomEvent("beforeunload",{cancelable:!0}))||(l.preventDefault(),l.returnValue=!0)},o=e.onBeforeUnload(r),s=()=>{n||window.removeEventListener("beforeunload",r),o.then(l=>{let{remove:c}=l;return c()})};return n||(window.addEventListener("beforeunload",r),window.addEventListener("unload",s)),{onBeforeUnload:l=>(t.addEventListener("beforeunload",l),{remove:()=>{t.removeEventListener("beforeunload",l)}}),clearBeforeUnloadHandler:s}};function Re(e){if(e)try{return JSON.parse(decodeURIComponent(e))}catch(t){console.warn('Failed to parse "essentials" query parameter. Make sure to run the code inside a supported Wix App extension.',t);return}}function be(e){return e.has("essentials")?Re(e.get("essentials")):void 0}var ve=e=>t=>{let{message:n,action:r,requestId:o}=t;n&&e.showToast({type:"error",details:o!=null?{requestId:o}:void 0,message:n,action:r&&{...r,removeToastOnClick:!0,uiType:"link"}})};var Me=function(e){e===void 0&&(e={});let t=e.fullUrl&&new URL(e.fullUrl).search||typeof window<"u"&&window.location.search||"",n=new URLSearchParams(t),r=e.origin||n.get("origin")||"",o=e.postMessage||window.parent.postMessage.bind(window.parent);if(!we(r))throw new Error("Wix Dashboard SDK: Unable to establish a connection with the Wix dashboard. Please ensure that you are running your app within the Wix dashboard.");let{channel:s,close:u}=xe({postMessage:o,origin:r}),l=[u];if(e.autoHeightUpdate===void 0||e.autoHeightUpdate){let M=e.autoHeightElement||document.documentElement,_=ge(s,M);l.push(()=>_())}let{onBeforeUnload:c,clearBeforeUnloadHandler:d}=ye(s);l.push(d);let h=Le(n.get("siteInfo")||"","siteInfo"),p=()=>h,y=new Proxy(s,{get(M,_,J){return _==="onBeforeUnload"?c:_==="getSiteInfo"?p:Reflect.get(M,_,J)}}),{monitoring:P,...q}=be(n)||{},F=Q({hostContext:P?.context,monitoringConfig:P?.config,sentrySDK:typeof window<"u"?window.Sentry:void 0}),N={openItemSelector:s.openItemSelector};return{channel:y,close:()=>l.forEach(M=>M()),getMonitoringClient:F,essentials:q,admin:N,showError:ve(s)}},Le=(e,t)=>{try{return JSON.parse(decodeURIComponent(e))}catch(n){return console.warn(`Failed to parse ${t} query parameter. Make sure to run the code inside a supported Wix App extension.`,n),{}}};var V=oe({createHost:Me});var Se=(e,t)=>{let[n,r]=_e(()=>e());return t(n)&&r(e()),n},je=e=>t=>{let{host:n,compProps:r}=$e(t);return Se(()=>(G({auth:V.auth(),host:n}).enableContext("module"),n),o=>o!==n),r?Be.createElement(e,A({host:n},r)):null},$e=e=>{let{host:t,...n}=e,{host:r,hostType:o}=Se(()=>t?{host:t,hostType:"local"}:{host:V.host(),hostType:"remote"},l=>!!t&&t!==l.host),[s,u]=_e(void 0);return Ke(()=>{if(o==="local")return;let l=r.channel.observeState(d=>{u(d||{})}),c=async()=>{(await l).disconnect(),r.close()};return()=>{c()}},[r,o]),o==="local"?{host:r,compProps:n}:{host:r,compProps:s?{...s,...n}:void 0}};export{je as withContextualWixClient};
1
+ import{a as Q}from"./chunk-EZGPNUD5.js";import{a as G}from"./chunk-7JKHQSWI.js";import"./chunk-42Y3PAPA.js";import"./chunk-KXCY2KWZ.js";import"./chunk-SBZEOPXX.js";function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},A.apply(null,arguments)}import Le,{useEffect as Be,useState as Pe}from"react";import{wixContext as g}from"@wix/sdk-context";function X(){let e=typeof $wixContext<"u"&&$wixContext.initWixModules?$wixContext.initWixModules:typeof globalThis.__wix_context__<"u"&&globalThis.__wix_context__.initWixModules?globalThis.__wix_context__.initWixModules:void 0;if(e)return{initWixModules(r,o){return z(()=>e(r,o))},fetchWithAuth(){throw new Error("fetchWithAuth is not available in this context")},graphql(){throw new Error("graphql is not available in this context")}};let t=typeof $wixContext<"u"?$wixContext.client:typeof g.client<"u"?g.client:typeof globalThis.__wix_context__<"u"?globalThis.__wix_context__.client:void 0,n=typeof $wixContext<"u"?$wixContext.elevatedClient:typeof g.elevatedClient<"u"?g.elevatedClient:typeof globalThis.__wix_context__<"u"?globalThis.__wix_context__.elevatedClient:void 0;if(!(!t&&!n))return{initWixModules(r,o){if(o){if(!n)throw new Error("An elevated client is required to use elevated modules. Make sure to initialize the Wix context with an elevated client before using elevated SDK modules");return z(()=>n.use(r))}if(!t)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return z(()=>t.use(r))},fetchWithAuth:(r,o)=>{if(!t)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return t.fetchWithAuth(r,o)},getAuth(){if(!t)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return t.auth},async graphql(r,o,s){if(!t)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return t.graphql(r,o,s)}}}function z(e){let t=globalThis.__wix_context__,n={client:g.client,elevatedClient:g.elevatedClient},r;globalThis.__wix_context__=void 0,g.client=void 0,g.elevatedClient=void 0,typeof $wixContext<"u"&&(r={client:$wixContext?.client,elevatedClient:$wixContext?.elevatedClient},delete $wixContext.client,delete $wixContext.elevatedClient);try{return e()}finally{globalThis.__wix_context__=t,g.client=n.client,g.elevatedClient=n.elevatedClient,typeof $wixContext<"u"&&($wixContext.client=r.client,$wixContext.elevatedClient=r.elevatedClient)}}function Y(e,t){return{...e,...Object.fromEntries(t.map(n=>[n,(...r)=>{let o=X();if(!o)throw new Error("Wix context is not available. Make sure to initialize the Wix context before using SDK modules");return o.initWixModules(e)[n].apply(void 0,r)}]))}}function Z(e){return Y({__type:"host",create:t=>Object.entries(e).reduce((n,[r,o])=>({...n,[r]:o(t)}),{})},Object.keys(e))}function b(e){"@babel/helpers - typeof";return b=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(e)}function ee(e,t){if(b(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(b(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function te(e){var t=ee(e,"string");return b(t)=="symbol"?t:t+""}function ne(e,t,n){return(t=te(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var C=class extends Error{constructor(t){let{message:n,code:r}=t;super(n),ne(this,"code",void 0),this.message=n,this.code=r}};var re=()=>{let e=a=>{let{channel:i}=a;return function(){let d=i.showToast(...arguments);return{remove:()=>Promise.resolve(d).then(x=>x.remove())}}},t=a=>{let{channel:i}=a;return function(){let d=i.observeState(...arguments);return{disconnect:()=>Promise.resolve(d).then(x=>x.disconnect())}}};return{showToast:e,observeState:t,navigate:a=>{let{channel:i}=a;return function(){return i.navigate(...arguments)}},navigateBack:a=>{let{channel:i}=a;return()=>i.navigateBack()},openModal:a=>{let{channel:i}=a;return(d,m)=>{let[x,k]=typeof d=="string"?[d,m]:[d.modalId,d.params],E=i.openModal(x,k);return{modalClosed:Promise.resolve(E).then(w=>w.modalClosed)}}},closeModal:a=>{let{channel:i}=a;return d=>{if(d===void 0)return i.closeModal();let m=JSON.parse(JSON.stringify(d));return i.closeModal(m)}},getAccessToken:a=>{let{channel:i}=a;return()=>i.getAccessToken()},getPageUrl:a=>{let{channel:i}=a;return function(){return i.getPageUrl(...arguments)}},openMediaManager:a=>{let{channel:i}=a;return function(){return i.openMediaManager(...arguments)}},addSitePlugin:a=>{let{channel:i}=a;return(d,m)=>{let x="802c76e4-b381-4bb3-9152-96acabbf3194",k=m?.placement||{},E=i.openModal(x,{...k,placementsSlotId:m?.slotId,pluginId:d,action:"populate"});return Promise.resolve(E).then(w=>w.modalClosed).then(w=>{if(w?.type===void 0)throw new C({message:"Aborted by user",code:3006});if(w?.type==="ERROR")throw new C(w.data.error)})}},onBeforeUnload:a=>{let{channel:i}=a;return function(){return i.onBeforeUnload(...arguments)}},setPageTitle:a=>{let{channel:i}=a;return d=>i.setPageTitle(d)},getLanguage:a=>{let i=null;return async()=>{var d;if(i)return i;let m=null;return i=await new Promise(x=>{m=t(a)((k,E)=>{x(E.language)})}),(d=m)==null||d.disconnect(),i}},requestFeedback:a=>{let{channel:i}=a;return function(){return i.requestFeedback(...arguments)}},onLayerStateChange:a=>{let{channel:i}=a;return function(){let d=i.onLayerStateChange(...arguments);return{remove:()=>Promise.resolve(d).then(x=>x.remove())}}},installApp:a=>{let{channel:i}=a;return i.installApp},getSiteInfo:a=>{let{channel:i}=a;return i.getSiteInfo},getWidget:a=>{let{channel:i}=a;return function(){if("getWidget"in i)return i.getWidget(...arguments);throw new Error("Unsupported")}},getWidgetAsync:a=>{let{channel:i}=a;return d=>{if("getWidgetAsync"in i)return i.getWidgetAsync(d);throw new Error("Unsupported")}},getDashboardPlugins:a=>{let{channel:i}=a;return function(){if("getDashboardPlugins"in i)return i.getDashboardPlugins(...arguments);throw new Error("Unsupported")}},getDashboardMenuPlugins:a=>{let{channel:i}=a;return function(){if("getDashboardMenuPlugins"in i)return i.getDashboardMenuPlugins(...arguments);throw new Error("Unsupported")}},createStore:a=>{let{channel:i}=a;if(i.createStore)return i.createStore},getStore:a=>{let{channel:i}=a;if(i.getStore)return i.getStore}}};var oe=e=>{let{createHost:t}=e,n=re();return{...Z(n),host:t,auth:()=>({getAuthHeaders:async r=>({headers:{Authorization:await n.getAccessToken(r)()}})})}};var se=Symbol("Comlink.proxy"),Se=Symbol("Comlink.endpoint"),H=Symbol("Comlink.releaseProxy"),I=Symbol("Comlink.thrown"),ae=e=>typeof e=="object"&&e!==null||typeof e=="function",Ee={canHandle:e=>ae(e)&&e[se],serialize(e){let{port1:t,port2:n}=new MessageChannel;return R(e,t),[n,[n]]},deserialize(e){return e.start(),L(e)}},Ce={canHandle:e=>ae(e)&&I in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},le=new Map([["proxy",Ee],["throw",Ce]]);function R(e,t=self){t.addEventListener("message",function n(r){if(!r||!r.data)return;let{id:o,type:s,path:u}=Object.assign({path:[]},r.data),l=(r.data.argumentList||[]).map(v),c;try{let f=u.slice(0,-1).reduce((p,y)=>p[y],e),h=u.reduce((p,y)=>p[y],e);switch(s){case 0:c=h;break;case 1:f[u.slice(-1)[0]]=v(r.data.value),c=!0;break;case 2:c=h.apply(f,l);break;case 3:{let p=new h(...l);c=W(p)}break;case 4:{let{port1:p,port2:y}=new MessageChannel;R(e,y),c=Ae(p,[p])}break;case 5:c=void 0;break}}catch(f){c={value:f,[I]:0}}Promise.resolve(c).catch(f=>({value:f,[I]:0})).then(f=>{let[h,p]=B(f);t.postMessage(Object.assign(Object.assign({},h),{id:o}),p),s===5&&(t.removeEventListener("message",n),ue(t))})}),t.start&&t.start()}function We(e){return e.constructor.name==="MessagePort"}function ue(e){We(e)&&e.close()}function L(e,t){return O(e,[],t)}function D(e){if(e)throw new Error("Proxy has been released and is not useable")}function O(e,t=[],n=function(){}){let r=!1,o=new Proxy(n,{get(s,u){if(D(r),u===H)return()=>_(e,{type:5,path:t.map(l=>l.toString())}).then(()=>{ue(e),r=!0});if(u==="then"){if(t.length===0)return{then:()=>o};let l=_(e,{type:0,path:t.map(c=>c.toString())}).then(v);return l.then.bind(l)}return O(e,[...t,u])},set(s,u,l){D(r);let[c,f]=B(l);return _(e,{type:1,path:[...t,u].map(h=>h.toString()),value:c},f).then(v)},apply(s,u,l){D(r);let c=t[t.length-1];if(c===Se)return _(e,{type:4}).then(v);if(c==="bind")return O(e,t.slice(0,-1));let[f,h]=ie(l);return _(e,{type:2,path:t.map(p=>p.toString()),argumentList:f},h).then(v)},construct(s,u){D(r);let[l,c]=ie(u);return _(e,{type:3,path:t.map(f=>f.toString()),argumentList:l},c).then(v)}});return o}function ke(e){return Array.prototype.concat.apply([],e)}function ie(e){let t=e.map(B);return[t.map(n=>n[0]),ke(t.map(n=>n[1]))]}var ce=new WeakMap;function Ae(e,t){return ce.set(e,t),e}function W(e){return Object.assign(e,{[se]:!0})}function B(e){for(let[t,n]of le)if(n.canHandle(e)){let[r,o]=n.serialize(e);return[{type:3,name:t,value:r},o]}return[{type:0,value:e},ce.get(e)||[]]}function v(e){switch(e.type){case 3:return le.get(e.name).deserialize(e.value);case 0:return e.value}}function _(e,t,n){return new Promise(r=>{let o=De();e.addEventListener("message",function s(u){!u.data||!u.data.id||u.data.id!==o||(e.removeEventListener("message",s),r(u.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),n)})}function De(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var K="__proxyCallbackId__wixSDK__",j="__proxyPromiseId__wixSDK__",fe=e=>Ue(e,t=>async function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];let[s,u]=$(r),l=await t(W(s),u);return pe(l)});var Te=async e=>{let[t,n]=$(await e);return W({proxies:t,clonables:n})},pe=async e=>U(e?.proxies,await e?.clonables),$=e=>{let t=(o,s)=>{if(he(s)){let u=de();return o.promises[u]=s,{[j]:u}}if(ze(s)){let u=de();return o.callbacks[u]=(l,c)=>{let f=U(l,c),h=s(...f);return Te(h)},{[K]:u}}return Array.isArray(s)?s.map(u=>t(o,u)):T(s)?me(s,u=>t(o,u)):s},n={promises:{},callbacks:{}},r=t(n,e);return[n,r]},U=(e,t)=>{if(Array.isArray(t))return t.map(n=>U(e,n));if(T(t)&&t.hasOwnProperty(j)){let n=t[j];return e.promises[n]}if(T(t)&&t.hasOwnProperty(K)){let n=t[K];return async function(){for(var r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];let[u,l]=$(o),c=await e.callbacks[n](W(u),l);return pe(c)}}return T(t)?me(t,n=>U(e,n)):t},Ue=(e,t)=>new Proxy(e,{get(n,r){return n[r]?t(n[r]):()=>{throw new Error(`Serialization error occurred while accessing ${r} property of ${n}`)}}}),he=e=>e instanceof Promise,T=e=>e&&typeof e=="object"&&!he(e),ze=e=>typeof e=="function",me=(e,t)=>{let n=r=>{let[o,s]=r;return[o,t(s)]};return Object.fromEntries(Object.entries(e).map(n))},de=(()=>{let e=0;return()=>++e})();var Ie="wix-sdk-bo-hello-handshake",xe=e=>{let{postMessage:t,origin:n}=e,{port1:r,port2:o}=new MessageChannel;t({code:Ie,version:"1.0.0",port:o},n,[o]);let l=fe(L(r));return{channel:l,close:()=>l[H]()}};var ge=(e,t)=>{let n=()=>e.updateHeight(t.offsetHeight),r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()};var Oe=/^https:\/\/(([a-z0-9-]+)\.)?manage\.wix\.com$/,we=e=>Oe.test(e);var ye=e=>{let t=new EventTarget,n=typeof window>"u",r=l=>{t.dispatchEvent(new CustomEvent("beforeunload",{cancelable:!0}))||(l.preventDefault(),l.returnValue=!0)},o=e.onBeforeUnload(r),s=()=>{n||window.removeEventListener("beforeunload",r),o.then(l=>{let{remove:c}=l;return c()})};return n||(window.addEventListener("beforeunload",r),window.addEventListener("unload",s)),{onBeforeUnload:l=>(t.addEventListener("beforeunload",l),{remove:()=>{t.removeEventListener("beforeunload",l)}}),clearBeforeUnloadHandler:s}};function He(e){if(e)try{return JSON.parse(decodeURIComponent(e))}catch(t){console.warn('Failed to parse "essentials" query parameter. Make sure to run the code inside a supported Wix App extension.',t);return}}function be(e){return e.has("essentials")?He(e.get("essentials")):void 0}var ve=e=>t=>{let{message:n,action:r,requestId:o}=t;n&&e.showToast({type:"error",details:o!=null?{requestId:o}:void 0,message:n,action:r&&{...r,removeToastOnClick:!0,uiType:"link"}})};var Me=function(e){e===void 0&&(e={});let t=e.fullUrl&&new URL(e.fullUrl).search||typeof window<"u"&&window.location.search||"",n=new URLSearchParams(t),r=e.origin||n.get("origin")||"",o=e.postMessage||window.parent.postMessage.bind(window.parent);if(!we(r))throw new Error("Wix Dashboard SDK: Unable to establish a connection with the Wix dashboard. Please ensure that you are running your app within the Wix dashboard.");let{channel:s,close:u}=xe({postMessage:o,origin:r}),l=[u];if(e.autoHeightUpdate===void 0||e.autoHeightUpdate){let M=e.autoHeightElement||document.documentElement,P=ge(s,M);l.push(()=>P())}let{onBeforeUnload:c,clearBeforeUnloadHandler:f}=ye(s);l.push(f);let h=Re(n.get("siteInfo")||"","siteInfo"),p=()=>h,y=new Proxy(s,{get(M,P,J){return P==="onBeforeUnload"?c:P==="getSiteInfo"?p:Reflect.get(M,P,J)}}),{monitoring:S,...V}=be(n)||{},q=Q({hostContext:S?.context,monitoringConfig:S?.config,sentrySDK:typeof window<"u"?window.Sentry:void 0}),N={openItemSelector:s.openItemSelector,apps:{startInstallFlow:s.startInstallFlow,startPurchasePlanFlow:s.startPurchasePlanFlow,startUpdateFlow:s.startUpdateFlow,openContactSupport:s.openContactSupport},credits:{openPaywallModal:s.openPaywallModal}};return{channel:y,close:()=>l.forEach(M=>M()),getMonitoringClient:q,essentials:V,workspace:N,showError:ve(s)}},Re=(e,t)=>{try{return JSON.parse(decodeURIComponent(e))}catch(n){return console.warn(`Failed to parse ${t} query parameter. Make sure to run the code inside a supported Wix App extension.`,n),{}}};var F=oe({createHost:Me});var _e=(e,t)=>{let[n,r]=Pe(()=>e());return t(n)&&r(e()),n},Ke=e=>t=>{let{host:n,compProps:r}=je(t);return _e(()=>(G({auth:F.auth(),host:n}).enableContext("module"),n),o=>o!==n),r?Le.createElement(e,A({host:n},r)):null},je=e=>{let{host:t,...n}=e,{host:r,hostType:o}=_e(()=>t?{host:t,hostType:"local"}:{host:F.host(),hostType:"remote"},l=>!!t&&t!==l.host),[s,u]=Pe(void 0);return Be(()=>{if(o==="local")return;let l=r.channel.observeState(f=>{u(f||{})}),c=async()=>{(await l).disconnect(),r.close()};return()=>{c()}},[r,o]),o==="local"?{host:r,compProps:n}:{host:r,compProps:s?{...s,...n}:void 0}};export{Ke as withContextualWixClient};
2
2
  //# sourceMappingURL=dashboard.js.map