@powerhousedao/reactor-api 5.1.0 → 5.2.0-staging.1

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 (129) hide show
  1. package/dist/codegen.js +2 -2
  2. package/dist/codegen.js.map +1 -1
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/src/graphql/auth/index.d.ts +2 -0
  8. package/dist/src/graphql/auth/index.d.ts.map +1 -0
  9. package/dist/src/graphql/auth/index.js +2 -0
  10. package/dist/src/graphql/auth/index.js.map +1 -0
  11. package/dist/src/graphql/auth/resolvers.d.ts +149 -0
  12. package/dist/src/graphql/auth/resolvers.d.ts.map +1 -0
  13. package/dist/src/graphql/auth/resolvers.js +173 -0
  14. package/dist/src/graphql/auth/resolvers.js.map +1 -0
  15. package/dist/src/graphql/auth/schema.graphql +173 -0
  16. package/dist/src/graphql/auth/subgraph.d.ts +177 -0
  17. package/dist/src/graphql/auth/subgraph.d.ts.map +1 -0
  18. package/dist/src/graphql/auth/subgraph.js +340 -0
  19. package/dist/src/graphql/auth/subgraph.js.map +1 -0
  20. package/dist/src/graphql/base-subgraph.d.ts +4 -1
  21. package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
  22. package/dist/src/graphql/base-subgraph.js +4 -0
  23. package/dist/src/graphql/base-subgraph.js.map +1 -1
  24. package/dist/src/graphql/document-model-subgraph.d.ts +51 -0
  25. package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -0
  26. package/dist/src/graphql/document-model-subgraph.js +104 -0
  27. package/dist/src/graphql/document-model-subgraph.js.map +1 -0
  28. package/dist/src/graphql/drive-subgraph.d.ts.map +1 -1
  29. package/dist/src/graphql/drive-subgraph.js +51 -10
  30. package/dist/src/graphql/drive-subgraph.js.map +1 -1
  31. package/dist/src/graphql/graphql-manager.d.ts +11 -3
  32. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  33. package/dist/src/graphql/graphql-manager.js +72 -15
  34. package/dist/src/graphql/graphql-manager.js.map +1 -1
  35. package/dist/src/graphql/index.d.ts +1 -0
  36. package/dist/src/graphql/index.d.ts.map +1 -1
  37. package/dist/src/graphql/index.js +1 -0
  38. package/dist/src/graphql/index.js.map +1 -1
  39. package/dist/src/graphql/reactor/adapters.js +1 -1
  40. package/dist/src/graphql/reactor/adapters.js.map +1 -1
  41. package/dist/src/graphql/reactor/factory.d.ts +4 -4
  42. package/dist/src/graphql/reactor/factory.d.ts.map +1 -1
  43. package/dist/src/graphql/reactor/gen/graphql.d.ts +295 -64
  44. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -1
  45. package/dist/src/graphql/reactor/gen/graphql.js +121 -8
  46. package/dist/src/graphql/reactor/gen/graphql.js.map +1 -1
  47. package/dist/src/graphql/reactor/operations.graphql +253 -0
  48. package/dist/src/graphql/reactor/pubsub.d.ts +2 -2
  49. package/dist/src/graphql/reactor/pubsub.d.ts.map +1 -1
  50. package/dist/src/graphql/reactor/pubsub.js +2 -1
  51. package/dist/src/graphql/reactor/pubsub.js.map +1 -1
  52. package/dist/src/graphql/reactor/resolvers.d.ts +48 -17
  53. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
  54. package/dist/src/graphql/reactor/resolvers.js +114 -34
  55. package/dist/src/graphql/reactor/resolvers.js.map +1 -1
  56. package/dist/src/graphql/reactor/schema.graphql +429 -0
  57. package/dist/src/graphql/reactor/subgraph.d.ts +34 -0
  58. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -1
  59. package/dist/src/graphql/reactor/subgraph.js +325 -22
  60. package/dist/src/graphql/reactor/subgraph.js.map +1 -1
  61. package/dist/src/graphql/reactor/validation.d.ts +62 -62
  62. package/dist/src/graphql/system/system-subgraph.d.ts.map +1 -1
  63. package/dist/src/graphql/types.d.ts +5 -1
  64. package/dist/src/graphql/types.d.ts.map +1 -1
  65. package/dist/src/graphql/utils.js +1 -1
  66. package/dist/src/graphql/utils.js.map +1 -1
  67. package/dist/src/migrations/001_create_document_permissions.d.ts +4 -0
  68. package/dist/src/migrations/001_create_document_permissions.d.ts.map +1 -0
  69. package/dist/src/migrations/001_create_document_permissions.js +91 -0
  70. package/dist/src/migrations/001_create_document_permissions.js.map +1 -0
  71. package/dist/src/migrations/index.d.ts +10 -0
  72. package/dist/src/migrations/index.d.ts.map +1 -0
  73. package/dist/src/migrations/index.js +59 -0
  74. package/dist/src/migrations/index.js.map +1 -0
  75. package/dist/src/packages/util.js +1 -1
  76. package/dist/src/packages/util.js.map +1 -1
  77. package/dist/src/server.d.ts +17 -7
  78. package/dist/src/server.d.ts.map +1 -1
  79. package/dist/src/server.js +49 -27
  80. package/dist/src/server.js.map +1 -1
  81. package/dist/src/services/auth.service.d.ts +1 -0
  82. package/dist/src/services/auth.service.d.ts.map +1 -1
  83. package/dist/src/services/auth.service.js +32 -22
  84. package/dist/src/services/auth.service.js.map +1 -1
  85. package/dist/src/services/document-permission.service.d.ts +201 -0
  86. package/dist/src/services/document-permission.service.d.ts.map +1 -0
  87. package/dist/src/services/document-permission.service.js +636 -0
  88. package/dist/src/services/document-permission.service.js.map +1 -0
  89. package/dist/src/utils/create-schema.d.ts +5 -4
  90. package/dist/src/utils/create-schema.d.ts.map +1 -1
  91. package/dist/src/utils/create-schema.js +110 -4
  92. package/dist/src/utils/create-schema.js.map +1 -1
  93. package/dist/src/utils/db.d.ts +65 -1
  94. package/dist/src/utils/db.d.ts.map +1 -1
  95. package/dist/src/utils/db.js.map +1 -1
  96. package/dist/test/document-permission.service.test.d.ts +2 -0
  97. package/dist/test/document-permission.service.test.d.ts.map +1 -0
  98. package/dist/test/document-permission.service.test.js +480 -0
  99. package/dist/test/document-permission.service.test.js.map +1 -0
  100. package/dist/test/drive-subgraph-permissions.test.d.ts +2 -0
  101. package/dist/test/drive-subgraph-permissions.test.d.ts.map +1 -0
  102. package/dist/test/drive-subgraph-permissions.test.js +195 -0
  103. package/dist/test/drive-subgraph-permissions.test.js.map +1 -0
  104. package/dist/test/identity-integration.test.d.ts +2 -0
  105. package/dist/test/identity-integration.test.d.ts.map +1 -0
  106. package/dist/test/identity-integration.test.js +349 -0
  107. package/dist/test/identity-integration.test.js.map +1 -0
  108. package/dist/test/permissions-integration.test.d.ts +2 -0
  109. package/dist/test/permissions-integration.test.d.ts.map +1 -0
  110. package/dist/test/permissions-integration.test.js +421 -0
  111. package/dist/test/permissions-integration.test.js.map +1 -0
  112. package/dist/test/reactor-adapters.test.js +2 -2
  113. package/dist/test/reactor-adapters.test.js.map +1 -1
  114. package/dist/test/reactor-resolvers.test.js +24 -24
  115. package/dist/test/reactor-resolvers.test.js.map +1 -1
  116. package/dist/test/reactor-subgraph-permissions.test.d.ts +2 -0
  117. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +1 -0
  118. package/dist/test/reactor-subgraph-permissions.test.js +400 -0
  119. package/dist/test/reactor-subgraph-permissions.test.js.map +1 -0
  120. package/dist/test/two-reactor-gql-sync.test.d.ts +2 -0
  121. package/dist/test/two-reactor-gql-sync.test.d.ts.map +1 -0
  122. package/dist/test/two-reactor-gql-sync.test.js +298 -0
  123. package/dist/test/two-reactor-gql-sync.test.js.map +1 -0
  124. package/dist/test/utils/gql-resolver-bridge.d.ts +12 -0
  125. package/dist/test/utils/gql-resolver-bridge.d.ts.map +1 -0
  126. package/dist/test/utils/gql-resolver-bridge.js +60 -0
  127. package/dist/test/utils/gql-resolver-bridge.js.map +1 -0
  128. package/dist/tsconfig.tsbuildinfo +1 -1
  129. package/package.json +11 -9
@@ -0,0 +1,201 @@
1
+ import type { Kysely } from "kysely";
2
+ import type { DocumentPermissionDatabase, DocumentPermissionLevel } from "../utils/db.js";
3
+ export interface DocumentPermissionEntry {
4
+ documentId: string;
5
+ userAddress: string;
6
+ permission: DocumentPermissionLevel;
7
+ grantedBy: string;
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ }
11
+ export interface Group {
12
+ id: number;
13
+ name: string;
14
+ description: string | null;
15
+ createdAt: Date;
16
+ updatedAt: Date;
17
+ }
18
+ export interface DocumentGroupPermissionEntry {
19
+ documentId: string;
20
+ groupId: number;
21
+ permission: DocumentPermissionLevel;
22
+ grantedBy: string;
23
+ createdAt: Date;
24
+ updatedAt: Date;
25
+ }
26
+ export interface OperationUserPermissionEntry {
27
+ documentId: string;
28
+ operationType: string;
29
+ userAddress: string;
30
+ grantedBy: string;
31
+ createdAt: Date;
32
+ }
33
+ export interface OperationGroupPermissionEntry {
34
+ documentId: string;
35
+ operationType: string;
36
+ groupId: number;
37
+ grantedBy: string;
38
+ createdAt: Date;
39
+ }
40
+ /**
41
+ * Function type for getting parent document IDs
42
+ * This is injected to avoid circular dependencies with the reactor client
43
+ */
44
+ export type GetParentIdsFn = (documentId: string) => Promise<string[]>;
45
+ /**
46
+ * Service for managing document-level permissions.
47
+ *
48
+ * Permission levels for documents:
49
+ * - READ: Can fetch and read the document
50
+ * - WRITE: Can push updates and modify the document
51
+ * - ADMIN: Can manage document permissions and settings
52
+ *
53
+ * Operation permissions:
54
+ * - Users and groups can be granted permission to execute specific operations
55
+ *
56
+ * Global roles (via environment variables):
57
+ * - AUTH_ENABLED: Enables authorization checks
58
+ * - ADMINS: Comma-separated list of admin addresses (full access)
59
+ * - USERS: Comma-separated list of user addresses (read/write access)
60
+ * - GUESTS: Comma-separated list of guest addresses (read access)
61
+ */
62
+ export declare class DocumentPermissionService {
63
+ private readonly db;
64
+ constructor(db: Kysely<DocumentPermissionDatabase>);
65
+ /**
66
+ * Get the permission level for a user on a specific document.
67
+ * Returns null if no permission is set.
68
+ */
69
+ getUserPermission(documentId: string, userAddress: string): Promise<DocumentPermissionLevel | null>;
70
+ /**
71
+ * Get all permissions for a document
72
+ */
73
+ getDocumentPermissions(documentId: string): Promise<DocumentPermissionEntry[]>;
74
+ /**
75
+ * Get all documents a user has explicit access to
76
+ */
77
+ getUserDocuments(userAddress: string): Promise<DocumentPermissionEntry[]>;
78
+ /**
79
+ * Grant or update a user's permission on a document.
80
+ */
81
+ grantPermission(documentId: string, userAddress: string, permission: DocumentPermissionLevel, grantedBy: string): Promise<DocumentPermissionEntry>;
82
+ /**
83
+ * Revoke a user's permission on a document
84
+ */
85
+ revokePermission(documentId: string, userAddress: string): Promise<void>;
86
+ /**
87
+ * Delete all permissions for a document (used when deleting a document)
88
+ */
89
+ deleteAllDocumentPermissions(documentId: string): Promise<void>;
90
+ /**
91
+ * Check if a user can read a document.
92
+ * Returns true if user has READ, WRITE, or ADMIN permission (direct or via group)
93
+ */
94
+ canReadDocument(documentId: string, userAddress: string | undefined): Promise<boolean>;
95
+ /**
96
+ * Check if a user can write to a document.
97
+ * Returns true if user has WRITE or ADMIN permission (direct or via group)
98
+ */
99
+ canWriteDocument(documentId: string, userAddress: string | undefined): Promise<boolean>;
100
+ /**
101
+ * Check if a user can manage a document (change permissions, settings).
102
+ * Returns true if user has ADMIN permission (direct or via group)
103
+ */
104
+ canManageDocument(documentId: string, userAddress: string | undefined): Promise<boolean>;
105
+ /**
106
+ * Check if a user can read a document, including parent permission inheritance.
107
+ * Returns true if user has permission on the document OR any parent in the hierarchy.
108
+ */
109
+ canRead(documentId: string, userAddress: string | undefined, getParentIds: GetParentIdsFn): Promise<boolean>;
110
+ /**
111
+ * Check if a user can write to a document, including parent permission inheritance.
112
+ * Returns true if user has write permission on the document OR any parent in the hierarchy.
113
+ */
114
+ canWrite(documentId: string, userAddress: string | undefined, getParentIds: GetParentIdsFn): Promise<boolean>;
115
+ /**
116
+ * Filter a list of document IDs to only include those the user can read.
117
+ */
118
+ filterReadableDocuments(documentIds: string[], userAddress: string | undefined, getParentIds: GetParentIdsFn): Promise<string[]>;
119
+ /**
120
+ * Create a new group
121
+ */
122
+ createGroup(name: string, description?: string): Promise<Group>;
123
+ /**
124
+ * Delete a group and all its associations
125
+ */
126
+ deleteGroup(groupId: number): Promise<void>;
127
+ /**
128
+ * Get a group by ID
129
+ */
130
+ getGroup(groupId: number): Promise<Group | null>;
131
+ /**
132
+ * List all groups
133
+ */
134
+ listGroups(): Promise<Group[]>;
135
+ /**
136
+ * Add a user to a group
137
+ */
138
+ addUserToGroup(userAddress: string, groupId: number): Promise<void>;
139
+ /**
140
+ * Remove a user from a group
141
+ */
142
+ removeUserFromGroup(userAddress: string, groupId: number): Promise<void>;
143
+ /**
144
+ * Get all groups a user belongs to
145
+ */
146
+ getUserGroups(userAddress: string): Promise<Group[]>;
147
+ /**
148
+ * Get all members of a group
149
+ */
150
+ getGroupMembers(groupId: number): Promise<string[]>;
151
+ /**
152
+ * Grant a group permission on a document
153
+ */
154
+ grantGroupPermission(documentId: string, groupId: number, permission: DocumentPermissionLevel, grantedBy: string): Promise<DocumentGroupPermissionEntry>;
155
+ /**
156
+ * Revoke a group's permission on a document
157
+ */
158
+ revokeGroupPermission(documentId: string, groupId: number): Promise<void>;
159
+ /**
160
+ * Get all group permissions for a document
161
+ */
162
+ getDocumentGroupPermissions(documentId: string): Promise<DocumentGroupPermissionEntry[]>;
163
+ /**
164
+ * Get best permission level a user has on a document via groups
165
+ */
166
+ getUserGroupPermission(documentId: string, userAddress: string): Promise<DocumentPermissionLevel | null>;
167
+ /**
168
+ * Grant a user permission to execute an operation on a document
169
+ */
170
+ grantOperationPermission(documentId: string, operationType: string, userAddress: string, grantedBy: string): Promise<OperationUserPermissionEntry>;
171
+ /**
172
+ * Revoke a user's permission to execute an operation
173
+ */
174
+ revokeOperationPermission(documentId: string, operationType: string, userAddress: string): Promise<void>;
175
+ /**
176
+ * Grant a group permission to execute an operation on a document
177
+ */
178
+ grantGroupOperationPermission(documentId: string, operationType: string, groupId: number, grantedBy: string): Promise<OperationGroupPermissionEntry>;
179
+ /**
180
+ * Revoke a group's permission to execute an operation
181
+ */
182
+ revokeGroupOperationPermission(documentId: string, operationType: string, groupId: number): Promise<void>;
183
+ /**
184
+ * Get all users with permission to execute an operation
185
+ */
186
+ getOperationUserPermissions(documentId: string, operationType: string): Promise<OperationUserPermissionEntry[]>;
187
+ /**
188
+ * Get all groups with permission to execute an operation
189
+ */
190
+ getOperationGroupPermissions(documentId: string, operationType: string): Promise<OperationGroupPermissionEntry[]>;
191
+ /**
192
+ * Check if a user can execute a specific operation on a document.
193
+ * Returns true if user has direct permission or is in a group with permission.
194
+ */
195
+ canExecuteOperation(documentId: string, operationType: string, userAddress: string | undefined): Promise<boolean>;
196
+ /**
197
+ * Check if an operation has any permissions set (is restricted)
198
+ */
199
+ isOperationRestricted(documentId: string, operationType: string): Promise<boolean>;
200
+ }
201
+ //# sourceMappingURL=document-permission.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-permission.service.d.ts","sourceRoot":"","sources":["../../../src/services/document-permission.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEvE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAMnE;;;OAGG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAW1C;;OAEG;IACG,sBAAsB,CAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAiBrC;;OAEG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAiBrC;;OAEG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,uBAAuB,EACnC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC;IAwCnC;;OAEG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BrE;;;OAGG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,OAAO,CAAC;IAsBnB;;;OAGG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,OAAO,CAAC;IAsBnB;;;OAGG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,OAAO,CAAC;IA0BnB;;;OAGG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,EAAE,cAAc,GAC3B,OAAO,CAAC,OAAO,CAAC;IAuBnB;;;OAGG;IACG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,EAAE,cAAc,GAC3B,OAAO,CAAC,OAAO,CAAC;IAuBnB;;OAEG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,EAAE,cAAc,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBpB;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAsBrE;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjD;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAUtD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAOpC;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezE;;OAEG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAe1D;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAczD;;OAEG;IACG,oBAAoB,CACxB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,uBAAuB,EACnC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,4BAA4B,CAAC;IAuCxC;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,2BAA2B,CAC/B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,4BAA4B,EAAE,CAAC;IAe1C;;OAEG;IACG,sBAAsB,CAC1B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IA2B1C;;OAEG;IACG,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,4BAA4B,CAAC;IAmCxC;;OAEG;IACG,yBAAyB,CAC7B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAShB;;OAEG;IACG,6BAA6B,CACjC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,6BAA6B,CAAC;IAkCzC;;OAEG;IACG,8BAA8B,CAClC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAShB;;OAEG;IACG,2BAA2B,CAC/B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,4BAA4B,EAAE,CAAC;IAe1C;;OAEG;IACG,4BAA4B,CAChC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,EAAE,CAAC;IAe3C;;;OAGG;IACG,mBAAmB,CACvB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,OAAO,CAAC;IAqCnB;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;CAqBpB"}