@nu-art/push-pub-sub-backend 0.500.0 → 0.500.6
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/core/module-pack.d.ts +1 -1
- package/core/permissions.d.ts +1 -5
- package/core/permissions.js +2 -45
- package/modules/ModuleBE_PushMessagesHistoryDB.d.ts +1 -1
- package/modules/ModuleBE_PushMessagesHistoryDB.js +1 -1
- package/modules/ModuleBE_PushPubSub.js +11 -11
- package/modules/ModuleBE_PushSessionDB.d.ts +1 -1
- package/modules/ModuleBE_PushSessionDB.js +1 -1
- package/modules/ModuleBE_PushSubscriptionDB.d.ts +2 -2
- package/modules/ModuleBE_PushSubscriptionDB.js +1 -1
- package/package.json +12 -12
package/core/module-pack.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const ModulePackBE_PushPubSub: (import("../modules/ModuleBE_PushSessionDB.js").ModuleBE_PushSessionDB_Class | import("../modules/ModuleBE_PushSubscriptionDB.js").ModuleBE_PushSubscriptionDB_Class | import("@nu-art/db-api-backend").ModuleBE_BaseApi_Class<import("@nu-art/push-pub-sub-shared/push-subscription/types").DatabaseDef_PushSubscription & import("@nu-art/db-api-shared").DB_Prototype> | import("../modules/ModuleBE_PushMessagesHistoryDB.js").ModuleBE_PushMessagesHistoryDB_Class | import("../modules/ModuleBE_PushPubSub.js").ModuleBE_PushPubSub_Class)[];
|
|
1
|
+
export declare const ModulePackBE_PushPubSub: (import("../modules/ModuleBE_PushSessionDB.js").ModuleBE_PushSessionDB_Class | import("../modules/ModuleBE_PushSubscriptionDB.js").ModuleBE_PushSubscriptionDB_Class | import("@nu-art/db-api-backend").ModuleBE_BaseApi_Class<import("@nu-art/push-pub-sub-shared/push-subscription/types").DatabaseDef_PushSubscription & import("@nu-art/db-api-shared").DB_Prototype, any> | import("../modules/ModuleBE_PushMessagesHistoryDB.js").ModuleBE_PushMessagesHistoryDB_Class | import("../modules/ModuleBE_PushPubSub.js").ModuleBE_PushPubSub_Class)[];
|
|
2
2
|
export * from '../modules/ModuleBE_PushPubSub.js';
|
|
3
3
|
export * from '../modules/PushKey.js';
|
package/core/permissions.d.ts
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { DefaultDef_Domain, DefaultDef_Package } from '@nu-art/permissions-backend';
|
|
3
|
-
export declare const PermissionsDomain_PushMessages: Readonly<DefaultDef_Domain>;
|
|
4
|
-
export declare const PermissionsGroup_PushMessanger: Readonly<DefaultDef_Group>;
|
|
5
|
-
export declare const PermissionsPackage_PushMessages: DefaultDef_Package;
|
|
1
|
+
export {};
|
package/core/permissions.js
CHANGED
|
@@ -1,45 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { Domain_Developer } from '@nu-art/permissions-backend';
|
|
4
|
-
import { ModuleBE_PushSubscriptionAPI } from '../modules/ModuleBE_PushSubscriptionDB.js';
|
|
5
|
-
import { _values } from '@nu-art/ts-common';
|
|
6
|
-
const Domain_PushMessages_ID = 'ce2e840bb639c34887ae19c2c7c82c11';
|
|
7
|
-
const DefaultAccessLevel_Passive = Object.freeze({ name: 'Passive', value: 0 });
|
|
8
|
-
const DefaultAccessLevel_Active = Object.freeze({ name: 'Active', value: 0 });
|
|
9
|
-
const DefaultAccessLevel_Tester = Object.freeze({ name: 'Tester', value: 600 });
|
|
10
|
-
const accessLevels = [{ ...DefaultAccessLevel_Passive }, { ...DefaultAccessLevel_Active }, { ...DefaultAccessLevel_Tester }];
|
|
11
|
-
const _PermissionsDomain_PushMessages = {
|
|
12
|
-
_id: toPermissionDomainId(Domain_PushMessages_ID),
|
|
13
|
-
namespace: 'Push Messages',
|
|
14
|
-
dbNames: [],
|
|
15
|
-
levels: CreateDefaultAccessLevels(Domain_PushMessages_ID, accessLevels).map(level => ({ ...level, _id: toPermissionAccessLevelId(level._id) })),
|
|
16
|
-
customApis: [
|
|
17
|
-
..._values(ModuleBE_PushSubscriptionAPI.crudApiDef).map(api => {
|
|
18
|
-
return {
|
|
19
|
-
path: api.path,
|
|
20
|
-
accessLevel: DefaultAccessLevel_Admin.name,
|
|
21
|
-
domainId: Domain_Developer._id
|
|
22
|
-
};
|
|
23
|
-
}),
|
|
24
|
-
{ path: ApiDef_PushMessages.test.path, accessLevel: DefaultAccessLevel_Admin.name, domainId: Domain_Developer._id },
|
|
25
|
-
{ path: ApiDef_PushMessages.register.path, accessLevel: DefaultAccessLevel_Active.name },
|
|
26
|
-
{ path: ApiDef_PushMessages.registerAll.path, accessLevel: DefaultAccessLevel_Active.name },
|
|
27
|
-
{ path: ApiDef_PushMessages.unregister.path, accessLevel: DefaultAccessLevel_Active.name },
|
|
28
|
-
]
|
|
29
|
-
};
|
|
30
|
-
export const PermissionsDomain_PushMessages = Object.freeze(_PermissionsDomain_PushMessages);
|
|
31
|
-
const PermissionsGroupId_ProactivePushMessanger = '7f2c8925a6fdd2bcb9be3c1c0932deef';
|
|
32
|
-
const _PermissionsGroup_ProactivePushMessanger = {
|
|
33
|
-
_id: toPermissionGroupId(PermissionsGroupId_ProactivePushMessanger),
|
|
34
|
-
name: 'Push Messanger',
|
|
35
|
-
uiLabel: 'Push Messenger',
|
|
36
|
-
accessLevels: {
|
|
37
|
-
[PermissionsDomain_PushMessages.namespace]: DefaultAccessLevel_Tester.name,
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
export const PermissionsGroup_PushMessanger = Object.freeze(_PermissionsGroup_ProactivePushMessanger);
|
|
41
|
-
export const PermissionsPackage_PushMessages = {
|
|
42
|
-
name: PermissionsDomain_PushMessages.namespace,
|
|
43
|
-
domains: [PermissionsDomain_PushMessages],
|
|
44
|
-
groups: [PermissionsGroup_PushMessanger]
|
|
45
|
-
};
|
|
1
|
+
export {};
|
|
2
|
+
// Legacy domain-level permissions removed; use scope-based permissions.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DB_Prototype } from '@nu-art/db-api-shared';
|
|
2
2
|
import { ModuleBE_BaseDB } from '@nu-art/db-api-backend';
|
|
3
|
-
import { DatabaseDef_PushMessagesHistory } from '@nu-art/push-pub-sub-shared/push-messages-history/
|
|
3
|
+
import { DatabaseDef_PushMessagesHistory } from '@nu-art/push-pub-sub-shared/push-messages-history/types';
|
|
4
4
|
export declare class ModuleBE_PushMessagesHistoryDB_Class extends ModuleBE_BaseDB<DatabaseDef_PushMessagesHistory & DB_Prototype, object> {
|
|
5
5
|
constructor();
|
|
6
6
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModuleBE_BaseDB } from '@nu-art/db-api-backend';
|
|
2
|
-
import { DBDef_PushMessagesHistory } from '@nu-art/push-pub-sub-shared/push-messages-history/
|
|
2
|
+
import { DBDef_PushMessagesHistory } from '@nu-art/push-pub-sub-shared/push-messages-history/db-def';
|
|
3
3
|
export class ModuleBE_PushMessagesHistoryDB_Class extends ModuleBE_BaseDB {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(DBDef_PushMessagesHistory);
|
|
@@ -52,7 +52,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
52
52
|
import { arrayToMap, batchActionParallel, compare, currentTimeMillis, Day, filterDuplicates, filterKeys, KB, LogLevel, Module } from '@nu-art/ts-common';
|
|
53
53
|
import { ModuleBE_Firebase } from '@nu-art/firebase-backend';
|
|
54
54
|
import { ApiDef_PushMessages } from '@nu-art/push-pub-sub-shared';
|
|
55
|
-
import { ApiHandler
|
|
55
|
+
import { ApiHandler } from '@nu-art/http-server';
|
|
56
56
|
import { MemKey_AccountId } from '@nu-art/user-account-backend';
|
|
57
57
|
import { ModuleBE_PushSessionDB } from './ModuleBE_PushSessionDB.js';
|
|
58
58
|
import { ModuleBE_PushSubscriptionDB } from './ModuleBE_PushSubscriptionDB.js';
|
|
@@ -68,10 +68,10 @@ let ModuleBE_PushPubSub_Class = (() => {
|
|
|
68
68
|
return class ModuleBE_PushPubSub_Class extends _classSuper {
|
|
69
69
|
static {
|
|
70
70
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
71
|
-
_test_decorators = [ApiHandler(ApiDef_PushMessages.test
|
|
72
|
-
_register_decorators = [ApiHandler(ApiDef_PushMessages.register
|
|
73
|
-
_unregister_decorators = [ApiHandler(ApiDef_PushMessages.unregister
|
|
74
|
-
_registerAll_decorators = [ApiHandler(ApiDef_PushMessages.registerAll
|
|
71
|
+
_test_decorators = [ApiHandler(ApiDef_PushMessages.test)];
|
|
72
|
+
_register_decorators = [ApiHandler(ApiDef_PushMessages.register)];
|
|
73
|
+
_unregister_decorators = [ApiHandler(ApiDef_PushMessages.unregister)];
|
|
74
|
+
_registerAll_decorators = [ApiHandler(ApiDef_PushMessages.registerAll)];
|
|
75
75
|
__esDecorate(this, null, _test_decorators, { kind: "method", name: "test", static: false, private: false, access: { has: obj => "test" in obj, get: obj => obj.test }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
76
76
|
__esDecorate(this, null, _register_decorators, { kind: "method", name: "register", static: false, private: false, access: { has: obj => "register" in obj, get: obj => obj.register }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
77
77
|
__esDecorate(this, null, _unregister_decorators, { kind: "method", name: "unregister", static: false, private: false, access: { has: obj => "unregister" in obj, get: obj => obj.unregister }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -121,13 +121,13 @@ let ModuleBE_PushPubSub_Class = (() => {
|
|
|
121
121
|
...subscription
|
|
122
122
|
});
|
|
123
123
|
});
|
|
124
|
-
await ModuleBE_PushSubscriptionDB.runTransaction(async (
|
|
125
|
-
const data = await ModuleBE_PushSubscriptionDB.query.where({ pushSessionId: body.pushSessionId }
|
|
124
|
+
await ModuleBE_PushSubscriptionDB.runTransaction(async () => {
|
|
125
|
+
const data = await ModuleBE_PushSubscriptionDB.query.where({ pushSessionId: body.pushSessionId });
|
|
126
126
|
const toInsert = subscriptions.filter(s => !data.find(d => d.topic === s.topic && compare(s.filter, d.filter)));
|
|
127
127
|
if (toInsert.length === 0)
|
|
128
128
|
return;
|
|
129
129
|
this.logWarning(`Subscribe on: `, toInsert);
|
|
130
|
-
return ModuleBE_PushSubscriptionDB.create.all(toInsert
|
|
130
|
+
return ModuleBE_PushSubscriptionDB.create.all(toInsert);
|
|
131
131
|
});
|
|
132
132
|
};
|
|
133
133
|
// ---------------------------
|
|
@@ -137,8 +137,8 @@ let ModuleBE_PushPubSub_Class = (() => {
|
|
|
137
137
|
if (messageLength > this.config.messageLengthLimit)
|
|
138
138
|
throw HttpCodes._4XX.BAD_REQUEST(`Message content too long, ${messageLength} > ${this.config.messageLengthLimit}`);
|
|
139
139
|
const messageSubscription = { topic: message.topic, props: message.filter };
|
|
140
|
-
const newVar = async (
|
|
141
|
-
let subscriptions = await ModuleBE_PushSubscriptionDB.query.where({ topic: message.topic }
|
|
140
|
+
const newVar = async () => {
|
|
141
|
+
let subscriptions = await ModuleBE_PushSubscriptionDB.query.where({ topic: message.topic });
|
|
142
142
|
this.logVerbose(`Found ${subscriptions.length} subscribers for message: `, messageSubscription);
|
|
143
143
|
if (message.filter)
|
|
144
144
|
subscriptions = subscriptions.filter(subscription => !subscription.filter || compare(subscription.filter, message.filter));
|
|
@@ -147,7 +147,7 @@ let ModuleBE_PushPubSub_Class = (() => {
|
|
|
147
147
|
const sessionsIds = subscriptions.map(d => d.pushSessionId);
|
|
148
148
|
// I get the tokens relative to those sessions (query)
|
|
149
149
|
this.logDebug(`Sending push to:`, ` -- Sessions:`, sessionsIds, ` -- Message: `, message);
|
|
150
|
-
const pushSessions = await batchActionParallel(sessionsIds, 10, async (elements) => ModuleBE_PushSessionDB.query.where({ pushSessionId: { $in: elements } }
|
|
150
|
+
const pushSessions = await batchActionParallel(sessionsIds, 10, async (elements) => ModuleBE_PushSessionDB.query.where({ pushSessionId: { $in: elements } }));
|
|
151
151
|
const map_sessionIdToSession = arrayToMap(pushSessions, session => session.pushSessionId);
|
|
152
152
|
subscriptions = subscriptions.filter(subscription => map_sessionIdToSession[subscription.pushSessionId]);
|
|
153
153
|
const messagesToCreate = subscriptions.map((subscription) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DB_Prototype } from '@nu-art/db-api-shared';
|
|
2
2
|
import { ModuleBE_BaseDB } from '@nu-art/db-api-backend';
|
|
3
|
-
import { DatabaseDef_PushSession } from '@nu-art/push-pub-sub-shared/push-session/
|
|
3
|
+
import { DatabaseDef_PushSession } from '@nu-art/push-pub-sub-shared/push-session/types';
|
|
4
4
|
export declare class ModuleBE_PushSessionDB_Class extends ModuleBE_BaseDB<DatabaseDef_PushSession & DB_Prototype, object> {
|
|
5
5
|
constructor();
|
|
6
6
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModuleBE_BaseDB } from '@nu-art/db-api-backend';
|
|
2
|
-
import { DBDef_PushSession } from '@nu-art/push-pub-sub-shared/push-session/
|
|
2
|
+
import { DBDef_PushSession } from '@nu-art/push-pub-sub-shared/push-session/db-def';
|
|
3
3
|
export class ModuleBE_PushSessionDB_Class extends ModuleBE_BaseDB {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(DBDef_PushSession);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { DB_Prototype } from '@nu-art/db-api-shared';
|
|
2
2
|
import { ModuleBE_BaseDB } from '@nu-art/db-api-backend';
|
|
3
|
-
import { DatabaseDef_PushSubscription } from '@nu-art/push-pub-sub-shared/push-subscription/
|
|
3
|
+
import { DatabaseDef_PushSubscription } from '@nu-art/push-pub-sub-shared/push-subscription/types';
|
|
4
4
|
export declare class ModuleBE_PushSubscriptionDB_Class extends ModuleBE_BaseDB<DatabaseDef_PushSubscription & DB_Prototype, object> {
|
|
5
5
|
constructor();
|
|
6
6
|
}
|
|
7
7
|
export declare const ModuleBE_PushSubscriptionDB: ModuleBE_PushSubscriptionDB_Class;
|
|
8
|
-
export declare const ModuleBE_PushSubscriptionAPI: import("@nu-art/db-api-backend").ModuleBE_BaseApi_Class<DatabaseDef_PushSubscription & DB_Prototype>;
|
|
8
|
+
export declare const ModuleBE_PushSubscriptionAPI: import("@nu-art/db-api-backend").ModuleBE_BaseApi_Class<DatabaseDef_PushSubscription & DB_Prototype, any>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createApisForDBModule, ModuleBE_BaseDB } from '@nu-art/db-api-backend';
|
|
2
|
-
import { DBDef_PushSubscription } from '@nu-art/push-pub-sub-shared/push-subscription/
|
|
2
|
+
import { DBDef_PushSubscription } from '@nu-art/push-pub-sub-shared/push-subscription/db-def';
|
|
3
3
|
export class ModuleBE_PushSubscriptionDB_Class extends ModuleBE_BaseDB {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(DBDef_PushSubscription);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nu-art/push-pub-sub-backend",
|
|
3
|
-
"version": "0.500.
|
|
3
|
+
"version": "0.500.6",
|
|
4
4
|
"description": "push-pub-sub Backend",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"TacB0sS",
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
"author": "TacB0sS",
|
|
24
24
|
"scripts": {},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@nu-art/push-pub-sub-shared": "0.500.
|
|
27
|
-
"@nu-art/firebase-backend": "0.500.
|
|
28
|
-
"@nu-art/firebase-shared": "0.500.
|
|
29
|
-
"@nu-art/permissions-backend": "0.500.
|
|
30
|
-
"@nu-art/permissions-shared": "0.500.
|
|
31
|
-
"@nu-art/db-api-backend": "0.500.
|
|
32
|
-
"@nu-art/db-api-shared": "0.500.
|
|
33
|
-
"@nu-art/http-server": "
|
|
34
|
-
"@nu-art/ts-common": "0.500.
|
|
35
|
-
"@nu-art/user-account-backend": "0.500.
|
|
36
|
-
"@nu-art/user-account-shared": "0.500.
|
|
26
|
+
"@nu-art/push-pub-sub-shared": "0.500.6",
|
|
27
|
+
"@nu-art/firebase-backend": "0.500.6",
|
|
28
|
+
"@nu-art/firebase-shared": "0.500.6",
|
|
29
|
+
"@nu-art/permissions-backend": "0.500.6",
|
|
30
|
+
"@nu-art/permissions-shared": "0.500.6",
|
|
31
|
+
"@nu-art/db-api-backend": "0.500.6",
|
|
32
|
+
"@nu-art/db-api-shared": "0.500.6",
|
|
33
|
+
"@nu-art/http-server": "0.500.6",
|
|
34
|
+
"@nu-art/ts-common": "0.500.6",
|
|
35
|
+
"@nu-art/user-account-backend": "0.500.6",
|
|
36
|
+
"@nu-art/user-account-shared": "0.500.6",
|
|
37
37
|
"firebase": "^11.9.0",
|
|
38
38
|
"firebase-admin": "13.4.0",
|
|
39
39
|
"moment": "^2.29.4",
|