@nu-art/ts-messaging-backend 0.400.2

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,24 @@
1
+ import { DBApiConfigV3, ModuleBE_BaseDB } from '@nu-art/thunderstorm/backend/index';
2
+ import { DBProto_Message } from '@nu-art/ts-messaging-shared/index';
3
+ type Config = DBApiConfigV3<DBProto_Message> & {};
4
+ /**
5
+ * Backend database module for managing messages
6
+ * Handles CRUD operations and database access for messages with auditing support
7
+ */
8
+ export declare class ModuleBE_MessageDB_Class extends ModuleBE_BaseDB<DBProto_Message, Config> {
9
+ /**
10
+ * Initializes the message database module
11
+ * Registers version upgrade processor to convert email-based auditorIds to account _ids
12
+ */
13
+ constructor();
14
+ /**
15
+ * Pre-write hook that ensures auditor ID is set before saving message
16
+ *
17
+ * @param dbInstance - The message instance to be written
18
+ * @param originalDbInstance - The original message instance from database
19
+ * @param transaction - Optional Firestore transaction
20
+ */
21
+ protected preWriteProcessing(dbInstance: DBProto_Message['uiType'], originalDbInstance: DBProto_Message['dbType'], transaction?: FirebaseFirestore.Transaction): Promise<void>;
22
+ }
23
+ export declare const ModuleBE_MessageDB: ModuleBE_MessageDB_Class;
24
+ export {};
@@ -0,0 +1,40 @@
1
+ import { ModuleBE_BaseDB, } from '@nu-art/thunderstorm/backend/index';
2
+ import { DBDef_message } from '@nu-art/ts-messaging-shared/index';
3
+ import { getAuditorId, ModuleBE_AccountDB } from '@nu-art/user-account/backend/index';
4
+ import { arrayToMap } from '@nu-art/ts-common';
5
+ /**
6
+ * Backend database module for managing messages
7
+ * Handles CRUD operations and database access for messages with auditing support
8
+ */
9
+ export class ModuleBE_MessageDB_Class extends ModuleBE_BaseDB {
10
+ /**
11
+ * Initializes the message database module
12
+ * Registers version upgrade processor to convert email-based auditorIds to account _ids
13
+ */
14
+ constructor() {
15
+ super(DBDef_message);
16
+ //Convert existing auditorIds, emails, to be _id instead.
17
+ this.registerVersionUpgradeProcessor('1.0.0', async (items) => {
18
+ const emailToAccountMap = arrayToMap(await ModuleBE_AccountDB.query.where({}), _acc => _acc.email);
19
+ items.forEach(_item => {
20
+ if (!emailToAccountMap[_item._auditorId])
21
+ return;
22
+ // Only if the existing _auditorId is recognized as an email, replace it with the _id.
23
+ return _item._auditorId = emailToAccountMap[_item._auditorId]._id;
24
+ });
25
+ });
26
+ }
27
+ /**
28
+ * Pre-write hook that ensures auditor ID is set before saving message
29
+ *
30
+ * @param dbInstance - The message instance to be written
31
+ * @param originalDbInstance - The original message instance from database
32
+ * @param transaction - Optional Firestore transaction
33
+ */
34
+ async preWriteProcessing(dbInstance, originalDbInstance, transaction) {
35
+ if (!dbInstance._auditorId)
36
+ dbInstance._auditorId = await getAuditorId();
37
+ }
38
+ }
39
+ export const ModuleBE_MessageDB = new ModuleBE_MessageDB_Class();
40
+ //# sourceMappingURL=ModuleBE_MessageDB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleBE_MessageDB.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-messaging/backend/src/main/","sources":["ModuleBE_MessageDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,GAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAC,aAAa,EAAkB,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAK7C;;;GAGG;AACH,MAAM,OAAO,wBACZ,SAAQ,eAAwC;IAEhD;;;OAGG;IACH;QACC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrB,yDAAyD;QACzD,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC3D,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;oBACvC,OAAO;gBACR,sFAAsF;gBACtF,OAAO,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC;YACnE,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,kBAAkB,CAAC,UAAqC,EAAE,kBAA6C,EAAE,WAA2C;QACnK,IAAI,CAAC,UAAU,CAAC,UAAU;YACzB,UAAU,CAAC,UAAU,GAAG,MAAM,YAAY,EAAE,CAAC;IAC/C,CAAC;CACD;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Database module for managing topics in the messaging system
3
+ * Provides CRUD operations and database access for topics
4
+ */
5
+ import { DBApiConfigV3, ModuleBE_BaseDB } from '@nu-art/thunderstorm/backend/index';
6
+ import { DBProto_Topic } from '@nu-art/ts-messaging-shared/index';
7
+ /**
8
+ * Configuration type for the Topic database module
9
+ * Extends the base database config with topic-specific settings
10
+ */
11
+ type Config = DBApiConfigV3<DBProto_Topic> & {};
12
+ /**
13
+ * Backend database module class for topic management
14
+ * Handles database operations for topics using the base DB functionality
15
+ */
16
+ export declare class ModuleBE_TopicDB_Class extends ModuleBE_BaseDB<DBProto_Topic, Config> {
17
+ constructor();
18
+ }
19
+ /**
20
+ * Singleton instance of the Topic database module
21
+ */
22
+ export declare const ModuleBE_TopicDB: ModuleBE_TopicDB_Class;
23
+ export {};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Database module for managing topics in the messaging system
3
+ * Provides CRUD operations and database access for topics
4
+ */
5
+ import { ModuleBE_BaseDB, } from '@nu-art/thunderstorm/backend/index';
6
+ import { DBDef_Topic } from '@nu-art/ts-messaging-shared/index';
7
+ /**
8
+ * Backend database module class for topic management
9
+ * Handles database operations for topics using the base DB functionality
10
+ */
11
+ export class ModuleBE_TopicDB_Class extends ModuleBE_BaseDB {
12
+ constructor() {
13
+ super(DBDef_Topic);
14
+ }
15
+ }
16
+ /**
17
+ * Singleton instance of the Topic database module
18
+ */
19
+ export const ModuleBE_TopicDB = new ModuleBE_TopicDB_Class();
20
+ //# sourceMappingURL=ModuleBE_TopicDB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleBE_TopicDB.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-messaging/backend/src/main/","sources":["ModuleBE_TopicDB.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAgB,eAAe,GAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAC,WAAW,EAAgB,MAAM,mCAAmC,CAAC;AAW7E;;;GAGG;AACH,MAAM,OAAO,sBACZ,SAAQ,eAAsC;IAE9C;QACC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpB,CAAC;CACD;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
package/consts.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { DefaultDef_Group, DefaultDef_Package } from '@nu-art/permissions/shared/types';
2
+ export declare const DomainNamespace_Messaging = "Messaging";
3
+ export declare const Domain_Messaging: Readonly<{
4
+ _id: "2de76d8ea55ba2fc8a7833520ab11339";
5
+ namespace: "Messaging";
6
+ }>;
7
+ export declare const Permissions_Messaging: DefaultDef_Package;
8
+ export declare const PermissionGroups_Messaging_Viewer: DefaultDef_Group;
9
+ export declare const PermissionGroups_Messaging_Editor: DefaultDef_Group;
10
+ export declare const PermissionGroups_Messaging_Delete: DefaultDef_Group;
11
+ export declare const PermissionGroups_Messaging_Admin: DefaultDef_Group;
12
+ export declare const PermissionGroups_Messaging: DefaultDef_Group[];
package/consts.js ADDED
@@ -0,0 +1,61 @@
1
+ import { filterInstances } from '@nu-art/ts-common';
2
+ import { ModulePackBE_Messaging } from './module-pack.js';
3
+ import { DefaultAccessLevel_Admin, DefaultAccessLevel_Delete, DefaultAccessLevel_Read, DefaultAccessLevel_Write, DuplicateDefaultAccessLevels } from '@nu-art/permissions/shared/consts';
4
+ export const DomainNamespace_Messaging = 'Messaging';
5
+ export const Domain_Messaging = Object.freeze({
6
+ _id: '2de76d8ea55ba2fc8a7833520ab11339',
7
+ namespace: DomainNamespace_Messaging
8
+ });
9
+ export const Permissions_Messaging = {
10
+ name: Domain_Messaging.namespace,
11
+ domains: [
12
+ {
13
+ ...Domain_Messaging,
14
+ levels: [...DuplicateDefaultAccessLevels(Domain_Messaging._id)],
15
+ dbNames: [
16
+ ...filterInstances(ModulePackBE_Messaging)
17
+ .filter(module => module.dbDef && module.dbDef.dbKey)
18
+ .map(module => module.dbDef),
19
+ ].map(dbDef => dbDef.dbKey)
20
+ }
21
+ ]
22
+ };
23
+ export const PermissionGroups_Messaging_Viewer = {
24
+ _id: 'e6bfc302f7ac81b8c61c97c4e0983b0f',
25
+ name: `${Domain_Messaging.namespace}/Read`,
26
+ uiLabel: `${Domain_Messaging.namespace}/Read`,
27
+ accessLevels: {
28
+ [Domain_Messaging.namespace]: DefaultAccessLevel_Read.name,
29
+ },
30
+ };
31
+ export const PermissionGroups_Messaging_Editor = {
32
+ _id: 'd9505032de4ae9f1036525676d689e1f',
33
+ name: `${Domain_Messaging.namespace}/Editor`,
34
+ uiLabel: `${Domain_Messaging.namespace}/Editor`,
35
+ accessLevels: {
36
+ [Domain_Messaging.namespace]: DefaultAccessLevel_Write.name,
37
+ },
38
+ };
39
+ export const PermissionGroups_Messaging_Delete = {
40
+ _id: 'e0550d1113874a31e2e3223f258e1340',
41
+ name: `${Domain_Messaging.namespace}/Delete`,
42
+ uiLabel: `${Domain_Messaging.namespace}/Delete`,
43
+ accessLevels: {
44
+ [Domain_Messaging.namespace]: DefaultAccessLevel_Delete.name,
45
+ },
46
+ };
47
+ export const PermissionGroups_Messaging_Admin = {
48
+ _id: '89ebc208e794028ebbbf9ea91c508603',
49
+ name: `${Domain_Messaging.namespace}/Admin`,
50
+ uiLabel: `${Domain_Messaging.namespace}/Admin`,
51
+ accessLevels: {
52
+ [Domain_Messaging.namespace]: DefaultAccessLevel_Admin.name,
53
+ },
54
+ };
55
+ export const PermissionGroups_Messaging = [
56
+ PermissionGroups_Messaging_Viewer,
57
+ PermissionGroups_Messaging_Editor,
58
+ PermissionGroups_Messaging_Delete,
59
+ PermissionGroups_Messaging_Admin,
60
+ ];
61
+ //# sourceMappingURL=consts.js.map
package/consts.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-messaging/backend/src/main/","sources":["consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAExD,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,GAAG,EAAE,kCAAkC;IACvC,SAAS,EAAE,yBAAyB;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACxD,IAAI,EAAE,gBAAgB,CAAC,SAAS;IAChC,OAAO,EAAE;QACR;YACC,GAAG,gBAAgB;YACnB,MAAM,EAAE,CAAC,GAAG,4BAA4B,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC/D,OAAO,EAAE;gBACR,GAAG,eAAe,CAAC,sBAAgD,CAAC;qBAClE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;qBACpD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;SAC3B;KACD;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAqB;IAClE,GAAG,EAAE,kCAAkC;IACvC,IAAI,EAAE,GAAG,gBAAgB,CAAC,SAAS,OAAO;IAC1C,OAAO,EAAE,GAAG,gBAAgB,CAAC,SAAS,OAAO;IAC7C,YAAY,EAAE;QACb,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC,IAAI;KAC1D;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAqB;IAClE,GAAG,EAAE,kCAAkC;IACvC,IAAI,EAAE,GAAG,gBAAgB,CAAC,SAAS,SAAS;IAC5C,OAAO,EAAE,GAAG,gBAAgB,CAAC,SAAS,SAAS;IAC/C,YAAY,EAAE;QACb,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,wBAAwB,CAAC,IAAI;KAC3D;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAqB;IAClE,GAAG,EAAE,kCAAkC;IACvC,IAAI,EAAE,GAAG,gBAAgB,CAAC,SAAS,SAAS;IAC5C,OAAO,EAAE,GAAG,gBAAgB,CAAC,SAAS,SAAS;IAC/C,YAAY,EAAE;QACb,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,IAAI;KAC5D;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAqB;IACjE,GAAG,EAAE,kCAAkC;IACvC,IAAI,EAAE,GAAG,gBAAgB,CAAC,SAAS,QAAQ;IAC3C,OAAO,EAAE,GAAG,gBAAgB,CAAC,SAAS,QAAQ;IAC9C,YAAY,EAAE;QACb,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,wBAAwB,CAAC,IAAI;KAC3D;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAuB;IAC7D,iCAAiC;IACjC,iCAAiC;IACjC,iCAAiC;IACjC,gCAAgC;CAChC,CAAC"}
package/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './module-pack.js';
2
+ export * from './consts.js';
package/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './module-pack.js';
2
+ export * from './consts.js';
3
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-messaging/backend/src/main/","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const ModulePackBE_Messaging: (import("./ModuleBE_MessageDB.js").ModuleBE_MessageDB_Class | import("./ModuleBE_TopicDB.js").ModuleBE_TopicDB_Class | import("@nu-art/thunderstorm/backend/index").ModuleBE_BaseApi_Class<import("@nu-art/ts-messaging-shared").DBProto_Message> | import("@nu-art/thunderstorm/backend/index").ModuleBE_BaseApi_Class<import("@nu-art/ts-messaging-shared").DBProto_Topic>)[];
package/module-pack.js ADDED
@@ -0,0 +1,8 @@
1
+ import { createApisForDBModuleV3 } from '@nu-art/thunderstorm/backend/index';
2
+ import { ModuleBE_MessageDB } from './ModuleBE_MessageDB.js';
3
+ import { ModuleBE_TopicDB } from './ModuleBE_TopicDB.js';
4
+ export const ModulePackBE_Messaging = [
5
+ ModuleBE_MessageDB, createApisForDBModuleV3(ModuleBE_MessageDB),
6
+ ModuleBE_TopicDB, createApisForDBModuleV3(ModuleBE_TopicDB)
7
+ ];
8
+ //# sourceMappingURL=module-pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-messaging/backend/src/main/","sources":["module-pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,kBAAkB,EAAE,uBAAuB,CAAC,kBAAkB,CAAC;IAC/D,gBAAgB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;CAC3D,CAAC"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@nu-art/ts-messaging-backend",
3
+ "version": "0.400.2",
4
+ "description": "Backend module for Thunderstorm messaging system that handles topics, discussions and messages management with Firebase integration",
5
+ "keywords": [
6
+ "TacB0sS",
7
+ "infra",
8
+ "nu-art",
9
+ "thunderstorm",
10
+ "typescript",
11
+ "ts-messaging"
12
+ ],
13
+ "homepage": "https://github.com/nu-art-js/thunderstorm",
14
+ "bugs": {
15
+ "url": "https://github.com/nu-art-js/thunderstorm/issues"
16
+ },
17
+ "publishConfig": {
18
+ "directory": "dist",
19
+ "linkDirectory": true
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+ssh://git@github.com:nu-art-js/thunderstorm.git"
24
+ },
25
+ "license": "Apache-2.0",
26
+ "author": "TacB0sS",
27
+ "files": [
28
+ "**/*"
29
+ ],
30
+ "scripts": {
31
+ "build": "tsc"
32
+ },
33
+ "dependencies": {
34
+ "@nu-art/ts-common": "0.400.2",
35
+ "@nu-art/thunderstorm": "0.400.2",
36
+ "@nu-art/user-account": "0.400.2",
37
+ "@nu-art/permissions": "0.400.2",
38
+ "@nu-art/ts-messaging-shared": "0.400.2",
39
+ "firebase": "^11.9.0",
40
+ "firebase-admin": "13.4.0",
41
+ "firebase-functions": "6.3.2",
42
+ "react": "^18.0.0"
43
+ },
44
+ "devDependencies": {
45
+ "@types/react": "^18.0.0",
46
+ "@types/chai": "^4.3.4",
47
+ "@types/mocha": "^10.0.1"
48
+ },
49
+ "unitConfig": {
50
+ "type": "typescript-lib"
51
+ },
52
+ "type": "module",
53
+ "exports": {
54
+ ".": {
55
+ "types": "./index.d.ts",
56
+ "import": "./index.js"
57
+ },
58
+ "./*": {
59
+ "types": "./*.d.ts",
60
+ "import": "./*.js"
61
+ }
62
+ }
63
+ }