@cybearl/cypack 1.8.8 → 1.8.10
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/README.md +15 -15
- package/backend.d.ts +11 -152
- package/backend.js +5 -7
- package/backend.js.map +1 -1
- package/index.d.ts +176 -47
- package/index.js +3 -2
- package/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -37,21 +37,6 @@ Backend utilities
|
|
|
37
37
|
#### Cybearl General API System
|
|
38
38
|
- `generateCGASStatus`: Generates a Cybearl General API System (CGAS) status object.
|
|
39
39
|
|
|
40
|
-
#### Error utilities
|
|
41
|
-
Contains a set of base error that follows the Cybearl error format, and other error-related utilities.
|
|
42
|
-
- `formatErrorResponse`: Formats an error response object.
|
|
43
|
-
- `stringifyError`: Stringifies an error object.
|
|
44
|
-
- `parseCRUDError`: Parse the error of a CRUD call and return a standardized error.
|
|
45
|
-
- `formatMessageAsStringifiedError`: Formats a message and an error object into a JSON string that follows the `FailedRequest` standard.
|
|
46
|
-
- `BaseError`: The base error class that all Cybearl errors inherit from, don't forget to do:
|
|
47
|
-
```typescript
|
|
48
|
-
export const AppErrors = {
|
|
49
|
-
...BaseErrors,
|
|
50
|
-
// Add your custom errors here
|
|
51
|
-
} as const satisfies Record<string, ErrorObj>
|
|
52
|
-
```
|
|
53
|
-
To be sure that you respect the error format.
|
|
54
|
-
|
|
55
40
|
#### Host-related utilities
|
|
56
41
|
Contains utilities to get the hostname and other host-related information.
|
|
57
42
|
- `getHostname`: Get the name of the host on which the application is running.
|
|
@@ -95,6 +80,21 @@ Main utilities
|
|
|
95
80
|
#### Configuration utilities
|
|
96
81
|
- `CyCONSTANTS`: Multiple constants used throughout the application (user password length, etc.).
|
|
97
82
|
|
|
83
|
+
#### Error utilities
|
|
84
|
+
Contains a set of base error that follows the Cybearl error format, and other error-related utilities.
|
|
85
|
+
- `formatErrorResponse`: Formats an error response object.
|
|
86
|
+
- `stringifyError`: Stringifies an error object.
|
|
87
|
+
- `parseCRUDError`: Parse the error of a CRUD call and return a standardized error.
|
|
88
|
+
- `formatMessageAsStringifiedError`: Formats a message and an error object into a JSON string that follows the `FailedRequest` standard.
|
|
89
|
+
- `BaseError`: The base error class that all Cybearl errors inherit from, don't forget to do:
|
|
90
|
+
```typescript
|
|
91
|
+
export const AppErrors = {
|
|
92
|
+
...BaseErrors,
|
|
93
|
+
// Add your custom errors here
|
|
94
|
+
} as const satisfies Record<string, ErrorObj>
|
|
95
|
+
```
|
|
96
|
+
To be sure that you respect the error format.
|
|
97
|
+
|
|
98
98
|
#### Formatting utilities
|
|
99
99
|
Contains a set of utilities to format numbers, time, and other values.
|
|
100
100
|
- `formatUnit`: Format a number with an attached unit + an optional time unit.
|
package/backend.d.ts
CHANGED
|
@@ -815,157 +815,6 @@ declare class CyBuffer {
|
|
|
815
815
|
clear: (offset?: number, length?: number) => this;
|
|
816
816
|
}
|
|
817
817
|
|
|
818
|
-
/**
|
|
819
|
-
* The type definition for an error object.
|
|
820
|
-
*/
|
|
821
|
-
type ErrorObj = {
|
|
822
|
-
status: number
|
|
823
|
-
name: string
|
|
824
|
-
message: string
|
|
825
|
-
data: unknown
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
/**
|
|
829
|
-
* The type for a failed request, containing the error message and the error object.
|
|
830
|
-
*
|
|
831
|
-
* The reason for the duplicate `success` field is to allow for the `FailedRequest` type to be used
|
|
832
|
-
* directly.
|
|
833
|
-
*/
|
|
834
|
-
type FailedRequest = {
|
|
835
|
-
success: false
|
|
836
|
-
message: string
|
|
837
|
-
error: ErrorObj
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
/**
|
|
841
|
-
* Formats an `ErrorObj` into a standard error sent back by an API endpoint.
|
|
842
|
-
*/
|
|
843
|
-
declare function formatErrorResponse(error: ErrorObj, customMessage?: string, additionalData?: unknown): {
|
|
844
|
-
success: boolean;
|
|
845
|
-
message: string;
|
|
846
|
-
error: ErrorObj;
|
|
847
|
-
};
|
|
848
|
-
/**
|
|
849
|
-
* Formats an `ErrorObj` and stringifies it for it to be supported by the `Error` class.
|
|
850
|
-
* @param error The `ErrorObj` object to format.
|
|
851
|
-
* @param message Replaces the standard error message with a custom one (optional).
|
|
852
|
-
* @param additionalData Additional data to include in the error (optional).
|
|
853
|
-
* @returns The formatted error string.
|
|
854
|
-
*/
|
|
855
|
-
declare function stringifyError(error: ErrorObj, message?: string, additionalData?: unknown): string;
|
|
856
|
-
/**
|
|
857
|
-
* Parse the error of a CRUD call and return a standardized error.
|
|
858
|
-
* @param error The error to parse.
|
|
859
|
-
* @returns The standardized error object.
|
|
860
|
-
*/
|
|
861
|
-
declare function parseCRUDError(error: unknown): FailedRequest;
|
|
862
|
-
/**
|
|
863
|
-
* Formats a message and an error object into a JSON string that follows the `FailedRequest` standard,
|
|
864
|
-
* the goal is to not end up with special characters such as newlines in the message, so it can be parsed
|
|
865
|
-
* back into an object without issues.
|
|
866
|
-
* @param message The message to format.
|
|
867
|
-
* @param error The error object to format.
|
|
868
|
-
* @returns The formatted JSON string.
|
|
869
|
-
*/
|
|
870
|
-
declare function formatMessageAsStringifiedError(message: string, error?: unknown): string;
|
|
871
|
-
/**
|
|
872
|
-
* Contains all the standard available errors for the application, it serves as a base
|
|
873
|
-
* to extend with your custom errors.
|
|
874
|
-
*
|
|
875
|
-
* The recommended way is to create an `AppErrors` object that extends this one, preferably
|
|
876
|
-
* at a place similar to `lib/utils/errors.ts`:
|
|
877
|
-
* ```typescript
|
|
878
|
-
* import { BaseErrors } from "..."
|
|
879
|
-
*
|
|
880
|
-
* export const AppErrors = {
|
|
881
|
-
* ...BaseErrors,
|
|
882
|
-
* //=====//
|
|
883
|
-
* // 401 //
|
|
884
|
-
* //=====//
|
|
885
|
-
* BLAH_BLAH: {
|
|
886
|
-
* status: 401,
|
|
887
|
-
* name: "BlahBlah",
|
|
888
|
-
* message: "Blah blah blah.",
|
|
889
|
-
* data: null,
|
|
890
|
-
* },
|
|
891
|
-
* }
|
|
892
|
-
* ```
|
|
893
|
-
*/
|
|
894
|
-
declare const BaseErrors: {
|
|
895
|
-
readonly BAD_REQUEST: {
|
|
896
|
-
readonly status: 400;
|
|
897
|
-
readonly name: "BadRequest";
|
|
898
|
-
readonly message: "Bad request.";
|
|
899
|
-
readonly data: null;
|
|
900
|
-
};
|
|
901
|
-
readonly UNAUTHORIZED: {
|
|
902
|
-
readonly status: 401;
|
|
903
|
-
readonly name: "Unauthorized";
|
|
904
|
-
readonly message: "Unauthorized.";
|
|
905
|
-
readonly data: null;
|
|
906
|
-
};
|
|
907
|
-
readonly PAYMENT_REQUIRED: {
|
|
908
|
-
readonly status: 402;
|
|
909
|
-
readonly name: "PaymentRequired";
|
|
910
|
-
readonly message: "Payment required.";
|
|
911
|
-
readonly data: null;
|
|
912
|
-
};
|
|
913
|
-
readonly FORBIDDEN: {
|
|
914
|
-
readonly status: 403;
|
|
915
|
-
readonly name: "Forbidden";
|
|
916
|
-
readonly message: "Forbidden.";
|
|
917
|
-
readonly data: null;
|
|
918
|
-
};
|
|
919
|
-
readonly NOT_FOUND: {
|
|
920
|
-
readonly status: 404;
|
|
921
|
-
readonly name: "NotFound";
|
|
922
|
-
readonly message: "Not found.";
|
|
923
|
-
readonly data: null;
|
|
924
|
-
};
|
|
925
|
-
readonly METHOD_NOT_ALLOWED: {
|
|
926
|
-
readonly status: 405;
|
|
927
|
-
readonly name: "MethodNotAllowed";
|
|
928
|
-
readonly message: "Method not allowed.";
|
|
929
|
-
readonly data: null;
|
|
930
|
-
};
|
|
931
|
-
readonly REQUEST_TIMEOUT: {
|
|
932
|
-
readonly status: 408;
|
|
933
|
-
readonly name: "RequestTimeout";
|
|
934
|
-
readonly message: "Request timed out.";
|
|
935
|
-
readonly data: null;
|
|
936
|
-
};
|
|
937
|
-
readonly CONFLICT: {
|
|
938
|
-
readonly status: 409;
|
|
939
|
-
readonly name: "Conflict";
|
|
940
|
-
readonly message: "Conflict.";
|
|
941
|
-
readonly data: null;
|
|
942
|
-
};
|
|
943
|
-
readonly INTERNAL_SERVER_ERROR: {
|
|
944
|
-
readonly status: 500;
|
|
945
|
-
readonly name: "InternalServerError";
|
|
946
|
-
readonly message: "Internal server error.";
|
|
947
|
-
readonly data: null;
|
|
948
|
-
};
|
|
949
|
-
readonly BACKEND_FUNCTION_RUNNING_ON_CLIENT: {
|
|
950
|
-
readonly status: 500;
|
|
951
|
-
readonly name: "BackendFunctionRunningOnClient";
|
|
952
|
-
readonly message: "A function reserved for the backend is running on the client.";
|
|
953
|
-
readonly data: null;
|
|
954
|
-
};
|
|
955
|
-
readonly NOT_IMPLEMENTED: {
|
|
956
|
-
readonly status: 501;
|
|
957
|
-
readonly name: "NotImplemented";
|
|
958
|
-
readonly message: "Not implemented.";
|
|
959
|
-
readonly data: null;
|
|
960
|
-
};
|
|
961
|
-
readonly BANDWIDTH_LIMIT_EXCEEDED: {
|
|
962
|
-
readonly status: 509;
|
|
963
|
-
readonly name: "BandwidthLimitExceeded";
|
|
964
|
-
readonly message: "Bandwidth limit exceeded.";
|
|
965
|
-
readonly data: null;
|
|
966
|
-
};
|
|
967
|
-
};
|
|
968
|
-
|
|
969
818
|
/**
|
|
970
819
|
* Get the name of the host on which the application is running.
|
|
971
820
|
* @returns The name of the host.
|
|
@@ -1058,6 +907,16 @@ declare const logger: pino.Logger & {
|
|
|
1058
907
|
resetParameters: () => void;
|
|
1059
908
|
};
|
|
1060
909
|
|
|
910
|
+
/**
|
|
911
|
+
* The type definition for an error object.
|
|
912
|
+
*/
|
|
913
|
+
type ErrorObj = {
|
|
914
|
+
status: number
|
|
915
|
+
name: string
|
|
916
|
+
message: string
|
|
917
|
+
data: unknown
|
|
918
|
+
}
|
|
919
|
+
|
|
1061
920
|
/**
|
|
1062
921
|
* A session with a user extended with optional roles.
|
|
1063
922
|
*/
|
|
@@ -1229,4 +1088,4 @@ declare class NextApiWrapper {
|
|
|
1229
1088
|
run(): Promise<boolean | void>;
|
|
1230
1089
|
}
|
|
1231
1090
|
|
|
1232
|
-
export {
|
|
1091
|
+
export { Bench, type BenchmarkResult, type BenchmarkResults, type Bit, CyBuffer, type Endianness, type NextApiMethodInput, NextApiWrapper, type StringEncoding, generateCGASStatus, getHostname, logger };
|
package/backend.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
`).
|
|
5
|
-
`));let f=a(`${o}${c}${n.msg}${m}`);return s&&(f=s(f)),console.log(f),""}var P=_({crlf:false,colorize:true,sync:true,include:"",messageFormat:(n,t,r,{colors:e})=>T(n,e)}),d=M({level:u.level},P);d.setLevel=n=>{u.level=n,d.level=n;};d.setShowLevel=n=>{u.showLevel=n;};d.setShowTimestamp=n=>{u.showTimestamp=n;};d.setForeignObjectStartAtNewLine=n=>{u.foreignObjectStartAtNewLine=n;};d.setForeignObjectPadding=n=>{u.foreignObjectPadding=n;};d.setForeignObjectIndent=n=>{u.foreignObjectIndent=n;};d.setParameters=n=>{Object.assign(u,n);};d.resetParameters=()=>{Object.assign(u,N);};var E=d;function $(n,t="Op",r="s",e=12,i=true){let s;typeof t=="string"&&typeof r=="string"?s=`${t}/${r}`:typeof t=="string"?s=t:s="";let a=i?" ":"";return n>=10**24?`${(n/10**24).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}Y${s}`.padStart(e," "):n>=10**18?`${(n/10**18).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}E${s}`.padStart(e," "):n>=10**15?`${(n/10**15).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}P${s}`.padStart(e," "):n>=10**12?`${(n/10**12).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}T${s}`.padStart(e," "):n>=10**9?`${(n/10**9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}G${s}`.padStart(e," "):n>=10**6?`${(n/10**6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}M${s}`.padStart(e," "):n>=10**3?`${(n/10**3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}k${s}`.padStart(e," "):`${n.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}${s}`.padStart(e," ")}function L(n,t=8){return n>=3600000000000000n?`${(Number(n)/36e14).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}h`.padStart(t," "):n>=60000000000n?`${(Number(n)/6e10).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}m`.padStart(t," "):n>=1000000000n?`${(Number(n)/1e9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}s`.padStart(t," "):n>=1000000n?`${(Number(n)/1e6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ms`.padStart(t," "):n>=1000n?`${(Number(n)/1e3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}\xB5s`.padStart(t," "):`${n.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ns`.padStart(t," ")}function I(n,t=7){return `${n.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}%`.padStart(t," ")}var A=class{benchmarkDuration;results={};constructor(t=256){this.benchmarkDuration=t;}benchmark=(t,r)=>{let i=process.hrtime.bigint(),s=0,a=0,o=0,c=0n,m=0n,f=0n,g=BigInt(this.benchmarkDuration)*1000000n;for(let l=0;l<Number.POSITIVE_INFINITY;l++)if(m=process.hrtime.bigint(),t(),f=process.hrtime.bigint(),c+=f-m,f-i>=g){a=Number(c)/l,s=1e9/a,o=Number(f-i)/a;break}this.results[r]={operationsPerSecond:s,avgExecutionTime:a,operations:o};};print=(t,r=true)=>{let e=t||"RESULTS";E.info(`
|
|
6
|
-
${e.toUpperCase()}:`),E.info("=".repeat(e.length+1));let i=0;for(let a of Object.keys(this.results))a.length>i&&(i=a.length);let s=Object.entries(this.results).sort((a,o)=>o[1].operationsPerSecond-a[1].operationsPerSecond);for(let[a,o]of s){let c=s[0][1].operationsPerSecond,m=o.operationsPerSecond/c*100,f=`>> ${a} `.padEnd(i+4,"\u2550"),g=`AVG TIME: ${L(o.avgExecutionTime)}`,l=`OPS: ${$(o.operationsPerSecond)}`,B=`PERCENTAGE: ${I(m)}`,S=`${f}\u2550> ${g} | ${l} | ${B}`,x=10;m>=90?E.debug(S+"(fastest)".padStart(x," ")):m>=60?E.info(S+"(fast)".padStart(x," ")):m>=30?E.warn(S+"(medium)".padStart(x," ")):m>=10?E.error(S+"(slow)".padStart(x," ")):E.error(S+"(slowest)".padStart(x," "));}r&&(this.results={});}};function C(n,t,r,e,i){return i?t:{status:n,marker:t,timestamp:new Date().toISOString(),version:{raw:r??"unavailable",formatted:r?`v${r}`:"unavailable"},message:e??"The application is running smoothly."}}function h(n,t){return `[CyBuffer - ${n}] ${t}`}var U=class n{platformEndianness;arrayBuffer;array;offset;length;constructor(t,r){if(t<0)throw new RangeError(h("constructor",`Invalid buffer length: '${t}'.`));if(!Number.isInteger(t))throw new TypeError(h("constructor",`Invalid buffer length: '${t}'.`));return this.platformEndianness=this.getPlatformEndianness(),r?(this.arrayBuffer=r.arrayBuffer,this.offset=r.offset??0,this.length=r.length??t,this.array=new Uint8Array(this.arrayBuffer,this.offset,this.length)):(this.arrayBuffer=new ArrayBuffer(t),this.offset=0,this.length=t,this.array=new Uint8Array(this.arrayBuffer)),this._proxy}getPlatformEndianness=()=>{let t=new Uint8Array(4),r=new Uint32Array(t.buffer);return r[0]=65280,t[0]===255?"BE":"LE"};normalizeEndianness=t=>this.platformEndianness==="BE"?t==="LE"?"BE":"LE":t;check=(t,r)=>{if(Number.isNaN(t)||Number.isNaN(r))throw new TypeError(h("check",`Invalid offset: '${t}' or length: '${r}'.`));if(t<0||t>=this.length)throw new RangeError(h("check",`Invalid offset: '${t}', it must be >= 0 & < ${this.length}.`));if(r<1||r>this.length)throw new RangeError(h("check",`Invalid length: '${r}', it must be > 0 & <= ${this.length}.`));if(t+r>this.length)throw new RangeError(h("check",`Invalid offset (${t}) + length (${r}): '${t+r}', it must be <= ${this.length}.`));if(t%1!==0)throw new RangeError(h("check",`Invalid offset alignment: '${t}'.`));if(r%1!==0)throw new RangeError(h("check",`Invalid length alignment: '${r}'.`));return this};static alloc=(t,r)=>{let e=new n(t);return r!==void 0&&e.fill(r),e};static fromHexString=t=>{t.startsWith("0x")&&(t=t.slice(2));let r=Math.ceil(t.length/2),e=new n(r);return e.writeHexString(t,0,r),e};static fromUtf8String=t=>{let r=new n(t.length);return r.writeUtf8String(t,0,t.length),r};static fromString=(t,r="utf8")=>{let e=new n(t.length);return e.writeString(t,r,0,t.length),e};static fromBits=(t,r=true)=>{let e=new n(Math.ceil(t.length/8));return e.writeBits(t,0,t.length,r),e};static fromUint8Array=t=>{let r=new n(t.byteLength);return r.writeUint8Array(t,0,t.byteLength),r};static fromUint16Array=t=>{let r=new n(t.byteLength);return r.writeUint16Array(t,0,t.byteLength),r};static fromUint32Array=t=>{let r=new n(t.byteLength);return r.writeUint32Array(t,0,t.byteLength),r};static fromBigInt=(t,r)=>{if(t<0n)throw new RangeError(h("fromBigInt",`Invalid big integer: '${t}'.`));let e=Math.ceil(t.toString(16).length/2),i=new n(e);return i.writeBigInt(t,0,e,r),i};static fromRange=(t,r)=>{let e=new n(r-t);return e.writeRange(t,r),e};get _proxy(){return new Proxy(this,{get:(t,r)=>typeof r=="string"&&!Number.isNaN(Number(r))?(this.check(Number(r),1),t.array[Number(r)]??void 0):t[r],set:(t,r,e)=>{if(typeof r=="string"&&!Number.isNaN(Number(r))){let i=Number(e);if(Number.isNaN(i))throw new TypeError(h("proxy",`Invalid value: '${e}'.`));if(i<0||i>255)throw new RangeError(h("proxy",`Value is out of bounds: '${e}'.`));return this.check(Number(r),1),t.array[Number(r)]=e,true}return t[r]=e,true}})}*[Symbol.iterator](){let t=0;for(;t<this.length;)yield this.array[t++];}*entries(){for(let t=0;t<this.length;t++)yield [t,this.array[t]];}writeHexString=(t,r=0,e=t.length/2)=>{if(e===0)throw new RangeError(h("writeHexString",`Invalid hexadecimal string length: '${e}'.`));if(e%1!==0)throw new RangeError(h("writeHexString",`Invalid hexadecimal string length: '${e}'.`));if(t.length%2!==0)throw new RangeError(h("writeHexString",`Invalid hexadecimal string length: '${t.length}'.`));t.startsWith("0x")&&(e===t.length/2&&(e=(t.length-2)/2),t=t.slice(2)),this.check(r,e);for(let i=0;i<e;i++){let s=t.charCodeAt(i*2)|32,a=t.charCodeAt(i*2+1)|32;this.array[r+i]=s-(s>57?87:48)<<4|a-(a>57?87:48);}return this};writeUtf8String=(t,r=0,e=t.length)=>{if(e===0)throw new RangeError(h("writeUtf8String",`Invalid UTF-8 string length: '${e}'.`));this.check(r,e);for(let i=0;i<e;i++)this.array[r+i]=t.charCodeAt(i);return this};writeString=(t,r="utf8",e=0,i=t.length)=>{if(r==="utf8")return this.writeUtf8String(t,e,i),this;if(r==="hex")return this.writeHexString(t,e,Math.ceil(i/2)),this;throw new TypeError(h("writeString",`Invalid encoding: '${r}'.`))};writeBit=(t,r=0,e=true,i=true)=>{if(t<0||t>1)throw new RangeError(h("writeBit",`Value is out of bounds: '${t}'.`));let s=Math.floor(r/8);i&&this.check(s,1);let a=e?7-r%8:r%8;return t===1?this.array[s]|=1<<a:this.array[s]&=~(1<<a),this};writeUint8=(t,r=0,e=true)=>{if(t<0||t>255)throw new RangeError(h("writeUint8",`Value is out of bounds: '${t}'.`));return e&&this.check(r,1),t>>>=0,this.array[r]=t,this};writeUint16LE=(t,r=0,e=true,i=true)=>{if(t<0||t>65535)throw new RangeError(h("writeUint16LE",`Value is out of bounds: '${t}'.`));if(e&&r%2!==0)throw new RangeError(h("writeUint16LE",`Invalid offset alignment: '${r}' (%2).`));return i&&this.check(r,2),t>>>=0,this.array[r]=t&255,this.array[r+1]=t>>8&255,this};writeUint16BE=(t,r=0,e=true,i=true)=>{if(t<0||t>65535)throw new RangeError(h("writeUint16BE",`Value is out of bounds: '${t}'.`));if(e&&r%2!==0)throw new RangeError(h("writeUint16BE",`Invalid offset alignment: '${r}' (%2).`));return i&&this.check(r,2),t>>>=0,this.array[r]=t>>8&255,this.array[r+1]=t&255,this};writeUint16=(t,r=0,e=this.platformEndianness,i=true,s=true)=>this.normalizeEndianness(e)==="LE"?(this.writeUint16LE(t,r,i,s),this):(this.writeUint16BE(t,r,i,s),this);writeUint32LE=(t,r=0,e=true,i=true)=>{if(t<0||t>4294967295)throw new RangeError(h("writeUint32LE",`Value is out of bounds: '${t}'.`));if(e&&r%4!==0)throw new RangeError(h("writeUint32LE",`Invalid offset alignment: '${r}' (%4).`));return i&&this.check(r,4),t>>>=0,this.array[r]=t&255,this.array[r+1]=t>>8&255,this.array[r+2]=t>>16&255,this.array[r+3]=t>>24&255,this};writeUint32BE=(t,r=0,e=true,i=true)=>{if(t<0||t>4294967295)throw new RangeError(h("writeUint32BE",`Value is out of bounds: '${t}'.`));if(e&&r%4!==0)throw new RangeError(h("writeUint32BE",`Invalid offset alignment: '${r}' (%4).`));return i&&this.check(r,4),t>>>=0,this.array[r]=t>>24&255,this.array[r+1]=t>>16&255,this.array[r+2]=t>>8&255,this.array[r+3]=t&255,this};writeUint32=(t,r=0,e=this.platformEndianness,i=true,s=true)=>this.normalizeEndianness(e)==="LE"?(this.writeUint32LE(t,r,i,s),this):(this.writeUint32BE(t,r,i,s),this);writeBits=(t,r=0,e=t.length,i=true)=>{if(!t||!Array.isArray(t))throw new TypeError(h("writeBits",`Invalid array of bits: '${t}'.`));let s=Math.floor(r/8),a=Math.ceil(e/8);this.check(s,a);for(let o=0;o<e;o++)this.writeBit(t[o],r+o,i,false);return this};writeUint8Array=(t,r=0,e=t.byteLength,i=0)=>{if(!t||!(t instanceof Uint8Array))throw new TypeError(h("writeUint8Array",`Invalid Uint8Array: '${t}'.`));this.check(r,e);for(let s=i;s<e;s++)this.array[r-i+s]=t[s];return this};writeUint16Array=(t,r=0,e=t.byteLength,i=0,s=this.platformEndianness,a=true)=>{if(!t||!(t instanceof Uint16Array))throw new TypeError(h("writeUint16Array",`Invalid Uint16Array: '${t}'.`));if(a&&r%2!==0)throw new RangeError(h("writeUint16Array",`Invalid offset alignment: '${r}' (%2).`));if(this.check(r,e),this.normalizeEndianness(s)==="LE"){for(let o=i;o<e;o+=2)this.writeUint16LE(t[o/2],r-i+o,a,false);return this}for(let o=i;o<e;o+=2)this.writeUint16BE(t[o/2],r-i+o,a,false);return this};writeUint32Array=(t,r=0,e=t.byteLength,i=0,s=this.platformEndianness,a=true)=>{if(!t||!(t instanceof Uint32Array))throw new TypeError(h("writeUint32Array",`Invalid Uint32Array: '${t}'.`));if(a&&r%4!==0)throw new RangeError(h("writeUint32Array",`Invalid offset alignment: '${r}' (%4).`));if(this.check(r,e),this.normalizeEndianness(s)==="LE"){for(let o=i;o<e;o+=4)this.writeUint32LE(t[o/4],r-i+o,a,false);return this}for(let o=i;o<e;o+=4)this.writeUint32BE(t[o/4],r-i+o,a,false);return this};writeBigIntLE=(t,r=0,e=Math.ceil(Number(t).toString(16).length/2))=>{if(t<0n)throw new RangeError(h("writeBigIntLE",`Invalid big integer value: '${t}'.`));this.check(r,e);for(let i=0;i<e;i++)this.array[r+i]=Number(t&BigInt(255)),t>>=BigInt(8);return this};writeBigIntBE=(t,r=0,e=Math.ceil(Number(t).toString(16).length/2))=>{if(t<0n)throw new RangeError(h("writeBigIntBE",`Invalid big integer value: '${t}'.`));this.check(r,e);for(let i=e-1;i>=0;i--)this.array[r+i]=Number(t&BigInt(255)),t>>=BigInt(8);return this};writeBigInt=(t,r=0,e=Math.ceil(Number(t).toString(16).length/2),i=this.platformEndianness)=>this.normalizeEndianness(i)==="LE"?(this.writeBigIntLE(t,r,e),this):(this.writeBigIntBE(t,r,e),this);writeRange=(t,r,e=0)=>{if(t<0||t>255)throw new RangeError(h("writeRange",`Invalid start value: '${t}'.`));if(r<0||r>255)throw new RangeError(h("writeRange",`Invalid end value: '${r}'.`));let i=r-t;this.check(e,i);for(let s=0;s<i;s++)this.array[e+s]=t+s;return this};readHexStringLE=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),Buffer.from(this.arrayBuffer,t,r).toString("hex").toUpperCase());readHexStringBE=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),Buffer.from(this.arrayBuffer,t,r).toString("hex").toUpperCase().match(/.{2}/g).reverse().join(""));readHexString=(t=0,r=this.length-t,e=this.platformEndianness,i=true)=>(i&&this.check(t,r),this.normalizeEndianness(e)==="LE"?this.readHexStringLE(t,r,false):this.readHexStringBE(t,r,false));readUtf8String=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),Buffer.from(this.arrayBuffer,t,r).toString("utf8"));readBit=(t=0,r=true,e=true)=>{let i=Math.floor(t/8);e&&this.check(i,1);let s=r?7-t%8:t%8;return this.array[i]&1<<s?1:0};readUint8=(t=0,r=true)=>(r&&this.check(t,1),this.array[t]);readUint16LE=(t=0,r=true,e=true)=>{if(r&&t%2!==0)throw new RangeError(h("readUint16LE",`Invalid offset alignment: '${t}' (%2).`));return e&&this.check(t,2),(this.array[t]|this.array[t+1]<<8)>>>0};readUint16BE=(t=0,r=true,e=true)=>{if(r&&t%2!==0)throw new RangeError(h("readUint16BE",`Invalid offset alignment: '${t}' (%2).`));return e&&this.check(t,2),(this.array[t]<<8|this.array[t+1])>>>0};readUint16=(t=0,r=this.platformEndianness,e=true,i=true)=>this.normalizeEndianness(r)==="LE"?this.readUint16LE(t,e,i):this.readUint16BE(t,e,i);readUint32LE=(t=0,r=true,e=true)=>{if(r&&t%4!==0)throw new RangeError(h("readUint32LE",`Invalid offset alignment: '${t}' (%4).`));return e&&this.check(t,4),(this.array[t]|this.array[t+1]<<8|this.array[t+2]<<16|this.array[t+3]<<24)>>>0};readUint32BE=(t=0,r=true,e=true)=>{if(r&&t%4!==0)throw new RangeError(h("readUint32BE",`Invalid offset alignment: '${t}' (%4).`));return e&&this.check(t,4),(this.array[t]<<24|this.array[t+1]<<16|this.array[t+2]<<8|this.array[t+3])>>>0};readUint32=(t=0,r=this.platformEndianness,e=true,i=true)=>this.normalizeEndianness(r)==="LE"?this.readUint32LE(t,e,i):this.readUint32BE(t,e,i);readBits=(t=0,r=this.length*8-t*8,e=true,i=true)=>{let s=[];for(let a=0;a<r;a++)s.push(this.readBit(t+a,e,i));return s};readUint8Array=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),new Uint8Array(this.arrayBuffer,t??this.offset,r??this.length));readUint16Array=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),new Uint16Array(this.arrayBuffer,t??this.offset,r?r/2:this.length/2));readUint32Array=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),new Uint32Array(this.arrayBuffer,t??this.offset,r?r/4:this.length/4));readBigIntLE=(t=0,r=this.length-t,e=true)=>{e&&this.check(t,r);let i=0n;for(let s=r-1;s>=0;s--)i=i<<8n|BigInt(this.array[t+s]);return i};readBigIntBE=(t=0,r=this.length-t,e=true)=>{e&&this.check(t,r);let i=0n;for(let s=0;s<r;s++)i=i<<8n|BigInt(this.array[t+s]);return i};readBigInt=(t=0,r=this.length-t,e=this.platformEndianness,i=true)=>this.normalizeEndianness(e)==="LE"?this.readBigIntLE(t,r,i):this.readBigIntBE(t,r,i);toHexString=(t=false,r=this.platformEndianness)=>{let e=Buffer.from(this.arrayBuffer).toString("hex").toUpperCase();return this.normalizeEndianness(r)==="BE"&&(e=e.match(/.{2}/g)?.reverse().join("")??""),t?`0x${e}`:e};toUtf8String=()=>Buffer.from(this.arrayBuffer).toString("utf8");toString=(t="hex",r=false)=>t==="utf8"?this.toUtf8String():this.toHexString(r);toBits=(t=true)=>{let r=this.length*8,e=new Array(r);for(let i=0;i<r;i++)e[i]=this.readBit(i,t);return e};toUint8Array=()=>new Uint8Array(this.arrayBuffer,this.offset,this.length);toUint16Array=()=>new Uint16Array(this.arrayBuffer,this.offset,this.length/2);toUint32Array=()=>new Uint32Array(this.arrayBuffer,this.offset,this.length/4);toBigInt=(t=this.platformEndianness)=>this.normalizeEndianness(t)==="LE"?this.readBigIntLE():this.readBigIntBE();equals=t=>{if(this.length!==t.length)return false;for(let r=0;r<this.length;r++)if(this.array[r]!==t[r])return false;return true};isEmpty=()=>{for(let t=0;t<this.length;t++)if(this.array[t]!==0)return false;return true};isFull=()=>{for(let t=0;t<this.length;t++)if(this.array[t]!==255)return false;return true};randomFill=(t=0,r=this.length-t)=>{this.check(t,r);for(let e=0;e<r;e++)this.array[t+e]=Math.floor(Math.random()*256);};safeRandomFill=(t=0,r=this.length)=>randomFillSync(this.array,t,r);copy=(t=0,r=this.length)=>{this.check(t,r);let e=new n(r);for(let i=0;i<r;i++)e[i]=this.array[i+t];return e};subarray=(t=0,r=this.length)=>(this.check(t,r),new n(r,{arrayBuffer:this.arrayBuffer,offset:t,length:r}));swap=(t=0,r=this.length,e=4)=>{if(e<2)throw new RangeError(h("swap",`Invalid word length: '${e}'.`));if(e%2!==0)throw new RangeError(h("swap",`Invalid word length alignment: '${e}'.`));this.check(t,r);let i=t+r;for(let s=0;s<i;s+=e){let a=s+t;for(let o=0;o<e/2;o++){let c=this.array[a+o];this.array[a+o]=this.array[a+e-o-1],this.array[a+e-o-1]=c;}}return this};partialReverse=(t=0,r=this.length)=>{this.check(t,r);let e=Math.floor(r/2),i=t+r;for(let s=0;s<e;s++){let a=s+t,o=i-s-1,c=this.array[a];this.array[a]=this.array[o],this.array[o]=c;}return this};reverse=()=>(this.array.reverse(),this);rotateLeft=()=>{let t=this.array[0];for(let r=0;r<this.length-1;r++)this.array[r]=this.array[r+1];return this.array[this.length-1]=t,this};rotateRight=()=>{let t=this.array[this.length-1];for(let r=this.length-1;r>0;r--)this.array[r]=this.array[r-1];return this.array[0]=t,this};shiftLeft=(t=0,r=this.length,e=1)=>{this.check(t,r);for(let i=0;i<this.length-1;i++)this.array[i]=this.array[i+e];for(let i=0;i<e;i++)this.array[this.length-i-1]=0;return this};shiftRight=(t=0,r=this.length,e=1)=>{this.check(t,r);for(let i=this.length-1;i>0;i--)this.array[i]=this.array[i-e];for(let i=0;i<e;i++)this.array[i]=0;return this};fill=(t,r=0,e=this.length)=>{if(t<0||t>255)throw new RangeError(h("fill",`Invalid value: '${t}'.`));return this.check(r,e),this.array.fill(t,r,r+e),this};clear=(t=0,r=this.length)=>(this.check(t,r),this.array.fill(0,t,t+r),this)};function q(n,t,r){let e;return r?e={...n,data:r}:e=n,{success:false,message:t||n.message,error:e}}function v(n,t,r){t&&(n.message=t);let e;return r?e={...n,data:r}:e=n,JSON.stringify(e,(s,a)=>typeof a=="function"||typeof a=="bigint"?a.toString():a,4)}function H(n){let t="";try{try{t=n.toString();}catch{t=b(n);}}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:n,error:t}}}}function W(n,t){let r={status:500,name:"UNKNOWN_ERROR",message:"An unknown error occurred.",data:null};if(t)try{b(t,4),r=t;}catch{r={...r,data:{rawError:`${t}`}};}return b({success:false,message:n,error:r}).replaceAll("Error: ","").replaceAll(`
|
|
7
|
-
`," ")}var y={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}};function V(){switch(process.platform){case "win32":return process.env.COMPUTERNAME;case "darwin":return execSync("scutil --get ComputerName").toString().trim();case "linux":{let n=execSync("hostnamectl --pretty").toString().trim();return n===""?hostname():n}default:return hostname()}}var R=class{_req;_res;_read;_write;_update;_replace;_remove;_options;constructor(t,r,e,i){this.setRequestResponse(t,r),this.setMethods(e||{}),this.setOptions(i||{});}setRequestResponse(t,r){this._req=t,this._res=r;}setMethods(t){this._read=t?.read,this._write=t?.write,this._update=t?.update,this._replace=t?.replace,this._remove=t?.remove;}setOptions(t){this._options={...this._options,...t};}_checkDataValidity(t){return t!=null}successResponse(t,r){return this._res.status(t).send({success:true,data:this._checkDataValidity(r)?r:null})}errorResponse(t,r,e){let i={success:false,message:e||t.message,error:this._checkDataValidity(r)?{...t,data:r}:t};return this._res.status(t.status).send(i)}hasRole(t,r){return t.roles?.includes(r)}hasSomeRoles(t,r){return r.some(e=>t.roles?.includes(e))}hasAllRoles(t,r){return r.every(e=>t.roles?.includes(e))}checkAuthOptions(t,r){return r.requireAuth&&!t?(this.errorResponse(y.UNAUTHORIZED),false):r.hasRole&&(!t||!this.hasRole(t.user,r.hasRole))?(this.errorResponse(y.UNAUTHORIZED),false):r.hasSomeRoles&&(!t||!this.hasSomeRoles(t.user,r.hasSomeRoles))?(this.errorResponse(y.UNAUTHORIZED),false):r.hasAllRoles&&(!t||!this.hasAllRoles(t.user,r.hasAllRoles))?(this.errorResponse(y.UNAUTHORIZED),false):true}async _executeMethod(t,r){return typeof t=="function"?(await t(r),true):t.authOptions&&!this.checkAuthOptions(r.session,t.authOptions)?false:(await t.method(r),true)}async run(){let t=this._options.authFunction?await this._options.authFunction(this._req,this._res):null;if(!this.checkAuthOptions(t,this._options))return;let e={req:this._req,res:this._res,session:t,wrapper:this};try{switch(this._req.method){case "GET":if(this._read)return await this._executeMethod(this._read,e);break;case "POST":if(this._write)return await this._executeMethod(this._write,e);break;case "PATCH":if(this._update)return await this._executeMethod(this._update,e);break;case "PUT":if(this._replace)return await this._executeMethod(this._replace,e);break;case "DELETE":if(this._remove)return await this._executeMethod(this._remove,e);break;default:return this.errorResponse(y.METHOD_NOT_ALLOWED)}}catch(i){return this.errorResponse(y.INTERNAL_SERVER_ERROR,i)}}};export{y as BaseErrors,A as Bench,U as CyBuffer,R as NextApiWrapper,q as formatErrorResponse,W as formatMessageAsStringifiedError,C as generateCGASStatus,V as getHostname,E as logger,H as parseCRUDError,v as stringifyError};//# sourceMappingURL=backend.js.map
|
|
1
|
+
import D,{masks}from'dateformat';import M from'pino';import _ from'pino-pretty';import {randomFillSync}from'node:crypto';import {execSync}from'node:child_process';import {hostname}from'node:os';function N(n,t=4){return JSON.stringify(n,(r,e)=>typeof e=="function"||typeof e=="bigint"?e.toString():e,t)}var B={level:process.env.LOG_LEVEL||"trace",showLevel:true,showTimestamp:true,foreignObjectStartAtNewLine:false,foreignObjectPadding:0,foreignObjectIndent:4},u={...B};function T(n,t){let r={level:n.level,time:n.time,pid:n.pid,hostname:n.hostname,msg:n.msg},e=Object.entries(n).reduce((l,[g,R])=>(Object.keys(r).includes(g)||(l[g]=R),l),{}),i="N/A",s,a;switch(n.level){case 10:case "trace":i="TRACE",a=t.black;break;case 20:case "debug":i="DEBUG",a=t.blue;break;case 30:case "info":i="INFO",a=t.green;break;case 40:case "warn":i="WARN",a=t.yellow;break;case 50:case "error":i="ERROR",a=t.redBright;break;case 60:case "fatal":i="FATAL",s=t.bold,a=t.redBright;break;default:i="N/A",a=t.white;break}let o="";u.showTimestamp&&(o=`[${D(new Date(n.time),masks.isoDateTime)}] `);let c="";u.showLevel&&(c=`[${i}] `.padEnd(8," "));let m="";Object.keys(e).length>0&&(u.foreignObjectPadding==="after-timestamp"?u.foreignObjectPadding=o.length:u.foreignObjectPadding==="after-level"&&(u.foreignObjectPadding=o.length+c.length),m=`${u.foreignObjectStartAtNewLine?`
|
|
2
|
+
`:" "}${N(e,u.foreignObjectIndent)}`.split(`
|
|
3
|
+
`).map((l,g)=>g===0?l:l.padStart(l.length+u.foreignObjectPadding," ")).join(`
|
|
4
|
+
`));let f=a(`${o}${c}${n.msg}${m}`);return s&&(f=s(f)),console.log(f),""}var P=_({crlf:false,colorize:true,sync:true,include:"",messageFormat:(n,t,r,{colors:e})=>T(n,e)}),d=M({level:u.level},P);d.setLevel=n=>{u.level=n,d.level=n;};d.setShowLevel=n=>{u.showLevel=n;};d.setShowTimestamp=n=>{u.showTimestamp=n;};d.setForeignObjectStartAtNewLine=n=>{u.foreignObjectStartAtNewLine=n;};d.setForeignObjectPadding=n=>{u.foreignObjectPadding=n;};d.setForeignObjectIndent=n=>{u.foreignObjectIndent=n;};d.setParameters=n=>{Object.assign(u,n);};d.resetParameters=()=>{Object.assign(u,B);};var E=d;function $(n,t="Op",r="s",e=12,i=true){let s;typeof t=="string"&&typeof r=="string"?s=`${t}/${r}`:typeof t=="string"?s=t:s="";let a=i?" ":"";return n>=10**24?`${(n/10**24).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}Y${s}`.padStart(e," "):n>=10**18?`${(n/10**18).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}E${s}`.padStart(e," "):n>=10**15?`${(n/10**15).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}P${s}`.padStart(e," "):n>=10**12?`${(n/10**12).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}T${s}`.padStart(e," "):n>=10**9?`${(n/10**9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}G${s}`.padStart(e," "):n>=10**6?`${(n/10**6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}M${s}`.padStart(e," "):n>=10**3?`${(n/10**3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}k${s}`.padStart(e," "):`${n.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}${a}${s}`.padStart(e," ")}function L(n,t=8){return n>=3600000000000000n?`${(Number(n)/36e14).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}h`.padStart(t," "):n>=60000000000n?`${(Number(n)/6e10).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}m`.padStart(t," "):n>=1000000000n?`${(Number(n)/1e9).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}s`.padStart(t," "):n>=1000000n?`${(Number(n)/1e6).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ms`.padStart(t," "):n>=1000n?`${(Number(n)/1e3).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}\xB5s`.padStart(t," "):`${n.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}ns`.padStart(t," ")}function I(n,t=7){return `${n.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}%`.padStart(t," ")}var x=class{benchmarkDuration;results={};constructor(t=256){this.benchmarkDuration=t;}benchmark=(t,r)=>{let i=process.hrtime.bigint(),s=0,a=0,o=0,c=0n,m=0n,f=0n,l=BigInt(this.benchmarkDuration)*1000000n;for(let g=0;g<Number.POSITIVE_INFINITY;g++)if(m=process.hrtime.bigint(),t(),f=process.hrtime.bigint(),c+=f-m,f-i>=l){a=Number(c)/g,s=1e9/a,o=Number(f-i)/a;break}this.results[r]={operationsPerSecond:s,avgExecutionTime:a,operations:o};};print=(t,r=true)=>{let e=t||"RESULTS";E.info(`
|
|
5
|
+
${e.toUpperCase()}:`),E.info("=".repeat(e.length+1));let i=0;for(let a of Object.keys(this.results))a.length>i&&(i=a.length);let s=Object.entries(this.results).sort((a,o)=>o[1].operationsPerSecond-a[1].operationsPerSecond);for(let[a,o]of s){let c=s[0][1].operationsPerSecond,m=o.operationsPerSecond/c*100,f=`>> ${a} `.padEnd(i+4,"\u2550"),l=`AVG TIME: ${L(o.avgExecutionTime)}`,g=`OPS: ${$(o.operationsPerSecond)}`,R=`PERCENTAGE: ${I(m)}`,b=`${f}\u2550> ${l} | ${g} | ${R}`,S=10;m>=90?E.debug(b+"(fastest)".padStart(S," ")):m>=60?E.info(b+"(fast)".padStart(S," ")):m>=30?E.warn(b+"(medium)".padStart(S," ")):m>=10?E.error(b+"(slow)".padStart(S," ")):E.error(b+"(slowest)".padStart(S," "));}r&&(this.results={});}};function C(n,t,r,e,i){return i?t:{status:n,marker:t,timestamp:new Date().toISOString(),version:{raw:r??"unavailable",formatted:r?`v${r}`:"unavailable"},message:e??"The application is running smoothly."}}function h(n,t){return `[CyBuffer - ${n}] ${t}`}var A=class n{platformEndianness;arrayBuffer;array;offset;length;constructor(t,r){if(t<0)throw new RangeError(h("constructor",`Invalid buffer length: '${t}'.`));if(!Number.isInteger(t))throw new TypeError(h("constructor",`Invalid buffer length: '${t}'.`));return this.platformEndianness=this.getPlatformEndianness(),r?(this.arrayBuffer=r.arrayBuffer,this.offset=r.offset??0,this.length=r.length??t,this.array=new Uint8Array(this.arrayBuffer,this.offset,this.length)):(this.arrayBuffer=new ArrayBuffer(t),this.offset=0,this.length=t,this.array=new Uint8Array(this.arrayBuffer)),this._proxy}getPlatformEndianness=()=>{let t=new Uint8Array(4),r=new Uint32Array(t.buffer);return r[0]=65280,t[0]===255?"BE":"LE"};normalizeEndianness=t=>this.platformEndianness==="BE"?t==="LE"?"BE":"LE":t;check=(t,r)=>{if(Number.isNaN(t)||Number.isNaN(r))throw new TypeError(h("check",`Invalid offset: '${t}' or length: '${r}'.`));if(t<0||t>=this.length)throw new RangeError(h("check",`Invalid offset: '${t}', it must be >= 0 & < ${this.length}.`));if(r<1||r>this.length)throw new RangeError(h("check",`Invalid length: '${r}', it must be > 0 & <= ${this.length}.`));if(t+r>this.length)throw new RangeError(h("check",`Invalid offset (${t}) + length (${r}): '${t+r}', it must be <= ${this.length}.`));if(t%1!==0)throw new RangeError(h("check",`Invalid offset alignment: '${t}'.`));if(r%1!==0)throw new RangeError(h("check",`Invalid length alignment: '${r}'.`));return this};static alloc=(t,r)=>{let e=new n(t);return r!==void 0&&e.fill(r),e};static fromHexString=t=>{t.startsWith("0x")&&(t=t.slice(2));let r=Math.ceil(t.length/2),e=new n(r);return e.writeHexString(t,0,r),e};static fromUtf8String=t=>{let r=new n(t.length);return r.writeUtf8String(t,0,t.length),r};static fromString=(t,r="utf8")=>{let e=new n(t.length);return e.writeString(t,r,0,t.length),e};static fromBits=(t,r=true)=>{let e=new n(Math.ceil(t.length/8));return e.writeBits(t,0,t.length,r),e};static fromUint8Array=t=>{let r=new n(t.byteLength);return r.writeUint8Array(t,0,t.byteLength),r};static fromUint16Array=t=>{let r=new n(t.byteLength);return r.writeUint16Array(t,0,t.byteLength),r};static fromUint32Array=t=>{let r=new n(t.byteLength);return r.writeUint32Array(t,0,t.byteLength),r};static fromBigInt=(t,r)=>{if(t<0n)throw new RangeError(h("fromBigInt",`Invalid big integer: '${t}'.`));let e=Math.ceil(t.toString(16).length/2),i=new n(e);return i.writeBigInt(t,0,e,r),i};static fromRange=(t,r)=>{let e=new n(r-t);return e.writeRange(t,r),e};get _proxy(){return new Proxy(this,{get:(t,r)=>typeof r=="string"&&!Number.isNaN(Number(r))?(this.check(Number(r),1),t.array[Number(r)]??void 0):t[r],set:(t,r,e)=>{if(typeof r=="string"&&!Number.isNaN(Number(r))){let i=Number(e);if(Number.isNaN(i))throw new TypeError(h("proxy",`Invalid value: '${e}'.`));if(i<0||i>255)throw new RangeError(h("proxy",`Value is out of bounds: '${e}'.`));return this.check(Number(r),1),t.array[Number(r)]=e,true}return t[r]=e,true}})}*[Symbol.iterator](){let t=0;for(;t<this.length;)yield this.array[t++];}*entries(){for(let t=0;t<this.length;t++)yield [t,this.array[t]];}writeHexString=(t,r=0,e=t.length/2)=>{if(e===0)throw new RangeError(h("writeHexString",`Invalid hexadecimal string length: '${e}'.`));if(e%1!==0)throw new RangeError(h("writeHexString",`Invalid hexadecimal string length: '${e}'.`));if(t.length%2!==0)throw new RangeError(h("writeHexString",`Invalid hexadecimal string length: '${t.length}'.`));t.startsWith("0x")&&(e===t.length/2&&(e=(t.length-2)/2),t=t.slice(2)),this.check(r,e);for(let i=0;i<e;i++){let s=t.charCodeAt(i*2)|32,a=t.charCodeAt(i*2+1)|32;this.array[r+i]=s-(s>57?87:48)<<4|a-(a>57?87:48);}return this};writeUtf8String=(t,r=0,e=t.length)=>{if(e===0)throw new RangeError(h("writeUtf8String",`Invalid UTF-8 string length: '${e}'.`));this.check(r,e);for(let i=0;i<e;i++)this.array[r+i]=t.charCodeAt(i);return this};writeString=(t,r="utf8",e=0,i=t.length)=>{if(r==="utf8")return this.writeUtf8String(t,e,i),this;if(r==="hex")return this.writeHexString(t,e,Math.ceil(i/2)),this;throw new TypeError(h("writeString",`Invalid encoding: '${r}'.`))};writeBit=(t,r=0,e=true,i=true)=>{if(t<0||t>1)throw new RangeError(h("writeBit",`Value is out of bounds: '${t}'.`));let s=Math.floor(r/8);i&&this.check(s,1);let a=e?7-r%8:r%8;return t===1?this.array[s]|=1<<a:this.array[s]&=~(1<<a),this};writeUint8=(t,r=0,e=true)=>{if(t<0||t>255)throw new RangeError(h("writeUint8",`Value is out of bounds: '${t}'.`));return e&&this.check(r,1),t>>>=0,this.array[r]=t,this};writeUint16LE=(t,r=0,e=true,i=true)=>{if(t<0||t>65535)throw new RangeError(h("writeUint16LE",`Value is out of bounds: '${t}'.`));if(e&&r%2!==0)throw new RangeError(h("writeUint16LE",`Invalid offset alignment: '${r}' (%2).`));return i&&this.check(r,2),t>>>=0,this.array[r]=t&255,this.array[r+1]=t>>8&255,this};writeUint16BE=(t,r=0,e=true,i=true)=>{if(t<0||t>65535)throw new RangeError(h("writeUint16BE",`Value is out of bounds: '${t}'.`));if(e&&r%2!==0)throw new RangeError(h("writeUint16BE",`Invalid offset alignment: '${r}' (%2).`));return i&&this.check(r,2),t>>>=0,this.array[r]=t>>8&255,this.array[r+1]=t&255,this};writeUint16=(t,r=0,e=this.platformEndianness,i=true,s=true)=>this.normalizeEndianness(e)==="LE"?(this.writeUint16LE(t,r,i,s),this):(this.writeUint16BE(t,r,i,s),this);writeUint32LE=(t,r=0,e=true,i=true)=>{if(t<0||t>4294967295)throw new RangeError(h("writeUint32LE",`Value is out of bounds: '${t}'.`));if(e&&r%4!==0)throw new RangeError(h("writeUint32LE",`Invalid offset alignment: '${r}' (%4).`));return i&&this.check(r,4),t>>>=0,this.array[r]=t&255,this.array[r+1]=t>>8&255,this.array[r+2]=t>>16&255,this.array[r+3]=t>>24&255,this};writeUint32BE=(t,r=0,e=true,i=true)=>{if(t<0||t>4294967295)throw new RangeError(h("writeUint32BE",`Value is out of bounds: '${t}'.`));if(e&&r%4!==0)throw new RangeError(h("writeUint32BE",`Invalid offset alignment: '${r}' (%4).`));return i&&this.check(r,4),t>>>=0,this.array[r]=t>>24&255,this.array[r+1]=t>>16&255,this.array[r+2]=t>>8&255,this.array[r+3]=t&255,this};writeUint32=(t,r=0,e=this.platformEndianness,i=true,s=true)=>this.normalizeEndianness(e)==="LE"?(this.writeUint32LE(t,r,i,s),this):(this.writeUint32BE(t,r,i,s),this);writeBits=(t,r=0,e=t.length,i=true)=>{if(!t||!Array.isArray(t))throw new TypeError(h("writeBits",`Invalid array of bits: '${t}'.`));let s=Math.floor(r/8),a=Math.ceil(e/8);this.check(s,a);for(let o=0;o<e;o++)this.writeBit(t[o],r+o,i,false);return this};writeUint8Array=(t,r=0,e=t.byteLength,i=0)=>{if(!t||!(t instanceof Uint8Array))throw new TypeError(h("writeUint8Array",`Invalid Uint8Array: '${t}'.`));this.check(r,e);for(let s=i;s<e;s++)this.array[r-i+s]=t[s];return this};writeUint16Array=(t,r=0,e=t.byteLength,i=0,s=this.platformEndianness,a=true)=>{if(!t||!(t instanceof Uint16Array))throw new TypeError(h("writeUint16Array",`Invalid Uint16Array: '${t}'.`));if(a&&r%2!==0)throw new RangeError(h("writeUint16Array",`Invalid offset alignment: '${r}' (%2).`));if(this.check(r,e),this.normalizeEndianness(s)==="LE"){for(let o=i;o<e;o+=2)this.writeUint16LE(t[o/2],r-i+o,a,false);return this}for(let o=i;o<e;o+=2)this.writeUint16BE(t[o/2],r-i+o,a,false);return this};writeUint32Array=(t,r=0,e=t.byteLength,i=0,s=this.platformEndianness,a=true)=>{if(!t||!(t instanceof Uint32Array))throw new TypeError(h("writeUint32Array",`Invalid Uint32Array: '${t}'.`));if(a&&r%4!==0)throw new RangeError(h("writeUint32Array",`Invalid offset alignment: '${r}' (%4).`));if(this.check(r,e),this.normalizeEndianness(s)==="LE"){for(let o=i;o<e;o+=4)this.writeUint32LE(t[o/4],r-i+o,a,false);return this}for(let o=i;o<e;o+=4)this.writeUint32BE(t[o/4],r-i+o,a,false);return this};writeBigIntLE=(t,r=0,e=Math.ceil(Number(t).toString(16).length/2))=>{if(t<0n)throw new RangeError(h("writeBigIntLE",`Invalid big integer value: '${t}'.`));this.check(r,e);for(let i=0;i<e;i++)this.array[r+i]=Number(t&BigInt(255)),t>>=BigInt(8);return this};writeBigIntBE=(t,r=0,e=Math.ceil(Number(t).toString(16).length/2))=>{if(t<0n)throw new RangeError(h("writeBigIntBE",`Invalid big integer value: '${t}'.`));this.check(r,e);for(let i=e-1;i>=0;i--)this.array[r+i]=Number(t&BigInt(255)),t>>=BigInt(8);return this};writeBigInt=(t,r=0,e=Math.ceil(Number(t).toString(16).length/2),i=this.platformEndianness)=>this.normalizeEndianness(i)==="LE"?(this.writeBigIntLE(t,r,e),this):(this.writeBigIntBE(t,r,e),this);writeRange=(t,r,e=0)=>{if(t<0||t>255)throw new RangeError(h("writeRange",`Invalid start value: '${t}'.`));if(r<0||r>255)throw new RangeError(h("writeRange",`Invalid end value: '${r}'.`));let i=r-t;this.check(e,i);for(let s=0;s<i;s++)this.array[e+s]=t+s;return this};readHexStringLE=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),Buffer.from(this.arrayBuffer,t,r).toString("hex").toUpperCase());readHexStringBE=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),Buffer.from(this.arrayBuffer,t,r).toString("hex").toUpperCase().match(/.{2}/g).reverse().join(""));readHexString=(t=0,r=this.length-t,e=this.platformEndianness,i=true)=>(i&&this.check(t,r),this.normalizeEndianness(e)==="LE"?this.readHexStringLE(t,r,false):this.readHexStringBE(t,r,false));readUtf8String=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),Buffer.from(this.arrayBuffer,t,r).toString("utf8"));readBit=(t=0,r=true,e=true)=>{let i=Math.floor(t/8);e&&this.check(i,1);let s=r?7-t%8:t%8;return this.array[i]&1<<s?1:0};readUint8=(t=0,r=true)=>(r&&this.check(t,1),this.array[t]);readUint16LE=(t=0,r=true,e=true)=>{if(r&&t%2!==0)throw new RangeError(h("readUint16LE",`Invalid offset alignment: '${t}' (%2).`));return e&&this.check(t,2),(this.array[t]|this.array[t+1]<<8)>>>0};readUint16BE=(t=0,r=true,e=true)=>{if(r&&t%2!==0)throw new RangeError(h("readUint16BE",`Invalid offset alignment: '${t}' (%2).`));return e&&this.check(t,2),(this.array[t]<<8|this.array[t+1])>>>0};readUint16=(t=0,r=this.platformEndianness,e=true,i=true)=>this.normalizeEndianness(r)==="LE"?this.readUint16LE(t,e,i):this.readUint16BE(t,e,i);readUint32LE=(t=0,r=true,e=true)=>{if(r&&t%4!==0)throw new RangeError(h("readUint32LE",`Invalid offset alignment: '${t}' (%4).`));return e&&this.check(t,4),(this.array[t]|this.array[t+1]<<8|this.array[t+2]<<16|this.array[t+3]<<24)>>>0};readUint32BE=(t=0,r=true,e=true)=>{if(r&&t%4!==0)throw new RangeError(h("readUint32BE",`Invalid offset alignment: '${t}' (%4).`));return e&&this.check(t,4),(this.array[t]<<24|this.array[t+1]<<16|this.array[t+2]<<8|this.array[t+3])>>>0};readUint32=(t=0,r=this.platformEndianness,e=true,i=true)=>this.normalizeEndianness(r)==="LE"?this.readUint32LE(t,e,i):this.readUint32BE(t,e,i);readBits=(t=0,r=this.length*8-t*8,e=true,i=true)=>{let s=[];for(let a=0;a<r;a++)s.push(this.readBit(t+a,e,i));return s};readUint8Array=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),new Uint8Array(this.arrayBuffer,t??this.offset,r??this.length));readUint16Array=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),new Uint16Array(this.arrayBuffer,t??this.offset,r?r/2:this.length/2));readUint32Array=(t=0,r=this.length-t,e=true)=>(e&&this.check(t,r),new Uint32Array(this.arrayBuffer,t??this.offset,r?r/4:this.length/4));readBigIntLE=(t=0,r=this.length-t,e=true)=>{e&&this.check(t,r);let i=0n;for(let s=r-1;s>=0;s--)i=i<<8n|BigInt(this.array[t+s]);return i};readBigIntBE=(t=0,r=this.length-t,e=true)=>{e&&this.check(t,r);let i=0n;for(let s=0;s<r;s++)i=i<<8n|BigInt(this.array[t+s]);return i};readBigInt=(t=0,r=this.length-t,e=this.platformEndianness,i=true)=>this.normalizeEndianness(e)==="LE"?this.readBigIntLE(t,r,i):this.readBigIntBE(t,r,i);toHexString=(t=false,r=this.platformEndianness)=>{let e=Buffer.from(this.arrayBuffer).toString("hex").toUpperCase();return this.normalizeEndianness(r)==="BE"&&(e=e.match(/.{2}/g)?.reverse().join("")??""),t?`0x${e}`:e};toUtf8String=()=>Buffer.from(this.arrayBuffer).toString("utf8");toString=(t="hex",r=false)=>t==="utf8"?this.toUtf8String():this.toHexString(r);toBits=(t=true)=>{let r=this.length*8,e=new Array(r);for(let i=0;i<r;i++)e[i]=this.readBit(i,t);return e};toUint8Array=()=>new Uint8Array(this.arrayBuffer,this.offset,this.length);toUint16Array=()=>new Uint16Array(this.arrayBuffer,this.offset,this.length/2);toUint32Array=()=>new Uint32Array(this.arrayBuffer,this.offset,this.length/4);toBigInt=(t=this.platformEndianness)=>this.normalizeEndianness(t)==="LE"?this.readBigIntLE():this.readBigIntBE();equals=t=>{if(this.length!==t.length)return false;for(let r=0;r<this.length;r++)if(this.array[r]!==t[r])return false;return true};isEmpty=()=>{for(let t=0;t<this.length;t++)if(this.array[t]!==0)return false;return true};isFull=()=>{for(let t=0;t<this.length;t++)if(this.array[t]!==255)return false;return true};randomFill=(t=0,r=this.length-t)=>{this.check(t,r);for(let e=0;e<r;e++)this.array[t+e]=Math.floor(Math.random()*256);};safeRandomFill=(t=0,r=this.length)=>randomFillSync(this.array,t,r);copy=(t=0,r=this.length)=>{this.check(t,r);let e=new n(r);for(let i=0;i<r;i++)e[i]=this.array[i+t];return e};subarray=(t=0,r=this.length)=>(this.check(t,r),new n(r,{arrayBuffer:this.arrayBuffer,offset:t,length:r}));swap=(t=0,r=this.length,e=4)=>{if(e<2)throw new RangeError(h("swap",`Invalid word length: '${e}'.`));if(e%2!==0)throw new RangeError(h("swap",`Invalid word length alignment: '${e}'.`));this.check(t,r);let i=t+r;for(let s=0;s<i;s+=e){let a=s+t;for(let o=0;o<e/2;o++){let c=this.array[a+o];this.array[a+o]=this.array[a+e-o-1],this.array[a+e-o-1]=c;}}return this};partialReverse=(t=0,r=this.length)=>{this.check(t,r);let e=Math.floor(r/2),i=t+r;for(let s=0;s<e;s++){let a=s+t,o=i-s-1,c=this.array[a];this.array[a]=this.array[o],this.array[o]=c;}return this};reverse=()=>(this.array.reverse(),this);rotateLeft=()=>{let t=this.array[0];for(let r=0;r<this.length-1;r++)this.array[r]=this.array[r+1];return this.array[this.length-1]=t,this};rotateRight=()=>{let t=this.array[this.length-1];for(let r=this.length-1;r>0;r--)this.array[r]=this.array[r-1];return this.array[0]=t,this};shiftLeft=(t=0,r=this.length,e=1)=>{this.check(t,r);for(let i=0;i<this.length-1;i++)this.array[i]=this.array[i+e];for(let i=0;i<e;i++)this.array[this.length-i-1]=0;return this};shiftRight=(t=0,r=this.length,e=1)=>{this.check(t,r);for(let i=this.length-1;i>0;i--)this.array[i]=this.array[i-e];for(let i=0;i<e;i++)this.array[i]=0;return this};fill=(t,r=0,e=this.length)=>{if(t<0||t>255)throw new RangeError(h("fill",`Invalid value: '${t}'.`));return this.check(r,e),this.array.fill(t,r,r+e),this};clear=(t=0,r=this.length)=>(this.check(t,r),this.array.fill(0,t,t+r),this)};function q(){switch(process.platform){case "win32":return process.env.COMPUTERNAME;case "darwin":return execSync("scutil --get ComputerName").toString().trim();case "linux":{let n=execSync("hostnamectl --pretty").toString().trim();return n===""?hostname():n}default:return hostname()}}var y={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 U=class{_req;_res;_read;_write;_update;_replace;_remove;_options;constructor(t,r,e,i){this.setRequestResponse(t,r),this.setMethods(e||{}),this.setOptions(i||{});}setRequestResponse(t,r){this._req=t,this._res=r;}setMethods(t){this._read=t?.read,this._write=t?.write,this._update=t?.update,this._replace=t?.replace,this._remove=t?.remove;}setOptions(t){this._options={...this._options,...t};}_checkDataValidity(t){return t!=null}successResponse(t,r){return this._res.status(t).send({success:true,data:this._checkDataValidity(r)?r:null})}errorResponse(t,r,e){let i={success:false,message:e||t.message,error:this._checkDataValidity(r)?{...t,data:r}:t};return this._res.status(t.status).send(i)}hasRole(t,r){return t.roles?.includes(r)}hasSomeRoles(t,r){return r.some(e=>t.roles?.includes(e))}hasAllRoles(t,r){return r.every(e=>t.roles?.includes(e))}checkAuthOptions(t,r){return r.requireAuth&&!t?(this.errorResponse(y.UNAUTHORIZED),false):r.hasRole&&(!t||!this.hasRole(t.user,r.hasRole))?(this.errorResponse(y.UNAUTHORIZED),false):r.hasSomeRoles&&(!t||!this.hasSomeRoles(t.user,r.hasSomeRoles))?(this.errorResponse(y.UNAUTHORIZED),false):r.hasAllRoles&&(!t||!this.hasAllRoles(t.user,r.hasAllRoles))?(this.errorResponse(y.UNAUTHORIZED),false):true}async _executeMethod(t,r){return typeof t=="function"?(await t(r),true):t.authOptions&&!this.checkAuthOptions(r.session,t.authOptions)?false:(await t.method(r),true)}async run(){let t=this._options.authFunction?await this._options.authFunction(this._req,this._res):null;if(!this.checkAuthOptions(t,this._options))return;let e={req:this._req,res:this._res,session:t,wrapper:this};try{switch(this._req.method){case "GET":if(this._read)return await this._executeMethod(this._read,e);break;case "POST":if(this._write)return await this._executeMethod(this._write,e);break;case "PATCH":if(this._update)return await this._executeMethod(this._update,e);break;case "PUT":if(this._replace)return await this._executeMethod(this._replace,e);break;case "DELETE":if(this._remove)return await this._executeMethod(this._remove,e);break;default:return this.errorResponse(y.METHOD_NOT_ALLOWED)}}catch(i){return this.errorResponse(y.INTERNAL_SERVER_ERROR,i)}}};export{x as Bench,A as CyBuffer,U as NextApiWrapper,C as generateCGASStatus,q as getHostname,E as logger};//# sourceMappingURL=backend.js.map
|
|
8
6
|
//# sourceMappingURL=backend.js.map
|