@rpcbase/db 0.17.0 → 0.19.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.
@@ -0,0 +1,18 @@
1
+ import { LoadModelCtx, loadModel, loadRbModel } from './loadModel';
2
+ import { ModelModules } from './registerModels';
3
+ import type * as frameworkSchemas from "./models";
4
+ type ExtractModelNamesFromSchemas<TModules> = {
5
+ [K in keyof TModules]-?: K extends `${infer Name}Schema` ? Name : never;
6
+ }[keyof TModules] & string;
7
+ type FrameworkModelName = ExtractModelNamesFromSchemas<typeof frameworkSchemas>;
8
+ type WithoutRbPrefix<TName extends string> = TName extends `RB${string}` ? never : TName;
9
+ export type TenantModelName<TModules extends ModelModules> = WithoutRbPrefix<ExtractModelNamesFromSchemas<TModules>> | WithoutRbPrefix<FrameworkModelName>;
10
+ export type RbModelName = ExtractModelNamesFromSchemas<typeof frameworkSchemas> extends infer Name ? Name extends string ? Name extends `RB${string}` ? Name : never : never : never;
11
+ export type ModelsClient<TModules extends ModelModules> = {
12
+ register: (modules: TModules) => void;
13
+ get: (modelName: TenantModelName<TModules>, ctx: LoadModelCtx) => ReturnType<typeof loadModel>;
14
+ getRb: (modelName: RbModelName, ctx: LoadModelCtx) => ReturnType<typeof loadRbModel>;
15
+ };
16
+ export declare const createModels: <TModules extends ModelModules>(modules: TModules) => ModelsClient<TModules>;
17
+ export {};
18
+ //# sourceMappingURL=createModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createModels.d.ts","sourceRoot":"","sources":["../src/createModels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,KAAK,gBAAgB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIpD,KAAK,4BAA4B,CAAC,QAAQ,IAAI;KAC3C,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,IAAI,QAAQ,GAAG,IAAI,GAAG,KAAK;CACxE,CAAC,MAAM,QAAQ,CAAC,GAAG,MAAM,CAAA;AAE1B,KAAK,kBAAkB,GAAG,4BAA4B,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/E,KAAK,eAAe,CAAC,KAAK,SAAS,MAAM,IAAI,KAAK,SAAS,KAAK,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,CAAA;AAExF,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,YAAY,IACrD,eAAe,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,GACvD,eAAe,CAAC,kBAAkB,CAAC,CAAA;AAEvC,MAAM,MAAM,WAAW,GAAG,4BAA4B,CAAC,OAAO,gBAAgB,CAAC,SAAS,MAAM,IAAI,GAC9F,IAAI,SAAS,MAAM,GACjB,IAAI,SAAS,KAAK,MAAM,EAAE,GACxB,IAAI,GACJ,KAAK,GACP,KAAK,GACP,KAAK,CAAA;AAET,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,YAAY,IAAI;IACxD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,YAAY,KAAK,UAAU,CAAC,OAAO,SAAS,CAAC,CAAA;IAC9F,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,KAAK,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;CACrF,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,QAAQ,SAAS,YAAY,EAAE,SAAS,QAAQ,KAAG,YAAY,CAAC,QAAQ,CAQpG,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from './models';
2
2
  export * from './schema';
3
+ export * from './createModels';
3
4
  export * from './loadModel';
4
- export * from './registerModels';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -31,10 +31,37 @@ const RBTenantSchema = new Schema({
31
31
  parent_tenant_id: { type: String },
32
32
  name: { type: String }
33
33
  }, { collection: "tenants" });
34
+ const RtsCounterSchema = new Schema(
35
+ {
36
+ _id: { type: String, required: true },
37
+ seq: { type: Number, required: true, default: 0 }
38
+ },
39
+ {
40
+ versionKey: false
41
+ }
42
+ );
43
+ const ttlSecondsRaw = process.env.RB_RTS_CHANGES_TTL_S ?? "";
44
+ const ttlSeconds = Number.isFinite(Number(ttlSecondsRaw)) ? Math.max(60, Math.floor(Number(ttlSecondsRaw))) : 60 * 60 * 24 * 30;
45
+ const RtsChangeSchema = new Schema(
46
+ {
47
+ seq: { type: Number, required: true },
48
+ modelName: { type: String, required: true, index: true },
49
+ op: { type: String, required: true, enum: ["delete", "reset_model"] },
50
+ docId: { type: String, required: false },
51
+ ts: { type: Date, required: true, default: Date.now }
52
+ },
53
+ {
54
+ versionKey: false
55
+ }
56
+ );
57
+ RtsChangeSchema.index({ seq: 1 }, { unique: true });
58
+ RtsChangeSchema.index({ ts: 1 }, { expireAfterSeconds: ttlSeconds });
34
59
  const frameworkSchemas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
35
60
  __proto__: null,
36
61
  RBTenantSchema,
37
62
  RBUserSchema,
63
+ RtsChangeSchema,
64
+ RtsCounterSchema,
38
65
  ZRBTenant,
39
66
  ZRBUser
40
67
  }, Symbol.toStringTag, { value: "Module" }));
@@ -751,7 +778,142 @@ function parseMixed(required = true, def) {
751
778
  required
752
779
  };
753
780
  }
781
+ const RTS_COUNTER_ID = "rts";
782
+ const EXCLUDED_MODEL_NAMES = /* @__PURE__ */ new Set(["RtsChange", "RtsCounter"]);
783
+ const maxDeleteIdsRaw = process.env.RB_RTS_DELETE_LOG_MAX_IDS ?? "";
784
+ const maxDeleteIds = Number.isFinite(Number(maxDeleteIdsRaw)) ? Math.max(1, Math.floor(Number(maxDeleteIdsRaw))) : 5e3;
785
+ const deleteMetaByQuery = /* @__PURE__ */ new WeakMap();
786
+ const hasToString = (value) => {
787
+ if (typeof value !== "object" || value === null) return false;
788
+ const maybe = value;
789
+ return typeof maybe.toString === "function";
790
+ };
791
+ const normalizeId = (id) => {
792
+ if (!id) return null;
793
+ if (typeof id === "string") return id;
794
+ if (hasToString(id)) return id.toString();
795
+ return null;
796
+ };
797
+ const getDbName = (db) => {
798
+ if (!db || typeof db !== "object") return "";
799
+ const maybe = db;
800
+ const raw = maybe.name ?? maybe.db?.databaseName;
801
+ return typeof raw === "string" ? raw : "";
802
+ };
803
+ const isUsersDb = (db) => getDbName(db).endsWith("-users-db");
804
+ const getRtsModels = (db) => {
805
+ const RtsCounter = db.models.RtsCounter ?? db.model("RtsCounter", RtsCounterSchema);
806
+ const RtsChange = db.models.RtsChange ?? db.model("RtsChange", RtsChangeSchema);
807
+ return { RtsCounter, RtsChange };
808
+ };
809
+ const allocateSeqRange = async (db, count) => {
810
+ const { RtsCounter } = getRtsModels(db);
811
+ const updated = await RtsCounter.findOneAndUpdate(
812
+ { _id: RTS_COUNTER_ID },
813
+ { $inc: { seq: count } },
814
+ { upsert: true, new: true, setDefaultsOnInsert: true, projection: { seq: 1 } }
815
+ ).lean();
816
+ const end = Number(updated?.seq ?? 0);
817
+ const start = end - count + 1;
818
+ return { start, end };
819
+ };
820
+ const insertChanges = async (db, changes) => {
821
+ if (!changes.length) return;
822
+ const { RtsChange } = getRtsModels(db);
823
+ const ts = /* @__PURE__ */ new Date();
824
+ await RtsChange.insertMany(changes.map((c) => ({
825
+ seq: c.seq,
826
+ modelName: c.modelName,
827
+ op: c.op,
828
+ docId: c.docId ?? void 0,
829
+ ts
830
+ })));
831
+ };
832
+ const recordDeleteChanges = async (db, modelName, ids) => {
833
+ const uniqueIds = Array.from(new Set(ids)).filter(Boolean);
834
+ if (!uniqueIds.length) return;
835
+ const { start } = await allocateSeqRange(db, uniqueIds.length);
836
+ await insertChanges(db, uniqueIds.map((docId, idx) => ({
837
+ seq: start + idx,
838
+ modelName,
839
+ op: "delete",
840
+ docId
841
+ })));
842
+ };
843
+ const recordResetModel = async (db, modelName) => {
844
+ const { start } = await allocateSeqRange(db, 1);
845
+ await insertChanges(db, [{ seq: start, modelName, op: "reset_model" }]);
846
+ };
847
+ const captureDeleteMeta = async (query, mode) => {
848
+ const modelName = String(query?.model?.modelName ?? "");
849
+ if (!modelName || modelName.startsWith("RB") || EXCLUDED_MODEL_NAMES.has(modelName)) return;
850
+ if (isUsersDb(query?.model?.db)) return;
851
+ const filter = typeof query.getFilter === "function" ? query.getFilter() : query.getQuery?.() ?? {};
852
+ const findQuery = query.model.find(filter, { _id: 1 }).lean();
853
+ if (mode === "one") {
854
+ findQuery.limit(1);
855
+ } else {
856
+ findQuery.limit(maxDeleteIds + 1);
857
+ }
858
+ const docs = await findQuery;
859
+ const ids = Array.isArray(docs) ? docs.map((d) => normalizeId(d?._id)).filter((id) => Boolean(id)) : [];
860
+ const reset = mode === "many" && ids.length > maxDeleteIds;
861
+ const trimmedIds = reset ? [] : ids;
862
+ const meta = {
863
+ modelName,
864
+ ids: trimmedIds,
865
+ reset
866
+ };
867
+ deleteMetaByQuery.set(query, meta);
868
+ };
869
+ const flushDeleteMeta = async (query) => {
870
+ const meta = deleteMetaByQuery.get(query);
871
+ deleteMetaByQuery.delete(query);
872
+ if (!meta) return;
873
+ const db = query?.model?.db;
874
+ if (!db) return;
875
+ try {
876
+ if (meta.reset) {
877
+ await recordResetModel(db, meta.modelName);
878
+ } else {
879
+ await recordDeleteChanges(db, meta.modelName, meta.ids);
880
+ }
881
+ } catch {
882
+ return;
883
+ }
884
+ };
885
+ const rtsChangeLogPlugin = (schema) => {
886
+ schema.pre("deleteOne", { query: true, document: false }, async function() {
887
+ await captureDeleteMeta(this, "one");
888
+ });
889
+ schema.pre("deleteMany", { query: true, document: false }, async function() {
890
+ await captureDeleteMeta(this, "many");
891
+ });
892
+ schema.post("deleteOne", { query: true, document: false }, async function() {
893
+ await flushDeleteMeta(this);
894
+ });
895
+ schema.post("deleteMany", { query: true, document: false }, async function() {
896
+ await flushDeleteMeta(this);
897
+ });
898
+ schema.post("findOneAndDelete", { query: true, document: false }, async function(doc) {
899
+ const modelName = String(this?.model?.modelName ?? "");
900
+ if (!modelName || modelName.startsWith("RB") || EXCLUDED_MODEL_NAMES.has(modelName)) return;
901
+ const db = this?.model?.db;
902
+ if (!db) return;
903
+ if (isUsersDb(db)) return;
904
+ const docId = normalizeId(doc?._id);
905
+ if (!docId) return;
906
+ try {
907
+ await recordDeleteChanges(db, modelName, [docId]);
908
+ } catch {
909
+ return;
910
+ }
911
+ });
912
+ };
913
+ const RTS_CHANGELOG_EXCLUDED_MODELS = /* @__PURE__ */ new Set(["RtsChange", "RtsCounter"]);
914
+ const rtsChangeLogApplied = /* @__PURE__ */ new WeakSet();
754
915
  let cachedModels = null;
916
+ const isRtsChangelogExcludedModelName = (name) => name.startsWith("RB") || RTS_CHANGELOG_EXCLUDED_MODELS.has(name);
755
917
  const assertSchema = (exportName, value) => {
756
918
  if (value instanceof mongoose.Schema) return value;
757
919
  throw new Error(
@@ -765,6 +927,12 @@ const assertSchema = (exportName, value) => {
765
927
  const buildAppModels = (modules) => Object.entries(modules).filter(([key]) => key.endsWith("Schema")).map(([key, schemaValue]) => {
766
928
  const schema = assertSchema(key, schemaValue);
767
929
  const name = key.replace(/Schema$/, "");
930
+ if (!isRtsChangelogExcludedModelName(name)) {
931
+ if (!rtsChangeLogApplied.has(schema)) {
932
+ schema.plugin(rtsChangeLogPlugin);
933
+ rtsChangeLogApplied.add(schema);
934
+ }
935
+ }
768
936
  return {
769
937
  name,
770
938
  model: mongoose.models[name] ?? mongoose.model(name, schema)
@@ -773,6 +941,12 @@ const buildAppModels = (modules) => Object.entries(modules).filter(([key]) => ke
773
941
  const buildFrameworkModels = () => Object.entries(frameworkSchemas).filter(([key]) => key.endsWith("Schema")).map(([key, schemaValue]) => {
774
942
  const schema = assertSchema(key, schemaValue);
775
943
  const name = key.replace(/Schema$/, "");
944
+ if (!isRtsChangelogExcludedModelName(name)) {
945
+ if (!rtsChangeLogApplied.has(schema)) {
946
+ schema.plugin(rtsChangeLogPlugin);
947
+ rtsChangeLogApplied.add(schema);
948
+ }
949
+ }
776
950
  return {
777
951
  name,
778
952
  model: mongoose.models[name] ?? mongoose.model(name, schema)
@@ -791,18 +965,22 @@ const registerModels = (modules) => {
791
965
  };
792
966
  const getRegisteredModels = () => {
793
967
  if (!cachedModels) {
794
- throw new Error("Models not registered. Call registerModels before using loadModel.");
968
+ throw new Error("Models not registered. Call createModels(...) once at startup (or import your models module) before using loadModel.");
795
969
  }
796
970
  return cachedModels;
797
971
  };
798
972
  const { APP_NAME, DB_PORT } = process.env;
799
973
  const connections = {};
800
- const loadModel = async (modelName, ctx) => {
801
- const models = getRegisteredModels();
802
- const tenantId = ctx.req.session?.user?.current_tenant_id || "00000000";
803
- assert(tenantId, "Tenant ID is missing from session");
804
- const userModelNames = ["User", "Tenant", "RBUser", "RBTenant"];
805
- const dbName = userModelNames.includes(modelName) ? `${APP_NAME}-users-db` : `${APP_NAME}-${tenantId}-db`;
974
+ const assertTenantModelName = (modelName) => {
975
+ assert(
976
+ !modelName.startsWith("RB"),
977
+ "Invalid tenant model name. RB* models are stored in the global users DB; use loadRbModel."
978
+ );
979
+ };
980
+ const assertRbModelName = (modelName) => {
981
+ assert(modelName.startsWith("RB"), "Invalid RB model name. Supported: RB*");
982
+ };
983
+ const ensureConnection = async (dbName) => {
806
984
  const connectionString = `mongodb://localhost:${DB_PORT}/${dbName}`;
807
985
  if (!connections[dbName]) {
808
986
  const connection = mongoose.createConnection(connectionString, {
@@ -822,25 +1000,51 @@ const loadModel = async (modelName, ctx) => {
822
1000
  });
823
1001
  }
824
1002
  }
825
- const modelConnection = connections[dbName];
1003
+ return connections[dbName];
1004
+ };
1005
+ const loadModelFromDb = async (modelName, dbName) => {
1006
+ const models = getRegisteredModels();
826
1007
  const model = models[modelName];
827
1008
  assert(model, `Model ${modelName} not registered. Available models: ${Object.keys(models).join(", ")}`);
1009
+ const modelConnection = await ensureConnection(dbName);
828
1010
  if (!modelConnection.models[modelName]) {
829
1011
  modelConnection.model(modelName, model.schema);
830
1012
  }
831
1013
  return modelConnection.models[modelName];
832
1014
  };
1015
+ const loadModel = async (modelName, ctx) => {
1016
+ assertTenantModelName(modelName);
1017
+ const tenantId = ctx.req.session?.user?.current_tenant_id;
1018
+ assert(typeof tenantId === "string" && tenantId.trim(), "Tenant ID is missing from session");
1019
+ const dbName = `${APP_NAME}-${tenantId.trim()}-db`;
1020
+ return loadModelFromDb(modelName, dbName);
1021
+ };
1022
+ const loadRbModel = async (modelName, _ctx) => {
1023
+ assertRbModelName(modelName);
1024
+ const dbName = `${APP_NAME}-users-db`;
1025
+ return loadModelFromDb(modelName, dbName);
1026
+ };
1027
+ const createModels = (modules) => {
1028
+ registerModels(modules);
1029
+ return {
1030
+ register: registerModels,
1031
+ get: (modelName, ctx) => loadModel(modelName, ctx),
1032
+ getRb: (modelName, ctx) => loadRbModel(modelName)
1033
+ };
1034
+ };
833
1035
  export {
834
1036
  LANGUAGE_CODE_REGEX,
835
1037
  RBTenantSchema,
836
1038
  RBUserSchema,
1039
+ RtsChangeSchema,
1040
+ RtsCounterSchema,
837
1041
  ZRBTenant,
838
1042
  ZRBUser,
839
1043
  buildLocaleFallbackChain,
1044
+ createModels,
840
1045
  extendZod,
841
- getRegisteredModels,
842
1046
  loadModel,
843
- registerModels,
1047
+ loadRbModel,
844
1048
  resolveLocalizedString,
845
1049
  withLocalizedStringFallback,
846
1050
  z2 as z,
@@ -9,5 +9,6 @@ type LoadModelCtx = {
9
9
  };
10
10
  };
11
11
  export declare const loadModel: (modelName: string, ctx: LoadModelCtx) => Promise<mongoose.Model<any, {}, {}, {}, any, any, any>>;
12
+ export declare const loadRbModel: (modelName: string, _ctx: LoadModelCtx) => Promise<mongoose.Model<any, {}, {}, {}, any, any, any>>;
12
13
  export type { LoadModelCtx };
13
14
  //# sourceMappingURL=loadModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadModel.d.ts","sourceRoot":"","sources":["../src/loadModel.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAK/B,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE;QACH,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE;gBACL,iBAAiB,CAAC,EAAE,MAAM,CAAC;aAC5B,CAAA;SACF,GAAG,IAAI,CAAC;KACV,CAAC;CACH,CAAC;AAKF,eAAO,MAAM,SAAS,GAAU,WAAW,MAAM,EAAE,KAAK,YAAY,4DA4CnE,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"loadModel.d.ts","sourceRoot":"","sources":["../src/loadModel.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAK/B,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE;QACH,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE;gBACL,iBAAiB,CAAC,EAAE,MAAM,CAAC;aAC5B,CAAA;SACF,GAAG,IAAI,CAAC;KACV,CAAC;CACH,CAAC;AAyDF,eAAO,MAAM,SAAS,GAAU,WAAW,MAAM,EAAE,KAAK,YAAY,4DAOnE,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,WAAW,MAAM,EAAE,MAAM,YAAY,4DAItE,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Schema } from '../../../vite/node_modules/mongoose';
2
+ export declare const RtsChangeSchema: Schema;
3
+ //# sourceMappingURL=RtsChange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RtsChange.d.ts","sourceRoot":"","sources":["../../src/models/RtsChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAMjC,eAAO,MAAM,eAAe,EAAE,MAW7B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Schema } from '../../../vite/node_modules/mongoose';
2
+ export declare const RtsCounterSchema: Schema;
3
+ //# sourceMappingURL=RtsCounter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RtsCounter.d.ts","sourceRoot":"","sources":["../../src/models/RtsCounter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,eAAO,MAAM,gBAAgB,EAAE,MAQ9B,CAAA"}
@@ -1,3 +1,5 @@
1
1
  export * from './User';
2
2
  export * from './Tenant';
3
+ export * from './RtsCounter';
4
+ export * from './RtsChange';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerModels.d.ts","sourceRoot":"","sources":["../src/registerModels.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAK/B,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAkD3C,eAAO,MAAM,cAAc,GAAI,SAAS,YAAY,SAEnD,CAAA;AAED,eAAO,MAAM,mBAAmB,sEAK/B,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"registerModels.d.ts","sourceRoot":"","sources":["../src/registerModels.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAU/B,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAiE3C,eAAO,MAAM,cAAc,GAAI,SAAS,YAAY,SAEnD,CAAA;AAED,eAAO,MAAM,mBAAmB,sEAK/B,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { default as mongoose } from '../../vite/node_modules/mongoose';
2
+ export declare const rtsChangeLogPlugin: (schema: mongoose.Schema) => void;
3
+ //# sourceMappingURL=rtsChangeLogPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtsChangeLogPlugin.d.ts","sourceRoot":"","sources":["../src/rtsChangeLogPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AA4KpC,eAAO,MAAM,kBAAkB,GAAI,QAAQ,QAAQ,CAAC,MAAM,KAAG,IAkC5D,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpcbase/db",
3
- "version": "0.17.0",
3
+ "version": "0.19.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"