dyna-record 0.1.5 → 0.2.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.
- package/README.md +11 -13
- package/dist/src/DynaRecord.d.ts +36 -28
- package/dist/src/DynaRecord.d.ts.map +1 -1
- package/dist/src/DynaRecord.js +39 -36
- package/dist/src/decorators/Table.d.ts.map +1 -1
- package/dist/src/decorators/attributes/BooleanAttribute.d.ts.map +1 -1
- package/dist/src/decorators/attributes/DateAttribute.d.ts.map +1 -1
- package/dist/src/decorators/attributes/EnumAttribute.d.ts.map +1 -1
- package/dist/src/decorators/attributes/ForeignKeyAttribute.d.ts.map +1 -1
- package/dist/src/decorators/attributes/NumberAttribute.d.ts.map +1 -1
- package/dist/src/decorators/attributes/PartitionKeyAttribute.d.ts.map +1 -1
- package/dist/src/decorators/attributes/SortKeyAttribute.d.ts.map +1 -1
- package/dist/src/decorators/attributes/StringAttribute.d.ts.map +1 -1
- package/dist/src/decorators/attributes/serializers.d.ts +1 -1
- package/dist/src/decorators/relationships/BelongsTo.d.ts.map +1 -1
- package/dist/src/decorators/relationships/HasAndBelongsToMany.d.ts.map +1 -1
- package/dist/src/decorators/relationships/HasMany.d.ts +7 -0
- package/dist/src/decorators/relationships/HasMany.d.ts.map +1 -1
- package/dist/src/decorators/relationships/HasMany.js +12 -2
- package/dist/src/decorators/relationships/HasOne.d.ts.map +1 -1
- package/dist/src/decorators/types.d.ts +2 -2
- package/dist/src/decorators/types.d.ts.map +1 -1
- package/dist/src/dynamo-utils/TransactGetBuilder.d.ts +4 -0
- package/dist/src/dynamo-utils/TransactGetBuilder.d.ts.map +1 -1
- package/dist/src/dynamo-utils/TransactGetBuilder.js +6 -0
- package/dist/src/metadata/EntityMetadata.d.ts +21 -1
- package/dist/src/metadata/EntityMetadata.d.ts.map +1 -1
- package/dist/src/metadata/EntityMetadata.js +33 -0
- package/dist/src/metadata/TableMetadata.d.ts.map +1 -1
- package/dist/src/metadata/TableMetadata.js +1 -3
- package/dist/src/metadata/relationship-metadata/BelongsToRelationship.d.ts +1 -1
- package/dist/src/metadata/relationship-metadata/BelongsToRelationship.js +1 -1
- package/dist/src/metadata/relationship-metadata/HasManyRelationship.d.ts +2 -1
- package/dist/src/metadata/relationship-metadata/HasManyRelationship.d.ts.map +1 -1
- package/dist/src/metadata/relationship-metadata/HasManyRelationship.js +2 -1
- package/dist/src/metadata/relationship-metadata/OwnedByRelationship.d.ts +18 -0
- package/dist/src/metadata/relationship-metadata/OwnedByRelationship.d.ts.map +1 -0
- package/dist/src/metadata/relationship-metadata/OwnedByRelationship.js +26 -0
- package/dist/src/metadata/relationship-metadata/RelationshipMetadata.d.ts +1 -1
- package/dist/src/metadata/relationship-metadata/RelationshipMetadata.d.ts.map +1 -1
- package/dist/src/metadata/relationship-metadata/index.d.ts +2 -1
- package/dist/src/metadata/relationship-metadata/index.d.ts.map +1 -1
- package/dist/src/metadata/relationship-metadata/index.js +3 -1
- package/dist/src/metadata/relationship-metadata/types.d.ts +7 -2
- package/dist/src/metadata/relationship-metadata/types.d.ts.map +1 -1
- package/dist/src/metadata/relationship-metadata/utils.d.ts.map +1 -1
- package/dist/src/metadata/relationship-metadata/utils.js +3 -0
- package/dist/src/metadata/types.d.ts +7 -4
- package/dist/src/metadata/types.d.ts.map +1 -1
- package/dist/src/metadata/utils.d.ts +8 -4
- package/dist/src/metadata/utils.d.ts.map +1 -1
- package/dist/src/metadata/utils.js +8 -1
- package/dist/src/operations/Create/Create.d.ts +95 -16
- package/dist/src/operations/Create/Create.d.ts.map +1 -1
- package/dist/src/operations/Create/Create.js +171 -22
- package/dist/src/operations/Delete/Delete.d.ts +32 -23
- package/dist/src/operations/Delete/Delete.d.ts.map +1 -1
- package/dist/src/operations/Delete/Delete.js +117 -100
- package/dist/src/operations/Delete/types.d.ts +0 -3
- package/dist/src/operations/Delete/types.d.ts.map +1 -1
- package/dist/src/operations/FindById/FindById.d.ts +7 -28
- package/dist/src/operations/FindById/FindById.d.ts.map +1 -1
- package/dist/src/operations/FindById/FindById.js +36 -125
- package/dist/src/operations/FindById/types.d.ts +8 -9
- package/dist/src/operations/FindById/types.d.ts.map +1 -1
- package/dist/src/operations/Query/Query.d.ts +2 -1
- package/dist/src/operations/Query/Query.d.ts.map +1 -1
- package/dist/src/operations/Query/Query.js +17 -4
- package/dist/src/operations/Query/types.d.ts +39 -5
- package/dist/src/operations/Query/types.d.ts.map +1 -1
- package/dist/src/operations/Update/Update.d.ts +185 -24
- package/dist/src/operations/Update/Update.d.ts.map +1 -1
- package/dist/src/operations/Update/Update.js +409 -72
- package/dist/src/operations/Update/UpdateDryRun.d.ts +10 -0
- package/dist/src/operations/Update/UpdateDryRun.d.ts.map +1 -0
- package/dist/src/operations/Update/UpdateDryRun.js +15 -0
- package/dist/src/operations/Update/index.d.ts +1 -0
- package/dist/src/operations/Update/index.d.ts.map +1 -1
- package/dist/src/operations/Update/index.js +3 -1
- package/dist/src/operations/types.d.ts +6 -1
- package/dist/src/operations/types.d.ts.map +1 -1
- package/dist/src/operations/utils/expressionBuilder.d.ts.map +1 -1
- package/dist/src/operations/utils/expressionBuilder.js +1 -4
- package/dist/src/operations/utils/index.d.ts +0 -1
- package/dist/src/operations/utils/index.d.ts.map +1 -1
- package/dist/src/operations/utils/index.js +0 -6
- package/dist/src/operations/utils/utils.d.ts +13 -3
- package/dist/src/operations/utils/utils.d.ts.map +1 -1
- package/dist/src/operations/utils/utils.js +33 -3
- package/dist/src/query-utils/Filters.d.ts +1 -1
- package/dist/src/query-utils/Filters.d.ts.map +1 -1
- package/dist/src/query-utils/Filters.js +7 -15
- package/dist/src/query-utils/QueryBuilder.d.ts.map +1 -1
- package/dist/src/query-utils/QueryBuilder.js +9 -1
- package/dist/src/relationships/JoinTable.d.ts +17 -7
- package/dist/src/relationships/JoinTable.d.ts.map +1 -1
- package/dist/src/relationships/JoinTable.js +77 -20
- package/dist/src/relationships/index.d.ts +0 -1
- package/dist/src/relationships/index.d.ts.map +1 -1
- package/dist/src/relationships/index.js +1 -3
- package/dist/src/types.d.ts +6 -8
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils.d.ts +10 -32
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +13 -59
- package/package.json +5 -5
- package/dist/src/operations/utils/RelationshipTransactions.d.ts +0 -64
- package/dist/src/operations/utils/RelationshipTransactions.d.ts.map +0 -1
- package/dist/src/operations/utils/RelationshipTransactions.js +0 -125
- package/dist/src/relationships/BelongsToLink.d.ts +0 -51
- package/dist/src/relationships/BelongsToLink.d.ts.map +0 -1
- package/dist/src/relationships/BelongsToLink.js +0 -57
|
@@ -1,50 +1,211 @@
|
|
|
1
1
|
import type DynaRecord from "../../DynaRecord";
|
|
2
|
+
import { TransactWriteBuilder } from "../../dynamo-utils";
|
|
2
3
|
import OperationBase from "../OperationBase";
|
|
3
4
|
import type { UpdatedAttributes, UpdateOptions } from "./types";
|
|
4
5
|
import type { EntityClass } from "../../types";
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* Represents an update operation for a DynaRecord-backed entity, handling both attribute updates and relationship consistency via denormalization.
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
+
* This class supports updating an existing entity and managing its relational links, specifically:
|
|
10
|
+
* - Updating entity attributes while preserving schema constraints.
|
|
11
|
+
* - Managing "BelongsTo" relationship links by creating or removing associated denormalized records.
|
|
12
|
+
* - Ensuring that if a foreign key changes, the old link record is removed, preventing stale references.
|
|
9
13
|
*
|
|
10
|
-
* Only attributes defined on the model can be
|
|
14
|
+
* Only attributes defined on the model can be updated. Both compile-time and runtime checks help ensure that updated values are valid.
|
|
15
|
+
*
|
|
16
|
+
* **Example**
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const updateOp = new Update(MyEntityClass);
|
|
19
|
+
* await updateOp.run("entityId", { name: "NewName", status: "active" });
|
|
20
|
+
* ```
|
|
11
21
|
*
|
|
12
22
|
* @template T - The type of the entity being updated, extending `DynaRecord`.
|
|
13
23
|
*/
|
|
14
24
|
declare class Update<T extends DynaRecord> extends OperationBase<T> {
|
|
15
|
-
|
|
16
|
-
constructor(Entity: EntityClass<T
|
|
25
|
+
protected readonly transactionBuilder: TransactWriteBuilder;
|
|
26
|
+
constructor(Entity: EntityClass<T>, transactionBuilder?: TransactWriteBuilder);
|
|
27
|
+
/**
|
|
28
|
+
* Executes the update operation against DynamoDB.
|
|
29
|
+
*
|
|
30
|
+
* **What it does:**
|
|
31
|
+
* - Fetches the current state of the entity and any related "Has" relationship entities.
|
|
32
|
+
* - Constructs an update expression for the main entity's attributes.
|
|
33
|
+
* - Applies the same update expression to related entities and "BelongsTo" link records to maintain denormalized consistency.
|
|
34
|
+
* - Manages foreign key changes by creating new link items and removing old link items.
|
|
35
|
+
*
|
|
36
|
+
* @param id - The unique identifier of the entity being updated.
|
|
37
|
+
* @param attributes - Partial set of entity attributes to update. Must be defined on the entity's model.
|
|
38
|
+
* @returns A promise that resolves to the set of updated attributes as applied to the entity.
|
|
39
|
+
* @throws If the entity does not exist, an error is thrown.
|
|
40
|
+
*/
|
|
41
|
+
run(id: string, attributes: UpdateOptions<DynaRecord>): Promise<UpdatedAttributes<T>>;
|
|
42
|
+
protected commitTransaction(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* BelongsToRelationship meta data and foreign key value pair for foreign keys being updated
|
|
45
|
+
* @param attributes
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
private getBelongsToRelMetaAndKeyForUpdatedKeys;
|
|
49
|
+
/**
|
|
50
|
+
* Pre-fetches the target entity and any related entities from the database. This is done using a strong read operation to ensure consistency.
|
|
51
|
+
*
|
|
52
|
+
* **What it does:**
|
|
53
|
+
* - Retrieves the main entity and all linked entities in the entity's partition.
|
|
54
|
+
* - Performs a TransactGetItem operation on entities linked bai foreign keys (BelongsTo) to support denormalizing copies to associated partitions
|
|
55
|
+
* - Filters these entities to separate the main entity and its related link records.
|
|
56
|
+
*
|
|
57
|
+
* @param id - The unique identifier of the entity being fetched.
|
|
58
|
+
* @param belongsToRelFkAndMetas - BelongsTo relationship meta objects with foreign keys used for fetching associated records
|
|
59
|
+
* @returns A promise that resolves to an object containing:
|
|
60
|
+
* - `entityPreUpdate`: The current state of the entity before updates.
|
|
61
|
+
* - `relatedEntities`: An array of related link entities.
|
|
62
|
+
* @throws If the entity does not exist, it throws a NotFoundError.
|
|
63
|
+
* @private
|
|
64
|
+
*/
|
|
65
|
+
private preFetch;
|
|
17
66
|
/**
|
|
18
|
-
*
|
|
19
|
-
* @param id
|
|
20
|
-
* @param
|
|
67
|
+
* {reprocess pre-fetch data for processing
|
|
68
|
+
* @param id
|
|
69
|
+
* @param entities
|
|
70
|
+
* @param belongsToRelFkAndMetas
|
|
71
|
+
* @returns
|
|
21
72
|
*/
|
|
22
|
-
|
|
73
|
+
private preProcessFetchedData;
|
|
23
74
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
75
|
+
* Constructs updated attributes and the corresponding DynamoDB update expression.
|
|
76
|
+
*
|
|
77
|
+
* **What it does:**
|
|
78
|
+
* - Merges the provided attributes with `updatedAt` (automatically set to the current time).
|
|
79
|
+
* - Converts the updated attributes into a DynamoDB update expression.
|
|
80
|
+
*
|
|
81
|
+
* @param attributes - The partial attributes to be updated on the entity.
|
|
82
|
+
* @returns An object containing:
|
|
83
|
+
* - `updatedAttrs`: The final updated attribute set.
|
|
84
|
+
* - `expression`: A DynamoDB update expression to apply these changes.
|
|
85
|
+
* @private
|
|
86
|
+
*/
|
|
87
|
+
private buildUpdateMetadata;
|
|
88
|
+
/**
|
|
89
|
+
* Adds a transaction operation to update the main entity's record.
|
|
90
|
+
*
|
|
91
|
+
* **What it does:**
|
|
92
|
+
* - Builds a DynamoDB Update transaction using the provided update expression.
|
|
93
|
+
* - Adds a condition to ensure the entity exists before updating.
|
|
94
|
+
*
|
|
95
|
+
* @param id - The unique identifier of the entity being updated.
|
|
96
|
+
* @param updateExpression - The DynamoDB update expression describing the changes.
|
|
97
|
+
* @private
|
|
27
98
|
*/
|
|
28
99
|
private buildUpdateItemTransaction;
|
|
29
100
|
/**
|
|
30
|
-
* Builds
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
101
|
+
* Builds all necessary transactions to handle "BelongsTo" or uni-directional "OwnedBy" relationships when updating the entity.
|
|
102
|
+
*
|
|
103
|
+
* **What it does:**
|
|
104
|
+
* - Checks if any foreign keys for "BelongsTo" or uni-directional "OwnedBy" relationships have changed.
|
|
105
|
+
* - If so, updates or creates new denormalized link records in the related partitions.
|
|
106
|
+
* - Removes old link records that are no longer valid due to foreign key changes.
|
|
107
|
+
*
|
|
108
|
+
* @param entityPreUpdate - The state of the entity before the update.
|
|
109
|
+
* @param updatedEntity - The entity state after proposed updates (partial attributes).
|
|
110
|
+
* @param updateExpression - The DynamoDB update expression representing the attribute updates.
|
|
111
|
+
* @private
|
|
112
|
+
*/
|
|
113
|
+
private buildBelongsToTransactions;
|
|
114
|
+
/**
|
|
115
|
+
* Creates or updates the denormalized link record for a "BelongsTo" relationship to the related entity's partition.
|
|
116
|
+
*
|
|
117
|
+
* **What it does:**
|
|
118
|
+
* - Builds a DynamoDB Update transaction for the linked record identified by the relationship and foreign key.
|
|
119
|
+
* - Ensures the linked record exists before updating (if not, it will fail).
|
|
120
|
+
*
|
|
121
|
+
* @param entityId - The identifier of the main entity being updated.
|
|
122
|
+
* @param relMeta - Metadata describing the "BelongsTo" relationship.
|
|
123
|
+
* @param foreignKey - The new foreign key value after updates.
|
|
124
|
+
* @param updateExpression - The DynamoDB update expression for the attribute changes.
|
|
125
|
+
* @private
|
|
126
|
+
*/
|
|
127
|
+
private buildUpdateBelongsToLinkedRecords;
|
|
128
|
+
/**
|
|
129
|
+
* Builds transactions to persist an updated/new belongs to record
|
|
130
|
+
* Denormalizes data to the entity being updates's partition and a link to the foreign entities partition
|
|
131
|
+
* Ensures that the new entity foreign key exists
|
|
132
|
+
* @param updatedEntity
|
|
133
|
+
* @param relMeta
|
|
134
|
+
* @param foreignKey
|
|
135
|
+
* @param newBelongsToEntityLookup
|
|
136
|
+
* @param persistToSelfCondition
|
|
137
|
+
* @param persistToSelfConditionErrMessage
|
|
138
|
+
*/
|
|
139
|
+
private buildPutBelongsToLinkedRecords;
|
|
140
|
+
/**
|
|
141
|
+
* Builds a condition expression that an entity exists
|
|
142
|
+
* @param relMeta
|
|
143
|
+
* @param foreignKey
|
|
144
|
+
*/
|
|
145
|
+
private buildEntityExistsCondition;
|
|
146
|
+
/**
|
|
147
|
+
* Denormalizes a link for the entity being updated to the new entities partition
|
|
148
|
+
* @param updatedEntity
|
|
149
|
+
* @param relMeta
|
|
150
|
+
* @param foreignKey
|
|
151
|
+
*/
|
|
152
|
+
private buildLinkToForeignEntityTransaction;
|
|
153
|
+
/**
|
|
154
|
+
* Builds the transaction to add or replace the linked record for the foreign entity in the entity being updates partition
|
|
155
|
+
* @param updatedEntity
|
|
156
|
+
* @param relMeta
|
|
157
|
+
* @param foreignKey
|
|
158
|
+
* @param newBelongsToEntityLookup
|
|
159
|
+
* @param persistToSelfCondition
|
|
160
|
+
* @param persistToSelfConditionErrMessage
|
|
161
|
+
*/
|
|
162
|
+
private buildAddForeignEntityToSelfTransaction;
|
|
163
|
+
/**
|
|
164
|
+
* Removes the old link record associated with a previous "BelongsTo" foreign key when the foreign key changes.
|
|
165
|
+
*
|
|
166
|
+
* **What it does:**
|
|
167
|
+
* - Builds a DynamoDB Delete transaction to remove the stale link record from the old relationship partition.
|
|
168
|
+
*
|
|
169
|
+
* @param entityId - The identifier of the entity whose foreign key was changed.
|
|
170
|
+
* @param relMeta - Metadata describing the "BelongsTo" relationship.
|
|
171
|
+
* @param oldForeignKey - The old foreign key value that should no longer link to the entity.
|
|
172
|
+
* @private
|
|
173
|
+
*/
|
|
174
|
+
private removeForeignKeysTransactions;
|
|
175
|
+
/**
|
|
176
|
+
* Builds the transactions for updating the foreign key of an entity from one key to another
|
|
177
|
+
* @param updatedEntity
|
|
178
|
+
* @param relMeta
|
|
179
|
+
* @param newForeignKey
|
|
180
|
+
* @param oldForeignKey
|
|
181
|
+
* @param newBelongsToEntityLookup
|
|
182
|
+
*/
|
|
183
|
+
private updateForeignKeyTransactions;
|
|
184
|
+
/**
|
|
185
|
+
* Builds transactions to update all related entities that exist in the main entity's partition, applying the same attribute updates.
|
|
186
|
+
*
|
|
187
|
+
* **What it does:**
|
|
188
|
+
* - For each linked entity found in `preFetch`, attempts to apply the same update expression.
|
|
189
|
+
* - Ensures each related entity exists before attempting to update.
|
|
190
|
+
*
|
|
191
|
+
* @param relatedEntities - An array of entities that are related to the primary entity and need synchronized attribute updates.
|
|
192
|
+
* @param expression - The DynamoDB update expression to apply to related entities.
|
|
193
|
+
* @private
|
|
35
194
|
*/
|
|
36
|
-
private
|
|
195
|
+
private buildUpdateRelatedEntityLinks;
|
|
37
196
|
/**
|
|
38
|
-
*
|
|
39
|
-
* @param
|
|
40
|
-
* @param relType
|
|
197
|
+
* Builds the table key for a related entity that needs to be updated
|
|
198
|
+
* @param id - The id of the entity being updated
|
|
41
199
|
* @param entity
|
|
200
|
+
* @param relLookup
|
|
201
|
+
* @returns
|
|
42
202
|
*/
|
|
43
|
-
private
|
|
203
|
+
private buildUpdatedRelatedEntityLinkKey;
|
|
44
204
|
/**
|
|
45
|
-
*
|
|
205
|
+
* Build a lookup object to lookup a HasAndBelongsToMany relationship for an entity. Used for processing to avoid excessive looping
|
|
206
|
+
* @returns
|
|
46
207
|
*/
|
|
47
|
-
private
|
|
208
|
+
private buildHasAndBelongsToManyRelLookup;
|
|
48
209
|
}
|
|
49
210
|
export default Update;
|
|
50
211
|
//# sourceMappingURL=Update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Update.d.ts","sourceRoot":"","sources":["../../../../src/operations/Update/Update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Update.d.ts","sourceRoot":"","sources":["../../../../src/operations/Update/Update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAGL,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAkB5B,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,KAAK,EAAmB,WAAW,EAAgB,MAAM,aAAa,CAAC;AA4D9E;;;;;;;;;;;;;;;;;GAiBG;AACH,cAAM,MAAM,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;gBAG1D,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,kBAAkB,CAAC,EAAE,oBAAoB;IAO3C;;;;;;;;;;;;;OAaG;IACU,GAAG,CACd,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,GACpC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;cA4ChB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlD;;;;OAIG;IACH,OAAO,CAAC,uCAAuC;IAY/C;;;;;;;;;;;;;;;OAeG;YACW,QAAQ;IAqDtB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,0BAA0B;IAyBlC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IAuDlC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iCAAiC;IAuBzC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,8BAA8B;IA+BtC;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAkBlC;;;;;OAKG;IACH,OAAO,CAAC,mCAAmC;IAsB3C;;;;;;;;OAQG;IACH,OAAO,CAAC,sCAAsC;IAqC9C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,6BAA6B;IAuCrC;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;IA6BpC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,6BAA6B;IAwBrC;;;;;;OAMG;IACH,OAAO,CAAC,gCAAgC;IAgBxC;;;OAGG;IACH,OAAO,CAAC,iCAAiC;CAU1C;AAED,eAAe,MAAM,CAAC"}
|