@polygonlabs/servercore 1.0.0-dev.33 → 1.0.0-dev.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/errors/api_errors.d.ts +1 -1
- package/dist/errors/api_errors.js +9 -9
- package/dist/errors/api_errors.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/ulid.d.ts +2 -2
- package/dist/utils/ulid.js +12 -3
- package/dist/utils/ulid.js.map +1 -1
- package/package.json +1 -1
@@ -20,7 +20,7 @@ declare class BadRequestError extends ApiError {
|
|
20
20
|
constructor(message?: string, validationErrors?: Record<string, any>, context?: Record<string, any>, origin?: string);
|
21
21
|
}
|
22
22
|
declare class NotFoundError extends ApiError {
|
23
|
-
constructor(entity?: string, identifier?: string | number, context?: Record<string, any>, origin?: string);
|
23
|
+
constructor(message: string, entity?: string, identifier?: string | number, context?: Record<string, any>, origin?: string);
|
24
24
|
}
|
25
25
|
declare class RateLimitError extends ApiError {
|
26
26
|
constructor(message?: string, context?: Record<string, any>, origin?: string);
|
@@ -4,7 +4,7 @@ class ApiError extends BaseError {
|
|
4
4
|
constructor(message, {
|
5
5
|
name = "INTERNAL_SERVER_ERROR",
|
6
6
|
code = errorCodes.api.INTERNAL_SERVER_ERROR,
|
7
|
-
isFatal =
|
7
|
+
isFatal = false,
|
8
8
|
origin = "api_errors",
|
9
9
|
context = {}
|
10
10
|
} = {}) {
|
@@ -17,7 +17,7 @@ class UnauthorizedError extends ApiError {
|
|
17
17
|
super(message, {
|
18
18
|
name: "UNAUTHORIZED",
|
19
19
|
code: errorCodes.api.UNAUTHORIZED,
|
20
|
-
isFatal:
|
20
|
+
isFatal: false,
|
21
21
|
origin,
|
22
22
|
context
|
23
23
|
});
|
@@ -28,7 +28,7 @@ class ForbiddenError extends ApiError {
|
|
28
28
|
super(message, {
|
29
29
|
name: "FORBIDDEN",
|
30
30
|
code: errorCodes.api.FORBIDDEN,
|
31
|
-
isFatal:
|
31
|
+
isFatal: false,
|
32
32
|
origin,
|
33
33
|
context
|
34
34
|
});
|
@@ -40,7 +40,7 @@ class BadRequestError extends ApiError {
|
|
40
40
|
super(message, {
|
41
41
|
name: "BAD_REQUEST",
|
42
42
|
code: errorCodes.api.BAD_REQUEST,
|
43
|
-
isFatal:
|
43
|
+
isFatal: false,
|
44
44
|
origin,
|
45
45
|
context
|
46
46
|
});
|
@@ -48,12 +48,12 @@ class BadRequestError extends ApiError {
|
|
48
48
|
}
|
49
49
|
}
|
50
50
|
class NotFoundError extends ApiError {
|
51
|
-
constructor(entity = "Path", identifier, context = {}, origin = "api_errors") {
|
52
|
-
|
51
|
+
constructor(message, entity = "Path", identifier, context = {}, origin = "api_errors") {
|
52
|
+
message = entity && identifier ? `${entity} with identifier ${identifier} not found` : entity ? `${entity} not found` : message;
|
53
53
|
super(message, {
|
54
54
|
name: "NOT_FOUND",
|
55
55
|
code: errorCodes.api.NOT_FOUND,
|
56
|
-
isFatal:
|
56
|
+
isFatal: false,
|
57
57
|
origin,
|
58
58
|
context: { entity, identifier, ...context }
|
59
59
|
});
|
@@ -64,7 +64,7 @@ class RateLimitError extends ApiError {
|
|
64
64
|
super(message, {
|
65
65
|
name: "RATE_LIMIT",
|
66
66
|
code: errorCodes.api.TOO_MANY_REQUESTS,
|
67
|
-
isFatal:
|
67
|
+
isFatal: false,
|
68
68
|
origin,
|
69
69
|
context
|
70
70
|
});
|
@@ -76,7 +76,7 @@ class TimeoutError extends ApiError {
|
|
76
76
|
name: "TIMEOUT",
|
77
77
|
code: errorCodes.api.TIMEOUT_ERROR,
|
78
78
|
// Gateway Timeout
|
79
|
-
isFatal:
|
79
|
+
isFatal: false,
|
80
80
|
origin,
|
81
81
|
context: { operation, timeoutMs, ...context }
|
82
82
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/errors/api_errors.ts"],"sourcesContent":["import { BaseError } from \"./base_error\";\nimport { errorCodes } from \"../constants\";\n\nexport class ApiError extends BaseError {\n constructor(\n message: string,\n {\n name = \"INTERNAL_SERVER_ERROR\",\n code = errorCodes.api.INTERNAL_SERVER_ERROR,\n isFatal =
|
1
|
+
{"version":3,"sources":["../../src/errors/api_errors.ts"],"sourcesContent":["import { BaseError } from \"./base_error\";\nimport { errorCodes } from \"../constants\";\n\nexport class ApiError extends BaseError {\n constructor(\n message: string,\n {\n name = \"INTERNAL_SERVER_ERROR\",\n code = errorCodes.api.INTERNAL_SERVER_ERROR,\n isFatal = false,\n origin = \"api_errors\",\n context = {},\n }: {\n name?: string;\n code?: number;\n isFatal?: boolean;\n origin?: string;\n context?: Record<string, any>;\n } = {}\n ) {\n super(name, code, message, isFatal, origin, context);\n Error.captureStackTrace(this, this.constructor);\n }\n}\n\nexport class UnauthorizedError extends ApiError {\n constructor(\n message: string = \"Invalid auth credentials\",\n context: Record<string, any> = {},\n origin: string = \"api_errors\"\n ) {\n super(message, {\n name: \"UNAUTHORIZED\",\n code: errorCodes.api.UNAUTHORIZED,\n isFatal: false,\n origin,\n context,\n });\n }\n}\n\nexport class ForbiddenError extends ApiError {\n constructor(\n message: string = \"You do not have permission to perform this action\",\n context: Record<string, any> = {},\n origin: string = \"api_errors\"\n ) {\n super(message, {\n name: \"FORBIDDEN\",\n code: errorCodes.api.FORBIDDEN,\n isFatal: false,\n origin,\n context,\n });\n }\n}\n\nexport class BadRequestError extends ApiError {\n public readonly validationErrors: Record<string, string[]>;\n\n constructor(\n message: string = \"Malformed or invalid request\",\n validationErrors: Record<string, any> = {},\n context: Record<string, any> = {},\n origin: string = \"api_errors\"\n ) {\n super(message, {\n name: \"BAD_REQUEST\",\n code: errorCodes.api.BAD_REQUEST,\n isFatal: false,\n origin,\n context,\n });\n this.validationErrors = validationErrors;\n }\n}\n\nexport class NotFoundError extends ApiError {\n constructor(\n message: string,\n entity: string = \"Path\",\n identifier?: string | number,\n context: Record<string, any> = {},\n origin: string = \"api_errors\"\n ) {\n message =\n entity && identifier\n ? `${entity} with identifier ${identifier} not found`\n : entity\n ? `${entity} not found`\n : message;\n\n super(message, {\n name: \"NOT_FOUND\",\n code: errorCodes.api.NOT_FOUND,\n isFatal: false,\n origin,\n context: { entity, identifier, ...context },\n });\n }\n}\n\nexport class RateLimitError extends ApiError {\n constructor(\n message: string = \"Rate limit exceeded\",\n context: Record<string, any> = {},\n origin: string = \"api_errors\"\n ) {\n super(message, {\n name: \"RATE_LIMIT\",\n code: errorCodes.api.TOO_MANY_REQUESTS,\n isFatal: false,\n origin,\n context,\n });\n }\n}\n\nexport class TimeoutError extends ApiError {\n constructor(\n operation: string,\n timeoutMs: number,\n context: Record<string, any> = {},\n origin: string = \"api_errors\"\n ) {\n super(`Operation '${operation}' timed out after ${timeoutMs}ms`, {\n name: \"TIMEOUT\",\n code: errorCodes.api.TIMEOUT_ERROR, // Gateway Timeout\n isFatal: false,\n origin,\n context: { operation, timeoutMs, ...context },\n });\n }\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAEpB,MAAM,iBAAiB,UAAU;AAAA,EACpC,YACI,SACA;AAAA,IACI,OAAO;AAAA,IACP,OAAO,WAAW,IAAI;AAAA,IACtB,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU,CAAC;AAAA,EACf,IAMI,CAAC,GACP;AACE,UAAM,MAAM,MAAM,SAAS,SAAS,QAAQ,OAAO;AACnD,UAAM,kBAAkB,MAAM,KAAK,WAAW;AAAA,EAClD;AACJ;AAEO,MAAM,0BAA0B,SAAS;AAAA,EAC5C,YACI,UAAkB,4BAClB,UAA+B,CAAC,GAChC,SAAiB,cACnB;AACE,UAAM,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,WAAW,IAAI;AAAA,MACrB,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAEO,MAAM,uBAAuB,SAAS;AAAA,EACzC,YACI,UAAkB,qDAClB,UAA+B,CAAC,GAChC,SAAiB,cACnB;AACE,UAAM,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,WAAW,IAAI;AAAA,MACrB,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAEO,MAAM,wBAAwB,SAAS;AAAA,EAC1B;AAAA,EAEhB,YACI,UAAkB,gCAClB,mBAAwC,CAAC,GACzC,UAA+B,CAAC,GAChC,SAAiB,cACnB;AACE,UAAM,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,WAAW,IAAI;AAAA,MACrB,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IACJ,CAAC;AACD,SAAK,mBAAmB;AAAA,EAC5B;AACJ;AAEO,MAAM,sBAAsB,SAAS;AAAA,EACxC,YACI,SACA,SAAiB,QACjB,YACA,UAA+B,CAAC,GAChC,SAAiB,cACnB;AACE,cACI,UAAU,aACJ,GAAG,MAAM,oBAAoB,UAAU,eACvC,SACA,GAAG,MAAM,eACT;AAEV,UAAM,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,WAAW,IAAI;AAAA,MACrB,SAAS;AAAA,MACT;AAAA,MACA,SAAS,EAAE,QAAQ,YAAY,GAAG,QAAQ;AAAA,IAC9C,CAAC;AAAA,EACL;AACJ;AAEO,MAAM,uBAAuB,SAAS;AAAA,EACzC,YACI,UAAkB,uBAClB,UAA+B,CAAC,GAChC,SAAiB,cACnB;AACE,UAAM,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,WAAW,IAAI;AAAA,MACrB,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAEO,MAAM,qBAAqB,SAAS;AAAA,EACvC,YACI,WACA,WACA,UAA+B,CAAC,GAChC,SAAiB,cACnB;AACE,UAAM,cAAc,SAAS,qBAAqB,SAAS,MAAM;AAAA,MAC7D,MAAM;AAAA,MACN,MAAM,WAAW,IAAI;AAAA;AAAA,MACrB,SAAS;AAAA,MACT;AAAA,MACA,SAAS,EAAE,WAAW,WAAW,GAAG,QAAQ;AAAA,IAChD,CAAC;AAAA,EACL;AACJ;","names":[]}
|
package/dist/index.d.ts
CHANGED
@@ -22,7 +22,7 @@ export { EventConsumer } from './consumers/event_consumer.js';
|
|
22
22
|
export { RestAPIConsumer } from './consumers/rest_api_consumer.js';
|
23
23
|
export { AbstractCronEventConsumer } from './consumers/abstract_cron_event_consumer.js';
|
24
24
|
export { parseEventLog } from './utils/decoder.js';
|
25
|
-
export {
|
25
|
+
export { generateDeterministicULID } from './utils/ulid.js';
|
26
26
|
import 'zod';
|
27
27
|
import 'winston';
|
28
28
|
import 'viem';
|
package/dist/utils/index.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
export { parseEventLog } from './decoder.js';
|
2
|
-
export {
|
2
|
+
export { generateDeterministicULID } from './ulid.js';
|
package/dist/utils/ulid.d.ts
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
declare function
|
1
|
+
declare function generateDeterministicULID(dataToEncode: string[], timeSeed?: number, separator?: string): string;
|
2
2
|
|
3
|
-
export {
|
3
|
+
export { generateDeterministicULID };
|
package/dist/utils/ulid.js
CHANGED
@@ -1,15 +1,24 @@
|
|
1
1
|
import { monotonicFactory, ulid } from "ulid";
|
2
|
-
function
|
2
|
+
function deterministicPRNG(seed) {
|
3
|
+
let t = seed;
|
4
|
+
return () => {
|
5
|
+
t += 1831565813;
|
6
|
+
t = Math.imul(t ^ t >>> 15, t | 1);
|
7
|
+
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
|
8
|
+
return ((t ^ t >>> 14) >>> 0) / 4294967296;
|
9
|
+
};
|
10
|
+
}
|
11
|
+
function generateDeterministicULID(dataToEncode, timeSeed, separator) {
|
3
12
|
if (!Array.isArray(dataToEncode) || !dataToEncode.every((item) => typeof item === "string")) {
|
4
13
|
throw new Error("dataToEncode must be an array of strings");
|
5
14
|
}
|
6
15
|
const monotonicULID = monotonicFactory();
|
7
|
-
const timestampPart = timeSeed ? ulid(timeSeed) : monotonicULID();
|
16
|
+
const timestampPart = timeSeed ? ulid(timeSeed, deterministicPRNG(timeSeed)) : monotonicULID();
|
8
17
|
return [timestampPart, ...dataToEncode.filter(Boolean)].join(
|
9
18
|
separator || "-"
|
10
19
|
);
|
11
20
|
}
|
12
21
|
export {
|
13
|
-
|
22
|
+
generateDeterministicULID
|
14
23
|
};
|
15
24
|
//# sourceMappingURL=ulid.js.map
|
package/dist/utils/ulid.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/utils/ulid.ts"],"sourcesContent":["import { monotonicFactory, ulid } from \"ulid\";\n\nexport function
|
1
|
+
{"version":3,"sources":["../../src/utils/ulid.ts"],"sourcesContent":["import { monotonicFactory, ulid } from \"ulid\";\n\nfunction deterministicPRNG(seed: number): () => number {\n let t = seed;\n return () => {\n t += 0x6d2b79f5; // Increment the seed with a large prime\n t = Math.imul(t ^ (t >>> 15), t | 1); // XOR and multiply\n t ^= t + Math.imul(t ^ (t >>> 7), t | 61); // More XOR and shifts\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296; // Normalize to [0, 1]\n };\n}\n\nexport function generateDeterministicULID(\n dataToEncode: string[],\n timeSeed?: number,\n separator?: string\n): string {\n if (\n !Array.isArray(dataToEncode) ||\n !dataToEncode.every((item) => typeof item === \"string\")\n ) {\n throw new Error(\"dataToEncode must be an array of strings\");\n }\n const monotonicULID = monotonicFactory();\n const timestampPart = timeSeed\n ? ulid(timeSeed, deterministicPRNG(timeSeed))\n : monotonicULID();\n return [timestampPart, ...dataToEncode.filter(Boolean)].join(\n separator || \"-\"\n );\n}\n"],"mappings":"AAAA,SAAS,kBAAkB,YAAY;AAEvC,SAAS,kBAAkB,MAA4B;AACnD,MAAI,IAAI;AACR,SAAO,MAAM;AACT,SAAK;AACL,QAAI,KAAK,KAAK,IAAK,MAAM,IAAK,IAAI,CAAC;AACnC,SAAK,IAAI,KAAK,KAAK,IAAK,MAAM,GAAI,IAAI,EAAE;AACxC,aAAS,IAAK,MAAM,QAAS,KAAK;AAAA,EACtC;AACJ;AAEO,SAAS,0BACZ,cACA,UACA,WACM;AACN,MACI,CAAC,MAAM,QAAQ,YAAY,KAC3B,CAAC,aAAa,MAAM,CAAC,SAAS,OAAO,SAAS,QAAQ,GACxD;AACE,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC9D;AACA,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,gBAAgB,WAChB,KAAK,UAAU,kBAAkB,QAAQ,CAAC,IAC1C,cAAc;AACpB,SAAO,CAAC,eAAe,GAAG,aAAa,OAAO,OAAO,CAAC,EAAE;AAAA,IACpD,aAAa;AAAA,EACjB;AACJ;","names":[]}
|