@polygonlabs/servercore 1.0.0-dev.9 → 1.1.0
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/LICENSE +21 -0
- package/README.md +106 -6
- package/dist/api/health-check.d.ts +8 -0
- package/dist/api/health-check.js +85 -0
- package/dist/api/health-check.js.map +1 -0
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/response_handler.d.ts +6 -1
- package/dist/api/response_handler.js +5 -4
- package/dist/api/response_handler.js.map +1 -1
- package/dist/constants/http_success_codes.d.ts +2 -2
- package/dist/constants/http_success_codes.js +2 -2
- package/dist/constants/http_success_codes.js.map +1 -1
- package/dist/constants/index.d.ts +1 -1
- package/dist/consumers/abstract_cron_event_consumer.d.ts +23 -0
- package/dist/consumers/abstract_cron_event_consumer.js +30 -0
- package/dist/consumers/abstract_cron_event_consumer.js.map +1 -0
- package/dist/consumers/event_consumer.d.ts +5 -4
- package/dist/consumers/event_consumer.js +19 -16
- package/dist/consumers/event_consumer.js.map +1 -1
- package/dist/consumers/index.d.ts +3 -0
- package/dist/consumers/index.js +2 -0
- package/dist/consumers/index.js.map +1 -1
- package/dist/consumers/rest_api_consumer.d.ts +30 -0
- package/dist/consumers/rest_api_consumer.js +131 -0
- package/dist/consumers/rest_api_consumer.js.map +1 -0
- package/dist/errors/api_errors.d.ts +1 -1
- package/dist/errors/api_errors.js +11 -9
- package/dist/errors/api_errors.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/logger/logger.js +16 -30
- package/dist/logger/logger.js.map +1 -1
- package/dist/storage/db_interface.d.ts +17 -0
- package/dist/storage/index.d.ts +4 -0
- package/dist/storage/index.js +3 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/queue_interface.d.ts +11 -0
- package/dist/storage/queue_interface.js +1 -0
- package/dist/storage/queue_interface.js.map +1 -0
- package/dist/types/database.d.ts +44 -9
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/queue_job_opts.d.ts +5 -0
- package/dist/types/queue_job_opts.js +1 -0
- package/dist/types/queue_job_opts.js.map +1 -0
- package/dist/types/rest_api_consumer_config.d.ts +17 -0
- package/dist/types/rest_api_consumer_config.js +1 -0
- package/dist/types/rest_api_consumer_config.js.map +1 -0
- package/dist/utils/decoder.d.ts +1 -1
- package/dist/utils/decoder.js +3 -3
- package/dist/utils/decoder.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/ulid.d.ts +3 -0
- package/dist/utils/ulid.js +24 -0
- package/dist/utils/ulid.js.map +1 -0
- package/package.json +15 -15
- package/dist/database/db_interface.d.ts +0 -13
- package/dist/database/index.d.ts +0 -2
- package/dist/database/index.js +0 -2
- package/dist/database/index.js.map +0 -1
- /package/dist/{database → storage}/db_interface.js +0 -0
- /package/dist/{database → storage}/db_interface.js.map +0 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
import { monotonicFactory, ulid } from "ulid";
|
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) {
|
12
|
+
if (!Array.isArray(dataToEncode) || !dataToEncode.every((item) => typeof item === "string")) {
|
13
|
+
throw new Error("dataToEncode must be an array of strings");
|
14
|
+
}
|
15
|
+
const monotonicULID = monotonicFactory();
|
16
|
+
const timestampPart = timeSeed ? ulid(timeSeed, deterministicPRNG(timeSeed)) : monotonicULID();
|
17
|
+
return [timestampPart, ...dataToEncode.filter(Boolean)].join(
|
18
|
+
separator || "-"
|
19
|
+
);
|
20
|
+
}
|
21
|
+
export {
|
22
|
+
generateDeterministicULID
|
23
|
+
};
|
24
|
+
//# sourceMappingURL=ulid.js.map
|
@@ -0,0 +1 @@
|
|
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":[]}
|
package/package.json
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@polygonlabs/servercore",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.1.0",
|
4
4
|
"publishConfig": {
|
5
5
|
"access": "public"
|
6
6
|
},
|
7
7
|
"main": "dist/index.js",
|
8
8
|
"types": "dist/index.d.ts",
|
9
|
+
"license": "MIT",
|
9
10
|
"exports": {
|
10
11
|
".": {
|
11
12
|
"import": "./dist/index.js",
|
@@ -13,9 +14,11 @@
|
|
13
14
|
}
|
14
15
|
},
|
15
16
|
"scripts": {
|
16
|
-
"
|
17
|
-
"tests
|
18
|
-
"
|
17
|
+
"test": "bun test tests/",
|
18
|
+
"tests": "bun test tests/",
|
19
|
+
"tests:integration": "bun test tests/ --testNamePattern='integration'",
|
20
|
+
"build": "tsup",
|
21
|
+
"typecheck": "tsc --noEmit"
|
19
22
|
},
|
20
23
|
"files": [
|
21
24
|
"./dist/**",
|
@@ -23,23 +26,20 @@
|
|
23
26
|
"LICENSE"
|
24
27
|
],
|
25
28
|
"type": "module",
|
26
|
-
"devDependencies": {
|
27
|
-
"@semantic-release/changelog": "^6.0.3",
|
28
|
-
"@semantic-release/commit-analyzer": "^13.0.1",
|
29
|
-
"@semantic-release/git": "^10.0.1",
|
30
|
-
"@semantic-release/npm": "^12.0.1",
|
31
|
-
"@semantic-release/release-notes-generator": "^14.0.3",
|
32
|
-
"@types/bun": "latest",
|
33
|
-
"semantic-release": "^24.2.3",
|
34
|
-
"tsup": "^8.4.0"
|
35
|
-
},
|
36
29
|
"peerDependencies": {
|
37
30
|
"typescript": "^5"
|
38
31
|
},
|
39
32
|
"dependencies": {
|
33
|
+
"croner": "^9.0.0",
|
34
|
+
"ulid": "^3.0.1",
|
40
35
|
"viem": "^2.26.3",
|
41
36
|
"winston": "^3.17.0",
|
42
37
|
"winston-transport-sentry-node": "^3.0.0",
|
43
38
|
"zod": "^3.24.2"
|
44
|
-
}
|
39
|
+
},
|
40
|
+
"devDependencies": {
|
41
|
+
"@types/bun": "latest",
|
42
|
+
"bun-types": "latest"
|
43
|
+
},
|
44
|
+
"gitHead": "608300167f4bb72b72e75fea2fb92c25b3ca52fc"
|
45
45
|
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { IQueryFilterOperationParams, IDocumentConditionalModifications, IQueryOrderOperationParams } from '../types/database.js';
|
2
|
-
|
3
|
-
interface Database {
|
4
|
-
connect(): Promise<void>;
|
5
|
-
disconnect(): Promise<void>;
|
6
|
-
addDocuments(collectionPaths: string[], docDatas: any[], docIds?: string[]): Promise<void>;
|
7
|
-
updateDocuments(collectionPaths: string[], docDatas: any[], docIds: string[]): Promise<void>;
|
8
|
-
conditionalUpdateDocuments(collectionPaths: string[], docDatas: any[], docIds: string[], conditions: IQueryFilterOperationParams[], conditionModifications: IDocumentConditionalModifications[]): Promise<void>;
|
9
|
-
getDocuments(collectionPath: string, filter?: IQueryFilterOperationParams[] | undefined, limit?: number | undefined, order?: IQueryOrderOperationParams[] | undefined, startAfterCursor?: string | number | undefined): Promise<any[]>;
|
10
|
-
getDocument(collectionId: string, docId: string): Promise<any | null>;
|
11
|
-
}
|
12
|
-
|
13
|
-
export type { Database };
|
package/dist/database/index.d.ts
DELETED
package/dist/database/index.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../src/database/index.ts"],"sourcesContent":["export * from \"./db_interface\";\n"],"mappings":"AAAA,cAAc;","names":[]}
|
File without changes
|
File without changes
|