create qr-codes by tg bot
Deploy app frontend / app frontend (push) Failing after 48s
Deploy db-migrations / db-migrations (push) Failing after 35s
Deploy service message-delivery-method-web-push / service message-delivery-method-web-push (push) Failing after 53s

This commit is contained in:
2024-12-10 13:21:38 +02:00
parent e9b3df38fe
commit 1810c550ba
91 changed files with 3317 additions and 1909 deletions
@@ -0,0 +1 @@
dist
@@ -0,0 +1,22 @@
{
"name": "@hereconnect/lib-service-seq-tracker",
"version": "1.0.0",
"main": "src/serviceSeqTracker.ts",
"exports": {
".": {
"import": "./src/serviceSeqTracker.ts",
"default": "./src/serviceSeqTracker.ts"
}
},
"files": ["src/**/*"],
"private": true,
"scripts": {
"lint": "tsc --noEmit src/serviceSeqTracker.ts",
"build": "pnpm run lint"
},
"devDependencies": {
"typescript": "~5.6.3",
"@types/node": "^20.17.6",
"@types/pouchdb-core": "^7.0.15"
}
}
@@ -0,0 +1,57 @@
import { type defaults as PouchDB } from "pouchdb-core";
export interface ServiceSeqTrackerDocument {
lastSeq: string | number;
}
export type ServiceSeqTrackerDatabase =
PouchDB.Database<ServiceSeqTrackerDocument>;
export class ServiceSeqTracker {
/**
* @param _id
* @param serviceSeqTrackerDb
* @constructor
*/
static async Init(
_id: string,
serviceSeqTrackerDb: ServiceSeqTrackerDatabase,
) {
const doc = await serviceSeqTrackerDb.get(_id).catch((error) => {
if (error.name === "not_found") {
return {
_id,
lastSeq: "0",
};
}
throw error; // Re-throw other errors
});
return new ServiceSeqTracker(doc, serviceSeqTrackerDb);
}
private constructor(
private doc: ServiceSeqTrackerDocument,
private serviceSeqTrackerDb: ServiceSeqTrackerDatabase,
) {}
get lastSeq() {
return this.doc.lastSeq;
}
checkNextSeq(seq: number | string) {
if (!this.doc) {
}
const next = parseInt(seq as string, 10);
const current = parseInt(this.doc.lastSeq as string, 10);
if (next < current) {
throw new Error(
`Sequence number is too old: ${seq} (${next} < ${current})`,
);
}
}
saveSeq(seq: number | string) {
this.doc.lastSeq = seq;
return this.serviceSeqTrackerDb.put(this.doc);
}
}
@@ -0,0 +1,10 @@
{
"compilerOptions": {
"declaration": true,
"emitDeclarationOnly": true,
"outDir": "./dist",
"strict": true,
"types": ["node"]
},
"include": ["index.ts"]
}