@cybearl/cypack 1.10.6 → 1.11.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.
package/frontend.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+
1
3
  /**
2
4
  * The type for the CGAS status string, it can either be:
3
5
  * - `enabled`: The application is enabled and available to the public.
@@ -87,6 +89,23 @@ declare function getCGASStatus(markerOnly?: false, baseUrl?: string): Promise<Re
87
89
  */
88
90
  declare const fallbackCGASStatus: CGASStatus;
89
91
 
92
+ /**
93
+ * Merges Tailwind CSS class names without style conflicts.
94
+ * @param inputs The Tailwind CSS classes to merge.
95
+ * @returns The merged class string.
96
+ */
97
+ declare function cn(...inputs: ClassValue[]): string;
98
+ /**
99
+ * The type for a CSS delay value, either a number (milliseconds) or a CSS string ("1s", "500ms").
100
+ */
101
+ type CSSDelay = `${number}s` | `${number}ms` | number;
102
+ /**
103
+ * Converts a CSS delay string to milliseconds.
104
+ * @param delay A CSS delay string ("1s", "500ms") or a number already in milliseconds.
105
+ * @returns The delay in milliseconds, or 0 if the format is unrecognized.
106
+ */
107
+ declare function convertCssDelayToMs(delay: CSSDelay): number;
108
+
90
109
  /**
91
110
  * Allows to add query parameters to a URL.
92
111
  * @param baseUrl The base URL to add parameters to.
@@ -101,4 +120,4 @@ declare function addParamsToUrl(baseUrl: string, params: {
101
120
  */
102
121
  declare const currentUrlOrigin: string | null;
103
122
 
104
- export { addParamsToUrl, currentUrlOrigin, fallbackCGASStatus, getCGASStatus };
123
+ export { type CSSDelay, addParamsToUrl, cn, convertCssDelayToMs, currentUrlOrigin, fallbackCGASStatus, getCGASStatus };
package/frontend.js CHANGED
@@ -1,2 +1,2 @@
1
- async function a(n=false,s="/api/cgas"){return await(await fetch(`${s}/status?markerOnly=${n}`)).json()}var o={status:"disabled",marker:"fallback-marker",timestamp:new Date().toISOString(),version:{raw:"unavailable",formatted:"unavailable"},message:"This API is not available, please try again later."};function i(n,s){let e=n;for(let[r,t]of Object.entries(s))t==null||t===""||t==="null"||t==="undefined"||(e+=`${e.includes("?")?"&":"?"}${encodeURIComponent(r)}=${encodeURIComponent(t.toString())}`);return e}var u=typeof window<"u"&&window.location.origin?window.location.origin:null;export{i as addParamsToUrl,u as currentUrlOrigin,o as fallbackCGASStatus,a as getCGASStatus};//# sourceMappingURL=frontend.js.map
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';async function a(t=false,e="/api/cgas"){return await(await fetch(`${e}/status?markerOnly=${t}`)).json()}var o={status:"disabled",marker:"fallback-marker",timestamp:new Date().toISOString(),version:{raw:"unavailable",formatted:"unavailable"},message:"This API is not available, please try again later."};function l(...t){return twMerge(clsx(t))}function m(t){if(typeof t=="number")return t;let e=t.match(/(\d+(\.\d+)?)(s|ms)/);if(!e)return 0;let r=Number.parseFloat(e[1]);return e[3]==="s"?r*1e3:r}function c(t,e){let r=t;for(let[s,n]of Object.entries(e))n==null||n===""||n==="null"||n==="undefined"||(r+=`${r.includes("?")?"&":"?"}${encodeURIComponent(s)}=${encodeURIComponent(n.toString())}`);return r}var p=typeof window<"u"&&window.location.origin?window.location.origin:null;export{c as addParamsToUrl,l as cn,m as convertCssDelayToMs,p as currentUrlOrigin,o as fallbackCGASStatus,a as getCGASStatus};//# sourceMappingURL=frontend.js.map
2
2
  //# sourceMappingURL=frontend.js.map
package/frontend.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/frontend/cgas/status.ts","../src/frontend/urls.ts"],"names":["getCGASStatus","markerOnly","baseUrl","fallbackCGASStatus","addParamsToUrl","params","url","key","value","currentUrlOrigin"],"mappings":"AAWA,eAAsBA,CAAAA,CAClBC,EAAa,KAAA,CACbC,CAAAA,CAAU,YACiC,CAG3C,OADe,MADE,MAAM,KAAA,CAAM,GAAGA,CAAO,CAAA,mBAAA,EAAsBD,CAAU,CAAA,CAAE,CAAA,EAC3C,MAElC,CAKO,IAAME,CAAAA,CAAiC,CAC1C,MAAA,CAAQ,WACR,MAAA,CAAQ,iBAAA,CACR,UAAW,IAAI,IAAA,GAAO,WAAA,EAAY,CAClC,OAAA,CAAS,CACL,GAAA,CAAK,aAAA,CACL,UAAW,aACf,CAAA,CACA,QAAS,oDACb,EC1BO,SAASC,CAAAA,CACZF,CAAAA,CACAG,CAAAA,CAGF,CACE,IAAIC,CAAAA,CAAMJ,EAEV,IAAA,GAAW,CAACK,EAAKC,CAAK,CAAA,GAAK,OAAO,OAAA,CAAQH,CAAM,CAAA,CACjBG,CAAAA,EAAU,IAAA,EAAQA,CAAAA,GAAU,IAAMA,CAAAA,GAAU,MAAA,EAAUA,IAAU,WAAA,GAI3FF,CAAAA,EAAO,GAAGA,CAAAA,CAAI,QAAA,CAAS,GAAG,CAAA,CAAI,GAAA,CAAM,GAAG,GAAG,kBAAA,CAAmBC,CAAG,CAAC,CAAA,CAAA,EAAI,kBAAA,CAAmBC,EAAM,QAAA,EAAU,CAAC,CAAA,CAAA,CAAA,CAG7G,OAAOF,CACX,CAMO,IAAMG,CAAAA,CAAmB,OAAO,MAAA,CAAW,GAAA,EAAe,OAAO,QAAA,CAAS,MAAA,CAAS,MAAA,CAAO,QAAA,CAAS,MAAA,CAAS","file":"frontend.js","sourcesContent":["import type { CGASStatus } from \"@/main/types/cgas\"\nimport type { RequestResult } from \"@/main/types/requests\"\n\n/**\n * Get the status of the application via the CGAS API endpoint (that itself uses the `getCGASStatus` function).\n * @param markerOnly Whether to only return the marker (optional, defaults to false).\n * @param baseUrl The base URL of the CGAS API (optional, defaults to \"/api/cgas\").\n * @returns The status of the application, or the marker if `markerOnly` is true.\n */\nexport async function getCGASStatus(markerOnly: true, baseUrl?: string): Promise<RequestResult<string>>\nexport async function getCGASStatus(markerOnly?: false, baseUrl?: string): Promise<RequestResult<CGASStatus>>\nexport async function getCGASStatus(\n markerOnly = false,\n baseUrl = \"/api/cgas\",\n): Promise<RequestResult<CGASStatus | string>> {\n const response = await fetch(`${baseUrl}/status?markerOnly=${markerOnly}`)\n const result = await response.json()\n return result as RequestResult<CGASStatus | string>\n}\n\n/**\n * The fallback CGAS status, used when the CGAS API is not available.\n */\nexport const fallbackCGASStatus: CGASStatus = {\n status: \"disabled\",\n marker: \"fallback-marker\",\n timestamp: new Date().toISOString(),\n version: {\n raw: \"unavailable\",\n formatted: \"unavailable\",\n },\n message: \"This API is not available, please try again later.\",\n}\n","/**\n * Allows to add query parameters to a URL.\n * @param baseUrl The base URL to add parameters to.\n * @param params The parameters to add, note that each parameter will be URL-encoded.\n * @returns The URL with the parameters added.\n */\nexport function addParamsToUrl(\n baseUrl: string,\n params: {\n [key: string]: string | number | boolean | undefined | null\n },\n) {\n let url = baseUrl\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null || value === \"\" || value === \"null\" || value === \"undefined\") {\n continue\n }\n\n url += `${url.includes(\"?\") ? \"&\" : \"?\"}${encodeURIComponent(key)}=${encodeURIComponent(value.toString())}`\n }\n\n return url\n}\n\n/**\n * Get the current URL origin or null if it's not available.\n */\n// biome-ignore lint/complexity/useOptionalChain: Frontend code, optional chaining would cause issues with window being undefined\nexport const currentUrlOrigin = typeof window !== \"undefined\" && window.location.origin ? window.location.origin : null\n"]}
1
+ {"version":3,"sources":["../src/frontend/cgas/status.ts","../src/frontend/styling.ts","../src/frontend/urls.ts"],"names":["getCGASStatus","markerOnly","baseUrl","fallbackCGASStatus","cn","inputs","twMerge","clsx","convertCssDelayToMs","delay","match","value","addParamsToUrl","params","url","key","currentUrlOrigin"],"mappings":"6DAWA,eAAsBA,EAClBC,CAAAA,CAAa,KAAA,CACbC,CAAAA,CAAU,WAAA,CACiC,CAG3C,OADe,KAAA,CADE,MAAM,KAAA,CAAM,GAAGA,CAAO,CAAA,mBAAA,EAAsBD,CAAU,CAAA,CAAE,GAC3C,IAAA,EAElC,CAKO,IAAME,EAAiC,CAC1C,MAAA,CAAQ,UAAA,CACR,MAAA,CAAQ,kBACR,SAAA,CAAW,IAAI,IAAA,EAAK,CAAE,aAAY,CAClC,OAAA,CAAS,CACL,GAAA,CAAK,cACL,SAAA,CAAW,aACf,CAAA,CACA,OAAA,CAAS,oDACb,ECxBO,SAASC,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CACxC,OAAOC,QAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC/B,CAYO,SAASG,CAAAA,CAAoBC,CAAAA,CAAyB,CACzD,GAAI,OAAOA,CAAAA,EAAU,QAAA,CAAU,OAAOA,EAEtC,IAAMC,CAAAA,CAAQD,CAAAA,CAAM,KAAA,CAAM,qBAAqB,CAAA,CAC/C,GAAI,CAACC,CAAAA,CAAO,OAAO,CAAA,CAEnB,IAAMC,CAAAA,CAAQ,MAAA,CAAO,WAAWD,CAAAA,CAAM,CAAC,CAAC,CAAA,CAGxC,OAFaA,CAAAA,CAAM,CAAC,CAAA,GAEJ,GAAA,CAAMC,EAAQ,GAAA,CAAOA,CACzC,CC1BO,SAASC,EACZV,CAAAA,CACAW,CAAAA,CAGF,CACE,IAAIC,EAAMZ,CAAAA,CAEV,IAAA,GAAW,CAACa,CAAAA,CAAKJ,CAAK,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQE,CAAM,EACjBF,CAAAA,EAAU,IAAA,EAAQA,CAAAA,GAAU,EAAA,EAAMA,IAAU,MAAA,EAAUA,CAAAA,GAAU,WAAA,GAI3FG,CAAAA,EAAO,GAAGA,CAAAA,CAAI,QAAA,CAAS,GAAG,CAAA,CAAI,IAAM,GAAG,CAAA,EAAG,kBAAA,CAAmBC,CAAG,CAAC,CAAA,CAAA,EAAI,kBAAA,CAAmBJ,CAAAA,CAAM,QAAA,EAAU,CAAC,CAAA,CAAA,CAAA,CAG7G,OAAOG,CACX,CAMO,IAAME,CAAAA,CAAmB,OAAO,MAAA,CAAW,KAAe,MAAA,CAAO,QAAA,CAAS,MAAA,CAAS,MAAA,CAAO,SAAS,MAAA,CAAS","file":"frontend.js","sourcesContent":["import type { CGASStatus } from \"@/main/types/cgas\"\nimport type { RequestResult } from \"@/main/types/requests\"\n\n/**\n * Get the status of the application via the CGAS API endpoint (that itself uses the `getCGASStatus` function).\n * @param markerOnly Whether to only return the marker (optional, defaults to false).\n * @param baseUrl The base URL of the CGAS API (optional, defaults to \"/api/cgas\").\n * @returns The status of the application, or the marker if `markerOnly` is true.\n */\nexport async function getCGASStatus(markerOnly: true, baseUrl?: string): Promise<RequestResult<string>>\nexport async function getCGASStatus(markerOnly?: false, baseUrl?: string): Promise<RequestResult<CGASStatus>>\nexport async function getCGASStatus(\n markerOnly = false,\n baseUrl = \"/api/cgas\",\n): Promise<RequestResult<CGASStatus | string>> {\n const response = await fetch(`${baseUrl}/status?markerOnly=${markerOnly}`)\n const result = await response.json()\n return result as RequestResult<CGASStatus | string>\n}\n\n/**\n * The fallback CGAS status, used when the CGAS API is not available.\n */\nexport const fallbackCGASStatus: CGASStatus = {\n status: \"disabled\",\n marker: \"fallback-marker\",\n timestamp: new Date().toISOString(),\n version: {\n raw: \"unavailable\",\n formatted: \"unavailable\",\n },\n message: \"This API is not available, please try again later.\",\n}\n","import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\n/**\n * Merges Tailwind CSS class names without style conflicts.\n * @param inputs The Tailwind CSS classes to merge.\n * @returns The merged class string.\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\n/**\n * The type for a CSS delay value, either a number (milliseconds) or a CSS string (\"1s\", \"500ms\").\n */\nexport type CSSDelay = `${number}s` | `${number}ms` | number\n\n/**\n * Converts a CSS delay string to milliseconds.\n * @param delay A CSS delay string (\"1s\", \"500ms\") or a number already in milliseconds.\n * @returns The delay in milliseconds, or 0 if the format is unrecognized.\n */\nexport function convertCssDelayToMs(delay: CSSDelay): number {\n if (typeof delay === \"number\") return delay\n\n const match = delay.match(/(\\d+(\\.\\d+)?)(s|ms)/)\n if (!match) return 0\n\n const value = Number.parseFloat(match[1])\n const unit = match[3]\n\n return unit === \"s\" ? value * 1000 : value\n}\n","/**\n * Allows to add query parameters to a URL.\n * @param baseUrl The base URL to add parameters to.\n * @param params The parameters to add, note that each parameter will be URL-encoded.\n * @returns The URL with the parameters added.\n */\nexport function addParamsToUrl(\n baseUrl: string,\n params: {\n [key: string]: string | number | boolean | undefined | null\n },\n) {\n let url = baseUrl\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null || value === \"\" || value === \"null\" || value === \"undefined\") {\n continue\n }\n\n url += `${url.includes(\"?\") ? \"&\" : \"?\"}${encodeURIComponent(key)}=${encodeURIComponent(value.toString())}`\n }\n\n return url\n}\n\n/**\n * Get the current URL origin or null if it's not available.\n */\n// biome-ignore lint/complexity/useOptionalChain: Frontend code, optional chaining would cause issues with window being undefined\nexport const currentUrlOrigin = typeof window !== \"undefined\" && window.location.origin ? window.location.origin : null\n"]}
package/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- /**
2
- * Returns true if the code is running in a client environment.
3
- */
4
- declare function isClient(): boolean;
5
1
  /**
6
2
  * Returns true if the code is running in a server environment.
7
3
  */
8
4
  declare function isServer(): boolean;
5
+ /**
6
+ * Returns true if the code is running in a client environment.
7
+ */
8
+ declare function isClient(): boolean;
9
9
  /**
10
10
  * Compares two arrays for equality.
11
11
  * @param array1 The first array to compare.
@@ -14,6 +14,29 @@ declare function isServer(): boolean;
14
14
  */
15
15
  declare function arrayEqual(array1: Array<any>, array2: Array<any>): boolean;
16
16
 
17
+ /**
18
+ * The shape of the required environment variables config, split by visibility scope.
19
+ */
20
+ type RequiredEnvVars = {
21
+ /** Variable names that must be present in both server and client environments. */
22
+ public: string[];
23
+ /** Variable names that must be present on the server but must NOT be exposed to the client. */
24
+ private: string[];
25
+ };
26
+ /**
27
+ * Checks for required environment variables and warns or throws if any are missing
28
+ * or if private variables are leaking into the client bundle.
29
+ *
30
+ * Pass your app's required-var names as `requiredVars` and a flat record of their
31
+ * actual runtime values as `runtimeValues`. The `runtimeValues` object must inline
32
+ * `process.env.X` calls directly, dynamic key access (`process.env[name]`) is
33
+ * dead-code eliminated by most bundlers and will not work.
34
+ *
35
+ * @param requiredVars The required variable names split into `public` and `private`.
36
+ * @param runtimeValues A flat map of variable name → `process.env.X` value.
37
+ */
38
+ declare function checkEnvironmentVariables(requiredVars: RequiredEnvVars, runtimeValues: Record<string, string | undefined>): void;
39
+
17
40
  /**
18
41
  * A set of general constants.
19
42
  */
@@ -568,6 +591,43 @@ declare function parseQueryStringArray(query: string | Array<string>): string[];
568
591
  * @returns The slugified version of the name.
569
592
  */
570
593
  declare function slugifyName(name: string, previousSlug?: string): string;
594
+ /**
595
+ * Formats a date as a human-readable relative time string.
596
+ * Falls back to a locale date string for dates older than 24 hours.
597
+ * @param date The date to format.
598
+ * @returns A string like "just now", "5m ago", "3h ago", or a locale date string.
599
+ */
600
+ declare function formatRelativeTime(date: Date): string;
601
+ /**
602
+ * Formats a date into a locale-aware datetime string using the runtime's default locale.
603
+ * @param date The date to format.
604
+ * @returns The formatted date string (e.g., "04/25/2026, 03:45:00 PM").
605
+ */
606
+ declare function formatDate(date: Date): string;
607
+ /**
608
+ * Formats a bigint as scientific notation using only integer arithmetic,
609
+ * supporting arbitrarily large values (e.g., up to 2^256).
610
+ *
611
+ * Returns a tuple `[coefficient, exponent]` so callers can render the
612
+ * exponent as a superscript (e.g., `["4.61", 18]` for ~4.61 × 10^18).
613
+ * @param value The bigint to format.
614
+ * @param precision Number of decimal digits in the coefficient (default 2).
615
+ */
616
+ declare function bigintToScientific(value: bigint, precision?: number): [coefficient: string, exponent: number];
617
+ /**
618
+ * Converts a bigint to an en-US formatted string with metric prefixes (e.g., 1500 -> "1.5k").
619
+ * Supports values up to exa (E).
620
+ * @param value The bigint to format.
621
+ * @returns The formatted string with metric prefix.
622
+ */
623
+ declare function bigintToMetricFormatted(value: bigint): string;
624
+ /**
625
+ * Formats a number of bytes into a human-readable string with appropriate units.
626
+ * @param bytes The number of bytes.
627
+ * @param decimalPlaces The number of decimal places to include (optional, defaults to 2).
628
+ * @returns The formatted string.
629
+ */
630
+ declare function formatBytes(bytes: number, decimalPlaces?: number): string;
571
631
 
572
632
  /**
573
633
  * Format a JSON object with indentation.
@@ -576,13 +636,64 @@ declare function slugifyName(name: string, previousSlug?: string): string;
576
636
  */
577
637
  declare function formatJson(str: string): string;
578
638
  /**
579
- * Stringify a JSON object with support for BigInt and functions.
639
+ * Stringify a JSON object with support for `BigInt` and functions.
580
640
  * @param object The object to stringify.
581
- * @param indent The number of spaces to indent (optional, defaults to 4)
641
+ * @param indent The number of spaces to indent (optional, defaults to 4).
582
642
  * @returns The stringified JSON object.
583
643
  */
584
644
  declare function stringify(object: unknown, indent?: number): string;
585
645
 
646
+ /**
647
+ * A set of colored Next.js-compatible ANSI indicators for console log messages.
648
+ */
649
+ declare const LOG_INDICATORS: {
650
+ success: string;
651
+ warning: string;
652
+ error: string;
653
+ info: string;
654
+ debug: string;
655
+ };
656
+ /**
657
+ * Options accepted by each log method.
658
+ */
659
+ type LoggerOptions = {
660
+ /** Overrides the logger's default prefix for this call. */
661
+ prefix?: string;
662
+ /** Additional data to log alongside the message (e.g., an Error object). */
663
+ data?: unknown;
664
+ };
665
+ /**
666
+ * A logger instance returned by `createLogger` or `withPrefix`.
667
+ */
668
+ type LoggerInstance = {
669
+ success: (message: string, options?: LoggerOptions) => void;
670
+ warn: (message: string, options?: LoggerOptions) => void;
671
+ error: (message: string, options?: LoggerOptions) => void;
672
+ info: (message: string, options?: LoggerOptions) => void;
673
+ debug: (message: string, options?: LoggerOptions) => void;
674
+ /** Returns a new logger instance with the given prefix fixed as its default. */
675
+ withPrefix: (prefix: string) => LoggerInstance;
676
+ };
677
+ /**
678
+ * Creates an isomorphic logger that works in both browser and Node.js environments.
679
+ * ANSI indicators are automatically hidden in browser environments.
680
+ * @param defaultPrefix An optional prefix prepended to all messages as `[prefix]`.
681
+ * @param prefixLength The total character width reserved for the prefix column, used to
682
+ * align messages across loggers with different prefix lengths (optional, defaults to 10).
683
+ */
684
+ declare function createLogger(defaultPrefix?: string, prefixLength?: number): LoggerInstance;
685
+ /**
686
+ * A thin isomorphic logger instance usable in both browser and Node.js environments.
687
+ */
688
+ declare const logger: LoggerInstance;
689
+ /**
690
+ * Generates a short logger prefix from a UUID, optionally scoped by a label.
691
+ * @param uuid The UUID to derive the prefix from.
692
+ * @param prefix An optional label to prepend (e.g., "worker" → "worker-a1b").
693
+ * @returns A short prefix string like "a1b" or "worker-a1b".
694
+ */
695
+ declare function generateLoggerPrefix(uuid: string, prefix?: string): string;
696
+
586
697
  /**
587
698
  * Map a number to a range of numbers.
588
699
  * @param value The number to map.
@@ -639,6 +750,19 @@ declare function decodeObjectURIComponents(obj: Partial<{
639
750
  [key: string]: string | string[];
640
751
  }>;
641
752
 
753
+ /**
754
+ * Returns the inverse of a hex color string (e.g., "#aabbcc" -> "#554433").
755
+ * @param hexColor The hex color string to invert.
756
+ * @returns The inverted hex color string, or the original if the format is invalid.
757
+ */
758
+ declare function invertHexColor(hexColor: string): string;
759
+ /**
760
+ * Applies an opacity factor to a hex color, returning a 4-channel hex string.
761
+ * @param hexColor The hex color string to modify.
762
+ * @param opacity The opacity factor (0–1) to apply.
763
+ * @returns The 8-character hex color string with applied opacity, or the original if the format is invalid.
764
+ */
765
+ declare function applyHexColorOpacity(hexColor: string, opacity: number): string;
642
766
  /**
643
767
  * Shades a color by a percentage.
644
768
  * @param color The color to shade.
@@ -677,4 +801,4 @@ type CGASStatus = {
677
801
  message: string
678
802
  }
679
803
 
680
- export { BaseErrors, type CGASStatus, type CGASStatusString, COUNTRIES_SELECT_FIELD, Country, CyCONSTANTS, type ErrorObj, type FailedRequest, type RequestResult, type SuccessfulRequest, arrayEqual, convertErrorToString, decodeObjectURIComponents, formatCountryName, formatErrorResponse, formatHRTime, formatJson, formatMessageAsStringifiedError, formatPercentage, formatTime, formatUnit, fullyPermissiveCspHeader, getCountryNameFromCode, isClient, isServer, isValidIntId, isValidSlug, mapRange, parseCRUDError, parseQueryNumberArray, parseQueryStringArray, safeAverage, safePercentage, shadeColor, slugifyName, stringify, stringifyError, truncateString };
804
+ export { BaseErrors, type CGASStatus, type CGASStatusString, COUNTRIES_SELECT_FIELD, Country, CyCONSTANTS, type ErrorObj, type FailedRequest, LOG_INDICATORS, type LoggerInstance, type LoggerOptions, type RequestResult, type RequiredEnvVars, type SuccessfulRequest, applyHexColorOpacity, arrayEqual, bigintToMetricFormatted, bigintToScientific, checkEnvironmentVariables, convertErrorToString, createLogger, decodeObjectURIComponents, formatBytes, formatCountryName, formatDate, formatErrorResponse, formatHRTime, formatJson, formatMessageAsStringifiedError, formatPercentage, formatRelativeTime, formatTime, formatUnit, fullyPermissiveCspHeader, generateLoggerPrefix, getCountryNameFromCode, invertHexColor, isClient, isServer, isValidIntId, isValidSlug, logger, mapRange, parseCRUDError, parseQueryNumberArray, parseQueryStringArray, safeAverage, safePercentage, shadeColor, slugifyName, stringify, stringifyError, truncateString };
package/index.js CHANGED
@@ -1,5 +1,8 @@
1
- import d from'slugify';function N(){return !S()}function S(){return typeof window>"u"}function A(e,i){if(e===i)return true;let{length:r}=e;if(r!==i.length)return false;for(let t=0;t<r;t++)if(e[t]!==i[t])return false;return true}var b={HASH_SALT_ROUNDS:12,MIN_USERNAME_LENGTH:4,MAX_USERNAME_LENGTH:36,MIN_PASSWORD_LENGTH:8,MAX_PASSWORD_LENGTH:255,MAX_NAME_LENGTH:255,MAX_SLUG_LENGTH:255,MIN_FIRST_NAME_LENGTH:1,MAX_FIRST_NAME_LENGTH:36,MIN_LAST_NAME_LENGTH:1,MAX_LAST_NAME_LENGTH:36,MAX_DESCRIPTION_LENGTH:1024,MAX_URL_LENGTH:2048,MAX_MIME_TYPE_LENGTH:255,MAX_EXTERNAL_LINKS_COUNT:6,USERNAME_REGEX:/^[a-zA-Z0-9_.-]+$/,SLUG_REGEX:/^[a-zA-Z0-9-]+$/,IMG_SIZES_HIGH_QUALITY:"(max-width: 768px) 100vw, (max-width: 1200px) 75vw, 50vw",IMG_SIZES_MEDIUM_QUALITY:"(max-width: 768px) 100vw, (max-width: 1200px) 60vw, 40vw",IMG_SIZES_BASE_QUALITY:"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",IMG_SIZES_LOW_QUALITY:"(max-width: 768px) 100vw, (max-width: 1200px) 40vw, 25vw"},c=b;var o=(a=>(a.Afghanistan="AF",a.AlandIslands="AX",a.Albania="AL",a.Algeria="DZ",a.AmericanSamoa="AS",a.Andorra="AD",a.Angola="AO",a.Anguilla="AI",a.Antarctica="AQ",a.AntiguaAndBarbuda="AG",a.Argentina="AR",a.Armenia="AM",a.Aruba="AW",a.Australia="AU",a.Austria="AT",a.Azerbaijan="AZ",a.Bahamas="BS",a.Bahrain="BH",a.Bangladesh="BD",a.Barbados="BB",a.Belarus="BY",a.Belgium="BE",a.Belize="BZ",a.Benin="BJ",a.Bermuda="BM",a.Bhutan="BT",a.Bolivia="BO",a.BonaireSintEustatiusSaba="BQ",a.BosniaAndHerzegovina="BA",a.Botswana="BW",a.BouvetIsland="BV",a.Brazil="BR",a.BritishIndianOceanTerritory="IO",a.BruneiDarussalam="BN",a.Bulgaria="BG",a.BurkinaFaso="BF",a.Burundi="BI",a.Cambodia="KH",a.Cameroon="CM",a.Canada="CA",a.CapeVerde="CV",a.CaymanIslands="KY",a.CentralAfricanRepublic="CF",a.Chad="TD",a.Chile="CL",a.China="CN",a.ChristmasIsland="CX",a.CocosKeelingIslands="CC",a.Colombia="CO",a.Comoros="KM",a.Congo="CG",a.CongoDemocraticRepublic="CD",a.CookIslands="CK",a.CostaRica="CR",a.CoteDIvoire="CI",a.Croatia="HR",a.Cuba="CU",a.Curacao="CW",a.Cyprus="CY",a.CzechRepublic="CZ",a.Denmark="DK",a.Djibouti="DJ",a.Dominica="DM",a.DominicanRepublic="DO",a.Ecuador="EC",a.Egypt="EG",a.ElSalvador="SV",a.EquatorialGuinea="GQ",a.Eritrea="ER",a.Estonia="EE",a.Ethiopia="ET",a.FalklandIslands="FK",a.FaroeIslands="FO",a.Fiji="FJ",a.Finland="FI",a.France="FR",a.FrenchGuiana="GF",a.FrenchPolynesia="PF",a.FrenchSouthernTerritories="TF",a.Gabon="GA",a.Gambia="GM",a.Georgia="GE",a.Germany="DE",a.Ghana="GH",a.Gibraltar="GI",a.Greece="GR",a.Greenland="GL",a.Grenada="GD",a.Guadeloupe="GP",a.Guam="GU",a.Guatemala="GT",a.Guernsey="GG",a.Guinea="GN",a.GuineaBissau="GW",a.Guyana="GY",a.Haiti="HT",a.HeardIslandMcdonaldIslands="HM",a.HolySeeVaticanCityState="VA",a.Honduras="HN",a.HongKong="HK",a.Hungary="HU",a.Iceland="IS",a.India="IN",a.Indonesia="ID",a.Iran="IR",a.Iraq="IQ",a.Ireland="IE",a.IsleOfMan="IM",a.Israel="IL",a.Italy="IT",a.Jamaica="JM",a.Japan="JP",a.Jersey="JE",a.Jordan="JO",a.Kazakhstan="KZ",a.Kenya="KE",a.Kiribati="KI",a.Korea="KR",a.KoreaDemocraticPeoplesRepublic="KP",a.Kuwait="KW",a.Kyrgyzstan="KG",a.LaoPeoplesDemocraticRepublic="LA",a.Latvia="LV",a.Lebanon="LB",a.Lesotho="LS",a.Liberia="LR",a.LibyanArabJamahiriya="LY",a.Liechtenstein="LI",a.Lithuania="LT",a.Luxembourg="LU",a.Macao="MO",a.Macedonia="MK",a.Madagascar="MG",a.Malawi="MW",a.Malaysia="MY",a.Maldives="MV",a.Mali="ML",a.Malta="MT",a.MarshallIslands="MH",a.Martinique="MQ",a.Mauritania="MR",a.Mauritius="MU",a.Mayotte="YT",a.Mexico="MX",a.Micronesia="FM",a.Moldova="MD",a.Monaco="MC",a.Mongolia="MN",a.Montenegro="ME",a.Montserrat="MS",a.Morocco="MA",a.Mozambique="MZ",a.Myanmar="MM",a.Namibia="NA",a.Nauru="NR",a.Nepal="NP",a.Netherlands="NL",a.NewCaledonia="NC",a.NewZealand="NZ",a.Nicaragua="NI",a.Niger="NE",a.Nigeria="NG",a.Niue="NU",a.NorfolkIsland="NF",a.NorthernMarianaIslands="MP",a.Norway="NO",a.Oman="OM",a.Pakistan="PK",a.Palau="PW",a.PalestinianTerritory="PS",a.Panama="PA",a.PapuaNewGuinea="PG",a.Paraguay="PY",a.Peru="PE",a.Philippines="PH",a.Pitcairn="PN",a.Poland="PL",a.Portugal="PT",a.PuertoRico="PR",a.Qatar="QA",a.Reunion="RE",a.Romania="RO",a.RussianFederation="RU",a.Rwanda="RW",a.SaintBarthelemy="BL",a.SaintHelena="SH",a.SaintKittsAndNevis="KN",a.SaintLucia="LC",a.SaintMartin="MF",a.SaintPierreAndMiquelon="PM",a.SaintVincentAndGrenadines="VC",a.Samoa="WS",a.SanMarino="SM",a.SaoTomeAndPrincipe="ST",a.SaudiArabia="SA",a.Senegal="SN",a.Serbia="RS",a.Seychelles="SC",a.SierraLeone="SL",a.Singapore="SG",a.SintMaarten="SX",a.Slovakia="SK",a.Slovenia="SI",a.SolomonIslands="SB",a.Somalia="SO",a.SouthAfrica="ZA",a.SouthGeorgiaAndSandwichIsl="GS",a.SouthSudan="SS",a.Spain="ES",a.SriLanka="LK",a.Sudan="SD",a.Suriname="SR",a.SvalbardAndJanMayen="SJ",a.Swaziland="SZ",a.Sweden="SE",a.Switzerland="CH",a.SyrianArabRepublic="SY",a.Taiwan="TW",a.Tajikistan="TJ",a.Tanzania="TZ",a.Thailand="TH",a.TimorLeste="TL",a.Togo="TG",a.Tokelau="TK",a.Tonga="TO",a.TrinidadAndTobago="TT",a.Tunisia="TN",a.Turkey="TR",a.Turkmenistan="TM",a.TurksAndCaicosIslands="TC",a.Tuvalu="TV",a.Uganda="UG",a.Ukraine="UA",a.UnitedArabEmirates="AE",a.UnitedKingdom="GB",a.UnitedStates="US",a.UnitedStatesOutlyingIslands="UM",a.Uruguay="UY",a.Uzbekistan="UZ",a.Vanuatu="VU",a.Venezuela="VE",a.Vietnam="VN",a.VirginIslandsBritish="VG",a.VirginIslandsUS="VI",a.WallisAndFutuna="WF",a.WesternSahara="EH",a.Yemen="YE",a.Zambia="ZM",a.Zimbabwe="ZW",a))(o||{});function g(e){return e==="CoteDIvoire"?"Cote D'Ivoire":e==="VirginIslandsUS"?"Virgin Islands US":e.replace(/([A-Z])/g," $1").trim()}var M=Object.entries(o).map(([e,i])=>({label:g(e),value:i}));function I(e){let i=Object.entries(o).find(([,r])=>r===e);return i?g(i[0]):void 0}var u=o;function T(e){return JSON.stringify(JSON.parse(e),null,4)}function l(e,i=4){return JSON.stringify(e,(r,t)=>typeof t=="function"||typeof t=="bigint"?t.toString():t,i)}function R(e,i,r){let t;return r?t={...e,data:r}:t=e,{success:false,message:i||e.message,error:t}}function L(e,i,r){i&&(e.message=i);let t;return r?t={...e,data:r}:t=e,JSON.stringify(t,(m,s)=>typeof s=="function"||typeof s=="bigint"?s.toString():s,4)}function F(e){let i="";try{try{i=e.toString();}catch{i=l(e);}}catch{i="Unknown error";}return {success:false,message:"An error occurred while performing a CRUD operation.",error:{status:500,name:"CRUD_ERROR",message:"CRUD operation failed.",data:{rawError:e,error:i}}}}function D(e,i){let r={status:500,name:"UNKNOWN_ERROR",message:"An unknown error occurred.",data:null};if(i)try{l(i,4),r=i;}catch{r={...r,data:{rawError:`${i}`}};}return l({success:false,message:e,error:r}).replaceAll("Error: ","").replaceAll(`
2
- `," ")}var G={BAD_REQUEST:{status:400,name:"BadRequest",message:"Bad request.",data:null},UNAUTHORIZED:{status:401,name:"Unauthorized",message:"Unauthorized.",data:null},PAYMENT_REQUIRED:{status:402,name:"PaymentRequired",message:"Payment required.",data:null},FORBIDDEN:{status:403,name:"Forbidden",message:"Forbidden.",data:null},NOT_FOUND:{status:404,name:"NotFound",message:"Not found.",data:null},METHOD_NOT_ALLOWED:{status:405,name:"MethodNotAllowed",message:"Method not allowed.",data:null},REQUEST_TIMEOUT:{status:408,name:"RequestTimeout",message:"Request timed out.",data:null},CONFLICT:{status:409,name:"Conflict",message:"Conflict.",data:null},INTERNAL_SERVER_ERROR:{status:500,name:"InternalServerError",message:"Internal server error.",data:null},BACKEND_FUNCTION_RUNNING_ON_CLIENT:{status:500,name:"BackendFunctionRunningOnClient",message:"A function reserved for the backend is running on the client.",data:null},NOT_IMPLEMENTED:{status:501,name:"NotImplemented",message:"Not implemented.",data:null},BANDWIDTH_LIMIT_EXCEEDED:{status:509,name:"BandwidthLimitExceeded",message:"Bandwidth limit exceeded.",data:null}};var f=d.default||d;function U(e){return typeof e=="string"&&e.length>0&&Number.isInteger(Number(e))&&Number(e)>=0}function _(e){return typeof e=="string"&&e.length>0&&c.SLUG_REGEX.test(e)}function x(e,i="Op",r="s",t=12,n=true){let m;typeof i=="string"&&typeof r=="string"?m=`${i}/${r}`:typeof i=="string"?m=i:m="";let s=n?" ":"";return e>=10**24?`${(e/10**24).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${s}Y${m}`.padStart(t," "):e>=10**18?`${(e/10**18).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${s}E${m}`.padStart(t," "):e>=10**15?`${(e/10**15).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${s}P${m}`.padStart(t," "):e>=10**12?`${(e/10**12).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${s}T${m}`.padStart(t," "):e>=10**9?`${(e/10**9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${s}G${m}`.padStart(t," "):e>=10**6?`${(e/10**6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${s}M${m}`.padStart(t," "):e>=10**3?`${(e/10**3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${s}k${m}`.padStart(t," "):`${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${s}${m}`.padStart(t," ")}function h(e,i=8){return e>=3600000000000000n?`${(Number(e)/36e14).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}h`.padStart(i," "):e>=60000000000n?`${(Number(e)/6e10).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}m`.padStart(i," "):e>=1000000000n?`${(Number(e)/1e9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}s`.padStart(i," "):e>=1000000n?`${(Number(e)/1e6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ms`.padStart(i," "):e>=1000n?`${(Number(e)/1e3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}\xB5s`.padStart(i," "):`${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ns`.padStart(i," ")}function O(e,i=10){return e>=36e5?`${(e/36e5).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}h`.padStart(i," "):e>=6e4?`${(e/6e4).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}m`.padStart(i," "):e>=1e3?`${(e/1e3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}s`.padStart(i," "):`${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ms`.padStart(i," ")}function B(e,i=7){return `${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}%`.padStart(i," ")}function w(e,i){return e.length<=i?e:`${e.slice(0,i)}...`}function P(e){let i=[],r=Array.isArray(e)?e:e.split(",").map(t=>t.trim());for(let t of r){let n=Number.parseInt(t,10);Number.isNaN(n)||i.push(n);}return i}function $(e){let i=[],r=Array.isArray(e)?e:e.split(",").map(t=>t.trim());for(let t of r)t.length>0&&i.push(t);return i}var p={lower:true,strict:true};function H(e,i){if(i){let r=i.match(/-(\d+)$/);if(r){let t=Number.parseInt(r[1],10),n=i.slice(0,-r[0].length);return f(`${n}-${t+1}`,p)}}return f(e,p)}function K(e,i,r,t,n,m=true){let s=(e-i)*(n-t)/(r-i)+t;return m?Math.min(Math.max(s,t),n):s}function v(e,i,r=2){if(!i)return 0;let t=typeof e=="string"?parseFloat(e):e,n=typeof i=="string"?parseFloat(i):i;return parseFloat(((t||0)/(n||1)).toFixed(r))}function k(e,i,r=2){if(!i)return 0;let t=typeof e=="string"?parseFloat(e):e,n=typeof i=="string"?parseFloat(i):i;return n?parseFloat((((t||0)-(n||0))/(n||1)*100).toFixed(r)):t&&t>0?-1:0}var V=`
1
+ import T from'slugify';function I(){return typeof window>"u"}function R(){return !I()}function h(i,a){if(i===a)return true;let{length:r}=i;if(r!==a.length)return false;for(let t=0;t<r;t++)if(i[t]!==a[t])return false;return true}function D(i){return JSON.stringify(JSON.parse(i),null,4)}function m(i,a=4){return JSON.stringify(i,(r,t)=>typeof t=="function"||typeof t=="bigint"?t.toString():t,a)}var l={success:"\x1B[32m \u2713 \x1B[0m",warning:"\x1B[35m \u26A0 \x1B[0m",error:"\x1B[31m \u2717 \x1B[0m",info:"\x1B[33m \u25CB \x1B[0m",debug:"\x1B[34m \u25B7 \x1B[0m"};function E(i,a=10){function r(t,n,s,o){let g=typeof window<"u",b="",c=o?.prefix??i;c&&(b=`[${c}]${g?" ":" ".repeat(a-(c.length+2))}`);let f=`${g?"":t}${b}${s}`;if(o?.data===void 0)n(f);else {let p=m(o.data,2).split(`
2
+ `).map(d=>g?d:` ${d}`).join(`
3
+ `);n(`${f}:`,`
4
+ ${p}`);}}return {success:(t,n)=>r(l.success,console.log,t,n),warn:(t,n)=>r(l.warning,console.warn,t,n),error:(t,n)=>r(l.error,console.error,t,n),info:(t,n)=>r(l.info,console.log,t,n),debug:(t,n)=>r(l.debug,console.debug,t,n),withPrefix:t=>E(t,a)}}var S=E();function F(i,a){return `${a?`${a}-`:""}${i.replaceAll("-","").slice(0,3)}`}function G(i,a){if(i.public.length===0&&i.private.length===0)return;let r=typeof window>"u"?"server":"client",n=(r==="server"?i.private:i.public).filter(s=>a[s]===void 0);if(n.length>0){let s=`Missing required environment variables: ${n.join(", ")}`;if(process.env.NODE_ENV==="production")S.error(s);else throw new Error(s)}else S.success(`All required environment variables are set for the '${r}' environment.`);if(r==="client"){let s=i.private.filter(o=>a[o]!==void 0);if(s.length>0){let o=`Private environment variables exposed to the client: ${s.join(", ")}`;if(process.env.NODE_ENV==="production")S.error(o);else throw new Error(o)}}}var O={HASH_SALT_ROUNDS:12,MIN_USERNAME_LENGTH:4,MAX_USERNAME_LENGTH:36,MIN_PASSWORD_LENGTH:8,MAX_PASSWORD_LENGTH:255,MAX_NAME_LENGTH:255,MAX_SLUG_LENGTH:255,MIN_FIRST_NAME_LENGTH:1,MAX_FIRST_NAME_LENGTH:36,MIN_LAST_NAME_LENGTH:1,MAX_LAST_NAME_LENGTH:36,MAX_DESCRIPTION_LENGTH:1024,MAX_URL_LENGTH:2048,MAX_MIME_TYPE_LENGTH:255,MAX_EXTERNAL_LINKS_COUNT:6,USERNAME_REGEX:/^[a-zA-Z0-9_.-]+$/,SLUG_REGEX:/^[a-zA-Z0-9-]+$/,IMG_SIZES_HIGH_QUALITY:"(max-width: 768px) 100vw, (max-width: 1200px) 75vw, 50vw",IMG_SIZES_MEDIUM_QUALITY:"(max-width: 768px) 100vw, (max-width: 1200px) 60vw, 40vw",IMG_SIZES_BASE_QUALITY:"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",IMG_SIZES_LOW_QUALITY:"(max-width: 768px) 100vw, (max-width: 1200px) 40vw, 25vw"},N=O;var u=(e=>(e.Afghanistan="AF",e.AlandIslands="AX",e.Albania="AL",e.Algeria="DZ",e.AmericanSamoa="AS",e.Andorra="AD",e.Angola="AO",e.Anguilla="AI",e.Antarctica="AQ",e.AntiguaAndBarbuda="AG",e.Argentina="AR",e.Armenia="AM",e.Aruba="AW",e.Australia="AU",e.Austria="AT",e.Azerbaijan="AZ",e.Bahamas="BS",e.Bahrain="BH",e.Bangladesh="BD",e.Barbados="BB",e.Belarus="BY",e.Belgium="BE",e.Belize="BZ",e.Benin="BJ",e.Bermuda="BM",e.Bhutan="BT",e.Bolivia="BO",e.BonaireSintEustatiusSaba="BQ",e.BosniaAndHerzegovina="BA",e.Botswana="BW",e.BouvetIsland="BV",e.Brazil="BR",e.BritishIndianOceanTerritory="IO",e.BruneiDarussalam="BN",e.Bulgaria="BG",e.BurkinaFaso="BF",e.Burundi="BI",e.Cambodia="KH",e.Cameroon="CM",e.Canada="CA",e.CapeVerde="CV",e.CaymanIslands="KY",e.CentralAfricanRepublic="CF",e.Chad="TD",e.Chile="CL",e.China="CN",e.ChristmasIsland="CX",e.CocosKeelingIslands="CC",e.Colombia="CO",e.Comoros="KM",e.Congo="CG",e.CongoDemocraticRepublic="CD",e.CookIslands="CK",e.CostaRica="CR",e.CoteDIvoire="CI",e.Croatia="HR",e.Cuba="CU",e.Curacao="CW",e.Cyprus="CY",e.CzechRepublic="CZ",e.Denmark="DK",e.Djibouti="DJ",e.Dominica="DM",e.DominicanRepublic="DO",e.Ecuador="EC",e.Egypt="EG",e.ElSalvador="SV",e.EquatorialGuinea="GQ",e.Eritrea="ER",e.Estonia="EE",e.Ethiopia="ET",e.FalklandIslands="FK",e.FaroeIslands="FO",e.Fiji="FJ",e.Finland="FI",e.France="FR",e.FrenchGuiana="GF",e.FrenchPolynesia="PF",e.FrenchSouthernTerritories="TF",e.Gabon="GA",e.Gambia="GM",e.Georgia="GE",e.Germany="DE",e.Ghana="GH",e.Gibraltar="GI",e.Greece="GR",e.Greenland="GL",e.Grenada="GD",e.Guadeloupe="GP",e.Guam="GU",e.Guatemala="GT",e.Guernsey="GG",e.Guinea="GN",e.GuineaBissau="GW",e.Guyana="GY",e.Haiti="HT",e.HeardIslandMcdonaldIslands="HM",e.HolySeeVaticanCityState="VA",e.Honduras="HN",e.HongKong="HK",e.Hungary="HU",e.Iceland="IS",e.India="IN",e.Indonesia="ID",e.Iran="IR",e.Iraq="IQ",e.Ireland="IE",e.IsleOfMan="IM",e.Israel="IL",e.Italy="IT",e.Jamaica="JM",e.Japan="JP",e.Jersey="JE",e.Jordan="JO",e.Kazakhstan="KZ",e.Kenya="KE",e.Kiribati="KI",e.Korea="KR",e.KoreaDemocraticPeoplesRepublic="KP",e.Kuwait="KW",e.Kyrgyzstan="KG",e.LaoPeoplesDemocraticRepublic="LA",e.Latvia="LV",e.Lebanon="LB",e.Lesotho="LS",e.Liberia="LR",e.LibyanArabJamahiriya="LY",e.Liechtenstein="LI",e.Lithuania="LT",e.Luxembourg="LU",e.Macao="MO",e.Macedonia="MK",e.Madagascar="MG",e.Malawi="MW",e.Malaysia="MY",e.Maldives="MV",e.Mali="ML",e.Malta="MT",e.MarshallIslands="MH",e.Martinique="MQ",e.Mauritania="MR",e.Mauritius="MU",e.Mayotte="YT",e.Mexico="MX",e.Micronesia="FM",e.Moldova="MD",e.Monaco="MC",e.Mongolia="MN",e.Montenegro="ME",e.Montserrat="MS",e.Morocco="MA",e.Mozambique="MZ",e.Myanmar="MM",e.Namibia="NA",e.Nauru="NR",e.Nepal="NP",e.Netherlands="NL",e.NewCaledonia="NC",e.NewZealand="NZ",e.Nicaragua="NI",e.Niger="NE",e.Nigeria="NG",e.Niue="NU",e.NorfolkIsland="NF",e.NorthernMarianaIslands="MP",e.Norway="NO",e.Oman="OM",e.Pakistan="PK",e.Palau="PW",e.PalestinianTerritory="PS",e.Panama="PA",e.PapuaNewGuinea="PG",e.Paraguay="PY",e.Peru="PE",e.Philippines="PH",e.Pitcairn="PN",e.Poland="PL",e.Portugal="PT",e.PuertoRico="PR",e.Qatar="QA",e.Reunion="RE",e.Romania="RO",e.RussianFederation="RU",e.Rwanda="RW",e.SaintBarthelemy="BL",e.SaintHelena="SH",e.SaintKittsAndNevis="KN",e.SaintLucia="LC",e.SaintMartin="MF",e.SaintPierreAndMiquelon="PM",e.SaintVincentAndGrenadines="VC",e.Samoa="WS",e.SanMarino="SM",e.SaoTomeAndPrincipe="ST",e.SaudiArabia="SA",e.Senegal="SN",e.Serbia="RS",e.Seychelles="SC",e.SierraLeone="SL",e.Singapore="SG",e.SintMaarten="SX",e.Slovakia="SK",e.Slovenia="SI",e.SolomonIslands="SB",e.Somalia="SO",e.SouthAfrica="ZA",e.SouthGeorgiaAndSandwichIsl="GS",e.SouthSudan="SS",e.Spain="ES",e.SriLanka="LK",e.Sudan="SD",e.Suriname="SR",e.SvalbardAndJanMayen="SJ",e.Swaziland="SZ",e.Sweden="SE",e.Switzerland="CH",e.SyrianArabRepublic="SY",e.Taiwan="TW",e.Tajikistan="TJ",e.Tanzania="TZ",e.Thailand="TH",e.TimorLeste="TL",e.Togo="TG",e.Tokelau="TK",e.Tonga="TO",e.TrinidadAndTobago="TT",e.Tunisia="TN",e.Turkey="TR",e.Turkmenistan="TM",e.TurksAndCaicosIslands="TC",e.Tuvalu="TV",e.Uganda="UG",e.Ukraine="UA",e.UnitedArabEmirates="AE",e.UnitedKingdom="GB",e.UnitedStates="US",e.UnitedStatesOutlyingIslands="UM",e.Uruguay="UY",e.Uzbekistan="UZ",e.Vanuatu="VU",e.Venezuela="VE",e.Vietnam="VN",e.VirginIslandsBritish="VG",e.VirginIslandsUS="VI",e.WallisAndFutuna="WF",e.WesternSahara="EH",e.Yemen="YE",e.Zambia="ZM",e.Zimbabwe="ZW",e))(u||{});function A(i){return i==="CoteDIvoire"?"Cote D'Ivoire":i==="VirginIslandsUS"?"Virgin Islands US":i.replace(/([A-Z])/g," $1").trim()}var $=Object.entries(u).map(([i,a])=>({label:A(i),value:a}));function U(i){let a=Object.entries(u).find(([,r])=>r===i);return a?A(a[0]):void 0}var _=u;function w(i,a,r){let t;return r?t={...i,data:r}:t=i,{success:false,message:a||i.message,error:t}}function B(i,a,r){a&&(i.message=a);let t;return r?t={...i,data:r}:t=i,JSON.stringify(t,(s,o)=>typeof o=="function"||typeof o=="bigint"?o.toString():o,4)}function v(i){let a="";try{try{a=i.toString();}catch{a=m(i);}}catch{a="Unknown error";}return {success:false,message:"An error occurred while performing a CRUD operation.",error:{status:500,name:"CRUD_ERROR",message:"CRUD operation failed.",data:{rawError:i,error:a}}}}function P(i,a){let r={status:500,name:"UNKNOWN_ERROR",message:"An unknown error occurred.",data:null};if(a)try{m(a,4),r=a;}catch{r={...r,data:{rawError:`${a}`}};}return m({success:false,message:i,error:r}).replaceAll("Error: ","").replaceAll(`
5
+ `," ")}var H={BAD_REQUEST:{status:400,name:"BadRequest",message:"Bad request.",data:null},UNAUTHORIZED:{status:401,name:"Unauthorized",message:"Unauthorized.",data:null},PAYMENT_REQUIRED:{status:402,name:"PaymentRequired",message:"Payment required.",data:null},FORBIDDEN:{status:403,name:"Forbidden",message:"Forbidden.",data:null},NOT_FOUND:{status:404,name:"NotFound",message:"Not found.",data:null},METHOD_NOT_ALLOWED:{status:405,name:"MethodNotAllowed",message:"Method not allowed.",data:null},REQUEST_TIMEOUT:{status:408,name:"RequestTimeout",message:"Request timed out.",data:null},CONFLICT:{status:409,name:"Conflict",message:"Conflict.",data:null},INTERNAL_SERVER_ERROR:{status:500,name:"InternalServerError",message:"Internal server error.",data:null},BACKEND_FUNCTION_RUNNING_ON_CLIENT:{status:500,name:"BackendFunctionRunningOnClient",message:"A function reserved for the backend is running on the client.",data:null},NOT_IMPLEMENTED:{status:501,name:"NotImplemented",message:"Not implemented.",data:null},BANDWIDTH_LIMIT_EXCEEDED:{status:509,name:"BandwidthLimitExceeded",message:"Bandwidth limit exceeded.",data:null}};var x=T.default||T;function k(i){return typeof i=="string"&&i.length>0&&Number.isInteger(Number(i))&&Number(i)>=0}function K(i){return typeof i=="string"&&i.length>0&&N.SLUG_REGEX.test(i)}function V(i,a="Op",r="s",t=12,n=true){let s;typeof a=="string"&&typeof r=="string"?s=`${a}/${r}`:typeof a=="string"?s=a:s="";let o=n?" ":"";return i>=10**24?`${(i/10**24).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}Y${s}`.padStart(t," "):i>=10**18?`${(i/10**18).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}E${s}`.padStart(t," "):i>=10**15?`${(i/10**15).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}P${s}`.padStart(t," "):i>=10**12?`${(i/10**12).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}T${s}`.padStart(t," "):i>=10**9?`${(i/10**9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}G${s}`.padStart(t," "):i>=10**6?`${(i/10**6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}M${s}`.padStart(t," "):i>=10**3?`${(i/10**3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}k${s}`.padStart(t," "):`${i.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}${s}`.padStart(t," ")}function Z(i,a=8){return i>=3600000000000000n?`${(Number(i)/36e14).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}h`.padStart(a," "):i>=60000000000n?`${(Number(i)/6e10).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}m`.padStart(a," "):i>=1000000000n?`${(Number(i)/1e9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}s`.padStart(a," "):i>=1000000n?`${(Number(i)/1e6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ms`.padStart(a," "):i>=1000n?`${(Number(i)/1e3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}\xB5s`.padStart(a," "):`${i.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ns`.padStart(a," ")}function J(i,a=10){return i>=36e5?`${(i/36e5).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}h`.padStart(a," "):i>=6e4?`${(i/6e4).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}m`.padStart(a," "):i>=1e3?`${(i/1e3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}s`.padStart(a," "):`${i.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ms`.padStart(a," ")}function q(i,a=7){return `${i.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}%`.padStart(a," ")}function j(i,a){return i.length<=a?i:`${i.slice(0,a)}...`}function W(i){let a=[],r=Array.isArray(i)?i:i.split(",").map(t=>t.trim());for(let t of r){let n=Number.parseInt(t,10);Number.isNaN(n)||a.push(n);}return a}function Y(i){let a=[],r=Array.isArray(i)?i:i.split(",").map(t=>t.trim());for(let t of r)t.length>0&&a.push(t);return a}var L={lower:true,strict:true};function X(i,a){if(a){let r=a.match(/-(\d+)$/);if(r){let t=Number.parseInt(r[1],10),n=a.slice(0,-r[0].length);return x(`${n}-${t+1}`,L)}}return x(i,L)}function z(i){let a=Math.floor((Date.now()-i.getTime())/1e3);if(a<60)return "just now";let r=Math.floor(a/60);if(r<60)return `${r}m ago`;let t=Math.floor(r/60);return t<24?`${t}h ago`:i.toLocaleDateString()}function Q(i){return i.toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:true})}function y(i,a=2){if(i===0n)return ["0",0];let r=i.toString(),t=r.length-1;return t===0?[r,0]:[`${r[0]}.${r.slice(1,a+1).padEnd(a,"0")}`.replace(/\.?0+$/,""),t]}function C(i){let a=i<0n,r=i<0n?-i:i,t=["","k","M","G","T","P","E"],n=r.toString(),s=Math.floor((n.length-1)/3);if(s>=t.length&&(s=t.length-1),s<=0)return i.toString();let o=1000n**BigInt(s),c=(r*10n/o).toString().padStart(2,"0"),f=c.slice(0,-1)||"0",p=c.slice(-1),d=a?"-":"",M=t[s];return p==="0"?`${d}${f}${M}`:`${d}${f}.${p}${M}`}function ee(i,a=2){if(i===0)return "0 Bytes";let r=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],t=Math.floor(Math.log(i)/Math.log(1024));return `${parseFloat((i/1024**t).toFixed(a<0?0:a))} ${r[t]}`}function ie(i,a,r,t,n,s=true){let o=(i-a)*(n-t)/(r-a)+t;return s?Math.min(Math.max(o,t),n):o}function ae(i,a,r=2){if(!a)return 0;let t=typeof i=="string"?parseFloat(i):i,n=typeof a=="string"?parseFloat(a):a;return parseFloat(((t||0)/(n||1)).toFixed(r))}function te(i,a,r=2){if(!a)return 0;let t=typeof i=="string"?parseFloat(i):i,n=typeof a=="string"?parseFloat(a):a;return n?parseFloat((((t||0)-(n||0))/(n||1)*100).toFixed(r)):t&&t>0?-1:0}var re=`
3
6
  default-src * data: mediastream: blob: filesystem: about: ws: wss: 'unsafe-eval' 'wasm-unsafe-eval' 'unsafe-inline';
4
7
  script-src * data: blob: 'unsafe-inline' 'unsafe-eval';
5
8
  script-src-elem * data: blob: 'unsafe-inline';
@@ -10,5 +13,5 @@ import d from'slugify';function N(){return !S()}function S(){return typeof windo
10
13
  style-src * data: blob: 'unsafe-inline';
11
14
  font-src * data: blob: 'unsafe-inline';
12
15
  frame-ancestors * data: blob:;
13
- `.replace(/\s{2,}/g," ").trim();function Z(e){if(typeof e=="string")return e;let i="";try{i=JSON.stringify(e);}catch{}return (i===""||i==="{}")&&(i=`${e}`),i}function J(e){for(let i in e)try{e[i]=decodeURIComponent(String(e[i]));}catch{}return e}function W(e,i){let r=Number.parseInt(e.substring(1,3),16),t=Number.parseInt(e.substring(3,5),16),n=Number.parseInt(e.substring(5,7),16);r=Math.round(r*(100+i)/100),t=Math.round(t*(100+i)/100),n=Math.round(n*(100+i)/100),r=r<255?r:255,t=t<255?t:255,n=n<255?n:255,r=Math.round(r),t=Math.round(t),n=Math.round(n);let m=r.toString(16).length===1?`0${r.toString(16)}`:r.toString(16),s=t.toString(16).length===1?`0${t.toString(16)}`:t.toString(16),E=n.toString(16).length===1?`0${n.toString(16)}`:n.toString(16);return `#${m}${s}${E}`}export{G as BaseErrors,M as COUNTRIES_SELECT_FIELD,u as Country,c as CyCONSTANTS,A as arrayEqual,Z as convertErrorToString,J as decodeObjectURIComponents,g as formatCountryName,R as formatErrorResponse,h as formatHRTime,T as formatJson,D as formatMessageAsStringifiedError,B as formatPercentage,O as formatTime,x as formatUnit,V as fullyPermissiveCspHeader,I as getCountryNameFromCode,N as isClient,S as isServer,U as isValidIntId,_ as isValidSlug,K as mapRange,F as parseCRUDError,P as parseQueryNumberArray,$ as parseQueryStringArray,v as safeAverage,k as safePercentage,W as shadeColor,H as slugifyName,l as stringify,L as stringifyError,w as truncateString};//# sourceMappingURL=index.js.map
16
+ `.replace(/\s{2,}/g," ").trim();function ne(i){if(typeof i=="string")return i;let a="";try{a=JSON.stringify(i);}catch{}return (a===""||a==="{}")&&(a=`${i}`),a}function se(i){for(let a in i)try{i[a]=decodeURIComponent(String(i[a]));}catch{}return i}function oe(i){let a=i.replace(/^#/,"");if(a.length!==6)return i;let r=(255-parseInt(a.slice(0,2),16)).toString(16).padStart(2,"0"),t=(255-parseInt(a.slice(2,4),16)).toString(16).padStart(2,"0"),n=(255-parseInt(a.slice(4,6),16)).toString(16).padStart(2,"0");return `#${r}${t}${n}`}function me(i,a){let r=Math.min(Math.max(a,0),1),t=i.replace(/^#/,"");if(t.length!==6)return i;let n=Math.round(r*255).toString(16).padStart(2,"0");return `#${t}${n}`}function ge(i,a){let r=Number.parseInt(i.substring(1,3),16),t=Number.parseInt(i.substring(3,5),16),n=Number.parseInt(i.substring(5,7),16);r=Math.round(r*(100+a)/100),t=Math.round(t*(100+a)/100),n=Math.round(n*(100+a)/100),r=r<255?r:255,t=t<255?t:255,n=n<255?n:255,r=Math.round(r),t=Math.round(t),n=Math.round(n);let s=r.toString(16).length===1?`0${r.toString(16)}`:r.toString(16),o=t.toString(16).length===1?`0${t.toString(16)}`:t.toString(16),g=n.toString(16).length===1?`0${n.toString(16)}`:n.toString(16);return `#${s}${o}${g}`}export{H as BaseErrors,$ as COUNTRIES_SELECT_FIELD,_ as Country,N as CyCONSTANTS,l as LOG_INDICATORS,me as applyHexColorOpacity,h as arrayEqual,C as bigintToMetricFormatted,y as bigintToScientific,G as checkEnvironmentVariables,ne as convertErrorToString,E as createLogger,se as decodeObjectURIComponents,ee as formatBytes,A as formatCountryName,Q as formatDate,w as formatErrorResponse,Z as formatHRTime,D as formatJson,P as formatMessageAsStringifiedError,q as formatPercentage,z as formatRelativeTime,J as formatTime,V as formatUnit,re as fullyPermissiveCspHeader,F as generateLoggerPrefix,U as getCountryNameFromCode,oe as invertHexColor,R as isClient,I as isServer,k as isValidIntId,K as isValidSlug,S as logger,ie as mapRange,v as parseCRUDError,W as parseQueryNumberArray,Y as parseQueryStringArray,ae as safeAverage,te as safePercentage,ge as shadeColor,X as slugifyName,m as stringify,B as stringifyError,j as truncateString};//# sourceMappingURL=index.js.map
14
17
  //# sourceMappingURL=index.js.map