@rpcbase/db 0.25.0 → 0.26.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/createModels.d.ts +3 -2
- package/dist/createModels.d.ts.map +1 -1
- package/dist/index.js +95 -1
- package/dist/loadModel.d.ts.map +1 -1
- package/dist/models/RBNotification.d.ts +17 -0
- package/dist/models/RBNotification.d.ts.map +1 -0
- package/dist/models/RBNotificationSettings.d.ts +31 -0
- package/dist/models/RBNotificationSettings.d.ts.map +1 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/createModels.d.ts
CHANGED
|
@@ -6,8 +6,9 @@ type ExtractModelNamesFromSchemas<TModules> = {
|
|
|
6
6
|
}[keyof TModules] & string;
|
|
7
7
|
type FrameworkModelName = ExtractModelNamesFromSchemas<typeof frameworkSchemas>;
|
|
8
8
|
type WithoutRbPrefix<TName extends string> = TName extends `RB${string}` ? never : TName;
|
|
9
|
-
|
|
10
|
-
export type
|
|
9
|
+
type TenantInternalRbModelName = "RBUploadSession" | "RBUploadChunk" | "RBNotification" | "RBNotificationSettings";
|
|
10
|
+
export type TenantModelName<TModules extends ModelModules> = WithoutRbPrefix<ExtractModelNamesFromSchemas<TModules>> | WithoutRbPrefix<FrameworkModelName> | TenantInternalRbModelName;
|
|
11
|
+
export type RbModelName = ExtractModelNamesFromSchemas<typeof frameworkSchemas> extends infer Name ? Name extends string ? Name extends `RB${string}` ? Name extends "RBRtsChange" | "RBRtsCounter" | "RBUploadSession" | "RBUploadChunk" | "RBNotification" | "RBNotificationSettings" ? never : Name : never : never : never;
|
|
11
12
|
export type ModelsClient<TModules extends ModelModules> = {
|
|
12
13
|
register: (modules: TModules) => void;
|
|
13
14
|
get: (modelName: TenantModelName<TModules>, ctx: LoadModelCtx) => ReturnType<typeof loadModel>;
|
|
@@ -1 +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;
|
|
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,KAAK,yBAAyB,GAC1B,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,wBAAwB,CAAA;AAE5B,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,YAAY,IACrD,eAAe,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,GACvD,eAAe,CAAC,kBAAkB,CAAC,GACnC,yBAAyB,CAAA;AAE7B,MAAM,MAAM,WAAW,GAAG,4BAA4B,CAAC,OAAO,gBAAgB,CAAC,SAAS,MAAM,IAAI,GAC9F,IAAI,SAAS,MAAM,GACjB,IAAI,SAAS,KAAK,MAAM,EAAE,GACxB,IAAI,SACF,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,wBAAwB,GACxB,KAAK,GACL,IAAI,GACN,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.js
CHANGED
|
@@ -270,8 +270,90 @@ const RBUploadChunkSchema = new Schema(
|
|
|
270
270
|
);
|
|
271
271
|
RBUploadChunkSchema.index({ uploadId: 1, index: 1 }, { unique: true });
|
|
272
272
|
RBUploadChunkSchema.index({ expiresAt: 1 }, { expireAfterSeconds: 0 });
|
|
273
|
+
const ZRBNotification = z.object({
|
|
274
|
+
userId: z.string(),
|
|
275
|
+
topic: z.string().optional(),
|
|
276
|
+
title: z.string(),
|
|
277
|
+
body: z.string().optional(),
|
|
278
|
+
url: z.string().optional(),
|
|
279
|
+
createdAt: z.date(),
|
|
280
|
+
seenAt: z.date().optional(),
|
|
281
|
+
readAt: z.date().optional(),
|
|
282
|
+
archivedAt: z.date().optional(),
|
|
283
|
+
metadata: z.record(z.string(), z.unknown()).optional()
|
|
284
|
+
});
|
|
285
|
+
const TTL_90_DAYS_S = 60 * 60 * 24 * 90;
|
|
286
|
+
const RBNotificationSchema = new Schema(
|
|
287
|
+
{
|
|
288
|
+
userId: { type: String, required: true, index: true },
|
|
289
|
+
topic: { type: String, required: false, index: true },
|
|
290
|
+
title: { type: String, required: true },
|
|
291
|
+
body: { type: String, required: false },
|
|
292
|
+
url: { type: String, required: false },
|
|
293
|
+
createdAt: { type: Date, required: true, default: Date.now, index: true },
|
|
294
|
+
seenAt: { type: Date, required: false, index: true },
|
|
295
|
+
readAt: { type: Date, required: false, index: true },
|
|
296
|
+
archivedAt: { type: Date, required: false },
|
|
297
|
+
metadata: { type: Schema.Types.Mixed, required: false }
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
versionKey: false,
|
|
301
|
+
collection: "notifications"
|
|
302
|
+
}
|
|
303
|
+
);
|
|
304
|
+
RBNotificationSchema.index({ userId: 1, archivedAt: 1, createdAt: -1 });
|
|
305
|
+
RBNotificationSchema.index({ userId: 1, seenAt: 1, archivedAt: 1, createdAt: -1 });
|
|
306
|
+
RBNotificationSchema.index({ userId: 1, readAt: 1, archivedAt: 1, createdAt: -1 });
|
|
307
|
+
RBNotificationSchema.index({ archivedAt: 1 }, { expireAfterSeconds: TTL_90_DAYS_S });
|
|
308
|
+
const ZRBNotificationDigestFrequency = z.enum(["off", "daily", "weekly"]);
|
|
309
|
+
const ZRBNotificationTopicPreference = z.object({
|
|
310
|
+
topic: z.string(),
|
|
311
|
+
inApp: z.boolean(),
|
|
312
|
+
emailDigest: z.boolean(),
|
|
313
|
+
push: z.boolean()
|
|
314
|
+
});
|
|
315
|
+
const ZRBNotificationSettings = z.object({
|
|
316
|
+
userId: z.string(),
|
|
317
|
+
digestFrequency: ZRBNotificationDigestFrequency,
|
|
318
|
+
topicPreferences: z.array(ZRBNotificationTopicPreference).optional(),
|
|
319
|
+
lastDigestSentAt: z.date().optional()
|
|
320
|
+
});
|
|
321
|
+
const TopicPreferenceSchema = new Schema(
|
|
322
|
+
{
|
|
323
|
+
topic: { type: String, required: true },
|
|
324
|
+
inApp: { type: Boolean, required: true, default: true },
|
|
325
|
+
emailDigest: { type: Boolean, required: true, default: true },
|
|
326
|
+
push: { type: Boolean, required: true, default: false }
|
|
327
|
+
},
|
|
328
|
+
{ _id: false }
|
|
329
|
+
);
|
|
330
|
+
const RBNotificationSettingsSchema = new Schema(
|
|
331
|
+
{
|
|
332
|
+
userId: { type: String, required: true },
|
|
333
|
+
digestFrequency: {
|
|
334
|
+
type: String,
|
|
335
|
+
required: true,
|
|
336
|
+
enum: ZRBNotificationDigestFrequency.options,
|
|
337
|
+
default: "weekly"
|
|
338
|
+
},
|
|
339
|
+
topicPreferences: {
|
|
340
|
+
type: [TopicPreferenceSchema],
|
|
341
|
+
default: []
|
|
342
|
+
},
|
|
343
|
+
lastDigestSentAt: { type: Date, required: false }
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
versionKey: false,
|
|
347
|
+
collection: "notificationSettings",
|
|
348
|
+
timestamps: true
|
|
349
|
+
}
|
|
350
|
+
);
|
|
351
|
+
RBNotificationSettingsSchema.index({ userId: 1 }, { unique: true });
|
|
352
|
+
RBNotificationSettingsSchema.index({ userId: 1, "topicPreferences.topic": 1 });
|
|
273
353
|
const frameworkSchemas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
274
354
|
__proto__: null,
|
|
355
|
+
RBNotificationSchema,
|
|
356
|
+
RBNotificationSettingsSchema,
|
|
275
357
|
RBRtsChangeSchema,
|
|
276
358
|
RBRtsCounterSchema,
|
|
277
359
|
RBTenantSchema,
|
|
@@ -280,6 +362,10 @@ const frameworkSchemas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.de
|
|
|
280
362
|
RBUploadChunkSchema,
|
|
281
363
|
RBUploadSessionSchema,
|
|
282
364
|
RBUserSchema,
|
|
365
|
+
ZRBNotification,
|
|
366
|
+
ZRBNotificationDigestFrequency,
|
|
367
|
+
ZRBNotificationSettings,
|
|
368
|
+
ZRBNotificationTopicPreference,
|
|
283
369
|
ZRBRtsChange,
|
|
284
370
|
ZRBRtsChangeOp,
|
|
285
371
|
ZRBRtsCounter,
|
|
@@ -1240,7 +1326,9 @@ const TENANT_INTERNAL_MODEL_NAMES = /* @__PURE__ */ new Set([
|
|
|
1240
1326
|
"RBRtsChange",
|
|
1241
1327
|
"RBRtsCounter",
|
|
1242
1328
|
"RBUploadSession",
|
|
1243
|
-
"RBUploadChunk"
|
|
1329
|
+
"RBUploadChunk",
|
|
1330
|
+
"RBNotification",
|
|
1331
|
+
"RBNotificationSettings"
|
|
1244
1332
|
]);
|
|
1245
1333
|
const assertTenantModelName = (modelName) => {
|
|
1246
1334
|
if (TENANT_INTERNAL_MODEL_NAMES.has(modelName)) return;
|
|
@@ -1302,6 +1390,8 @@ const getTenantFilesystemDbFromCtx = async (ctx) => {
|
|
|
1302
1390
|
};
|
|
1303
1391
|
export {
|
|
1304
1392
|
LANGUAGE_CODE_REGEX,
|
|
1393
|
+
RBNotificationSchema,
|
|
1394
|
+
RBNotificationSettingsSchema,
|
|
1305
1395
|
RBRtsChangeSchema,
|
|
1306
1396
|
RBRtsCounterSchema,
|
|
1307
1397
|
RBTenantSchema,
|
|
@@ -1310,6 +1400,10 @@ export {
|
|
|
1310
1400
|
RBUploadChunkSchema,
|
|
1311
1401
|
RBUploadSessionSchema,
|
|
1312
1402
|
RBUserSchema,
|
|
1403
|
+
ZRBNotification,
|
|
1404
|
+
ZRBNotificationDigestFrequency,
|
|
1405
|
+
ZRBNotificationSettings,
|
|
1406
|
+
ZRBNotificationTopicPreference,
|
|
1313
1407
|
ZRBRtsChange,
|
|
1314
1408
|
ZRBRtsChangeOp,
|
|
1315
1409
|
ZRBRtsCounter,
|
package/dist/loadModel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadModel.d.ts","sourceRoot":"","sources":["../src/loadModel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AAMpC,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;
|
|
1
|
+
{"version":3,"file":"loadModel.d.ts","sourceRoot":"","sources":["../src/loadModel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AAMpC,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;AAyCF,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,17 @@
|
|
|
1
|
+
import { Schema } from '../../../vite/node_modules/mongoose';
|
|
2
|
+
import { z } from '../../../vite/node_modules/zod';
|
|
3
|
+
export declare const ZRBNotification: z.ZodObject<{
|
|
4
|
+
userId: z.ZodString;
|
|
5
|
+
topic: z.ZodOptional<z.ZodString>;
|
|
6
|
+
title: z.ZodString;
|
|
7
|
+
body: z.ZodOptional<z.ZodString>;
|
|
8
|
+
url: z.ZodOptional<z.ZodString>;
|
|
9
|
+
createdAt: z.ZodDate;
|
|
10
|
+
seenAt: z.ZodOptional<z.ZodDate>;
|
|
11
|
+
readAt: z.ZodOptional<z.ZodDate>;
|
|
12
|
+
archivedAt: z.ZodOptional<z.ZodDate>;
|
|
13
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type IRBNotification = z.infer<typeof ZRBNotification>;
|
|
16
|
+
export declare const RBNotificationSchema: Schema;
|
|
17
|
+
//# sourceMappingURL=RBNotification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RBNotification.d.ts","sourceRoot":"","sources":["../../src/models/RBNotification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,eAAe;;;;;;;;;;;iBAW1B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAI7D,eAAO,MAAM,oBAAoB,EAAE,MAiBlC,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Schema } from '../../../vite/node_modules/mongoose';
|
|
2
|
+
import { z } from '../../../vite/node_modules/zod';
|
|
3
|
+
export declare const ZRBNotificationDigestFrequency: z.ZodEnum<{
|
|
4
|
+
off: "off";
|
|
5
|
+
daily: "daily";
|
|
6
|
+
weekly: "weekly";
|
|
7
|
+
}>;
|
|
8
|
+
export declare const ZRBNotificationTopicPreference: z.ZodObject<{
|
|
9
|
+
topic: z.ZodString;
|
|
10
|
+
inApp: z.ZodBoolean;
|
|
11
|
+
emailDigest: z.ZodBoolean;
|
|
12
|
+
push: z.ZodBoolean;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export declare const ZRBNotificationSettings: z.ZodObject<{
|
|
15
|
+
userId: z.ZodString;
|
|
16
|
+
digestFrequency: z.ZodEnum<{
|
|
17
|
+
off: "off";
|
|
18
|
+
daily: "daily";
|
|
19
|
+
weekly: "weekly";
|
|
20
|
+
}>;
|
|
21
|
+
topicPreferences: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
22
|
+
topic: z.ZodString;
|
|
23
|
+
inApp: z.ZodBoolean;
|
|
24
|
+
emailDigest: z.ZodBoolean;
|
|
25
|
+
push: z.ZodBoolean;
|
|
26
|
+
}, z.core.$strip>>>;
|
|
27
|
+
lastDigestSentAt: z.ZodOptional<z.ZodDate>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
export type IRBNotificationSettings = z.infer<typeof ZRBNotificationSettings>;
|
|
30
|
+
export declare const RBNotificationSettingsSchema: Schema;
|
|
31
|
+
//# sourceMappingURL=RBNotificationSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RBNotificationSettings.d.ts","sourceRoot":"","sources":["../../src/models/RBNotificationSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,8BAA8B;;;;EAAqC,CAAA;AAEhF,eAAO,MAAM,8BAA8B;;;;;iBAKzC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAKlC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAY7E,eAAO,MAAM,4BAA4B,EAAE,MAoB1C,CAAA"}
|
package/dist/models/index.d.ts
CHANGED
|
@@ -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;AACxB,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,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,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA"}
|