@nejs/basic-extensions 1.9.0 → 2.0.0

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/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Controls = exports.Patches = exports.Extensions = exports.all = void 0;
3
+ exports.GlobalFunctionsAndProps = exports.Controls = exports.InstancePatches = exports.StaticPatches = exports.Patches = exports.Extensions = exports.all = void 0;
4
4
  const functionextensions_js_1 = require("./functionextensions.js");
5
5
  const objectextensions_js_1 = require("./objectextensions.js");
6
6
  const mapextensions_js_1 = require("./mapextensions.js");
@@ -11,32 +11,34 @@ const symbolextensions_js_1 = require("./symbolextensions.js");
11
11
  const arrayextensions_js_1 = require("./arrayextensions.js");
12
12
  const descriptor_js_1 = require("./newClasses/descriptor.js");
13
13
  const globals_js_1 = require("./globals.js");
14
+ Object.defineProperty(exports, "GlobalFunctionsAndProps", { enumerable: true, get: function () { return globals_js_1.GlobalFunctionsAndProps; } });
14
15
  const refset_js_1 = require("./newClasses/refset.js");
15
16
  const refmap_js_1 = require("./newClasses/refmap.js");
16
17
  const deferred_js_1 = require("./newClasses/deferred.js");
17
18
  const asyncIterable_js_1 = require("./newClasses/asyncIterable.js");
18
19
  const iterable_js_1 = require("./newClasses/iterable.js");
19
20
  const StaticPatches = [
20
- [Object, objectextensions_js_1.ObjectExtensions],
21
- [Function, functionextensions_js_1.FunctionExtensions],
22
- [Reflect, reflectextensions_js_1.ReflectExtensions],
23
- [String, stringextensions_js_1.StringExtensions],
24
- [Symbol, symbolextensions_js_1.SymbolExtensions],
21
+ [Object, objectextensions_js_1.ObjectExtensions, Object.name],
22
+ [Function, functionextensions_js_1.FunctionExtensions, Function.name],
23
+ [Reflect, reflectextensions_js_1.ReflectExtensions, 'Reflect'], // Missing a .name property
24
+ [String, stringextensions_js_1.StringExtensions, String.name],
25
+ [Symbol, symbolextensions_js_1.SymbolExtensions, 'Symbol'], // Missing a .name property
25
26
  ];
27
+ exports.StaticPatches = StaticPatches;
26
28
  const InstancePatches = [
27
- [Object.prototype, objectextensions_js_1.ObjectPrototypeExtensions],
28
- [Function.prototype, functionextensions_js_1.FunctionPrototypeExtensions],
29
- [Array.prototype, arrayextensions_js_1.ArrayPrototypeExtensions],
30
- [Map.prototype, mapextensions_js_1.MapPrototypeExtensions],
31
- [Set.prototype, setextensions_js_1.SetPrototypeExtensions],
29
+ [Object.prototype, objectextensions_js_1.ObjectPrototypeExtensions, Object.name],
30
+ [Function.prototype, functionextensions_js_1.FunctionPrototypeExtensions, Function.name],
31
+ [Array.prototype, arrayextensions_js_1.ArrayPrototypeExtensions, Array.name],
32
+ [Map.prototype, mapextensions_js_1.MapPrototypeExtensions, Map.name],
33
+ [Set.prototype, setextensions_js_1.SetPrototypeExtensions, Set.name],
32
34
  ];
35
+ exports.InstancePatches = InstancePatches;
33
36
  const Patches = new Map([
34
37
  ...StaticPatches,
35
38
  ...InstancePatches,
36
39
  ]);
37
40
  exports.Patches = Patches;
38
41
  const Extensions = {
39
- global: globals_js_1.GlobalFunctionsAndProps,
40
42
  [asyncIterable_js_1.AsyncIterableExtensions.key]: asyncIterable_js_1.AsyncIterableExtensions,
41
43
  [asyncIterable_js_1.AsyncIteratorExtensions.key]: asyncIterable_js_1.AsyncIteratorExtensions,
42
44
  [deferred_js_1.DeferredExtension.key]: deferred_js_1.DeferredExtension,
@@ -57,14 +59,19 @@ Object.assign(Controls, {
57
59
  enablePatches() {
58
60
  Patches.forEach((extension) => { extension.apply(); });
59
61
  },
60
- enableStaticPatches(filter = (extension) => true) {
61
- StaticPatches.filter(filter).forEach(extension => extension.apply());
62
+ enableStaticPatches(filter = ([owner, extension]) => true) {
63
+ const patches = StaticPatches.filter(toFilterFn(filter));
64
+ patches.forEach(([_, extension]) => extension.apply());
65
+ return patches;
62
66
  },
63
- enableInstancePatches(filter = (extension) => true) {
64
- InstancePatches.filter(filter).forEach(extension => extension.apply());
67
+ enableInstancePatches(filter = ([owner, extension]) => true) {
68
+ const patches = InstancePatches.filter(toFilterFn(filter));
69
+ patches.forEach(([_, extension]) => extension.apply());
70
+ return patches;
65
71
  },
66
72
  enableExtensions() {
67
73
  Object.values(Extensions).forEach((extension) => { extension.apply(); });
74
+ globals_js_1.GlobalFunctionsAndProps.apply();
68
75
  },
69
76
  disableAll() {
70
77
  Controls.disablePatches();
@@ -73,39 +80,90 @@ Object.assign(Controls, {
73
80
  disablePatches() {
74
81
  Patches.forEach((extension) => { extension.revert(); });
75
82
  },
76
- disableStaticPatches(filter = (extension) => true) {
77
- StaticPatches.filter(filter).forEach(extension => extension.revert());
83
+ disableStaticPatches(filter = ([owner, extension]) => true) {
84
+ const patches = StaticPatches.filter(toFilterFn(filter));
85
+ patches.forEach(([_, extension]) => extension.revert());
86
+ return patches;
78
87
  },
79
- disableInstancePatches(filter = (extension) => true) {
80
- InstancePatches.filter(filter).forEach(extension => extension.revert());
88
+ disableInstancePatches(filter = ([owner, extension]) => true) {
89
+ const patches = InstancePatches.filter(toFilterFn(filter));
90
+ patches.forEach(([_, extension]) => extension.revert());
91
+ return patches;
81
92
  },
82
93
  disableExtensions() {
83
94
  Object.values(Extensions).forEach((extension) => { extension.revert(); });
95
+ globals_js_1.GlobalFunctionsAndProps.revert();
84
96
  },
85
97
  });
86
98
  exports.all = (() => {
87
- const extensions = [
88
- ...Array.from(Patches.values()),
89
- ...Array.from(Object.values(Extensions)),
90
- ];
91
- const dest = extensions.reduce((accumulator, extension) => {
92
- Reflect.ownKeys(extension.patchEntries).reduce((_, key) => {
93
- const entry = extension.patchEntries[key];
94
- if (entry.isAccessor)
95
- accumulator[key] = new descriptor_js_1.Descriptor(entry.descriptor);
96
- else
97
- accumulator[key] = entry.computed;
98
- return accumulator;
99
- }, accumulator);
99
+ const dest = {
100
+ patches: {},
101
+ classes: {},
102
+ global: {},
103
+ };
104
+ const entriesReducer = (accumulator, [key, entry]) => {
105
+ const descriptor = new descriptor_js_1.Descriptor(entry.descriptor, entry.owner);
106
+ descriptor.applyTo(accumulator, key, true);
100
107
  return accumulator;
101
- }, {});
108
+ };
109
+ const staticPatchReducer = (accumulator, [_, patch, ownerName]) => {
110
+ if (!accumulator?.[ownerName]) {
111
+ accumulator[ownerName] = {};
112
+ }
113
+ [...patch].reduce(entriesReducer, accumulator[ownerName]);
114
+ return accumulator;
115
+ };
116
+ const instancePatchReducer = (accumulator, [_, patch, ownerName]) => {
117
+ if (!accumulator?.[ownerName])
118
+ accumulator[ownerName] = {};
119
+ if (!accumulator[ownerName]?.prototype)
120
+ accumulator[ownerName].prototype = {};
121
+ [...patch].reduce(entriesReducer, accumulator[ownerName].prototype);
122
+ return accumulator;
123
+ };
124
+ StaticPatches.reduce(staticPatchReducer, dest.patches);
125
+ InstancePatches.reduce(instancePatchReducer, dest.patches);
126
+ (Object.entries(Extensions)
127
+ .map(([k, v]) => [k, v, k])
128
+ .reduce(staticPatchReducer, dest.classes));
129
+ for (const [key, entry] of globals_js_1.GlobalFunctionsAndProps) {
130
+ const descriptor = new descriptor_js_1.Descriptor(entry.descriptor, entry.owner);
131
+ Object.defineProperty(dest.global, key, descriptor.toObject(true));
132
+ }
102
133
  return dest;
103
134
  })();
104
135
  const results = {
105
136
  ...Controls,
137
+ Extensions,
138
+ Patches,
139
+ GlobalFunctionsAndProps: globals_js_1.GlobalFunctionsAndProps,
140
+ StaticPatches,
141
+ InstancePatches,
142
+ Controls,
106
143
  extensions: Extensions,
107
144
  patches: Patches,
108
145
  all: exports.all,
109
146
  };
110
147
  exports.default = results;
148
+ function toFilterFn(filter = ([owner, extension]) => true) {
149
+ let filterFn = filter;
150
+ if (typeof filterFn !== 'function') {
151
+ const elements = Array.isArray(filter) ? filter : [filter];
152
+ filterFn = ([owner, _]) => {
153
+ for (const element of elements) {
154
+ const elementStr = String(element);
155
+ if (elementStr.startsWith('^')) {
156
+ if ((owner?.name ?? owner) != elementStr.substring(1)) {
157
+ return true;
158
+ }
159
+ }
160
+ if ((owner?.name ?? owner) == elementStr) {
161
+ return true;
162
+ }
163
+ }
164
+ return false;
165
+ };
166
+ }
167
+ return filterFn;
168
+ }
111
169
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
@@ -24,19 +24,21 @@ export class AsyncIterable {
24
24
  static isAsyncIterable(value: any): boolean;
25
25
  /**
26
26
  * Constructs an instance of AsyncIterable. Similar to Iterable, it can be
27
- * initialized with either an iterable object or individual elements. The
28
- * elements can be promises, direct values, or a mix of both. If the first
29
- * argument is an iterable, the instance is initialized with the elements
30
- * from the iterable, followed by any additional arguments. If the first
31
- * argument is not an iterable, all arguments are treated as individual
32
- * elements.
27
+ * initialized with either an iterable object, an async generator function,
28
+ * or individual elements. The elements can be promises, direct values, or a
29
+ * mix of both. If the first argument is an iterable or an async generator
30
+ * function, the instance is initialized with the elements from the iterable
31
+ * or the generated elements from the async generator function, followed by
32
+ * any additional arguments. If the first argument is not an iterable or an
33
+ * async generator function, all arguments are treated as individual elements.
33
34
  *
34
- * @param {Iterable|Promise|*} elementsOrFirstElement - An iterable object,
35
- * a Promise, or the first element.
35
+ * @param {Iterable|AsyncGeneratorFunction|Promise|*} elementsOrFirstElement -
36
+ * An iterable object, an async generator function, a Promise, or the first
37
+ * element.
36
38
  * @param {...Promise|*} moreElements - Additional elements if the first
37
- * argument is not an iterable.
39
+ * argument is not an iterable or an async generator function.
38
40
  */
39
- constructor(elementsOrFirstElement: Iterable<any> | Promise<any> | any, ...moreElements: (Promise<any> | any)[]);
41
+ constructor(elementsOrFirstElement: Iterable<any> | AsyncGeneratorFunction | Promise<any> | any, ...moreElements: (Promise<any> | any)[]);
40
42
  /**
41
43
  * Implements the async iterable protocol. When an instance of AsyncIterable
42
44
  * is used in a `for await...of` loop, this async generator function is
@@ -67,10 +69,11 @@ export class AsyncIterator {
67
69
  /**
68
70
  * Creates a new `AsyncIterator` object instance.
69
71
  *
70
- * @param {object} asyncIterable any object that has a
71
- * `[Symbol.asyncIterable]` property assigned to a generator function.
72
+ * @param {object|AsyncGeneratorFunction} asyncIterable any object that has a
73
+ * `[Symbol.asyncIterable]` property assigned to a generator function or an
74
+ * async generator function itself.
72
75
  */
73
- constructor(asyncIterable: object);
76
+ constructor(asyncIterable: object | AsyncGeneratorFunction);
74
77
  /**
75
78
  * Returns a new `Array` derived from the iterable this object
76
79
  * wraps.
@@ -25,17 +25,19 @@ const extension_1 = require("@nejs/extension");
25
25
  class AsyncIterable {
26
26
  /**
27
27
  * Constructs an instance of AsyncIterable. Similar to Iterable, it can be
28
- * initialized with either an iterable object or individual elements. The
29
- * elements can be promises, direct values, or a mix of both. If the first
30
- * argument is an iterable, the instance is initialized with the elements
31
- * from the iterable, followed by any additional arguments. If the first
32
- * argument is not an iterable, all arguments are treated as individual
33
- * elements.
28
+ * initialized with either an iterable object, an async generator function,
29
+ * or individual elements. The elements can be promises, direct values, or a
30
+ * mix of both. If the first argument is an iterable or an async generator
31
+ * function, the instance is initialized with the elements from the iterable
32
+ * or the generated elements from the async generator function, followed by
33
+ * any additional arguments. If the first argument is not an iterable or an
34
+ * async generator function, all arguments are treated as individual elements.
34
35
  *
35
- * @param {Iterable|Promise|*} elementsOrFirstElement - An iterable object,
36
- * a Promise, or the first element.
36
+ * @param {Iterable|AsyncGeneratorFunction|Promise|*} elementsOrFirstElement -
37
+ * An iterable object, an async generator function, a Promise, or the first
38
+ * element.
37
39
  * @param {...Promise|*} moreElements - Additional elements if the first
38
- * argument is not an iterable.
40
+ * argument is not an iterable or an async generator function.
39
41
  */
40
42
  constructor(elementsOrFirstElement, ...moreElements) {
41
43
  /**
@@ -44,9 +46,14 @@ class AsyncIterable {
44
46
  */
45
47
  _AsyncIterable_elements.set(this, []);
46
48
  if (elementsOrFirstElement != null &&
47
- typeof elementsOrFirstElement[Symbol.iterator] === 'function') {
49
+ (typeof elementsOrFirstElement[Symbol.iterator] === 'function' ||
50
+ typeof elementsOrFirstElement[Symbol.asyncIterator] === 'function')) {
48
51
  __classPrivateFieldSet(this, _AsyncIterable_elements, [...elementsOrFirstElement, ...moreElements], "f");
49
52
  }
53
+ else if (typeof elementsOrFirstElement === 'function' &&
54
+ elementsOrFirstElement.constructor.name === 'AsyncGeneratorFunction') {
55
+ __classPrivateFieldSet(this, _AsyncIterable_elements, elementsOrFirstElement(), "f");
56
+ }
50
57
  else {
51
58
  __classPrivateFieldSet(this, _AsyncIterable_elements, [elementsOrFirstElement, ...moreElements], "f");
52
59
  }
@@ -62,10 +69,10 @@ class AsyncIterable {
62
69
  * a Promise.
63
70
  */
64
71
  async *[(_AsyncIterable_elements = new WeakMap(), Symbol.asyncIterator)]() {
65
- for (const element of __classPrivateFieldGet(this, _AsyncIterable_elements, "f")) {
66
- // Treat each element as a promise. If it's not, it's automatically
67
- // wrapped as a resolved promise.
68
- yield Promise.resolve(element);
72
+ for await (const element of __classPrivateFieldGet(this, _AsyncIterable_elements, "f")) {
73
+ // No need to wrap as a promise here since `for await...of` can handle
74
+ // both Promises and non-Promise values.
75
+ yield element;
69
76
  }
70
77
  }
71
78
  /**
@@ -107,8 +114,9 @@ class AsyncIterator {
107
114
  /**
108
115
  * Creates a new `AsyncIterator` object instance.
109
116
  *
110
- * @param {object} asyncIterable any object that has a
111
- * `[Symbol.asyncIterable]` property assigned to a generator function.
117
+ * @param {object|AsyncGeneratorFunction} asyncIterable any object that has a
118
+ * `[Symbol.asyncIterable]` property assigned to a generator function or an
119
+ * async generator function itself.
112
120
  */
113
121
  constructor(asyncIterable) {
114
122
  /**
@@ -126,11 +134,18 @@ class AsyncIterator {
126
134
  * @private
127
135
  */
128
136
  _AsyncIterator_asyncIterator.set(this, null);
129
- if (!asyncIterable || !Reflect.has(asyncIterable, Symbol.asyncIterator)) {
137
+ if (typeof asyncIterable === 'function' &&
138
+ asyncIterable.constructor.name === 'AsyncGeneratorFunction') {
139
+ __classPrivateFieldSet(this, _AsyncIterator_asyncIterable, asyncIterable(), "f");
140
+ }
141
+ else if (!asyncIterable ||
142
+ !Reflect.has(asyncIterable, Symbol.asyncIterator)) {
130
143
  throw new TypeError('Value used to instantiate AsyncIterator is not an async iterable');
131
144
  }
132
- __classPrivateFieldSet(this, _AsyncIterator_asyncIterable, asyncIterable, "f");
133
- __classPrivateFieldSet(this, _AsyncIterator_asyncIterator, asyncIterable[Symbol.asyncIterator](), "f");
145
+ else {
146
+ __classPrivateFieldSet(this, _AsyncIterator_asyncIterable, asyncIterable, "f");
147
+ }
148
+ __classPrivateFieldSet(this, _AsyncIterator_asyncIterator, __classPrivateFieldGet(this, _AsyncIterator_asyncIterable, "f")[Symbol.asyncIterator](), "f");
134
149
  }
135
150
  /**
136
151
  * Returns a new `Array` derived from the iterable this object
@@ -1 +1 @@
1
- {"version":3,"file":"asyncIterable.js","sourceRoot":"","sources":["../../../src/newClasses/asyncIterable.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asyncIterable.js","sourceRoot":"","sources":["../../../src/newClasses/asyncIterable.js"],"names":[],"mappings":"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"}
@@ -204,15 +204,22 @@ export class Descriptor {
204
204
  */
205
205
  static get DATA_KEYS(): string[];
206
206
  /**
207
- * Creates a new instance of Descriptor either from another object or
208
- * around the supplied object descriptor value.
209
- *
210
- * @param {object} object either an object descriptor or the object
211
- * from which to get the descriptor
212
- * @param {symbol|string} key a valid key for accessing the descriptor
213
- * on the aforesupplied object.
214
- */
215
- constructor(object: object, key: symbol | string);
207
+ * Constructs a Descriptor instance which wraps and manages an object
208
+ * property descriptor. The constructor can handle an existing descriptor
209
+ * object or create a new one based on an object and a property key.
210
+ *
211
+ * @param {object|Descriptor} object - The target object or an existing
212
+ * Descriptor instance. If it's an object, it is used in conjunction with
213
+ * `key` to create a descriptor. If it's a Descriptor instance, it is used
214
+ * directly as the descriptor.
215
+ * @param {string|symbol} [key] - The property key for which the descriptor
216
+ * is to be created. This parameter is ignored if `object` is a Descriptor
217
+ * instance. If `key` is an object and `object` is a valid descriptor, `key`
218
+ * is treated as the associated object.
219
+ * @throws {Error} Throws an error if the constructed descriptor is not
220
+ * valid.
221
+ */
222
+ constructor(object: object | Descriptor, key?: string | symbol | undefined);
216
223
  /**
217
224
  * Detects whether or not this instance is an accessor object descriptor
218
225
  *
@@ -379,7 +386,21 @@ export class Descriptor {
379
386
  * @param {string|symbol} forKey the string or symbol for which this
380
387
  * descriptor will abe applied
381
388
  */
382
- applyTo(object: object, forKey: string | symbol): object;
389
+ applyTo(object: object, forKey: string | symbol, bindAccessors?: boolean): object;
390
+ /**
391
+ * Converts this Descriptor class instance into a basic object descriptor
392
+ * that is accepted by all the standard JavaScript runtime methods that
393
+ * deal with object descriptors.
394
+ *
395
+ * @param {boolean|object} bindAccessors if `true`, a non-fatal attempt to
396
+ * bind accessor getter and setter methods is made before returning the
397
+ * object. If `bindAccessors` is truthy and is also an object, this is the
398
+ * object the accessors will be bound to. If the value is falsy or if the
399
+ * descriptor instance represents a data descriptor, nothing happens.
400
+ * @returns {object} the object instance's basic object representation as
401
+ * a descriptor.
402
+ */
403
+ toObject(bindAccessors?: boolean | object): object;
383
404
  /**
384
405
  * Converts this descriptor object into a base representation
385
406
  *
@@ -20,13 +20,20 @@ const { isObject, isValidKey } = objectextensions_js_1.ObjectExtensions.patches;
20
20
  const { hasSome } = reflectextensions_js_1.ReflectExtensions.patches;
21
21
  class Descriptor {
22
22
  /**
23
- * Creates a new instance of Descriptor either from another object or
24
- * around the supplied object descriptor value.
25
- *
26
- * @param {object} object either an object descriptor or the object
27
- * from which to get the descriptor
28
- * @param {symbol|string} key a valid key for accessing the descriptor
29
- * on the aforesupplied object.
23
+ * Constructs a Descriptor instance which wraps and manages an object
24
+ * property descriptor. The constructor can handle an existing descriptor
25
+ * object or create a new one based on an object and a property key.
26
+ *
27
+ * @param {object|Descriptor} object - The target object or an existing
28
+ * Descriptor instance. If it's an object, it is used in conjunction with
29
+ * `key` to create a descriptor. If it's a Descriptor instance, it is used
30
+ * directly as the descriptor.
31
+ * @param {string|symbol} [key] - The property key for which the descriptor
32
+ * is to be created. This parameter is ignored if `object` is a Descriptor
33
+ * instance. If `key` is an object and `object` is a valid descriptor, `key`
34
+ * is treated as the associated object.
35
+ * @throws {Error} Throws an error if the constructed descriptor is not
36
+ * valid.
30
37
  */
31
38
  constructor(object, key) {
32
39
  /**
@@ -53,28 +60,39 @@ class Descriptor {
53
60
  */
54
61
  _Descriptor_object.set(this, undefined
55
62
  /**
56
- * Creates a new instance of Descriptor either from another object or
57
- * around the supplied object descriptor value.
63
+ * Constructs a Descriptor instance which wraps and manages an object
64
+ * property descriptor. The constructor can handle an existing descriptor
65
+ * object or create a new one based on an object and a property key.
58
66
  *
59
- * @param {object} object either an object descriptor or the object
60
- * from which to get the descriptor
61
- * @param {symbol|string} key a valid key for accessing the descriptor
62
- * on the aforesupplied object.
67
+ * @param {object|Descriptor} object - The target object or an existing
68
+ * Descriptor instance. If it's an object, it is used in conjunction with
69
+ * `key` to create a descriptor. If it's a Descriptor instance, it is used
70
+ * directly as the descriptor.
71
+ * @param {string|symbol} [key] - The property key for which the descriptor
72
+ * is to be created. This parameter is ignored if `object` is a Descriptor
73
+ * instance. If `key` is an object and `object` is a valid descriptor, `key`
74
+ * is treated as the associated object.
75
+ * @throws {Error} Throws an error if the constructed descriptor is not
76
+ * valid.
63
77
  */
64
78
  );
65
79
  if ((object ?? key) === undefined) {
66
80
  __classPrivateFieldSet(this, _Descriptor_desc, Descriptor.enigmatic, "f");
67
81
  }
68
- if (Descriptor.isDescriptor(object)) {
82
+ else if (Descriptor.isDescriptor(object)) {
69
83
  __classPrivateFieldSet(this, _Descriptor_desc, object, "f");
70
- __classPrivateFieldSet(this, _Descriptor_object, undefined, "f");
84
+ __classPrivateFieldSet(this, _Descriptor_object, isObject(key) ? key : undefined, "f");
71
85
  }
72
86
  else if (isObject(object) && isValidKey(key)) {
73
87
  __classPrivateFieldSet(this, _Descriptor_desc, Object.getOwnPropertyDescriptor(object, key), "f");
74
88
  __classPrivateFieldSet(this, _Descriptor_object, object, "f");
75
89
  }
76
90
  if (!this.isDescriptor) {
77
- console.error('Current descriptor:', __classPrivateFieldGet(this, _Descriptor_desc, "f"));
91
+ console.error(`
92
+ Descriptor(object,key) FAILED:
93
+ object: ${object === globalThis ? '[GLOBAL]' : (typeof key === 'object' ? JSON.stringify(object) : String(object))}
94
+ key: ${key === globalThis ? '[GLOBAL]' : (typeof key === 'object' ? JSON.stringify(key) : String(key))}
95
+ descriptor: `, __classPrivateFieldGet(this, _Descriptor_desc, "f"));
78
96
  throw new Error(`Not a valid descriptor:`, __classPrivateFieldGet(this, _Descriptor_desc, "f"));
79
97
  }
80
98
  }
@@ -316,11 +334,44 @@ class Descriptor {
316
334
  * @param {string|symbol} forKey the string or symbol for which this
317
335
  * descriptor will abe applied
318
336
  */
319
- applyTo(object, forKey) {
337
+ applyTo(object, forKey, bindAccessors = false) {
320
338
  if (!isObject(object) || !isValidKey(forKey)) {
321
339
  throw new Error(`Cannot apply descriptor to non-object or invalid key`);
322
340
  }
323
- return Object.defineProperty(object, forKey, __classPrivateFieldGet(this, _Descriptor_desc, "f"));
341
+ return Object.defineProperty(object, forKey, this.toObject(bindAccessors));
342
+ }
343
+ /**
344
+ * Converts this Descriptor class instance into a basic object descriptor
345
+ * that is accepted by all the standard JavaScript runtime methods that
346
+ * deal with object descriptors.
347
+ *
348
+ * @param {boolean|object} bindAccessors if `true`, a non-fatal attempt to
349
+ * bind accessor getter and setter methods is made before returning the
350
+ * object. If `bindAccessors` is truthy and is also an object, this is the
351
+ * object the accessors will be bound to. If the value is falsy or if the
352
+ * descriptor instance represents a data descriptor, nothing happens.
353
+ * @returns {object} the object instance's basic object representation as
354
+ * a descriptor.
355
+ */
356
+ toObject(bindAccessors = false) {
357
+ let descriptor = { ...__classPrivateFieldGet(this, _Descriptor_desc, "f") };
358
+ if (bindAccessors && this.isAccessor) {
359
+ if (this.hasObject) {
360
+ descriptor = {
361
+ ...descriptor,
362
+ get: this.boundGet,
363
+ set: this.boundSet
364
+ };
365
+ }
366
+ else if (isObject(bindAccessors)) {
367
+ descriptor = {
368
+ ...descriptor,
369
+ get: this.get?.bind(bindAccessors),
370
+ set: this.set?.bind(bindAccessors)
371
+ };
372
+ }
373
+ }
374
+ return descriptor;
324
375
  }
325
376
  /**
326
377
  * Converts this descriptor object into a base representation
@@ -348,7 +399,7 @@ class Descriptor {
348
399
  case 'number':
349
400
  return NaN;
350
401
  default:
351
- return __classPrivateFieldGet(this, _Descriptor_desc, "f");
402
+ return this.toObject();
352
403
  }
353
404
  }
354
405
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../src/newClasses/descriptor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../src/newClasses/descriptor.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,gEAAyD;AACzD,kEAA2D;AAE3D,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,sCAAgB,CAAC,OAAO,CAAA;AACzD,MAAM,EAAE,OAAO,EAAE,GAAG,wCAAiB,CAAC,OAAO,CAAA;AAE7C,MAAa,UAAU;IAkBrB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,MAAM,EAAE,GAAG;QAjCvB;;;;;WAKG;QACH,2BAAQ,SAAS;QAEjB;;;;;;WAMG;UARc;QAEjB;;;;;;WAMG;QACH,6BAAU,SAAS;QAEnB;;;;;;;;;;;;;;;WAeG;UAjBgB;QAmBjB,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,uBAAA,IAAI,oBAAS,UAAU,CAAC,SAAS,MAAA,CAAA;QACnC,CAAC;aACI,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,uBAAA,IAAI,oBAAS,MAAM,MAAA,CAAA;YACnB,uBAAA,IAAI,sBAAW,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,MAAA,CAAA;QAChD,CAAC;aACI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,uBAAA,IAAI,oBAAS,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAA,CAAA;YACzD,uBAAA,IAAI,sBAAW,MAAM,MAAA,CAAA;QACvB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC;;uBAEG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;uBACxG,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;sBAChG,EAAE,uBAAA,IAAI,wBAAM,CAC3B,CAAA;YACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,uBAAA,IAAI,wBAAM,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAI,UAAU;QACZ,OAAO,UAAU,CAAC,UAAU,CAAC,uBAAA,IAAI,wBAAM,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;OAKG;IACH,IAAI,MAAM;QACR,OAAO,UAAU,CAAC,MAAM,CAAC,uBAAA,IAAI,wBAAM,CAAC,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY;QACd,OAAO,UAAU,CAAC,YAAY,CAAC,uBAAA,IAAI,wBAAM,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,YAAY;QACd,OAAO,CAAC,CAAC,uBAAA,IAAI,wBAAM,EAAE,YAAY,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,YAAY,CAAC,KAAK;QACpB,CAAC,uBAAA,IAAI,wBAAM,IAAI,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,CAAA;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,UAAU;QACZ,OAAO,uBAAA,IAAI,wBAAM,EAAE,UAAU,CAAA;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,UAAU,CAAC,KAAK;QAClB,CAAC,uBAAA,IAAI,wBAAM,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,KAAK,CAAA;IACvC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACV,OAAO,uBAAA,IAAI,wBAAM,EAAE,QAAQ,CAAA;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ,CAAC,KAAK;QAChB,CAAC,uBAAA,IAAI,wBAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAA;IACrC,CAAC;IAED;;;;;OAKG;IACH,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,wBAAM,EAAE,KAAK,CAAA;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,KAAK,CAAC,KAAK;QACb,CAAC,uBAAA,IAAI,wBAAM,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,GAAG;QACL,OAAO,uBAAA,IAAI,wBAAM,EAAE,GAAG,CAAA;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,OAAO,CAAC,QAAQ,CAAC,uBAAA,IAAI,0BAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,uBAAA,IAAI,0BAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3E,CAAC;IAED;;;;;OAKG;IACH,IAAI,GAAG,CAAC,KAAK;QACX,CAAC,uBAAA,IAAI,wBAAM,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,CAAA;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,GAAG;QACL,OAAO,CAAC,uBAAA,IAAI,wBAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAA;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,OAAO,CAAC,QAAQ,CAAC,uBAAA,IAAI,0BAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,uBAAA,IAAI,0BAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3E,CAAC;IAED;;;;;OAKG;IACH,IAAI,GAAG,CAAC,KAAK;QACX,CAAC,uBAAA,IAAI,wBAAM,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,CAAA;IAChC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,SAAS,KAAK,OAAO,QAAQ,CAAC,uBAAA,IAAI,0BAAQ,CAAC,CAAA,CAAC,CAAC;IAEjD;;;;;;;OAOG;IACH,IAAI,MAAM,KAAK,OAAO,uBAAA,IAAI,0BAAQ,CAAA,CAAC,CAAC;IAEpC;;;;;;OAMG;IACH,IAAI,MAAM,CAAC,KAAK,IAAI,uBAAA,IAAI,sBAAW,MAAM,CAAC,KAAK,CAAC,MAAA,CAAA,CAAC,CAAC;IAElD;;;;;;;;;;;;;;;;;OAiBG;IACH,wEAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3E,OAAO,aAAa,IAAI,IAAI,OAAO,CAAC,uBAAA,IAAI,wBAAM,EAAE,EAAC,GAAG,OAAO,EAAE,KAAK,EAAC,CAAC,EAAE,CAAA;IACxE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK;QAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,CAAC,IAAI;YACV,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9D,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAC/C,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,KAAK;QAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACzE,CAAC;QAED,OAAO,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,aAAa,GAAG,KAAK;QAC5B,IAAI,UAAU,GAAG,EAAE,GAAG,uBAAA,IAAI,wBAAM,EAAE,CAAA;QAElC,IAAI,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,UAAU,GAAG;oBACX,GAAG,UAAU;oBACb,GAAG,EAAE,IAAI,CAAC,QAAQ;oBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ;iBACnB,CAAA;YACH,CAAC;iBACI,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,UAAU,GAAG;oBACX,GAAG,UAAU;oBACb,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC;oBAClC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC;iBACnC,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;;;;OAMG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI;QACvB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAA,IAAI,wBAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;oBAChE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAA,IAAI,wBAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;oBAChE,MAAM,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;oBAEpD,OAAO,aAAa,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,CAAA;gBAC1D,CAAC;qBACI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAA,IAAI,wBAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;oBACjE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAA,IAAI,wBAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;oBACvE,MAAM,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;oBAEpD,OAAO,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,CAAA;gBACtD,CAAC;gBACD,MAAK;YAEP,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAA;YAEZ;gBACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,UAAU,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK;QAClD,OAAO;YACL,UAAU;YACV,YAAY;SACb,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,QAAQ,CACb,MAAM,EACN,MAAM,EACN,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE;QAEhD,OAAO;YACL,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,UAAU;YACV,YAAY;SACb,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,IAAI,CACT,KAAK,EACL,QAAQ,GAAG,IAAI,EACf,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE;QAEhD,OAAO;YACL,KAAK;YACL,UAAU;YACV,QAAQ;YACR,YAAY;SACb,CAAA;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM;QACxB,MAAM,SAAS,GAAG;YAChB,GAAG,UAAU,CAAC,WAAW;YACzB,GAAG,UAAU,CAAC,aAAa;YAC3B,GAAG,UAAU,CAAC,SAAS;SACxB,CAAA;QAED,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ;QACnC,MAAM,eAAe,GAAG,CACtB,CAAC,CAAC,OAAO,aAAa,KAAK,QAAQ,CAAC,IAAI,aAAa,YAAY,MAAM,CAAC;YACxE,QAAQ,YAAY,MAAM,CAC3B,CAAA;QAED,MAAM,UAAU,GAAG,CAAC,eAAe;YACjC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;YACzC,CAAC,CAAC,aAAa,CAChB,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAC1B,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;YACnC,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ;QACvC,MAAM,eAAe,GAAG,CACtB,CAAC,aAAa,IAAI,QAAQ,CAAC;YAC3B,CAAC,CAAC,OAAO,aAAa,KAAK,QAAQ,CAAC,IAAI,aAAa,YAAY,MAAM,CAAC;YACxE,CAAC,QAAQ,YAAY,MAAM,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAC/D,CAAA;QAED,MAAM,UAAU,GAAG,CAAC,eAAe;YACjC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;YACzC,CAAC,CAAC,aAAa,CAAC,CAAA;QAElB,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;QAC9B,IAAI,aAAa,GAAG,KAAK,CAAA;QAEzB,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;YACvC,aAAa,GAAG,IAAI,CAAA;QACtB,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,KAAK,QAAQ;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,KAAK,SAAS;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,KAAK,SAAS;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACH,MAAM,KAAK,WAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED;;;;OAIG;IACH,MAAM,KAAK,WAAW;QACpB,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACvC,CAAC;IAED;;;;OAIG;IACH,MAAM,KAAK,aAAa;QACtB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACvB,CAAC;IAED;;;;;OAKG;IACH,MAAM,KAAK,SAAS;QAClB,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC9B,CAAC;CACF;AAvrBD,gCAurBC;AAEY,QAAA,oBAAoB,GAAG,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAA"}