@rpcbase/db 0.33.0 → 0.35.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.
@@ -1,25 +1,23 @@
1
- import { LoadModelCtx, loadGlobalModel, loadModel } from './loadModel';
1
+ import { LoadModelCtx, models } from './modelsApi';
2
2
  import { ModelModules } from './registerModels';
3
- import { DefaultGlobalRbModelName, TenantAppRbModelName } from './rbModelScopes';
4
3
  import type * as frameworkSchemas from "./models";
5
4
  type ExtractModelNamesFromSchemas<TModules> = {
6
5
  [K in keyof TModules]-?: K extends `${infer Name}Schema` ? Name : never;
7
6
  }[keyof TModules] & string;
8
7
  type FrameworkModelName = ExtractModelNamesFromSchemas<typeof frameworkSchemas>;
9
- type WithoutRbPrefix<TName extends string> = TName extends `RB${string}` ? never : TName;
10
- type FrameworkGlobalRbModelName = Extract<FrameworkModelName, DefaultGlobalRbModelName>;
11
- export type TenantModelName<TTenantModules extends ModelModules> = WithoutRbPrefix<ExtractModelNamesFromSchemas<TTenantModules>> | TenantAppRbModelName;
12
- export type GlobalModelName<TGlobalModules extends ModelModules> = FrameworkGlobalRbModelName | WithoutRbPrefix<ExtractModelNamesFromSchemas<TGlobalModules>>;
13
- type LoadedTenantModel = Awaited<ReturnType<typeof loadModel>>;
14
- type LoadedGlobalModel = Awaited<ReturnType<typeof loadGlobalModel>>;
8
+ type RpcbaseGlobalModelName = Extract<FrameworkModelName, "RBUser" | "RBTenant">;
9
+ export type TenantModelName<TTenantModules extends ModelModules> = ExtractModelNamesFromSchemas<TTenantModules>;
10
+ export type GlobalModelName<TGlobalModules extends ModelModules> = RpcbaseGlobalModelName | ExtractModelNamesFromSchemas<TGlobalModules>;
11
+ type LoadedTenantModel = Awaited<ReturnType<(typeof models)["get"]>>;
12
+ type LoadedGlobalModel = Awaited<ReturnType<(typeof models)["getGlobal"]>>;
15
13
  type ModelsGetFn<TTenantModules extends ModelModules> = {
16
- (modelName: TenantModelName<TTenantModules>, ctx: LoadModelCtx): ReturnType<typeof loadModel>;
14
+ (modelName: TenantModelName<TTenantModules>, ctx: LoadModelCtx): ReturnType<(typeof models)["get"]>;
17
15
  <const TNames extends readonly TenantModelName<TTenantModules>[]>(modelNames: TNames, ctx: LoadModelCtx): Promise<{
18
16
  [K in keyof TNames]: LoadedTenantModel;
19
17
  }>;
20
18
  };
21
19
  type ModelsGetGlobalFn<TGlobalModules extends ModelModules> = {
22
- (modelName: GlobalModelName<TGlobalModules>, ctx: LoadModelCtx): ReturnType<typeof loadGlobalModel>;
20
+ (modelName: GlobalModelName<TGlobalModules>, ctx: LoadModelCtx): ReturnType<(typeof models)["getGlobal"]>;
23
21
  <const TNames extends readonly GlobalModelName<TGlobalModules>[]>(modelNames: TNames, ctx: LoadModelCtx): Promise<{
24
22
  [K in keyof TNames]: LoadedGlobalModel;
25
23
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"createModels.d.ts","sourceRoot":"","sources":["../src/createModels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createModels.d.ts","sourceRoot":"","sources":["../src/createModels.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export * from './models';
2
2
  export * from './schema';
3
3
  export * from './createModels';
4
- export * from './loadModel';
4
+ export * from './modelsApi';
5
5
  export * from './tenantFilesystemDb';
6
6
  export * from './acl';
7
7
  export * from './pagination';
package/dist/index.js CHANGED
@@ -645,7 +645,11 @@ function extendZod(z_0) {
645
645
  };
646
646
  for (const [key, value] of Object.entries(TypesMap)) {
647
647
  if (value?.prototype) {
648
- value.prototype.__zm_type = key;
648
+ Object.defineProperty(value.prototype, "__zm_type", {
649
+ value: key,
650
+ configurable: true,
651
+ writable: true
652
+ });
649
653
  }
650
654
  }
651
655
  }
@@ -1190,11 +1194,6 @@ const ensureMongooseConnection = async (dbName) => {
1190
1194
  }
1191
1195
  return connections[dbName];
1192
1196
  };
1193
- const DEFAULT_GLOBAL_RB_MODEL_NAMES = [
1194
- "RBUser",
1195
- "RBTenant"
1196
- ];
1197
- const DEFAULT_GLOBAL_RB_MODEL_NAMES_SET = new Set(DEFAULT_GLOBAL_RB_MODEL_NAMES);
1198
1197
  const RTS_COUNTER_ID = "rts";
1199
1198
  const EXCLUDED_MODEL_NAMES = /* @__PURE__ */ new Set(["RBRtsChange", "RBRtsCounter"]);
1200
1199
  const maxDeleteIdsRaw = process.env.RB_RTS_DELETE_LOG_MAX_IDS ?? "";
@@ -1876,7 +1875,10 @@ const mongoPaginationPlugin = (schema, pluginOptions) => {
1876
1875
  };
1877
1876
  };
1878
1877
  let cachedModels = null;
1879
- const isRbModelName = (name) => name.startsWith("RB");
1878
+ const DEFAULT_GLOBAL_RB_MODEL_NAMES_SET = /* @__PURE__ */ new Set([
1879
+ "RBUser",
1880
+ "RBTenant"
1881
+ ]);
1880
1882
  const assertSchema = (exportName, value) => {
1881
1883
  if (value instanceof mongoose.Schema) return value;
1882
1884
  throw new Error(
@@ -1887,13 +1889,17 @@ const assertSchema = (exportName, value) => {
1887
1889
  ].join(" ")
1888
1890
  );
1889
1891
  };
1890
- const applyTenantPlugins = (schema, modelName) => {
1892
+ const getFrameworkSchemaForModelName = (modelName) => {
1893
+ const exportName = `${modelName}Schema`;
1894
+ const value = frameworkSchemas[exportName];
1895
+ if (!(value instanceof mongoose.Schema)) return null;
1896
+ return value;
1897
+ };
1898
+ const applyTenantPlugins = (schema) => {
1891
1899
  schema.plugin(accessibleRecordsPlugin);
1892
1900
  schema.plugin(mongooseAclPlugin);
1893
1901
  schema.plugin(mongoPaginationPlugin);
1894
- if (!isRbModelName(modelName)) {
1895
- schema.plugin(rtsChangeLogPlugin);
1896
- }
1902
+ schema.plugin(rtsChangeLogPlugin);
1897
1903
  };
1898
1904
  const registerSchema = (target, other, modelName, schema, scope) => {
1899
1905
  if (target[modelName] || other[modelName]) {
@@ -1917,20 +1923,27 @@ const registerModels = ({ tenant, global }) => {
1917
1923
  registerSchema(globalSchemas, tenantSchemas, modelName, cloned);
1918
1924
  } else {
1919
1925
  const cloned = schema.clone();
1920
- applyTenantPlugins(cloned, modelName);
1926
+ applyTenantPlugins(cloned);
1921
1927
  registerSchema(tenantSchemas, globalSchemas, modelName, cloned);
1922
1928
  }
1923
1929
  }
1924
1930
  for (const { modelName, schema } of buildSchemasFromModules(tenant)) {
1925
- if (isRbModelName(modelName)) {
1931
+ if (modelName === "RBUser" || modelName === "RBTenant") {
1932
+ throw new Error(`Invalid tenant model name "${modelName}". RBUser/RBTenant are global models.`);
1933
+ }
1934
+ if (modelName.startsWith("RB")) {
1935
+ const frameworkSchema = getFrameworkSchemaForModelName(modelName);
1936
+ if (frameworkSchema && schema === frameworkSchema) continue;
1926
1937
  throw new Error(`Invalid tenant model name "${modelName}". RB* models are reserved for rpcbase.`);
1927
1938
  }
1928
1939
  const cloned = schema.clone();
1929
- applyTenantPlugins(cloned, modelName);
1940
+ applyTenantPlugins(cloned);
1930
1941
  registerSchema(tenantSchemas, globalSchemas, modelName, cloned);
1931
1942
  }
1932
1943
  for (const { modelName, schema } of buildSchemasFromModules(global ?? {})) {
1933
- if (isRbModelName(modelName)) {
1944
+ if (modelName.startsWith("RB")) {
1945
+ const frameworkSchema = getFrameworkSchemaForModelName(modelName);
1946
+ if (frameworkSchema && schema === frameworkSchema) continue;
1934
1947
  throw new Error(`Invalid global model name "${modelName}". RB* models are reserved for rpcbase.`);
1935
1948
  }
1936
1949
  const cloned = schema.clone();
@@ -1946,23 +1959,10 @@ const registerModels = ({ tenant, global }) => {
1946
1959
  };
1947
1960
  const getRegisteredModels = (scope) => {
1948
1961
  if (!cachedModels) {
1949
- throw new Error("Models not registered. Call createModels(...) once at startup (or import your models module) before using loadModel.");
1962
+ throw new Error("Models not registered. Call createModels(...) once at startup (or import your models module) before using models.get.");
1950
1963
  }
1951
1964
  return cachedModels[scope];
1952
1965
  };
1953
- const assertTenantModelName = (modelName) => {
1954
- assert(
1955
- !DEFAULT_GLOBAL_RB_MODEL_NAMES_SET.has(modelName),
1956
- 'Invalid tenant model name. "RBUser" and "RBTenant" are stored in the global DB; use loadGlobalModel (or loadRbModel for rpcbase models).'
1957
- );
1958
- };
1959
- const assertRbModelName = (modelName) => {
1960
- assert(modelName.startsWith("RB"), "Invalid RB model name. Supported: RB*");
1961
- assert(
1962
- DEFAULT_GLOBAL_RB_MODEL_NAMES_SET.has(modelName),
1963
- 'Invalid RB model name. Only "RBUser" and "RBTenant" are global; use loadModel for tenant-scoped RB* models.'
1964
- );
1965
- };
1966
1966
  const loadModelFromDb = async (modelName, dbName, scope) => {
1967
1967
  const schemas = getRegisteredModels(scope);
1968
1968
  const schema = schemas[modelName];
@@ -1973,37 +1973,36 @@ const loadModelFromDb = async (modelName, dbName, scope) => {
1973
1973
  }
1974
1974
  return modelConnection.models[modelName];
1975
1975
  };
1976
- const loadModel = async (modelName, ctx) => {
1977
- assertTenantModelName(modelName);
1976
+ const getTenantIdFromCtx = (ctx) => {
1978
1977
  const tenantId = ctx.req.session?.user?.currentTenantId;
1979
1978
  assert(typeof tenantId === "string" && tenantId.trim(), "Tenant ID is missing from session");
1980
- const dbName = getTenantDbName(tenantId);
1981
- return loadModelFromDb(modelName, dbName, "tenant");
1982
- };
1983
- const loadGlobalModel = async (modelName, _ctx) => {
1984
- if (modelName.startsWith("RB") && !DEFAULT_GLOBAL_RB_MODEL_NAMES_SET.has(modelName)) {
1985
- throw new Error(`Invalid global model name "${modelName}". RB* models are tenant-scoped by default; use loadModel.`);
1979
+ return tenantId;
1980
+ };
1981
+ const models = {
1982
+ register: registerModels,
1983
+ get: async (modelName, ctx) => {
1984
+ const tenantId = getTenantIdFromCtx(ctx);
1985
+ const dbName = getTenantDbName(tenantId);
1986
+ return loadModelFromDb(modelName, dbName, "tenant");
1987
+ },
1988
+ getGlobal: async (modelName, ctx) => {
1989
+ const dbName = getGlobalDbName();
1990
+ return loadModelFromDb(modelName, dbName, "global");
1986
1991
  }
1987
- const dbName = getGlobalDbName();
1988
- return loadModelFromDb(modelName, dbName, "global");
1989
- };
1990
- const loadRbModel = async (modelName, _ctx) => {
1991
- assertRbModelName(modelName);
1992
- return loadGlobalModel(modelName);
1993
1992
  };
1994
1993
  const createModels = (modules) => {
1995
1994
  registerModels(modules);
1996
1995
  const get = (async (modelNameOrNames, ctx) => {
1997
1996
  if (Array.isArray(modelNameOrNames)) {
1998
- return Promise.all(modelNameOrNames.map((modelName) => loadModel(modelName, ctx)));
1997
+ return Promise.all(modelNameOrNames.map((modelName) => models.get(modelName, ctx)));
1999
1998
  }
2000
- return loadModel(modelNameOrNames, ctx);
1999
+ return models.get(modelNameOrNames, ctx);
2001
2000
  });
2002
2001
  const getGlobal = (async (modelNameOrNames, ctx) => {
2003
2002
  if (Array.isArray(modelNameOrNames)) {
2004
- return Promise.all(modelNameOrNames.map((modelName) => loadGlobalModel(modelName)));
2003
+ return Promise.all(modelNameOrNames.map((modelName) => models.getGlobal(modelName, ctx)));
2005
2004
  }
2006
- return loadGlobalModel(modelNameOrNames);
2005
+ return models.getGlobal(modelNameOrNames, ctx);
2007
2006
  });
2008
2007
  return {
2009
2008
  register: registerModels,
@@ -2077,9 +2076,7 @@ export {
2077
2076
  getTenantFilesystemDbName,
2078
2077
  getTenantRolesFromSessionUser,
2079
2078
  isPaginationValidationError,
2080
- loadGlobalModel,
2081
- loadModel,
2082
- loadRbModel,
2079
+ models,
2083
2080
  mongoPaginationPlugin,
2084
2081
  registerPoliciesFromModules,
2085
2082
  registerPolicy,
@@ -0,0 +1,19 @@
1
+ import { default as mongoose } from '../../vite/node_modules/mongoose';
2
+ export type LoadModelCtx = {
3
+ req: {
4
+ session?: {
5
+ user?: {
6
+ currentTenantId?: string;
7
+ };
8
+ } | null;
9
+ };
10
+ };
11
+ export declare const models: {
12
+ readonly register: ({ tenant, global }: {
13
+ tenant: import('./registerModels').ModelModules;
14
+ global?: import('./registerModels').ModelModules;
15
+ }) => void;
16
+ readonly get: (modelName: string, ctx: LoadModelCtx) => Promise<mongoose.Model<any, {}, {}, {}, any, any, any>>;
17
+ readonly getGlobal: (modelName: string, ctx: LoadModelCtx) => Promise<mongoose.Model<any, {}, {}, {}, any, any, any>>;
18
+ };
19
+ //# sourceMappingURL=modelsApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelsApi.d.ts","sourceRoot":"","sources":["../src/modelsApi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AAOpC,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE;QACH,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE;gBACL,eAAe,CAAC,EAAE,MAAM,CAAC;aAC1B,CAAA;SACF,GAAG,IAAI,CAAC;KACV,CAAC;CACH,CAAC;AA0BF,eAAO,MAAM,MAAM;;;cAcq1B,CAAC;;8BAXh1B,MAAM,OAAO,YAAY;oCAMnB,MAAM,OAAO,YAAY;CAI9C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerModels.d.ts","sourceRoot":"","sources":["../src/registerModels.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAW/B,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC3C,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEtC,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;AAuDxD,eAAO,MAAM,cAAc,GAAI,oBAAoB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,SA4CjG,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,WAAW,sBAKrD,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,WAAW,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;AAC3C,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEtC,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;AA8DxD,eAAO,MAAM,cAAc,GAAI,oBAAoB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,SAmDjG,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,WAAW,sBAKrD,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/schema/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/schema/extension.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { default as mongoose } from '../../vite/node_modules/mongoose';
2
- import { LoadModelCtx } from './loadModel';
2
+ import { LoadModelCtx } from './modelsApi';
3
3
  export declare const getTenantFilesystemDbName: (tenantId: string) => string;
4
4
  export declare const getTenantFilesystemDb: (tenantId: string) => Promise<mongoose.Connection>;
5
5
  export declare const getTenantFilesystemDbFromCtx: (ctx: LoadModelCtx) => Promise<mongoose.Connection>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpcbase/db",
3
- "version": "0.33.0",
3
+ "version": "0.35.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -69,7 +69,7 @@
69
69
  },
70
70
  "dependencies": {
71
71
  "@casl/ability": "6.7.5",
72
- "@casl/mongoose": "8.0.3"
72
+ "@casl/mongoose": "8.0.4"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@types/node": "25.0.3",
@@ -1,15 +0,0 @@
1
- import { default as mongoose } from '../../vite/node_modules/mongoose';
2
- type LoadModelCtx = {
3
- req: {
4
- session?: {
5
- user?: {
6
- currentTenantId?: string;
7
- };
8
- } | null;
9
- };
10
- };
11
- export declare const loadModel: (modelName: string, ctx: LoadModelCtx) => Promise<mongoose.Model<any, {}, {}, {}, any, any, any>>;
12
- export declare const loadGlobalModel: (modelName: string, _ctx: LoadModelCtx) => Promise<mongoose.Model<any, {}, {}, {}, any, any, any>>;
13
- export declare const loadRbModel: (modelName: string, _ctx: LoadModelCtx) => Promise<mongoose.Model<any, {}, {}, {}, any, any, any>>;
14
- export type { LoadModelCtx };
15
- //# sourceMappingURL=loadModel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loadModel.d.ts","sourceRoot":"","sources":["../src/loadModel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AAQpC,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE;QACH,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE;gBACL,eAAe,CAAC,EAAE,MAAM,CAAC;aAC1B,CAAA;SACF,GAAG,IAAI,CAAC;KACV,CAAC;CACH,CAAC;AAmCF,eAAO,MAAM,SAAS,GAAU,WAAW,MAAM,EAAE,KAAK,YAAY,4DAOnE,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,WAAW,MAAM,EAAE,MAAM,YAAY,4DAM1E,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,WAAW,MAAM,EAAE,MAAM,YAAY,4DAGtE,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA"}
@@ -1,6 +0,0 @@
1
- export declare const DEFAULT_GLOBAL_RB_MODEL_NAMES: readonly ["RBUser", "RBTenant"];
2
- export type DefaultGlobalRbModelName = (typeof DEFAULT_GLOBAL_RB_MODEL_NAMES)[number];
3
- export declare const DEFAULT_GLOBAL_RB_MODEL_NAMES_SET: Set<string>;
4
- export declare const TENANT_APP_RB_MODEL_NAMES: readonly ["RBUploadSession", "RBUploadChunk", "RBNotification", "RBNotificationSettings"];
5
- export type TenantAppRbModelName = (typeof TENANT_APP_RB_MODEL_NAMES)[number];
6
- //# sourceMappingURL=rbModelScopes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rbModelScopes.d.ts","sourceRoot":"","sources":["../src/rbModelScopes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,iCAGhC,CAAA;AAEV,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAA;AAErF,eAAO,MAAM,iCAAiC,aAAiD,CAAA;AAE/F,eAAO,MAAM,yBAAyB,2FAK5B,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAA"}