@powerhousedao/reactor-api 6.0.0-dev.67 → 6.0.0-dev.69
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.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/src/graphql/base-subgraph.d.ts +1 -2
- package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
- package/dist/src/graphql/base-subgraph.js +0 -2
- package/dist/src/graphql/base-subgraph.js.map +1 -1
- package/dist/src/graphql/document-model-subgraph.d.ts +0 -13
- package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -1
- package/dist/src/graphql/document-model-subgraph.js +6 -150
- package/dist/src/graphql/document-model-subgraph.js.map +1 -1
- package/dist/src/graphql/graphql-manager.d.ts +9 -4
- package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
- package/dist/src/graphql/graphql-manager.js +45 -27
- package/dist/src/graphql/graphql-manager.js.map +1 -1
- package/dist/src/graphql/index.d.ts +0 -1
- package/dist/src/graphql/index.d.ts.map +1 -1
- package/dist/src/graphql/index.js +0 -1
- package/dist/src/graphql/index.js.map +1 -1
- package/dist/src/graphql/reactor/resolvers.d.ts +1 -0
- package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
- package/dist/src/graphql/reactor/resolvers.js +33 -4
- package/dist/src/graphql/reactor/resolvers.js.map +1 -1
- package/dist/src/graphql/types.d.ts +1 -4
- package/dist/src/graphql/types.d.ts.map +1 -1
- package/dist/src/graphql/utils.d.ts +1 -18
- package/dist/src/graphql/utils.d.ts.map +1 -1
- package/dist/src/graphql/utils.js +0 -32
- package/dist/src/graphql/utils.js.map +1 -1
- package/dist/src/server.d.ts +0 -5
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +5 -6
- package/dist/src/server.js.map +1 -1
- package/dist/src/utils/create-schema.d.ts +4 -5
- package/dist/src/utils/create-schema.d.ts.map +1 -1
- package/dist/src/utils/create-schema.js +5 -6
- package/dist/src/utils/create-schema.js.map +1 -1
- package/dist/test/document-model-subgraph-permissions.test.js +2 -12
- package/dist/test/document-model-subgraph-permissions.test.js.map +1 -1
- package/dist/test/index.d.ts +0 -1
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +0 -1
- package/dist/test/index.js.map +1 -1
- package/dist/test/permissions-integration.test.js +1 -1
- package/dist/test/permissions-integration.test.js.map +1 -1
- package/dist/test/reactor-subgraph-permissions.test.js +1 -1
- package/dist/test/reactor-subgraph-permissions.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/dist/src/graphql/drive-subgraph.d.ts +0 -25
- package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/drive-subgraph.js +0 -499
- package/dist/src/graphql/drive-subgraph.js.map +0 -1
- package/dist/src/sync/types.d.ts +0 -10
- package/dist/src/sync/types.d.ts.map +0 -1
- package/dist/src/sync/types.js +0 -2
- package/dist/src/sync/types.js.map +0 -1
- package/dist/src/sync/utils.d.ts +0 -7
- package/dist/src/sync/utils.d.ts.map +0 -1
- package/dist/src/sync/utils.js +0 -78
- package/dist/src/sync/utils.js.map +0 -1
- package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts +0 -2
- package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts.map +0 -1
- package/dist/test/document-model-subgraph-legacy-permissions.test.js +0 -460
- package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +0 -1
- package/dist/test/document-model-subgraph.test.d.ts +0 -2
- package/dist/test/document-model-subgraph.test.d.ts.map +0 -1
- package/dist/test/document-model-subgraph.test.js +0 -439
- package/dist/test/document-model-subgraph.test.js.map +0 -1
- package/dist/test/drive-handlers.d.ts +0 -4
- package/dist/test/drive-handlers.d.ts.map +0 -1
- package/dist/test/drive-handlers.js +0 -39
- package/dist/test/drive-handlers.js.map +0 -1
- package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/drive-subgraph-permissions.test.js +0 -166
- package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
- package/dist/test/drive.test.d.ts +0 -2
- package/dist/test/drive.test.d.ts.map +0 -1
- package/dist/test/drive.test.js +0 -142
- package/dist/test/drive.test.js.map +0 -1
- package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
- package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
- package/dist/test/pull-responder-transmitter.test.js +0 -220
- package/dist/test/pull-responder-transmitter.test.js.map +0 -1
- package/dist/test/push-transmitter.test.d.ts +0 -2
- package/dist/test/push-transmitter.test.d.ts.map +0 -1
- package/dist/test/push-transmitter.test.js +0 -179
- package/dist/test/push-transmitter.test.js.map +0 -1
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { DriveSubgraph } from "@powerhousedao/reactor-api";
|
|
2
|
-
import { testSetupReactor } from "@powerhousedao/reactor-api/test";
|
|
3
|
-
import { generateId } from "document-model/core";
|
|
4
|
-
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
5
|
-
describe("DriveSubgraph Permission Checks", () => {
|
|
6
|
-
let mockDocumentPermissionService;
|
|
7
|
-
let driveSubgraph;
|
|
8
|
-
let driveId;
|
|
9
|
-
// Helper to create context with different permission levels
|
|
10
|
-
const createContext = (options) => ({
|
|
11
|
-
driveId: options.driveId ?? driveId,
|
|
12
|
-
user: options.userAddress ? { address: options.userAddress } : undefined,
|
|
13
|
-
isAdmin: () => options.isAdmin ?? false,
|
|
14
|
-
});
|
|
15
|
-
beforeEach(async () => {
|
|
16
|
-
vi.clearAllMocks();
|
|
17
|
-
// Create mock DocumentPermissionService
|
|
18
|
-
mockDocumentPermissionService = {
|
|
19
|
-
canReadDocument: vi.fn().mockResolvedValue(false),
|
|
20
|
-
canWriteDocument: vi.fn().mockResolvedValue(false),
|
|
21
|
-
canRead: vi.fn().mockResolvedValue(false),
|
|
22
|
-
canWrite: vi.fn().mockResolvedValue(false),
|
|
23
|
-
};
|
|
24
|
-
const { reactor } = await testSetupReactor();
|
|
25
|
-
// Create a test drive
|
|
26
|
-
driveId = generateId();
|
|
27
|
-
await reactor.addDrive({
|
|
28
|
-
id: driveId,
|
|
29
|
-
slug: "test-drive",
|
|
30
|
-
global: {
|
|
31
|
-
name: "Test Drive",
|
|
32
|
-
icon: undefined,
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
driveSubgraph = new DriveSubgraph({
|
|
36
|
-
reactor,
|
|
37
|
-
documentPermissionService: mockDocumentPermissionService,
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe("registerPullResponderListener", () => {
|
|
41
|
-
const callRegisterPullResponderListener = async (ctx) => {
|
|
42
|
-
const mutation = driveSubgraph.resolvers.Mutation
|
|
43
|
-
?.registerPullResponderListener;
|
|
44
|
-
return mutation(null, { filter: { branch: ["main"], documentId: [] } }, ctx);
|
|
45
|
-
};
|
|
46
|
-
describe("Global Role Access", () => {
|
|
47
|
-
it("should allow access when user is global admin", async () => {
|
|
48
|
-
const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
|
|
49
|
-
const result = await callRegisterPullResponderListener(ctx);
|
|
50
|
-
expect(result).toBeDefined();
|
|
51
|
-
expect(result.listenerId).toBeDefined();
|
|
52
|
-
expect(mockDocumentPermissionService.canReadDocument).not.toHaveBeenCalled();
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe("Document Permission Access", () => {
|
|
56
|
-
it("should allow access when user has document read permission", async () => {
|
|
57
|
-
vi.mocked(mockDocumentPermissionService.canReadDocument).mockResolvedValue(true);
|
|
58
|
-
const ctx = createContext({ userAddress: "0xpermitted" });
|
|
59
|
-
const result = await callRegisterPullResponderListener(ctx);
|
|
60
|
-
expect(result).toBeDefined();
|
|
61
|
-
expect(result.listenerId).toBeDefined();
|
|
62
|
-
expect(mockDocumentPermissionService.canReadDocument).toHaveBeenCalledWith(driveId, "0xpermitted");
|
|
63
|
-
});
|
|
64
|
-
it("should deny access when user has no permissions", async () => {
|
|
65
|
-
vi.mocked(mockDocumentPermissionService.canReadDocument).mockResolvedValue(false);
|
|
66
|
-
const ctx = createContext({ userAddress: "0xunpermitted" });
|
|
67
|
-
await expect(callRegisterPullResponderListener(ctx)).rejects.toThrow("Forbidden");
|
|
68
|
-
});
|
|
69
|
-
it("should deny access when user is not authenticated", async () => {
|
|
70
|
-
const ctx = createContext({});
|
|
71
|
-
await expect(callRegisterPullResponderListener(ctx)).rejects.toThrow("Forbidden");
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
describe("pushUpdates", () => {
|
|
76
|
-
const callPushUpdates = async (ctx) => {
|
|
77
|
-
const mutation = driveSubgraph.resolvers.Mutation?.pushUpdates;
|
|
78
|
-
return mutation(null, {
|
|
79
|
-
strands: [
|
|
80
|
-
{
|
|
81
|
-
driveId,
|
|
82
|
-
documentId: "doc1",
|
|
83
|
-
documentType: "test/type",
|
|
84
|
-
scope: "global",
|
|
85
|
-
branch: "main",
|
|
86
|
-
operations: [],
|
|
87
|
-
},
|
|
88
|
-
],
|
|
89
|
-
}, ctx);
|
|
90
|
-
};
|
|
91
|
-
describe("Global Role Access", () => {
|
|
92
|
-
it("should allow access when user is global admin", async () => {
|
|
93
|
-
const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
|
|
94
|
-
const result = await callPushUpdates(ctx);
|
|
95
|
-
expect(result).toBeDefined();
|
|
96
|
-
expect(mockDocumentPermissionService.canWriteDocument).not.toHaveBeenCalled();
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
describe("Document Permission Access", () => {
|
|
100
|
-
it("should allow access when user has document write permission", async () => {
|
|
101
|
-
vi.mocked(mockDocumentPermissionService.canWriteDocument).mockResolvedValue(true);
|
|
102
|
-
const ctx = createContext({ userAddress: "0xpermitted" });
|
|
103
|
-
const result = await callPushUpdates(ctx);
|
|
104
|
-
expect(result).toBeDefined();
|
|
105
|
-
expect(mockDocumentPermissionService.canWriteDocument).toHaveBeenCalledWith(driveId, "0xpermitted");
|
|
106
|
-
});
|
|
107
|
-
it("should deny access when user has no write permission", async () => {
|
|
108
|
-
vi.mocked(mockDocumentPermissionService.canWriteDocument).mockResolvedValue(false);
|
|
109
|
-
const ctx = createContext({ userAddress: "0xunpermitted" });
|
|
110
|
-
await expect(callPushUpdates(ctx)).rejects.toThrow("Forbidden");
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
describe("strands (Sync.strands)", () => {
|
|
115
|
-
// Note: strands resolver requires a registered listener, which needs full infrastructure
|
|
116
|
-
// These tests verify the resolver exists; full permission testing is done via integration tests
|
|
117
|
-
const callStrands = async (ctx) => {
|
|
118
|
-
const syncResolver = driveSubgraph.resolvers.Sync?.strands;
|
|
119
|
-
if (!syncResolver) {
|
|
120
|
-
throw new Error("Sync.strands resolver not found");
|
|
121
|
-
}
|
|
122
|
-
return syncResolver(null, { listenerId: "test-listener", since: undefined }, ctx);
|
|
123
|
-
};
|
|
124
|
-
describe("Global Role Access", () => {
|
|
125
|
-
it("should have strands resolver defined", () => {
|
|
126
|
-
const syncResolver = driveSubgraph.resolvers.Sync?.strands;
|
|
127
|
-
expect(syncResolver).toBeDefined();
|
|
128
|
-
});
|
|
129
|
-
// Note: Full strands permission tests require actual listener infrastructure
|
|
130
|
-
// which is better tested via integration tests. Permission checks happen
|
|
131
|
-
// before the listener lookup, so if listener is not found, permission passed.
|
|
132
|
-
it("should pass permission check for global admin (fails on missing listener)", async () => {
|
|
133
|
-
const ctx = createContext({ isAdmin: true, userAddress: "0xadmin" });
|
|
134
|
-
// Permission passes, but fails on listener lookup (not a permission error)
|
|
135
|
-
await expect(callStrands(ctx)).rejects.toThrow("Listener not found");
|
|
136
|
-
expect(mockDocumentPermissionService.canReadDocument).not.toHaveBeenCalled();
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
describe("Document Permission Access", () => {
|
|
140
|
-
it("should return empty array when user has no read permission", async () => {
|
|
141
|
-
vi.mocked(mockDocumentPermissionService.canReadDocument).mockResolvedValue(false);
|
|
142
|
-
const ctx = createContext({ userAddress: "0xunpermitted" });
|
|
143
|
-
const result = await callStrands(ctx);
|
|
144
|
-
expect(result).toEqual([]);
|
|
145
|
-
});
|
|
146
|
-
it("should return empty array for unauthenticated user", async () => {
|
|
147
|
-
const ctx = createContext({});
|
|
148
|
-
const result = await callStrands(ctx);
|
|
149
|
-
expect(result).toEqual([]);
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
describe("AUTH_ENABLED=false behavior", () => {
|
|
154
|
-
it("should allow all access when all global roles return true", async () => {
|
|
155
|
-
// When AUTH_ENABLED=false, isAdmin returns true
|
|
156
|
-
const ctx = createContext({
|
|
157
|
-
isAdmin: true,
|
|
158
|
-
userAddress: "0xanyone",
|
|
159
|
-
});
|
|
160
|
-
const registerResult = await driveSubgraph.resolvers.Mutation?.registerPullResponderListener(null, { filter: { branch: ["main"], documentId: [] } }, ctx);
|
|
161
|
-
expect(registerResult).toBeDefined();
|
|
162
|
-
expect(mockDocumentPermissionService.canReadDocument).not.toHaveBeenCalled();
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
//# sourceMappingURL=drive-subgraph-permissions.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drive-subgraph-permissions.test.js","sourceRoot":"","sources":["../../test/drive-subgraph-permissions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drive.test.d.ts","sourceRoot":"","sources":["../../test/drive.test.ts"],"names":[],"mappings":""}
|
package/dist/test/drive.test.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { DriveSubgraph } from "@powerhousedao/reactor-api";
|
|
2
|
-
import { testSetupReactor } from "@powerhousedao/reactor-api/test";
|
|
3
|
-
import { driveCreateDocument } from "document-drive";
|
|
4
|
-
import { documentModelDocumentModelModule, } from "document-model";
|
|
5
|
-
import { generateId } from "document-model/core";
|
|
6
|
-
import { describe, expect, it, vi } from "vitest";
|
|
7
|
-
describe("DriveSubgraph", () => {
|
|
8
|
-
it("should be able to instantiate", async () => {
|
|
9
|
-
const { reactor } = await testSetupReactor();
|
|
10
|
-
const driveSubgraph = new DriveSubgraph({ reactor });
|
|
11
|
-
expect(driveSubgraph).toBeInstanceOf(DriveSubgraph);
|
|
12
|
-
});
|
|
13
|
-
it("should return drive data", async () => {
|
|
14
|
-
const { reactor } = await testSetupReactor();
|
|
15
|
-
const reactorSpy = vi.spyOn(reactor, "getDrive");
|
|
16
|
-
const driveId = generateId();
|
|
17
|
-
const mockDriveData = {
|
|
18
|
-
id: driveId,
|
|
19
|
-
meta: {
|
|
20
|
-
preferredEditor: "test-editor",
|
|
21
|
-
},
|
|
22
|
-
global: {
|
|
23
|
-
name: "test-drive",
|
|
24
|
-
icon: undefined,
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
const createdDrive = await reactor.addDrive(mockDriveData);
|
|
28
|
-
const driveSubgraph = new DriveSubgraph({ reactor });
|
|
29
|
-
const context = {
|
|
30
|
-
driveId,
|
|
31
|
-
};
|
|
32
|
-
const drive = await driveSubgraph.resolvers.Query?.drive(null, {}, context);
|
|
33
|
-
expect(drive).toEqual({
|
|
34
|
-
id: createdDrive.header.id,
|
|
35
|
-
slug: createdDrive.header.slug,
|
|
36
|
-
meta: createdDrive.header.meta,
|
|
37
|
-
name: createdDrive.state.global.name,
|
|
38
|
-
icon: createdDrive.state.global.icon ?? undefined,
|
|
39
|
-
});
|
|
40
|
-
expect(reactorSpy).toHaveBeenCalledWith(context.driveId);
|
|
41
|
-
});
|
|
42
|
-
it("should return drive data with slug", async () => {
|
|
43
|
-
const { reactor } = await testSetupReactor();
|
|
44
|
-
const getBySlugSpy = vi.spyOn(reactor, "getDriveBySlug");
|
|
45
|
-
const getByIdSpy = vi.spyOn(reactor, "getDrive");
|
|
46
|
-
const driveSubgraph = new DriveSubgraph({ reactor });
|
|
47
|
-
const driveId = generateId();
|
|
48
|
-
const createdDrive = await reactor.addDrive({
|
|
49
|
-
id: driveId,
|
|
50
|
-
slug: "test-drive",
|
|
51
|
-
global: {
|
|
52
|
-
name: "test-drive",
|
|
53
|
-
icon: undefined,
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
const context = {
|
|
57
|
-
driveId: "test-drive",
|
|
58
|
-
};
|
|
59
|
-
const drive = await driveSubgraph.resolvers.Query?.drive(null, {}, context);
|
|
60
|
-
expect(drive).toStrictEqual({
|
|
61
|
-
id: createdDrive.header.id,
|
|
62
|
-
slug: createdDrive.header.slug,
|
|
63
|
-
meta: createdDrive.header.meta,
|
|
64
|
-
name: createdDrive.state.global.name,
|
|
65
|
-
icon: createdDrive.state.global.icon ?? undefined,
|
|
66
|
-
});
|
|
67
|
-
expect(getBySlugSpy).toHaveBeenCalledWith("test-drive");
|
|
68
|
-
expect(getByIdSpy).toHaveBeenCalledWith(driveId);
|
|
69
|
-
});
|
|
70
|
-
it("should return documents data", async () => {
|
|
71
|
-
const mockDocumentsData = ["doc1", "doc2"];
|
|
72
|
-
const mockReactor = {
|
|
73
|
-
getDrive: vi.fn(),
|
|
74
|
-
getDocuments: vi.fn().mockResolvedValue(mockDocumentsData),
|
|
75
|
-
getDocument: vi.fn(),
|
|
76
|
-
getDocumentModelModules: vi.fn(),
|
|
77
|
-
listeners: {
|
|
78
|
-
setListener: vi.fn(),
|
|
79
|
-
},
|
|
80
|
-
getDriveIdBySlug: vi.fn().mockResolvedValue("test-drive-id"),
|
|
81
|
-
};
|
|
82
|
-
const mockSubgraphArgs = {
|
|
83
|
-
reactor: mockReactor,
|
|
84
|
-
};
|
|
85
|
-
const driveSubgraph = new DriveSubgraph(mockSubgraphArgs);
|
|
86
|
-
const context = {
|
|
87
|
-
driveId: "test-drive-id",
|
|
88
|
-
};
|
|
89
|
-
const documents = await driveSubgraph.resolvers.Query?.documents(null, {}, context);
|
|
90
|
-
expect(documents).toEqual(mockDocumentsData);
|
|
91
|
-
expect(mockReactor.getDocuments).toHaveBeenCalledWith(context.driveId);
|
|
92
|
-
});
|
|
93
|
-
it("should return document data", async () => {
|
|
94
|
-
const mockDocumentData = driveCreateDocument({});
|
|
95
|
-
mockDocumentData.header.slug = "test-document-id";
|
|
96
|
-
// {
|
|
97
|
-
// id: "test-document-id",
|
|
98
|
-
// documentType: "test-document-type",
|
|
99
|
-
// revision: { global: 1 },
|
|
100
|
-
// state: { global: { data: "test-data" } },
|
|
101
|
-
// operations: { global: [] },
|
|
102
|
-
// initialState: { state: { global: {} } },
|
|
103
|
-
// };
|
|
104
|
-
const mockReactor = {
|
|
105
|
-
getDrive: vi.fn(),
|
|
106
|
-
getDocuments: vi.fn().mockResolvedValue([mockDocumentData.header.id]),
|
|
107
|
-
getDocument: vi.fn().mockResolvedValue(mockDocumentData),
|
|
108
|
-
getDocumentModelModules: vi
|
|
109
|
-
.fn()
|
|
110
|
-
.mockReturnValue([
|
|
111
|
-
documentModelDocumentModelModule,
|
|
112
|
-
]),
|
|
113
|
-
listeners: {
|
|
114
|
-
setListener: vi.fn(),
|
|
115
|
-
},
|
|
116
|
-
getDriveIdBySlug: vi.fn().mockResolvedValue(mockDocumentData.header.id),
|
|
117
|
-
};
|
|
118
|
-
const mockSubgraphArgs = {
|
|
119
|
-
reactor: mockReactor,
|
|
120
|
-
};
|
|
121
|
-
const driveSubgraph = new DriveSubgraph(mockSubgraphArgs);
|
|
122
|
-
const context = {
|
|
123
|
-
driveId: mockDocumentData.header.id,
|
|
124
|
-
};
|
|
125
|
-
const document = await driveSubgraph.resolvers.Query?.document(null, { id: mockDocumentData.header.id }, context);
|
|
126
|
-
console.log(document);
|
|
127
|
-
expect(document).toMatchObject({
|
|
128
|
-
...mockDocumentData.header,
|
|
129
|
-
// default
|
|
130
|
-
state: mockDocumentData.state.global,
|
|
131
|
-
initialState: mockDocumentData.initialState.global,
|
|
132
|
-
stateJSON: mockDocumentData.state.global,
|
|
133
|
-
operations: mockDocumentData.operations.global,
|
|
134
|
-
__typename: "",
|
|
135
|
-
// backward compatibility
|
|
136
|
-
revision: mockDocumentData.header.revision.global || 0,
|
|
137
|
-
id: mockDocumentData.header.id,
|
|
138
|
-
});
|
|
139
|
-
expect(mockReactor.getDocument).toHaveBeenCalledWith(mockDocumentData.header.id);
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
//# sourceMappingURL=drive.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drive.test.js","sourceRoot":"","sources":["../../test/drive.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pull-responder-transmitter.test.d.ts","sourceRoot":"","sources":["../../test/pull-responder-transmitter.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { createDriveHandlers, expectUUID, getDocumentScopeIndexes, testSetupReactor, } from "@powerhousedao/reactor-api/test";
|
|
2
|
-
import { PullResponderTransmitter, addFile, addFolder } from "document-drive";
|
|
3
|
-
import { documentModelCreateDocument, setAuthorName } from "document-model";
|
|
4
|
-
import { generateId } from "document-model/core";
|
|
5
|
-
import { setupServer } from "msw/node";
|
|
6
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
7
|
-
const remoteUrl = "http://test.com/d/test";
|
|
8
|
-
describe("Pull Responder Transmitter", () => {
|
|
9
|
-
let server;
|
|
10
|
-
let remoteReactor;
|
|
11
|
-
const driveId = generateId();
|
|
12
|
-
const remoteDrive = {
|
|
13
|
-
id: driveId,
|
|
14
|
-
global: {
|
|
15
|
-
name: "Test Drive",
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
const triggerOptions = {
|
|
19
|
-
pullFilter: {
|
|
20
|
-
branch: ["main"],
|
|
21
|
-
documentId: ["*"],
|
|
22
|
-
documentType: ["*"],
|
|
23
|
-
scope: ["global"],
|
|
24
|
-
},
|
|
25
|
-
pullInterval: 50,
|
|
26
|
-
};
|
|
27
|
-
async function setupTrigger() {
|
|
28
|
-
const { listenerManager } = await testSetupReactor();
|
|
29
|
-
return PullResponderTransmitter.createPullResponderTrigger(driveId, remoteUrl, triggerOptions, listenerManager);
|
|
30
|
-
}
|
|
31
|
-
beforeEach(async () => {
|
|
32
|
-
const { reactor } = await testSetupReactor();
|
|
33
|
-
const drive = await reactor.addDrive(remoteDrive);
|
|
34
|
-
remoteReactor = reactor;
|
|
35
|
-
server = setupServer(...createDriveHandlers(reactor, drive.header.id));
|
|
36
|
-
server.listen({ onUnhandledRequest: "error" });
|
|
37
|
-
});
|
|
38
|
-
afterEach(() => {
|
|
39
|
-
server.resetHandlers(); // Reset any handlers overridden during a test
|
|
40
|
-
server.close();
|
|
41
|
-
});
|
|
42
|
-
it("should register listener and create trigger", async () => {
|
|
43
|
-
const trigger = await setupTrigger();
|
|
44
|
-
expect(trigger).toStrictEqual({
|
|
45
|
-
driveId: driveId,
|
|
46
|
-
filter: triggerOptions.pullFilter,
|
|
47
|
-
type: "PullResponder",
|
|
48
|
-
id: expectUUID(expect),
|
|
49
|
-
data: {
|
|
50
|
-
interval: triggerOptions.pullInterval.toString(),
|
|
51
|
-
listenerId: expectUUID(expect),
|
|
52
|
-
url: remoteUrl,
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
const remoteListener = remoteReactor.listeners.getListenerState(driveId, trigger.data.listenerId);
|
|
56
|
-
expect(remoteListener).toMatchObject({
|
|
57
|
-
listener: {
|
|
58
|
-
driveId: driveId,
|
|
59
|
-
listenerId: trigger.data.listenerId,
|
|
60
|
-
filter: triggerOptions.pullFilter,
|
|
61
|
-
},
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
it("should pull drive operation from remote reactor", async () => {
|
|
65
|
-
const { reactor } = await testSetupReactor();
|
|
66
|
-
const trigger = await setupTrigger();
|
|
67
|
-
await reactor.addDrive({
|
|
68
|
-
id: driveId,
|
|
69
|
-
global: remoteDrive.global,
|
|
70
|
-
local: {
|
|
71
|
-
availableOffline: true,
|
|
72
|
-
triggers: [trigger],
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
const result = await remoteReactor.queueAction(driveId, addFolder({ id: generateId(), name: "test" }));
|
|
76
|
-
await vi.waitFor(async () => {
|
|
77
|
-
const drive = await reactor.getDrive(driveId);
|
|
78
|
-
expect(getDocumentScopeIndexes(drive)).toStrictEqual({
|
|
79
|
-
global: 0,
|
|
80
|
-
local: -1,
|
|
81
|
-
});
|
|
82
|
-
const resultDrive = result.document;
|
|
83
|
-
expect(drive.state.global).toStrictEqual(resultDrive.state.global);
|
|
84
|
-
}, {
|
|
85
|
-
timeout: 1000,
|
|
86
|
-
});
|
|
87
|
-
await reactor.deleteDrive(driveId);
|
|
88
|
-
});
|
|
89
|
-
it("should push new document to remote reactor", async () => {
|
|
90
|
-
const { reactor } = await testSetupReactor();
|
|
91
|
-
const trigger = await setupTrigger();
|
|
92
|
-
await reactor.addDrive({
|
|
93
|
-
id: driveId,
|
|
94
|
-
global: remoteDrive.global,
|
|
95
|
-
local: {
|
|
96
|
-
availableOffline: true,
|
|
97
|
-
triggers: [trigger],
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
|
-
const newDocument = documentModelCreateDocument();
|
|
101
|
-
const documentId = newDocument.header.id;
|
|
102
|
-
const document = await remoteReactor.addDocument(newDocument);
|
|
103
|
-
const result = await remoteReactor.queueAction(driveId, addFile({
|
|
104
|
-
id: documentId,
|
|
105
|
-
name: "test",
|
|
106
|
-
documentType: document.header.documentType,
|
|
107
|
-
}));
|
|
108
|
-
await vi.waitFor(async () => {
|
|
109
|
-
const drive = await reactor.getDrive(driveId);
|
|
110
|
-
expect(getDocumentScopeIndexes(drive)).toStrictEqual({
|
|
111
|
-
global: 0,
|
|
112
|
-
local: -1,
|
|
113
|
-
});
|
|
114
|
-
const resultDrive = result.document;
|
|
115
|
-
expect(drive.state.global).toStrictEqual(resultDrive.state.global);
|
|
116
|
-
});
|
|
117
|
-
await vi.waitFor(async () => {
|
|
118
|
-
const document = (await reactor.getDocument(documentId));
|
|
119
|
-
expect(getDocumentScopeIndexes(document)).toStrictEqual({
|
|
120
|
-
global: -1,
|
|
121
|
-
local: -1,
|
|
122
|
-
});
|
|
123
|
-
const remoteDocument = (await remoteReactor.getDocument(documentId));
|
|
124
|
-
expect(document.state.global).toStrictEqual(remoteDocument.state.global);
|
|
125
|
-
});
|
|
126
|
-
await reactor.deleteDrive(driveId);
|
|
127
|
-
});
|
|
128
|
-
it("should push new document with operations to remote reactor", async () => {
|
|
129
|
-
const { reactor } = await testSetupReactor();
|
|
130
|
-
const trigger = await setupTrigger();
|
|
131
|
-
await reactor.addDrive({
|
|
132
|
-
id: driveId,
|
|
133
|
-
global: remoteDrive.global,
|
|
134
|
-
local: {
|
|
135
|
-
availableOffline: true,
|
|
136
|
-
triggers: [trigger],
|
|
137
|
-
},
|
|
138
|
-
});
|
|
139
|
-
const newDocument = documentModelCreateDocument();
|
|
140
|
-
const documentId = newDocument.header.id;
|
|
141
|
-
const document = await remoteReactor.addDocument(newDocument);
|
|
142
|
-
const result = await remoteReactor.queueAction(documentId, setAuthorName({
|
|
143
|
-
authorName: "test",
|
|
144
|
-
}));
|
|
145
|
-
await remoteReactor.queueAction(driveId, addFile({
|
|
146
|
-
id: documentId,
|
|
147
|
-
name: "test",
|
|
148
|
-
documentType: document.header.documentType,
|
|
149
|
-
}));
|
|
150
|
-
await vi.waitFor(async () => {
|
|
151
|
-
const document = (await reactor.getDocument(documentId));
|
|
152
|
-
expect(getDocumentScopeIndexes(document)).toStrictEqual({
|
|
153
|
-
global: 0,
|
|
154
|
-
local: -1,
|
|
155
|
-
});
|
|
156
|
-
const resultDocument = result.document;
|
|
157
|
-
expect(document.state.global).toStrictEqual(resultDocument.state.global);
|
|
158
|
-
});
|
|
159
|
-
await reactor.deleteDrive(driveId);
|
|
160
|
-
});
|
|
161
|
-
it("should persist triggers in drive storage and retrieve them correctly", async () => {
|
|
162
|
-
const { reactor } = await testSetupReactor();
|
|
163
|
-
const trigger = await setupTrigger();
|
|
164
|
-
// Create a drive with triggers and listeners
|
|
165
|
-
const testListeners = [
|
|
166
|
-
{
|
|
167
|
-
listenerId: "test-listener-1",
|
|
168
|
-
label: "Test Listener",
|
|
169
|
-
version: "1.0.0",
|
|
170
|
-
url: "https://example.com/listener",
|
|
171
|
-
system: false,
|
|
172
|
-
status: "CONNECTING",
|
|
173
|
-
block: false,
|
|
174
|
-
callInfo: {
|
|
175
|
-
data: "",
|
|
176
|
-
name: "Test Listener",
|
|
177
|
-
transmitterType: "PullResponder",
|
|
178
|
-
},
|
|
179
|
-
filter: {
|
|
180
|
-
documentType: ["*"],
|
|
181
|
-
documentId: ["*"],
|
|
182
|
-
scope: ["global"],
|
|
183
|
-
branch: ["main"],
|
|
184
|
-
},
|
|
185
|
-
},
|
|
186
|
-
];
|
|
187
|
-
const createdDrive = await reactor.addDrive({
|
|
188
|
-
id: generateId(),
|
|
189
|
-
global: {
|
|
190
|
-
name: "Test Drive with Triggers",
|
|
191
|
-
icon: null,
|
|
192
|
-
},
|
|
193
|
-
local: {
|
|
194
|
-
availableOffline: true,
|
|
195
|
-
triggers: [trigger],
|
|
196
|
-
listeners: testListeners,
|
|
197
|
-
sharingType: "private",
|
|
198
|
-
},
|
|
199
|
-
});
|
|
200
|
-
const createdDriveId = createdDrive.header.id;
|
|
201
|
-
// Verify initial state has triggers and listeners
|
|
202
|
-
expect(createdDrive.state.local.triggers).toHaveLength(1);
|
|
203
|
-
expect(createdDrive.state.local.triggers[0].id).toBe(trigger.id);
|
|
204
|
-
expect(createdDrive.state.local.listeners).toHaveLength(1);
|
|
205
|
-
expect(createdDrive.state.local.listeners[0].listenerId).toBe(testListeners[0].listenerId);
|
|
206
|
-
// Now retrieve the drive from storage (simulating a restart)
|
|
207
|
-
const retrievedDrive = await reactor.getDrive(createdDriveId);
|
|
208
|
-
// Verify that triggers and listeners are preserved after retrieval
|
|
209
|
-
expect(retrievedDrive.state.local.triggers).toHaveLength(1);
|
|
210
|
-
expect(retrievedDrive.state.local.triggers[0]).toStrictEqual(trigger);
|
|
211
|
-
expect(retrievedDrive.state.local.listeners).toHaveLength(1);
|
|
212
|
-
expect(retrievedDrive.state.local.listeners[0]).toStrictEqual(testListeners[0]);
|
|
213
|
-
// Verify other local state is also preserved
|
|
214
|
-
expect(retrievedDrive.state.local.availableOffline).toBe(true);
|
|
215
|
-
expect(retrievedDrive.state.local.sharingType).toBe("private");
|
|
216
|
-
// Clean up
|
|
217
|
-
await reactor.deleteDrive(createdDriveId);
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
//# sourceMappingURL=pull-responder-transmitter.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pull-responder-transmitter.test.js","sourceRoot":"","sources":["../../test/pull-responder-transmitter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,MAAM,SAAS,GAAG,wBAAwB,CAAC;AAE3C,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,MAAsC,CAAC;IAC3C,IAAI,aAAmC,CAAC;IAExC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,OAAO;QACX,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;SACnB;KACF,CAAC;IAEF,MAAM,cAAc,GAAG;QACrB,UAAU,EAAE;YACV,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,UAAU,EAAE,CAAC,GAAG,CAAC;YACjB,YAAY,EAAE,CAAC,GAAG,CAAC;YACnB,KAAK,EAAE,CAAC,QAAQ,CAAC;SAClB;QACD,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,KAAK,UAAU,YAAY;QACzB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACrD,OAAO,wBAAwB,CAAC,0BAA0B,CACxD,OAAO,EACP,SAAS,EACT,cAAc,EACd,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClD,aAAa,GAAG,OAAO,CAAC;QAExB,MAAM,GAAG,WAAW,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,8CAA8C;QACtE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,cAAc,CAAC,UAAU;YACjC,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE;gBACJ,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAChD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC;gBAC9B,GAAG,EAAE,SAAS;aACf;SACF,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAC7D,OAAO,EACP,OAAO,CAAC,IAAI,CAAC,UAAU,CACxB,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;YACnC,QAAQ,EAAE;gBACR,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;gBACnC,MAAM,EAAE,cAAc,CAAC,UAAU;aAClC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,QAAQ,CAAC;YACrB,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,CAC5C,OAAO,EACP,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAC9C,CAAC;QAEF,MAAM,EAAE,CAAC,OAAO,CACd,KAAK,IAAI,EAAE;YACT,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;gBACnD,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,MAAM,CAAC,QAAiC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrE,CAAC,EACD;YACE,OAAO,EAAE,IAAI;SACd,CACF,CAAC;QAEF,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,QAAQ,CAAC;YACrB,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,2BAA2B,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,CAC5C,OAAO,EACP,OAAO,CAAC;YACN,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;SAC3C,CAAC,CACH,CAAC;QAEF,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;gBACnD,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,CAAC,QAAiC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,WAAW,CACzC,UAAU,CACX,CAA0B,CAAC;YAC5B,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;gBACtD,MAAM,EAAE,CAAC,CAAC;gBACV,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,CAAC,MAAM,aAAa,CAAC,WAAW,CACrD,UAAU,CACX,CAA0B,CAAC;YAC5B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,QAAQ,CAAC;YACrB,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,2BAA2B,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,CAC5C,UAAU,EACV,aAAa,CAAC;YACZ,UAAU,EAAE,MAAM;SACnB,CAAC,CACH,CAAC;QAEF,MAAM,aAAa,CAAC,WAAW,CAC7B,OAAO,EACP,OAAO,CAAC;YACN,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;SAC3C,CAAC,CACH,CAAC;QAEF,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,WAAW,CACzC,UAAU,CACX,CAA0B,CAAC;YAC5B,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;gBACtD,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,CAAC,QAAiC,CAAC;YAChE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QAErC,6CAA6C;QAC7C,MAAM,aAAa,GAAG;YACpB;gBACE,UAAU,EAAE,iBAAiB;gBAC7B,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,8BAA8B;gBACnC,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,YAAqB;gBAC7B,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE;oBACR,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,eAAe;oBACrB,eAAe,EAAE,eAAe;iBACjC;gBACD,MAAM,EAAE;oBACN,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;oBACjB,MAAM,EAAE,CAAC,MAAM,CAAC;iBACjB;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC;YAC1C,EAAE,EAAE,UAAU,EAAE;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,IAAI;aACX;YACD,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,CAAC,OAAO,CAAC;gBACnB,SAAS,EAAE,aAA2B;gBACtC,WAAW,EAAE,SAAS;aACvB;SACF,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAE9C,kDAAkD;QAClD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAC3D,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAC5B,CAAC;QAEF,6DAA6D;QAC7D,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9D,mEAAmE;QACnE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAC3D,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC;QAEF,6CAA6C;QAC7C,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE/D,WAAW;QACX,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-transmitter.test.d.ts","sourceRoot":"","sources":["../../test/push-transmitter.test.ts"],"names":[],"mappings":""}
|