@cybearl/cypack 1.10.7 → 1.11.2

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,36 @@ 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;
571
624
  /**
572
625
  * Formats a number of bytes into a human-readable string with appropriate units.
573
626
  * @param bytes The number of bytes.
@@ -583,13 +636,64 @@ declare function formatBytes(bytes: number, decimalPlaces?: number): string;
583
636
  */
584
637
  declare function formatJson(str: string): string;
585
638
  /**
586
- * Stringify a JSON object with support for BigInt and functions.
639
+ * Stringify a JSON object with support for `BigInt` and functions.
587
640
  * @param object The object to stringify.
588
- * @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).
589
642
  * @returns The stringified JSON object.
590
643
  */
591
644
  declare function stringify(object: unknown, indent?: number): string;
592
645
 
646
+ /**
647
+ * A set of colored Next.js-compatible ANSI indicators for console log messages.
648
+ */
649
+ declare const NEXT_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 NextLoggerOptions = {
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 `createNextLogger` or `withPrefix`.
667
+ */
668
+ type NextLoggerInstance = {
669
+ success: (message: string, options?: NextLoggerOptions) => void;
670
+ warn: (message: string, options?: NextLoggerOptions) => void;
671
+ error: (message: string, options?: NextLoggerOptions) => void;
672
+ info: (message: string, options?: NextLoggerOptions) => void;
673
+ debug: (message: string, options?: NextLoggerOptions) => void;
674
+ /** Returns a new logger instance with the given prefix fixed as its default. */
675
+ withPrefix: (prefix: string) => NextLoggerInstance;
676
+ };
677
+ /**
678
+ * Creates an isomorphic Next.js-compatible 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 createNextLogger(defaultPrefix?: string, prefixLength?: number): NextLoggerInstance;
685
+ /**
686
+ * A thin isomorphic Next.js-compatible logger instance usable in both browser and Node.js environments.
687
+ */
688
+ declare const nextLogger: NextLoggerInstance;
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 generateNextLoggerPrefix(uuid: string, prefix?: string): string;
696
+
593
697
  /**
594
698
  * Map a number to a range of numbers.
595
699
  * @param value The number to map.
@@ -646,6 +750,19 @@ declare function decodeObjectURIComponents(obj: Partial<{
646
750
  [key: string]: string | string[];
647
751
  }>;
648
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;
649
766
  /**
650
767
  * Shades a color by a percentage.
651
768
  * @param color The color to shade.
@@ -684,4 +801,4 @@ type CGASStatus = {
684
801
  message: string
685
802
  }
686
803
 
687
- export { BaseErrors, type CGASStatus, type CGASStatusString, COUNTRIES_SELECT_FIELD, Country, CyCONSTANTS, type ErrorObj, type FailedRequest, type RequestResult, type SuccessfulRequest, arrayEqual, convertErrorToString, decodeObjectURIComponents, formatBytes, 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, NEXT_LOG_INDICATORS, type NextLoggerInstance, type NextLoggerOptions, type RequestResult, type RequiredEnvVars, type SuccessfulRequest, applyHexColorOpacity, arrayEqual, bigintToMetricFormatted, bigintToScientific, checkEnvironmentVariables, convertErrorToString, createNextLogger, decodeObjectURIComponents, formatBytes, formatCountryName, formatDate, formatErrorResponse, formatHRTime, formatJson, formatMessageAsStringifiedError, formatPercentage, formatRelativeTime, formatTime, formatUnit, fullyPermissiveCspHeader, generateNextLoggerPrefix, getCountryNameFromCode, invertHexColor, isClient, isServer, isValidIntId, isValidSlug, mapRange, nextLogger, parseCRUDError, parseQueryNumberArray, parseQueryStringArray, safeAverage, safePercentage, shadeColor, slugifyName, stringify, stringifyError, truncateString };
package/index.js CHANGED
@@ -1,5 +1,8 @@
1
- import f 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 u(e){let i=Object.entries(o).find(([,r])=>r===e);return i?g(i[0]):void 0}var I=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 d=f.default||f;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 B(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 h(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 O(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 $(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 P(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 d(`${n}-${t+1}`,p)}}return d(e,p)}function K(e,i=2){if(e===0)return "0 Bytes";let r=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],t=Math.floor(Math.log(e)/Math.log(1024));return `${parseFloat((e/1024**t).toFixed(i<0?0:i))} ${r[t]}`}function v(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 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 parseFloat(((t||0)/(n||1)).toFixed(r))}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 n?parseFloat((((t||0)-(n||0))/(n||1)*100).toFixed(r)):t&&t>0?-1:0}var Z=`
1
+ import I from'slugify';function M(){return typeof window>"u"}function R(){return !M()}function h(i,t){if(i===t)return true;let{length:r}=i;if(r!==t.length)return false;for(let a=0;a<r;a++)if(i[a]!==t[a])return false;return true}function D(i){return JSON.stringify(JSON.parse(i),null,4)}function m(i,t=4){return JSON.stringify(i,(r,a)=>typeof a=="function"||typeof a=="bigint"?a.toString():a,t)}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 b(i,t=10){function r(a,n,s,o){let g=typeof window<"u",N="",c=o?.prefix??i;c&&(N=`[${c}]${g?" ":" ".repeat(t-(c.length+2))}`);let f=`${g?"":a}${N}${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:(a,n)=>r(l.success,console.log,a,n),warn:(a,n)=>r(l.warning,console.warn,a,n),error:(a,n)=>r(l.error,console.error,a,n),info:(a,n)=>r(l.info,console.log,a,n),debug:(a,n)=>r(l.debug,console.debug,a,n),withPrefix:a=>b(a,t)}}var S=b();function F(i,t){return `${t?`${t}-`:""}${i.replaceAll("-","").slice(0,3)}`}function G(i,t){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=>t[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=>t[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"},E=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 x(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,t])=>({label:x(i),value:t}));function $(i){let t=Object.entries(u).find(([,r])=>r===i);return t?x(t[0]):void 0}var U=u;function w(i,t,r){let a;return r?a={...i,data:r}:a=i,{success:false,message:t||i.message,error:a}}function B(i,t,r){t&&(i.message=t);let a;return r?a={...i,data:r}:a=i,JSON.stringify(a,(s,o)=>typeof o=="function"||typeof o=="bigint"?o.toString():o,4)}function v(i){let t="";try{try{t=i.toString();}catch{t=m(i);}}catch{t="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:t}}}}function P(i,t){let r={status:500,name:"UNKNOWN_ERROR",message:"An unknown error occurred.",data:null};if(t)try{m(t,4),r=t;}catch{r={...r,data:{rawError:`${t}`}};}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 T=I.default||I;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&&E.SLUG_REGEX.test(i)}function V(i,t="Op",r="s",a=12,n=true){let s;typeof t=="string"&&typeof r=="string"?s=`${t}/${r}`:typeof t=="string"?s=t:s="";let o=n?" ":"";return i>=10**24?`${(i/10**24).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}Y${s}`.padStart(a," "):i>=10**18?`${(i/10**18).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}E${s}`.padStart(a," "):i>=10**15?`${(i/10**15).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}P${s}`.padStart(a," "):i>=10**12?`${(i/10**12).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}T${s}`.padStart(a," "):i>=10**9?`${(i/10**9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}G${s}`.padStart(a," "):i>=10**6?`${(i/10**6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}M${s}`.padStart(a," "):i>=10**3?`${(i/10**3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}k${s}`.padStart(a," "):`${i.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${o}${s}`.padStart(a," ")}function Z(i,t=8){return i>=3600000000000000n?`${(Number(i)/36e14).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}h`.padStart(t," "):i>=60000000000n?`${(Number(i)/6e10).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}m`.padStart(t," "):i>=1000000000n?`${(Number(i)/1e9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}s`.padStart(t," "):i>=1000000n?`${(Number(i)/1e6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ms`.padStart(t," "):i>=1000n?`${(Number(i)/1e3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}\xB5s`.padStart(t," "):`${i.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ns`.padStart(t," ")}function J(i,t=10){return i>=36e5?`${(i/36e5).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}h`.padStart(t," "):i>=6e4?`${(i/6e4).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}m`.padStart(t," "):i>=1e3?`${(i/1e3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}s`.padStart(t," "):`${i.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ms`.padStart(t," ")}function q(i,t=7){return `${i.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}%`.padStart(t," ")}function X(i,t){return i.length<=t?i:`${i.slice(0,t)}...`}function j(i){let t=[],r=Array.isArray(i)?i:i.split(",").map(a=>a.trim());for(let a of r){let n=Number.parseInt(a,10);Number.isNaN(n)||t.push(n);}return t}function W(i){let t=[],r=Array.isArray(i)?i:i.split(",").map(a=>a.trim());for(let a of r)a.length>0&&t.push(a);return t}var L={lower:true,strict:true};function Y(i,t){if(t){let r=t.match(/-(\d+)$/);if(r){let a=Number.parseInt(r[1],10),n=t.slice(0,-r[0].length);return T(`${n}-${a+1}`,L)}}return T(i,L)}function z(i){let t=Math.floor((Date.now()-i.getTime())/1e3);if(t<60)return "just now";let r=Math.floor(t/60);if(r<60)return `${r}m ago`;let a=Math.floor(r/60);return a<24?`${a}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,t=2){if(i===0n)return ["0",0];let r=i.toString(),a=r.length-1;return a===0?[r,0]:[`${r[0]}.${r.slice(1,t+1).padEnd(t,"0")}`.replace(/\.?0+$/,""),a]}function C(i){let t=i<0n,r=i<0n?-i:i,a=["","k","M","G","T","P","E"],n=r.toString(),s=Math.floor((n.length-1)/3);if(s>=a.length&&(s=a.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=t?"-":"",A=a[s];return p==="0"?`${d}${f}${A}`:`${d}${f}.${p}${A}`}function ee(i,t=2){if(i===0)return "0 Bytes";let r=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],a=Math.floor(Math.log(i)/Math.log(1024));return `${parseFloat((i/1024**a).toFixed(t<0?0:t))} ${r[a]}`}function ie(i,t,r,a,n,s=true){let o=(i-t)*(n-a)/(r-t)+a;return s?Math.min(Math.max(o,a),n):o}function te(i,t,r=2){if(!t)return 0;let a=typeof i=="string"?parseFloat(i):i,n=typeof t=="string"?parseFloat(t):t;return parseFloat(((a||0)/(n||1)).toFixed(r))}function ae(i,t,r=2){if(!t)return 0;let a=typeof i=="string"?parseFloat(i):i,n=typeof t=="string"?parseFloat(t):t;return n?parseFloat((((a||0)-(n||0))/(n||1)*100).toFixed(r)):a&&a>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 f 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 J(e){if(typeof e=="string")return e;let i="";try{i=JSON.stringify(e);}catch{}return (i===""||i==="{}")&&(i=`${e}`),i}function W(e){for(let i in e)try{e[i]=decodeURIComponent(String(e[i]));}catch{}return e}function Y(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,I as Country,c as CyCONSTANTS,A as arrayEqual,J as convertErrorToString,W as decodeObjectURIComponents,K as formatBytes,g as formatCountryName,R as formatErrorResponse,B as formatHRTime,T as formatJson,D as formatMessageAsStringifiedError,O as formatPercentage,h as formatTime,x as formatUnit,Z as fullyPermissiveCspHeader,u as getCountryNameFromCode,N as isClient,S as isServer,U as isValidIntId,_ as isValidSlug,v as mapRange,F as parseCRUDError,$ as parseQueryNumberArray,P as parseQueryStringArray,k as safeAverage,V as safePercentage,Y 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 t="";try{t=JSON.stringify(i);}catch{}return (t===""||t==="{}")&&(t=`${i}`),t}function se(i){for(let t in i)try{i[t]=decodeURIComponent(String(i[t]));}catch{}return i}function oe(i){let t=i.replace(/^#/,"");if(t.length!==6)return i;let r=(255-parseInt(t.slice(0,2),16)).toString(16).padStart(2,"0"),a=(255-parseInt(t.slice(2,4),16)).toString(16).padStart(2,"0"),n=(255-parseInt(t.slice(4,6),16)).toString(16).padStart(2,"0");return `#${r}${a}${n}`}function me(i,t){let r=Math.min(Math.max(t,0),1),a=i.replace(/^#/,"");if(a.length!==6)return i;let n=Math.round(r*255).toString(16).padStart(2,"0");return `#${a}${n}`}function ge(i,t){let r=Number.parseInt(i.substring(1,3),16),a=Number.parseInt(i.substring(3,5),16),n=Number.parseInt(i.substring(5,7),16);r=Math.round(r*(100+t)/100),a=Math.round(a*(100+t)/100),n=Math.round(n*(100+t)/100),r=r<255?r:255,a=a<255?a:255,n=n<255?n:255,r=Math.round(r),a=Math.round(a),n=Math.round(n);let s=r.toString(16).length===1?`0${r.toString(16)}`:r.toString(16),o=a.toString(16).length===1?`0${a.toString(16)}`:a.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,U as Country,E as CyCONSTANTS,l as NEXT_LOG_INDICATORS,me as applyHexColorOpacity,h as arrayEqual,C as bigintToMetricFormatted,y as bigintToScientific,G as checkEnvironmentVariables,ne as convertErrorToString,b as createNextLogger,se as decodeObjectURIComponents,ee as formatBytes,x 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 generateNextLoggerPrefix,$ as getCountryNameFromCode,oe as invertHexColor,R as isClient,M as isServer,k as isValidIntId,K as isValidSlug,ie as mapRange,S as nextLogger,v as parseCRUDError,j as parseQueryNumberArray,W as parseQueryStringArray,te as safeAverage,ae as safePercentage,ge as shadeColor,Y as slugifyName,m as stringify,B as stringifyError,X as truncateString};//# sourceMappingURL=index.js.map
14
17
  //# sourceMappingURL=index.js.map