@powerhousedao/reactor-api 6.0.0-dev.67 → 6.0.0-dev.68

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.
Files changed (90) hide show
  1. package/dist/index.d.ts +0 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +0 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/graphql/base-subgraph.d.ts +1 -2
  6. package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
  7. package/dist/src/graphql/base-subgraph.js +0 -2
  8. package/dist/src/graphql/base-subgraph.js.map +1 -1
  9. package/dist/src/graphql/document-model-subgraph.d.ts +0 -13
  10. package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -1
  11. package/dist/src/graphql/document-model-subgraph.js +6 -150
  12. package/dist/src/graphql/document-model-subgraph.js.map +1 -1
  13. package/dist/src/graphql/graphql-manager.d.ts +9 -4
  14. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  15. package/dist/src/graphql/graphql-manager.js +45 -27
  16. package/dist/src/graphql/graphql-manager.js.map +1 -1
  17. package/dist/src/graphql/index.d.ts +0 -1
  18. package/dist/src/graphql/index.d.ts.map +1 -1
  19. package/dist/src/graphql/index.js +0 -1
  20. package/dist/src/graphql/index.js.map +1 -1
  21. package/dist/src/graphql/reactor/resolvers.d.ts +1 -0
  22. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
  23. package/dist/src/graphql/reactor/resolvers.js +33 -4
  24. package/dist/src/graphql/reactor/resolvers.js.map +1 -1
  25. package/dist/src/graphql/types.d.ts +1 -4
  26. package/dist/src/graphql/types.d.ts.map +1 -1
  27. package/dist/src/graphql/utils.d.ts +1 -18
  28. package/dist/src/graphql/utils.d.ts.map +1 -1
  29. package/dist/src/graphql/utils.js +0 -32
  30. package/dist/src/graphql/utils.js.map +1 -1
  31. package/dist/src/server.d.ts +0 -5
  32. package/dist/src/server.d.ts.map +1 -1
  33. package/dist/src/server.js +5 -6
  34. package/dist/src/server.js.map +1 -1
  35. package/dist/src/utils/create-schema.d.ts +4 -5
  36. package/dist/src/utils/create-schema.d.ts.map +1 -1
  37. package/dist/src/utils/create-schema.js +5 -6
  38. package/dist/src/utils/create-schema.js.map +1 -1
  39. package/dist/test/document-model-subgraph-permissions.test.js +2 -12
  40. package/dist/test/document-model-subgraph-permissions.test.js.map +1 -1
  41. package/dist/test/index.d.ts +0 -1
  42. package/dist/test/index.d.ts.map +1 -1
  43. package/dist/test/index.js +0 -1
  44. package/dist/test/index.js.map +1 -1
  45. package/dist/test/permissions-integration.test.js +1 -1
  46. package/dist/test/permissions-integration.test.js.map +1 -1
  47. package/dist/test/reactor-subgraph-permissions.test.js +1 -1
  48. package/dist/test/reactor-subgraph-permissions.test.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +11 -11
  51. package/dist/src/graphql/drive-subgraph.d.ts +0 -25
  52. package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
  53. package/dist/src/graphql/drive-subgraph.js +0 -499
  54. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  55. package/dist/src/sync/types.d.ts +0 -10
  56. package/dist/src/sync/types.d.ts.map +0 -1
  57. package/dist/src/sync/types.js +0 -2
  58. package/dist/src/sync/types.js.map +0 -1
  59. package/dist/src/sync/utils.d.ts +0 -7
  60. package/dist/src/sync/utils.d.ts.map +0 -1
  61. package/dist/src/sync/utils.js +0 -78
  62. package/dist/src/sync/utils.js.map +0 -1
  63. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts +0 -2
  64. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts.map +0 -1
  65. package/dist/test/document-model-subgraph-legacy-permissions.test.js +0 -460
  66. package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +0 -1
  67. package/dist/test/document-model-subgraph.test.d.ts +0 -2
  68. package/dist/test/document-model-subgraph.test.d.ts.map +0 -1
  69. package/dist/test/document-model-subgraph.test.js +0 -439
  70. package/dist/test/document-model-subgraph.test.js.map +0 -1
  71. package/dist/test/drive-handlers.d.ts +0 -4
  72. package/dist/test/drive-handlers.d.ts.map +0 -1
  73. package/dist/test/drive-handlers.js +0 -39
  74. package/dist/test/drive-handlers.js.map +0 -1
  75. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  76. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  77. package/dist/test/drive-subgraph-permissions.test.js +0 -166
  78. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  79. package/dist/test/drive.test.d.ts +0 -2
  80. package/dist/test/drive.test.d.ts.map +0 -1
  81. package/dist/test/drive.test.js +0 -142
  82. package/dist/test/drive.test.js.map +0 -1
  83. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  84. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  85. package/dist/test/pull-responder-transmitter.test.js +0 -220
  86. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  87. package/dist/test/push-transmitter.test.d.ts +0 -2
  88. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  89. package/dist/test/push-transmitter.test.js +0 -179
  90. package/dist/test/push-transmitter.test.js.map +0 -1
@@ -1,179 +0,0 @@
1
- import { createDriveHandlers, expectUTCTimestamp, getDocumentScopeIndexes, testSetupReactor, } from "@powerhousedao/reactor-api/test";
2
- import { addFile, addFolder, requestPublicDrive, SwitchboardPushTransmitter, } 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("Push Transmitter", () => {
9
- let server;
10
- let remoteReactor;
11
- const remoteDrive = {
12
- id: generateId(),
13
- global: {
14
- name: "Test Drive",
15
- },
16
- };
17
- async function setupListener(listenerManager) {
18
- const uuid = generateId();
19
- const listener = {
20
- driveId: remoteDrive.id,
21
- listenerId: uuid,
22
- block: false,
23
- filter: {
24
- branch: ["main"],
25
- documentId: ["*"],
26
- documentType: ["*"],
27
- scope: ["global"],
28
- },
29
- system: false,
30
- label: `SwitchboardPush #${uuid}`,
31
- callInfo: {
32
- data: remoteUrl,
33
- name: "SwitchboardPush",
34
- transmitterType: "SwitchboardPush",
35
- },
36
- };
37
- // TODO: circular reference
38
- listener.transmitter = new SwitchboardPushTransmitter(remoteUrl);
39
- await listenerManager.setListener(remoteDrive.id, listener);
40
- return listener;
41
- }
42
- beforeEach(async () => {
43
- const { reactor } = await testSetupReactor();
44
- const drive = await reactor.addDrive(remoteDrive);
45
- remoteReactor = reactor;
46
- server = setupServer(...createDriveHandlers(reactor, drive.header.id));
47
- server.listen({ onUnhandledRequest: "error" });
48
- });
49
- afterEach(() => {
50
- server.resetHandlers(); // Reset any handlers overridden during a test
51
- server.close();
52
- });
53
- it("should return drive data", async () => {
54
- const driveInfo = await requestPublicDrive(remoteUrl);
55
- expect(driveInfo).toStrictEqual({
56
- id: remoteDrive.id,
57
- slug: remoteDrive.id,
58
- name: remoteDrive.global.name,
59
- meta: {},
60
- });
61
- });
62
- it("should push drive operation to remote reactor", async () => {
63
- const { reactor, listenerManager } = await testSetupReactor();
64
- const { id: driveId, name } = await requestPublicDrive(remoteUrl);
65
- await reactor.addDrive({ id: driveId, global: { name } });
66
- const listener = await setupListener(listenerManager);
67
- const result = await reactor.queueAction(driveId, addFolder({ id: generateId(), name: "test" }));
68
- await vi.waitFor(async () => {
69
- const remoteDrive = await remoteReactor.getDrive(driveId);
70
- expect(getDocumentScopeIndexes(remoteDrive)).toStrictEqual({
71
- global: 0,
72
- local: -1,
73
- });
74
- const resultDrive = result.document;
75
- expect(remoteDrive.state.global).toStrictEqual(resultDrive.state.global);
76
- });
77
- const syncUnits = listenerManager?.getListenerState(driveId, listener.listenerId).syncUnits;
78
- expect(syncUnits.get({
79
- documentId: driveId,
80
- scope: "global",
81
- branch: "main",
82
- })).toStrictEqual({
83
- listenerRev: 1,
84
- lastUpdated: expectUTCTimestamp(expect),
85
- });
86
- expect(syncUnits.get({
87
- documentId: driveId,
88
- scope: "local",
89
- branch: "main",
90
- })).toBeUndefined();
91
- });
92
- it("should push new document to remote reactor", async () => {
93
- const { reactor, listenerManager } = await testSetupReactor();
94
- const { id: driveId, name } = await requestPublicDrive(remoteUrl);
95
- await reactor.addDrive({ id: driveId, global: { name } });
96
- const listener = await setupListener(listenerManager);
97
- const newDocument = documentModelCreateDocument();
98
- const documentId = newDocument.header.id;
99
- const document = await reactor.addDocument(newDocument);
100
- const result = await reactor.queueAction(driveId, addFile({
101
- id: documentId,
102
- name: "test",
103
- documentType: document.header.documentType,
104
- }));
105
- await vi.waitFor(async () => {
106
- const remoteDrive = await remoteReactor.getDrive(driveId);
107
- expect(getDocumentScopeIndexes(remoteDrive)).toStrictEqual({
108
- global: 0,
109
- local: -1,
110
- });
111
- const resultDrive = result.document;
112
- expect(remoteDrive.state.global).toStrictEqual(resultDrive.state.global);
113
- });
114
- await vi.waitFor(async () => {
115
- const remoteDocument = (await remoteReactor.getDocument(documentId));
116
- expect(getDocumentScopeIndexes(remoteDocument)).toStrictEqual({
117
- global: -1,
118
- local: -1,
119
- });
120
- const resultDocument = document;
121
- expect(remoteDocument.state.global).toStrictEqual(resultDocument.state.global);
122
- });
123
- const syncUnits = listenerManager?.getListenerState(driveId, listener.listenerId).syncUnits;
124
- expect(syncUnits.get({
125
- documentId,
126
- scope: "global",
127
- branch: "main",
128
- })).toStrictEqual({
129
- listenerRev: 0,
130
- lastUpdated: expectUTCTimestamp(expect),
131
- });
132
- expect(syncUnits.get({
133
- documentId,
134
- scope: "local",
135
- branch: "main",
136
- })).toBeUndefined();
137
- });
138
- it("should push new document with operations to remote reactor", async () => {
139
- const { reactor, listenerManager } = await testSetupReactor();
140
- const { id: driveId, name } = await requestPublicDrive(remoteUrl);
141
- await reactor.addDrive({ id: driveId, global: { name } });
142
- const listener = await setupListener(listenerManager);
143
- const newDocument = documentModelCreateDocument();
144
- const documentId = newDocument.header.id;
145
- const document = await reactor.addDocument(newDocument);
146
- const result = await reactor.queueAction(documentId, setAuthorName({
147
- authorName: "test",
148
- }));
149
- await reactor.queueAction(driveId, addFile({
150
- id: documentId,
151
- name: "test",
152
- documentType: document.header.documentType,
153
- }));
154
- await vi.waitFor(async () => {
155
- const remoteDocument = (await remoteReactor.getDocument(documentId));
156
- expect(getDocumentScopeIndexes(remoteDocument)).toStrictEqual({
157
- global: 0,
158
- local: -1,
159
- });
160
- const resultDocument = result.document;
161
- expect(remoteDocument.state.global).toStrictEqual(resultDocument.state.global);
162
- });
163
- const syncUnits = listenerManager?.getListenerState(driveId, listener.listenerId).syncUnits;
164
- expect(syncUnits.get({
165
- documentId,
166
- scope: "global",
167
- branch: "main",
168
- })).toStrictEqual({
169
- listenerRev: 1,
170
- lastUpdated: expectUTCTimestamp(expect),
171
- });
172
- expect(syncUnits.get({
173
- documentId,
174
- scope: "local",
175
- branch: "main",
176
- })).toBeUndefined();
177
- });
178
- });
179
- //# sourceMappingURL=push-transmitter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-transmitter.test.js","sourceRoot":"","sources":["../../test/push-transmitter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EACL,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,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,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,MAAsC,CAAC;IAC3C,IAAI,aAAmC,CAAC;IAExC,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,UAAU,EAAE;QAChB,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;SACnB;KACF,CAAC;IAEF,KAAK,UAAU,aAAa,CAAC,eAAiC;QAC5D,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAmB;YAC/B,OAAO,EAAE,WAAW,CAAC,EAAE;YACvB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC,MAAM,CAAC;gBAChB,UAAU,EAAE,CAAC,GAAG,CAAC;gBACjB,YAAY,EAAE,CAAC,GAAG,CAAC;gBACnB,KAAK,EAAE,CAAC,QAAQ,CAAC;aAClB;YACD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,oBAAoB,IAAI,EAAE;YACjC,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,iBAAiB;gBACvB,eAAe,EAAE,iBAAiB;aACnC;SACF,CAAC;QAEF,2BAA2B;QAC3B,QAAQ,CAAC,WAAW,GAAG,IAAI,0BAA0B,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE5D,OAAO,QAAQ,CAAC;IAClB,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;QACxB,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,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC;YAC9B,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,IAAI,EAAE,WAAW,CAAC,EAAE;YACpB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI;YAC7B,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC9D,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CACtC,OAAO,EACP,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAC9C,CAAC;QAEF,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;gBACzD,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,CAAC,QAAiC,CAAC;YAC7D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,eAAe,EAAE,gBAAgB,CACjD,OAAO,EACP,QAAQ,CAAC,UAAU,CACpB,CAAC,SAAS,CAAC;QACZ,MAAM,CACJ,SAAS,CAAC,GAAG,CAAC;YACZ,UAAU,EAAE,OAAO;YACnB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAC,aAAa,CAAC;YACd,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,CACJ,SAAS,CAAC,GAAG,CAAC;YACZ,UAAU,EAAE,OAAO;YACnB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC9D,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,2BAA2B,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CACtC,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,WAAW,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;gBACzD,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,CAAC,QAAiC,CAAC;YAC7D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,cAAc,GAAG,CAAC,MAAM,aAAa,CAAC,WAAW,CACrD,UAAU,CACX,CAA0B,CAAC;YAC5B,MAAM,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC5D,MAAM,EAAE,CAAC,CAAC;gBACV,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,QAAiC,CAAC;YACzD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAC/C,cAAc,CAAC,KAAK,CAAC,MAAM,CAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,eAAe,EAAE,gBAAgB,CACjD,OAAO,EACP,QAAQ,CAAC,UAAU,CACpB,CAAC,SAAS,CAAC;QACZ,MAAM,CACJ,SAAS,CAAC,GAAG,CAAC;YACZ,UAAU;YACV,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAC,aAAa,CAAC;YACd,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,CACJ,SAAS,CAAC,GAAG,CAAC;YACZ,UAAU;YACV,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC9D,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,2BAA2B,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CACtC,UAAU,EACV,aAAa,CAAC;YACZ,UAAU,EAAE,MAAM;SACnB,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,CAAC,WAAW,CACvB,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,cAAc,GAAG,CAAC,MAAM,aAAa,CAAC,WAAW,CACrD,UAAU,CACX,CAA0B,CAAC;YAC5B,MAAM,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC5D,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,CAAC,QAAiC,CAAC;YAChE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAC/C,cAAc,CAAC,KAAK,CAAC,MAAM,CAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,eAAe,EAAE,gBAAgB,CACjD,OAAO,EACP,QAAQ,CAAC,UAAU,CACpB,CAAC,SAAS,CAAC;QACZ,MAAM,CACJ,SAAS,CAAC,GAAG,CAAC;YACZ,UAAU;YACV,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAC,aAAa,CAAC;YACd,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,CACJ,SAAS,CAAC,GAAG,CAAC;YACZ,UAAU;YACV,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}