@antelopejs/interface-database-decorators 0.1.9 → 0.1.11

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 (69) hide show
  1. package/README.md +1 -1
  2. package/dist/antelope.test.js +1 -1
  3. package/dist/common.d.ts +2 -1
  4. package/dist/common.js +5 -1
  5. package/dist/common.js.map +1 -1
  6. package/dist/database.js +1 -0
  7. package/dist/database.js.map +1 -1
  8. package/dist/model.js +29 -26
  9. package/dist/model.js.map +1 -1
  10. package/dist/modifiers/common.d.ts +24 -4
  11. package/dist/modifiers/common.js +92 -114
  12. package/dist/modifiers/common.js.map +1 -1
  13. package/dist/modifiers/encryption.js +14 -9
  14. package/dist/modifiers/encryption.js.map +1 -1
  15. package/dist/modifiers/internal/kinds.d.ts +12 -0
  16. package/dist/modifiers/internal/kinds.js +29 -0
  17. package/dist/modifiers/internal/kinds.js.map +1 -0
  18. package/dist/modifiers/internal/records.d.ts +29 -0
  19. package/dist/modifiers/internal/records.js +42 -0
  20. package/dist/modifiers/internal/records.js.map +1 -0
  21. package/dist/modifiers/localization.d.ts +19 -1
  22. package/dist/modifiers/localization.js +41 -6
  23. package/dist/modifiers/localization.js.map +1 -1
  24. package/dist/schema.js +1 -2
  25. package/dist/schema.js.map +1 -1
  26. package/dist/table.d.ts +8 -0
  27. package/dist/table.js +21 -6
  28. package/dist/table.js.map +1 -1
  29. package/dist/tests/codec_helpers.d.ts +6 -2
  30. package/dist/tests/codec_helpers.js +18 -14
  31. package/dist/tests/codec_helpers.js.map +1 -1
  32. package/dist/tests/common.test.js +38 -46
  33. package/dist/tests/common.test.js.map +1 -1
  34. package/dist/tests/cross_instance.test.js +27 -2
  35. package/dist/tests/cross_instance.test.js.map +1 -1
  36. package/dist/tests/database.test.js +247 -226
  37. package/dist/tests/database.test.js.map +1 -1
  38. package/dist/tests/helpers/other-instance.d.ts +1 -1
  39. package/dist/tests/helpers/other-instance.js +41 -9
  40. package/dist/tests/helpers/other-instance.js.map +1 -1
  41. package/dist/tests/integration.test.js +485 -469
  42. package/dist/tests/integration.test.js.map +1 -1
  43. package/dist/tests/model.test.js +293 -308
  44. package/dist/tests/model.test.js.map +1 -1
  45. package/dist/tests/modifiers/autodate.test.js +80 -86
  46. package/dist/tests/modifiers/autodate.test.js.map +1 -1
  47. package/dist/tests/modifiers/common.test.js +181 -195
  48. package/dist/tests/modifiers/common.test.js.map +1 -1
  49. package/dist/tests/modifiers/encryption.test.js +149 -155
  50. package/dist/tests/modifiers/encryption.test.js.map +1 -1
  51. package/dist/tests/modifiers/hash.test.js +91 -99
  52. package/dist/tests/modifiers/hash.test.js.map +1 -1
  53. package/dist/tests/modifiers/localization.test.js +186 -159
  54. package/dist/tests/modifiers/localization.test.js.map +1 -1
  55. package/dist/tests/relation.test.js +92 -97
  56. package/dist/tests/relation.test.js.map +1 -1
  57. package/dist/tests/schema.test.js +101 -106
  58. package/dist/tests/schema.test.js.map +1 -1
  59. package/dist/tests/table.test.js +124 -132
  60. package/dist/tests/table.test.js.map +1 -1
  61. package/docs/1.introduction.md +56 -2
  62. package/docs/2.table-definitions.md +15 -0
  63. package/docs/3.table-modifiers.md +10 -4
  64. package/docs/4.data-models.md +12 -0
  65. package/docs/5.parameter-decoration.md +4 -0
  66. package/docs/assets/model-conversion.svg +21 -0
  67. package/package.json +16 -5
  68. package/skills/database-decorators-interface/SKILL.md +4 -0
  69. package/skills/database-decorators-interface/cases.json +71 -0
@@ -13,6 +13,8 @@ exports.lock = lock;
13
13
  exports.testValue = testValue;
14
14
  exports.triggerEvent = triggerEvent;
15
15
  const common_1 = require("../common");
16
+ const kinds_1 = require("./internal/kinds");
17
+ const records_1 = require("./internal/records");
16
18
  exports.MixinSymbol = Symbol();
17
19
  class Modifier {
18
20
  meta;
@@ -57,30 +59,20 @@ class ContainerModifier extends TwoWayModifier {
57
59
  }
58
60
  }
59
61
  exports.ContainerModifier = ContainerModifier;
60
- function isWriteOnly(modifier) {
61
- return "lock" in modifier && !("unlock" in modifier);
62
- }
63
- function isOnlyEvents(modifier) {
64
- return !("lock" in modifier);
65
- }
66
62
  class ModifiersStaticMetadata {
67
63
  static key = Symbol.for("@antelopejs/interface-database-decorators/ModifiersStaticMetadata@1");
68
64
  fields = {};
69
65
  events = new Map();
70
66
  }
71
67
  exports.ModifiersStaticMetadata = ModifiersStaticMetadata;
72
- function withRef(internal, id, modifier, metaRef, callback) {
73
- metaRef._ref = internal.meta[id];
74
- const ret = callback(modifier);
75
- if (metaRef._ref !== internal.meta[id]) {
76
- internal.meta[id] = metaRef._ref;
77
- }
78
- return ret;
79
- }
80
68
  class ModifiersDynamicMetadata {
81
69
  static key = Symbol.for("@antelopejs/interface-database-decorators/ModifiersDynamicMetadata@1");
82
70
  staticMeta;
83
- floating = {}; // Plain data that has no known lock value
71
+ /**
72
+ * Values assigned to a field before its modifiers could lock them, by field
73
+ * name. Reads return them; `unlock` and `lock` assign them again.
74
+ */
75
+ floating = {};
84
76
  fields = {};
85
77
  constructor(target) {
86
78
  this.staticMeta = (0, common_1.getMetadata)(target.constructor, ModifiersStaticMetadata);
@@ -89,58 +81,57 @@ class ModifiersDynamicMetadata {
89
81
  }
90
82
  }
91
83
  canGet(field) {
92
- const list = this.staticMeta.fields[field];
84
+ const list = (0, records_1.fieldsByKey)(this.staticMeta)[field];
93
85
  const lastModifier = list[list.length - 1].modifier;
94
- if (lastModifier.autolock) {
86
+ if ("autolock" in lastModifier && lastModifier.autolock) {
95
87
  return true;
96
88
  }
97
- return (!isWriteOnly(lastModifier) &&
98
- !list.some(({ id, modifier }) => !modifier.autounlock &&
89
+ return (!(0, kinds_1.isWriteOnly)(lastModifier) &&
90
+ !list.some(({ id, modifier }) => !("autounlock" in modifier && modifier.autounlock) &&
99
91
  "unlock" in modifier &&
100
- !(id in this.fields[field])));
92
+ !(id in (0, records_1.unlockArgsOf)(this, field))));
101
93
  }
102
94
  get(field, internal) {
103
95
  if (field in this.floating) {
104
- return this.floating[field];
96
+ return (0, records_1.floatingByKey)(this)[field];
105
97
  }
106
98
  if (!this.canGet(field)) {
107
99
  return;
108
100
  }
109
- const list = this.staticMeta.fields[field];
110
- let value = internal.data[field];
101
+ const list = (0, records_1.fieldsByKey)(this.staticMeta)[field];
102
+ let value = (0, records_1.dataByKey)(internal)[field];
111
103
  for (const { id, modifier, metaRef } of list) {
112
- if ("unlock" in modifier && value !== undefined) {
113
- if (this.fields[field][id]) {
114
- value = withRef(internal, id, modifier, metaRef, (modifier) => modifier.unlock(value, ...this.fields[field][id]));
104
+ if ((0, kinds_1.isTwoWay)(modifier) && value !== undefined) {
105
+ if ((0, records_1.unlockArgsOf)(this, field)[id]) {
106
+ value = (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.unlock(value, ...(0, records_1.unlockArgsOf)(this, field)[id]));
115
107
  }
116
- else if (modifier.autounlock) {
117
- value = withRef(internal, id, modifier, metaRef, (modifier) => modifier.unlock(value));
108
+ else if ("autounlock" in modifier && modifier.autounlock) {
109
+ value = (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.unlock(value));
118
110
  }
119
111
  }
120
112
  }
121
113
  return value;
122
114
  }
123
115
  canSet(field) {
124
- const list = this.staticMeta.fields[field];
125
- return !list.some(({ id, modifier }) => !modifier.autolock &&
116
+ const list = (0, records_1.fieldsByKey)(this.staticMeta)[field];
117
+ return !list.some(({ id, modifier }) => !("autolock" in modifier && modifier.autolock) &&
126
118
  "lock" in modifier &&
127
- !(id in this.fields[field]));
119
+ !(id in (0, records_1.unlockArgsOf)(this, field)));
128
120
  }
129
121
  set(field, internal, value) {
130
122
  if (!this.canSet(field)) {
131
- this.floating[field] = value;
123
+ (0, records_1.floatingByKey)(this)[field] = value;
132
124
  return;
133
125
  }
134
- const list = this.staticMeta.fields[field];
135
- // TODO: should maybe cache this
126
+ const list = (0, records_1.fieldsByKey)(this.staticMeta)[field];
136
127
  const prevlist = [];
137
- let prev = internal.data[field];
128
+ let prev = (0, records_1.dataByKey)(internal)[field];
138
129
  for (let i = 0; i < list.length - 1; ++i) {
139
130
  const { id, modifier, metaRef } = list[i];
140
131
  prevlist[i] = { id, modifier, metaRef, prev };
141
- if ("unlock" in modifier) {
142
- if (this.fields[field][id]) {
143
- prev = modifier.unlock(prev, ...this.fields[field][id]);
132
+ if ((0, kinds_1.isTwoWay)(modifier)) {
133
+ if ((0, records_1.unlockArgsOf)(this, field)[id]) {
134
+ prev = modifier.unlock(prev, ...(0, records_1.unlockArgsOf)(this, field)[id]);
144
135
  }
145
136
  else {
146
137
  prev = undefined;
@@ -153,12 +144,12 @@ class ModifiersDynamicMetadata {
153
144
  });
154
145
  for (let i = prevlist.length - 1; i >= 0; --i) {
155
146
  const { id, modifier, metaRef, prev } = prevlist[i];
156
- if ("lock" in modifier) {
157
- value = withRef(internal, id, modifier, metaRef, (modifier) => modifier.lock(prev, value, ...(this.fields[field][id] || [])));
147
+ if ((0, kinds_1.isLocking)(modifier)) {
148
+ value = (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.lock(prev, value, ...((0, records_1.unlockArgsOf)(this, field)[id] || [])));
158
149
  }
159
150
  }
160
- internal.data[field] = value;
161
- delete this.floating[field];
151
+ (0, records_1.dataByKey)(internal)[field] = value;
152
+ delete (0, records_1.floatingByKey)(this)[field];
162
153
  }
163
154
  }
164
155
  exports.ModifiersDynamicMetadata = ModifiersDynamicMetadata;
@@ -171,21 +162,12 @@ function getInternal(object) {
171
162
  }
172
163
  return object._internal;
173
164
  }
174
- /* Data stages:
175
- *
176
- * - `Database`: locked plain object
177
- * - Complete data with encoded _internal field
178
- * - ex: `{ plain: 'value', _internal: { [..] } }`
179
- * - `Instance`: class instance
180
- * - Complete data with prototype attached and accessors
181
- * - ex: `Table { plain: 'value', special: (accessor) }`
182
- * - `Plaindata`: unlocked plain object
183
- * - Subset of existing data from locked object
184
- * - ex: `{ plain: 'value', special: 'data' }`
165
+ /**
166
+ * Builds a table instance from unlocked plain data: each key is assigned, so
167
+ * modifiers lock the fields they can. Then runs the `fromPlainData` event.
185
168
  */
186
169
  function fromPlainData(rawObject, TableClass) {
187
170
  const shallowCopy = {};
188
- // Attach prototype
189
171
  Object.setPrototypeOf(shallowCopy, TableClass.prototype);
190
172
  for (const [key, val] of Object.entries(rawObject)) {
191
173
  shallowCopy[key] = val;
@@ -193,66 +175,72 @@ function fromPlainData(rawObject, TableClass) {
193
175
  triggerEvent(shallowCopy, "fromPlainData", rawObject);
194
176
  return shallowCopy;
195
177
  }
178
+ /**
179
+ * Converts a table instance to unlocked plain data, without `_internal`. A
180
+ * field still locked comes out `undefined`. Then runs the `toPlainData` event.
181
+ */
196
182
  function toPlainData(object) {
197
183
  const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
198
184
  const result = { ...object };
199
- delete result._internal;
185
+ if ("_internal" in result)
186
+ delete result._internal;
200
187
  for (const field of Object.keys(metaTable.fields)) {
201
- result[field] = object[field]; // Populate unlocked fields
188
+ result[field] = object[field];
202
189
  }
203
190
  triggerEvent(object, "toPlainData", result);
204
191
  return result;
205
192
  }
193
+ /**
194
+ * Builds a table instance from a stored record, its modified fields still
195
+ * locked in `_internal`. Then runs the `fromDatabase` event.
196
+ */
206
197
  function fromDatabase(rawObject, TableClass) {
207
- // Generate Meta
208
198
  const shallowCopy = { ...rawObject };
209
- // Attach prototype
210
199
  Object.setPrototypeOf(shallowCopy, TableClass.prototype);
211
200
  triggerEvent(shallowCopy, "fromDatabase", rawObject);
212
201
  return shallowCopy;
213
202
  }
203
+ /**
204
+ * Converts a table instance to the locked record to store, `_internal`
205
+ * included and floating values left out. Then runs the `toDatabase` event.
206
+ */
214
207
  function toDatabase(object) {
215
208
  const result = { ...object };
216
209
  triggerEvent(object, "toDatabase", result);
217
210
  return result;
218
211
  }
219
- const ignoredEventNames = {
220
- constructor: true,
221
- lock: true,
222
- unlock: true,
223
- };
224
212
  function attachModifier(TableClass, Modifier, field, options) {
225
213
  const entry = {
226
214
  id: Modifier.name,
227
215
  modifier: new Modifier(),
228
216
  metaRef: { _ref: {} },
229
217
  };
230
- entry.modifier.meta = new Proxy(entry.metaRef, {
231
- get: (self, p) => {
232
- if (!self._ref)
233
- return undefined;
234
- return Reflect.get(self._ref, p, self._ref);
235
- },
236
- set: (self, p, v) => {
237
- if (!self._ref)
238
- self._ref = {};
239
- return Reflect.set(self._ref, p, v, self._ref);
240
- },
218
+ Object.assign(entry.modifier, {
219
+ meta: new Proxy(entry.metaRef, {
220
+ get: (self, p) => {
221
+ if (!self._ref)
222
+ return undefined;
223
+ return self._ref[p];
224
+ },
225
+ set: (self, p, v) => {
226
+ if (!self._ref)
227
+ self._ref = {};
228
+ return Reflect.set(self._ref, p, v, self._ref);
229
+ },
230
+ }),
241
231
  });
242
- entry.modifier.options = options;
243
- // Mark TableClass as special
232
+ Object.assign(entry.modifier, { options });
244
233
  const metaTable = (0, common_1.getMetadata)(TableClass, ModifiersStaticMetadata);
245
- if (!isOnlyEvents(entry.modifier)) {
246
- // Add Modifier to TableClass[field] with options
234
+ if (!(0, kinds_1.isOnlyEvents)(entry.modifier)) {
247
235
  if (field in metaTable.fields) {
248
- const list = metaTable.fields[field];
236
+ const list = (0, records_1.fieldsByKey)(metaTable)[field];
249
237
  const last = list[list.length - 1];
250
- if (isWriteOnly(last.modifier)) {
251
- if (isWriteOnly(entry.modifier)) {
252
- throw new Error(`Attempted adding Modifier ${entry.id} on ${TableClass.name}.${field} but it already has a One-Way Modifier`);
238
+ if ((0, kinds_1.isWriteOnly)(last.modifier)) {
239
+ if ((0, kinds_1.isWriteOnly)(entry.modifier)) {
240
+ throw new Error(`Attempted adding Modifier ${entry.id} on ${TableClass.name}.${String(field)} but it already has a One-Way Modifier`);
253
241
  }
254
242
  else {
255
- throw new Error(`Adding Modifier ${entry.id} on ${TableClass.name}.${field} after a One-Way Modifier, please review your ordering.`);
243
+ throw new Error(`Adding Modifier ${entry.id} on ${TableClass.name}.${String(field)} after a One-Way Modifier, please review your ordering.`);
256
244
  }
257
245
  }
258
246
  else {
@@ -260,7 +248,7 @@ function attachModifier(TableClass, Modifier, field, options) {
260
248
  }
261
249
  }
262
250
  else {
263
- metaTable.fields[field] = [entry];
251
+ (0, records_1.fieldsByKey)(metaTable)[field] = [entry];
264
252
  Object.defineProperty(TableClass.prototype, field, {
265
253
  get: function () {
266
254
  return (0, common_1.getMetadata)(this, ModifiersDynamicMetadata).get(field, getInternal(this));
@@ -279,12 +267,12 @@ function attachModifier(TableClass, Modifier, field, options) {
279
267
  });
280
268
  }
281
269
  for (const event of Object.getOwnPropertyNames(Modifier.prototype)) {
282
- if (!(event in ignoredEventNames) &&
283
- typeof Modifier.prototype[event] === "function") {
270
+ if (!(event in kinds_1.ignoredEventNames) &&
271
+ (0, kinds_1.isCallable)(Modifier.prototype[event])) {
284
272
  if (!metaTable.events.has(event)) {
285
273
  metaTable.events.set(event, []);
286
274
  }
287
- metaTable.events.get(event)?.push([field, entry]);
275
+ (0, records_1.eventsByKey)(metaTable).get(event)?.push([field, entry]);
288
276
  }
289
277
  }
290
278
  }
@@ -294,27 +282,21 @@ function getModifiedFields(object, Modifier) {
294
282
  }
295
283
  function unlock(object, Modifier, fields, ...args) {
296
284
  const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
297
- const usedFields = (fields ?? Object.keys(metaTable.fields)).filter((field) => metaTable.fields[field]?.find(({ id }) => id === Modifier.name));
298
- // Get metadata
285
+ const usedFields = (fields ?? Object.keys(metaTable.fields)).filter((field) => (0, records_1.fieldsByKey)(metaTable)[field]?.find(({ id }) => id === Modifier.name));
299
286
  const meta = (0, common_1.getMetadata)(object, ModifiersDynamicMetadata);
300
- // for each field set metadata[field][Modifier] to args
301
287
  for (const field of usedFields) {
302
- meta.fields[field][Modifier.name] = args;
288
+ (0, records_1.unlockArgsOf)(meta, field)[Modifier.name] = args;
303
289
  if (field in meta.floating) {
304
- // check floating
305
- object[field] = meta.floating[field];
290
+ object[field] = (0, records_1.floatingOf)(meta, field);
306
291
  }
307
292
  }
308
293
  }
309
294
  function unlockrequest(table, object, field, modifiers) {
310
- const args = {};
311
- for (const { modifier, args: modArgs } of modifiers) {
312
- args[modifier.name] = modArgs;
313
- }
295
+ const args = Object.fromEntries(modifiers.map(({ modifier, args: modArgs }) => [modifier.name, modArgs]));
314
296
  const meta = object.key("_internal").key("meta");
315
297
  const metaTable = (0, common_1.getMetadata)(table, ModifiersStaticMetadata);
316
- return (metaTable.fields[field]?.reduce((data, { id, modifier }) => {
317
- if (isWriteOnly(modifier)) {
298
+ return ((0, records_1.fieldsByKey)(metaTable)[field]?.reduce((data, { id, modifier }) => {
299
+ if ((0, kinds_1.isWriteOnly)(modifier) || !(0, kinds_1.isTwoWay)(modifier)) {
318
300
  return data;
319
301
  }
320
302
  data = modifier.unlockrequest(data, meta.key(id), ...args[id]);
@@ -323,33 +305,29 @@ function unlockrequest(table, object, field, modifiers) {
323
305
  }
324
306
  function lock(object, Modifier, fields, ...args) {
325
307
  const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
326
- const usedFields = (fields ?? Object.keys(metaTable.fields)).filter((field) => metaTable.fields[field]?.find(({ id }) => id === Modifier.name));
327
- // Get metadata
308
+ const usedFields = (fields ?? Object.keys(metaTable.fields)).filter((field) => (0, records_1.fieldsByKey)(metaTable)[field]?.find(({ id }) => id === Modifier.name));
328
309
  const meta = (0, common_1.getMetadata)(object, ModifiersDynamicMetadata);
329
- // for each field set metadata[field][Modifier] to args
330
310
  for (const field of usedFields) {
331
311
  const val = object[field];
332
- meta.fields[field][Modifier.name] = args;
312
+ (0, records_1.unlockArgsOf)(meta, field)[Modifier.name] = args;
333
313
  object[field] = val;
334
314
  }
335
315
  }
336
316
  function testValue(object, field, value) {
337
317
  const metaTable = (0, common_1.getMetadata)(object.constructor, ModifiersStaticMetadata);
338
- // Get metadata
339
318
  const meta = (0, common_1.getMetadata)(object, ModifiersDynamicMetadata);
340
319
  const internal = getInternal(object);
341
- const val = internal.data[field];
342
- for (const { id, modifier, metaRef } of metaTable.fields[field]) {
343
- const args = meta.fields[field][id] || (modifier.autolock && []);
320
+ const val = (0, records_1.dataByKey)(internal)[field];
321
+ for (const { id, modifier, metaRef } of (0, records_1.fieldsByKey)(metaTable)[field]) {
322
+ const args = (0, records_1.unlockArgsOf)(meta, field)[id] ||
323
+ ("autolock" in modifier && modifier.autolock ? [] : undefined);
344
324
  if (!args)
345
325
  return false;
346
- if (isWriteOnly(modifier)) {
347
- // return OneWayModifier.test(unwrapped, value)
348
- return withRef(internal, id, modifier, metaRef, (modifier) => modifier.test(val, value, ...args));
326
+ if ((0, kinds_1.isWriteOnly)(modifier)) {
327
+ return (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.test(val, value, ...args));
349
328
  }
350
- if ("unlock" in modifier && val !== undefined) {
351
- // unwrap field until the OneWayModifier
352
- return withRef(internal, id, modifier, metaRef, (modifier) => modifier.unlock(val, ...args));
329
+ if ((0, kinds_1.isTwoWay)(modifier) && val !== undefined) {
330
+ return (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier.unlock(val, ...args));
353
331
  }
354
332
  }
355
333
  return val === value;
@@ -364,7 +342,7 @@ function triggerEvent(object, event, ...args) {
364
342
  if (!eventEntries)
365
343
  return;
366
344
  for (const [field, { id, modifier, metaRef }] of eventEntries) {
367
- withRef(internal, id, modifier, metaRef, (modifier) => modifier[event](object, field, ...args));
345
+ (0, records_1.withRef)(internal, id, modifier, metaRef, (modifier) => modifier[event](object, field, ...args));
368
346
  }
369
347
  }
370
348
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/modifiers/common.ts"],"names":[],"mappings":";;;AAgTA,sCAYC;AAED,kCAWC;AAED,oCAUC;AAED,gCAMC;AAaD,wCAsFC;AAED,8CAQC;AAED,wBAyBC;AAMD,sCA6BC;AAED,oBAuBC;AAED,8BAsCC;AAED,oCAqBC;AA9lBD,sCAA4D;AAE/C,QAAA,WAAW,GAAG,MAAM,EAAE,CAAC;AAIpC,MAAa,QAAQ;IAIT,IAAI,CAAQ;IACZ,OAAO,CAAW;CAC7B;AAND,4BAMC;AAED,MAAa,cAKX,SAAQ,QAAuB;IACxB,IAAI,CACT,aAAqC,EACrC,MAAe,EACf,GAAG,KAAW;QAEd,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACM,IAAI,CACT,YAAwB,EACxB,KAAc,EACd,GAAG,IAAU;QAEb,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,YAAY,CAAC;IAC/D,CAAC;CACF;AApBD,wCAoBC;AAMD,MAAa,cAKX,SAAQ,cAA+C;IAChD,MAAM,CAAC,aAAyB,EAAE,GAAG,KAAW;QACrD,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACM,aAAa,CAClB,KAAyC,EACzC,KAAmC,EACnC,GAAG,KAA4B;QAE/B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;CACF;AAhBD,wCAgBC;AAED,MAAa,iBAGX,SAAQ,cAKT;IACiB,IAAI,CAClB,YAAiD,EACjD,KAAc,EACd,GAAW;QAEX,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,KAAgC,CAAC;QAC1C,CAAC;QACD,OAAO,YAAY;YACjB,CAAC,CAAC;gBACE,GAAG,YAAY;gBACf,CAAC,GAAG,CAAC,EAAE,KAAK;aACb;YACH,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IACe,MAAM,CAAC,YAAqC,EAAE,GAAW;QACvE,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IACe,aAAa,CAC3B,IAAqD,EACrD,KAAmC,EACnC,GAA0C;QAE1C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CACF;AAlCD,8CAkCC;AAED,SAAS,WAAW,CAAC,QAAkB;IACrC,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB;IACtC,OAAO,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAoBD,MAAa,uBAAuB;IAC3B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAC5B,qEAAqE,CACtE,CAAC;IAEK,MAAM,GAAyC,EAAE,CAAC;IAElD,MAAM,GAAG,IAAI,GAAG,EAGpB,CAAC;;AAVN,0DAWC;AAED,SAAS,OAAO,CACd,QAAsB,EACtB,EAAuB,EACvB,QAAmC,EACnC,OAAiC,EACjC,QAA4B;IAE5B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAa,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAa,wBAAwB;IAC5B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAC5B,sEAAsE,CACvE,CAAC;IAEF,UAAU,CAA0B;IACpC,QAAQ,GAAwB,EAAE,CAAC,CAAC,0CAA0C;IAC9E,MAAM,GAA0C,EAAE,CAAC;IAEnD,YAAY,MAAW;QACrB,IAAI,CAAC,UAAU,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpD,IAAU,YAAa,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CACL,CAAC,WAAW,CAAC,YAAY,CAAC;YAC1B,CAAC,IAAI,CAAC,IAAI,CACR,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACnB,CAAO,QAAS,CAAC,UAAU;gBAC3B,QAAQ,IAAI,QAAQ;gBACpB,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC9B,CACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAAsB;QACvC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;YAC7C,IAAI,QAAQ,IAAI,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC3B,KAAK,GAAG,OAAO,CACb,QAAQ,EACR,EAAE,EACF,QAAQ,EACR,OAAO,EACP,CAAC,QAAwC,EAAE,EAAE,CAC3C,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACpD,CAAC;gBACJ,CAAC;qBAAM,IAAU,QAAS,CAAC,UAAU,EAAE,CAAC;oBACtC,KAAK,GAAG,OAAO,CACb,QAAQ,EACR,EAAE,EACF,QAAQ,EACR,OAAO,EACP,CAAC,QAAwC,EAAE,EAAE,CAC3C,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CACzB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,CACf,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACnB,CAAO,QAAS,CAAC,QAAQ;YACzB,MAAM,IAAI,QAAQ;YAClB,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAAsB,EAAE,KAAc;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3C,gCAAgC;QAChC,MAAM,QAAQ,GAKR,EAAE,CAAC;QACT,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1C,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC9C,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC3B,IAAI,GAAoC,QAAS,CAAC,MAAM,CACtD,IAAI,EACJ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAC1B,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACxB,IAAI;SACL,CAAC,CAAC;QAEH,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC9C,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACvB,KAAK,GAAG,OAAO,CACb,QAAQ,EACR,EAAE,EACF,QAAQ,EACR,OAAO,EACP,CAAC,QAAwC,EAAE,EAAE,CAC3C,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;;AAhIH,4DAiIC;AAED,SAAS,WAAW,CAAC,MAAW;IAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG;YACjB,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;GAWG;AAEH,SAAgB,aAAa,CAC3B,SAA8B,EAC9B,UAAa;IAEb,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,mBAAmB;IACnB,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,WAA8B,CAAC;AACxC,CAAC;AAED,SAAgB,WAAW,CACzB,MAAS;IAET,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAa,MAAO,CAAC,SAAS,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAU,KAAK,CAAC,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC,CAAC,2BAA2B;IAC9E,CAAC;IACD,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,YAAY,CAC1B,SAAc,EACd,UAAa;IAEb,gBAAgB;IAChB,MAAM,WAAW,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;IACrC,mBAAmB;IACnB,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,YAAY,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,UAAU,CACxB,MAAS;IAET,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,MAAM,iBAAiB,GAAG;IACxB,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,SAAgB,cAAc,CAI5B,UAAa,EACb,QAAW,EACX,KAA4B,EAC5B,OAAgD;IAEhD,MAAM,KAAK,GAAG;QACZ,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,QAAQ,EAAE,IAAI,QAAQ,EAAE;QACxB,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;KACtB,CAAC;IACD,KAAK,CAAC,QAAgB,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;QACtD,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAC;YACjC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;KACF,CAAC,CAAC;IACF,KAAK,CAAC,QAAgB,CAAC,OAAO,GAAG,OAAO,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAEnE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,iDAAiD;QACjD,IAAI,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAS,KAAK,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,IAAI,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,IAAI,IAAY,KAAK,wCAAwC,CACrH,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,IAAI,IAAY,KAAK,yDAAyD,CAC5H,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,MAAM,CAAS,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE;gBACjD,GAAG,EAAE;oBACH,OAAO,IAAA,oBAAW,EAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC,GAAG,CAC5C,KAAK,EACb,WAAW,CAAC,IAAI,CAAC,CAClB,CAAC;gBACJ,CAAC;gBACD,GAAG,EAAE,UAAU,KAAK;oBAClB,IAAA,oBAAW,EAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC,GAAG,CACrC,KAAK,EACb,WAAW,CAAC,IAAI,CAAC,EACjB,KAAK,CACN,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE;YACpD,KAAK,EAAE;gBACL,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,IACE,CAAC,CAAC,KAAK,IAAI,iBAAiB,CAAC;YAC7B,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,UAAU,EAC/C,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,KAAe,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAG/B,MAAS,EAAE,QAAW;IACtB,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,CACjD,CAAC;AACnB,CAAC;AAED,SAAgB,MAAM,CAIpB,MAAS,EACT,QAAW,EACX,MAAkC,EAClC,GAAG,IAA0C;IAE7C,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,CACjB,MAAM,IAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAoB,CAC5D,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,SAAS,CAAC,MAAM,CAAS,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,CACxE,CAAC;IACF,eAAe;IACf,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC3D,uDAAuD;IACvD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAS,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACjD,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,iBAAiB;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAS,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAMD,SAAgB,aAAa,CAC3B,KAAuB,EACvB,MAAiC,EACjC,KAAQ,EACR,SAAkC;IAElC,MAAM,IAAI,GAA0B,EAAE,CAAC;IACvC,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAS,MAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC9D,OAAO,CACL,SAAS,CAAC,MAAM,CAAS,KAAK,CAAC,EAAE,MAAM,CACrC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzB,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAgC,QAAS,CAAC,aAAa,CACzD,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EACZ,GAAG,IAAI,CAAC,EAAE,CAAC,CACZ,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,EACK,MAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CACtD,IAAU,MAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,SAAgB,IAAI,CAIlB,MAAS,EACT,QAAW,EACX,MAAkC,EAClC,GAAG,IAA+C;IAElD,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,CACjB,MAAM,IAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAoB,CAC5D,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,SAAS,CAAC,MAAM,CAAS,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,CACxE,CAAC;IACF,eAAe;IACf,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC3D,uDAAuD;IACvD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAS,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAgB,SAAS,CACvB,MAAS,EACT,KAAQ,EACR,KAAW;IAEX,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC3E,eAAe;IACf,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,GAAG,GAAY,QAAQ,CAAC,IAAI,CAAS,KAAK,CAAC,CAAC;IAClD,KAAK,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,MAAM,CAAS,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,GACR,IAAI,CAAC,MAAM,CAAS,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAO,QAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,+CAA+C;YAC/C,OAAO,OAAO,CACZ,QAAQ,EACR,EAAE,EACF,QAAQ,EACR,OAAO,EACP,CAAC,QAAwC,EAAE,EAAE,CAC3C,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CACrC,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,IAAI,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC9C,wCAAwC;YACxC,OAAO,OAAO,CACZ,QAAQ,EACR,EAAE,EACF,QAAQ,EACR,OAAO,EACP,CAAC,QAAwC,EAAE,EAAE,CAC3C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAChC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,KAAK,KAAK,CAAC;AACvB,CAAC;AAED,SAAgB,YAAY,CAC1B,MAAS,EACT,KAAa,EACb,GAAG,IAAe;IAElB,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAE3E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAErC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY;QAAE,OAAO;IAE1B,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC;QAC9D,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAkB,EAAE,EAAE,CAC9C,QAAQ,CAAiB,KAAK,CAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CACzE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/modifiers/common.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,12 @@ function date_decoder(_key, value) {
22
22
  ? new Date(value.value)
23
23
  : value;
24
24
  }
25
+ function hasAuthTag(cipher) {
26
+ return "getAuthTag" in cipher;
27
+ }
28
+ function acceptsAuthTag(decipher) {
29
+ return "setAuthTag" in decipher;
30
+ }
25
31
  /**
26
32
  * Encryption modifier. enables the use of {@link Encrypted} on table fields.
27
33
  *
@@ -38,28 +44,27 @@ class EncryptionModifier extends common_1.TwoWayModifier {
38
44
  ]).toString("base64");
39
45
  let authTag;
40
46
  try {
41
- authTag =
42
- "getAuthTag" in cipher
43
- ? cipher.getAuthTag().toString("base64")
44
- : undefined;
45
- }
46
- catch {
47
- // Ignore error if getAuthTag is not available
47
+ authTag = hasAuthTag(cipher)
48
+ ? cipher.getAuthTag().toString("base64")
49
+ : undefined;
48
50
  }
51
+ catch { }
49
52
  return [encrypted, iv.toString("base64"), authTag];
50
53
  }
51
54
  autounlock = true;
52
55
  unlock([locked_value, iv_str, authTag]) {
53
56
  const decipher = (0, node_crypto_1.createDecipheriv)(this.options.algorithm || "aes-256-gcm", this.options.secretKey, Buffer.from(iv_str, "base64"));
54
- if ("setAuthTag" in decipher && authTag) {
57
+ if (acceptsAuthTag(decipher) && authTag) {
55
58
  decipher.setAuthTag(Buffer.from(authTag, "base64"));
56
59
  }
57
- return JSON.parse(Buffer.concat([
60
+ const decoded = JSON.parse(Buffer.concat([
58
61
  decipher.update(Buffer.from(locked_value, "base64")),
59
62
  decipher.final(),
60
63
  ]).toString("utf8"), date_decoder);
64
+ return decoded;
61
65
  }
62
66
  unlockrequest(data) {
67
+ // SAFETY: the proxy is returned unchanged and unlockrequest performs no runtime check on LockedType; the cast only erases the static element type to unknown, which every stored value satisfies.
63
68
  return data;
64
69
  }
65
70
  [common_1.MixinSymbol] = class {
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/modifiers/encryption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/modifiers/encryption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** @internal @packageDocumentation */
2
+ import type { Modifier, OneWayModifier, TwoWayModifier } from "../common";
3
+ export declare function isWriteOnly(m: Modifier): m is OneWayModifier<unknown, any[]>;
4
+ export declare function isLocking(m: Modifier): m is OneWayModifier<unknown, any[]>;
5
+ export declare function isTwoWay(m: Modifier): m is TwoWayModifier<unknown, any[]>;
6
+ export declare function isOnlyEvents(modifier: Modifier): boolean;
7
+ export declare const ignoredEventNames: {
8
+ constructor: boolean;
9
+ lock: boolean;
10
+ unlock: boolean;
11
+ };
12
+ export declare function isCallable(value: unknown): value is CallableFunction;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ignoredEventNames = void 0;
4
+ exports.isWriteOnly = isWriteOnly;
5
+ exports.isLocking = isLocking;
6
+ exports.isTwoWay = isTwoWay;
7
+ exports.isOnlyEvents = isOnlyEvents;
8
+ exports.isCallable = isCallable;
9
+ function isWriteOnly(m) {
10
+ return "lock" in m && !("unlock" in m);
11
+ }
12
+ function isLocking(m) {
13
+ return "lock" in m;
14
+ }
15
+ function isTwoWay(m) {
16
+ return "unlock" in m;
17
+ }
18
+ function isOnlyEvents(modifier) {
19
+ return !("lock" in modifier);
20
+ }
21
+ exports.ignoredEventNames = {
22
+ constructor: true,
23
+ lock: true,
24
+ unlock: true,
25
+ };
26
+ function isCallable(value) {
27
+ return typeof value === "function";
28
+ }
29
+ //# sourceMappingURL=kinds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kinds.js","sourceRoot":"","sources":["../../../src/modifiers/internal/kinds.ts"],"names":[],"mappings":";;;AAGA,kCAEC;AAED,8BAEC;AAED,4BAEC;AAED,oCAEC;AAQD,gCAEC;AAxBD,SAAgB,WAAW,CAAC,CAAW;IACrC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,SAAS,CAAC,CAAW;IACnC,OAAO,MAAM,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAW;IAClC,OAAO,QAAQ,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,YAAY,CAAC,QAAkB;IAC7C,OAAO,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAEY,QAAA,iBAAiB,GAAG;IAC/B,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC"}
@@ -0,0 +1,29 @@
1
+ /** @internal @packageDocumentation */
2
+ import type { DatumStaticMetadata } from "../../common";
3
+ import type { Modifier, ModifiersDynamicMetadata, ModifiersStaticMetadata } from "../common";
4
+ type ModifiedFieldList = ModifiersStaticMetadata["fields"][string];
5
+ type ModifiedField = ModifiedFieldList[number];
6
+ type InternalRecord = Parameters<ModifiersDynamicMetadata["get"]>[1];
7
+ export declare function fieldsByKey(meta: ModifiersStaticMetadata): {
8
+ [field: PropertyKey]: ModifiedFieldList;
9
+ };
10
+ export declare function eventsByKey(meta: ModifiersStaticMetadata): Map<string, Array<[field: PropertyKey, modified: ModifiedFieldList[number]]>>;
11
+ export declare function unlockArgsOf(meta: ModifiersDynamicMetadata, field: PropertyKey): ModifiersDynamicMetadata["fields"][string];
12
+ export declare function fieldTypesByKey(meta: DatumStaticMetadata): {
13
+ [field: PropertyKey]: DatumStaticMetadata["fields"][string];
14
+ };
15
+ export declare function floatingOf<V>(meta: {
16
+ floating: Record<string, V>;
17
+ }, field: PropertyKey): V;
18
+ export declare function floatingByKey<V>(meta: {
19
+ floating: Record<string, V>;
20
+ }): {
21
+ [field: PropertyKey]: V;
22
+ };
23
+ export declare function dataByKey<V>(internal: {
24
+ data: Record<string, V>;
25
+ }): {
26
+ [field: PropertyKey]: V;
27
+ };
28
+ export declare function withRef<T extends Modifier, U>(internal: InternalRecord, id: ModifiedField["id"], modifier: T, metaRef: ModifiedField["metaRef"], callback: (modifier: T) => U): U;
29
+ export {};
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fieldsByKey = fieldsByKey;
4
+ exports.eventsByKey = eventsByKey;
5
+ exports.unlockArgsOf = unlockArgsOf;
6
+ exports.fieldTypesByKey = fieldTypesByKey;
7
+ exports.floatingOf = floatingOf;
8
+ exports.floatingByKey = floatingByKey;
9
+ exports.dataByKey = dataByKey;
10
+ exports.withRef = withRef;
11
+ function fieldsByKey(meta) {
12
+ return meta.fields;
13
+ }
14
+ function eventsByKey(meta) {
15
+ return meta.events;
16
+ }
17
+ function unlockArgsOf(meta, field) {
18
+ const byKey = meta.fields;
19
+ return byKey[field];
20
+ }
21
+ function fieldTypesByKey(meta) {
22
+ return meta.fields;
23
+ }
24
+ function floatingOf(meta, field) {
25
+ const byKey = meta.floating;
26
+ return byKey[field];
27
+ }
28
+ function floatingByKey(meta) {
29
+ return meta.floating;
30
+ }
31
+ function dataByKey(internal) {
32
+ return internal.data;
33
+ }
34
+ function withRef(internal, id, modifier, metaRef, callback) {
35
+ metaRef._ref = internal.meta[id];
36
+ const ret = callback(modifier);
37
+ if (metaRef._ref !== internal.meta[id]) {
38
+ internal.meta[id] = metaRef._ref;
39
+ }
40
+ return ret;
41
+ }
42
+ //# sourceMappingURL=records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../../src/modifiers/internal/records.ts"],"names":[],"mappings":";;AAYA,kCAIC;AAED,kCAOC;AAED,oCAQC;AAED,0CAIC;AAED,gCAMC;AAED,sCAIC;AAED,8BAIC;AAED,0BAaC;AAhED,SAAgB,WAAW,CAAC,IAA6B;IAGvD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAgB,WAAW,CACzB,IAA6B;IAK7B,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAC1B,IAA8B,EAC9B,KAAkB;IAElB,MAAM,KAAK,GAEP,IAAI,CAAC,MAAM,CAAC;IAChB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAgB,eAAe,CAAC,IAAyB;IAGvD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAgB,UAAU,CACxB,IAAqC,EACrC,KAAkB;IAElB,MAAM,KAAK,GAAgC,IAAI,CAAC,QAAQ,CAAC;IACzD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAgB,aAAa,CAAI,IAAqC;IAGpE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,SAAgB,SAAS,CAAI,QAAqC;IAGhE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,SAAgB,OAAO,CACrB,QAAwB,EACxB,EAAuB,EACvB,QAAW,EACX,OAAiC,EACjC,QAA4B;IAE5B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}