@plyaz/api 1.3.0 → 1.4.1

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 (56) hide show
  1. package/dist/api/client/createApiClient.d.ts.map +1 -1
  2. package/dist/api/endpoints/cdn.d.ts +122 -0
  3. package/dist/api/endpoints/cdn.d.ts.map +1 -0
  4. package/dist/api/endpoints/index.d.ts +34 -4
  5. package/dist/api/endpoints/index.d.ts.map +1 -1
  6. package/dist/api/endpoints/virustotal.d.ts +91 -0
  7. package/dist/api/endpoints/virustotal.d.ts.map +1 -0
  8. package/dist/api/services/cdn/cloudflare/POST/cloudflarePurgeCache.d.ts +35 -0
  9. package/dist/api/services/cdn/cloudflare/POST/cloudflarePurgeCache.d.ts.map +1 -0
  10. package/dist/api/services/cdn/cloudflare/POST/index.d.ts +5 -0
  11. package/dist/api/services/cdn/cloudflare/POST/index.d.ts.map +1 -0
  12. package/dist/api/services/cdn/cloudflare/index.d.ts +5 -0
  13. package/dist/api/services/cdn/cloudflare/index.d.ts.map +1 -0
  14. package/dist/api/services/cdn/cloudfront/POST/cloudFrontCreateInvalidation.d.ts +38 -0
  15. package/dist/api/services/cdn/cloudfront/POST/cloudFrontCreateInvalidation.d.ts.map +1 -0
  16. package/dist/api/services/cdn/cloudfront/POST/index.d.ts +5 -0
  17. package/dist/api/services/cdn/cloudfront/POST/index.d.ts.map +1 -0
  18. package/dist/api/services/cdn/cloudfront/index.d.ts +5 -0
  19. package/dist/api/services/cdn/cloudfront/index.d.ts.map +1 -0
  20. package/dist/api/services/cdn/fastly/POST/fastlyPurgeUrl.d.ts +35 -0
  21. package/dist/api/services/cdn/fastly/POST/fastlyPurgeUrl.d.ts.map +1 -0
  22. package/dist/api/services/cdn/fastly/POST/index.d.ts +5 -0
  23. package/dist/api/services/cdn/fastly/POST/index.d.ts.map +1 -0
  24. package/dist/api/services/cdn/fastly/index.d.ts +5 -0
  25. package/dist/api/services/cdn/fastly/index.d.ts.map +1 -0
  26. package/dist/api/services/cdn/index.d.ts +8 -0
  27. package/dist/api/services/cdn/index.d.ts.map +1 -0
  28. package/dist/api/services/index.d.ts +2 -0
  29. package/dist/api/services/index.d.ts.map +1 -1
  30. package/dist/api/services/virustotal/analyses/GET/getAnalysisResult.d.ts +35 -0
  31. package/dist/api/services/virustotal/analyses/GET/getAnalysisResult.d.ts.map +1 -0
  32. package/dist/api/services/virustotal/analyses/GET/index.d.ts +6 -0
  33. package/dist/api/services/virustotal/analyses/GET/index.d.ts.map +1 -0
  34. package/dist/api/services/virustotal/analyses/index.d.ts +6 -0
  35. package/dist/api/services/virustotal/analyses/index.d.ts.map +1 -0
  36. package/dist/api/services/virustotal/files/POST/index.d.ts +6 -0
  37. package/dist/api/services/virustotal/files/POST/index.d.ts.map +1 -0
  38. package/dist/api/services/virustotal/files/POST/uploadFileForScanning.d.ts +36 -0
  39. package/dist/api/services/virustotal/files/POST/uploadFileForScanning.d.ts.map +1 -0
  40. package/dist/api/services/virustotal/files/index.d.ts +6 -0
  41. package/dist/api/services/virustotal/files/index.d.ts.map +1 -0
  42. package/dist/api/services/virustotal/index.d.ts +8 -0
  43. package/dist/api/services/virustotal/index.d.ts.map +1 -0
  44. package/dist/api/utils/aws/index.d.ts +7 -0
  45. package/dist/api/utils/aws/index.d.ts.map +1 -0
  46. package/dist/api/utils/aws/signature-v4.d.ts +41 -0
  47. package/dist/api/utils/aws/signature-v4.d.ts.map +1 -0
  48. package/dist/api/utils/aws/xml/cloudfront.d.ts +37 -0
  49. package/dist/api/utils/aws/xml/cloudfront.d.ts.map +1 -0
  50. package/dist/api/utils/aws/xml/index.d.ts +6 -0
  51. package/dist/api/utils/aws/xml/index.d.ts.map +1 -0
  52. package/dist/index.cjs +496 -8
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.mjs +467 -8
  55. package/dist/index.mjs.map +1 -1
  56. package/package.json +5 -5
package/dist/index.mjs CHANGED
@@ -6,13 +6,14 @@ import { PRIORITY_LEVEL, EVENT_SCOPES_WITH_TEMPORARY, EVENT_NAMESPACES, HEADER_E
6
6
  export { NETWORK_QUALITY, PUB_SUB_EVENT } from '@plyaz/types/api';
7
7
  import { ApiLogger } from '@plyaz/logger';
8
8
  import { LOGGER_SERVICES } from '@plyaz/types';
9
- import { isDev, HTTP_STATUS, TIME_CONSTANTS, NUMERIC_CONSTANTS, MULTIPLIERS, NETWORK_SCORES, NETWORK_TIMEOUTS, RETRY_BACKOFF, RETRY_DELAYS, RETRY_ATTEMPTS, DEDUPE_TIME, CACHE_STALE, CACHE_TTL, BATCH_SIZES, PAGE_SIZES, TIMEZONE_REGIONS, LOCALE_REGIONS_DETAILED, COUNTRY_REGIONS_DETAILED, DEFAULT_API_CONFIG, DEFAULT_API_CLIENT_OPTIONS } from '@plyaz/config';
9
+ import { isDev, HTTP_STATUS, TIME_CONSTANTS, AWS_CLOUDFRONT_CONFIG, NUMERIC_CONSTANTS, MULTIPLIERS, NETWORK_SCORES, NETWORK_TIMEOUTS, RETRY_BACKOFF, RETRY_DELAYS, RETRY_ATTEMPTS, DEDUPE_TIME, CACHE_STALE, CACHE_TTL, BATCH_SIZES, PAGE_SIZES, TIMEZONE_REGIONS, LOCALE_REGIONS_DETAILED, COUNTRY_REGIONS_DETAILED, DEFAULT_API_CONFIG, DEFAULT_API_CLIENT_OPTIONS } from '@plyaz/config';
10
10
  import 'events';
11
11
  import { INTERNAL_STATUS_CODES, API_ERROR_CODES as API_ERROR_CODES$1, COMMON_OPERATIONS } from '@plyaz/types/errors';
12
12
  export { API_ERROR_CODES, ERROR_DEFINITIONS, COMMON_FIELDS as ERROR_FIELDS, COMMON_OPERATIONS as OPERATIONS, COMMON_STORAGE_TYPES as STORAGE_TYPES } from '@plyaz/types/errors';
13
13
  import { AsyncLocalStorage } from 'async_hooks';
14
14
  import { Injectable, createParamDecorator } from '@nestjs/common';
15
15
  import { Observable } from 'rxjs';
16
+ import * as crypto2 from 'crypto';
16
17
  import { createHash } from 'crypto';
17
18
  import { useQueryClient, useQuery, useMutation } from '@tanstack/react-query';
18
19
  import { useState, useRef, useCallback, useEffect } from 'react';
@@ -616,7 +617,7 @@ function getCrypto() {
616
617
  }
617
618
  __name(getCrypto, "getCrypto");
618
619
  function generateUUID() {
619
- const crypto2 = getCrypto();
620
+ const crypto3 = getCrypto();
620
621
  const UUID_CONSTANTS = {
621
622
  BYTES: 16,
622
623
  VERSION_POSITION: 6,
@@ -633,12 +634,12 @@ function generateUUID() {
633
634
  // eslint-disable-next-line no-magic-numbers
634
635
  POSITIONS: [8, 12, 16, 20, 32]
635
636
  };
636
- if (crypto2 && typeof crypto2.randomUUID === "function") {
637
- return crypto2.randomUUID();
637
+ if (crypto3 && typeof crypto3.randomUUID === "function") {
638
+ return crypto3.randomUUID();
638
639
  }
639
- if (crypto2?.getRandomValues) {
640
+ if (crypto3?.getRandomValues) {
640
641
  const bytes = new Uint8Array(UUID_CONSTANTS.BYTES);
641
- crypto2.getRandomValues(bytes);
642
+ crypto3.getRandomValues(bytes);
642
643
  bytes[UUID_CONSTANTS.VERSION_POSITION] = bytes[UUID_CONSTANTS.VERSION_POSITION] & UUID_CONSTANTS.VERSION_MASK | UUID_CONSTANTS.VERSION_VALUE;
643
644
  bytes[UUID_CONSTANTS.VARIANT_POSITION] = bytes[UUID_CONSTANTS.VARIANT_POSITION] & UUID_CONSTANTS.VARIANT_MASK | UUID_CONSTANTS.VARIANT_VALUE;
644
645
  const hex = Array.from(
@@ -14021,6 +14022,108 @@ var infobipEndpoints = {
14021
14022
  ...infobipEmailEndpoints
14022
14023
  };
14023
14024
 
14025
+ // src/api/endpoints/virustotal.ts
14026
+ var virusTotalEndpoints = {
14027
+ // ========== File Scanning ==========
14028
+ /**
14029
+ * POST /files - Upload file for scanning
14030
+ * Multipart/form-data with file attachment
14031
+ * See official documentation for current free tier limits:
14032
+ * https://developers.virustotal.com/reference/overview#public-vs-premium-api
14033
+ *
14034
+ * @returns {object} response - Upload response with analysis ID
14035
+ * @returns {string} response.data.id - Analysis ID for polling results
14036
+ */
14037
+ uploadFileForScanning: {
14038
+ url: "/files",
14039
+ method: "POST"
14040
+ },
14041
+ /**
14042
+ * GET /analyses/{id} - Get analysis result
14043
+ * Retrieve scan results for previously uploaded file
14044
+ *
14045
+ * @param {string} id - Analysis ID from upload response
14046
+ * @returns {object} response - Analysis result with threat details
14047
+ */
14048
+ getAnalysisResult: {
14049
+ url: "/analyses/:id",
14050
+ method: "GET",
14051
+ cacheTime: 0
14052
+ // Don't cache scan results (they update)
14053
+ },
14054
+ // ========== Health & Info ==========
14055
+ /**
14056
+ * GET /version - Get API version info (health check)
14057
+ * Simple endpoint to verify API availability
14058
+ */
14059
+ getApiVersion: {
14060
+ url: "/version",
14061
+ method: "GET",
14062
+ cacheTime: 300,
14063
+ // Cache for 5 minutes
14064
+ staleTime: 600
14065
+ }
14066
+ };
14067
+ ({
14068
+ ...virusTotalEndpoints
14069
+ });
14070
+ var cloudflareEndpoints = {
14071
+ /**
14072
+ * POST /zones/{zoneId}/purge_cache - Purge files from cache
14073
+ * Purge specific files or all files in a zone
14074
+ * Rate limits may change; see official documentation for current limits:
14075
+ * https://developers.cloudflare.com/api/operations/zone-purge#rate-limits
14076
+ *
14077
+ * @param {string} zoneId - Cloudflare Zone ID
14078
+ * @returns {object} response - Purge result with success status
14079
+ */
14080
+ cloudflarePurgeCache: {
14081
+ url: "/zones/:zoneId/purge_cache",
14082
+ method: "POST",
14083
+ cacheTime: 0
14084
+ // Don't cache purge operations
14085
+ }
14086
+ };
14087
+ var cloudFrontEndpoints = {
14088
+ /**
14089
+ * POST /{apiVersion}/distribution/{distributionId}/invalidation - Create invalidation
14090
+ * Creates an invalidation batch for specified paths
14091
+ * Rate limits may change; see the official AWS documentation for current limits:
14092
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html
14093
+ * Requires AWS Signature Version 4 authentication
14094
+ *
14095
+ * @param {string} distributionId - CloudFront Distribution ID
14096
+ * @returns {object} response - Invalidation result with ID and status
14097
+ */
14098
+ cloudFrontCreateInvalidation: {
14099
+ url: `/${AWS_CLOUDFRONT_CONFIG.API_VERSION}/distribution/:distributionId/invalidation`,
14100
+ method: "POST",
14101
+ cacheTime: 0
14102
+ }
14103
+ };
14104
+ var fastlyEndpoints = {
14105
+ /**
14106
+ * POST /service/{serviceId}/purge/{url} - Purge single URL
14107
+ * Instant soft-purge of specific URL
14108
+ * Rate limit: Unlimited soft-purges. Hard-purges are limited to 1000 requests per hour per service (as of 2024-06). See Fastly documentation for updates:
14109
+ * @see https://developer.fastly.com/reference/api/purging/#rate-limits
14110
+ *
14111
+ * @param {string} serviceId - Fastly Service ID
14112
+ * @param {string} url - URL to purge (URL-encoded)
14113
+ * @returns {object} response - Purge result with status
14114
+ */
14115
+ fastlyPurgeUrl: {
14116
+ url: "/service/:serviceId/purge/:url",
14117
+ method: "POST",
14118
+ cacheTime: 0
14119
+ }
14120
+ };
14121
+ var cdnEndpoints = {
14122
+ ...cloudflareEndpoints,
14123
+ ...cloudFrontEndpoints,
14124
+ ...fastlyEndpoints
14125
+ };
14126
+
14024
14127
  // src/api/endpoints/utils.ts
14025
14128
  function getEndpointUrl(name) {
14026
14129
  return endpoints[name].url;
@@ -14195,7 +14298,13 @@ var endpoints = {
14195
14298
  // These are only examples for the polling, none of these endpoints doesnt exist yet
14196
14299
  ...pollingEndpoints,
14197
14300
  // Infobip third-party provider endpoints (Email, SMS, WhatsApp)
14198
- ...infobipEndpoints
14301
+ ...infobipEndpoints,
14302
+ // VirusTotal third-party provider endpoints (Virus/Malware scanning)
14303
+ ...virusTotalEndpoints,
14304
+ // CDN provider endpoints (Cloudflare, CloudFront, Fastly)
14305
+ ...cloudflareEndpoints,
14306
+ ...cloudFrontEndpoints,
14307
+ ...fastlyEndpoints
14199
14308
  };
14200
14309
  var isSlowConnection = isSlowConnection$1;
14201
14310
  function isNetworkAPISupported() {
@@ -22976,6 +23085,27 @@ function enhanceClientWithMethods(params) {
22976
23085
  client,
22977
23086
  eventManager2
22978
23087
  );
23088
+ clientWithEvents.get = (url, config) => {
23089
+ return client.request(url, { ...config, method: "GET" });
23090
+ };
23091
+ clientWithEvents.post = (url, data, config) => {
23092
+ return client.request(url, { ...config, method: "POST", data });
23093
+ };
23094
+ clientWithEvents.put = (url, data, config) => {
23095
+ return client.request(url, { ...config, method: "PUT", data });
23096
+ };
23097
+ clientWithEvents.patch = (url, data, config) => {
23098
+ return client.request(url, { ...config, method: "PATCH", data });
23099
+ };
23100
+ clientWithEvents.delete = (url, config) => {
23101
+ return client.request(url, { ...config, method: "DELETE" });
23102
+ };
23103
+ clientWithEvents.head = (url, config) => {
23104
+ return client.request(url, { ...config, method: "HEAD" });
23105
+ };
23106
+ clientWithEvents.options = (url, config) => {
23107
+ return client.request(url, { ...config, method: "OPTIONS" });
23108
+ };
22979
23109
  }
22980
23110
  __name(enhanceClientWithMethods, "enhanceClientWithMethods");
22981
23111
  function initializeClientSystems(options) {
@@ -25415,6 +25545,335 @@ async function updateInfobipScheduledEmailStatuses(params, payload, options) {
25415
25545
  });
25416
25546
  }
25417
25547
  __name(updateInfobipScheduledEmailStatuses, "updateInfobipScheduledEmailStatuses");
25548
+ async function uploadFileForScanning(payload, options) {
25549
+ const client = options?.apiClient ?? getDefaultApiClient();
25550
+ if (!payload.file) {
25551
+ throw new ApiPackageError(
25552
+ "Missing required field: file",
25553
+ void 0,
25554
+ API_ERROR_CODES.REQUIRED_FIELD_MISSING
25555
+ );
25556
+ }
25557
+ if (!payload.filename) {
25558
+ throw new ApiPackageError(
25559
+ "Missing required field: filename",
25560
+ void 0,
25561
+ API_ERROR_CODES.REQUIRED_FIELD_MISSING
25562
+ );
25563
+ }
25564
+ if (payload.file.length === 0) {
25565
+ throw new ApiPackageError(
25566
+ "File buffer cannot be empty",
25567
+ void 0,
25568
+ API_ERROR_CODES.INVALID_INPUT
25569
+ );
25570
+ }
25571
+ const serviceDefaults = {
25572
+ retry: { attempts: 2 },
25573
+ // Allow retries for network issues
25574
+ timeout: 6e4
25575
+ // 60 second timeout for file uploads
25576
+ };
25577
+ const mergedConfig = mergeConfigs(serviceDefaults, options?.apiConfig ?? {});
25578
+ const updateOptions = {
25579
+ strategy: "temporary",
25580
+ ...options?.updateConfigOptions
25581
+ };
25582
+ if (shouldApplyConfig(mergedConfig, updateOptions)) {
25583
+ client.updateConfig(mergedConfig, updateOptions);
25584
+ }
25585
+ const formData = new FormData();
25586
+ const blob = new Blob([new Uint8Array(payload.file)]);
25587
+ formData.append("file", blob, payload.filename);
25588
+ return client.uploadFileForScanning({
25589
+ body: formData
25590
+ });
25591
+ }
25592
+ __name(uploadFileForScanning, "uploadFileForScanning");
25593
+ async function getAnalysisResult(payload, options) {
25594
+ const client = options?.apiClient ?? getDefaultApiClient();
25595
+ if (!payload.analysisId) {
25596
+ throw new ApiPackageError(
25597
+ "Missing required field: analysisId",
25598
+ void 0,
25599
+ API_ERROR_CODES.REQUIRED_FIELD_MISSING
25600
+ );
25601
+ }
25602
+ const serviceDefaults = {
25603
+ retry: { attempts: 3 },
25604
+ // Allow retries for polling
25605
+ timeout: 3e4,
25606
+ // 30 second timeout
25607
+ cacheTime: 0
25608
+ // Don't cache (results change as scan progresses)
25609
+ };
25610
+ const mergedConfig = mergeConfigs(serviceDefaults, options?.apiConfig ?? {});
25611
+ const updateOptions = {
25612
+ strategy: "temporary",
25613
+ ...options?.updateConfigOptions
25614
+ };
25615
+ if (shouldApplyConfig(mergedConfig, updateOptions)) {
25616
+ client.updateConfig(mergedConfig, updateOptions);
25617
+ }
25618
+ return client.getAnalysisResult({
25619
+ params: { id: payload.analysisId }
25620
+ });
25621
+ }
25622
+ __name(getAnalysisResult, "getAnalysisResult");
25623
+ async function cloudflarePurgeCache(payload, options) {
25624
+ const client = options?.apiClient ?? getDefaultApiClient();
25625
+ if (!payload.zoneId) {
25626
+ throw new ApiPackageError(
25627
+ "Missing required field: zoneId",
25628
+ HTTP_STATUS.BAD_REQUEST,
25629
+ API_ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND
25630
+ );
25631
+ }
25632
+ if (!payload.apiToken) {
25633
+ throw new ApiPackageError(
25634
+ "Missing required field: apiToken",
25635
+ HTTP_STATUS.UNAUTHORIZED,
25636
+ API_ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED
25637
+ );
25638
+ }
25639
+ if (!payload.files || payload.files.length === 0) {
25640
+ throw new ApiPackageError(
25641
+ "Missing required field: files (must be non-empty array)",
25642
+ HTTP_STATUS.BAD_REQUEST,
25643
+ API_ERROR_CODES.CLOUDFLARE_INVALID_URL
25644
+ );
25645
+ }
25646
+ const serviceDefaults = {
25647
+ retry: { attempts: 2 },
25648
+ timeout: 3e4
25649
+ // 30 seconds
25650
+ };
25651
+ const mergedConfig = mergeConfigs(serviceDefaults, options?.apiConfig ?? {});
25652
+ const updateOptions = {
25653
+ strategy: "temporary",
25654
+ ...options?.updateConfigOptions
25655
+ };
25656
+ if (shouldApplyConfig(mergedConfig, updateOptions)) {
25657
+ client.updateConfig(mergedConfig, updateOptions);
25658
+ }
25659
+ return client.cloudflarePurgeCache({
25660
+ params: { zoneId: payload.zoneId },
25661
+ headers: {
25662
+ Authorization: `Bearer ${payload.apiToken}`
25663
+ },
25664
+ body: {
25665
+ files: payload.files,
25666
+ zoneId: payload.zoneId,
25667
+ apiToken: payload.apiToken
25668
+ }
25669
+ });
25670
+ }
25671
+ __name(cloudflarePurgeCache, "cloudflarePurgeCache");
25672
+ function generateAWSSignatureV4(options) {
25673
+ const {
25674
+ accessKeyId,
25675
+ secretAccessKey,
25676
+ sessionToken,
25677
+ region,
25678
+ service,
25679
+ method,
25680
+ path,
25681
+ queryString = "",
25682
+ headers: headers2,
25683
+ payload,
25684
+ host
25685
+ } = options;
25686
+ const timestamp = options.timestamp ?? (/* @__PURE__ */ new Date()).toISOString().replace(/[:-]|\.\d{3}/g, "");
25687
+ const dateStamp = timestamp.split("T")[0];
25688
+ const baseHeaders = { ...headers2 };
25689
+ if (!Object.keys(baseHeaders).some((h) => h.toLowerCase() === "host")) {
25690
+ baseHeaders["Host"] = host;
25691
+ }
25692
+ if (sessionToken) {
25693
+ baseHeaders["X-Amz-Security-Token"] = sessionToken;
25694
+ }
25695
+ baseHeaders["X-Amz-Date"] = timestamp;
25696
+ const canonicalHeaders = Object.keys(baseHeaders).sort().map((key) => `${key.toLowerCase()}:${baseHeaders[key].trim()}`).join("\n");
25697
+ const signedHeaders = Object.keys(baseHeaders).sort().map((key) => key.toLowerCase()).join(";");
25698
+ const payloadHash = crypto2.createHash("sha256").update(payload).digest("hex");
25699
+ const canonicalRequest = [
25700
+ method,
25701
+ path,
25702
+ queryString,
25703
+ canonicalHeaders + "\n",
25704
+ signedHeaders,
25705
+ payloadHash
25706
+ ].join("\n");
25707
+ const algorithm = "AWS4-HMAC-SHA256";
25708
+ const credentialScope = `${dateStamp}/${region}/${service}/aws4_request`;
25709
+ const canonicalRequestHash = crypto2.createHash("sha256").update(canonicalRequest).digest("hex");
25710
+ const stringToSign = [algorithm, timestamp, credentialScope, canonicalRequestHash].join("\n");
25711
+ const kDate = crypto2.createHmac("sha256", `AWS4${secretAccessKey}`).update(dateStamp).digest();
25712
+ const kRegion = crypto2.createHmac("sha256", kDate).update(region).digest();
25713
+ const kService = crypto2.createHmac("sha256", kRegion).update(service).digest();
25714
+ const kSigning = crypto2.createHmac("sha256", kService).update("aws4_request").digest();
25715
+ const signature = crypto2.createHmac("sha256", kSigning).update(stringToSign).digest("hex");
25716
+ const authorization = `${algorithm} Credential=${accessKeyId}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`;
25717
+ return {
25718
+ headers: baseHeaders,
25719
+ authorization
25720
+ };
25721
+ }
25722
+ __name(generateAWSSignatureV4, "generateAWSSignatureV4");
25723
+
25724
+ // src/api/utils/aws/xml/cloudfront.ts
25725
+ function generateCloudFrontInvalidationXML(paths, callerReference) {
25726
+ const items = paths.map((path) => `<Path>${escapeXml(path)}</Path>`).join("\n ");
25727
+ return `<?xml version="1.0" encoding="UTF-8"?>
25728
+ <InvalidationBatch xmlns="http://cloudfront.amazonaws.com/doc/2020-05-31/">
25729
+ <Paths>
25730
+ <Quantity>${paths.length}</Quantity>
25731
+ <Items>
25732
+ ${items}
25733
+ </Items>
25734
+ </Paths>
25735
+ <CallerReference>${escapeXml(callerReference)}</CallerReference>
25736
+ </InvalidationBatch>`;
25737
+ }
25738
+ __name(generateCloudFrontInvalidationXML, "generateCloudFrontInvalidationXML");
25739
+ function escapeXml(str) {
25740
+ const xmlEscapes = {
25741
+ "&": "&amp;",
25742
+ "<": "&lt;",
25743
+ ">": "&gt;",
25744
+ '"': "&quot;",
25745
+ "'": "&apos;"
25746
+ };
25747
+ return str.replace(/[&<>"']/g, (ch) => xmlEscapes[ch]);
25748
+ }
25749
+ __name(escapeXml, "escapeXml");
25750
+ function generateCloudFrontCallerReference(prefix = "api") {
25751
+ return `${prefix}-${Date.now()}`;
25752
+ }
25753
+ __name(generateCloudFrontCallerReference, "generateCloudFrontCallerReference");
25754
+
25755
+ // src/api/services/cdn/cloudfront/POST/cloudFrontCreateInvalidation.ts
25756
+ async function cloudFrontCreateInvalidation(payload, options) {
25757
+ const client = options?.apiClient ?? getDefaultApiClient();
25758
+ if (!payload.distributionId) {
25759
+ throw new ApiPackageError(
25760
+ "Missing required field: distributionId",
25761
+ HTTP_STATUS.BAD_REQUEST,
25762
+ API_ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND
25763
+ );
25764
+ }
25765
+ if (!payload.accessKeyId) {
25766
+ throw new ApiPackageError(
25767
+ "Missing required field: accessKeyId",
25768
+ HTTP_STATUS.UNAUTHORIZED,
25769
+ API_ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED
25770
+ );
25771
+ }
25772
+ if (!payload.secretAccessKey) {
25773
+ throw new ApiPackageError(
25774
+ "Missing required field: secretAccessKey",
25775
+ HTTP_STATUS.UNAUTHORIZED,
25776
+ API_ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED
25777
+ );
25778
+ }
25779
+ if (!payload.paths || payload.paths.length === 0) {
25780
+ throw new ApiPackageError(
25781
+ "Missing required field: paths (must be non-empty array)",
25782
+ HTTP_STATUS.BAD_REQUEST,
25783
+ API_ERROR_CODES.CLOUDFRONT_INVALID_PATH
25784
+ );
25785
+ }
25786
+ const region = payload.region ?? AWS_CLOUDFRONT_CONFIG.DEFAULT_REGION;
25787
+ const service = AWS_CLOUDFRONT_CONFIG.SERVICE_NAME;
25788
+ const host = AWS_CLOUDFRONT_CONFIG.HOST;
25789
+ const method = "POST";
25790
+ const path = `/${AWS_CLOUDFRONT_CONFIG.API_VERSION}/distribution/${payload.distributionId}/invalidation`;
25791
+ const callerReference = generateCloudFrontCallerReference("api");
25792
+ const body = generateCloudFrontInvalidationXML(payload.paths, callerReference);
25793
+ const { headers: signedHeaders, authorization } = generateAWSSignatureV4({
25794
+ accessKeyId: payload.accessKeyId,
25795
+ secretAccessKey: payload.secretAccessKey,
25796
+ sessionToken: payload.sessionToken,
25797
+ region,
25798
+ service,
25799
+ method,
25800
+ path,
25801
+ host,
25802
+ headers: {
25803
+ "Content-Type": "application/xml"
25804
+ },
25805
+ payload: body
25806
+ });
25807
+ const serviceDefaults = {
25808
+ retry: { attempts: 2 },
25809
+ timeout: 3e4
25810
+ // 30 seconds
25811
+ };
25812
+ const mergedConfig = mergeConfigs(serviceDefaults, options?.apiConfig ?? {});
25813
+ const updateOptions = {
25814
+ strategy: "temporary",
25815
+ ...options?.updateConfigOptions
25816
+ };
25817
+ if (shouldApplyConfig(mergedConfig, updateOptions)) {
25818
+ client.updateConfig(mergedConfig, updateOptions);
25819
+ }
25820
+ return client.cloudFrontCreateInvalidation({
25821
+ params: { distributionId: payload.distributionId },
25822
+ headers: {
25823
+ ...signedHeaders,
25824
+ Authorization: authorization
25825
+ },
25826
+ body
25827
+ });
25828
+ }
25829
+ __name(cloudFrontCreateInvalidation, "cloudFrontCreateInvalidation");
25830
+ async function fastlyPurgeUrl(payload, options) {
25831
+ const client = options?.apiClient ?? getDefaultApiClient();
25832
+ if (!payload.serviceId) {
25833
+ throw new ApiPackageError(
25834
+ "Missing required field: serviceId",
25835
+ HTTP_STATUS.BAD_REQUEST,
25836
+ API_ERROR_CODES.FASTLY_SERVICE_NOT_FOUND
25837
+ );
25838
+ }
25839
+ if (!payload.apiToken) {
25840
+ throw new ApiPackageError(
25841
+ "Missing required field: apiToken",
25842
+ HTTP_STATUS.UNAUTHORIZED,
25843
+ API_ERROR_CODES.FASTLY_AUTHENTICATION_FAILED
25844
+ );
25845
+ }
25846
+ if (!payload.url) {
25847
+ throw new ApiPackageError(
25848
+ "Missing required field: url",
25849
+ HTTP_STATUS.BAD_REQUEST,
25850
+ API_ERROR_CODES.FASTLY_INVALID_URL
25851
+ );
25852
+ }
25853
+ const serviceDefaults = {
25854
+ retry: { attempts: 2 },
25855
+ timeout: 15e3
25856
+ // 15 seconds
25857
+ };
25858
+ const mergedConfig = mergeConfigs(serviceDefaults, options?.apiConfig ?? {});
25859
+ const updateOptions = {
25860
+ strategy: "temporary",
25861
+ ...options?.updateConfigOptions
25862
+ };
25863
+ if (shouldApplyConfig(mergedConfig, updateOptions)) {
25864
+ client.updateConfig(mergedConfig, updateOptions);
25865
+ }
25866
+ return client.fastlyPurgeUrl({
25867
+ params: {
25868
+ serviceId: payload.serviceId,
25869
+ url: encodeURIComponent(payload.url)
25870
+ },
25871
+ headers: {
25872
+ "Fastly-Key": payload.apiToken
25873
+ }
25874
+ });
25875
+ }
25876
+ __name(fastlyPurgeUrl, "fastlyPurgeUrl");
25418
25877
  function getSSRSafeConfig(config) {
25419
25878
  if (!isBrowser()) {
25420
25879
  return {
@@ -25632,6 +26091,6 @@ __name(toFetchffRevalidationConfig, "toFetchffRevalidationConfig");
25632
26091
  resources: revalidationStrategies.static
25633
26092
  });
25634
26093
 
25635
- export { ALL_EVENTS, ApiPackageError, CACHE_EVENTS2 as CACHE_EVENTS, CLIENT_EVENTS2 as CLIENT_EVENTS, CONFIG_EVENTS2 as CONFIG_EVENTS, ClientEventManager, ClientHintsInterceptor, ConfigBuilder, DEBUG_EVENTS2 as DEBUG_EVENTS, ERROR_EVENTS2 as ERROR_EVENTS, EVENT_NAMESPACES2 as EVENT_NAMESPACES, EVENT_SCOPES, EVENT_SCOPES_WITH_TEMPORARY2 as EVENT_SCOPES_WITH_TEMPORARY, Environment, EventHelpers, EventManager, HANDLER_SCOPES, HEADER_EVENTS2 as HEADER_EVENTS, HeaderBuilder, IntervalManager, MEDIA_EXTENSIONS, MEDIA_MIME_PREFIXES, MinimumConnectionGuard, NETWORK_EVENTS2 as NETWORK_EVENTS, NetworkConfigurationManager, NetworkDetectionMiddleware, NetworkGuard, NetworkInfoParam, NetworkPresetNames, NetworkProperty, NoDataSaverGuard, PERFORMANCE_EVENTS2 as PERFORMANCE_EVENTS, RequestTracker, UnifiedDebugger, abortAllRequests, abortByPattern, abortRequest, abortSearchRequests, abortUploadRequests, addClientHintsToResponse, addInterval, addTime, analyzeComplianceIssues, analyzeConfigImpact, analyzeConflictPatterns, analyzeEventSystemIssues, analyzeHistoryPatterns, analyzePerformanceIssues, applyCacheStrategyConfig, applyConfigOverride, applyConfigPreset, applyConfigUpdate, applyCustomQualityPresetStrategies, applyHeaderPresets, applyIndividualStrategies, applyPerformancePresetConfig, applyPollingStrategy, applyPollingStrategyConfig, applyRetryStrategy, applyRetryStrategyConfig, applyRevalidationStrategy, applyTemporaryNetworkOverride, applyUnifiedStrategy, applyUnifiedStrategyToConfig, arrayOf, average, base64ToBytes, buildCacheKey, buildEndpointUrl, buildFullUrl, buildUrl, bulkValidateInfobipEmails, bytesToBase64, cacheKeyPatterns, cacheStrategies, calculateCacheDuration, calculatePerformanceImpact, calculatePollingDuration, calculateRequestMetrics, campaignEndpoints, canPerformHeavyOperation, checkOverrideTriggers, clamp, clampedPercentage, clearErrorHandlers, clearNetworkDebugData, clearTemporaryOverrides, cloneConfig, compactHistory, configConflictDetector, configureForEnvironment, containsAny, convertEndpointsToFetchff, createAbortError, createAdaptiveResponse, createApiClient, createCachePattern, createCacheStrategy, createCampaign, createComplianceReport, createConditionalInterval, createConditionalPolling, createConfigBuilder, createConfigHistoryEntry, createConfigState, createConflict, createCustomPreset, createCustomUnifiedStrategy, createDate, createDebouncedAbort, createDebugReport, createDecryptionInterceptor, createDelay, createEncryptionInterceptor, createEncryptionInterceptors, createEventEmitter, createHistoryEntry, createHistorySummary, createLimitedInterval, createManagedInterval, createNetworkDetectionMiddleware, createPerformanceAnalysis, createPerformanceBenchmark, createPollingStrategy, createPreservedConfig, createProgressivePolling, createRetryConfig, createRetryStrategy, createRevalidationKey, createRevalidationStrategy, createRouteGuard, createRouteScope, createScopedAbort, createStatusCodeLimits, createThrottledAbort, createTypedSubscription, createVisibilityAwarePolling, dateDiff, debounce, decrypt, deepMerge, deleteCache, deleteCampaign, detectConfigConflicts, detectConflicts, detectPlatform, determinePrecedenceReason, disableNetworkConfigDebug, enableNetworkConfigDebug, encrypt, endOfDay, endpointCacheKey, endpointCachePattern, endpointCachePatterns, endpoints, eventManager, exportKeyToBase64, extendPresets as extendRevalidationPresets, extractFields, extractUrlParams, fetchCampaign, fetchCampaignParticipants, fetchCampaignStats, fetchCampaigns, fetchInfobipEmailLogs, fetchInfobipEmailReports, fetchInfobipScheduledEmailStatuses, fetchInfobipScheduledEmails, fetchInfobipValidations, filterHistory, filterObject, findEndpointsByPattern, findMatchingPaths, flattenObject, formatDuration, formatReportForConsole, formatTimeForInterval, fromFetchffConfig, fromISOString, fromUnixTimestamp, generateComprehensiveReport, generateIV, generateIssueBreakdown, generateRandomKey, generateRecommendations, generateUUID, getActiveOverrideKeys, getAdaptiveApiConfig, getAdaptiveBatchSize, getAdaptiveCacheDuration, getAdaptiveConfig, getAdaptivePageSize, getAdaptiveTimeout, getAllEndpointUrls, getAllFieldPaths, getAllMediaExtensions, getAppVersion, getAuthenticationType, getCache, getCacheAffectingHeaders, getCacheStrategy, getClientHintHeaders, getConfigHierarchy, getConnection, getConnectionType, getConsole, getContextHeaders, getCrypto, getDefaultApiClient, getDeviceId, getDeviceInfo, getDocument, getEffectiveConfig, getEffectiveConnectionType, getEndpointConfig, getEndpointMetadata, getEndpointParams, getEndpointUrl, getEndpointsByMethod, getEnhancedClientHints, getEntries, getEnv, getEnvironmentInfo, getEnvironmentName, getErrorHandlers, getEventManager, getExtendedEnvironmentInfo, getFieldValue, getFileExtension, getFrameworkAdaptiveBatchSize, getFrameworkAdaptiveTimeout, getGlobal, getGlobalConfig, getHeaderFingerprint, getHeaderSummary, getISOWeek, getIntervalBoundaries, getIntervalDifference, getIntervalEnd, getIntervalStart, getJSONSize, getKeys, getLocalStorage, getLocation, getMatchingPresets, getNavigator, getNetworkConfigFromHeaders, getNetworkDebugStats, getNetworkEventStats, getNetworkInfo, getNetworkInfoFromHeaders, getNetworkInfoFromRequest, getNetworkOptimizedConfig, getNetworkPreset, getNetworkQuality, getNetworkQualityFromHeaders, getNetworkQualityScore, getNetworkQualityWithThresholds, getNetworkRTT, getNetworkSpeed, getNonCacheAffectingHeaders, getOptimizedNetworkConfig, getPresetForNetworkInfo, getPresetForQuality, getPresetNames, getProcess, getQuarter, getRelativeTime, getRetryStrategy, getPreset as getRevalidationPreset, getPresets as getRevalidationPresets, getRevalidationStrategy, getRuntimeEnvironment, getSSRSafeConfig, getSSRSafePollingConfig, getSessionStorage, getTimeComponents, getUnifiedDebugger, getUnifiedStrategy, getUnifiedStrategyNames, getUnixTimestamp, getUserAgent, getValues, getWindow, groupBy, handleArrayMerge, handleObjectMerge, hasAnyExtension, hasAuthentication, hasEncryptableFields, hasEndpoint, hasGlobal, hasIndexedDB, hasLocalStorage, hasMatchingFields, hasNavigator, hasNetworkInfo2 as hasNetworkInfoExpress, hasNetworkInfo as hasNetworkInfoNextjs, hasPathParams, hasPreset, hasProperty, hasSessionStorage, hasWebGL, hasWebPSupport, headerPresets, headers, headersContext, importKey, inBrowser, inRange, inServer, infobipEmailEndpoints, infobipEndpoints, invalidationScenarios, inverseLerp, isAbortError, isArray, isBoolean, isBrowser, isBun, isCI, isCacheValid, isCellularConnection, isCryptoAvailable, isDataFresh, isDataSaverEnabled, isDataSaverEnabledFromHeaders, isDebug, isDeno, isDevelopment, isDocumentVisible, isElectron, isEmpty, isEmptyObject, isEncryptedMetadata, isError, isFunction, isFuture, isInIframe, isInRange, isInteger, isMergeableObject, isMobile, isNetworkAPISupported, isNode, isNonEmptyArray, isNonEmptyObject, isNonEmptyString2 as isNonEmptyString, isNonNegativeNumber, isNotNullish, isNullish, isNumber, isObject, isOffline, isOneOfIgnoreCase, isOnline, isPageFocused, isPast, isPlainObject, isPollingActive, isPositiveNumber, isProduction, isPromise, isReactNative, isRevalidationSupported, isSSR, isSameDay, isSameInterval, isServer, isSlowConnection, isStaging, isString, isTest, isToday, isTouchDevice, isUnifiedStrategyName, isValidDate, isValidEnumValue, isValidFieldPath, isValidJSON, isValidNumber2 as isValidNumber, isValidPollingConfig, isValidStrategyName as isValidRevalidationStrategyName, isWebWorker, isWifiConnection, isWildcard, isWithinDedupeWindow, joinCampaign, jsonClone, jsonEquals, keyBy, leaveCampaign, lerp, logNetworkConfigReport, mapKeys, mapObject, mapRange, matchFieldPath, matchesAny, max, median, mergeCacheStrategies, mergeConfigs, mergeConflicts, mergeHeaders, mergePollingConfigs, mergePresets, mergeRetryStrategies, mergeRevalidationStrategies, mergeUnifiedStrategy, min, msToSeconds, mutate2 as mutate, networkConfigDebugger, networkConfigManager, networkDetectionMiddleware, networkPresets, networkStatus, normalizeHeaders3 as normalizeHeaders, now, nowInSeconds, omit, onOffline, onOnline, onceErrorHandler, oneOf, parseAndValidateNumber, parseFieldPath, percentage, pick, pollingEndpoints, pollingStrategies, prepareRequestConfig, prepareRequestConfigWithEnrichedHeaders, prettyStringify, processHeaders2 as processHeaders, raceRequests, randomBetween, randomInt, registerErrorHandler, registerErrorHandlers, removeCircularReferences, removeEmpty, removeNullish, removeSensitiveHeaders, removeUndefined, requestTracker, requestWithTimeout, rescheduleInfobipEmails, resetGlobalConfig, resetPresets as resetRevalidationPresets, resolveConflict, retryConditions, retryStrategies, genericPresets as revalidationPresets, revalidationStrategies, round, runWithHeaders, runWithHeadersAsync, safeParseJSON, safeStringify, sanitizeHeaders2 as sanitizeHeaders, secondsToMs, sendInfobipAdvancedEmail, sendInfobipEmail, sequentialRequests, setCache, setConfigWarnings, setDefaultApiClient, setErrorHandlers, setFieldValue, setGlobalConfig, setupClientEvents, setupNetworkMonitoring, setupRouteChangeCleanup, setupTemporaryOverride, shouldApplyConfig, shouldAutoRefresh, shouldPrefetch, shouldServeHighQuality, shouldUseAggressiveCaching, sleep, sortIssuesByPriority, startNetworkEventMonitoring, startOfDay, startRequestTracking, subscribe, subscribeMultiple, subscribeOnce, subscribeWithTimeout, sum, supportsBroadcastChannel, supportsFetch, supportsGeolocation, supportsIntersectionObserver, supportsLocalStorage, supportsNotifications, supportsPushNotifications, supportsRequestIdleCallback, supportsServiceWorker, supportsSessionStorage, supportsWebSocket, throttle, timeAgo, toFetchffConfig, toFetchffRevalidationConfig, toISOString, trackConfig, trackDirectCacheConfig, trackNetworkOverride, trackSpreadProperties, trackableSpread, transformFields, truncateJSON, unifiedStrategies, unregisterErrorHandlers, updateCampaign, updateGlobalConfig, updateInfobipScheduledEmailStatuses, useAbortableRequest, useApiConfigConflicts, useApiDebugInfo, useApiMonitor, useApiNetworkQuality, useCampaign, useCampaignParticipants, useCampaignStats, useCampaigns, useConditionalSubscription, useCreateCampaign, useDebouncedSubscription, useDeleteCampaign, useJoinCampaign, useLeaveCampaign, useMultipleSubscriptions, useOptimisticUpdate, useRealTimeData, useRequestCleanup, useRequestGroup, useRouteAwareRequest, useSubscription, useSubscriptionState, useUpdateCampaign, validateConfigUpdate, validateEncryptionConfig, validateHeaders2 as validateHeaders, validateInfobipEmail, validatePathParams, validatePreset, waitForOnline, withNetworkDetection, withNetworkInfo, withTimeout };
26094
+ export { ALL_EVENTS, ApiPackageError, CACHE_EVENTS2 as CACHE_EVENTS, CLIENT_EVENTS2 as CLIENT_EVENTS, CONFIG_EVENTS2 as CONFIG_EVENTS, ClientEventManager, ClientHintsInterceptor, ConfigBuilder, DEBUG_EVENTS2 as DEBUG_EVENTS, ERROR_EVENTS2 as ERROR_EVENTS, EVENT_NAMESPACES2 as EVENT_NAMESPACES, EVENT_SCOPES, EVENT_SCOPES_WITH_TEMPORARY2 as EVENT_SCOPES_WITH_TEMPORARY, Environment, EventHelpers, EventManager, HANDLER_SCOPES, HEADER_EVENTS2 as HEADER_EVENTS, HeaderBuilder, IntervalManager, MEDIA_EXTENSIONS, MEDIA_MIME_PREFIXES, MinimumConnectionGuard, NETWORK_EVENTS2 as NETWORK_EVENTS, NetworkConfigurationManager, NetworkDetectionMiddleware, NetworkGuard, NetworkInfoParam, NetworkPresetNames, NetworkProperty, NoDataSaverGuard, PERFORMANCE_EVENTS2 as PERFORMANCE_EVENTS, RequestTracker, UnifiedDebugger, abortAllRequests, abortByPattern, abortRequest, abortSearchRequests, abortUploadRequests, addClientHintsToResponse, addInterval, addTime, analyzeComplianceIssues, analyzeConfigImpact, analyzeConflictPatterns, analyzeEventSystemIssues, analyzeHistoryPatterns, analyzePerformanceIssues, applyCacheStrategyConfig, applyConfigOverride, applyConfigPreset, applyConfigUpdate, applyCustomQualityPresetStrategies, applyHeaderPresets, applyIndividualStrategies, applyPerformancePresetConfig, applyPollingStrategy, applyPollingStrategyConfig, applyRetryStrategy, applyRetryStrategyConfig, applyRevalidationStrategy, applyTemporaryNetworkOverride, applyUnifiedStrategy, applyUnifiedStrategyToConfig, arrayOf, average, base64ToBytes, buildCacheKey, buildEndpointUrl, buildFullUrl, buildUrl, bulkValidateInfobipEmails, bytesToBase64, cacheKeyPatterns, cacheStrategies, calculateCacheDuration, calculatePerformanceImpact, calculatePollingDuration, calculateRequestMetrics, campaignEndpoints, canPerformHeavyOperation, cdnEndpoints, checkOverrideTriggers, clamp, clampedPercentage, clearErrorHandlers, clearNetworkDebugData, clearTemporaryOverrides, cloneConfig, cloudFrontCreateInvalidation, cloudFrontEndpoints, cloudflareEndpoints, cloudflarePurgeCache, compactHistory, configConflictDetector, configureForEnvironment, containsAny, convertEndpointsToFetchff, createAbortError, createAdaptiveResponse, createApiClient, createCachePattern, createCacheStrategy, createCampaign, createComplianceReport, createConditionalInterval, createConditionalPolling, createConfigBuilder, createConfigHistoryEntry, createConfigState, createConflict, createCustomPreset, createCustomUnifiedStrategy, createDate, createDebouncedAbort, createDebugReport, createDecryptionInterceptor, createDelay, createEncryptionInterceptor, createEncryptionInterceptors, createEventEmitter, createHistoryEntry, createHistorySummary, createLimitedInterval, createManagedInterval, createNetworkDetectionMiddleware, createPerformanceAnalysis, createPerformanceBenchmark, createPollingStrategy, createPreservedConfig, createProgressivePolling, createRetryConfig, createRetryStrategy, createRevalidationKey, createRevalidationStrategy, createRouteGuard, createRouteScope, createScopedAbort, createStatusCodeLimits, createThrottledAbort, createTypedSubscription, createVisibilityAwarePolling, dateDiff, debounce, decrypt, deepMerge, deleteCache, deleteCampaign, detectConfigConflicts, detectConflicts, detectPlatform, determinePrecedenceReason, disableNetworkConfigDebug, enableNetworkConfigDebug, encrypt, endOfDay, endpointCacheKey, endpointCachePattern, endpointCachePatterns, endpoints, eventManager, exportKeyToBase64, extendPresets as extendRevalidationPresets, extractFields, extractUrlParams, fastlyEndpoints, fastlyPurgeUrl, fetchCampaign, fetchCampaignParticipants, fetchCampaignStats, fetchCampaigns, fetchInfobipEmailLogs, fetchInfobipEmailReports, fetchInfobipScheduledEmailStatuses, fetchInfobipScheduledEmails, fetchInfobipValidations, filterHistory, filterObject, findEndpointsByPattern, findMatchingPaths, flattenObject, formatDuration, formatReportForConsole, formatTimeForInterval, fromFetchffConfig, fromISOString, fromUnixTimestamp, generateComprehensiveReport, generateIV, generateIssueBreakdown, generateRandomKey, generateRecommendations, generateUUID, getActiveOverrideKeys, getAdaptiveApiConfig, getAdaptiveBatchSize, getAdaptiveCacheDuration, getAdaptiveConfig, getAdaptivePageSize, getAdaptiveTimeout, getAllEndpointUrls, getAllFieldPaths, getAllMediaExtensions, getAnalysisResult, getAppVersion, getAuthenticationType, getCache, getCacheAffectingHeaders, getCacheStrategy, getClientHintHeaders, getConfigHierarchy, getConnection, getConnectionType, getConsole, getContextHeaders, getCrypto, getDefaultApiClient, getDeviceId, getDeviceInfo, getDocument, getEffectiveConfig, getEffectiveConnectionType, getEndpointConfig, getEndpointMetadata, getEndpointParams, getEndpointUrl, getEndpointsByMethod, getEnhancedClientHints, getEntries, getEnv, getEnvironmentInfo, getEnvironmentName, getErrorHandlers, getEventManager, getExtendedEnvironmentInfo, getFieldValue, getFileExtension, getFrameworkAdaptiveBatchSize, getFrameworkAdaptiveTimeout, getGlobal, getGlobalConfig, getHeaderFingerprint, getHeaderSummary, getISOWeek, getIntervalBoundaries, getIntervalDifference, getIntervalEnd, getIntervalStart, getJSONSize, getKeys, getLocalStorage, getLocation, getMatchingPresets, getNavigator, getNetworkConfigFromHeaders, getNetworkDebugStats, getNetworkEventStats, getNetworkInfo, getNetworkInfoFromHeaders, getNetworkInfoFromRequest, getNetworkOptimizedConfig, getNetworkPreset, getNetworkQuality, getNetworkQualityFromHeaders, getNetworkQualityScore, getNetworkQualityWithThresholds, getNetworkRTT, getNetworkSpeed, getNonCacheAffectingHeaders, getOptimizedNetworkConfig, getPresetForNetworkInfo, getPresetForQuality, getPresetNames, getProcess, getQuarter, getRelativeTime, getRetryStrategy, getPreset as getRevalidationPreset, getPresets as getRevalidationPresets, getRevalidationStrategy, getRuntimeEnvironment, getSSRSafeConfig, getSSRSafePollingConfig, getSessionStorage, getTimeComponents, getUnifiedDebugger, getUnifiedStrategy, getUnifiedStrategyNames, getUnixTimestamp, getUserAgent, getValues, getWindow, groupBy, handleArrayMerge, handleObjectMerge, hasAnyExtension, hasAuthentication, hasEncryptableFields, hasEndpoint, hasGlobal, hasIndexedDB, hasLocalStorage, hasMatchingFields, hasNavigator, hasNetworkInfo2 as hasNetworkInfoExpress, hasNetworkInfo as hasNetworkInfoNextjs, hasPathParams, hasPreset, hasProperty, hasSessionStorage, hasWebGL, hasWebPSupport, headerPresets, headers, headersContext, importKey, inBrowser, inRange, inServer, infobipEmailEndpoints, infobipEndpoints, invalidationScenarios, inverseLerp, isAbortError, isArray, isBoolean, isBrowser, isBun, isCI, isCacheValid, isCellularConnection, isCryptoAvailable, isDataFresh, isDataSaverEnabled, isDataSaverEnabledFromHeaders, isDebug, isDeno, isDevelopment, isDocumentVisible, isElectron, isEmpty, isEmptyObject, isEncryptedMetadata, isError, isFunction, isFuture, isInIframe, isInRange, isInteger, isMergeableObject, isMobile, isNetworkAPISupported, isNode, isNonEmptyArray, isNonEmptyObject, isNonEmptyString2 as isNonEmptyString, isNonNegativeNumber, isNotNullish, isNullish, isNumber, isObject, isOffline, isOneOfIgnoreCase, isOnline, isPageFocused, isPast, isPlainObject, isPollingActive, isPositiveNumber, isProduction, isPromise, isReactNative, isRevalidationSupported, isSSR, isSameDay, isSameInterval, isServer, isSlowConnection, isStaging, isString, isTest, isToday, isTouchDevice, isUnifiedStrategyName, isValidDate, isValidEnumValue, isValidFieldPath, isValidJSON, isValidNumber2 as isValidNumber, isValidPollingConfig, isValidStrategyName as isValidRevalidationStrategyName, isWebWorker, isWifiConnection, isWildcard, isWithinDedupeWindow, joinCampaign, jsonClone, jsonEquals, keyBy, leaveCampaign, lerp, logNetworkConfigReport, mapKeys, mapObject, mapRange, matchFieldPath, matchesAny, max, median, mergeCacheStrategies, mergeConfigs, mergeConflicts, mergeHeaders, mergePollingConfigs, mergePresets, mergeRetryStrategies, mergeRevalidationStrategies, mergeUnifiedStrategy, min, msToSeconds, mutate2 as mutate, networkConfigDebugger, networkConfigManager, networkDetectionMiddleware, networkPresets, networkStatus, normalizeHeaders3 as normalizeHeaders, now, nowInSeconds, omit, onOffline, onOnline, onceErrorHandler, oneOf, parseAndValidateNumber, parseFieldPath, percentage, pick, pollingEndpoints, pollingStrategies, prepareRequestConfig, prepareRequestConfigWithEnrichedHeaders, prettyStringify, processHeaders2 as processHeaders, raceRequests, randomBetween, randomInt, registerErrorHandler, registerErrorHandlers, removeCircularReferences, removeEmpty, removeNullish, removeSensitiveHeaders, removeUndefined, requestTracker, requestWithTimeout, rescheduleInfobipEmails, resetGlobalConfig, resetPresets as resetRevalidationPresets, resolveConflict, retryConditions, retryStrategies, genericPresets as revalidationPresets, revalidationStrategies, round, runWithHeaders, runWithHeadersAsync, safeParseJSON, safeStringify, sanitizeHeaders2 as sanitizeHeaders, secondsToMs, sendInfobipAdvancedEmail, sendInfobipEmail, sequentialRequests, setCache, setConfigWarnings, setDefaultApiClient, setErrorHandlers, setFieldValue, setGlobalConfig, setupClientEvents, setupNetworkMonitoring, setupRouteChangeCleanup, setupTemporaryOverride, shouldApplyConfig, shouldAutoRefresh, shouldPrefetch, shouldServeHighQuality, shouldUseAggressiveCaching, sleep, sortIssuesByPriority, startNetworkEventMonitoring, startOfDay, startRequestTracking, subscribe, subscribeMultiple, subscribeOnce, subscribeWithTimeout, sum, supportsBroadcastChannel, supportsFetch, supportsGeolocation, supportsIntersectionObserver, supportsLocalStorage, supportsNotifications, supportsPushNotifications, supportsRequestIdleCallback, supportsServiceWorker, supportsSessionStorage, supportsWebSocket, throttle, timeAgo, toFetchffConfig, toFetchffRevalidationConfig, toISOString, trackConfig, trackDirectCacheConfig, trackNetworkOverride, trackSpreadProperties, trackableSpread, transformFields, truncateJSON, unifiedStrategies, unregisterErrorHandlers, updateCampaign, updateGlobalConfig, updateInfobipScheduledEmailStatuses, uploadFileForScanning, useAbortableRequest, useApiConfigConflicts, useApiDebugInfo, useApiMonitor, useApiNetworkQuality, useCampaign, useCampaignParticipants, useCampaignStats, useCampaigns, useConditionalSubscription, useCreateCampaign, useDebouncedSubscription, useDeleteCampaign, useJoinCampaign, useLeaveCampaign, useMultipleSubscriptions, useOptimisticUpdate, useRealTimeData, useRequestCleanup, useRequestGroup, useRouteAwareRequest, useSubscription, useSubscriptionState, useUpdateCampaign, validateConfigUpdate, validateEncryptionConfig, validateHeaders2 as validateHeaders, validateInfobipEmail, validatePathParams, validatePreset, virusTotalEndpoints, waitForOnline, withNetworkDetection, withNetworkInfo, withTimeout };
25636
26095
  //# sourceMappingURL=index.mjs.map
25637
26096
  //# sourceMappingURL=index.mjs.map