@delopay/sdk 0.366.0 → 0.368.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/dist/internal.cjs CHANGED
@@ -39,6 +39,7 @@ __export(internal_exports, {
39
39
  AdminBranding: () => AdminBranding,
40
40
  AdminLive: () => AdminLive,
41
41
  AdminPortal: () => AdminPortal,
42
+ AdminSupport: () => AdminSupport,
42
43
  Analytics: () => Analytics,
43
44
  AnalyticsDashboard: () => AnalyticsDashboard,
44
45
  Audit: () => Audit,
@@ -186,6 +187,7 @@ __export(internal_exports, {
186
187
  Settlement: () => Settlement,
187
188
  ShopLabels: () => ShopLabels,
188
189
  Subscriptions: () => Subscriptions,
190
+ Support: () => Support,
189
191
  UNKNOWN_SECTION_ORDER: () => UNKNOWN_SECTION_ORDER,
190
192
  WCAG_AA_TEXT: () => WCAG_AA_TEXT,
191
193
  WCAG_AA_UI: () => WCAG_AA_UI,
@@ -1273,9 +1275,9 @@ var Connectors = class {
1273
1275
  * to a single event.
1274
1276
  */
1275
1277
  async registerWebhook(merchantId, connectorId, params) {
1276
- const path = `/account/${encodeURIComponent(merchantId)}/connectors/webhooks/${encodeURIComponent(connectorId)}`;
1277
- if (params === void 0) return this.request("POST", path);
1278
- return this.request("POST", path, { body: params });
1278
+ const path3 = `/account/${encodeURIComponent(merchantId)}/connectors/webhooks/${encodeURIComponent(connectorId)}`;
1279
+ if (params === void 0) return this.request("POST", path3);
1280
+ return this.request("POST", path3, { body: params });
1279
1281
  }
1280
1282
  /**
1281
1283
  * Register checkout/shop domains as Stripe payment method domains, so Apple
@@ -2073,11 +2075,11 @@ function negotiated(options, format, presentation) {
2073
2075
  }
2074
2076
  return format === "json" ? { ...options, headers } : { ...options, headers, responseType: "blob" };
2075
2077
  }
2076
- function runExport(request, method, path, base, options) {
2078
+ function runExport(request, method, path3, base, options) {
2077
2079
  const format = options?.format ?? "json";
2078
2080
  return downloadExport(
2079
2081
  request,
2080
- { method, path, request: negotiated(base, format, options?.presentation), format },
2082
+ { method, path: path3, request: negotiated(base, format, options?.presentation), format },
2081
2083
  options
2082
2084
  );
2083
2085
  }
@@ -3078,15 +3080,15 @@ var Payments = class {
3078
3080
  * ```
3079
3081
  */
3080
3082
  async retrieve(paymentId, options) {
3081
- const path = `/payments/${encodeURIComponent(paymentId)}`;
3082
- if (options === void 0) return this.request("GET", path);
3083
+ const path3 = `/payments/${encodeURIComponent(paymentId)}`;
3084
+ if (options === void 0) return this.request("GET", path3);
3083
3085
  const query = {};
3084
3086
  if (options.force_sync !== void 0) query["force_sync"] = options.force_sync;
3085
3087
  if (options.all_keys_required !== void 0) {
3086
3088
  query["all_keys_required"] = options.all_keys_required;
3087
3089
  }
3088
- if (Object.keys(query).length === 0) return this.request("GET", path);
3089
- return this.request("GET", path, { query });
3090
+ if (Object.keys(query).length === 0) return this.request("GET", path3);
3091
+ return this.request("GET", path3, { query });
3090
3092
  }
3091
3093
  /**
3092
3094
  * The payment's buyer risk evaluations, newest first (at most 50): each
@@ -3441,6 +3443,36 @@ var Payments = class {
3441
3443
  options
3442
3444
  );
3443
3445
  }
3446
+ /**
3447
+ * The statement name and suffix each attempt of a payment asked for and was
3448
+ * sent to its provider with. A name the merchant, the shop or the connector
3449
+ * account configures replaces the payment's own: `name_ignored` /
3450
+ * `suffix_ignored` say the payment's value was not used, and a `null` sent
3451
+ * value leaves the provider account's own default.
3452
+ *
3453
+ * Only attempts with a record are listed: one that carried no name and was
3454
+ * sent none, or ran before the record existed, is absent.
3455
+ *
3456
+ * `GET /payments/{paymentId}/statement-descriptors`
3457
+ *
3458
+ * @param paymentId - The payment intent ID.
3459
+ * @param options - Optional per-call extras: extra `headers`, a `timeout`
3460
+ * override, and an `AbortSignal`.
3461
+ *
3462
+ * @example
3463
+ * ```typescript
3464
+ * const { attempts } = await delopay.payments.statementDescriptors('pay_abc123');
3465
+ * const last = attempts.at(-1);
3466
+ * if (last?.name_ignored) console.log(`Sent as ${last.sent_name}`);
3467
+ * ```
3468
+ */
3469
+ async statementDescriptors(paymentId, options) {
3470
+ return this.request(
3471
+ "GET",
3472
+ `/payments/${encodeURIComponent(paymentId)}/statement-descriptors`,
3473
+ options
3474
+ );
3475
+ }
3444
3476
  /**
3445
3477
  * Open a playback of the payment's stored checkout recording: the audited
3446
3478
  * act of watching. Answers the manifest — which slices exist, how long the
@@ -3966,9 +3998,9 @@ var Projects = class {
3966
3998
  * @returns The project.
3967
3999
  */
3968
4000
  async retrieve(projectId, merchantId) {
3969
- const path = `/projects/${encodeURIComponent(projectId)}`;
3970
- if (merchantId === void 0) return this.request("GET", path);
3971
- return this.request("GET", path, { query: { merchant_id: merchantId } });
4001
+ const path3 = `/projects/${encodeURIComponent(projectId)}`;
4002
+ if (merchantId === void 0) return this.request("GET", path3);
4003
+ return this.request("GET", path3, { query: { merchant_id: merchantId } });
3972
4004
  }
3973
4005
  /**
3974
4006
  * Update a project's details, or move it with `parent_id` (omitted keeps the
@@ -3986,9 +4018,9 @@ var Projects = class {
3986
4018
  * @returns The updated project.
3987
4019
  */
3988
4020
  async update(projectId, params, merchantId, options) {
3989
- const path = `/projects/${encodeURIComponent(projectId)}`;
3990
- if (merchantId === void 0) return this.request("PUT", path, { body: params, ...options });
3991
- return this.request("PUT", path, {
4021
+ const path3 = `/projects/${encodeURIComponent(projectId)}`;
4022
+ if (merchantId === void 0) return this.request("PUT", path3, { body: params, ...options });
4023
+ return this.request("PUT", path3, {
3992
4024
  body: params,
3993
4025
  query: { merchant_id: merchantId },
3994
4026
  ...options
@@ -4005,9 +4037,9 @@ var Projects = class {
4005
4037
  * @returns The deleted project object.
4006
4038
  */
4007
4039
  async delete(projectId, merchantId) {
4008
- const path = `/projects/${encodeURIComponent(projectId)}`;
4009
- if (merchantId === void 0) return this.request("DELETE", path);
4010
- return this.request("DELETE", path, { query: { merchant_id: merchantId } });
4040
+ const path3 = `/projects/${encodeURIComponent(projectId)}`;
4041
+ if (merchantId === void 0) return this.request("DELETE", path3);
4042
+ return this.request("DELETE", path3, { query: { merchant_id: merchantId } });
4011
4043
  }
4012
4044
  /**
4013
4045
  * List all projects for a merchant, at every level, as a flat array. Rebuild
@@ -5012,9 +5044,9 @@ var Shops = class {
5012
5044
  * ```
5013
5045
  */
5014
5046
  async stats(merchantId, shopId, period) {
5015
- const path = `/shops/${encodeURIComponent(merchantId)}/${encodeURIComponent(shopId)}/stats`;
5016
- if (period === void 0) return this.request("GET", path);
5017
- return this.request("GET", path, { query: { period: String(period) } });
5047
+ const path3 = `/shops/${encodeURIComponent(merchantId)}/${encodeURIComponent(shopId)}/stats`;
5048
+ if (period === void 0) return this.request("GET", path3);
5049
+ return this.request("GET", path3, { query: { period: String(period) } });
5018
5050
  }
5019
5051
  /**
5020
5052
  * Upload a logo file for a shop. The file is stored in Delopay's configured
@@ -8299,6 +8331,69 @@ var Products = class {
8299
8331
  }
8300
8332
  };
8301
8333
 
8334
+ // src/resources/support.ts
8335
+ var path = (id) => `/support/conversations/${encodeURIComponent(id)}`;
8336
+ var Support = class {
8337
+ constructor(request) {
8338
+ this.request = request;
8339
+ }
8340
+ /** Start a conversation with its first message. `POST /support/conversations` */
8341
+ async create(body) {
8342
+ return this.request("POST", "/support/conversations", { body });
8343
+ }
8344
+ /** The conversations the caller may read. `GET /support/conversations` */
8345
+ async list(query) {
8346
+ return this.request("GET", "/support/conversations", {
8347
+ query: query === void 0 ? void 0 : { ...query }
8348
+ });
8349
+ }
8350
+ /** One conversation. `GET /support/conversations/{id}` */
8351
+ async retrieve(id) {
8352
+ return this.request("GET", path(id));
8353
+ }
8354
+ /** A conversation's messages. `GET /support/conversations/{id}/messages` */
8355
+ async messages(id, query) {
8356
+ return this.request("GET", `${path(id)}/messages`, {
8357
+ query: query === void 0 ? void 0 : { ...query }
8358
+ });
8359
+ }
8360
+ /** Answer in a conversation. `POST /support/conversations/{id}/messages` */
8361
+ async reply(id, body) {
8362
+ return this.request("POST", `${path(id)}/messages`, { body });
8363
+ }
8364
+ /**
8365
+ * Upload a file for a message. PNG, JPEG, WebP, PDF, text, MP4 or WebM, read from the
8366
+ * content; 10 MB, a video 25 MB. It belongs to the caller until a message names it in
8367
+ * `attachments`. Uploading again with the same `clientUploadId` returns the same file.
8368
+ * `POST /support/conversations/{id}/attachments`
8369
+ */
8370
+ async uploadAttachment(id, file, clientUploadId, fileName) {
8371
+ const form = new FormData();
8372
+ form.append("client_upload_id", clientUploadId);
8373
+ if (fileName === void 0) form.append("file", file);
8374
+ else form.append("file", file, fileName);
8375
+ return this.request("POST", `${path(id)}/attachments`, { body: form });
8376
+ }
8377
+ /**
8378
+ * Fetch a file once its scan is clean. Refused with `support_attachment_checking` while
8379
+ * the scan runs, and `support_attachment_blocked` after a block.
8380
+ * `GET /support/conversations/{id}/attachments/{fileId}`
8381
+ */
8382
+ async downloadAttachment(id, fileId) {
8383
+ return this.request("GET", `${path(id)}/attachments/${encodeURIComponent(fileId)}`, {
8384
+ responseType: "blob"
8385
+ });
8386
+ }
8387
+ /**
8388
+ * Clear the merchant's unread mark and read the conversation as it is now.
8389
+ * Someone acting as somebody else leaves the mark in place.
8390
+ * `POST /support/conversations/{id}/read`
8391
+ */
8392
+ async markRead(id) {
8393
+ return this.request("POST", `${path(id)}/read`);
8394
+ }
8395
+ };
8396
+
8302
8397
  // src/resources/invoices.ts
8303
8398
  var Invoices = class {
8304
8399
  constructor(request) {
@@ -10767,8 +10862,8 @@ var LiveEventStream = class {
10767
10862
  return toLiveStreamEvent(dispatch.event, this._lastEventId, this._retry);
10768
10863
  }
10769
10864
  };
10770
- async function openLiveStream(openStream, path, options = {}) {
10771
- const connection = await openStream(path, {
10865
+ async function openLiveStream(openStream, path3, options = {}) {
10866
+ const connection = await openStream(path3, {
10772
10867
  ...options.lastEventId ? { lastEventId: options.lastEventId } : {},
10773
10868
  ...options.signal ? { signal: options.signal } : {},
10774
10869
  ...options.idleTimeoutMs !== void 0 ? { idleTimeoutMs: options.idleTimeoutMs } : {},
@@ -10955,8 +11050,8 @@ var ProcessorImports = class {
10955
11050
 
10956
11051
  // src/resources/deploymentBranding.ts
10957
11052
  function brandingAssetPath(asset, version) {
10958
- const path = `/branding/assets/${encodeURIComponent(asset)}`;
10959
- return version ? `${path}?v=${encodeURIComponent(version)}` : path;
11053
+ const path3 = `/branding/assets/${encodeURIComponent(asset)}`;
11054
+ return version ? `${path3}?v=${encodeURIComponent(version)}` : path3;
10960
11055
  }
10961
11056
  var Branding = class {
10962
11057
  constructor(request, baseUrl) {
@@ -11290,6 +11385,7 @@ var Delopay = class {
11290
11385
  this.costRules = new CostRules(request);
11291
11386
  this.externalRecords = new ExternalRecords(request);
11292
11387
  this.products = new Products(request);
11388
+ this.support = new Support(request);
11293
11389
  this.invoices = new Invoices(request);
11294
11390
  this.invoiceSettings = new InvoiceSettingsResource(request);
11295
11391
  this.processorCosts = new ProcessorCosts(request);
@@ -11350,8 +11446,8 @@ var Delopay = class {
11350
11446
  return response;
11351
11447
  }
11352
11448
  /** `path` on the base URL, with the query string `query` makes. */
11353
- buildUrl(path, query) {
11354
- let url = `${this.baseUrl}${path}`;
11449
+ buildUrl(path3, query) {
11450
+ let url = `${this.baseUrl}${path3}`;
11355
11451
  if (query) {
11356
11452
  const params = new URLSearchParams();
11357
11453
  for (const [key, value] of Object.entries(query)) {
@@ -11421,8 +11517,8 @@ var Delopay = class {
11421
11517
  * on a 2xx that is not `text/event-stream` (code `NOT_EVENT_STREAM`), and
11422
11518
  * with `TIMEOUT`, `NETWORK` or `ABORTED` like `request()`.
11423
11519
  */
11424
- async openEventStream(path, options = {}) {
11425
- const url = this.buildUrl(path, options.query);
11520
+ async openEventStream(path3, options = {}) {
11521
+ const url = this.buildUrl(path3, options.query);
11426
11522
  const lastEventId = options.lastEventId ?? "";
11427
11523
  const headers = {
11428
11524
  ...this.authHeaders(),
@@ -11462,7 +11558,7 @@ var Delopay = class {
11462
11558
  `Network error: ${cause instanceof Error ? cause.message : String(cause ?? "stream failed")}`,
11463
11559
  { status: 0, code: "NETWORK", type: "network_error" }
11464
11560
  );
11465
- this.log("request", { method: "GET", url: redactUrlForLogging(url), path });
11561
+ this.log("request", { method: "GET", url: redactUrlForLogging(url), path: path3 });
11466
11562
  startIdleTimer();
11467
11563
  let response;
11468
11564
  try {
@@ -11474,7 +11570,7 @@ var Delopay = class {
11474
11570
  throw network(err);
11475
11571
  }
11476
11572
  const requestId = response.headers?.get("x-request-id") ?? response.headers?.get("x-trace-id") ?? void 0;
11477
- this.log("response", { status: response.status, method: "GET", path, requestId });
11573
+ this.log("response", { status: response.status, method: "GET", path: path3, requestId });
11478
11574
  if (!response.ok) {
11479
11575
  const error = await errorFromResponse(response, requestId);
11480
11576
  release();
@@ -11560,8 +11656,8 @@ var Delopay = class {
11560
11656
  * @throws {DelopayAuthenticationError} On 401 responses.
11561
11657
  * @throws {DelopayError} On all other non-2xx responses, timeouts, and network errors.
11562
11658
  */
11563
- async request(method, path, options) {
11564
- const url = this.buildUrl(path, options?.query);
11659
+ async request(method, path3, options) {
11660
+ const url = this.buildUrl(path3, options?.query);
11565
11661
  let headers = {
11566
11662
  ...this.authHeaders(),
11567
11663
  ...this.profileHeaders(options?.headers),
@@ -11625,7 +11721,7 @@ var Delopay = class {
11625
11721
  const delay = Math.max(retryAfterOverrideMs ?? 0, jittered);
11626
11722
  retryAfterOverrideMs = null;
11627
11723
  await new Promise((resolve) => setTimeout(resolve, delay));
11628
- emit("retry", { attempt, maxRetries: this.maxRetries, method, path });
11724
+ emit("retry", { attempt, maxRetries: this.maxRetries, method, path: path3 });
11629
11725
  }
11630
11726
  const timeoutCtrl = new AbortController();
11631
11727
  let timeoutId = setTimeout(() => timeoutCtrl.abort(), timeoutMs);
@@ -11638,7 +11734,7 @@ var Delopay = class {
11638
11734
  callerSignal ? [timeoutCtrl.signal, callerSignal] : [timeoutCtrl.signal]
11639
11735
  );
11640
11736
  try {
11641
- emit("request", { method, url: safeUrl(), path });
11737
+ emit("request", { method, url: safeUrl(), path: path3 });
11642
11738
  const response = await fetch(url, {
11643
11739
  method,
11644
11740
  headers,
@@ -11647,7 +11743,7 @@ var Delopay = class {
11647
11743
  ...options?.keepalive !== void 0 ? { keepalive: options.keepalive } : {}
11648
11744
  });
11649
11745
  const requestId = response.headers?.get("x-request-id") ?? response.headers?.get("x-trace-id") ?? void 0;
11650
- emit("response", { status: response.status, method, path, requestId });
11746
+ emit("response", { status: response.status, method, path: path3, requestId });
11651
11747
  if (!response.ok) {
11652
11748
  const error = await errorFromResponse(response, requestId);
11653
11749
  const isTransientStatus = response.status >= 500 || response.status === 429;
@@ -16979,7 +17075,7 @@ function encodePanes(panes) {
16979
17075
  var OPAQUE_PAYMENT_LINK_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
16980
17076
  function focusedCheckoutUrl(params) {
16981
17077
  const base = params.checkoutBaseUrl.replace(/\/+$/, "");
16982
- const path = params.paymentLinkId && OPAQUE_PAYMENT_LINK_ID.test(params.paymentLinkId) ? `${base}/pay/${params.paymentLinkId}` : `${base}/pay/${encodeURIComponent(params.merchantId)}/${encodeURIComponent(
17078
+ const path3 = params.paymentLinkId && OPAQUE_PAYMENT_LINK_ID.test(params.paymentLinkId) ? `${base}/pay/${params.paymentLinkId}` : `${base}/pay/${encodeURIComponent(params.merchantId)}/${encodeURIComponent(
16983
17079
  params.paymentId
16984
17080
  )}`;
16985
17081
  const query = new URLSearchParams({ pane: params.method });
@@ -16989,16 +17085,16 @@ function focusedCheckoutUrl(params) {
16989
17085
  if (merchantConnectorId) query.set("mca", merchantConnectorId);
16990
17086
  if (params.locale) query.set("locale", params.locale);
16991
17087
  if (params.customFieldsCollected) query.set("cf", "1");
16992
- return `${path}?${query.toString()}`;
17088
+ return `${path3}?${query.toString()}`;
16993
17089
  }
16994
17090
  function checkoutEntryUrl(params) {
16995
17091
  const base = params.checkoutBaseUrl.replace(/\/+$/, "");
16996
- const path = params.paymentLinkId && OPAQUE_PAYMENT_LINK_ID.test(params.paymentLinkId) ? `${base}/pay/${params.paymentLinkId}` : `${base}/pay/${encodeURIComponent(params.merchantId)}/${encodeURIComponent(
17092
+ const path3 = params.paymentLinkId && OPAQUE_PAYMENT_LINK_ID.test(params.paymentLinkId) ? `${base}/pay/${params.paymentLinkId}` : `${base}/pay/${encodeURIComponent(params.merchantId)}/${encodeURIComponent(
16997
17093
  params.paymentId
16998
17094
  )}`;
16999
17095
  const query = new URLSearchParams({ entry: params.entry.trim() });
17000
17096
  if (params.locale) query.set("locale", params.locale);
17001
- return `${path}?${query.toString()}`;
17097
+ return `${path3}?${query.toString()}`;
17002
17098
  }
17003
17099
  function isCheckoutOpenEntryMessage(data) {
17004
17100
  if (typeof data !== "object" || data === null) return false;
@@ -17659,6 +17755,15 @@ var AdminPortal = class {
17659
17755
  query
17660
17756
  });
17661
17757
  }
17758
+ /**
17759
+ * Every shop's device intelligence account, with its assessments per environment and
17760
+ * its error rate over the last `window_days` days. The error rate counts finished
17761
+ * assessments: one still running and a payment naming no buyer are not errors.
17762
+ * `GET /admin-portal/device-intelligence`
17763
+ */
17764
+ async deviceIntelligenceUsage() {
17765
+ return this.request("GET", "/admin-portal/device-intelligence");
17766
+ }
17662
17767
  /**
17663
17768
  * Device analytics over the canonical client-context observation per
17664
17769
  * payment, rooted at all merchants and drillable via `merchant_id` /
@@ -18470,6 +18575,65 @@ function adminAccount(merchantId) {
18470
18575
  return `/admin-portal/accounts/${encodeURIComponent(merchantId)}`;
18471
18576
  }
18472
18577
 
18578
+ // src/internal/resources/adminSupport.ts
18579
+ var path2 = (id) => `/admin-portal/support/conversations/${encodeURIComponent(id)}`;
18580
+ var AdminSupport = class {
18581
+ constructor(request) {
18582
+ this.request = request;
18583
+ }
18584
+ /** The queue. `GET /admin-portal/support/conversations` */
18585
+ async list(query) {
18586
+ return this.request("GET", "/admin-portal/support/conversations", {
18587
+ query: query === void 0 ? void 0 : { ...query }
18588
+ });
18589
+ }
18590
+ /** One conversation. `GET /admin-portal/support/conversations/{id}` */
18591
+ async retrieve(id) {
18592
+ return this.request("GET", path2(id));
18593
+ }
18594
+ /** Change status, kind, category or assignee. `PATCH /admin-portal/support/conversations/{id}` */
18595
+ async update(id, body) {
18596
+ return this.request("PATCH", path2(id), { body });
18597
+ }
18598
+ /** Messages, notes included. `GET /admin-portal/support/conversations/{id}/messages` */
18599
+ async messages(id, query) {
18600
+ return this.request("GET", `${path2(id)}/messages`, {
18601
+ query: query === void 0 ? void 0 : { ...query }
18602
+ });
18603
+ }
18604
+ /** Answer, or leave a note. `POST /admin-portal/support/conversations/{id}/messages` */
18605
+ async reply(id, body) {
18606
+ return this.request("POST", `${path2(id)}/messages`, { body });
18607
+ }
18608
+ /**
18609
+ * Upload a file for a message from staff, scanned like a merchant's.
18610
+ * `POST /admin-portal/support/conversations/{id}/attachments`
18611
+ */
18612
+ async uploadAttachment(id, file, clientUploadId, fileName) {
18613
+ const form = new FormData();
18614
+ form.append("client_upload_id", clientUploadId);
18615
+ if (fileName === void 0) form.append("file", file);
18616
+ else form.append("file", file, fileName);
18617
+ return this.request("POST", `${path2(id)}/attachments`, { body: form });
18618
+ }
18619
+ /**
18620
+ * Fetch a file once its scan is clean. A blocked file stays shut for staff too.
18621
+ * `GET /admin-portal/support/conversations/{id}/attachments/{fileId}`
18622
+ */
18623
+ async downloadAttachment(id, fileId) {
18624
+ return this.request("GET", `${path2(id)}/attachments/${encodeURIComponent(fileId)}`, {
18625
+ responseType: "blob"
18626
+ });
18627
+ }
18628
+ /**
18629
+ * Clear the staff unread mark and read the conversation as it is now.
18630
+ * `POST /admin-portal/support/conversations/{id}/read`
18631
+ */
18632
+ async markRead(id) {
18633
+ return this.request("POST", `${path2(id)}/read`);
18634
+ }
18635
+ };
18636
+
18473
18637
  // src/internal/resources/auditLogs.ts
18474
18638
  var AuditLogs = class {
18475
18639
  constructor(request) {
@@ -19249,6 +19413,7 @@ var DelopayInternal = class extends Delopay {
19249
19413
  const request = this.request.bind(this);
19250
19414
  this.admin = new Admin(request);
19251
19415
  this.adminPortal = new AdminPortal(request);
19416
+ this.adminSupport = new AdminSupport(request);
19252
19417
  const openStream = this.openEventStream.bind(this);
19253
19418
  this.adminLive = new AdminLive(request, openStream);
19254
19419
  this.adminBranding = new AdminBranding(request);
@@ -19288,6 +19453,7 @@ var DelopayInternal = class extends Delopay {
19288
19453
  AdminBranding,
19289
19454
  AdminLive,
19290
19455
  AdminPortal,
19456
+ AdminSupport,
19291
19457
  Analytics,
19292
19458
  AnalyticsDashboard,
19293
19459
  Audit,
@@ -19435,6 +19601,7 @@ var DelopayInternal = class extends Delopay {
19435
19601
  Settlement,
19436
19602
  ShopLabels,
19437
19603
  Subscriptions,
19604
+ Support,
19438
19605
  UNKNOWN_SECTION_ORDER,
19439
19606
  WCAG_AA_TEXT,
19440
19607
  WCAG_AA_UI,