equipped 5.1.3 → 5.1.5
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/CHANGELOG.md +14 -0
- package/dist/cjs/audit/events.cjs +1 -1
- package/dist/cjs/audit/events.cjs.map +1 -1
- package/dist/cjs/audit/events.min.cjs +1 -1
- package/dist/cjs/audit/events.min.cjs.map +1 -1
- package/dist/cjs/cache/pipes.cjs.map +1 -1
- package/dist/cjs/cache/pipes.min.cjs +1 -1
- package/dist/cjs/cache/pipes.min.cjs.map +1 -1
- package/dist/cjs/cache/types/redis.cjs +1 -0
- package/dist/cjs/cache/types/redis.cjs.map +1 -1
- package/dist/cjs/cache/types/redis.min.cjs +1 -1
- package/dist/cjs/cache/types/redis.min.cjs.map +1 -1
- package/dist/cjs/dbs/base/changes.cjs +3 -1
- package/dist/cjs/dbs/base/changes.cjs.map +1 -1
- package/dist/cjs/dbs/base/changes.min.cjs +1 -1
- package/dist/cjs/dbs/base/changes.min.cjs.map +1 -1
- package/dist/cjs/dbs/base/db.cjs +2 -1
- package/dist/cjs/dbs/base/db.cjs.map +1 -1
- package/dist/cjs/dbs/base/db.min.cjs +1 -1
- package/dist/cjs/dbs/base/db.min.cjs.map +1 -1
- package/dist/cjs/dbs/base/types.cjs +2 -1
- package/dist/cjs/dbs/base/types.cjs.map +1 -1
- package/dist/cjs/dbs/base/types.min.cjs +2 -1
- package/dist/cjs/dbs/base/types.min.cjs.map +1 -1
- package/dist/cjs/dbs/mongo/changes.cjs +3 -1
- package/dist/cjs/dbs/mongo/changes.cjs.map +1 -1
- package/dist/cjs/dbs/mongo/changes.min.cjs +1 -1
- package/dist/cjs/dbs/mongo/changes.min.cjs.map +1 -1
- package/dist/cjs/dbs/mongo/db.cjs +2 -1
- package/dist/cjs/dbs/mongo/db.cjs.map +1 -1
- package/dist/cjs/dbs/mongo/db.min.cjs +1 -1
- package/dist/cjs/dbs/mongo/db.min.cjs.map +1 -1
- package/dist/cjs/dbs/mongo/query.cjs +3 -1
- package/dist/cjs/dbs/mongo/query.cjs.map +1 -1
- package/dist/cjs/dbs/mongo/query.min.cjs +1 -1
- package/dist/cjs/dbs/mongo/query.min.cjs.map +1 -1
- package/dist/cjs/dbs/pipes.cjs.map +1 -1
- package/dist/cjs/dbs/pipes.min.cjs +1 -1
- package/dist/cjs/dbs/pipes.min.cjs.map +1 -1
- package/dist/cjs/events/base.cjs.map +1 -1
- package/dist/cjs/events/base.min.cjs +1 -1
- package/dist/cjs/events/base.min.cjs.map +1 -1
- package/dist/cjs/events/pipes.cjs.map +1 -1
- package/dist/cjs/events/pipes.min.cjs +1 -1
- package/dist/cjs/events/pipes.min.cjs.map +1 -1
- package/dist/cjs/events/types/kafka.cjs.map +1 -1
- package/dist/cjs/events/types/kafka.min.cjs +1 -1
- package/dist/cjs/events/types/kafka.min.cjs.map +1 -1
- package/dist/cjs/events/types/rabbitmq.cjs.map +1 -1
- package/dist/cjs/events/types/rabbitmq.min.cjs +1 -1
- package/dist/cjs/events/types/rabbitmq.min.cjs.map +1 -1
- package/dist/cjs/instance/index.cjs +2 -2
- package/dist/cjs/instance/index.cjs.map +1 -1
- package/dist/cjs/instance/index.min.cjs +1 -1
- package/dist/cjs/instance/index.min.cjs.map +1 -1
- package/dist/cjs/instance/settings.cjs.map +1 -1
- package/dist/cjs/instance/settings.min.cjs +1 -1
- package/dist/cjs/instance/settings.min.cjs.map +1 -1
- package/dist/cjs/jobs/pipes.cjs.map +1 -1
- package/dist/cjs/jobs/pipes.min.cjs +1 -1
- package/dist/cjs/jobs/pipes.min.cjs.map +1 -1
- package/dist/cjs/jobs/types/redis.cjs +22 -17
- package/dist/cjs/jobs/types/redis.cjs.map +1 -1
- package/dist/cjs/jobs/types/redis.min.cjs +1 -1
- package/dist/cjs/jobs/types/redis.min.cjs.map +1 -1
- package/dist/cjs/server/impls/base.cjs +1 -0
- package/dist/cjs/server/impls/base.cjs.map +1 -1
- package/dist/cjs/server/impls/base.min.cjs +1 -1
- package/dist/cjs/server/impls/base.min.cjs.map +1 -1
- package/dist/cjs/server/impls/express.cjs.map +1 -1
- package/dist/cjs/server/impls/express.min.cjs +1 -1
- package/dist/cjs/server/impls/express.min.cjs.map +1 -1
- package/dist/cjs/server/impls/fastify.cjs.map +1 -1
- package/dist/cjs/server/impls/fastify.min.cjs +1 -1
- package/dist/cjs/server/impls/fastify.min.cjs.map +1 -1
- package/dist/cjs/server/openapi.cjs.map +1 -1
- package/dist/cjs/server/openapi.min.cjs +2 -2
- package/dist/cjs/server/openapi.min.cjs.map +1 -1
- package/dist/cjs/server/pipes.cjs.map +1 -1
- package/dist/cjs/server/pipes.min.cjs +1 -1
- package/dist/cjs/server/pipes.min.cjs.map +1 -1
- package/dist/cjs/server/requests-auth/tokens.min.cjs +1 -1
- package/dist/cjs/server/requests-auth/tokens.min.cjs.map +1 -1
- package/dist/cjs/server/requests.cjs.map +1 -1
- package/dist/cjs/server/requests.min.cjs +1 -1
- package/dist/cjs/server/requests.min.cjs.map +1 -1
- package/dist/cjs/server/routes.cjs +2 -0
- package/dist/cjs/server/routes.cjs.map +1 -1
- package/dist/cjs/server/routes.min.cjs +1 -1
- package/dist/cjs/server/routes.min.cjs.map +1 -1
- package/dist/cjs/server/sockets.cjs.map +1 -1
- package/dist/cjs/server/sockets.min.cjs +1 -1
- package/dist/cjs/server/sockets.min.cjs.map +1 -1
- package/dist/cjs/server/types.cjs.map +1 -1
- package/dist/cjs/server/types.min.cjs +1 -1
- package/dist/cjs/server/types.min.cjs.map +1 -1
- package/dist/cjs/validations/index.cjs.map +1 -1
- package/dist/cjs/validations/index.min.cjs +1 -1
- package/dist/cjs/validations/index.min.cjs.map +1 -1
- package/dist/cjs/validations/valleyed.cjs.map +1 -1
- package/dist/cjs/validations/valleyed.min.cjs +1 -1
- package/dist/cjs/validations/valleyed.min.cjs.map +1 -1
- package/dist/esm/audit/events.min.mjs +1 -1
- package/dist/esm/audit/events.min.mjs.map +1 -1
- package/dist/esm/audit/events.mjs +2 -2
- package/dist/esm/audit/events.mjs.map +1 -1
- package/dist/esm/cache/pipes.min.mjs +1 -1
- package/dist/esm/cache/pipes.min.mjs.map +1 -1
- package/dist/esm/cache/pipes.mjs.map +1 -1
- package/dist/esm/cache/types/redis.min.mjs +1 -1
- package/dist/esm/cache/types/redis.min.mjs.map +1 -1
- package/dist/esm/cache/types/redis.mjs +1 -0
- package/dist/esm/cache/types/redis.mjs.map +1 -1
- package/dist/esm/dbs/base/changes.min.mjs +1 -1
- package/dist/esm/dbs/base/changes.min.mjs.map +1 -1
- package/dist/esm/dbs/base/changes.mjs +2 -0
- package/dist/esm/dbs/base/changes.mjs.map +1 -1
- package/dist/esm/dbs/base/db.min.mjs +1 -1
- package/dist/esm/dbs/base/db.min.mjs.map +1 -1
- package/dist/esm/dbs/base/db.mjs +1 -0
- package/dist/esm/dbs/base/db.mjs.map +1 -1
- package/dist/esm/dbs/base/types.min.mjs +1 -0
- package/dist/esm/dbs/base/types.min.mjs.map +1 -1
- package/dist/esm/dbs/base/types.mjs +1 -0
- package/dist/esm/dbs/base/types.mjs.map +1 -1
- package/dist/esm/dbs/mongo/changes.min.mjs +1 -1
- package/dist/esm/dbs/mongo/changes.min.mjs.map +1 -1
- package/dist/esm/dbs/mongo/changes.mjs +2 -0
- package/dist/esm/dbs/mongo/changes.mjs.map +1 -1
- package/dist/esm/dbs/mongo/db.min.mjs +1 -1
- package/dist/esm/dbs/mongo/db.min.mjs.map +1 -1
- package/dist/esm/dbs/mongo/db.mjs +2 -1
- package/dist/esm/dbs/mongo/db.mjs.map +1 -1
- package/dist/esm/dbs/mongo/query.min.mjs +1 -1
- package/dist/esm/dbs/mongo/query.min.mjs.map +1 -1
- package/dist/esm/dbs/mongo/query.mjs +2 -0
- package/dist/esm/dbs/mongo/query.mjs.map +1 -1
- package/dist/esm/dbs/pipes.min.mjs +1 -1
- package/dist/esm/dbs/pipes.min.mjs.map +1 -1
- package/dist/esm/dbs/pipes.mjs.map +1 -1
- package/dist/esm/events/base.min.mjs +1 -1
- package/dist/esm/events/base.min.mjs.map +1 -1
- package/dist/esm/events/base.mjs.map +1 -1
- package/dist/esm/events/pipes.min.mjs +1 -1
- package/dist/esm/events/pipes.min.mjs.map +1 -1
- package/dist/esm/events/pipes.mjs.map +1 -1
- package/dist/esm/events/types/kafka.min.mjs +1 -1
- package/dist/esm/events/types/kafka.min.mjs.map +1 -1
- package/dist/esm/events/types/kafka.mjs.map +1 -1
- package/dist/esm/events/types/rabbitmq.min.mjs +1 -1
- package/dist/esm/events/types/rabbitmq.min.mjs.map +1 -1
- package/dist/esm/events/types/rabbitmq.mjs.map +1 -1
- package/dist/esm/instance/index.min.mjs +3 -3
- package/dist/esm/instance/index.min.mjs.map +1 -1
- package/dist/esm/instance/index.mjs +3 -3
- package/dist/esm/instance/index.mjs.map +1 -1
- package/dist/esm/instance/settings.min.mjs +1 -1
- package/dist/esm/instance/settings.min.mjs.map +1 -1
- package/dist/esm/instance/settings.mjs.map +1 -1
- package/dist/esm/jobs/pipes.min.mjs +1 -1
- package/dist/esm/jobs/pipes.min.mjs.map +1 -1
- package/dist/esm/jobs/pipes.mjs.map +1 -1
- package/dist/esm/jobs/types/redis.min.mjs +1 -1
- package/dist/esm/jobs/types/redis.min.mjs.map +1 -1
- package/dist/esm/jobs/types/redis.mjs +22 -17
- package/dist/esm/jobs/types/redis.mjs.map +1 -1
- package/dist/esm/server/impls/base.min.mjs +1 -1
- package/dist/esm/server/impls/base.min.mjs.map +1 -1
- package/dist/esm/server/impls/base.mjs +1 -0
- package/dist/esm/server/impls/base.mjs.map +1 -1
- package/dist/esm/server/impls/express.min.mjs +1 -1
- package/dist/esm/server/impls/express.min.mjs.map +1 -1
- package/dist/esm/server/impls/express.mjs.map +1 -1
- package/dist/esm/server/impls/fastify.min.mjs +1 -1
- package/dist/esm/server/impls/fastify.min.mjs.map +1 -1
- package/dist/esm/server/impls/fastify.mjs.map +1 -1
- package/dist/esm/server/openapi.min.mjs +3 -3
- package/dist/esm/server/openapi.min.mjs.map +1 -1
- package/dist/esm/server/openapi.mjs.map +1 -1
- package/dist/esm/server/pipes.min.mjs +1 -1
- package/dist/esm/server/pipes.min.mjs.map +1 -1
- package/dist/esm/server/pipes.mjs.map +1 -1
- package/dist/esm/server/requests-auth/tokens.min.mjs +1 -1
- package/dist/esm/server/requests-auth/tokens.min.mjs.map +1 -1
- package/dist/esm/server/requests.min.mjs +1 -1
- package/dist/esm/server/requests.min.mjs.map +1 -1
- package/dist/esm/server/requests.mjs.map +1 -1
- package/dist/esm/server/routes.min.mjs +1 -1
- package/dist/esm/server/routes.min.mjs.map +1 -1
- package/dist/esm/server/routes.mjs +3 -1
- package/dist/esm/server/routes.mjs.map +1 -1
- package/dist/esm/server/sockets.min.mjs +1 -1
- package/dist/esm/server/sockets.min.mjs.map +1 -1
- package/dist/esm/server/sockets.mjs.map +1 -1
- package/dist/esm/server/types.min.mjs +1 -1
- package/dist/esm/server/types.min.mjs.map +1 -1
- package/dist/esm/server/types.mjs.map +1 -1
- package/dist/esm/validations/index.min.mjs +1 -1
- package/dist/esm/validations/index.min.mjs.map +1 -1
- package/dist/esm/validations/index.mjs +1 -1
- package/dist/esm/validations/index.mjs.map +1 -1
- package/dist/esm/validations/valleyed.min.mjs +1 -1
- package/dist/esm/validations/valleyed.min.mjs.map +1 -1
- package/dist/esm/validations/valleyed.mjs.map +1 -1
- package/dist/types/audit/events.js +2 -2
- package/dist/types/cache/types/redis.js +1 -0
- package/dist/types/dbs/base/changes.js +2 -0
- package/dist/types/dbs/base/db.js +1 -0
- package/dist/types/dbs/base/types.js +1 -0
- package/dist/types/dbs/mongo/changes.js +2 -0
- package/dist/types/dbs/mongo/db.js +2 -1
- package/dist/types/dbs/mongo/query.js +2 -0
- package/dist/types/errors/index.d.ts +6 -6
- package/dist/types/{fastify-B7Edsl8N.d.ts → fastify-CDJ2WuLy.d.ts} +1 -1
- package/dist/types/index.d.ts +5 -5
- package/dist/types/instance/index.d.ts +9 -6
- package/dist/types/instance/index.js +3 -3
- package/dist/types/jobs/index.d.ts +0 -1
- package/dist/types/jobs/types/redis.js +22 -17
- package/dist/types/server/impls/base.js +1 -0
- package/dist/types/server/index.d.ts +5 -5
- package/dist/types/server/routes.js +3 -1
- package/dist/types/{validationError--mhIgeX-.d.ts → validationError-BMKfV51p.d.ts} +1 -1
- package/dist/types/validations/index.d.ts +5 -5
- package/dist/types/validations/index.js +1 -1
- package/package.json +28 -27
- package/dist/types/{requestError-ClqSpE4c.d.ts → requestError-DqkM5BfW.d.ts} +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [5.1.5](https://github.com/kevinand11/equipped/compare/v5.1.4...v5.1.5) (2025-12-07)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* switch from bull to bullmq for jobs ([ba5fdfb](https://github.com/kevinand11/equipped/commit/ba5fdfb48ed8b95386f7a6950b4480e854134436))
|
|
11
|
+
|
|
12
|
+
### [5.1.4](https://github.com/kevinand11/equipped/compare/v5.1.3...v5.1.4) (2025-11-23)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* confluent kafka version ([8d00144](https://github.com/kevinand11/equipped/commit/8d00144604877d20a1099f40299a5d474da58dd8))
|
|
18
|
+
|
|
5
19
|
### [5.1.3](https://github.com/kevinand11/equipped/compare/v5.1.2...v5.1.3) (2025-11-11)
|
|
6
20
|
|
|
7
21
|
### [5.1.2](https://github.com/kevinand11/equipped/compare/v5.1.1...v5.1.2) (2025-11-11)
|
|
@@ -30,7 +30,7 @@ class EventAudit {
|
|
|
30
30
|
if (!def) throw new (0, _indexcjs3.EquippedError)("audit definition not found", { name, payload });
|
|
31
31
|
const validBody = _valleyed.v.assert(def.pipe, payload);
|
|
32
32
|
const ts = _nullishCoalesce(context.at, () => ( /* @__PURE__ */ new Date()));
|
|
33
|
-
const key = _indexcjs5.Instance.createId(ts);
|
|
33
|
+
const key = _indexcjs5.Instance.createId({ time: ts });
|
|
34
34
|
return await this.table.insertOne(
|
|
35
35
|
{
|
|
36
36
|
key,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/audit/events.ts","/home/runner/work/equipped/equipped/dist/cjs/audit/events.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/audit/events.cjs","sourcesContent":["import { Pipe, PipeInput, PipeOutput, v } from 'valleyed'\n\nimport { Conditions, Db, Table, wrapQueryParams } from '../dbs'\nimport { EquippedError } from '../errors'\nimport { Instance } from '../instance'\n\nexport type EventDefinition<P extends Pipe<any, any>, R> = {\n\tpipe: P\n\thandle: (payload: PipeOutput<P>, context: EventContext) => R | Promise<R>\n\tsync?: (result: R, payload: PipeOutput<P>, context: EventContext) => void\n\tasync?: (result: R, payload: PipeOutput<P>, context: EventContext) => void\n}\n\nexport type EventContext = {\n\tkey: string\n\tby: string | undefined\n\tdate: Date\n}\n\nexport type EventDoc = {\n\tkey: string\n\tname: string\n\tts: number\n\tbody: unknown\n\tsteps: { status: 'start' | 'sync' | 'async' | 'error', ts: number, error?: string }[]\n\tby?: string\n}\ntype Context = { by?: string; at?: Date; }\n\nfunction createStep (step: EventDoc['steps'][number]) {\n\treturn step\n}\n\nexport class EventAudit {\n\tprivate table: Table<any, EventDoc, EventDoc & { toJSON: () => Record<string, unknown> }, any>\n\tprivate definitions: Record<string, EventDefinition<any, any>> = {}\n\tprivate asyncQueue: (() => Promise<void>)[] = []\n\n\tconstructor(\n\t\tprivate db: Db<any>,\n\t\tdbName: string,\n\t) {\n\t\tthis.table = db.use({\n\t\t\tdb: dbName,\n\t\t\tcol: '__audits',\n\t\t\tmapper: (model) => ({ ...model, toJSON: () => model as Record<string, unknown> }),\n\t\t\toptions: { skipAudit: true },\n\t\t})\n\n\t\tInstance.on('start', () => {\n\t\t\tsetInterval(async () => {\n\t\t\t\tconst queue = [...this.asyncQueue]\n\t\t\t\tthis.asyncQueue = []\n\t\t\t\tawait Promise.all(queue.map((job) => job()))\n\t\t\t}, 200)\n\t\t}, 4)\n\t}\n\n\tasync #createEvent(name: string, payload: unknown, context: Context) {\n\t\tconst def = this.definitions[name]\n\t\tif (!def) throw new EquippedError('audit definition not found', { name, payload })\n\n\t\tconst validBody = v.assert(def.pipe, payload)\n\t\tconst ts = context.at ?? new Date()\n\t\tconst key = Instance.createId(ts)\n\n\t\treturn await this.table.insertOne(\n\t\t\t{\n\t\t\t\tkey,\n\t\t\t\tname,\n\t\t\t\tts: ts.getTime(),\n\t\t\t\tbody: validBody,\n\t\t\t\tby: context.by,\n\t\t\t\tsteps: []\n\t\t\t},\n\t\t\t{ getTime: () => ts, makeId: () => key },\n\t\t)\n\t}\n\n\tasync #processEvent<R>(event: EventDoc, callbackWait: boolean) {\n\t\treturn this.db.session(async () => {\n\t\t\tconst def = this.definitions[event.name]\n\t\t\tif (!def) throw new EquippedError('audit definition not found', { event })\n\t\t\ttry {\n\t\t\t\tawait this.table.updateOne(\n\t\t\t\t\t{ key: event.key },\n\t\t\t\t\t{ $set: { steps: [createStep({ status: 'start', ts: Date.now() })] } },\n\t\t\t\t)\n\t\t\t\tconst context: EventContext = {\n\t\t\t\t\tkey: event.key,\n\t\t\t\t\tby: event.by,\n\t\t\t\t\tdate: new Date(event.ts),\n\t\t\t\t}\n\t\t\t\tconst result = await def.handle(event.body, context)\n\t\t\t\tawait def.sync?.(result, event.body, context)\n\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'sync', ts: Date.now() }) } })\n\n\t\t\t\tconst asyncHandle = async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait def.async?.(result, event.body, context)\n\t\t\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'async', ts: Date.now() }) } })\n\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\tconst error = err instanceof Error ? err.message : String(err)\n\t\t\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'error', error, ts: Date.now() }) } })\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (callbackWait) await asyncHandle()\n\t\t\t\telse this.asyncQueue.push(asyncHandle)\n\t\t\t\treturn result as R\n\t\t\t} catch (err) {\n\t\t\t\tconst error = err instanceof Error ? err.message : String(err)\n\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'error', error, ts: Date.now() }) } })\n\t\t\t\tthrow err\n\t\t\t}\n\t\t})\n\t}\n\n\tasync replay(from?: Date) {\n\t\tconst { results: events } = await this.table.query(\n\t\t\twrapQueryParams({\n\t\t\t\twhere: [...(from ? [{ field: 'ts', value: from.getTime(), condition: Conditions.gte }] : [])],\n\t\t\t\tsort: [{ field: 'ts', desc: false }],\n\t\t\t\tall: true,\n\t\t\t}),\n\t\t)\n\t\tfor (const event of events) await this.#processEvent(event, true)\n\t}\n\n\tasync rerun(key: string) {\n\t\tconst event = await this.table.findOne({ key })\n\t\tif (!event) throw new EquippedError('audit event not found', { key })\n\t\tawait this.#processEvent(event, true)\n\t}\n\n\tregister<P extends Pipe<any, any>, R>(name: string, def: EventDefinition<P, R>) {\n\t\tif (this.definitions[name]) throw new EquippedError(`${name} already has a registered handler`, {})\n\t\tthis.definitions[name] = def\n\t\tv.compile(def.pipe)\n\t\treturn async (payload: PipeInput<P>, context: Context)=> {\n\t\t\tconst event = await this.#createEvent(name, payload, context)\n\t\t\treturn this.#processEvent<R>(event, false)\n\t\t}\n\t}\n}\n",null]}
|
|
1
|
+
{"version":3,"sources":["../../../src/audit/events.ts","/home/runner/work/equipped/equipped/dist/cjs/audit/events.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/audit/events.cjs","sourcesContent":["import { type Pipe, type PipeInput, type PipeOutput, v } from 'valleyed'\n\nimport { Conditions, Db, type Table, wrapQueryParams } from '../dbs'\nimport { EquippedError } from '../errors'\nimport { Instance } from '../instance'\n\nexport type EventDefinition<P extends Pipe<any, any>, R> = {\n\tpipe: P\n\thandle: (payload: PipeOutput<P>, context: EventContext) => R | Promise<R>\n\tsync?: (result: R, payload: PipeOutput<P>, context: EventContext) => void\n\tasync?: (result: R, payload: PipeOutput<P>, context: EventContext) => void\n}\n\nexport type EventContext = {\n\tkey: string\n\tby: string | undefined\n\tdate: Date\n}\n\nexport type EventDoc = {\n\tkey: string\n\tname: string\n\tts: number\n\tbody: unknown\n\tsteps: { status: 'start' | 'sync' | 'async' | 'error', ts: number, error?: string }[]\n\tby?: string\n}\ntype Context = { by?: string; at?: Date; }\n\nfunction createStep (step: EventDoc['steps'][number]) {\n\treturn step\n}\n\nexport class EventAudit {\n\tprivate table: Table<any, EventDoc, EventDoc & { toJSON: () => Record<string, unknown> }, any>\n\tprivate definitions: Record<string, EventDefinition<any, any>> = {}\n\tprivate asyncQueue: (() => Promise<void>)[] = []\n\n\tconstructor(\n\t\tprivate db: Db<any>,\n\t\tdbName: string,\n\t) {\n\t\tthis.table = db.use({\n\t\t\tdb: dbName,\n\t\t\tcol: '__audits',\n\t\t\tmapper: (model) => ({ ...model, toJSON: () => model as Record<string, unknown> }),\n\t\t\toptions: { skipAudit: true },\n\t\t})\n\n\t\tInstance.on('start', () => {\n\t\t\tsetInterval(async () => {\n\t\t\t\tconst queue = [...this.asyncQueue]\n\t\t\t\tthis.asyncQueue = []\n\t\t\t\tawait Promise.all(queue.map((job) => job()))\n\t\t\t}, 200)\n\t\t}, 4)\n\t}\n\n\tasync #createEvent(name: string, payload: unknown, context: Context) {\n\t\tconst def = this.definitions[name]\n\t\tif (!def) throw new EquippedError('audit definition not found', { name, payload })\n\n\t\tconst validBody = v.assert(def.pipe, payload)\n\t\tconst ts = context.at ?? new Date()\n\t\tconst key = Instance.createId({ time: ts })\n\n\t\treturn await this.table.insertOne(\n\t\t\t{\n\t\t\t\tkey,\n\t\t\t\tname,\n\t\t\t\tts: ts.getTime(),\n\t\t\t\tbody: validBody,\n\t\t\t\tby: context.by,\n\t\t\t\tsteps: []\n\t\t\t},\n\t\t\t{ getTime: () => ts, makeId: () => key },\n\t\t)\n\t}\n\n\tasync #processEvent<R>(event: EventDoc, callbackWait: boolean) {\n\t\treturn this.db.session(async () => {\n\t\t\tconst def = this.definitions[event.name]\n\t\t\tif (!def) throw new EquippedError('audit definition not found', { event })\n\t\t\ttry {\n\t\t\t\tawait this.table.updateOne(\n\t\t\t\t\t{ key: event.key },\n\t\t\t\t\t{ $set: { steps: [createStep({ status: 'start', ts: Date.now() })] } },\n\t\t\t\t)\n\t\t\t\tconst context: EventContext = {\n\t\t\t\t\tkey: event.key,\n\t\t\t\t\tby: event.by,\n\t\t\t\t\tdate: new Date(event.ts),\n\t\t\t\t}\n\t\t\t\tconst result = await def.handle(event.body, context)\n\t\t\t\tawait def.sync?.(result, event.body, context)\n\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'sync', ts: Date.now() }) } })\n\n\t\t\t\tconst asyncHandle = async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait def.async?.(result, event.body, context)\n\t\t\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'async', ts: Date.now() }) } })\n\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\tconst error = err instanceof Error ? err.message : String(err)\n\t\t\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'error', error, ts: Date.now() }) } })\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (callbackWait) await asyncHandle()\n\t\t\t\telse this.asyncQueue.push(asyncHandle)\n\t\t\t\treturn result as R\n\t\t\t} catch (err) {\n\t\t\t\tconst error = err instanceof Error ? err.message : String(err)\n\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'error', error, ts: Date.now() }) } })\n\t\t\t\tthrow err\n\t\t\t}\n\t\t})\n\t}\n\n\tasync replay(from?: Date) {\n\t\tconst { results: events } = await this.table.query(\n\t\t\twrapQueryParams({\n\t\t\t\twhere: [...(from ? [{ field: 'ts', value: from.getTime(), condition: Conditions.gte }] : [])],\n\t\t\t\tsort: [{ field: 'ts', desc: false }],\n\t\t\t\tall: true,\n\t\t\t}),\n\t\t)\n\t\tfor (const event of events) await this.#processEvent(event, true)\n\t}\n\n\tasync rerun(key: string) {\n\t\tconst event = await this.table.findOne({ key })\n\t\tif (!event) throw new EquippedError('audit event not found', { key })\n\t\tawait this.#processEvent(event, true)\n\t}\n\n\tregister<P extends Pipe<any, any>, R>(name: string, def: EventDefinition<P, R>) {\n\t\tif (this.definitions[name]) throw new EquippedError(`${name} already has a registered handler`, {})\n\t\tthis.definitions[name] = def\n\t\tv.compile(def.pipe)\n\t\treturn async (payload: PipeInput<P>, context: Context)=> {\n\t\t\tconst event = await this.#createEvent(name, payload, context)\n\t\t\treturn this.#processEvent<R>(event, false)\n\t\t}\n\t}\n}\n",null]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _valleyed = require('valleyed');var _indexmincjs = require('../dbs/index.min.cjs');var _indexmincjs3 = require('../errors/index.min.cjs');var _indexmincjs5 = require('../instance/index.min.cjs');function
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _valleyed = require('valleyed');var _indexmincjs = require('../dbs/index.min.cjs');var _indexmincjs3 = require('../errors/index.min.cjs');var _indexmincjs5 = require('../instance/index.min.cjs');function P(u){return u}class k{constructor(t,s){;k.prototype.__init.call(this);k.prototype.__init2.call(this);this.db=t;this.table=t.use({db:s,col:"__audits",mapper:e=>({...e,toJSON:()=>e}),options:{skipAudit:!0}}),_indexmincjs5.Instance.on("start",()=>{setInterval(async()=>{const e=[...this.asyncQueue];this.asyncQueue=[],await Promise.all(e.map(n=>n()))},200)},4)}__init() {this.definitions={}}__init2() {this.asyncQueue=[]}async#e(t,s,e){const n=this.definitions[t];if(!n)throw new (0, _indexmincjs3.EquippedError)("audit definition not found",{name:t,payload:s});const a=_valleyed.v.assert(n.pipe,s),i=_nullishCoalesce(e.at, () => (new Date)),r=_indexmincjs5.Instance.createId({time:i});return await this.table.insertOne({key:r,name:t,ts:i.getTime(),body:a,by:e.by,steps:[]},{getTime:()=>i,makeId:()=>r})}async#t(t,s){return this.db.session(async()=>{const e=this.definitions[t.name];if(!e)throw new (0, _indexmincjs3.EquippedError)("audit definition not found",{event:t});try{await this.table.updateOne({key:t.key},{$set:{steps:[{status:"start",ts:Date.now()}]}});const n={key:t.key,by:t.by,date:new Date(t.ts)},a=await e.handle(t.body,n);await _optionalChain([e, 'access', _ => _.sync, 'optionalCall', _2 => _2(a,t.body,n)]),await this.table.updateOne({key:t.key},{$push:{steps:{status:"sync",ts:Date.now()}}});const i=async()=>{try{await _optionalChain([e, 'access', _3 => _3.async, 'optionalCall', _4 => _4(a,t.body,n)]),await this.table.updateOne({key:t.key},{$push:{steps:{status:"async",ts:Date.now()}}})}catch(r){const c=r instanceof Error?r.message:String(r);await this.table.updateOne({key:t.key},{$push:{steps:{status:"error",error:c,ts:Date.now()}}})}};return s?await i():this.asyncQueue.push(i),a}catch(n){const a=n instanceof Error?n.message:String(n);throw await this.table.updateOne({key:t.key},{$push:{steps:{status:"error",error:a,ts:Date.now()}}}),n}})}async replay(t){const{results:s}=await this.table.query(_indexmincjs.wrapQueryParams.call(void 0, {where:[...t?[{field:"ts",value:t.getTime(),condition:_indexmincjs.Conditions.gte}]:[]],sort:[{field:"ts",desc:!1}],all:!0}));for(const e of s)await this.#t(e,!0)}async rerun(t){const s=await this.table.findOne({key:t});if(!s)throw new (0, _indexmincjs3.EquippedError)("audit event not found",{key:t});await this.#t(s,!0)}register(t,s){if(this.definitions[t])throw new (0, _indexmincjs3.EquippedError)(`${t} already has a registered handler`,{});return this.definitions[t]=s,_valleyed.v.compile(s.pipe),async(e,n)=>{const a=await this.#e(t,e,n);return this.#t(a,!1)}}}exports.EventAudit = k;
|
|
2
2
|
//# sourceMappingURL=events.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/audit/events.ts"],"names":["db","model","Instance","queue","job","#createEvent","name","payload","EquippedError","context","key","ts","validBody","#processEvent","callbackWait","def","event","result","asyncHandle","err","error","from","events","wrapQueryParams"],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/audit/events.ts"],"names":["db","model","Instance","queue","job","#createEvent","name","payload","EquippedError","context","key","ts","validBody","#processEvent","callbackWait","def","event","result","asyncHandle","err","error","from","events","wrapQueryParams"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/audit/events.min.cjs","sourcesContent":["import { type Pipe, type PipeInput, type PipeOutput, v } from 'valleyed'\n\nimport { Conditions, Db, type Table, wrapQueryParams } from '../dbs'\nimport { EquippedError } from '../errors'\nimport { Instance } from '../instance'\n\nexport type EventDefinition<P extends Pipe<any, any>, R> = {\n\tpipe: P\n\thandle: (payload: PipeOutput<P>, context: EventContext) => R | Promise<R>\n\tsync?: (result: R, payload: PipeOutput<P>, context: EventContext) => void\n\tasync?: (result: R, payload: PipeOutput<P>, context: EventContext) => void\n}\n\nexport type EventContext = {\n\tkey: string\n\tby: string | undefined\n\tdate: Date\n}\n\nexport type EventDoc = {\n\tkey: string\n\tname: string\n\tts: number\n\tbody: unknown\n\tsteps: { status: 'start' | 'sync' | 'async' | 'error', ts: number, error?: string }[]\n\tby?: string\n}\ntype Context = { by?: string; at?: Date; }\n\nfunction createStep (step: EventDoc['steps'][number]) {\n\treturn step\n}\n\nexport class EventAudit {\n\tprivate table: Table<any, EventDoc, EventDoc & { toJSON: () => Record<string, unknown> }, any>\n\tprivate definitions: Record<string, EventDefinition<any, any>> = {}\n\tprivate asyncQueue: (() => Promise<void>)[] = []\n\n\tconstructor(\n\t\tprivate db: Db<any>,\n\t\tdbName: string,\n\t) {\n\t\tthis.table = db.use({\n\t\t\tdb: dbName,\n\t\t\tcol: '__audits',\n\t\t\tmapper: (model) => ({ ...model, toJSON: () => model as Record<string, unknown> }),\n\t\t\toptions: { skipAudit: true },\n\t\t})\n\n\t\tInstance.on('start', () => {\n\t\t\tsetInterval(async () => {\n\t\t\t\tconst queue = [...this.asyncQueue]\n\t\t\t\tthis.asyncQueue = []\n\t\t\t\tawait Promise.all(queue.map((job) => job()))\n\t\t\t}, 200)\n\t\t}, 4)\n\t}\n\n\tasync #createEvent(name: string, payload: unknown, context: Context) {\n\t\tconst def = this.definitions[name]\n\t\tif (!def) throw new EquippedError('audit definition not found', { name, payload })\n\n\t\tconst validBody = v.assert(def.pipe, payload)\n\t\tconst ts = context.at ?? new Date()\n\t\tconst key = Instance.createId({ time: ts })\n\n\t\treturn await this.table.insertOne(\n\t\t\t{\n\t\t\t\tkey,\n\t\t\t\tname,\n\t\t\t\tts: ts.getTime(),\n\t\t\t\tbody: validBody,\n\t\t\t\tby: context.by,\n\t\t\t\tsteps: []\n\t\t\t},\n\t\t\t{ getTime: () => ts, makeId: () => key },\n\t\t)\n\t}\n\n\tasync #processEvent<R>(event: EventDoc, callbackWait: boolean) {\n\t\treturn this.db.session(async () => {\n\t\t\tconst def = this.definitions[event.name]\n\t\t\tif (!def) throw new EquippedError('audit definition not found', { event })\n\t\t\ttry {\n\t\t\t\tawait this.table.updateOne(\n\t\t\t\t\t{ key: event.key },\n\t\t\t\t\t{ $set: { steps: [createStep({ status: 'start', ts: Date.now() })] } },\n\t\t\t\t)\n\t\t\t\tconst context: EventContext = {\n\t\t\t\t\tkey: event.key,\n\t\t\t\t\tby: event.by,\n\t\t\t\t\tdate: new Date(event.ts),\n\t\t\t\t}\n\t\t\t\tconst result = await def.handle(event.body, context)\n\t\t\t\tawait def.sync?.(result, event.body, context)\n\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'sync', ts: Date.now() }) } })\n\n\t\t\t\tconst asyncHandle = async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait def.async?.(result, event.body, context)\n\t\t\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'async', ts: Date.now() }) } })\n\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\tconst error = err instanceof Error ? err.message : String(err)\n\t\t\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'error', error, ts: Date.now() }) } })\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (callbackWait) await asyncHandle()\n\t\t\t\telse this.asyncQueue.push(asyncHandle)\n\t\t\t\treturn result as R\n\t\t\t} catch (err) {\n\t\t\t\tconst error = err instanceof Error ? err.message : String(err)\n\t\t\t\tawait this.table.updateOne({ key: event.key }, { $push: { steps: createStep({ status: 'error', error, ts: Date.now() }) } })\n\t\t\t\tthrow err\n\t\t\t}\n\t\t})\n\t}\n\n\tasync replay(from?: Date) {\n\t\tconst { results: events } = await this.table.query(\n\t\t\twrapQueryParams({\n\t\t\t\twhere: [...(from ? [{ field: 'ts', value: from.getTime(), condition: Conditions.gte }] : [])],\n\t\t\t\tsort: [{ field: 'ts', desc: false }],\n\t\t\t\tall: true,\n\t\t\t}),\n\t\t)\n\t\tfor (const event of events) await this.#processEvent(event, true)\n\t}\n\n\tasync rerun(key: string) {\n\t\tconst event = await this.table.findOne({ key })\n\t\tif (!event) throw new EquippedError('audit event not found', { key })\n\t\tawait this.#processEvent(event, true)\n\t}\n\n\tregister<P extends Pipe<any, any>, R>(name: string, def: EventDefinition<P, R>) {\n\t\tif (this.definitions[name]) throw new EquippedError(`${name} already has a registered handler`, {})\n\t\tthis.definitions[name] = def\n\t\tv.compile(def.pipe)\n\t\treturn async (payload: PipeInput<P>, context: Context)=> {\n\t\t\tconst event = await this.#createEvent(name, payload, context)\n\t\t\treturn this.#processEvent<R>(event, false)\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cache/pipes.ts","/home/runner/work/equipped/equipped/dist/cjs/cache/pipes.cjs"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/cache/pipes.ts","/home/runner/work/equipped/equipped/dist/cjs/cache/pipes.cjs"],"names":[],"mappings":"AAAA,6GAAmC;AAE5B,MAAM,gBAAA,EAAkB,CAAA,EAAA,GAC9B,WAAA,CAAE,IAAA;AAAA,EACD,WAAA,CAAE,MAAA,CAAO;AAAA,IACR,IAAA,EAAM,WAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACf,IAAA,EAAM,WAAA,CAAE,QAAA,CAAS,WAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAA,IAC3B,QAAA,EAAU,WAAA,CAAE,QAAA,CAAS,WAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAA,IAC/B,QAAA,EAAU,WAAA,CAAE,QAAA,CAAS,WAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAA,IAC/B,GAAA,EAAK,WAAA,CAAE,QAAA,CAAS,WAAA,CAAE,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC3B,OAAA,EAAS,WAAA,CAAE,QAAA,CAAS,WAAA,CAAE,OAAA,CAAQ,CAAC;AAAA,EAChC,CAAC,CAAA;AAAA,EACD,EAAE,KAAA,EAAO,cAAA,EAAgB,MAAA,EAAQ,cAAc;AAChD,CAAA;ACDD;AACE;AACF,0CAAC","file":"/home/runner/work/equipped/equipped/dist/cjs/cache/pipes.cjs","sourcesContent":["import { v, type PipeOutput } from 'valleyed'\n\nexport const redisConfigPipe = () =>\n\tv.meta(\n\t\tv.object({\n\t\t\thost: v.string(),\n\t\t\tport: v.optional(v.number()),\n\t\t\tpassword: v.optional(v.string()),\n\t\t\tusername: v.optional(v.string()),\n\t\t\ttls: v.optional(v.boolean()),\n\t\t\tcluster: v.optional(v.boolean()),\n\t\t}),\n\t\t{ title: 'Redis Config', $refId: 'RedisConfig' },\n\t)\n\nexport type RedisConfig = PipeOutput<ReturnType<typeof redisConfigPipe>>\n",null]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');const
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');const e=()=>_valleyed.v.meta(_valleyed.v.object({host:_valleyed.v.string(),port:_valleyed.v.optional(_valleyed.v.number()),password:_valleyed.v.optional(_valleyed.v.string()),username:_valleyed.v.optional(_valleyed.v.string()),tls:_valleyed.v.optional(_valleyed.v.boolean()),cluster:_valleyed.v.optional(_valleyed.v.boolean())}),{title:"Redis Config",$refId:"RedisConfig"});exports.redisConfigPipe = e;
|
|
2
2
|
//# sourceMappingURL=pipes.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cache/pipes.ts"],"names":["redisConfigPipe","v"],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/cache/pipes.ts"],"names":["redisConfigPipe","v"],"mappings":"AAAA,6GAAmC,MAEtBA,CAAAA,CAAkB,CAAA,CAAA,EAC9BC,WAAAA,CAAE,IAAA,CACDA,WAAAA,CAAE,MAAA,CAAO,CACR,IAAA,CAAMA,WAAAA,CAAE,MAAA,CAAO,CAAA,CACf,IAAA,CAAMA,WAAAA,CAAE,QAAA,CAASA,WAAAA,CAAE,MAAA,CAAO,CAAC,CAAA,CAC3B,QAAA,CAAUA,WAAAA,CAAE,QAAA,CAASA,WAAAA,CAAE,MAAA,CAAO,CAAC,CAAA,CAC/B,QAAA,CAAUA,WAAAA,CAAE,QAAA,CAASA,WAAAA,CAAE,MAAA,CAAO,CAAC,CAAA,CAC/B,GAAA,CAAKA,WAAAA,CAAE,QAAA,CAASA,WAAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAC3B,OAAA,CAASA,WAAAA,CAAE,QAAA,CAASA,WAAAA,CAAE,OAAA,CAAQ,CAAC,CAChC,CAAC,CAAA,CACD,CAAE,KAAA,CAAO,cAAA,CAAgB,MAAA,CAAQ,aAAc,CAChD,CAAA,CAAA,4BAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/cache/pipes.min.cjs","sourcesContent":["import { v, type PipeOutput } from 'valleyed'\n\nexport const redisConfigPipe = () =>\n\tv.meta(\n\t\tv.object({\n\t\t\thost: v.string(),\n\t\t\tport: v.optional(v.number()),\n\t\t\tpassword: v.optional(v.string()),\n\t\t\tusername: v.optional(v.string()),\n\t\t\ttls: v.optional(v.boolean()),\n\t\t\tcluster: v.optional(v.boolean()),\n\t\t}),\n\t\t{ title: 'Redis Config', $refId: 'RedisConfig' },\n\t)\n\nexport type RedisConfig = PipeOutput<ReturnType<typeof redisConfigPipe>>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cache/types/redis.ts","/home/runner/work/equipped/equipped/dist/cjs/cache/types/redis.cjs"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/cache/types/redis.ts","/home/runner/work/equipped/equipped/dist/cjs/cache/types/redis.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/cache/types/redis.cjs","sourcesContent":["import { Cluster, Redis, type RedisOptions } from 'ioredis'\n\nimport { EquippedError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { Cache } from '../base'\nimport { type RedisConfig } from '../pipes'\n\nexport class RedisCache extends Cache {\n\tclient: Redis | Cluster\n\n\tconstructor(settings: RedisConfig, extraConfig?: Partial<RedisOptions>) {\n\t\tsuper()\n\t\tconst node = {\n\t\t\t...(settings.host ? { host: settings.host } : {}),\n\t\t\t...(settings.port ? { port: settings.port } : {}),\n\t\t}\n\t\tconst common = {\n\t\t\t...extraConfig,\n\t\t\t...(settings.password ? { password: settings.password } : {}),\n\t\t\t...(settings.username ? { username: settings.username } : {}),\n\t\t\t...(settings.tls ? { tls: {} } : {}),\n\t\t\tlazyConnect: true,\n\t\t}\n\t\tthis.client = settings.cluster\n\t\t\t? new Cluster([node], {\n\t\t\t\t\t...extraConfig,\n\t\t\t\t\tredisOptions: common,\n\t\t\t\t\tlazyConnect: true,\n\t\t\t\t})\n\t\t\t: new Redis({ ...common, ...node })\n\t\tthis.client.on('error', async (error) => {\n\t\t\tInstance.crash(new EquippedError(`Redis failed with error`, {}, error))\n\t\t})\n\t\tif (!extraConfig) Instance.on('start', async () => this.client.connect(), 1)\n\t\tInstance.on('close', async () => this.client.quit(), 1)\n\t}\n\n\tprivate getScopedKey(key: string): string {\n\t\treturn Instance.get().getScopedName(key, ':')\n\t}\n\n\tasync delete(key: string) {\n\t\tawait this.client.del(this.getScopedKey(key))\n\t}\n\n\tasync get(key: string) {\n\t\treturn await this.client.get(this.getScopedKey(key))\n\t}\n\n\tasync set(key: string, data: string, ttlInSecs?: number) {\n\t\tif (ttlInSecs) await this.client.setex(this.getScopedKey(key), ttlInSecs, data)\n\t\telse this.client.set(this.getScopedKey(key), data)\n\t}\n\n\tasync getOrSet<T>(key: string, fn: () => Promise<T>, ttlInSecs?: number) {\n\t\tconst cached = await this.get(this.getScopedKey(key))\n\t\tif (cached) return JSON.parse(cached)\n\n\t\tconst result = await fn()\n\t\tawait this.set(this.getScopedKey(key), JSON.stringify(result), ttlInSecs)\n\t}\n}\n",null]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _ioredis = require('ioredis');var _indexmincjs = require('../../errors/index.min.cjs');var _indexmincjs3 = require('../../instance/index.min.cjs');var _basemincjs = require('../base.min.cjs');class
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _ioredis = require('ioredis');var _indexmincjs = require('../../errors/index.min.cjs');var _indexmincjs3 = require('../../instance/index.min.cjs');var _basemincjs = require('../base.min.cjs');require('../pipes');class w extends _basemincjs.Cache{constructor(e,t){super();const s={...e.host?{host:e.host}:{},...e.port?{port:e.port}:{}},r={...t,...e.password?{password:e.password}:{},...e.username?{username:e.username}:{},...e.tls?{tls:{}}:{},lazyConnect:!0};this.client=e.cluster?new (0, _ioredis.Cluster)([s],{...t,redisOptions:r,lazyConnect:!0}):new (0, _ioredis.Redis)({...r,...s}),this.client.on("error",async o=>{_indexmincjs3.Instance.crash(new (0, _indexmincjs.EquippedError)("Redis failed with error",{},o))}),t||_indexmincjs3.Instance.on("start",async()=>this.client.connect(),1),_indexmincjs3.Instance.on("close",async()=>this.client.quit(),1)}getScopedKey(e){return _indexmincjs3.Instance.get().getScopedName(e,":")}async delete(e){await this.client.del(this.getScopedKey(e))}async get(e){return await this.client.get(this.getScopedKey(e))}async set(e,t,s){s?await this.client.setex(this.getScopedKey(e),s,t):this.client.set(this.getScopedKey(e),t)}async getOrSet(e,t,s){const r=await this.get(this.getScopedKey(e));if(r)return JSON.parse(r);const o=await t();await this.set(this.getScopedKey(e),JSON.stringify(o),s)}}exports.RedisCache = w;
|
|
2
2
|
//# sourceMappingURL=redis.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cache/types/redis.ts"],"names":["settings","node","common","extraConfig","Redis","error","Instance","key","data","ttlInSecs","fn"],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/cache/types/redis.ts"],"names":["settings","node","common","extraConfig","Redis","error","Instance","key","data","ttlInSecs","fn"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/cache/types/redis.min.cjs","sourcesContent":["import { Cluster, Redis, type RedisOptions } from 'ioredis'\n\nimport { EquippedError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { Cache } from '../base'\nimport { type RedisConfig } from '../pipes'\n\nexport class RedisCache extends Cache {\n\tclient: Redis | Cluster\n\n\tconstructor(settings: RedisConfig, extraConfig?: Partial<RedisOptions>) {\n\t\tsuper()\n\t\tconst node = {\n\t\t\t...(settings.host ? { host: settings.host } : {}),\n\t\t\t...(settings.port ? { port: settings.port } : {}),\n\t\t}\n\t\tconst common = {\n\t\t\t...extraConfig,\n\t\t\t...(settings.password ? { password: settings.password } : {}),\n\t\t\t...(settings.username ? { username: settings.username } : {}),\n\t\t\t...(settings.tls ? { tls: {} } : {}),\n\t\t\tlazyConnect: true,\n\t\t}\n\t\tthis.client = settings.cluster\n\t\t\t? new Cluster([node], {\n\t\t\t\t\t...extraConfig,\n\t\t\t\t\tredisOptions: common,\n\t\t\t\t\tlazyConnect: true,\n\t\t\t\t})\n\t\t\t: new Redis({ ...common, ...node })\n\t\tthis.client.on('error', async (error) => {\n\t\t\tInstance.crash(new EquippedError(`Redis failed with error`, {}, error))\n\t\t})\n\t\tif (!extraConfig) Instance.on('start', async () => this.client.connect(), 1)\n\t\tInstance.on('close', async () => this.client.quit(), 1)\n\t}\n\n\tprivate getScopedKey(key: string): string {\n\t\treturn Instance.get().getScopedName(key, ':')\n\t}\n\n\tasync delete(key: string) {\n\t\tawait this.client.del(this.getScopedKey(key))\n\t}\n\n\tasync get(key: string) {\n\t\treturn await this.client.get(this.getScopedKey(key))\n\t}\n\n\tasync set(key: string, data: string, ttlInSecs?: number) {\n\t\tif (ttlInSecs) await this.client.setex(this.getScopedKey(key), ttlInSecs, data)\n\t\telse this.client.set(this.getScopedKey(key), data)\n\t}\n\n\tasync getOrSet<T>(key: string, fn: () => Promise<T>, ttlInSecs?: number) {\n\t\tconst cached = await this.get(this.getScopedKey(key))\n\t\tif (cached) return JSON.parse(cached)\n\n\t\tconst result = await fn()\n\t\tawait this.set(this.getScopedKey(key), JSON.stringify(result), ttlInSecs)\n\t}\n}\n"]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);
|
|
2
|
+
var _corecjs = require('./core.cjs'); var core = _interopRequireWildcard(_corecjs);
|
|
3
|
+
require('./types.cjs');
|
|
2
4
|
var _indexcjs = require('../../errors/index.cjs');
|
|
3
5
|
const TopicPrefix = "db-changes";
|
|
4
6
|
class DbChange {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/dbs/base/changes.ts","/home/runner/work/equipped/equipped/dist/cjs/dbs/base/changes.cjs"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/dbs/base/changes.ts","/home/runner/work/equipped/equipped/dist/cjs/dbs/base/changes.cjs"],"names":[],"mappings":"AAAA,+mCAAkB;AAElB,mFAAsB;AACtB,uBAAoC;AACpC,kDAA8B;AAEvB,MAAM,YAAA,EAAc,YAAA;AAEpB,MAAe,SAA4E;AAAA,EACjG,WAAA,CACW,MAAA,EACA,SAAA,EACA,MAAA,EACT;AAHS,IAAA,IAAA,CAAA,OAAA,EAAA,MAAA;AACA,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,OAAA,EAAA,MAAA;AAAA,EACR;AAAA,EAEH,MAAgB,kBAAA,CAAmB,GAAA,EAAa,IAAA,EAA8B;AAC7E,IAAA,MAAM,SAAA,EAAW,eAAA,CAAM,MAAA,CAAO,EAAE,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,YAAY,CAAC,CAAA;AAClE,IAAA,OAAO,MAAM,QAAA,CACX,GAAA,CAAI,CAAA,YAAA,EAAe,GAAG,CAAA,OAAA,CAAA,EAAW;AAAA,MACjC,cAAA,EAAgB,WAAA;AAAA,MAChB,uBAAA,EAAyB,OAAA;AAAA,MACzB,2CAAA,EAA6C,CAAA,EAAA,CAAA;AAAA,MAC7C,mCAAA,EAAqC,IAAA;AAAA,MACrC,eAAA,EAAiB,6CAAA;AAAA,MACjB,8BAAA,EAAgC,OAAA;AAAA,MAChC,iBAAA,EAAmB,6CAAA;AAAA,MACnB,gCAAA,EAAkC,OAAA;AAAA,MAClC,GAAG;AAAA,IACJ,CAAC,CAAA,CACA,IAAA,CAAK,MAAA,CAAA,EAAA,GAAY;AACjB,MAAA,MAAM,OAAA,EAAS,MAAM,QAAA,CAAS,GAAA,CAAI,CAAA,YAAA,EAAe,GAAG,CAAA,OAAA,CAAS,CAAA;AAC7D,MAAA,wCAAO,MAAA,mBAAO,IAAA,qBAAK,GAAG,CAAA,6BAAG,MAAA,6BAAQ,QAAA,0BAAA,CAAW,GAAG,GAAA,UAAK,OAAA;AAAA,IACrD,CAAC,CAAA,CACA,KAAA,CAAM,CAAC,GAAA,EAAA,GAAQ;AACf,MAAA,MAAM,IAAI,4BAAA,CAAc,CAAA,2BAAA,CAAA,EAA+B,EAAE,IAAI,CAAA,EAAG,GAAG,CAAA;AAAA,IACpE,CAAC,CAAA;AAAA,EACH;AACD;ACNA;AACE;AACA;AACF,+DAAC","file":"/home/runner/work/equipped/equipped/dist/cjs/dbs/base/changes.cjs","sourcesContent":["import axios from 'axios'\n\nimport * as core from './core'\nimport { type DbChangeConfig } from './types'\nimport { EquippedError } from '../../errors'\n\nexport const TopicPrefix = 'db-changes'\n\nexport abstract class DbChange<Model extends core.Model<core.IdType>, Entity extends core.Entity> {\n\tconstructor(\n\t\tprotected config: DbChangeConfig,\n\t\tprotected callbacks: core.DbChangeCallbacks<Model, Entity>,\n\t\tprotected mapper: (model: Model) => Entity,\n\t) {}\n\n\tprotected async configureConnector(key: string, data: Record<string, string>) {\n\t\tconst instance = axios.create({ baseURL: this.config.debeziumUrl })\n\t\treturn await instance\n\t\t\t.put(`/connectors/${key}/config`, {\n\t\t\t\t'topic.prefix': TopicPrefix,\n\t\t\t\t'topic.creation.enable': 'false',\n\t\t\t\t'topic.creation.default.replication.factor': `-1`,\n\t\t\t\t'topic.creation.default.partitions': '-1',\n\t\t\t\t'key.converter': 'org.apache.kafka.connect.json.JsonConverter',\n\t\t\t\t'key.converter.schemas.enable': 'false',\n\t\t\t\t'value.converter': 'org.apache.kafka.connect.json.JsonConverter',\n\t\t\t\t'value.converter.schemas.enable': 'false',\n\t\t\t\t...data,\n\t\t\t})\n\t\t\t.then(async () => {\n\t\t\t\tconst topics = await instance.get(`/connectors/${key}/topics`)\n\t\t\t\treturn topics.data[key]?.topics?.includes?.(key) ?? false\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthrow new EquippedError(`Failed to configure watcher`, { key }, err)\n\t\t\t})\n\t}\n}\n",null]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);var _indexmincjs = require('../../errors/index.min.cjs');const a="db-changes";class
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);require('./core');require('./types');var _indexmincjs = require('../../errors/index.min.cjs');const a="db-changes";class d{constructor(e,o,t){this.config=e;this.callbacks=o;this.mapper=t}async configureConnector(e,o){const t=_axios2.default.create({baseURL:this.config.debeziumUrl});return await t.put(`/connectors/${e}/config`,{"topic.prefix":a,"topic.creation.enable":"false","topic.creation.default.replication.factor":"-1","topic.creation.default.partitions":"-1","key.converter":"org.apache.kafka.connect.json.JsonConverter","key.converter.schemas.enable":"false","value.converter":"org.apache.kafka.connect.json.JsonConverter","value.converter.schemas.enable":"false",...o}).then(async()=>await _asyncNullishCoalesce(await _asyncOptionalChain([(await t.get(`/connectors/${e}/topics`)), 'access', async _ => _.data, 'access', async _2 => _2[e], 'optionalAccess', async _3 => _3.topics, 'optionalAccess', async _4 => _4.includes, 'optionalCall', async _5 => _5(e)]), async () => (!1))).catch(c=>{throw new (0, _indexmincjs.EquippedError)("Failed to configure watcher",{key:e},c)})}}exports.DbChange = d; exports.TopicPrefix = a;
|
|
2
2
|
//# sourceMappingURL=changes.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/dbs/base/changes.ts"],"names":["config","callbacks","mapper","axios","instance","key","TopicPrefix","err","EquippedError"],"mappings":"AAAA,q4BAAkB,
|
|
1
|
+
{"version":3,"sources":["../../../../src/dbs/base/changes.ts"],"names":["config","callbacks","mapper","axios","instance","key","TopicPrefix","err","EquippedError"],"mappings":"AAAA,q4BAAkB,kBAEI,mBACc,yDAGT,MAEpB,CAAA,CAAA,YACN,CAAA,MACWA,CACAC,CAAAA,WADA,CAAA,CAAA,CAAA,CAAA,CAAAD,CAAAA,CACA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAAC,IACA,CAAA,SAAAC,CACR,CAEH,CAAA,IAAA,CAAgB,MAAA,CAAA,CAAA,CAAA,MAAA,kBACEC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,MAAS,CAAA,CAAA,eAAA,CAAA,MAAc,CAAA,CAAA,OAAO,CAAA,IAAA,CAAA,MACrD,CAAA,WAAO,CAAMC,CAAAA,CACX,OAAI,MAAA,CAAA,CAAA,GAAA,CAAeC,CAAG,YACtB,EAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAgBC,cAChB,CAAA,CAAA,CAAA,uBACA,CAAA,OAAA,CAAA,2CACA,CAAA,IAAA,CAAA,mCACA,CAAA,IAAA,CAAA,eAAiB,CAAA,6CACjB,CAAA,8BACA,CAAA,OAAA,CAAA,iBAAmB,CAAA,6CACnB,CAAA,gCAEA,CACA,OAAK,CAAA,GAAA,CAAA,CAAA,CAAA,CACU,IAAA,CAAA,KAAe,CAAA,CAAI,yDAAA,CAAA,MAAA,CAAA,CAAA,GAAA,CAAeD,CAAG,YACtC,EAAA,CAAA,CAAA,OAAW,CAAA,CAAA,CAAA,yBAAA,IAAQ,2BAAA,CAAA,CAAA,mCAAA,MAAc,mCAAK,QAEpD,gCAAOE,CAAAA,CAAAA,GAAQ,eACf,CAAA,GAAA,CAAA,CAAA,KAAUC,CAAAA,CAAc,EAAA,CAAA,MAAA,IAAA,+BAAA,CAAA,6BAG5B,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,8CAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/dbs/base/changes.min.cjs","sourcesContent":["import axios from 'axios'\n\nimport * as core from './core'\nimport { type DbChangeConfig } from './types'\nimport { EquippedError } from '../../errors'\n\nexport const TopicPrefix = 'db-changes'\n\nexport abstract class DbChange<Model extends core.Model<core.IdType>, Entity extends core.Entity> {\n\tconstructor(\n\t\tprotected config: DbChangeConfig,\n\t\tprotected callbacks: core.DbChangeCallbacks<Model, Entity>,\n\t\tprotected mapper: (model: Model) => Entity,\n\t) {}\n\n\tprotected async configureConnector(key: string, data: Record<string, string>) {\n\t\tconst instance = axios.create({ baseURL: this.config.debeziumUrl })\n\t\treturn await instance\n\t\t\t.put(`/connectors/${key}/config`, {\n\t\t\t\t'topic.prefix': TopicPrefix,\n\t\t\t\t'topic.creation.enable': 'false',\n\t\t\t\t'topic.creation.default.replication.factor': `-1`,\n\t\t\t\t'topic.creation.default.partitions': '-1',\n\t\t\t\t'key.converter': 'org.apache.kafka.connect.json.JsonConverter',\n\t\t\t\t'key.converter.schemas.enable': 'false',\n\t\t\t\t'value.converter': 'org.apache.kafka.connect.json.JsonConverter',\n\t\t\t\t'value.converter.schemas.enable': 'false',\n\t\t\t\t...data,\n\t\t\t})\n\t\t\t.then(async () => {\n\t\t\t\tconst topics = await instance.get(`/connectors/${key}/topics`)\n\t\t\t\treturn topics.data[key]?.topics?.includes?.(key) ?? false\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthrow new EquippedError(`Failed to configure watcher`, { key }, err)\n\t\t\t})\n\t}\n}\n"]}
|
package/dist/cjs/dbs/base/db.cjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }var _corecjs = require('./core.cjs'); var core = _interopRequireWildcard(_corecjs);
|
|
2
|
+
var _indexcjs = require('../../instance/index.cjs');
|
|
2
3
|
class Db {
|
|
3
4
|
constructor(config) {
|
|
4
5
|
this.config = config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/dbs/base/db.ts","/home/runner/work/equipped/equipped/dist/cjs/dbs/base/db.cjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/dbs/base/db.ts","/home/runner/work/equipped/equipped/dist/cjs/dbs/base/db.cjs"],"names":[],"mappings":"AAAA,8aAAsB;AAEtB,oDAAyB;AAIlB,MAAe,GAA8B;AAAA,EACnD,WAAA,CAAsB,MAAA,EAAkB;AAAlB,IAAA,IAAA,CAAA,OAAA,EAAA,MAAA;AAAA,EAAmB;AAAA,EAE/B,WAAA,CAAY,EAAA,EAAY;AACjC,IAAA,OAAO,kBAAA,CAAS,GAAA,CAAI,CAAA,CAAE,aAAA,CAAc,EAAE,CAAA,CAAE,UAAA,CAAW,GAAA,EAAK,GAAG,CAAA;AAAA,EAC5D;AAOD;ACRA;AACE;AACF,gBAAC","file":"/home/runner/work/equipped/equipped/dist/cjs/dbs/base/db.cjs","sourcesContent":["import * as core from './core'\nimport type { DbConfig } from './types'\nimport { Instance } from '../../instance'\n\nexport type TableOptions = { skipAudit?: boolean }\n\nexport abstract class Db<IdKey extends core.IdType> {\n\tconstructor(protected config: DbConfig) {}\n\n\tprotected getScopedDb(db: string) {\n\t\treturn Instance.get().getScopedName(db).replaceAll('.', '-')\n\t}\n\n\tabstract use<Model extends core.Model<IdKey>, Entity extends core.Entity>(\n\t\tconfig: core.Config<Model, Entity>,\n\t): core.Table<IdKey, Model, Entity>\n\n\tabstract session<T>(callback: () => Promise<T>): Promise<T>\n}\n",null]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _indexmincjs = require('../../instance/index.min.cjs');class
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./core');var _indexmincjs = require('../../instance/index.min.cjs');class s{constructor(e){this.config=e}getScopedDb(e){return _indexmincjs.Instance.get().getScopedName(e).replaceAll(".","-")}}exports.Db = s;
|
|
2
2
|
//# sourceMappingURL=db.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/dbs/base/db.ts"],"names":["config","db"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/dbs/base/db.ts"],"names":["config","db"],"mappings":"AAAA,2FAAsB,2DAOrB,MAAsBA,CAAkB,CAAlB,WAAA,CAAAA,CAAmB,CAE/B,CAAA,IAAA,CAAA,MAAYC,CAAAA,CAAY,CACjC,WAAgB,CAAA,CAAI,CAAA,CAAE,OAAA,qBAAA,CAAA,GAAA,CAAA,CAAcA,CAAE,aAAa,CAAA,CAAA,CAAA,CAAK,UAQ1D,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,eAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/dbs/base/db.min.cjs","sourcesContent":["import * as core from './core'\nimport type { DbConfig } from './types'\nimport { Instance } from '../../instance'\n\nexport type TableOptions = { skipAudit?: boolean }\n\nexport abstract class Db<IdKey extends core.IdType> {\n\tconstructor(protected config: DbConfig) {}\n\n\tprotected getScopedDb(db: string) {\n\t\treturn Instance.get().getScopedName(db).replaceAll('.', '-')\n\t}\n\n\tabstract use<Model extends core.Model<IdKey>, Entity extends core.Entity>(\n\t\tconfig: core.Config<Model, Entity>,\n\t): core.Table<IdKey, Model, Entity>\n\n\tabstract session<T>(callback: () => Promise<T>): Promise<T>\n}\n"]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict"
|
|
1
|
+
"use strict";var _indexcjs = require('../../events/index.cjs');
|
|
2
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["../../../../src/dbs/base/types.ts"],"names":[],"mappings":"AAAA,+DAA8B","file":"/home/runner/work/equipped/equipped/dist/cjs/dbs/base/types.cjs","sourcesContent":["import { KafkaEventBus } from '../../events'\n\nexport type DbChangeConfig = {\n\teventBus: KafkaEventBus\n\tdebeziumUrl: string\n}\n\nexport type DbConfig = {\n\tchanges?: DbChangeConfig\n}\n"]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict"
|
|
1
|
+
"use strict";require('../../events');
|
|
2
|
+
//# sourceMappingURL=types.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["../../../../src/dbs/base/types.ts"],"names":[],"mappings":"AAAA,qCAA8B","file":"/home/runner/work/equipped/equipped/dist/cjs/dbs/base/types.min.cjs","sourcesContent":["import { KafkaEventBus } from '../../events'\n\nexport type DbChangeConfig = {\n\teventBus: KafkaEventBus\n\tdebeziumUrl: string\n}\n\nexport type DbConfig = {\n\tchanges?: DbChangeConfig\n}\n"]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _mongodb = require('mongodb');
|
|
2
|
+
var _valleyed = require('valleyed');
|
|
2
3
|
var _indexcjs = require('../../errors/index.cjs');
|
|
3
4
|
var _indexcjs3 = require('../../instance/index.cjs');
|
|
4
5
|
var _indexcjs5 = require('../../utilities/index.cjs');
|
|
5
6
|
var _changescjs = require('../base/changes.cjs');
|
|
7
|
+
var _corecjs = require('../base/core.cjs'); var core = _interopRequireWildcard(_corecjs);
|
|
6
8
|
class MongoDbChange extends _changescjs.DbChange {
|
|
7
9
|
#started = false;
|
|
8
10
|
constructor(config, change, collection, callbacks, mapper) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/dbs/mongo/changes.ts","/home/runner/work/equipped/equipped/dist/cjs/dbs/mongo/changes.cjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/dbs/mongo/changes.ts","/home/runner/work/equipped/equipped/dist/cjs/dbs/mongo/changes.cjs"],"names":[],"mappings":"AAAA,q+BAAwC;AACxC,oCAAuB;AAEvB,kDAA8B;AAC9B,qDAAyB;AACzB,sDAAsB;AACtB,iDAAsC;AACtC,yFAAsB;AAIf,MAAM,cAAA,QAA6F,qBAAwB;AAAA,EACjI,CAAA,QAAA,EAAW,KAAA;AAAA,EAEX,WAAA,CACC,MAAA,EACA,MAAA,EACA,UAAA,EACA,SAAA,EACA,MAAA,EACC;AACD,IAAA,KAAA,CAAM,MAAA,EAAQ,SAAA,EAAW,MAAM,CAAA;AAE/B,IAAA,MAAM,QAAA,EAAU,CAAC,IAAA,EAAA,GAChB,IAAA,CAAK,IAAA,EACF;AAAA,MACA,GAAG,IAAA;AAAA,MACH,GAAA,mBAAK,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,UAAK,IAAA,CAAK;AAAA,IAC/B,EAAA,EACC,KAAA,CAAA;AAEJ,IAAA,MAAM,OAAA,EAAS,UAAA,CAAW,MAAA;AAC1B,IAAA,MAAM,QAAA,EAAU,UAAA,CAAW,cAAA;AAC3B,IAAA,MAAM,UAAA,EAAY,CAAA,EAAA;AACD,IAAA;AAEF,IAAA;AACG,IAAA;AAEF,IAAA;AACC,MAAA;AAEH,MAAA;AACI,MAAA;AAEL,MAAA;AACD,MAAA;AACC,MAAA;AAED,MAAA;AACC,QAAA;AACF,UAAA;AACI,UAAA;AACZ,QAAA;AACc,MAAA;AACJ,QAAA;AACG,UAAA;AACD,UAAA;AACH,UAAA;AACT,QAAA;AACc,MAAA;AACJ,QAAA;AACG,UAAA;AACN,UAAA;AACP,QAAA;AACF,IAAA;AAEQ,IAAA;AACR,MAAA;AACY,MAAA;AACF,QAAA;AACJ,QAAA;AAEC,QAAA;AACO,UAAA;AACL,YAAA;AACL,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AAEG,YAAA;AACE,YAAA;AACA,YAAA;AACG,YAAA;AACA,YAAA;AACV,UAAA;AACA,UAAA;AACA,UAAA;AACQ,QAAA;AACV,MAAA;AACA,MAAA;AACD,IAAA;AACD,EAAA;AACD;ACvBuB;AACA;AACA","file":"/home/runner/work/equipped/equipped/dist/cjs/dbs/mongo/changes.cjs","sourcesContent":["import { Collection, type Filter } from 'mongodb'\nimport { differ } from 'valleyed'\n\nimport { EquippedError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { retry } from '../../utilities'\nimport { DbChange, TopicPrefix } from '../base/changes'\nimport * as core from '../base/core'\nimport type { DbChangeConfig } from '../base/types'\nimport type { MongoDbConfig } from '../pipes'\n\nexport class MongoDbChange<Model extends core.Model<{ _id: string }>, Entity extends core.Entity> extends DbChange<Model, Entity> {\n\t#started = false\n\n\tconstructor(\n\t\tconfig: MongoDbConfig,\n\t\tchange: DbChangeConfig,\n\t\tcollection: Collection<Model>,\n\t\tcallbacks: core.DbChangeCallbacks<Model, Entity>,\n\t\tmapper: (model: Model) => Entity,\n\t) {\n\t\tsuper(change, callbacks, mapper)\n\n\t\tconst hydrate = (data: any) =>\n\t\t\tdata._id\n\t\t\t\t? {\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t_id: data._id['$oid'] ?? data._id,\n\t\t\t\t\t}\n\t\t\t\t: undefined\n\n\t\tconst dbName = collection.dbName\n\t\tconst colName = collection.collectionName\n\t\tconst dbColName = `${dbName}.${colName}`\n\t\tconst topic = `${TopicPrefix}.${dbColName}`\n\n\t\tconst TestId = '5f5f65717569707065645f5f' // __equipped__\n\t\tconst condition = { _id: TestId } as Filter<Model>\n\n\t\tchange.eventBus.createStream(topic as never, { skipScope: true }).subscribe(async (data: DbDocumentChange) => {\n\t\t\tconst op = data.op\n\n\t\t\tlet before = JSON.parse(data.before ?? 'null')\n\t\t\tlet after = JSON.parse(data.after ?? 'null')\n\n\t\t\tif (before) before = hydrate(before)\n\t\t\tif (after) after = hydrate(after)\n\t\t\tif (before?._id === TestId || after?._id === TestId) return\n\n\t\t\tif (op === 'c' && this.callbacks.created && after)\n\t\t\t\tawait this.callbacks.created({\n\t\t\t\t\tbefore: null,\n\t\t\t\t\tafter: this.mapper(after)!,\n\t\t\t\t})\n\t\t\telse if (op === 'u' && this.callbacks.updated && before && after)\n\t\t\t\tawait this.callbacks.updated({\n\t\t\t\t\tbefore: this.mapper(before)!,\n\t\t\t\t\tafter: this.mapper(after)!,\n\t\t\t\t\tchanges: differ.from(differ.diff(before, after)),\n\t\t\t\t})\n\t\t\telse if (op === 'd' && this.callbacks.deleted && before)\n\t\t\t\tawait this.callbacks.deleted({\n\t\t\t\t\tbefore: this.mapper(before)!,\n\t\t\t\t\tafter: null,\n\t\t\t\t})\n\t\t})\n\n\t\tInstance.on(\n\t\t\t'start',\n\t\t\tasync () => {\n\t\t\t\tif (this.#started) return\n\t\t\t\tthis.#started = true\n\n\t\t\t\tawait retry(\n\t\t\t\t\tasync () => {\n\t\t\t\t\t\tconst started = await this.configureConnector(topic, {\n\t\t\t\t\t\t\t'connector.class': 'io.debezium.connector.mongodb.MongoDbConnector',\n\t\t\t\t\t\t\t'capture.mode': 'change_streams_update_full_with_pre_image',\n\t\t\t\t\t\t\t'mongodb.connection.string': config.uri,\n\t\t\t\t\t\t\t'collection.include.list': dbColName,\n\t\t\t\t\t\t\t'snapshot.mode': 'always',\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (started) return { done: true, value: true }\n\t\t\t\t\t\tawait collection.findOneAndUpdate(condition, { $set: { colName } as any }, { upsert: true })\n\t\t\t\t\t\tawait collection.findOneAndDelete(condition)\n\t\t\t\t\t\tInstance.get().log.warn(`Waiting for db changes for ${dbColName} to start...`)\n\t\t\t\t\t\treturn { done: false }\n\t\t\t\t\t},\n\t\t\t\t\t6,\n\t\t\t\t\t30_000,\n\t\t\t\t).catch((err) => Instance.crash(new EquippedError(`Failed to start db changes`, { dbColName }, err)))\n\t\t\t},\n\t\t\t10,\n\t\t)\n\t}\n}\n\ntype DbDocumentChange = {\n\tbefore: string | null\n\tafter: string | null\n\top: 'c' | 'u' | 'd'\n}\n",null]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _valleyed = require('valleyed');var _indexmincjs = require('../../errors/index.min.cjs');var _indexmincjs3 = require('../../instance/index.min.cjs');var _indexmincjs5 = require('../../utilities/index.min.cjs');var _changesmincjs = require('../base/changes.min.cjs');class
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('mongodb');var _valleyed = require('valleyed');var _indexmincjs = require('../../errors/index.min.cjs');var _indexmincjs3 = require('../../instance/index.min.cjs');var _indexmincjs5 = require('../../utilities/index.min.cjs');var _changesmincjs = require('../base/changes.min.cjs');require('../base/core');class v extends _changesmincjs.DbChange{#e=!1;constructor(u,c,r,b,g){super(c,b,g);const l=e=>e._id?{...e,_id:_nullishCoalesce(e._id.$oid, () => (e._id))}:void 0,h=r.dbName,d=r.collectionName,n=`${h}.${d}`,f=`${_changesmincjs.TopicPrefix}.${n}`,i="5f5f65717569707065645f5f",p={_id:i};c.eventBus.createStream(f,{skipScope:!0}).subscribe(async e=>{const a=e.op;let t=JSON.parse(_nullishCoalesce(e.before, () => ("null"))),o=JSON.parse(_nullishCoalesce(e.after, () => ("null")));t&&(t=l(t)),o&&(o=l(o)),!(_optionalChain([t, 'optionalAccess', _2 => _2._id])===i||_optionalChain([o, 'optionalAccess', _3 => _3._id])===i)&&(a==="c"&&this.callbacks.created&&o?await this.callbacks.created({before:null,after:this.mapper(o)}):a==="u"&&this.callbacks.updated&&t&&o?await this.callbacks.updated({before:this.mapper(t),after:this.mapper(o),changes:_valleyed.differ.from(_valleyed.differ.diff(t,o))}):a==="d"&&this.callbacks.deleted&&t&&await this.callbacks.deleted({before:this.mapper(t),after:null}))}),_indexmincjs3.Instance.on("start",async()=>{this.#e||(this.#e=!0,await _indexmincjs5.retry.call(void 0, async()=>await this.configureConnector(f,{"connector.class":"io.debezium.connector.mongodb.MongoDbConnector","capture.mode":"change_streams_update_full_with_pre_image","mongodb.connection.string":u.uri,"collection.include.list":n,"snapshot.mode":"always"})?{done:!0,value:!0}:(await r.findOneAndUpdate(p,{$set:{colName:d}},{upsert:!0}),await r.findOneAndDelete(p),_indexmincjs3.Instance.get().log.warn(`Waiting for db changes for ${n} to start...`),{done:!1}),6,3e4).catch(e=>_indexmincjs3.Instance.crash(new (0, _indexmincjs.EquippedError)("Failed to start db changes",{dbColName:n},e))))},10)}}exports.MongoDbChange = v;
|
|
2
2
|
//# sourceMappingURL=changes.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/dbs/mongo/changes.ts"],"names":["change","data","dbName","colName","collection","dbColName","topic","TestId","condition"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/dbs/mongo/changes.ts"],"names":["change","data","dbName","colName","collection","dbColName","topic","TestId","condition"],"mappings":"AAAA,osBAAwC,oCACjB,yDAGd,4DACa,6DACgB,wDAQrC,wBAOOA,MAEN,EAAA,QAAiBC,uBAChBA,CAAAA,CAAK,CAAA,CAAA,CAAA,CACF,CACA,WACU,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWA,CAAAA,CAAK,KAE9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEEC,CAAAA,MAAoB,CAAA,CAAA,CAAA,EACpBC,CAAUC,CAAAA,GAAW,CAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAA,CAAA,CACrBC,GAAY,CAAA,IAAS,SAAIF,CAAO,CAAA,KAChCG,CAAQ,CAAA,KAAc,CAAA,CAAID,CAAS,CAAA,CAAA,CAEnCE,MAAS,CAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CACTC,EAAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/dbs/mongo/changes.min.cjs","sourcesContent":["import { Collection, type Filter } from 'mongodb'\nimport { differ } from 'valleyed'\n\nimport { EquippedError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { retry } from '../../utilities'\nimport { DbChange, TopicPrefix } from '../base/changes'\nimport * as core from '../base/core'\nimport type { DbChangeConfig } from '../base/types'\nimport type { MongoDbConfig } from '../pipes'\n\nexport class MongoDbChange<Model extends core.Model<{ _id: string }>, Entity extends core.Entity> extends DbChange<Model, Entity> {\n\t#started = false\n\n\tconstructor(\n\t\tconfig: MongoDbConfig,\n\t\tchange: DbChangeConfig,\n\t\tcollection: Collection<Model>,\n\t\tcallbacks: core.DbChangeCallbacks<Model, Entity>,\n\t\tmapper: (model: Model) => Entity,\n\t) {\n\t\tsuper(change, callbacks, mapper)\n\n\t\tconst hydrate = (data: any) =>\n\t\t\tdata._id\n\t\t\t\t? {\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t_id: data._id['$oid'] ?? data._id,\n\t\t\t\t\t}\n\t\t\t\t: undefined\n\n\t\tconst dbName = collection.dbName\n\t\tconst colName = collection.collectionName\n\t\tconst dbColName = `${dbName}.${colName}`\n\t\tconst topic = `${TopicPrefix}.${dbColName}`\n\n\t\tconst TestId = '5f5f65717569707065645f5f' // __equipped__\n\t\tconst condition = { _id: TestId } as Filter<Model>\n\n\t\tchange.eventBus.createStream(topic as never, { skipScope: true }).subscribe(async (data: DbDocumentChange) => {\n\t\t\tconst op = data.op\n\n\t\t\tlet before = JSON.parse(data.before ?? 'null')\n\t\t\tlet after = JSON.parse(data.after ?? 'null')\n\n\t\t\tif (before) before = hydrate(before)\n\t\t\tif (after) after = hydrate(after)\n\t\t\tif (before?._id === TestId || after?._id === TestId) return\n\n\t\t\tif (op === 'c' && this.callbacks.created && after)\n\t\t\t\tawait this.callbacks.created({\n\t\t\t\t\tbefore: null,\n\t\t\t\t\tafter: this.mapper(after)!,\n\t\t\t\t})\n\t\t\telse if (op === 'u' && this.callbacks.updated && before && after)\n\t\t\t\tawait this.callbacks.updated({\n\t\t\t\t\tbefore: this.mapper(before)!,\n\t\t\t\t\tafter: this.mapper(after)!,\n\t\t\t\t\tchanges: differ.from(differ.diff(before, after)),\n\t\t\t\t})\n\t\t\telse if (op === 'd' && this.callbacks.deleted && before)\n\t\t\t\tawait this.callbacks.deleted({\n\t\t\t\t\tbefore: this.mapper(before)!,\n\t\t\t\t\tafter: null,\n\t\t\t\t})\n\t\t})\n\n\t\tInstance.on(\n\t\t\t'start',\n\t\t\tasync () => {\n\t\t\t\tif (this.#started) return\n\t\t\t\tthis.#started = true\n\n\t\t\t\tawait retry(\n\t\t\t\t\tasync () => {\n\t\t\t\t\t\tconst started = await this.configureConnector(topic, {\n\t\t\t\t\t\t\t'connector.class': 'io.debezium.connector.mongodb.MongoDbConnector',\n\t\t\t\t\t\t\t'capture.mode': 'change_streams_update_full_with_pre_image',\n\t\t\t\t\t\t\t'mongodb.connection.string': config.uri,\n\t\t\t\t\t\t\t'collection.include.list': dbColName,\n\t\t\t\t\t\t\t'snapshot.mode': 'always',\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (started) return { done: true, value: true }\n\t\t\t\t\t\tawait collection.findOneAndUpdate(condition, { $set: { colName } as any }, { upsert: true })\n\t\t\t\t\t\tawait collection.findOneAndDelete(condition)\n\t\t\t\t\t\tInstance.get().log.warn(`Waiting for db changes for ${dbColName} to start...`)\n\t\t\t\t\t\treturn { done: false }\n\t\t\t\t\t},\n\t\t\t\t\t6,\n\t\t\t\t\t30_000,\n\t\t\t\t).catch((err) => Instance.crash(new EquippedError(`Failed to start db changes`, { dbColName }, err)))\n\t\t\t},\n\t\t\t10,\n\t\t)\n\t}\n}\n\ntype DbDocumentChange = {\n\tbefore: string | null\n\tafter: string | null\n\top: 'c' | 'u' | 'd'\n}\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _nodeasync_hooks = require('node:async_hooks');
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _nodeasync_hooks = require('node:async_hooks');
|
|
2
2
|
var _mongodb = require('mongodb');
|
|
3
3
|
var _indexcjs = require('../../errors/index.cjs');
|
|
4
4
|
var _indexcjs3 = require('../../instance/index.cjs');
|
|
5
|
+
var _corecjs = require('../base/core.cjs'); var core = _interopRequireWildcard(_corecjs);
|
|
5
6
|
var _dbcjs = require('../base/db.cjs');
|
|
6
7
|
var _changescjs = require('./changes.cjs');
|
|
7
8
|
var _querycjs = require('./query.cjs');
|