jazz-tools 0.8.44 → 0.8.45

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. package/.turbo/turbo-build.log +16 -10
  2. package/CHANGELOG.md +12 -0
  3. package/dist/chunk-5WLKIDKU.js +2844 -0
  4. package/dist/chunk-5WLKIDKU.js.map +1 -0
  5. package/dist/index.native.js +63 -0
  6. package/dist/index.native.js.map +1 -0
  7. package/dist/index.web.js +61 -0
  8. package/dist/index.web.js.map +1 -0
  9. package/package.json +9 -12
  10. package/src/coValues/account.ts +21 -9
  11. package/src/coValues/coFeed.ts +4 -3
  12. package/src/coValues/coList.ts +8 -5
  13. package/src/coValues/coMap.ts +6 -3
  14. package/src/coValues/deepLoading.ts +6 -12
  15. package/src/coValues/extensions/imageDef.ts +3 -1
  16. package/src/coValues/group.ts +8 -11
  17. package/src/coValues/inbox.ts +377 -0
  18. package/src/coValues/interfaces.ts +9 -6
  19. package/src/coValues/profile.ts +11 -0
  20. package/src/coValues/registeredSchemas.ts +12 -0
  21. package/src/exports.ts +21 -15
  22. package/src/implementation/anonymousJazzAgent.ts +6 -0
  23. package/src/implementation/createContext.ts +6 -7
  24. package/src/implementation/refs.ts +1 -1
  25. package/src/implementation/subscriptionScope.ts +1 -1
  26. package/src/index.native.ts +0 -1
  27. package/src/internal.ts +1 -9
  28. package/src/tests/account.test.ts +2 -2
  29. package/src/tests/coFeed.test.ts +0 -9
  30. package/src/tests/coMap.test.ts +2 -2
  31. package/src/tests/groupsAndAccounts.test.ts +1 -1
  32. package/src/tests/inbox.test.ts +256 -0
  33. package/src/tests/schemaUnion.test.ts +1 -1
  34. package/src/tests/utils.ts +14 -0
  35. package/tsup.config.ts +13 -0
  36. package/dist/native/coValues/account.js +0 -221
  37. package/dist/native/coValues/account.js.map +0 -1
  38. package/dist/native/coValues/coFeed.js +0 -571
  39. package/dist/native/coValues/coFeed.js.map +0 -1
  40. package/dist/native/coValues/coList.js +0 -404
  41. package/dist/native/coValues/coList.js.map +0 -1
  42. package/dist/native/coValues/coMap.js +0 -537
  43. package/dist/native/coValues/coMap.js.map +0 -1
  44. package/dist/native/coValues/deepLoading.js +0 -63
  45. package/dist/native/coValues/deepLoading.js.map +0 -1
  46. package/dist/native/coValues/extensions/imageDef.js +0 -42
  47. package/dist/native/coValues/extensions/imageDef.js.map +0 -1
  48. package/dist/native/coValues/group.js +0 -136
  49. package/dist/native/coValues/group.js.map +0 -1
  50. package/dist/native/coValues/interfaces.js +0 -135
  51. package/dist/native/coValues/interfaces.js.map +0 -1
  52. package/dist/native/coValues/schemaUnion.js +0 -89
  53. package/dist/native/coValues/schemaUnion.js.map +0 -1
  54. package/dist/native/exports.js +0 -5
  55. package/dist/native/exports.js.map +0 -1
  56. package/dist/native/implementation/createContext.js +0 -157
  57. package/dist/native/implementation/createContext.js.map +0 -1
  58. package/dist/native/implementation/devtoolsFormatters.js +0 -95
  59. package/dist/native/implementation/devtoolsFormatters.js.map +0 -1
  60. package/dist/native/implementation/errors.js +0 -2
  61. package/dist/native/implementation/errors.js.map +0 -1
  62. package/dist/native/implementation/inspect.js +0 -2
  63. package/dist/native/implementation/inspect.js.map +0 -1
  64. package/dist/native/implementation/refs.js +0 -115
  65. package/dist/native/implementation/refs.js.map +0 -1
  66. package/dist/native/implementation/schema.js +0 -96
  67. package/dist/native/implementation/schema.js.map +0 -1
  68. package/dist/native/implementation/subscriptionScope.js +0 -91
  69. package/dist/native/implementation/subscriptionScope.js.map +0 -1
  70. package/dist/native/implementation/symbols.js +0 -4
  71. package/dist/native/implementation/symbols.js.map +0 -1
  72. package/dist/native/index.native.js +0 -3
  73. package/dist/native/index.native.js.map +0 -1
  74. package/dist/native/internal.js +0 -18
  75. package/dist/native/internal.js.map +0 -1
  76. package/dist/native/lib/cache.js +0 -13
  77. package/dist/native/lib/cache.js.map +0 -1
  78. package/dist/native/lib/cache.test.js +0 -52
  79. package/dist/native/lib/cache.test.js.map +0 -1
  80. package/dist/web/coValues/account.js +0 -221
  81. package/dist/web/coValues/account.js.map +0 -1
  82. package/dist/web/coValues/coFeed.js +0 -571
  83. package/dist/web/coValues/coFeed.js.map +0 -1
  84. package/dist/web/coValues/coList.js +0 -404
  85. package/dist/web/coValues/coList.js.map +0 -1
  86. package/dist/web/coValues/coMap.js +0 -537
  87. package/dist/web/coValues/coMap.js.map +0 -1
  88. package/dist/web/coValues/deepLoading.js +0 -63
  89. package/dist/web/coValues/deepLoading.js.map +0 -1
  90. package/dist/web/coValues/extensions/imageDef.js +0 -42
  91. package/dist/web/coValues/extensions/imageDef.js.map +0 -1
  92. package/dist/web/coValues/group.js +0 -136
  93. package/dist/web/coValues/group.js.map +0 -1
  94. package/dist/web/coValues/interfaces.js +0 -135
  95. package/dist/web/coValues/interfaces.js.map +0 -1
  96. package/dist/web/coValues/schemaUnion.js +0 -89
  97. package/dist/web/coValues/schemaUnion.js.map +0 -1
  98. package/dist/web/exports.js +0 -5
  99. package/dist/web/exports.js.map +0 -1
  100. package/dist/web/implementation/createContext.js +0 -157
  101. package/dist/web/implementation/createContext.js.map +0 -1
  102. package/dist/web/implementation/devtoolsFormatters.js +0 -95
  103. package/dist/web/implementation/devtoolsFormatters.js.map +0 -1
  104. package/dist/web/implementation/errors.js +0 -2
  105. package/dist/web/implementation/errors.js.map +0 -1
  106. package/dist/web/implementation/inspect.js +0 -2
  107. package/dist/web/implementation/inspect.js.map +0 -1
  108. package/dist/web/implementation/refs.js +0 -115
  109. package/dist/web/implementation/refs.js.map +0 -1
  110. package/dist/web/implementation/schema.js +0 -96
  111. package/dist/web/implementation/schema.js.map +0 -1
  112. package/dist/web/implementation/subscriptionScope.js +0 -91
  113. package/dist/web/implementation/subscriptionScope.js.map +0 -1
  114. package/dist/web/implementation/symbols.js +0 -4
  115. package/dist/web/implementation/symbols.js.map +0 -1
  116. package/dist/web/index.web.js +0 -3
  117. package/dist/web/index.web.js.map +0 -1
  118. package/dist/web/internal.js +0 -18
  119. package/dist/web/internal.js.map +0 -1
  120. package/dist/web/lib/cache.js +0 -13
  121. package/dist/web/lib/cache.js.map +0 -1
  122. package/dist/web/lib/cache.test.js +0 -52
  123. package/dist/web/lib/cache.test.js.map +0 -1
@@ -1,221 +0,0 @@
1
- var _a;
2
- import { LocalNode, RawAccount, cojsonInternals, } from "cojson";
3
- import { AnonymousJazzAgent, CoMap, CoValueBase, Group, MembersSym, Profile, Ref, SchemaInit, ensureCoValueLoaded, inspect, loadCoValue, subscribeToCoValue, subscribeToExistingCoValue, subscriptionsScopes, } from "../internal.js";
4
- import { coValuesCache } from "../lib/cache.js";
5
- /** @category Identity & Permissions */
6
- export class Account extends CoValueBase {
7
- get _schema() {
8
- return this.constructor._schema;
9
- }
10
- get _owner() {
11
- return this;
12
- }
13
- get _loadedAs() {
14
- if (this.isMe)
15
- return this;
16
- const rawAccount = this._raw.core.node.account;
17
- if (rawAccount instanceof RawAccount) {
18
- return coValuesCache.get(rawAccount, () => _a.fromRaw(rawAccount));
19
- }
20
- return new AnonymousJazzAgent(this._raw.core.node);
21
- }
22
- get _refs() {
23
- const profileID = this._raw.get("profile");
24
- const rootID = this._raw.get("root");
25
- return {
26
- profile: profileID &&
27
- new Ref(profileID, this._loadedAs, this._schema.profile),
28
- root: rootID &&
29
- new Ref(rootID, this._loadedAs, this._schema.root),
30
- };
31
- }
32
- constructor(options) {
33
- super();
34
- if (!("fromRaw" in options)) {
35
- throw new Error("Can only construct account from raw or with .create()");
36
- }
37
- this.isMe = options.fromRaw.id == options.fromRaw.core.node.account.id;
38
- Object.defineProperties(this, {
39
- id: {
40
- value: options.fromRaw.id,
41
- enumerable: false,
42
- },
43
- _raw: { value: options.fromRaw, enumerable: false },
44
- _type: { value: "Account", enumerable: false },
45
- });
46
- if (this.isMe) {
47
- this.sessionID = options.fromRaw.core.node.currentSessionID;
48
- }
49
- return new Proxy(this, AccountAndGroupProxyHandler);
50
- }
51
- myRole() {
52
- if (this.isMe) {
53
- return "admin";
54
- }
55
- }
56
- async acceptInvite(valueID, inviteSecret, coValueClass) {
57
- if (!this.isMe) {
58
- throw new Error("Only a controlled account can accept invites");
59
- }
60
- await this._raw.acceptInvite(valueID, inviteSecret);
61
- return loadCoValue(coValueClass, valueID, this, []);
62
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
- }
64
- /** @private */
65
- static async create(options) {
66
- const { node } = await LocalNode.withNewlyCreatedAccount({
67
- ...options,
68
- migration: async (rawAccount, _node, creationProps) => {
69
- const account = new this({
70
- fromRaw: rawAccount,
71
- });
72
- await account.migrate?.(creationProps);
73
- },
74
- });
75
- return this.fromNode(node);
76
- }
77
- static async createAs(as, options) {
78
- // TODO: is there a cleaner way to do this?
79
- const connectedPeers = cojsonInternals.connectedPeers("creatingAccount", "createdAccount", { peer1role: "server", peer2role: "client" });
80
- as._raw.core.node.syncManager.addPeer(connectedPeers[1]);
81
- return this.create({
82
- creationProps: options.creationProps,
83
- crypto: as._raw.core.node.crypto,
84
- peersToLoadFrom: [connectedPeers[0]],
85
- });
86
- }
87
- static fromNode(node) {
88
- return new this({
89
- fromRaw: node.account,
90
- });
91
- }
92
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
- toJSON() {
94
- return {
95
- id: this.id,
96
- _type: this._type,
97
- };
98
- }
99
- [inspect]() {
100
- return this.toJSON();
101
- }
102
- migrate(creationProps) {
103
- if (creationProps) {
104
- const profileGroup = Group.create({ owner: this });
105
- profileGroup.addMember("everyone", "reader");
106
- this.profile = Profile.create({ name: creationProps.name }, { owner: profileGroup });
107
- }
108
- }
109
- /** @category Subscription & Loading */
110
- static load(id, as, depth) {
111
- return loadCoValue(this, id, as, depth);
112
- }
113
- /** @category Subscription & Loading */
114
- static subscribe(id, as, depth, listener) {
115
- return subscribeToCoValue(this, id, as, depth, listener);
116
- }
117
- /** @category Subscription & Loading */
118
- ensureLoaded(depth) {
119
- return ensureCoValueLoaded(this, depth);
120
- }
121
- /** @category Subscription & Loading */
122
- subscribe(depth, listener) {
123
- return subscribeToExistingCoValue(this, depth, listener);
124
- }
125
- /**
126
- * Wait for the `Account` to be uploaded to the other peers.
127
- *
128
- * @category Subscription & Loading
129
- */
130
- waitForSync(options) {
131
- return this._raw.core.waitForSync(options);
132
- }
133
- /**
134
- * Wait for all the available `CoValues` to be uploaded to the other peers.
135
- *
136
- * @category Subscription & Loading
137
- */
138
- waitForAllCoValuesSync(options) {
139
- return this._raw.core.node.syncManager.waitForAllCoValuesSync(options?.timeout);
140
- }
141
- }
142
- _a = Account;
143
- (() => {
144
- _a._schema = {
145
- profile: {
146
- ref: () => Profile,
147
- optional: false,
148
- },
149
- root: {
150
- ref: () => CoMap,
151
- optional: true,
152
- },
153
- };
154
- })();
155
- export const AccountAndGroupProxyHandler = {
156
- get(target, key, receiver) {
157
- if (key === "profile") {
158
- const ref = target._refs.profile;
159
- return ref
160
- ? ref.accessFrom(receiver, "profile")
161
- : // eslint-disable-next-line @typescript-eslint/no-explicit-any
162
- undefined;
163
- }
164
- else if (key === "root") {
165
- const ref = target._refs.root;
166
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
167
- return ref ? ref.accessFrom(receiver, "root") : undefined;
168
- }
169
- else {
170
- return Reflect.get(target, key, receiver);
171
- }
172
- },
173
- set(target, key, value, receiver) {
174
- if ((key === "profile" || key === "root" || key === MembersSym) &&
175
- typeof value === "object" &&
176
- SchemaInit in value) {
177
- target.constructor._schema ||= {};
178
- target.constructor._schema[key] = value[SchemaInit];
179
- return true;
180
- }
181
- else if (key === "profile") {
182
- if (value) {
183
- target._raw.set("profile", value.id, "trusting");
184
- }
185
- subscriptionsScopes
186
- .get(receiver)
187
- ?.onRefAccessedOrSet(target.id, value.id);
188
- return true;
189
- }
190
- else if (key === "root") {
191
- if (value) {
192
- target._raw.set("root", value.id);
193
- }
194
- subscriptionsScopes
195
- .get(receiver)
196
- ?.onRefAccessedOrSet(target.id, value.id);
197
- return true;
198
- }
199
- else {
200
- return Reflect.set(target, key, value, receiver);
201
- }
202
- },
203
- defineProperty(target, key, descriptor) {
204
- if ((key === "profile" || key === "root" || key === MembersSym) &&
205
- typeof descriptor.value === "object" &&
206
- SchemaInit in descriptor.value) {
207
- target.constructor._schema ||= {};
208
- target.constructor._schema[key] =
209
- descriptor.value[SchemaInit];
210
- return true;
211
- }
212
- else {
213
- return Reflect.defineProperty(target, key, descriptor);
214
- }
215
- },
216
- };
217
- /** @category Identity & Permissions */
218
- export function isControlledAccount(account) {
219
- return account.isMe;
220
- }
221
- //# sourceMappingURL=account.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/coValues/account.ts"],"names":[],"mappings":";AAAA,OAAO,EAKL,SAAS,EAET,UAAU,EAKV,eAAe,GAChB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,kBAAkB,EAClB,KAAK,EAEL,WAAW,EAIX,KAAK,EAEL,UAAU,EACV,OAAO,EACP,GAAG,EAIH,UAAU,EACV,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,uCAAuC;AACvC,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAOtC,IAAI,OAAO;QAIT,OAAQ,IAAI,CAAC,WAA8B,CAAC,OAAO,CAAC;IACtD,CAAC;IAcD,IAAI,MAAM;QACR,OAAO,IAAe,CAAC;IACzB,CAAC;IACD,IAAI,SAAS;QACX,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAE/C,IAAI,UAAU,YAAY,UAAU,EAAE,CAAC;YACrC,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,EAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAKD,IAAI,KAAK;QAIP,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAE5B,CAAC;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAEtB,CAAC;QAEd,OAAO;YACL,OAAO,EACL,SAAS;gBACR,IAAI,GAAG,CACN,SAAS,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,CAAC,OAEZ,CAEuC;YAC5C,IAAI,EACF,MAAM;gBACL,IAAI,GAAG,CACN,MAAM,EACN,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,CAAC,IAAuD,CAE/B;SAC1C,CAAC;IACJ,CAAC;IAKD,YAAY,OAAuD;QACjE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAEvE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;YAC5B,EAAE,EAAE;gBACF,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzB,UAAU,EAAE,KAAK;aAClB;YACD,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;YACnD,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;SAC/C,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,2BAAiD,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAc,EACd,YAA0B,EAC1B,YAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,MAAO,IAAI,CAAC,IAA6B,CAAC,YAAY,CACpD,OAAsC,EACtC,YAAY,CACb,CAAC;QAEF,OAAO,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAe,EAAE,EAAE,CAAC,CAAC;QAC/D,8DAA8D;IAChE,CAAC;IAED,eAAe;IACf,MAAM,CAAC,KAAK,CAAC,MAAM,CAEjB,OAKC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC;YACvD,GAAG,OAAO;YACV,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;gBACpD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC;oBACvB,OAAO,EAAE,UAAU;iBACpB,CAAM,CAAC;gBAER,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAM,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAEnB,EAAW,EACX,OAEC;QAED,2CAA2C;QAC3C,MAAM,cAAc,GAAG,eAAe,CAAC,cAAc,CACnD,iBAAiB,EACjB,gBAAgB,EAChB,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC7C,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC,MAAM,CAAI;YACpB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;YAChC,eAAe,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CAEb,IAAe;QAEf,OAAO,IAAI,IAAI,CAAC;YACd,OAAO,EAAE,IAAI,CAAC,OAA+B;SAC9C,CAAM,CAAC;IACV,CAAC;IAED,8DAA8D;IAC9D,MAAM;QACJ,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;IAED,CAAC,OAAO,CAAC;QACP,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,CAEL,aAAgC;QAEhC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,YAAY,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAC3B,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,EAC5B,EAAE,KAAK,EAAE,YAAY,EAAE,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAET,EAAS,EACT,EAAW,EACX,KAA0B;QAE1B,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,SAAS,CAEd,EAAS,EACT,EAAW,EACX,KAA0B,EAC1B,QAAiD;QAEjD,OAAO,kBAAkB,CAAW,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,uCAAuC;IACvC,YAAY,CAEV,KAA0B;QAE1B,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,uCAAuC;IACvC,SAAS,CAEP,KAA0B,EAC1B,QAAiD;QAEjD,OAAO,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,OAEX;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,OAEtB;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAC3D,OAAO,EAAE,OAAO,CACjB,CAAC;IACJ,CAAC;CACF;;AAjQC;IACE,GAAK,OAAO,GAAG;QACb,OAAO,EAAE;YACP,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO;YAClB,QAAQ,EAAE,KAAK;SACc;QAC/B,IAAI,EAAE;YACJ,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;YAChB,QAAQ,EAAE,IAAI;SACa;KAC9B,CAAC;AACJ,CAAC,GAAA,CAAA;AAwPH,MAAM,CAAC,MAAM,2BAA2B,GAAkC;IACxE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ;QACvB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACjC,OAAO,GAAG;gBACR,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACrC,CAAC,CAAC,8DAA8D;oBAC7D,SAAiB,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,8DAA8D;YAC9D,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAE,SAAiB,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ;QAC9B,IACE,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,CAAC;YAC3D,OAAO,KAAK,KAAK,QAAQ;YACzB,UAAU,IAAI,KAAK,EACnB,CAAC;YACA,MAAM,CAAC,WAA4B,CAAC,OAAO,KAAK,EAAE,CAAC;YACnD,MAAM,CAAC,WAA4B,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,GAAG,CACb,SAAS,EACT,KAAK,CAAC,EAA+B,EACrC,UAAU,CACX,CAAC;YACJ,CAAC;YACD,mBAAmB;iBAChB,GAAG,CAAC,QAAQ,CAAC;gBACd,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAA+B,CAAC,CAAC;YACjE,CAAC;YACD,mBAAmB;iBAChB,GAAG,CAAC,QAAQ,CAAC;gBACd,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU;QACpC,IACE,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,CAAC;YAC3D,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ;YACpC,UAAU,IAAI,UAAU,CAAC,KAAK,EAC9B,CAAC;YACA,MAAM,CAAC,WAA4B,CAAC,OAAO,KAAK,EAAE,CAAC;YACnD,MAAM,CAAC,WAA4B,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC/C,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAC;AAEF,uCAAuC;AACvC,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAKlD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC"}