@ember-data/tracking 5.5.0-alpha.11 → 5.5.0-alpha.13

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/LICENSE.md CHANGED
@@ -1,11 +1,23 @@
1
- The MIT License (MIT)
1
+ MIT License
2
2
 
3
- Copyright (C) 2017-2023 Ember.js contributors
4
- Portions Copyright (C) 2011-2017 Tilde, Inc. and contributors.
5
- Portions Copyright (C) 2011 LivingSocial Inc.
3
+ Copyright (c) 2017-2025 Ember.js and contributors
4
+ Copyright (c) 2011-2017 Tilde, Inc. and contributors
5
+ Copyright (c) 2011 LivingSocial Inc.
6
6
 
7
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
8
13
 
9
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
10
16
 
11
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md CHANGED
@@ -1,13 +1,35 @@
1
- @ember-data/tracking
2
- ============================================================================
3
-
4
- Tracking Primitives for controlling change notification of Tracked properties when working with EmberData
5
-
6
- > Note: This is a V2 Addon, but we have intentionally configured it to act and report as a V1 Addon due
7
- to bugs with ember-auto-import.
8
- >
9
- > We can remove the V1 tag if ember-auto-import will no longer attempt
10
- to load V2 addons or if it is fixed to work with V1 addons with custom addon trees and also dedupes modules for test apps.
11
- >
12
- > You can still consume this as a normal library.
13
- > In other projects.
1
+ <p align="center">
2
+ <img
3
+ class="project-logo"
4
+ src="./logos/ember-data-logo-dark.svg#gh-dark-mode-only"
5
+ alt="EmberData Store"
6
+ width="240px"
7
+ title="EmberData Store"
8
+ />
9
+ <img
10
+ class="project-logo"
11
+ src="./logos/ember-data-logo-light.svg#gh-light-mode-only"
12
+ alt="EmberData Store"
13
+ width="240px"
14
+ title="EmberData Store"
15
+ />
16
+ </p>
17
+
18
+ <p align="center">Tracking Primitives for controlling change notification of Tracked properties when working with EmberData</p>
19
+
20
+ ## Installation
21
+
22
+ Install using your javascript package manager of choice. For instance with [pnpm](https://pnpm.io/)
23
+
24
+ ```
25
+ pnpm add @ember-data/tracking
26
+ ```
27
+
28
+ **Tagged Releases**
29
+
30
+ - ![NPM Canary Version](https://img.shields.io/npm/v/%40ember-data/tracking/canary?label=%40canary&color=FFBF00)
31
+ - ![NPM Beta Version](https://img.shields.io/npm/v/%40ember-data/tracking/beta?label=%40beta&color=ff00ff)
32
+ - ![NPM Stable Version](https://img.shields.io/npm/v/%40ember-data/tracking/latest?label=%40latest&color=90EE90)
33
+ - ![NPM LTS Version](https://img.shields.io/npm/v/%40ember-data/tracking/lts?label=%40lts&color=0096FF)
34
+ - ![NPM LTS 4.12 Version](https://img.shields.io/npm/v/%40ember-data/tracking/lts-4-12?label=%40lts-4-12&color=bbbbbb)
35
+
package/addon-main.cjs ADDED
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ const { addonShim } = require('@warp-drive/build-config/addon-shim.cjs');
4
+
5
+ module.exports = addonShim(__dirname);
@@ -1,22 +1,24 @@
1
1
  import { tagForProperty } from '@ember/-internals/metal';
2
+ import { dependentKeyCompat } from '@ember/object/compat';
3
+ export { dependentKeyCompat as compat } from '@ember/object/compat';
2
4
  import { consumeTag, dirtyTag } from '@glimmer/validator';
3
- import { macroCondition, getOwnConfig } from '@embroider/macros';
4
- let TRANSACTION = null;
5
+ import { getOrSetGlobal, peekTransient, setTransient } from '@warp-drive/core-types/-private';
6
+ import { macroCondition, getGlobalConfig } from '@embroider/macros';
5
7
  function createTransaction() {
6
- let transaction = {
8
+ const transaction = {
7
9
  cbs: new Set(),
8
10
  props: new Set(),
9
11
  sub: new Set(),
10
12
  parent: null
11
13
  };
14
+ const TRANSACTION = peekTransient('TRANSACTION');
12
15
  if (TRANSACTION) {
13
16
  transaction.parent = TRANSACTION;
14
17
  }
15
- TRANSACTION = transaction;
18
+ setTransient('TRANSACTION', transaction);
16
19
  }
17
20
  function maybeConsume(tag) {
18
21
  if (tag) {
19
- // @ts-expect-error - we are using Ember's Tag not Glimmer's
20
22
  consumeTag(tag);
21
23
  }
22
24
  }
@@ -26,25 +28,37 @@ function maybeDirty(tag) {
26
28
  dirtyTag(tag);
27
29
  }
28
30
  }
31
+
32
+ /**
33
+ * If there is a current transaction, ensures that the relevant tag (and any
34
+ * array computed chains symbols, if applicable) will be consumed during the
35
+ * transaction.
36
+ *
37
+ * If there is no current transaction, will consume the tag(s) immediately.
38
+ *
39
+ * @internal
40
+ * @param obj
41
+ */
29
42
  function subscribe(obj) {
43
+ const TRANSACTION = peekTransient('TRANSACTION');
30
44
  if (TRANSACTION) {
31
45
  TRANSACTION.sub.add(obj);
32
46
  } else if ('tag' in obj) {
33
- if (macroCondition(getOwnConfig().deprecations.DEPRECATE_COMPUTED_CHAINS)) {
47
+ if (macroCondition(getGlobalConfig().WarpDrive.deprecations.DEPRECATE_COMPUTED_CHAINS)) {
34
48
  maybeConsume(obj['[]']);
35
49
  maybeConsume(obj['@length']);
36
50
  }
37
- // @ts-expect-error - we are using Ember's Tag not Glimmer's
38
51
  consumeTag(obj.tag);
39
52
  } else {
53
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
40
54
  obj.ref;
41
55
  }
42
56
  }
43
57
  function updateRef(obj) {
44
- if (macroCondition(getOwnConfig().env.DEBUG)) {
58
+ if (macroCondition(getGlobalConfig().WarpDrive.env.DEBUG)) {
45
59
  try {
46
60
  if ('tag' in obj) {
47
- if (macroCondition(getOwnConfig().deprecations.DEPRECATE_COMPUTED_CHAINS)) {
61
+ if (macroCondition(getGlobalConfig().WarpDrive.deprecations.DEPRECATE_COMPUTED_CHAINS)) {
48
62
  maybeDirty(obj['[]']);
49
63
  maybeDirty(obj['@length']);
50
64
  }
@@ -92,7 +106,7 @@ function updateRef(obj) {
92
106
  }
93
107
  } else {
94
108
  if ('tag' in obj) {
95
- if (macroCondition(getOwnConfig().deprecations.DEPRECATE_COMPUTED_CHAINS)) {
109
+ if (macroCondition(getGlobalConfig().WarpDrive.deprecations.DEPRECATE_COMPUTED_CHAINS)) {
96
110
  maybeDirty(obj['[]']);
97
111
  maybeDirty(obj['@length']);
98
112
  }
@@ -104,8 +118,8 @@ function updateRef(obj) {
104
118
  }
105
119
  }
106
120
  function flushTransaction() {
107
- let transaction = TRANSACTION;
108
- TRANSACTION = transaction.parent;
121
+ const transaction = peekTransient('TRANSACTION');
122
+ setTransient('TRANSACTION', transaction.parent);
109
123
  transaction.cbs.forEach(cb => {
110
124
  cb();
111
125
  });
@@ -116,20 +130,20 @@ function flushTransaction() {
116
130
  });
117
131
  transaction.sub.forEach(obj => {
118
132
  if ('tag' in obj) {
119
- if (macroCondition(getOwnConfig().deprecations.DEPRECATE_COMPUTED_CHAINS)) {
133
+ if (macroCondition(getGlobalConfig().WarpDrive.deprecations.DEPRECATE_COMPUTED_CHAINS)) {
120
134
  maybeConsume(obj['[]']);
121
135
  maybeConsume(obj['@length']);
122
136
  }
123
- // @ts-expect-error - we are using Ember's Tag not Glimmer's
124
137
  consumeTag(obj.tag);
125
138
  } else {
139
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
126
140
  obj.ref;
127
141
  }
128
142
  });
129
143
  }
130
144
  async function untrack() {
131
- let transaction = TRANSACTION;
132
- TRANSACTION = transaction.parent;
145
+ const transaction = peekTransient('TRANSACTION');
146
+ setTransient('TRANSACTION', transaction.parent);
133
147
 
134
148
  // defer writes
135
149
  await Promise.resolve();
@@ -143,15 +157,17 @@ async function untrack() {
143
157
  });
144
158
  }
145
159
  function addToTransaction(obj) {
146
- if (TRANSACTION) {
147
- TRANSACTION.props.add(obj);
160
+ const transaction = peekTransient('TRANSACTION');
161
+ if (transaction) {
162
+ transaction.props.add(obj);
148
163
  } else {
149
164
  updateRef(obj);
150
165
  }
151
166
  }
152
167
  function addTransactionCB(method) {
153
- if (TRANSACTION) {
154
- TRANSACTION.cbs.add(method);
168
+ const transaction = peekTransient('TRANSACTION');
169
+ if (transaction) {
170
+ transaction.cbs.add(method);
155
171
  } else {
156
172
  method();
157
173
  }
@@ -171,7 +187,7 @@ function addTransactionCB(method) {
171
187
  * @static
172
188
  * @for @ember-data/tracking
173
189
  * @param method
174
- * @returns result of invoking method
190
+ * @return result of invoking method
175
191
  */
176
192
  function untracked(method) {
177
193
  createTransaction();
@@ -194,7 +210,7 @@ function untracked(method) {
194
210
  * @static
195
211
  * @for @ember-data/tracking
196
212
  * @param method
197
- * @returns result of invoking method
213
+ * @return result of invoking method
198
214
  */
199
215
  function transact(method) {
200
216
  createTransaction();
@@ -213,7 +229,7 @@ function transact(method) {
213
229
  * @static
214
230
  * @for @ember-data/tracking
215
231
  * @param method
216
- * @returns a function that will invoke method in a transaction with any provided args and return its result
232
+ * @return a function that will invoke method in a transaction with any provided args and return its result
217
233
  */
218
234
  function memoTransact(method) {
219
235
  return function (...args) {
@@ -223,7 +239,35 @@ function memoTransact(method) {
223
239
  return ret;
224
240
  };
225
241
  }
226
- const Signals = Symbol('Signals');
242
+ const Signals = getOrSetGlobal('Signals', Symbol('Signals'));
243
+
244
+ /**
245
+ * use to add a signal property to the prototype of something.
246
+ *
247
+ * First arg is the thing to define on
248
+ * Second arg is the property name
249
+ * Third agg is the initial value of the property if any.
250
+ *
251
+ * for instance
252
+ *
253
+ * ```ts
254
+ * class Model {}
255
+ * defineSignal(Model.prototype, 'isLoading', false);
256
+ * ```
257
+ *
258
+ * This is sort of like using a stage-3 decorator but works today
259
+ * while we are still on legacy decorators.
260
+ *
261
+ * e.g. it is equivalent to
262
+ *
263
+ * ```ts
264
+ * class Model {
265
+ * @signal accessor isLoading = false;
266
+ * }
267
+ * ```
268
+ *
269
+ * @internal
270
+ */
227
271
  function defineSignal(obj, key, v) {
228
272
  Object.defineProperty(obj, key, {
229
273
  enumerable: true,
@@ -251,32 +295,65 @@ function defineSignal(obj, key, v) {
251
295
  }
252
296
  });
253
297
  }
298
+ function defineSubscription(obj, key, desc) {
299
+ const options = Object.assign({
300
+ enumerable: true,
301
+ configurable: false
302
+ }, subscribed(obj, key, desc));
303
+ Object.defineProperty(obj, key, options);
304
+ }
254
305
  function createArrayTags(obj, signal) {
255
- if (macroCondition(getOwnConfig().deprecations.DEPRECATE_COMPUTED_CHAINS)) {
306
+ if (macroCondition(getGlobalConfig().WarpDrive.deprecations.DEPRECATE_COMPUTED_CHAINS)) {
256
307
  signal['[]'] = tagForProperty(obj, '[]');
257
308
  signal['@length'] = tagForProperty(obj, 'length');
258
309
  }
259
310
  }
311
+
312
+ /**
313
+ * Create a signal for the key/object pairing.
314
+ *
315
+ * @internal
316
+ * @param obj Object we're creating the signal on
317
+ * @param key Key to create the signal for
318
+ * @return the signal
319
+ */
260
320
  function createSignal(obj, key) {
261
321
  const _signal = {
262
322
  key,
263
323
  tag: tagForProperty(obj, key),
324
+ reason: null,
264
325
  t: false,
265
326
  shouldReset: false,
266
327
  '[]': null,
267
328
  '@length': null,
268
329
  lastValue: undefined
269
330
  };
270
- if (macroCondition(getOwnConfig().env.DEBUG)) {
271
- // @ts-expect-error
272
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-base-to-string
273
- const modelName = obj.modelName ?? obj.constructor?.modelName ?? '';
274
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-base-to-string
331
+ if (macroCondition(getGlobalConfig().WarpDrive.env.DEBUG)) {
332
+ function tryGet(prop) {
333
+ try {
334
+ return obj[prop];
335
+ } catch {
336
+ return;
337
+ }
338
+ }
339
+ const modelName = tryGet('$type') ?? tryGet('modelName') ?? tryGet('constructor')?.modelName ?? '';
275
340
  const className = obj.constructor?.name ?? obj.toString?.() ?? 'unknown';
276
- _signal._debug_base = `${className}${modelName ? `:${modelName}` : ''}`;
341
+ _signal._debug_base = `${className}${modelName && !className.startsWith('SchemaRecord') ? `:${modelName}` : ''}`;
277
342
  }
278
343
  return _signal;
279
344
  }
345
+
346
+ /**
347
+ * Create a signal for the key/object pairing and subscribes to the signal.
348
+ *
349
+ * Use when you need to ensure a signal exists and is subscribed to.
350
+ *
351
+ * @internal
352
+ * @param signals Map of signals
353
+ * @param obj Object we're creating the signal on
354
+ * @param key Key to create the signal for
355
+ * @return the signal
356
+ */
280
357
  function entangleSignal(signals, obj, key) {
281
358
  let _signal = signals.get(key);
282
359
  if (!_signal) {
@@ -287,7 +364,11 @@ function entangleSignal(signals, obj, key) {
287
364
  return _signal;
288
365
  }
289
366
  function getSignal(obj, key, initialState) {
290
- const signals = obj[Signals] = obj[Signals] || new Map();
367
+ let signals = obj[Signals];
368
+ if (!signals) {
369
+ signals = new Map();
370
+ obj[Signals] = signals;
371
+ }
291
372
  let _signal = signals.get(key);
292
373
  if (!_signal) {
293
374
  _signal = createSignal(obj, key);
@@ -302,4 +383,33 @@ function peekSignal(obj, key) {
302
383
  return signals.get(key);
303
384
  }
304
385
  }
305
- export { Signals, addToTransaction, addTransactionCB, createArrayTags, createSignal, defineSignal, entangleSignal, getSignal, memoTransact, peekSignal, subscribe, transact, untracked };
386
+ function subscribed(_target, key, desc) {
387
+ // eslint-disable-next-line @typescript-eslint/unbound-method
388
+ const getter = desc.get;
389
+ // eslint-disable-next-line @typescript-eslint/unbound-method
390
+ const setter = desc.set;
391
+ desc.get = function () {
392
+ const signal = getSignal(this, key, true);
393
+ subscribe(signal);
394
+ if (signal.shouldReset) {
395
+ signal.shouldReset = false;
396
+ signal.lastValue = getter.call(this);
397
+ }
398
+ return signal.lastValue;
399
+ };
400
+ desc.set = function (v) {
401
+ getSignal(this, key, true); // ensure signal is setup in case we want to use it.
402
+ // probably notify here but not yet.
403
+ setter.call(this, v);
404
+ };
405
+ dependentKeyCompat(desc);
406
+ return desc;
407
+ }
408
+ function notifySignal(obj, key) {
409
+ const signal = peekSignal(obj, key);
410
+ if (signal) {
411
+ signal.shouldReset = true;
412
+ addToTransaction(signal);
413
+ }
414
+ }
415
+ export { Signals, addToTransaction, addTransactionCB, createArrayTags, createSignal, defineSignal, defineSubscription, entangleSignal, getSignal, memoTransact, notifySignal, peekSignal, subscribe, subscribed, transact, untracked };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"-private.js","sources":["../src/-private.ts"],"sourcesContent":["import { tagForProperty } from '@ember/-internals/metal';\n// temporary so we can remove the glimmer and ember imports elsewhere\n// eslint-disable-next-line no-restricted-imports\nimport { dependentKeyCompat as compat } from '@ember/object/compat';\nimport { consumeTag, dirtyTag } from '@glimmer/validator';\n\nimport { DEPRECATE_COMPUTED_CHAINS } from '@warp-drive/build-config/deprecations';\nimport { DEBUG } from '@warp-drive/build-config/env';\nimport { getOrSetGlobal, peekTransient, setTransient } from '@warp-drive/core-types/-private';\n\n/**\n * This package provides primitives that allow powerful low-level\n * adjustments to change tracking notification behaviors.\n *\n * Typically you want to use these primitives when you want to divorce\n * property accesses on EmberData provided objects from the current\n * tracking context. Typically this sort of thing occurs when serializing\n * tracked data to send in a request: the data itself is often ancillary\n * to the thing which triggered the request in the first place and you\n * would not want to re-trigger the request for any update to the data.\n *\n * @module @ember-data/tracking\n * @main @ember-data/tracking\n */\ntype OpaqueFn = (...args: unknown[]) => unknown;\ntype Tag = { ref: null; t: boolean };\ntype Transaction = {\n cbs: Set<OpaqueFn>;\n props: Set<Tag | Signal>;\n sub: Set<Tag | Signal>;\n parent: Transaction | null;\n};\n\nfunction createTransaction() {\n const transaction: Transaction = {\n cbs: new Set(),\n props: new Set(),\n sub: new Set(),\n parent: null,\n };\n const TRANSACTION = peekTransient<Transaction>('TRANSACTION');\n\n if (TRANSACTION) {\n transaction.parent = TRANSACTION;\n }\n setTransient('TRANSACTION', transaction);\n}\n\nfunction maybeConsume(tag: ReturnType<typeof tagForProperty> | null): void {\n if (tag) {\n consumeTag(tag);\n }\n}\n\nfunction maybeDirty(tag: ReturnType<typeof tagForProperty> | null): void {\n if (tag) {\n // @ts-expect-error - we are using Ember's Tag not Glimmer's\n dirtyTag(tag);\n }\n}\n\n/**\n * If there is a current transaction, ensures that the relevant tag (and any\n * array computed chains symbols, if applicable) will be consumed during the\n * transaction.\n *\n * If there is no current transaction, will consume the tag(s) immediately.\n *\n * @internal\n * @param obj\n */\nexport function subscribe(obj: Tag | Signal): void {\n const TRANSACTION = peekTransient<Transaction | null>('TRANSACTION');\n\n if (TRANSACTION) {\n TRANSACTION.sub.add(obj);\n } else if ('tag' in obj) {\n if (DEPRECATE_COMPUTED_CHAINS) {\n maybeConsume(obj['[]']);\n maybeConsume(obj['@length']);\n }\n consumeTag(obj.tag);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n obj.ref;\n }\n}\n\nfunction updateRef(obj: Tag | Signal): void {\n if (DEBUG) {\n try {\n if ('tag' in obj) {\n if (DEPRECATE_COMPUTED_CHAINS) {\n maybeDirty(obj['[]']);\n maybeDirty(obj['@length']);\n }\n // @ts-expect-error - we are using Ember's Tag not Glimmer's\n dirtyTag(obj.tag);\n } else {\n obj.ref = null;\n }\n } catch (e: unknown) {\n if (e instanceof Error) {\n if (e.message.includes('You attempted to update `undefined`')) {\n // @ts-expect-error\n const key = `<${obj._debug_base}>.${obj.key}`;\n e.message = e.message.replace('You attempted to update `undefined`', `You attempted to update ${key}`);\n e.stack = e.stack?.replace('You attempted to update `undefined`', `You attempted to update ${key}`);\n\n const lines = e.stack?.split(`\\n`);\n const finalLines: string[] = [];\n let lastFile: string | null = null;\n\n lines?.forEach((line) => {\n if (line.trim().startsWith('at ')) {\n // get the last string in the line which contains the code source location\n const location = line.split(' ').at(-1)!;\n // remove the line and char offset info\n\n if (location.includes(':')) {\n const parts = location.split(':');\n parts.pop();\n parts.pop();\n const file = parts.join(':');\n if (file !== lastFile) {\n lastFile = file;\n finalLines.push('');\n }\n }\n finalLines.push(line);\n }\n });\n\n const splitstr = '`undefined` was first used:';\n const parts = e.message.split(splitstr);\n parts.splice(1, 0, `Original Stack\\n=============\\n${finalLines.join(`\\n`)}\\n\\n\\`${key}\\` was first used:`);\n\n e.message = parts.join('');\n }\n }\n throw e;\n }\n } else {\n if ('tag' in obj) {\n if (DEPRECATE_COMPUTED_CHAINS) {\n maybeDirty(obj['[]']);\n maybeDirty(obj['@length']);\n }\n // @ts-expect-error - we are using Ember's Tag not Glimmer's\n dirtyTag(obj.tag);\n } else {\n obj.ref = null;\n }\n }\n}\n\nfunction flushTransaction() {\n const transaction = peekTransient<Transaction>('TRANSACTION')!;\n setTransient('TRANSACTION', transaction.parent);\n transaction.cbs.forEach((cb) => {\n cb();\n });\n transaction.props.forEach((obj) => {\n // mark this mutation as part of a transaction\n obj.t = true;\n updateRef(obj);\n });\n transaction.sub.forEach((obj) => {\n if ('tag' in obj) {\n if (DEPRECATE_COMPUTED_CHAINS) {\n maybeConsume(obj['[]']);\n maybeConsume(obj['@length']);\n }\n consumeTag(obj.tag);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n obj.ref;\n }\n });\n}\nasync function untrack() {\n const transaction = peekTransient<Transaction>('TRANSACTION')!;\n setTransient('TRANSACTION', transaction.parent);\n\n // defer writes\n await Promise.resolve();\n transaction.cbs.forEach((cb) => {\n cb();\n });\n transaction.props.forEach((obj) => {\n // mark this mutation as part of a transaction\n obj.t = true;\n updateRef(obj);\n });\n}\n\nexport function addToTransaction(obj: Tag | Signal): void {\n const transaction = peekTransient<Transaction>('TRANSACTION');\n\n if (transaction) {\n transaction.props.add(obj);\n } else {\n updateRef(obj);\n }\n}\nexport function addTransactionCB(method: OpaqueFn): void {\n const transaction = peekTransient<Transaction>('TRANSACTION');\n\n if (transaction) {\n transaction.cbs.add(method);\n } else {\n method();\n }\n}\n\n/**\n * Run `method` without subscribing to any tracked properties\n * controlled by EmberData.\n *\n * This should rarely be used except by libraries that really\n * know what they are doing. It is most useful for wrapping\n * certain kinds of fetch/query logic from within a `Resource`\n * `hook` or other similar pattern.\n *\n * @function untracked\n * @public\n * @static\n * @for @ember-data/tracking\n * @param method\n * @return result of invoking method\n */\nexport function untracked<T extends OpaqueFn>(method: T): ReturnType<T> {\n createTransaction();\n const ret = method();\n void untrack();\n return ret as ReturnType<T>;\n}\n\n/**\n * Run the method, subscribing to any tracked properties\n * managed by EmberData that were accessed or written during\n * the method's execution as per-normal but while allowing\n * interleaving of reads and writes.\n *\n * This is useful when for instance you want to perform\n * a mutation based on existing state that must be read first.\n *\n * @function transact\n * @public\n * @static\n * @for @ember-data/tracking\n * @param method\n * @return result of invoking method\n */\nexport function transact<T extends OpaqueFn>(method: T): ReturnType<T> {\n createTransaction();\n const ret = method();\n flushTransaction();\n return ret as ReturnType<T>;\n}\n\n/**\n * A helpful utility for creating a new function that\n * always runs in a transaction. E.G. this \"memoizes\"\n * calling `transact(fn)`, currying args as necessary.\n *\n * @method memoTransact\n * @public\n * @static\n * @for @ember-data/tracking\n * @param method\n * @return a function that will invoke method in a transaction with any provided args and return its result\n */\nexport function memoTransact<T extends OpaqueFn>(method: T): (...args: unknown[]) => ReturnType<T> {\n return function (...args: unknown[]) {\n createTransaction();\n const ret = method(...args);\n flushTransaction();\n return ret as ReturnType<T>;\n };\n}\n\nexport const Signals = getOrSetGlobal('Signals', Symbol('Signals'));\n\n/**\n * use to add a signal property to the prototype of something.\n *\n * First arg is the thing to define on\n * Second arg is the property name\n * Third agg is the initial value of the property if any.\n *\n * for instance\n *\n * ```ts\n * class Model {}\n * defineSignal(Model.prototype, 'isLoading', false);\n * ```\n *\n * This is sort of like using a stage-3 decorator but works today\n * while we are still on legacy decorators.\n *\n * e.g. it is equivalent to\n *\n * ```ts\n * class Model {\n * @signal accessor isLoading = false;\n * }\n * ```\n *\n * @internal\n */\nexport function defineSignal<T extends object>(obj: T, key: string, v?: unknown) {\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: false,\n get(this: T & { [Signals]: Map<string, Signal> }) {\n const signals = (this[Signals] = this[Signals] || new Map());\n const existing = signals.has(key);\n const _signal = entangleSignal(signals, this, key);\n if (!existing && v !== undefined) {\n _signal.lastValue = v;\n }\n return _signal.lastValue;\n },\n set(this: T & { [Signals]: Map<string, Signal> }, value: unknown) {\n const signals = (this[Signals] = this[Signals] || new Map());\n let _signal = signals.get(key);\n if (!_signal) {\n _signal = createSignal(this, key);\n signals.set(key, _signal);\n }\n if (_signal.lastValue !== value) {\n _signal.lastValue = value;\n addToTransaction(_signal);\n }\n },\n });\n}\n\nexport function defineSubscription<T extends object>(obj: T, key: string, desc: PropertyDescriptor) {\n const options = Object.assign(\n { enumerable: true, configurable: false },\n subscribed(obj, key as keyof T & string, desc)\n );\n Object.defineProperty(obj, key, options);\n}\n\nexport interface Signal {\n /**\n * Key on the associated object\n * @internal\n */\n key: string;\n _debug_base?: string;\n\n /**\n * Whether this signal is part of an active transaction.\n * @internal\n */\n t: boolean;\n\n /**\n * Whether to \"bust\" the lastValue cache\n * @internal\n */\n shouldReset: boolean;\n\n /**\n * The reason this signal is dirty\n *\n * @internal\n */\n reason: string | null;\n\n /**\n * The framework specific \"signal\" e.g. glimmer \"tracked\"\n * or starbeam \"cell\" to consume/invalidate when appropriate.\n *\n * @internal\n */\n tag: ReturnType<typeof tagForProperty>;\n\n /**\n * In classic ember, arrays must entangle a `[]` symbol\n * in addition to any other tag in order for array chains to work.\n *\n * Note, this symbol MUST be the one that ember itself generates\n *\n * @internal\n */\n '[]': ReturnType<typeof tagForProperty> | null;\n /**\n * In classic ember, arrays must entangle a `@length` symbol\n * in addition to any other tag in order for array chains to work.\n *\n * Note, this symbol MUST be the one that ember itself generates\n *\n * @internal\n */\n '@length': ReturnType<typeof tagForProperty> | null;\n\n /**\n * The lastValue computed for this signal when\n * a signal is also used for storage.\n * @internal\n */\n lastValue: unknown;\n}\n\nexport function createArrayTags<T extends object>(obj: T, signal: Signal) {\n if (DEPRECATE_COMPUTED_CHAINS) {\n signal['[]'] = tagForProperty(obj, '[]');\n signal['@length'] = tagForProperty(obj, 'length');\n }\n}\n\n/**\n * Create a signal for the key/object pairing.\n *\n * @internal\n * @param obj Object we're creating the signal on\n * @param key Key to create the signal for\n * @return the signal\n */\nexport function createSignal<T extends object>(obj: T, key: string): Signal {\n const _signal: Signal = {\n key,\n tag: tagForProperty(obj, key),\n reason: null,\n\n t: false,\n shouldReset: false,\n '[]': null,\n '@length': null,\n lastValue: undefined,\n };\n\n if (DEBUG) {\n function tryGet<T1 = string>(prop: string): T1 | undefined {\n try {\n return obj[prop as keyof typeof obj] as unknown as T1;\n } catch {\n return;\n }\n }\n const modelName =\n tryGet('$type') ?? tryGet('modelName') ?? tryGet<{ modelName?: string }>('constructor')?.modelName ?? '';\n\n const className = obj.constructor?.name ?? obj.toString?.() ?? 'unknown';\n _signal._debug_base = `${className}${modelName && !className.startsWith('SchemaRecord') ? `:${modelName}` : ''}`;\n }\n\n return _signal;\n}\n\n/**\n * Create a signal for the key/object pairing and subscribes to the signal.\n *\n * Use when you need to ensure a signal exists and is subscribed to.\n *\n * @internal\n * @param signals Map of signals\n * @param obj Object we're creating the signal on\n * @param key Key to create the signal for\n * @return the signal\n */\nexport function entangleSignal<T extends object>(signals: Map<string, Signal>, obj: T, key: string): Signal {\n let _signal = signals.get(key);\n if (!_signal) {\n _signal = createSignal(obj, key);\n signals.set(key, _signal);\n }\n subscribe(_signal);\n return _signal;\n}\n\ninterface Signaler {\n [Signals]: Map<string, Signal>;\n}\n\nexport function getSignal<T extends object>(obj: T, key: string, initialState: boolean): Signal {\n let signals = (obj as Signaler)[Signals];\n\n if (!signals) {\n signals = new Map();\n (obj as Signaler)[Signals] = signals;\n }\n\n let _signal = signals.get(key);\n if (!_signal) {\n _signal = createSignal(obj, key);\n _signal.shouldReset = initialState;\n signals.set(key, _signal);\n }\n return _signal;\n}\n\nexport function peekSignal<T extends object>(obj: T, key: string): Signal | undefined {\n const signals = (obj as Signaler)[Signals];\n if (signals) {\n return signals.get(key);\n }\n}\n\nexport function subscribed<T extends object, K extends keyof T & string>(_target: T, key: K, desc: PropertyDescriptor) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const getter = desc.get as (this: T) => unknown;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const setter = desc.set as (this: T, v: unknown) => void;\n\n desc.get = function (this: T) {\n const signal = getSignal(this, key, true);\n subscribe(signal);\n\n if (signal.shouldReset) {\n signal.shouldReset = false;\n signal.lastValue = getter.call(this);\n }\n\n return signal.lastValue;\n };\n desc.set = function (this: T, v: unknown) {\n getSignal(this, key, true); // ensure signal is setup in case we want to use it.\n // probably notify here but not yet.\n setter.call(this, v);\n };\n compat(desc);\n return desc;\n}\nexport { compat };\n\nexport function notifySignal<T extends object, K extends keyof T & string>(obj: T, key: K) {\n const signal = peekSignal(obj, key);\n if (signal) {\n signal.shouldReset = true;\n addToTransaction(signal);\n }\n}\n"],"names":["createTransaction","transaction","cbs","Set","props","sub","parent","TRANSACTION","peekTransient","setTransient","maybeConsume","tag","consumeTag","maybeDirty","dirtyTag","subscribe","obj","add","macroCondition","getGlobalConfig","WarpDrive","deprecations","DEPRECATE_COMPUTED_CHAINS","ref","updateRef","env","DEBUG","e","Error","message","includes","key","_debug_base","replace","stack","lines","split","finalLines","lastFile","forEach","line","trim","startsWith","location","at","parts","pop","file","join","push","splitstr","splice","flushTransaction","cb","t","untrack","Promise","resolve","addToTransaction","addTransactionCB","method","untracked","ret","transact","memoTransact","args","Signals","getOrSetGlobal","Symbol","defineSignal","v","Object","defineProperty","enumerable","configurable","get","signals","Map","existing","has","_signal","entangleSignal","undefined","lastValue","set","value","createSignal","defineSubscription","desc","options","assign","subscribed","createArrayTags","signal","tagForProperty","reason","shouldReset","tryGet","prop","modelName","className","constructor","name","toString","getSignal","initialState","peekSignal","_target","getter","setter","call","compat","notifySignal"],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,31 @@
1
+ import { createCache, getValue } from '@glimmer/tracking/primitives/cache';
2
+ export { createCache, getValue } from '@glimmer/tracking/primitives/cache';
3
+ import { macroCondition, getGlobalConfig } from '@embroider/macros';
4
+ export { memoTransact, notifySignal, transact, untracked } from "./-private.js";
5
+ export { dependentKeyCompat as compat } from '@ember/object/compat';
6
+ function cached(target, key, descriptor) {
7
+ // Error on `@cached()`, `@cached(...args)`, and `@cached propName = value;`
8
+ macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
9
+ if (!test) {
10
+ throw new Error('You attempted to use @cached(), which is not necessary nor supported. Remove the parentheses and you will be good to go!');
11
+ }
12
+ })(target !== undefined) : {};
13
+ macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
14
+ if (!test) {
15
+ throw new Error(`You attempted to use @cached on with ${arguments.length > 1 ? 'arguments' : 'an argument'} ( @cached(${Array.from(arguments).map(d => `'${d}'`).join(', ')}), which is not supported. Dependencies are automatically tracked, so you can just use ${'`@cached`'}`);
16
+ }
17
+ })(typeof target === 'object' && typeof key === 'string' && typeof descriptor === 'object' && arguments.length === 3) : {};
18
+ macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
19
+ if (!test) {
20
+ throw new Error(`The @cached decorator must be applied to getters. '${key}' is not a getter.`);
21
+ }
22
+ })(typeof descriptor.get === 'function') : {};
23
+ const caches = new WeakMap();
24
+ // eslint-disable-next-line @typescript-eslint/unbound-method
25
+ const getter = descriptor.get;
26
+ descriptor.get = function () {
27
+ if (!caches.has(this)) caches.set(this, createCache(getter.bind(this)));
28
+ return getValue(caches.get(this));
29
+ };
30
+ }
31
+ export { cached };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { createCache, getValue } from '@glimmer/tracking/primitives/cache';\n\nimport { assert } from '@warp-drive/build-config/macros';\n\nexport { transact, memoTransact, untracked, compat, notifySignal } from './-private';\n\nexport function cached<T extends object, K extends keyof T & string>(\n target: T,\n key: K,\n descriptor: PropertyDescriptor\n) {\n // Error on `@cached()`, `@cached(...args)`, and `@cached propName = value;`\n assert(\n 'You attempted to use @cached(), which is not necessary nor supported. Remove the parentheses and you will be good to go!',\n target !== undefined\n );\n assert(\n `You attempted to use @cached on with ${arguments.length > 1 ? 'arguments' : 'an argument'} ( @cached(${Array.from(\n arguments\n )\n .map((d) => `'${d}'`)\n .join(\n ', '\n )}), which is not supported. Dependencies are automatically tracked, so you can just use ${'`@cached`'}`,\n typeof target === 'object' && typeof key === 'string' && typeof descriptor === 'object' && arguments.length === 3\n );\n assert(\n `The @cached decorator must be applied to getters. '${key}' is not a getter.`,\n typeof descriptor.get === 'function'\n );\n\n const caches = new WeakMap<object, object>();\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const getter = descriptor.get;\n descriptor.get = function () {\n if (!caches.has(this)) caches.set(this, createCache(getter.bind(this)));\n return getValue<unknown>(caches.get(this) as Parameters<typeof getValue>[0]);\n };\n}\n\nexport { createCache, getValue };\n"],"names":["cached","target","key","descriptor","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","undefined","arguments","length","Array","from","map","d","join","get","caches","WeakMap","getter","has","set","createCache","bind","getValue"],"mappings":";;;;;;AAMO,SAASA,MAAMA,CACpBC,MAAS,EACTC,GAAM,EACNC,UAA8B,EAC9B;AACA;EACAC,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,0HAA0H,CAAA;AAAA;GAC1HT,EAAAA,MAAM,KAAKU,SAAS,CAAA,GAAA,EAAA;EAEtBP,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CACE,CAAwCE,qCAAAA,EAAAA,SAAS,CAACC,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,aAAa,CAAcC,WAAAA,EAAAA,KAAK,CAACC,IAAI,CAChHH,SACF,CAAC,CACEI,GAAG,CAAEC,CAAC,IAAK,IAAIA,CAAC,CAAA,CAAA,CAAG,CAAC,CACpBC,IAAI,CACH,IACF,CAAC,CAAA,uFAAA,EAA0F,WAAW,CAAE,CAAA,CAAA;AAAA;AAAA,GAAA,EAC1G,OAAOjB,MAAM,KAAK,QAAQ,IAAI,OAAOC,GAAG,KAAK,QAAQ,IAAI,OAAOC,UAAU,KAAK,QAAQ,IAAIS,SAAS,CAACC,MAAM,KAAK,CAAC,CAAA,GAAA,EAAA;EAEnHT,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CACE,CAAsDR,mDAAAA,EAAAA,GAAG,CAAoB,kBAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAC7E,OAAOC,UAAU,CAACgB,GAAG,KAAK,UAAU,CAAA,GAAA,EAAA;AAGtC,EAAA,MAAMC,MAAM,GAAG,IAAIC,OAAO,EAAkB;AAC5C;AACA,EAAA,MAAMC,MAAM,GAAGnB,UAAU,CAACgB,GAAG;EAC7BhB,UAAU,CAACgB,GAAG,GAAG,YAAY;IAC3B,IAAI,CAACC,MAAM,CAACG,GAAG,CAAC,IAAI,CAAC,EAAEH,MAAM,CAACI,GAAG,CAAC,IAAI,EAAEC,WAAW,CAACH,MAAM,CAACI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,OAAOC,QAAQ,CAAUP,MAAM,CAACD,GAAG,CAAC,IAAI,CAAmC,CAAC;GAC7E;AACH;;;;"}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
3
+ <path fill="#0969da" d="m1096.3 402.82c-53.148-53.008-117.12-79.516-191.93-79.516-67.488 0-126.55 21.938-177.16 65.805-50.617 43.871-80.988 98.285-91.113 163.25l53.57 4.2188c14.625 0.28125 25.449 6.75 32.48 19.406h18.984c11.809 0 17.715 5.7617 17.715 17.293s-5.9062 17.293-17.715 17.293h-17.297c-6.75 14.344-18.137 21.797-34.168 22.359l-53.57 4.6406c10.125 64.68 40.496 118.95 91.113 162.82 50.617 43.871 109.68 65.805 177.16 65.805 74.805 0 138.78-26.574 191.93-79.723 53.152-53.148 79.727-116.98 79.727-191.51 0-75.086-26.574-139.13-79.727-192.14zm-79.422 185.27c0 2.9531 2.3906 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477 0-2.9492-2.3945-5.3438-5.3477-5.3438-2.9531 0-5.3438 2.3945-5.3438 5.3438zm-104.54-111.07c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm117.01 123.55c0 2.9492 2.3906 5.3438 5.3438 5.3438 2.9531 0 5.3477-2.3945 5.3477-5.3438 0-2.9531-2.3945-5.3477-5.3477-5.3477-2.9531 0-5.3438 2.3945-5.3438 5.3477zm-104.54 111.66c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm-848-318.48c14.062-2.5312 30.934-4.5 50.621-5.9062l-46.402-0.84375zm499.86 169.15c-8.7188-2.25-18.141-8.7188-28.266-19.402l-101.23-103.35h-111.36l173.79 126.12v4.2188c21.652 6.1836 44.008 3.6562 67.07-7.5938zm47.664-148.48c-0.84375 3.3711-2.8125 6.6055-5.9062 9.6992h-5.0625l-6.3242-5.0625h-79.305v-4.6367zm-5.9062-16.031c3.0938 3.0938 5.0625 6.4688 5.9062 10.125h-96.598v-4.6406h79.305l6.3242-5.4844zm-541.62 397.78 4.2188 6.7461 46.402-0.84375c-22.5-2.2461-39.371-4.2148-50.621-5.9023zm499.86-169.15c-23.062-11.531-45.418-14.062-67.07-7.5938v4.2188l-173.79 126.12h111.36l101.23-103.77c10.406-10.684 19.828-17.012 28.266-18.98zm47.664 148.48h-96.598v-4.6406h79.305l6.3242-5.4805h5.0625c3.0938 3.6523 5.0625 7.0273 5.9062 10.121zm-5.9062 15.609h-5.0625l-6.3242-5.0625h-79.305v-4.6406h96.598c-0.84375 3.0938-2.8125 6.3281-5.9062 9.7031zm-102.5 9.6992c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c24.746 0 37.121-8.4336 37.121-25.309 0-8.4375-4.6406-14.691-13.922-18.77-9.2773-4.0781-17.012-6.1172-23.199-6.1172h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875h-333.66c-5.0625 0-28.543 1.6172-70.445 4.8516-41.902 3.2344-62.852 7.3828-62.852 12.441v11.812c0 4.5 20.949 8.5078 62.852 12.023 41.902 3.5156 65.383 5.2695 70.445 5.2695zm125.28-207.54h-42.602c-3.375 1.125-3.375 2.25 0 3.375h42.602zm-43.445 8.4375h-5.4844v-13.5h5.4844c17.152-6.1875 33.605-9.9844 49.352-11.391l4.6406-25.309 4.6406 0.42188c0.5625-4.2188 1.6875-10.262 3.375-18.137-28.684-0.5625-64.398 1.6875-107.14 6.75 3.6562 4.2148 7.4531 7.8711 11.391 10.965 4.7812 3.375 9.4219 5.625 13.918 6.75l12.656 2.9531-11.812 5.9062c-13.496 6.75-30.23 10.121-50.195 10.121-5.0625 0-8.5781-0.14062-10.547-0.42188-4.2188-0.5625-7.5898-1.1211-10.121-1.6836l-3.375-1.2656v-5.4844l-24.043-17.297c-41.34 5.625-69.32 8.5781-83.945 8.8594-31.496 0.28125-47.242 11.953-47.242 35.012 0 22.215 15.746 33.887 47.242 35.012 18.844 0.28125 46.824 3.2344 83.945 8.8594l24.043-17.297v-5.4844l3.375-1.2656c2.5312-0.84375 5.9023-1.4062 10.121-1.6875 1.9688-0.28125 5.4844-0.42187 10.547-0.42187 19.965 0 36.699 3.375 50.195 10.125l11.812 5.4844-12.656 3.375c-4.4961 0.84375-9.1367 3.0938-13.918 6.75-3.6562 2.2461-7.4531 5.7617-11.391 10.543 40.777 5.0625 76.492 7.4531 107.14 7.1719-1.6875-7.3125-2.8125-13.359-3.375-18.137h-4.6406l-4.6406-24.891c-17.434-2.25-33.887-6.043-49.352-11.387zm48.508-20.25c-12.652 1.6875-23.762 3.9375-33.324 6.75h29.105l3.7969-4.2188zm-4.2188 20.25h-29.105c9.5625 2.5312 20.672 4.7812 33.324 6.7461l-0.42188-2.5273zm136.67-8.4375c0-8.4375-4.2188-12.656-12.652-12.656h-21.516c-6.4688-12.652-16.59-18.98-30.371-18.98l-58.211-5.0625-5.9062 29.527-4.2188 5.0625v7.5938l4.2188 5.0625 5.9062 29.105 58.211-5.0625c15.469 0 26.012-7.3125 31.637-21.934h20.25c8.4336 0 12.652-4.2188 12.652-12.656zm-46.82 1.6875c0-11.531-5.9062-17.297-17.719-17.297-11.527 0-17.293 5.7656-17.293 17.297 0 11.812 5.7656 17.715 17.293 17.715 11.812 0 17.719-5.9023 17.719-17.715zm4.6406 0c0 14.902-7.4531 22.355-22.359 22.355-14.902 0-22.355-7.4531-22.355-22.355 0-14.906 7.4531-22.355 22.355-22.355 14.906 0 22.359 7.4492 22.359 22.355zm-13.922 0c0-5.625-2.8125-8.4375-8.4375-8.4375-5.3438 0-8.0156 2.8125-8.0156 8.4375s2.6719 8.4375 8.0156 8.4375c5.625 0 8.4375-2.8125 8.4375-8.4375zm4.6406 0c0 8.7188-4.3594 13.078-13.078 13.078-8.4375 0-12.652-4.3594-12.652-13.078s4.2148-13.078 12.652-13.078c8.7188 0 13.078 4.3594 13.078 13.078zm-43.871-2.1094v4.2188h-35.012v-4.2188zm258.58 2.1094c-0.5625-8.4375-4.7812-12.656-12.656-12.656-8.4336 0-12.652 4.2188-12.652 12.656s4.2188 12.656 12.652 12.656c8.4375 0 12.656-4.2188 12.656-12.656zm4.6406 0c0 11.531-5.7656 17.293-17.297 17.293-11.527 0-17.293-5.7617-17.293-17.293s5.7656-17.297 17.293-17.297c11.531 0 17.297 5.7656 17.297 17.297zm32.48 0c0-13.781-4.9219-25.59-14.766-35.434-9.5586-9.5625-21.23-14.344-35.012-14.344-15.184 0-31.777 5.7656-49.773 17.297-18.559 11.531-27.84 22.355-27.84 32.48 0 9.8438 9.2812 20.668 27.84 32.48 17.996 11.531 34.59 17.293 49.773 17.293 13.781 0 25.453-4.918 35.012-14.762 9.8438-9.5625 14.766-21.234 14.766-35.012zm5.0625 0c0 14.902-5.3438 27.699-16.031 38.387-10.684 10.684-23.621 16.027-38.809 16.027-15.746 0-33.18-6.0469-52.305-18.137-20.246-12.656-30.371-24.746-30.371-36.277s10.125-23.762 30.371-36.699c19.125-12.094 36.559-18.137 52.305-18.137 14.625 0 27.562 5.3398 38.809 16.027 10.688 10.969 16.031 23.902 16.031 38.809zm-54.418-29.105c-3.9336 0-10.262 1.6875-18.98 5.0625-7.875 3.9375-11.812 6.4648-11.812 7.5898v32.48c0 3.0938 3.9375 5.625 11.812 7.5938 7.875 3.375 14.203 5.0625 18.98 5.0625 19.406 0 29.391-9.2812 29.953-27.84 0-19.688-9.9844-29.668-29.953-29.949zm34.59 29.105v0.84375c0 21.371-11.527 32.34-34.59 32.902-4.4961 0-11.527-1.8281-21.09-5.4844-7.0312-3.9375-10.969-6.3281-11.809-7.1719-1.6875-1.4062-2.5312-3.0938-2.5312-5.0625v-32.48c0-1.4062 0.70312-2.9492 2.1094-4.6367 3.0898-2.8125 7.168-5.2031 12.23-7.1719 9-3.6562 16.031-5.4844 21.09-5.4844 22.5 0.28125 34.027 11.531 34.59 33.746zm-448.4-206.27h-333.66c-5.0625 0-28.543 1.6875-70.445 5.0625-41.902 3.375-62.852 7.5938-62.852 12.656v11.387c0 4.7812 20.949 8.8594 62.852 12.234 41.902 3.375 65.383 5.0625 70.445 5.0625h333.66c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c5.3438 0 12.867-2.25 22.566-6.75 9.7031-4.5 14.555-10.547 14.555-18.137 0.28125-16.875-12.094-25.312-37.121-25.312h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875z" fill-rule="evenodd"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
3
+ <path fill="#FFC474" d="m1096.3 402.82c-53.148-53.008-117.12-79.516-191.93-79.516-67.488 0-126.55 21.938-177.16 65.805-50.617 43.871-80.988 98.285-91.113 163.25l53.57 4.2188c14.625 0.28125 25.449 6.75 32.48 19.406h18.984c11.809 0 17.715 5.7617 17.715 17.293s-5.9062 17.293-17.715 17.293h-17.297c-6.75 14.344-18.137 21.797-34.168 22.359l-53.57 4.6406c10.125 64.68 40.496 118.95 91.113 162.82 50.617 43.871 109.68 65.805 177.16 65.805 74.805 0 138.78-26.574 191.93-79.723 53.152-53.148 79.727-116.98 79.727-191.51 0-75.086-26.574-139.13-79.727-192.14zm-79.422 185.27c0 2.9531 2.3906 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477 0-2.9492-2.3945-5.3438-5.3477-5.3438-2.9531 0-5.3438 2.3945-5.3438 5.3438zm-104.54-111.07c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm117.01 123.55c0 2.9492 2.3906 5.3438 5.3438 5.3438 2.9531 0 5.3477-2.3945 5.3477-5.3438 0-2.9531-2.3945-5.3477-5.3477-5.3477-2.9531 0-5.3438 2.3945-5.3438 5.3477zm-104.54 111.66c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm-848-318.48c14.062-2.5312 30.934-4.5 50.621-5.9062l-46.402-0.84375zm499.86 169.15c-8.7188-2.25-18.141-8.7188-28.266-19.402l-101.23-103.35h-111.36l173.79 126.12v4.2188c21.652 6.1836 44.008 3.6562 67.07-7.5938zm47.664-148.48c-0.84375 3.3711-2.8125 6.6055-5.9062 9.6992h-5.0625l-6.3242-5.0625h-79.305v-4.6367zm-5.9062-16.031c3.0938 3.0938 5.0625 6.4688 5.9062 10.125h-96.598v-4.6406h79.305l6.3242-5.4844zm-541.62 397.78 4.2188 6.7461 46.402-0.84375c-22.5-2.2461-39.371-4.2148-50.621-5.9023zm499.86-169.15c-23.062-11.531-45.418-14.062-67.07-7.5938v4.2188l-173.79 126.12h111.36l101.23-103.77c10.406-10.684 19.828-17.012 28.266-18.98zm47.664 148.48h-96.598v-4.6406h79.305l6.3242-5.4805h5.0625c3.0938 3.6523 5.0625 7.0273 5.9062 10.121zm-5.9062 15.609h-5.0625l-6.3242-5.0625h-79.305v-4.6406h96.598c-0.84375 3.0938-2.8125 6.3281-5.9062 9.7031zm-102.5 9.6992c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c24.746 0 37.121-8.4336 37.121-25.309 0-8.4375-4.6406-14.691-13.922-18.77-9.2773-4.0781-17.012-6.1172-23.199-6.1172h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875h-333.66c-5.0625 0-28.543 1.6172-70.445 4.8516-41.902 3.2344-62.852 7.3828-62.852 12.441v11.812c0 4.5 20.949 8.5078 62.852 12.023 41.902 3.5156 65.383 5.2695 70.445 5.2695zm125.28-207.54h-42.602c-3.375 1.125-3.375 2.25 0 3.375h42.602zm-43.445 8.4375h-5.4844v-13.5h5.4844c17.152-6.1875 33.605-9.9844 49.352-11.391l4.6406-25.309 4.6406 0.42188c0.5625-4.2188 1.6875-10.262 3.375-18.137-28.684-0.5625-64.398 1.6875-107.14 6.75 3.6562 4.2148 7.4531 7.8711 11.391 10.965 4.7812 3.375 9.4219 5.625 13.918 6.75l12.656 2.9531-11.812 5.9062c-13.496 6.75-30.23 10.121-50.195 10.121-5.0625 0-8.5781-0.14062-10.547-0.42188-4.2188-0.5625-7.5898-1.1211-10.121-1.6836l-3.375-1.2656v-5.4844l-24.043-17.297c-41.34 5.625-69.32 8.5781-83.945 8.8594-31.496 0.28125-47.242 11.953-47.242 35.012 0 22.215 15.746 33.887 47.242 35.012 18.844 0.28125 46.824 3.2344 83.945 8.8594l24.043-17.297v-5.4844l3.375-1.2656c2.5312-0.84375 5.9023-1.4062 10.121-1.6875 1.9688-0.28125 5.4844-0.42187 10.547-0.42187 19.965 0 36.699 3.375 50.195 10.125l11.812 5.4844-12.656 3.375c-4.4961 0.84375-9.1367 3.0938-13.918 6.75-3.6562 2.2461-7.4531 5.7617-11.391 10.543 40.777 5.0625 76.492 7.4531 107.14 7.1719-1.6875-7.3125-2.8125-13.359-3.375-18.137h-4.6406l-4.6406-24.891c-17.434-2.25-33.887-6.043-49.352-11.387zm48.508-20.25c-12.652 1.6875-23.762 3.9375-33.324 6.75h29.105l3.7969-4.2188zm-4.2188 20.25h-29.105c9.5625 2.5312 20.672 4.7812 33.324 6.7461l-0.42188-2.5273zm136.67-8.4375c0-8.4375-4.2188-12.656-12.652-12.656h-21.516c-6.4688-12.652-16.59-18.98-30.371-18.98l-58.211-5.0625-5.9062 29.527-4.2188 5.0625v7.5938l4.2188 5.0625 5.9062 29.105 58.211-5.0625c15.469 0 26.012-7.3125 31.637-21.934h20.25c8.4336 0 12.652-4.2188 12.652-12.656zm-46.82 1.6875c0-11.531-5.9062-17.297-17.719-17.297-11.527 0-17.293 5.7656-17.293 17.297 0 11.812 5.7656 17.715 17.293 17.715 11.812 0 17.719-5.9023 17.719-17.715zm4.6406 0c0 14.902-7.4531 22.355-22.359 22.355-14.902 0-22.355-7.4531-22.355-22.355 0-14.906 7.4531-22.355 22.355-22.355 14.906 0 22.359 7.4492 22.359 22.355zm-13.922 0c0-5.625-2.8125-8.4375-8.4375-8.4375-5.3438 0-8.0156 2.8125-8.0156 8.4375s2.6719 8.4375 8.0156 8.4375c5.625 0 8.4375-2.8125 8.4375-8.4375zm4.6406 0c0 8.7188-4.3594 13.078-13.078 13.078-8.4375 0-12.652-4.3594-12.652-13.078s4.2148-13.078 12.652-13.078c8.7188 0 13.078 4.3594 13.078 13.078zm-43.871-2.1094v4.2188h-35.012v-4.2188zm258.58 2.1094c-0.5625-8.4375-4.7812-12.656-12.656-12.656-8.4336 0-12.652 4.2188-12.652 12.656s4.2188 12.656 12.652 12.656c8.4375 0 12.656-4.2188 12.656-12.656zm4.6406 0c0 11.531-5.7656 17.293-17.297 17.293-11.527 0-17.293-5.7617-17.293-17.293s5.7656-17.297 17.293-17.297c11.531 0 17.297 5.7656 17.297 17.297zm32.48 0c0-13.781-4.9219-25.59-14.766-35.434-9.5586-9.5625-21.23-14.344-35.012-14.344-15.184 0-31.777 5.7656-49.773 17.297-18.559 11.531-27.84 22.355-27.84 32.48 0 9.8438 9.2812 20.668 27.84 32.48 17.996 11.531 34.59 17.293 49.773 17.293 13.781 0 25.453-4.918 35.012-14.762 9.8438-9.5625 14.766-21.234 14.766-35.012zm5.0625 0c0 14.902-5.3438 27.699-16.031 38.387-10.684 10.684-23.621 16.027-38.809 16.027-15.746 0-33.18-6.0469-52.305-18.137-20.246-12.656-30.371-24.746-30.371-36.277s10.125-23.762 30.371-36.699c19.125-12.094 36.559-18.137 52.305-18.137 14.625 0 27.562 5.3398 38.809 16.027 10.688 10.969 16.031 23.902 16.031 38.809zm-54.418-29.105c-3.9336 0-10.262 1.6875-18.98 5.0625-7.875 3.9375-11.812 6.4648-11.812 7.5898v32.48c0 3.0938 3.9375 5.625 11.812 7.5938 7.875 3.375 14.203 5.0625 18.98 5.0625 19.406 0 29.391-9.2812 29.953-27.84 0-19.688-9.9844-29.668-29.953-29.949zm34.59 29.105v0.84375c0 21.371-11.527 32.34-34.59 32.902-4.4961 0-11.527-1.8281-21.09-5.4844-7.0312-3.9375-10.969-6.3281-11.809-7.1719-1.6875-1.4062-2.5312-3.0938-2.5312-5.0625v-32.48c0-1.4062 0.70312-2.9492 2.1094-4.6367 3.0898-2.8125 7.168-5.2031 12.23-7.1719 9-3.6562 16.031-5.4844 21.09-5.4844 22.5 0.28125 34.027 11.531 34.59 33.746zm-448.4-206.27h-333.66c-5.0625 0-28.543 1.6875-70.445 5.0625-41.902 3.375-62.852 7.5938-62.852 12.656v11.387c0 4.7812 20.949 8.8594 62.852 12.234 41.902 3.375 65.383 5.0625 70.445 5.0625h333.66c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c5.3438 0 12.867-2.25 22.566-6.75 9.7031-4.5 14.555-10.547 14.555-18.137 0.28125-16.875-12.094-25.312-37.121-25.312h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875z" fill-rule="evenodd"/>
4
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><path d="M91.36 33.566q-6.645-6.623-15.997-6.625-8.439 0-14.761 5.485-6.329 5.484-7.594 13.605l4.465.352Q59.3 46.418 60.18 48h1.582q1.476 0 1.476 1.441 0 1.44-1.476 1.438H60.32q-.843 1.793-2.847 1.863l-4.465.387q1.266 8.085 7.594 13.57t14.761 5.485q9.352 0 15.996-6.645 6.645-6.646 6.645-15.957 0-9.389-6.645-16.012Zm-6.622 15.442a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-8.71-9.258c0 .246.199.45.445.45a.45.45 0 0 0 .445-.45.445.445 0 1 0-.89 0m-1.04 0c0 .246.2.45.446.45a.45.45 0 0 0 .445-.45.445.445 0 1 0-.89 0m9.75 10.297a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-8.71 9.305a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-1.04 0a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0M4.32 32.812q1.757-.315 4.22-.492l-3.868-.07ZM45.977 46.91q-1.09-.28-2.356-1.617l-8.437-8.613h-9.278l14.48 10.508v.351q2.708.774 5.59-.633Zm3.972-12.375q-.105.421-.492.809h-.422l-.527-.422h-6.61v-.387Zm-.492-1.336q.387.388.492.844H41.9v-.387h6.609l.527-.457ZM4.32 66.348l.352.562 3.867-.07q-2.812-.282-4.219-.492M45.977 52.25q-2.883-1.44-5.59-.633v.352L25.907 62.48h9.277l8.437-8.648q1.3-1.335 2.356-1.582m3.972 12.375H41.9v-.387h6.609l.527-.457h.422q.387.457.492.844m-.492 1.3h-.422l-.527-.421h-6.61v-.387h8.051q-.105.387-.492.809m-8.543.81q.457.175.95.175h5.413q3.094 0 3.094-2.11 0-1.052-1.16-1.562t-1.934-.511h-5.414q-.598 0-.949.14H13.11q-.633.001-5.87.406-5.24.404-5.239 1.036v.984q0 .561 5.238 1 5.239.44 5.871.441Zm10.441-17.297h-3.55q-.423.14 0 .28h3.55Zm-3.62.703h-.458v-1.125h.457q2.145-.773 4.114-.95l.386-2.109.387.035c.047-.351.14-.851.281-1.508q-3.585-.07-8.93.563.458.523.95.91.597.422 1.16.563l1.055.246-.985.492q-1.688.843-4.183.844-.633 0-.88-.036a10 10 0 0 1-.843-.14l-.281-.106v-.457l-2.004-1.441q-5.162.704-6.992.738-3.938.035-3.938 2.918 0 2.777 3.938 2.918 2.356.036 6.992.738l2.004-1.441v-.457l.281-.106q.316-.105.844-.14.246-.035.879-.035 2.496 0 4.183.843l.985.457-1.055.282q-.563.106-1.16.562-.457.281-.95.88 5.1.631 8.93.597-.21-.915-.28-1.512h-.388l-.386-2.074a20.7 20.7 0 0 1-4.114-.95m4.042-1.688q-1.581.21-2.777.563h2.426l.316-.352Zm-.351 1.688H49q1.196.316 2.777.562l-.035-.21Zm11.386-.703q0-1.055-1.05-1.055h-1.793q-.81-1.582-2.532-1.582l-4.851-.422-.492 2.46-.352.423v.633l.352.421.492 2.426 4.852-.422q1.933 0 2.636-1.828h1.688q1.05 0 1.05-1.054m-3.898.14q0-1.44-1.477-1.441-1.44 0-1.44 1.441 0 1.476 1.44 1.477 1.477 0 1.477-1.477m.387 0q0 1.863-1.864 1.863-1.863 0-1.863-1.863t1.864-1.863 1.863 1.863m-1.16 0q0-.703-.703-.703-.668 0-.668.703t.667.703q.704 0 .704-.703m.386 0q0 1.09-1.09 1.09-1.054 0-1.054-1.09t1.054-1.09q1.09 0 1.09 1.09m-3.656-.176v.352h-2.918v-.352Zm21.547.176q-.07-1.055-1.055-1.055-1.054 0-1.054 1.055t1.054 1.055 1.055-1.055m.387 0q0 1.442-1.442 1.442-1.44 0-1.441-1.442 0-1.44 1.441-1.441 1.442 0 1.442 1.441m2.707 0q0-1.723-1.23-2.953-1.196-1.195-2.919-1.195-1.898 0-4.148 1.441-2.32 1.441-2.32 2.707 0 1.23 2.32 2.707 2.25 1.442 4.148 1.442 1.723 0 2.918-1.23 1.23-1.196 1.23-2.919m.422 0q0 1.863-1.336 3.2-1.337 1.335-3.235 1.335-1.968 0-4.36-1.511-2.53-1.583-2.53-3.024 0-1.44 2.53-3.058c1.595-1.008 3.048-1.508 4.36-1.508 1.219 0 2.297.441 3.235 1.332q1.335 1.371 1.336 3.234m-4.536-2.426q-.492 0-1.582.422-.984.493-.984.633v2.707q0 .387.984.633.985.422 1.582.422 2.427 0 2.497-2.32 0-2.461-2.497-2.497m2.883 2.426v.07q0 2.673-2.883 2.743-.562 0-1.757-.457-.879-.493-.985-.598a.53.53 0 0 1-.21-.422v-2.707q0-.175.175-.387.387-.351 1.02-.597 1.125-.457 1.757-.457 2.813.034 2.883 2.812M40.914 32.391H13.11q-.633 0-5.87.422-5.24.42-5.239 1.054v.95q0 .597 5.238 1.019t5.871.422h27.805q.457.176.95.176h5.413q.667 0 1.88-.563t1.214-1.512q.035-2.109-3.094-2.109h-5.414q-.598 0-.949.14m0 0" style="stroke:none;fill-rule:evenodd;fill:#ffc474;fill-opacity:1"/></svg>
@@ -0,0 +1 @@
1
+ data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48cGF0aCBkPSJNOTEuMzYgMzMuNTY2cS02LjY0NS02LjYyMy0xNS45OTctNi42MjUtOC40MzkgMC0xNC43NjEgNS40ODUtNi4zMjkgNS40ODQtNy41OTQgMTMuNjA1bDQuNDY1LjM1MlE1OS4zIDQ2LjQxOCA2MC4xOCA0OGgxLjU4MnExLjQ3NiAwIDEuNDc2IDEuNDQxIDAgMS40NC0xLjQ3NiAxLjQzOEg2MC4zMnEtLjg0MyAxLjc5My0yLjg0NyAxLjg2M2wtNC40NjUuMzg3cTEuMjY2IDguMDg1IDcuNTk0IDEzLjU3dDE0Ljc2MSA1LjQ4NXE5LjM1MiAwIDE1Ljk5Ni02LjY0NSA2LjY0NS02LjY0NiA2LjY0NS0xNS45NTcgMC05LjM4OS02LjY0NS0xNi4wMTJabS02LjYyMiAxNS40NDJhLjQ0NS40NDUgMCAxIDAgLjg5IDAgLjQ0NS40NDUgMCAwIDAtLjg5IDBtLTguNzEtOS4yNThjMCAuMjQ2LjE5OS40NS40NDUuNDVhLjQ1LjQ1IDAgMCAwIC40NDUtLjQ1LjQ0NS40NDUgMCAxIDAtLjg5IDBtLTEuMDQgMGMwIC4yNDYuMi40NS40NDYuNDVhLjQ1LjQ1IDAgMCAwIC40NDUtLjQ1LjQ0NS40NDUgMCAxIDAtLjg5IDBtOS43NSAxMC4yOTdhLjQ0NS40NDUgMCAxIDAgLjg5IDAgLjQ0NS40NDUgMCAwIDAtLjg5IDBtLTguNzEgOS4zMDVhLjQ0NS40NDUgMCAxIDAgLjg5IDAgLjQ0NS40NDUgMCAwIDAtLjg5IDBtLTEuMDQgMGEuNDQ1LjQ0NSAwIDEgMCAuODkgMCAuNDQ1LjQ0NSAwIDAgMC0uODkgME00LjMyIDMyLjgxMnExLjc1Ny0uMzE1IDQuMjItLjQ5MmwtMy44NjgtLjA3Wk00NS45NzcgNDYuOTFxLTEuMDktLjI4LTIuMzU2LTEuNjE3bC04LjQzNy04LjYxM2gtOS4yNzhsMTQuNDggMTAuNTA4di4zNTFxMi43MDguNzc0IDUuNTktLjYzM1ptMy45NzItMTIuMzc1cS0uMTA1LjQyMS0uNDkyLjgwOWgtLjQyMmwtLjUyNy0uNDIyaC02LjYxdi0uMzg3Wm0tLjQ5Mi0xLjMzNnEuMzg3LjM4OC40OTIuODQ0SDQxLjl2LS4zODdoNi42MDlsLjUyNy0uNDU3Wk00LjMyIDY2LjM0OGwuMzUyLjU2MiAzLjg2Ny0uMDdxLTIuODEyLS4yODItNC4yMTktLjQ5Mk00NS45NzcgNTIuMjVxLTIuODgzLTEuNDQtNS41OS0uNjMzdi4zNTJMMjUuOTA3IDYyLjQ4aDkuMjc3bDguNDM3LTguNjQ4cTEuMy0xLjMzNSAyLjM1Ni0xLjU4Mm0zLjk3MiAxMi4zNzVINDEuOXYtLjM4N2g2LjYwOWwuNTI3LS40NTdoLjQyMnEuMzg3LjQ1Ny40OTIuODQ0bS0uNDkyIDEuM2gtLjQyMmwtLjUyNy0uNDIxaC02LjYxdi0uMzg3aDguMDUxcS0uMTA1LjM4Ny0uNDkyLjgwOW0tOC41NDMuODFxLjQ1Ny4xNzUuOTUuMTc1aDUuNDEzcTMuMDk0IDAgMy4wOTQtMi4xMSAwLTEuMDUyLTEuMTYtMS41NjJ0LTEuOTM0LS41MTFoLTUuNDE0cS0uNTk4IDAtLjk0OS4xNEgxMy4xMXEtLjYzMy4wMDEtNS44Ny40MDYtNS4yNC40MDQtNS4yMzkgMS4wMzZ2Ljk4NHEwIC41NjEgNS4yMzggMSA1LjIzOS40NCA1Ljg3MS40NDFabTEwLjQ0MS0xNy4yOTdoLTMuNTVxLS40MjMuMTQgMCAuMjhoMy41NVptLTMuNjIuNzAzaC0uNDU4di0xLjEyNWguNDU3cTIuMTQ1LS43NzMgNC4xMTQtLjk1bC4zODYtMi4xMDkuMzg3LjAzNWMuMDQ3LS4zNTEuMTQtLjg1MS4yODEtMS41MDhxLTMuNTg1LS4wNy04LjkzLjU2My40NTguNTIzLjk1LjkxLjU5Ny40MjIgMS4xNi41NjNsMS4wNTUuMjQ2LS45ODUuNDkycS0xLjY4OC44NDMtNC4xODMuODQ0LS42MzMgMC0uODgtLjAzNmExMCAxMCAwIDAgMS0uODQzLS4xNGwtLjI4MS0uMTA2di0uNDU3bC0yLjAwNC0xLjQ0MXEtNS4xNjIuNzA0LTYuOTkyLjczOC0zLjkzOC4wMzUtMy45MzggMi45MTggMCAyLjc3NyAzLjkzOCAyLjkxOCAyLjM1Ni4wMzYgNi45OTIuNzM4bDIuMDA0LTEuNDQxdi0uNDU3bC4yODEtLjEwNnEuMzE2LS4xMDUuODQ0LS4xNC4yNDYtLjAzNS44NzktLjAzNSAyLjQ5NiAwIDQuMTgzLjg0M2wuOTg1LjQ1Ny0xLjA1NS4yODJxLS41NjMuMTA2LTEuMTYuNTYyLS40NTcuMjgxLS45NS44OCA1LjEuNjMxIDguOTMuNTk3LS4yMS0uOTE1LS4yOC0xLjUxMmgtLjM4OGwtLjM4Ni0yLjA3NGEyMC43IDIwLjcgMCAwIDEtNC4xMTQtLjk1bTQuMDQyLTEuNjg4cS0xLjU4MS4yMS0yLjc3Ny41NjNoMi40MjZsLjMxNi0uMzUyWm0tLjM1MSAxLjY4OEg0OXExLjE5Ni4zMTYgMi43NzcuNTYybC0uMDM1LS4yMVptMTEuMzg2LS43MDNxMC0xLjA1NS0xLjA1LTEuMDU1aC0xLjc5M3EtLjgxLTEuNTgyLTIuNTMyLTEuNTgybC00Ljg1MS0uNDIyLS40OTIgMi40Ni0uMzUyLjQyM3YuNjMzbC4zNTIuNDIxLjQ5MiAyLjQyNiA0Ljg1Mi0uNDIycTEuOTMzIDAgMi42MzYtMS44MjhoMS42ODhxMS4wNSAwIDEuMDUtMS4wNTRtLTMuODk4LjE0cTAtMS40NC0xLjQ3Ny0xLjQ0MS0xLjQ0IDAtMS40NCAxLjQ0MSAwIDEuNDc2IDEuNDQgMS40NzcgMS40NzcgMCAxLjQ3Ny0xLjQ3N20uMzg3IDBxMCAxLjg2My0xLjg2NCAxLjg2My0xLjg2MyAwLTEuODYzLTEuODYzdDEuODY0LTEuODYzIDEuODYzIDEuODYzbS0xLjE2IDBxMC0uNzAzLS43MDMtLjcwMy0uNjY4IDAtLjY2OC43MDN0LjY2Ny43MDNxLjcwNCAwIC43MDQtLjcwM20uMzg2IDBxMCAxLjA5LTEuMDkgMS4wOS0xLjA1NCAwLTEuMDU0LTEuMDl0MS4wNTQtMS4wOXExLjA5IDAgMS4wOSAxLjA5bS0zLjY1Ni0uMTc2di4zNTJoLTIuOTE4di0uMzUyWm0yMS41NDcuMTc2cS0uMDctMS4wNTUtMS4wNTUtMS4wNTUtMS4wNTQgMC0xLjA1NCAxLjA1NXQxLjA1NCAxLjA1NSAxLjA1NS0xLjA1NW0uMzg3IDBxMCAxLjQ0Mi0xLjQ0MiAxLjQ0Mi0xLjQ0IDAtMS40NDEtMS40NDIgMC0xLjQ0IDEuNDQxLTEuNDQxIDEuNDQyIDAgMS40NDIgMS40NDFtMi43MDcgMHEwLTEuNzIzLTEuMjMtMi45NTMtMS4xOTYtMS4xOTUtMi45MTktMS4xOTUtMS44OTggMC00LjE0OCAxLjQ0MS0yLjMyIDEuNDQxLTIuMzIgMi43MDcgMCAxLjIzIDIuMzIgMi43MDcgMi4yNSAxLjQ0MiA0LjE0OCAxLjQ0MiAxLjcyMyAwIDIuOTE4LTEuMjMgMS4yMy0xLjE5NiAxLjIzLTIuOTE5bS40MjIgMHEwIDEuODYzLTEuMzM2IDMuMi0xLjMzNyAxLjMzNS0zLjIzNSAxLjMzNS0xLjk2OCAwLTQuMzYtMS41MTEtMi41My0xLjU4My0yLjUzLTMuMDI0IDAtMS40NCAyLjUzLTMuMDU4YzEuNTk1LTEuMDA4IDMuMDQ4LTEuNTA4IDQuMzYtMS41MDggMS4yMTkgMCAyLjI5Ny40NDEgMy4yMzUgMS4zMzJxMS4zMzUgMS4zNzEgMS4zMzYgMy4yMzRtLTQuNTM2LTIuNDI2cS0uNDkyIDAtMS41ODIuNDIyLS45ODQuNDkzLS45ODQuNjMzdjIuNzA3cTAgLjM4Ny45ODQuNjMzLjk4NS40MjIgMS41ODIuNDIyIDIuNDI3IDAgMi40OTctMi4zMiAwLTIuNDYxLTIuNDk3LTIuNDk3bTIuODgzIDIuNDI2di4wN3EwIDIuNjczLTIuODgzIDIuNzQzLS41NjIgMC0xLjc1Ny0uNDU3LS44NzktLjQ5My0uOTg1LS41OThhLjUzLjUzIDAgMCAxLS4yMS0uNDIydi0yLjcwN3EwLS4xNzUuMTc1LS4zODcuMzg3LS4zNTEgMS4wMi0uNTk3IDEuMTI1LS40NTcgMS43NTctLjQ1NyAyLjgxMy4wMzQgMi44ODMgMi44MTJNNDAuOTE0IDMyLjM5MUgxMy4xMXEtLjYzMyAwLTUuODcuNDIyLTUuMjQuNDItNS4yMzkgMS4wNTR2Ljk1cTAgLjU5NyA1LjIzOCAxLjAxOXQ1Ljg3MS40MjJoMjcuODA1cS40NTcuMTc2Ljk1LjE3Nmg1LjQxM3EuNjY3IDAgMS44OC0uNTYzdDEuMjE0LTEuNTEycS4wMzUtMi4xMDktMy4wOTQtMi4xMDloLTUuNDE0cS0uNTk4IDAtLjk0OS4xNG0wIDAiIHN0eWxlPSJzdHJva2U6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmZmM0NzQ7ZmlsbC1vcGFjaXR5OjEiLz48L3N2Zz4=
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
3
+ <path fill="#FFFFFF" d="m1096.3 402.82c-53.148-53.008-117.12-79.516-191.93-79.516-67.488 0-126.55 21.938-177.16 65.805-50.617 43.871-80.988 98.285-91.113 163.25l53.57 4.2188c14.625 0.28125 25.449 6.75 32.48 19.406h18.984c11.809 0 17.715 5.7617 17.715 17.293s-5.9062 17.293-17.715 17.293h-17.297c-6.75 14.344-18.137 21.797-34.168 22.359l-53.57 4.6406c10.125 64.68 40.496 118.95 91.113 162.82 50.617 43.871 109.68 65.805 177.16 65.805 74.805 0 138.78-26.574 191.93-79.723 53.152-53.148 79.727-116.98 79.727-191.51 0-75.086-26.574-139.13-79.727-192.14zm-79.422 185.27c0 2.9531 2.3906 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477 0-2.9492-2.3945-5.3438-5.3477-5.3438-2.9531 0-5.3438 2.3945-5.3438 5.3438zm-104.54-111.07c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm117.01 123.55c0 2.9492 2.3906 5.3438 5.3438 5.3438 2.9531 0 5.3477-2.3945 5.3477-5.3438 0-2.9531-2.3945-5.3477-5.3477-5.3477-2.9531 0-5.3438 2.3945-5.3438 5.3477zm-104.54 111.66c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm-848-318.48c14.062-2.5312 30.934-4.5 50.621-5.9062l-46.402-0.84375zm499.86 169.15c-8.7188-2.25-18.141-8.7188-28.266-19.402l-101.23-103.35h-111.36l173.79 126.12v4.2188c21.652 6.1836 44.008 3.6562 67.07-7.5938zm47.664-148.48c-0.84375 3.3711-2.8125 6.6055-5.9062 9.6992h-5.0625l-6.3242-5.0625h-79.305v-4.6367zm-5.9062-16.031c3.0938 3.0938 5.0625 6.4688 5.9062 10.125h-96.598v-4.6406h79.305l6.3242-5.4844zm-541.62 397.78 4.2188 6.7461 46.402-0.84375c-22.5-2.2461-39.371-4.2148-50.621-5.9023zm499.86-169.15c-23.062-11.531-45.418-14.062-67.07-7.5938v4.2188l-173.79 126.12h111.36l101.23-103.77c10.406-10.684 19.828-17.012 28.266-18.98zm47.664 148.48h-96.598v-4.6406h79.305l6.3242-5.4805h5.0625c3.0938 3.6523 5.0625 7.0273 5.9062 10.121zm-5.9062 15.609h-5.0625l-6.3242-5.0625h-79.305v-4.6406h96.598c-0.84375 3.0938-2.8125 6.3281-5.9062 9.7031zm-102.5 9.6992c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c24.746 0 37.121-8.4336 37.121-25.309 0-8.4375-4.6406-14.691-13.922-18.77-9.2773-4.0781-17.012-6.1172-23.199-6.1172h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875h-333.66c-5.0625 0-28.543 1.6172-70.445 4.8516-41.902 3.2344-62.852 7.3828-62.852 12.441v11.812c0 4.5 20.949 8.5078 62.852 12.023 41.902 3.5156 65.383 5.2695 70.445 5.2695zm125.28-207.54h-42.602c-3.375 1.125-3.375 2.25 0 3.375h42.602zm-43.445 8.4375h-5.4844v-13.5h5.4844c17.152-6.1875 33.605-9.9844 49.352-11.391l4.6406-25.309 4.6406 0.42188c0.5625-4.2188 1.6875-10.262 3.375-18.137-28.684-0.5625-64.398 1.6875-107.14 6.75 3.6562 4.2148 7.4531 7.8711 11.391 10.965 4.7812 3.375 9.4219 5.625 13.918 6.75l12.656 2.9531-11.812 5.9062c-13.496 6.75-30.23 10.121-50.195 10.121-5.0625 0-8.5781-0.14062-10.547-0.42188-4.2188-0.5625-7.5898-1.1211-10.121-1.6836l-3.375-1.2656v-5.4844l-24.043-17.297c-41.34 5.625-69.32 8.5781-83.945 8.8594-31.496 0.28125-47.242 11.953-47.242 35.012 0 22.215 15.746 33.887 47.242 35.012 18.844 0.28125 46.824 3.2344 83.945 8.8594l24.043-17.297v-5.4844l3.375-1.2656c2.5312-0.84375 5.9023-1.4062 10.121-1.6875 1.9688-0.28125 5.4844-0.42187 10.547-0.42187 19.965 0 36.699 3.375 50.195 10.125l11.812 5.4844-12.656 3.375c-4.4961 0.84375-9.1367 3.0938-13.918 6.75-3.6562 2.2461-7.4531 5.7617-11.391 10.543 40.777 5.0625 76.492 7.4531 107.14 7.1719-1.6875-7.3125-2.8125-13.359-3.375-18.137h-4.6406l-4.6406-24.891c-17.434-2.25-33.887-6.043-49.352-11.387zm48.508-20.25c-12.652 1.6875-23.762 3.9375-33.324 6.75h29.105l3.7969-4.2188zm-4.2188 20.25h-29.105c9.5625 2.5312 20.672 4.7812 33.324 6.7461l-0.42188-2.5273zm136.67-8.4375c0-8.4375-4.2188-12.656-12.652-12.656h-21.516c-6.4688-12.652-16.59-18.98-30.371-18.98l-58.211-5.0625-5.9062 29.527-4.2188 5.0625v7.5938l4.2188 5.0625 5.9062 29.105 58.211-5.0625c15.469 0 26.012-7.3125 31.637-21.934h20.25c8.4336 0 12.652-4.2188 12.652-12.656zm-46.82 1.6875c0-11.531-5.9062-17.297-17.719-17.297-11.527 0-17.293 5.7656-17.293 17.297 0 11.812 5.7656 17.715 17.293 17.715 11.812 0 17.719-5.9023 17.719-17.715zm4.6406 0c0 14.902-7.4531 22.355-22.359 22.355-14.902 0-22.355-7.4531-22.355-22.355 0-14.906 7.4531-22.355 22.355-22.355 14.906 0 22.359 7.4492 22.359 22.355zm-13.922 0c0-5.625-2.8125-8.4375-8.4375-8.4375-5.3438 0-8.0156 2.8125-8.0156 8.4375s2.6719 8.4375 8.0156 8.4375c5.625 0 8.4375-2.8125 8.4375-8.4375zm4.6406 0c0 8.7188-4.3594 13.078-13.078 13.078-8.4375 0-12.652-4.3594-12.652-13.078s4.2148-13.078 12.652-13.078c8.7188 0 13.078 4.3594 13.078 13.078zm-43.871-2.1094v4.2188h-35.012v-4.2188zm258.58 2.1094c-0.5625-8.4375-4.7812-12.656-12.656-12.656-8.4336 0-12.652 4.2188-12.652 12.656s4.2188 12.656 12.652 12.656c8.4375 0 12.656-4.2188 12.656-12.656zm4.6406 0c0 11.531-5.7656 17.293-17.297 17.293-11.527 0-17.293-5.7617-17.293-17.293s5.7656-17.297 17.293-17.297c11.531 0 17.297 5.7656 17.297 17.297zm32.48 0c0-13.781-4.9219-25.59-14.766-35.434-9.5586-9.5625-21.23-14.344-35.012-14.344-15.184 0-31.777 5.7656-49.773 17.297-18.559 11.531-27.84 22.355-27.84 32.48 0 9.8438 9.2812 20.668 27.84 32.48 17.996 11.531 34.59 17.293 49.773 17.293 13.781 0 25.453-4.918 35.012-14.762 9.8438-9.5625 14.766-21.234 14.766-35.012zm5.0625 0c0 14.902-5.3438 27.699-16.031 38.387-10.684 10.684-23.621 16.027-38.809 16.027-15.746 0-33.18-6.0469-52.305-18.137-20.246-12.656-30.371-24.746-30.371-36.277s10.125-23.762 30.371-36.699c19.125-12.094 36.559-18.137 52.305-18.137 14.625 0 27.562 5.3398 38.809 16.027 10.688 10.969 16.031 23.902 16.031 38.809zm-54.418-29.105c-3.9336 0-10.262 1.6875-18.98 5.0625-7.875 3.9375-11.812 6.4648-11.812 7.5898v32.48c0 3.0938 3.9375 5.625 11.812 7.5938 7.875 3.375 14.203 5.0625 18.98 5.0625 19.406 0 29.391-9.2812 29.953-27.84 0-19.688-9.9844-29.668-29.953-29.949zm34.59 29.105v0.84375c0 21.371-11.527 32.34-34.59 32.902-4.4961 0-11.527-1.8281-21.09-5.4844-7.0312-3.9375-10.969-6.3281-11.809-7.1719-1.6875-1.4062-2.5312-3.0938-2.5312-5.0625v-32.48c0-1.4062 0.70312-2.9492 2.1094-4.6367 3.0898-2.8125 7.168-5.2031 12.23-7.1719 9-3.6562 16.031-5.4844 21.09-5.4844 22.5 0.28125 34.027 11.531 34.59 33.746zm-448.4-206.27h-333.66c-5.0625 0-28.543 1.6875-70.445 5.0625-41.902 3.375-62.852 7.5938-62.852 12.656v11.387c0 4.7812 20.949 8.8594 62.852 12.234 41.902 3.375 65.383 5.0625 70.445 5.0625h333.66c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c5.3438 0 12.867-2.25 22.566-6.75 9.7031-4.5 14.555-10.547 14.555-18.137 0.28125-16.875-12.094-25.312-37.121-25.312h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875z" fill-rule="evenodd"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ # Autogeneration Notice
2
+
3
+ This directory is maintained in the root of the monorepo and sync'd to public
4
+ repositories by running `bun sync-logos`
@@ -0,0 +1,2 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="75" height="20" role="img" aria-label="Api Docs"><title>Api Docs</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="75" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="20" fill="#555"/><rect x="0" width="75" height="20" fill="#555"/><rect width="75" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48cGF0aCBkPSJNOTEuMzYgMzMuNTY2cS02LjY0NS02LjYyMy0xNS45OTctNi42MjUtOC40MzkgMC0xNC43NjEgNS40ODUtNi4zMjkgNS40ODQtNy41OTQgMTMuNjA1bDQuNDY1LjM1MlE1OS4zIDQ2LjQxOCA2MC4xOCA0OGgxLjU4MnExLjQ3NiAwIDEuNDc2IDEuNDQxIDAgMS40NC0xLjQ3NiAxLjQzOEg2MC4zMnEtLjg0MyAxLjc5My0yLjg0NyAxLjg2M2wtNC40NjUuMzg3cTEuMjY2IDguMDg1IDcuNTk0IDEzLjU3dDE0Ljc2MSA1LjQ4NXE5LjM1MiAwIDE1Ljk5Ni02LjY0NSA2LjY0NS02LjY0NiA2LjY0NS0xNS45NTcgMC05LjM4OS02LjY0NS0xNi4wMTJabS02LjYyMiAxNS40NDJhLjQ0NS40NDUgMCAxIDAgLjg5IDAgLjQ0NS40NDUgMCAwIDAtLjg5IDBtLTguNzEtOS4yNThjMCAuMjQ2LjE5OS40NS40NDUuNDVhLjQ1LjQ1IDAgMCAwIC40NDUtLjQ1LjQ0NS40NDUgMCAxIDAtLjg5IDBtLTEuMDQgMGMwIC4yNDYuMi40NS40NDYuNDVhLjQ1LjQ1IDAgMCAwIC40NDUtLjQ1LjQ0NS40NDUgMCAxIDAtLjg5IDBtOS43NSAxMC4yOTdhLjQ0NS40NDUgMCAxIDAgLjg5IDAgLjQ0NS40NDUgMCAwIDAtLjg5IDBtLTguNzEgOS4zMDVhLjQ0NS40NDUgMCAxIDAgLjg5IDAgLjQ0NS40NDUgMCAwIDAtLjg5IDBtLTEuMDQgMGEuNDQ1LjQ0NSAwIDEgMCAuODkgMCAuNDQ1LjQ0NSAwIDAgMC0uODkgME00LjMyIDMyLjgxMnExLjc1Ny0uMzE1IDQuMjItLjQ5MmwtMy44NjgtLjA3Wk00NS45NzcgNDYuOTFxLTEuMDktLjI4LTIuMzU2LTEuNjE3bC04LjQzNy04LjYxM2gtOS4yNzhsMTQuNDggMTAuNTA4di4zNTFxMi43MDguNzc0IDUuNTktLjYzM1ptMy45NzItMTIuMzc1cS0uMTA1LjQyMS0uNDkyLjgwOWgtLjQyMmwtLjUyNy0uNDIyaC02LjYxdi0uMzg3Wm0tLjQ5Mi0xLjMzNnEuMzg3LjM4OC40OTIuODQ0SDQxLjl2LS4zODdoNi42MDlsLjUyNy0uNDU3Wk00LjMyIDY2LjM0OGwuMzUyLjU2MiAzLjg2Ny0uMDdxLTIuODEyLS4yODItNC4yMTktLjQ5Mk00NS45NzcgNTIuMjVxLTIuODgzLTEuNDQtNS41OS0uNjMzdi4zNTJMMjUuOTA3IDYyLjQ4aDkuMjc3bDguNDM3LTguNjQ4cTEuMy0xLjMzNSAyLjM1Ni0xLjU4Mm0zLjk3MiAxMi4zNzVINDEuOXYtLjM4N2g2LjYwOWwuNTI3LS40NTdoLjQyMnEuMzg3LjQ1Ny40OTIuODQ0bS0uNDkyIDEuM2gtLjQyMmwtLjUyNy0uNDIxaC02LjYxdi0uMzg3aDguMDUxcS0uMTA1LjM4Ny0uNDkyLjgwOW0tOC41NDMuODFxLjQ1Ny4xNzUuOTUuMTc1aDUuNDEzcTMuMDk0IDAgMy4wOTQtMi4xMSAwLTEuMDUyLTEuMTYtMS41NjJ0LTEuOTM0LS41MTFoLTUuNDE0cS0uNTk4IDAtLjk0OS4xNEgxMy4xMXEtLjYzMy4wMDEtNS44Ny40MDYtNS4yNC40MDQtNS4yMzkgMS4wMzZ2Ljk4NHEwIC41NjEgNS4yMzggMSA1LjIzOS40NCA1Ljg3MS40NDFabTEwLjQ0MS0xNy4yOTdoLTMuNTVxLS40MjMuMTQgMCAuMjhoMy41NVptLTMuNjIuNzAzaC0uNDU4di0xLjEyNWguNDU3cTIuMTQ1LS43NzMgNC4xMTQtLjk1bC4zODYtMi4xMDkuMzg3LjAzNWMuMDQ3LS4zNTEuMTQtLjg1MS4yODEtMS41MDhxLTMuNTg1LS4wNy04LjkzLjU2My40NTguNTIzLjk1LjkxLjU5Ny40MjIgMS4xNi41NjNsMS4wNTUuMjQ2LS45ODUuNDkycS0xLjY4OC44NDMtNC4xODMuODQ0LS42MzMgMC0uODgtLjAzNmExMCAxMCAwIDAgMS0uODQzLS4xNGwtLjI4MS0uMTA2di0uNDU3bC0yLjAwNC0xLjQ0MXEtNS4xNjIuNzA0LTYuOTkyLjczOC0zLjkzOC4wMzUtMy45MzggMi45MTggMCAyLjc3NyAzLjkzOCAyLjkxOCAyLjM1Ni4wMzYgNi45OTIuNzM4bDIuMDA0LTEuNDQxdi0uNDU3bC4yODEtLjEwNnEuMzE2LS4xMDUuODQ0LS4xNC4yNDYtLjAzNS44NzktLjAzNSAyLjQ5NiAwIDQuMTgzLjg0M2wuOTg1LjQ1Ny0xLjA1NS4yODJxLS41NjMuMTA2LTEuMTYuNTYyLS40NTcuMjgxLS45NS44OCA1LjEuNjMxIDguOTMuNTk3LS4yMS0uOTE1LS4yOC0xLjUxMmgtLjM4OGwtLjM4Ni0yLjA3NGEyMC43IDIwLjcgMCAwIDEtNC4xMTQtLjk1bTQuMDQyLTEuNjg4cS0xLjU4MS4yMS0yLjc3Ny41NjNoMi40MjZsLjMxNi0uMzUyWm0tLjM1MSAxLjY4OEg0OXExLjE5Ni4zMTYgMi43NzcuNTYybC0uMDM1LS4yMVptMTEuMzg2LS43MDNxMC0xLjA1NS0xLjA1LTEuMDU1aC0xLjc5M3EtLjgxLTEuNTgyLTIuNTMyLTEuNTgybC00Ljg1MS0uNDIyLS40OTIgMi40Ni0uMzUyLjQyM3YuNjMzbC4zNTIuNDIxLjQ5MiAyLjQyNiA0Ljg1Mi0uNDIycTEuOTMzIDAgMi42MzYtMS44MjhoMS42ODhxMS4wNSAwIDEuMDUtMS4wNTRtLTMuODk4LjE0cTAtMS40NC0xLjQ3Ny0xLjQ0MS0xLjQ0IDAtMS40NCAxLjQ0MSAwIDEuNDc2IDEuNDQgMS40NzcgMS40NzcgMCAxLjQ3Ny0xLjQ3N20uMzg3IDBxMCAxLjg2My0xLjg2NCAxLjg2My0xLjg2MyAwLTEuODYzLTEuODYzdDEuODY0LTEuODYzIDEuODYzIDEuODYzbS0xLjE2IDBxMC0uNzAzLS43MDMtLjcwMy0uNjY4IDAtLjY2OC43MDN0LjY2Ny43MDNxLjcwNCAwIC43MDQtLjcwM20uMzg2IDBxMCAxLjA5LTEuMDkgMS4wOS0xLjA1NCAwLTEuMDU0LTEuMDl0MS4wNTQtMS4wOXExLjA5IDAgMS4wOSAxLjA5bS0zLjY1Ni0uMTc2di4zNTJoLTIuOTE4di0uMzUyWm0yMS41NDcuMTc2cS0uMDctMS4wNTUtMS4wNTUtMS4wNTUtMS4wNTQgMC0xLjA1NCAxLjA1NXQxLjA1NCAxLjA1NSAxLjA1NS0xLjA1NW0uMzg3IDBxMCAxLjQ0Mi0xLjQ0MiAxLjQ0Mi0xLjQ0IDAtMS40NDEtMS40NDIgMC0xLjQ0IDEuNDQxLTEuNDQxIDEuNDQyIDAgMS40NDIgMS40NDFtMi43MDcgMHEwLTEuNzIzLTEuMjMtMi45NTMtMS4xOTYtMS4xOTUtMi45MTktMS4xOTUtMS44OTggMC00LjE0OCAxLjQ0MS0yLjMyIDEuNDQxLTIuMzIgMi43MDcgMCAxLjIzIDIuMzIgMi43MDcgMi4yNSAxLjQ0MiA0LjE0OCAxLjQ0MiAxLjcyMyAwIDIuOTE4LTEuMjMgMS4yMy0xLjE5NiAxLjIzLTIuOTE5bS40MjIgMHEwIDEuODYzLTEuMzM2IDMuMi0xLjMzNyAxLjMzNS0zLjIzNSAxLjMzNS0xLjk2OCAwLTQuMzYtMS41MTEtMi41My0xLjU4My0yLjUzLTMuMDI0IDAtMS40NCAyLjUzLTMuMDU4YzEuNTk1LTEuMDA4IDMuMDQ4LTEuNTA4IDQuMzYtMS41MDggMS4yMTkgMCAyLjI5Ny40NDEgMy4yMzUgMS4zMzJxMS4zMzUgMS4zNzEgMS4zMzYgMy4yMzRtLTQuNTM2LTIuNDI2cS0uNDkyIDAtMS41ODIuNDIyLS45ODQuNDkzLS45ODQuNjMzdjIuNzA3cTAgLjM4Ny45ODQuNjMzLjk4NS40MjIgMS41ODIuNDIyIDIuNDI3IDAgMi40OTctMi4zMiAwLTIuNDYxLTIuNDk3LTIuNDk3bTIuODgzIDIuNDI2di4wN3EwIDIuNjczLTIuODgzIDIuNzQzLS41NjIgMC0xLjc1Ny0uNDU3LS44NzktLjQ5My0uOTg1LS41OThhLjUzLjUzIDAgMCAxLS4yMS0uNDIydi0yLjcwN3EwLS4xNzUuMTc1LS4zODcuMzg3LS4zNTEgMS4wMi0uNTk3IDEuMTI1LS40NTcgMS43NTctLjQ1NyAyLjgxMy4wMzQgMi44ODMgMi44MTJNNDAuOTE0IDMyLjM5MUgxMy4xMXEtLjYzMyAwLTUuODcuNDIyLTUuMjQuNDItNS4yMzkgMS4wNTR2Ljk1cTAgLjU5NyA1LjIzOCAxLjAxOXQ1Ljg3MS40MjJoMjcuODA1cS40NTcuMTc2Ljk1LjE3Nmg1LjQxM3EuNjY3IDAgMS44OC0uNTYzdDEuMjE0LTEuNTEycS4wMzUtMi4xMDktMy4wOTQtMi4xMDloLTUuNDE0cS0uNTk4IDAtLjk0OS4xNG0wIDAiIHN0eWxlPSJzdHJva2U6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmZmM0NzQ7ZmlsbC1vcGFjaXR5OjEiLz48L3N2Zz4=
2
+ "/><text aria-hidden="true" x="465" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="470">Api Docs</text><text x="465" y="140" transform="scale(.1)" fill="#fff" textLength="470">Api Docs</text></g></svg>