@rpcbase/db 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { z, ZodMap, ZodRecord, ZodAny, ZodUnion, ZodNullable, ZodOptional, ZodDe
3
3
  export * from "zod";
4
4
  import { z as z2 } from "zod";
5
5
  import assert from "assert";
6
- const ZUser = z.object({
6
+ const ZRBUser = z.object({
7
7
  email: z.string().email().optional(),
8
8
  password: z.string(),
9
9
  name: z.string().optional(),
@@ -12,7 +12,7 @@ const ZUser = z.object({
12
12
  email_verification_code: z.string().length(6).optional(),
13
13
  email_verification_expires_at: z.date().optional()
14
14
  });
15
- const UserSchema = new Schema({
15
+ const RBUserSchema = new Schema({
16
16
  email: { type: String, unique: true, sparse: true },
17
17
  phone: { type: String, unique: true, sparse: true },
18
18
  password: { type: String, required: true },
@@ -20,23 +20,23 @@ const UserSchema = new Schema({
20
20
  tenants: { type: [String], index: true, required: true },
21
21
  email_verification_code: { type: String, required: false },
22
22
  email_verification_expires_at: { type: Date, required: false }
23
- });
24
- const ZTenant = z.object({
23
+ }, { collection: "users" });
24
+ const ZRBTenant = z.object({
25
25
  tenant_id: z.string(),
26
26
  parent_tenant_id: z.string().optional(),
27
27
  name: z.string().optional()
28
28
  });
29
- const TenantSchema = new Schema({
29
+ const RBTenantSchema = new Schema({
30
30
  tenant_id: { type: String, required: true, unique: true, index: true },
31
31
  parent_tenant_id: { type: String },
32
32
  name: { type: String }
33
- });
33
+ }, { collection: "tenants" });
34
34
  const frameworkSchemas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
35
35
  __proto__: null,
36
- TenantSchema,
37
- UserSchema,
38
- ZTenant,
39
- ZUser
36
+ RBTenantSchema,
37
+ RBUserSchema,
38
+ ZRBTenant,
39
+ ZRBUser
40
40
  }, Symbol.toStringTag, { value: "Module" }));
41
41
  const zmAssert$4 = {
42
42
  string(f) {
@@ -350,6 +350,10 @@ const zUUID = (ref) => {
350
350
  };
351
351
  return output;
352
352
  };
353
+ const zI18nString = () => z.record(
354
+ z.string().regex(/^[A-Za-z]{2}$/i, { message: "Expected a country code (ISO 3166-1 alpha-2)." }),
355
+ z.string()
356
+ );
353
357
  function zodSchema(schema, options) {
354
358
  const definition = parseObject(schema);
355
359
  return new Schema(definition, options);
@@ -681,7 +685,8 @@ const loadModel = async (modelName, ctx) => {
681
685
  const models = getRegisteredModels();
682
686
  const tenantId = ctx.req.session?.user?.current_tenant_id || "00000000";
683
687
  assert(tenantId, "Tenant ID is missing from session");
684
- const dbName = ["User", "Tenant"].includes(modelName) ? `${APP_NAME}-users-db` : `${APP_NAME}-${tenantId}-db`;
688
+ const userModelNames = ["User", "Tenant", "RBUser", "RBTenant"];
689
+ const dbName = userModelNames.includes(modelName) ? `${APP_NAME}-users-db` : `${APP_NAME}-${tenantId}-db`;
685
690
  const connectionString = `mongodb://localhost:${DB_PORT}/${dbName}`;
686
691
  if (!connections[dbName]) {
687
692
  const connection = mongoose.createConnection(connectionString, {
@@ -710,15 +715,16 @@ const loadModel = async (modelName, ctx) => {
710
715
  return modelConnection.models[modelName];
711
716
  };
712
717
  export {
713
- TenantSchema,
714
- UserSchema,
715
- ZTenant,
716
- ZUser,
718
+ RBTenantSchema,
719
+ RBUserSchema,
720
+ ZRBTenant,
721
+ ZRBUser,
717
722
  extendZod,
718
723
  getRegisteredModels,
719
724
  loadModel,
720
725
  registerModels,
721
726
  z2 as z,
727
+ zI18nString,
722
728
  zId,
723
729
  zUUID,
724
730
  zodSchema,
@@ -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,uDA0CnE,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;AAKF,eAAO,MAAM,SAAS,GAAU,WAAW,MAAM,EAAE,KAAK,YAAY,uDA4CnE,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import { Schema } from '../../../vite/node_modules/mongoose';
2
2
  import { z } from '../../../vite/node_modules/zod';
3
- export declare const ZTenant: z.ZodObject<{
3
+ export declare const ZRBTenant: z.ZodObject<{
4
4
  tenant_id: z.ZodString;
5
5
  parent_tenant_id: z.ZodOptional<z.ZodString>;
6
6
  name: z.ZodOptional<z.ZodString>;
7
7
  }, z.core.$strip>;
8
- export type ITenant = z.infer<typeof ZTenant>;
9
- export declare const TenantSchema: Schema;
8
+ export type IRBTenant = z.infer<typeof ZRBTenant>;
9
+ export declare const RBTenantSchema: Schema;
10
10
  //# sourceMappingURL=Tenant.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tenant.d.ts","sourceRoot":"","sources":["../../src/models/Tenant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,OAAO;;;;iBAIlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE,MAIzB,CAAA"}
1
+ {"version":3,"file":"Tenant.d.ts","sourceRoot":"","sources":["../../src/models/Tenant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,SAAS;;;;iBAIpB,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc,EAAE,MAIA,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { Schema } from '../../../vite/node_modules/mongoose';
2
2
  import { z } from '../../../vite/node_modules/zod';
3
- export declare const ZUser: z.ZodObject<{
3
+ export declare const ZRBUser: z.ZodObject<{
4
4
  email: z.ZodOptional<z.ZodString>;
5
5
  password: z.ZodString;
6
6
  name: z.ZodOptional<z.ZodString>;
@@ -9,6 +9,6 @@ export declare const ZUser: z.ZodObject<{
9
9
  email_verification_code: z.ZodOptional<z.ZodString>;
10
10
  email_verification_expires_at: z.ZodOptional<z.ZodDate>;
11
11
  }, z.core.$strip>;
12
- export type IUser = z.infer<typeof ZUser>;
13
- export declare const UserSchema: Schema;
12
+ export type IRBUser = z.infer<typeof ZRBUser>;
13
+ export declare const RBUserSchema: Schema;
14
14
  //# sourceMappingURL=User.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,KAAK;;;;;;;;iBAQhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAE1C,eAAO,MAAM,UAAU,EAAE,MAQvB,CAAA"}
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,OAAO;;;;;;;;iBAQlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE,MAQA,CAAA"}
@@ -62,5 +62,7 @@ export type TzmUUID = ReturnType<typeof createUUID> & {
62
62
  };
63
63
  declare const createUUID: () => z.ZodUnion<[z.ZodUUID, z.ZodCustom<Types.UUID, Types.UUID>]>;
64
64
  export declare const zUUID: (ref?: string) => TzmUUID;
65
+ export type I18nStringRecord = Record<string, string>;
66
+ export declare const zI18nString: () => z.ZodRecord<z.ZodString, z.ZodString>;
65
67
  export {};
66
68
  //# sourceMappingURL=extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/schema/extension.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAmB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,QAAQ,KAAK,CAAC;IACnB,UAAU,SAAS;QACjB,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,CAAA;QACpC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,CAAA;QACpC,WAAW,EAAE,OAAO,CAAA;QACpB,WAAW,EAAE,OAAO,CAAA;KACrB;IAED,UAAU,SAAS;QACjB,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,CAAA;QACpC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,CAAA;QACpC,WAAW,EAAE,OAAO,CAAA;QACpB,WAAW,EAAE,OAAO,CAAA;KACrB;IAED,UAAU,OAAO;QACf,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;QAClC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;QAClC,WAAW,EAAE,OAAO,CAAA;QACpB,WAAW,EAAE,OAAO,CAAA;KACrB;CAEF;AA+CD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,QA2DtC;AAED,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,GAAG;IAChD,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,KAAK,CAAA;IAChC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,KAAK,CAAA;IAChC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAA;IAC3B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAA;CAChC,CAAA;AAED,QAAA,MAAM,QAAQ,8EAKb,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,KAAG,KAoDlC,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG;IACpD,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;IAClC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;IAClC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAClC,CAAA;AAED,QAAA,MAAM,UAAU,oEAEf,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,OAoDpC,CAAA"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/schema/extension.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAmB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,QAAQ,KAAK,CAAC;IACnB,UAAU,SAAS;QACjB,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,CAAA;QACpC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,CAAA;QACpC,WAAW,EAAE,OAAO,CAAA;QACpB,WAAW,EAAE,OAAO,CAAA;KACrB;IAED,UAAU,SAAS;QACjB,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,CAAA;QACpC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,CAAA;QACpC,WAAW,EAAE,OAAO,CAAA;QACpB,WAAW,EAAE,OAAO,CAAA;KACrB;IAED,UAAU,OAAO;QACf,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;QAClC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;QAClC,WAAW,EAAE,OAAO,CAAA;QACpB,WAAW,EAAE,OAAO,CAAA;KACrB;CAEF;AA+CD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,QA2DtC;AAED,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,GAAG;IAChD,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,KAAK,CAAA;IAChC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,KAAK,CAAA;IAChC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAA;IAC3B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAA;CAChC,CAAA;AAED,QAAA,MAAM,QAAQ,8EAKb,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,KAAG,KAoDlC,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG;IACpD,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;IAClC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;IAClC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAClC,CAAA;AAED,QAAA,MAAM,UAAU,oEAEf,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,OAoDpC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAErD,eAAO,MAAM,WAAW,QAMjB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpcbase/db",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -50,7 +50,7 @@
50
50
  }
51
51
  },
52
52
  "peerDependencies": {
53
- "mongoose": "^8",
53
+ "mongoose": "^8 || ^9",
54
54
  "zod": "^4"
55
55
  },
56
56
  "devDependencies": {