@atproto/bsky 0.0.164 → 0.0.165
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/CHANGELOG.md +7 -0
- package/dist/data-plane/bsync/index.d.ts.map +1 -1
- package/dist/data-plane/bsync/index.js +2 -1
- package/dist/data-plane/bsync/index.js.map +1 -1
- package/dist/data-plane/server/routes/private-data.d.ts.map +1 -1
- package/dist/data-plane/server/routes/private-data.js +2 -1
- package/dist/data-plane/server/routes/private-data.js.map +1 -1
- package/dist/stash.d.ts +6 -2
- package/dist/stash.d.ts.map +1 -1
- package/dist/stash.js +4 -1
- package/dist/stash.js.map +1 -1
- package/package.json +4 -4
- package/src/data-plane/bsync/index.ts +2 -1
- package/src/data-plane/server/routes/private-data.ts +2 -1
- package/src/stash.ts +14 -4
- package/tests/stash.test.ts +2 -1
- package/tests/views/notifications.test.ts +15 -6
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data-plane/bsync/index.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data-plane/bsync/index.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAA;AAc5B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,qBAAa,SAAS;IACD,MAAM,EAAE,IAAI,CAAC,MAAM;gBAAnB,MAAM,EAAE,IAAI,CAAC,MAAM;WAEzB,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;IASxC,OAAO;CAWd"}
|
|
@@ -13,6 +13,7 @@ const syntax_1 = require("@atproto/syntax");
|
|
|
13
13
|
const lexicons_1 = require("../../lexicon/lexicons");
|
|
14
14
|
const bsync_connect_1 = require("../../proto/bsync_connect");
|
|
15
15
|
const bsync_pb_1 = require("../../proto/bsync_pb");
|
|
16
|
+
const stash_1 = require("../../stash");
|
|
16
17
|
class MockBsync {
|
|
17
18
|
constructor(server) {
|
|
18
19
|
Object.defineProperty(this, "server", {
|
|
@@ -153,7 +154,7 @@ const createRoutes = (db) => (router) => router.service(bsync_connect_1.Service,
|
|
|
153
154
|
throw new Error(`Unsupported method: ${method}`);
|
|
154
155
|
}
|
|
155
156
|
const now = new Date().toISOString();
|
|
156
|
-
if (namespace ===
|
|
157
|
+
if (namespace === stash_1.Namespaces.AppBskyNotificationDefsPreferences) {
|
|
157
158
|
await handleNotificationPreferencesOperation(db, req, now);
|
|
158
159
|
}
|
|
159
160
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data-plane/bsync/index.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAgC;AAChC,8DAAgC;AAGhC,iEAAsE;AACtE,sDAA6B;AAC7B,4CAAqC;AACrC,4CAAuC;AACvC,qDAA4C;AAC5C,6DAAmD;AACnD,mDAI6B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data-plane/bsync/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-data.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/private-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,EAIL,WAAW,EACZ,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAML,uBAAuB,EACxB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"private-data.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/private-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,EAIL,WAAW,EACZ,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAML,uBAAuB,EACxB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;yBAEhB,IAAI,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC;AAAnE,wBAuBE;AAEF,eAAO,MAAM,aAAa,GACxB,GAAG,WAAW,EACd,MAAM,MAAM,KACX,uBAiBF,CAAA"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.lexToProtobuf = void 0;
|
|
4
4
|
const common_1 = require("@atproto/common");
|
|
5
5
|
const bsky_pb_1 = require("../../../proto/bsky_pb");
|
|
6
|
+
const stash_1 = require("../../../stash");
|
|
6
7
|
exports.default = (db) => ({
|
|
7
8
|
async getNotificationPreferences(req) {
|
|
8
9
|
const { dids } = req;
|
|
@@ -10,7 +11,7 @@ exports.default = (db) => ({
|
|
|
10
11
|
.selectFrom('private_data')
|
|
11
12
|
.selectAll()
|
|
12
13
|
.where('actorDid', 'in', dids)
|
|
13
|
-
.where('namespace', '=',
|
|
14
|
+
.where('namespace', '=', stash_1.Namespaces.AppBskyNotificationDefsPreferences)
|
|
14
15
|
.where('key', '=', 'self')
|
|
15
16
|
.execute();
|
|
16
17
|
const byDid = (0, common_1.keyBy)(res, 'actorDid');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-data.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/private-data.ts"],"names":[],"mappings":";;;AACA,4CAAuC;AAQvC,oDAO+B;
|
|
1
|
+
{"version":3,"file":"private-data.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/private-data.ts"],"names":[],"mappings":"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"}
|
package/dist/stash.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { LexValue } from '@atproto/lexicon';
|
|
2
2
|
import { BsyncClient } from './bsync';
|
|
3
|
+
export declare const Namespaces: {
|
|
4
|
+
AppBskyNotificationDefsPreferences: string;
|
|
5
|
+
};
|
|
6
|
+
export type Namespace = (typeof Namespaces)[keyof typeof Namespaces];
|
|
3
7
|
export declare const createStashClient: (bsyncClient: BsyncClient) => StashClient;
|
|
4
8
|
export declare class StashClient {
|
|
5
9
|
private readonly bsyncClient;
|
|
@@ -12,14 +16,14 @@ export declare class StashClient {
|
|
|
12
16
|
}
|
|
13
17
|
type CreateInput = {
|
|
14
18
|
actorDid: string;
|
|
15
|
-
namespace:
|
|
19
|
+
namespace: Namespace;
|
|
16
20
|
key: string;
|
|
17
21
|
payload: LexValue;
|
|
18
22
|
};
|
|
19
23
|
type UpdateInput = CreateInput;
|
|
20
24
|
type DeleteInput = {
|
|
21
25
|
actorDid: string;
|
|
22
|
-
namespace:
|
|
26
|
+
namespace: Namespace;
|
|
23
27
|
key: string;
|
|
24
28
|
};
|
|
25
29
|
export {};
|
package/dist/stash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAOrC,eAAO,MAAM,UAAU;;CAGtB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAEpE,eAAO,MAAM,iBAAiB,GAAI,aAAa,WAAW,KAAG,WAE5D,CAAA;AAID,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAErD,MAAM,CAAC,KAAK,EAAE,WAAW;IAKzB,MAAM,CAAC,KAAK,EAAE,WAAW;IAKzB,MAAM,CAAC,KAAK,EAAE,WAAW;IAIzB,OAAO,CAAC,eAAe;YAOT,YAAY;CAiB3B;AASD,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,QAAQ,CAAA;CAClB,CAAA;AAED,KAAK,WAAW,GAAG,WAAW,CAAA;AAE9B,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA"}
|
package/dist/stash.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StashClient = exports.createStashClient = void 0;
|
|
3
|
+
exports.StashClient = exports.createStashClient = exports.Namespaces = void 0;
|
|
4
4
|
const lexicon_1 = require("@atproto/lexicon");
|
|
5
5
|
const lexicons_1 = require("./lexicon/lexicons");
|
|
6
6
|
const bsync_pb_1 = require("./proto/bsync_pb");
|
|
7
|
+
exports.Namespaces = {
|
|
8
|
+
AppBskyNotificationDefsPreferences: 'app.bsky.notification.defs#preferences',
|
|
9
|
+
};
|
|
7
10
|
const createStashClient = (bsyncClient) => {
|
|
8
11
|
return new StashClient(bsyncClient);
|
|
9
12
|
};
|
package/dist/stash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":";;;AAAA,8CAAyD;AAEzD,iDAA6C;
|
|
1
|
+
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":";;;AAAA,8CAAyD;AAEzD,iDAA6C;AAE7C,+CAAyC;AAI5B,QAAA,UAAU,GAAG;IACxB,kCAAkC,EAChC,wCAAwE;CAC3E,CAAA;AAIM,MAAM,iBAAiB,GAAG,CAAC,WAAwB,EAAe,EAAE;IACzE,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAA;AACrC,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B;AAED,8EAA8E;AAC9E,2FAA2F;AAC3F,MAAa,WAAW;IACtB,YAA6B,WAAwB;QAAzC;;;;mBAAiB,WAAW;WAAa;IAAG,CAAC;IAEzD,MAAM,CAAC,KAAkB;QACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAM,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IAC3E,CAAC;IAEO,eAAe,CAAC,SAAoB,EAAE,OAAiB;QAC7D,MAAM,MAAM,GAAG,mBAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,KAAK,CAAA;QACpB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,KAAwB;QACjE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;QACnD,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;YAClC,QAAQ;YACR,SAAS;YACT,GAAG;YACH,MAAM;YACN,OAAO,EAAE,OAAO;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,IAAA,sBAAY,EAAC;oBACX,KAAK,EAAE,SAAS;oBAChB,GAAG,OAAO;iBACX,CAAC,CACH;gBACH,CAAC,CAAC,SAAS;SACd,CAAC,CAAA;IACJ,CAAC;CACF;AAzCD,kCAyCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/bsky",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.165",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Reference implementation of app.bsky App View (Bluesky API)",
|
|
6
6
|
"keywords": [
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"undici": "^6.19.8",
|
|
50
50
|
"@atproto-labs/fetch-node": "0.1.9",
|
|
51
51
|
"@atproto-labs/xrpc-utils": "0.0.16",
|
|
52
|
-
"@atproto/api": "^0.15.
|
|
52
|
+
"@atproto/api": "^0.15.19",
|
|
53
53
|
"@atproto/common": "^0.4.11",
|
|
54
54
|
"@atproto/crypto": "^0.4.4",
|
|
55
55
|
"@atproto/did": "^0.1.5",
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
"jest": "^28.1.2",
|
|
74
74
|
"ts-node": "^10.8.2",
|
|
75
75
|
"typescript": "^5.6.3",
|
|
76
|
-
"@atproto/api": "^0.15.
|
|
76
|
+
"@atproto/api": "^0.15.19",
|
|
77
77
|
"@atproto/lex-cli": "^0.8.3",
|
|
78
|
-
"@atproto/pds": "^0.4.
|
|
78
|
+
"@atproto/pds": "^0.4.154",
|
|
79
79
|
"@atproto/xrpc": "^0.7.0"
|
|
80
80
|
},
|
|
81
81
|
"scripts": {
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
MuteOperation_Type,
|
|
14
14
|
PutOperationRequest,
|
|
15
15
|
} from '../../proto/bsync_pb'
|
|
16
|
+
import { Namespaces } from '../../stash'
|
|
16
17
|
import { Database } from '../server/db'
|
|
17
18
|
|
|
18
19
|
export class MockBsync {
|
|
@@ -154,7 +155,7 @@ const createRoutes = (db: Database) => (router: ConnectRouter) =>
|
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
const now = new Date().toISOString()
|
|
157
|
-
if (namespace ===
|
|
158
|
+
if (namespace === Namespaces.AppBskyNotificationDefsPreferences) {
|
|
158
159
|
await handleNotificationPreferencesOperation(db, req, now)
|
|
159
160
|
} else {
|
|
160
161
|
await handleGenericOperation(db, req, now)
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
NotificationPreference,
|
|
16
16
|
NotificationPreferences,
|
|
17
17
|
} from '../../../proto/bsky_pb'
|
|
18
|
+
import { Namespaces } from '../../../stash'
|
|
18
19
|
import { Database } from '../db'
|
|
19
20
|
|
|
20
21
|
export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
@@ -24,7 +25,7 @@ export default (db: Database): Partial<ServiceImpl<typeof Service>> => ({
|
|
|
24
25
|
.selectFrom('private_data')
|
|
25
26
|
.selectAll()
|
|
26
27
|
.where('actorDid', 'in', dids)
|
|
27
|
-
.where('namespace', '=',
|
|
28
|
+
.where('namespace', '=', Namespaces.AppBskyNotificationDefsPreferences)
|
|
28
29
|
.where('key', '=', 'self')
|
|
29
30
|
.execute()
|
|
30
31
|
|
package/src/stash.ts
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import { LexValue, stringifyLex } from '@atproto/lexicon'
|
|
2
2
|
import { BsyncClient } from './bsync'
|
|
3
3
|
import { lexicons } from './lexicon/lexicons'
|
|
4
|
+
import { Preferences } from './lexicon/types/app/bsky/notification/defs'
|
|
4
5
|
import { Method } from './proto/bsync_pb'
|
|
5
6
|
|
|
7
|
+
type PickNSID<T extends { $type?: string }> = Exclude<T['$type'], undefined>
|
|
8
|
+
|
|
9
|
+
export const Namespaces = {
|
|
10
|
+
AppBskyNotificationDefsPreferences:
|
|
11
|
+
'app.bsky.notification.defs#preferences' satisfies PickNSID<Preferences>,
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type Namespace = (typeof Namespaces)[keyof typeof Namespaces]
|
|
15
|
+
|
|
6
16
|
export const createStashClient = (bsyncClient: BsyncClient): StashClient => {
|
|
7
17
|
return new StashClient(bsyncClient)
|
|
8
18
|
}
|
|
@@ -26,7 +36,7 @@ export class StashClient {
|
|
|
26
36
|
return this.putOperation(Method.DELETE, { ...input, payload: undefined })
|
|
27
37
|
}
|
|
28
38
|
|
|
29
|
-
private validateLexicon(namespace:
|
|
39
|
+
private validateLexicon(namespace: Namespace, payload: LexValue) {
|
|
30
40
|
const result = lexicons.validate(namespace, payload)
|
|
31
41
|
if (!result.success) {
|
|
32
42
|
throw result.error
|
|
@@ -54,14 +64,14 @@ export class StashClient {
|
|
|
54
64
|
|
|
55
65
|
type PutOperationInput = {
|
|
56
66
|
actorDid: string
|
|
57
|
-
namespace:
|
|
67
|
+
namespace: Namespace
|
|
58
68
|
key: string
|
|
59
69
|
payload: LexValue | undefined
|
|
60
70
|
}
|
|
61
71
|
|
|
62
72
|
type CreateInput = {
|
|
63
73
|
actorDid: string
|
|
64
|
-
namespace:
|
|
74
|
+
namespace: Namespace
|
|
65
75
|
key: string
|
|
66
76
|
payload: LexValue
|
|
67
77
|
}
|
|
@@ -70,6 +80,6 @@ type UpdateInput = CreateInput
|
|
|
70
80
|
|
|
71
81
|
type DeleteInput = {
|
|
72
82
|
actorDid: string
|
|
73
|
-
namespace:
|
|
83
|
+
namespace: Namespace
|
|
74
84
|
key: string
|
|
75
85
|
}
|
package/tests/stash.test.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TestNetwork } from '@atproto/dev-env'
|
|
2
2
|
import { ProfileAssociatedChat } from '../dist/lexicon/types/app/bsky/actor/defs'
|
|
3
3
|
import { StashClient } from '../dist/stash'
|
|
4
|
+
import { Namespace } from '../src/stash'
|
|
4
5
|
|
|
5
6
|
type Database = TestNetwork['bsky']['db']
|
|
6
7
|
|
|
@@ -11,7 +12,7 @@ describe('private data', () => {
|
|
|
11
12
|
|
|
12
13
|
const actorDid = 'did:plc:example'
|
|
13
14
|
// This lexicon has nothing special other than being simple, convenient to use in a test.
|
|
14
|
-
const namespace = 'app.bsky.actor.defs#profileAssociatedChat'
|
|
15
|
+
const namespace = 'app.bsky.actor.defs#profileAssociatedChat' as Namespace
|
|
15
16
|
const key = 'self'
|
|
16
17
|
|
|
17
18
|
const validPayload0: ProfileAssociatedChat = { allowIncoming: 'all' }
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AtpAgent } from '@atproto/api'
|
|
2
2
|
import { SeedClient, TestNetwork, basicSeed } from '@atproto/dev-env'
|
|
3
|
+
import { Namespaces } from '../../dist/stash'
|
|
3
4
|
import { delayCursor } from '../../src/api/app/bsky/notification/listNotifications'
|
|
4
5
|
import { ids } from '../../src/lexicon/lexicons'
|
|
5
6
|
import {
|
|
@@ -960,7 +961,11 @@ describe('notification views', () => {
|
|
|
960
961
|
.selectFrom('private_data')
|
|
961
962
|
.selectAll()
|
|
962
963
|
.where('actorDid', '=', actorDid)
|
|
963
|
-
.where(
|
|
964
|
+
.where(
|
|
965
|
+
'namespace',
|
|
966
|
+
'=',
|
|
967
|
+
Namespaces.AppBskyNotificationDefsPreferences,
|
|
968
|
+
)
|
|
964
969
|
.where('key', '=', 'self')
|
|
965
970
|
.executeTakeFirst()
|
|
966
971
|
if (dbResult === undefined) {
|
|
@@ -968,14 +973,14 @@ describe('notification views', () => {
|
|
|
968
973
|
} else {
|
|
969
974
|
expect(dbResult).toStrictEqual({
|
|
970
975
|
actorDid: actorDid,
|
|
971
|
-
namespace:
|
|
976
|
+
namespace: Namespaces.AppBskyNotificationDefsPreferences,
|
|
972
977
|
key: 'self',
|
|
973
978
|
indexedAt: expect.any(String),
|
|
974
979
|
payload: expect.anything(), // Better to compare payload parsed.
|
|
975
980
|
updatedAt: expect.any(String),
|
|
976
981
|
})
|
|
977
982
|
expect(JSON.parse(dbResult.payload)).toStrictEqual({
|
|
978
|
-
$type:
|
|
983
|
+
$type: Namespaces.AppBskyNotificationDefsPreferences,
|
|
979
984
|
...expectedDb,
|
|
980
985
|
})
|
|
981
986
|
}
|
|
@@ -1056,19 +1061,23 @@ describe('notification views', () => {
|
|
|
1056
1061
|
.selectFrom('private_data')
|
|
1057
1062
|
.selectAll()
|
|
1058
1063
|
.where('actorDid', '=', actorDid)
|
|
1059
|
-
.where(
|
|
1064
|
+
.where(
|
|
1065
|
+
'namespace',
|
|
1066
|
+
'=',
|
|
1067
|
+
Namespaces.AppBskyNotificationDefsPreferences,
|
|
1068
|
+
)
|
|
1060
1069
|
.where('key', '=', 'self')
|
|
1061
1070
|
.executeTakeFirstOrThrow()
|
|
1062
1071
|
expect(dbResult).toStrictEqual({
|
|
1063
1072
|
actorDid: actorDid,
|
|
1064
|
-
namespace:
|
|
1073
|
+
namespace: Namespaces.AppBskyNotificationDefsPreferences,
|
|
1065
1074
|
key: 'self',
|
|
1066
1075
|
indexedAt: expect.any(String),
|
|
1067
1076
|
payload: expect.anything(), // Better to compare payload parsed.
|
|
1068
1077
|
updatedAt: expect.any(String),
|
|
1069
1078
|
})
|
|
1070
1079
|
expect(JSON.parse(dbResult.payload)).toStrictEqual({
|
|
1071
|
-
$type:
|
|
1080
|
+
$type: Namespaces.AppBskyNotificationDefsPreferences,
|
|
1072
1081
|
...expected,
|
|
1073
1082
|
})
|
|
1074
1083
|
}
|