@warp-drive/legacy 5.8.0-alpha.3 → 5.8.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -27
- package/declarations/adapter/json-api.d.ts +4 -6
- package/declarations/adapter/rest.d.ts +5 -8
- package/declarations/adapter.d.ts +4 -6
- package/declarations/compat/-private.d.ts +1 -1
- package/declarations/compat/extensions.d.ts +1 -1
- package/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +7 -9
- package/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +20 -30
- package/declarations/compat/utils.d.ts +17 -17
- package/declarations/compat.d.ts +32 -8
- package/declarations/index.d.ts +70 -0
- package/declarations/model/-private/attr.d.ts +5 -6
- package/declarations/model/-private/belongs-to.d.ts +4 -5
- package/declarations/model/-private/has-many.d.ts +4 -5
- package/declarations/model/-private/hooks.d.ts +1 -1
- package/declarations/model/-private/legacy-relationships-support.d.ts +2 -2
- package/declarations/model/-private/model.d.ts +8 -8
- package/declarations/model/-private/record-state.d.ts +1 -1
- package/declarations/model/-private/references/belongs-to.d.ts +1 -1
- package/declarations/model/-private/references/has-many.d.ts +1 -1
- package/declarations/model/migration-support.d.ts +12 -3
- package/declarations/model-fragments/extensions/fragment-array.d.ts +16 -0
- package/declarations/model-fragments/extensions/fragment.d.ts +15 -0
- package/declarations/model-fragments/hooks/model-for.d.ts +20 -0
- package/declarations/model-fragments/index.d.ts +5 -0
- package/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +9 -0
- package/declarations/model-fragments/utilities/with-array-defaults.d.ts +15 -0
- package/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +20 -0
- package/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +19 -0
- package/declarations/model-fragments/utilities/with-legacy.d.ts +3 -0
- package/declarations/model-fragments.d.ts +9 -0
- package/declarations/serializer/-private/embedded-records-mixin.d.ts +0 -5
- package/declarations/serializer/-private/transforms/boolean.d.ts +2 -2
- package/declarations/serializer/-private/transforms/date.d.ts +2 -2
- package/declarations/serializer/-private/transforms/number.d.ts +1 -1
- package/declarations/serializer/-private/transforms/string.d.ts +1 -1
- package/declarations/serializer/json-api.d.ts +4 -6
- package/declarations/serializer/json.d.ts +6 -8
- package/declarations/serializer/rest.d.ts +4 -6
- package/declarations/serializer.d.ts +8 -11
- package/dist/{-private-8UmnAf9J.js → -private-B1pSSN52.js} +1 -1
- package/dist/adapter/-private.js +1 -1
- package/dist/adapter/error.js +5 -6
- package/dist/adapter/json-api.js +4 -1
- package/dist/adapter/rest.js +6 -9
- package/dist/adapter.js +4 -6
- package/dist/compat/-private.js +1 -1
- package/dist/compat/utils.js +17 -17
- package/dist/compat.js +55 -38
- package/dist/{errors-8kD2mSe_.js → errors-B9CDPh3R.js} +75 -53
- package/dist/hooks-CQXyievu.js +74 -0
- package/dist/index.js +195 -0
- package/dist/{json-DziiodPf.js → json-BHxlccxF.js} +8 -12
- package/dist/model/-private.js +1 -1
- package/dist/model/migration-support.js +15 -2
- package/dist/model-for-B0TSd9HU.js +221 -0
- package/dist/model-fragments.js +76 -0
- package/dist/model.js +18 -90
- package/dist/{schema-provider-DQu4Rjco.js → schema-provider-BnVr_CnJ.js} +8 -10
- package/dist/{serialize-into-hash-CS0MIv4F.js → serialize-into-hash-BnYvPex3.js} +1 -1
- package/dist/serializer/json-api.js +11 -38
- package/dist/serializer/json.js +1 -1
- package/dist/serializer/rest.js +5 -12
- package/dist/serializer/transform.js +15 -6
- package/dist/serializer.js +8 -12
- package/dist/store.js +3 -0
- package/logos/README.md +2 -2
- package/logos/logo-yellow-slab.svg +1 -0
- package/logos/word-mark-black.svg +1 -0
- package/logos/word-mark-white.svg +1 -0
- package/package.json +6 -6
- package/logos/NCC-1701-a-blue.svg +0 -4
- package/logos/NCC-1701-a-gold.svg +0 -4
- package/logos/NCC-1701-a-gold_100.svg +0 -1
- package/logos/NCC-1701-a-gold_base-64.txt +0 -1
- package/logos/NCC-1701-a.svg +0 -4
- package/logos/docs-badge.svg +0 -2
- package/logos/ember-data-logo-dark.svg +0 -12
- package/logos/ember-data-logo-light.svg +0 -12
- package/logos/social1.png +0 -0
- package/logos/social2.png +0 -0
- package/logos/warp-drive-logo-dark.svg +0 -4
- package/logos/warp-drive-logo-gold.svg +0 -4
package/dist/model.js
CHANGED
|
@@ -4,12 +4,11 @@ import { RecordStore } from '@warp-drive/core/types/symbols';
|
|
|
4
4
|
import { i as isElementDescriptor, n as normalizeModelName } from "./util-Dul6TZts.js";
|
|
5
5
|
import { macroCondition, getGlobalConfig } from '@embroider/macros';
|
|
6
6
|
import { warn, deprecate } from '@ember/debug';
|
|
7
|
-
import { assertPrivateStore
|
|
8
|
-
import { l as lookupLegacySupport } from "./errors-
|
|
7
|
+
import { assertPrivateStore } from '@warp-drive/core/store/-private';
|
|
8
|
+
import { l as lookupLegacySupport } from "./errors-B9CDPh3R.js";
|
|
9
9
|
import { singularize, dasherize } from '@warp-drive/utilities/string';
|
|
10
|
-
|
|
11
|
-
export {
|
|
12
|
-
import { setOwner, getOwner } from '@ember/application';
|
|
10
|
+
export { M as Model, b as buildSchema, M as default, m as restoreDeprecatedModelRequestBehaviors } from "./schema-provider-BnVr_CnJ.js";
|
|
11
|
+
export { i as instantiateRecord, m as modelFor, t as teardownRecord } from "./hooks-CQXyievu.js";
|
|
13
12
|
function _attr(type, options) {
|
|
14
13
|
if (typeof type === 'object') {
|
|
15
14
|
options = type;
|
|
@@ -87,12 +86,12 @@ function _attr(type, options) {
|
|
|
87
86
|
*/
|
|
88
87
|
|
|
89
88
|
/**
|
|
90
|
-
`attr` defines an attribute on a
|
|
89
|
+
`attr` defines an attribute on a {@link Model}.
|
|
91
90
|
By default, attributes are passed through as-is, however you can specify an
|
|
92
91
|
optional type to have the value automatically transformed.
|
|
93
|
-
|
|
92
|
+
WarpDrive ships with four basic transform types: `string`, `number`,
|
|
94
93
|
`boolean` and `date`. You can define your own transforms by subclassing
|
|
95
|
-
|
|
94
|
+
{@link Transform}.
|
|
96
95
|
|
|
97
96
|
Note that you cannot use `attr` to define an attribute of `id`.
|
|
98
97
|
|
|
@@ -169,9 +168,8 @@ function _attr(type, options) {
|
|
|
169
168
|
```
|
|
170
169
|
|
|
171
170
|
@public
|
|
172
|
-
@param
|
|
173
|
-
@param
|
|
174
|
-
@return {Attribute}
|
|
171
|
+
@param type the attribute type
|
|
172
|
+
@param options a hash of options
|
|
175
173
|
*/
|
|
176
174
|
|
|
177
175
|
// see note on DataDecorator for why void
|
|
@@ -258,7 +256,7 @@ function _belongsTo(type, options) {
|
|
|
258
256
|
|
|
259
257
|
/**
|
|
260
258
|
`belongsTo` is used to define One-To-One and One-To-Many, and One-To-None
|
|
261
|
-
relationships on a
|
|
259
|
+
relationships on a {@link Model}.
|
|
262
260
|
|
|
263
261
|
`belongsTo` takes a configuration hash as a second parameter, currently
|
|
264
262
|
supported options are:
|
|
@@ -340,7 +338,7 @@ function _belongsTo(type, options) {
|
|
|
340
338
|
|
|
341
339
|
#### Sync vs Async Relationships
|
|
342
340
|
|
|
343
|
-
|
|
341
|
+
WarpDrive fulfills relationships using resource data available in
|
|
344
342
|
the cache.
|
|
345
343
|
|
|
346
344
|
Sync relationships point directly to the known related resources.
|
|
@@ -408,9 +406,8 @@ function _belongsTo(type, options) {
|
|
|
408
406
|
type each record satisfies on both sides.
|
|
409
407
|
|
|
410
408
|
@public
|
|
411
|
-
@param
|
|
412
|
-
@param
|
|
413
|
-
@return {PropertyDescriptor} relationship
|
|
409
|
+
@param type the name of the related resource
|
|
410
|
+
@param options a hash of options
|
|
414
411
|
*/
|
|
415
412
|
|
|
416
413
|
// export function belongsTo<K extends Promise<unknown>, T extends Awaited<K> = Awaited<K>>(
|
|
@@ -497,7 +494,7 @@ function _hasMany(type, options) {
|
|
|
497
494
|
|
|
498
495
|
/**
|
|
499
496
|
`hasMany` is used to define Many-To-One and Many-To-Many, and Many-To-None
|
|
500
|
-
relationships on a
|
|
497
|
+
relationships on a {@link Model}.
|
|
501
498
|
|
|
502
499
|
`hasMany` takes a configuration hash as a second parameter, currently
|
|
503
500
|
supported options are:
|
|
@@ -580,7 +577,7 @@ function _hasMany(type, options) {
|
|
|
580
577
|
|
|
581
578
|
#### Sync vs Async Relationships
|
|
582
579
|
|
|
583
|
-
|
|
580
|
+
WarpDrive fulfills relationships using resource data available in
|
|
584
581
|
the cache.
|
|
585
582
|
|
|
586
583
|
Sync relationships point directly to the known related resources.
|
|
@@ -648,9 +645,8 @@ function _hasMany(type, options) {
|
|
|
648
645
|
type each record satisfies on both sides.
|
|
649
646
|
|
|
650
647
|
@public
|
|
651
|
-
@param
|
|
652
|
-
@param
|
|
653
|
-
@return {PropertyDescriptor} relationship
|
|
648
|
+
@param type the name of the related resource
|
|
649
|
+
@param options a hash of options
|
|
654
650
|
*/
|
|
655
651
|
|
|
656
652
|
// export function hasMany<K extends Promise<unknown>, T extends Awaited<K> = Awaited<K>>(
|
|
@@ -668,72 +664,4 @@ function hasMany(type, options) {
|
|
|
668
664
|
}
|
|
669
665
|
return _hasMany(type, options);
|
|
670
666
|
}
|
|
671
|
-
|
|
672
|
-
const type = identifier.type;
|
|
673
|
-
|
|
674
|
-
// TODO deprecate allowing unknown args setting
|
|
675
|
-
const createOptions = {
|
|
676
|
-
_createProps: createRecordArgs,
|
|
677
|
-
// TODO @deprecate consider deprecating accessing record properties during init which the below is necessary for
|
|
678
|
-
_secretInit: {
|
|
679
|
-
identifier,
|
|
680
|
-
store: this,
|
|
681
|
-
cb: secretInit
|
|
682
|
-
}
|
|
683
|
-
};
|
|
684
|
-
|
|
685
|
-
// ensure that `getOwner(this)` works inside a model instance
|
|
686
|
-
setOwner(createOptions, getOwner(this));
|
|
687
|
-
const factory = getModelFactory(this, type);
|
|
688
|
-
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
|
|
689
|
-
if (!test) {
|
|
690
|
-
throw new Error(`No model was found for '${type}'`);
|
|
691
|
-
}
|
|
692
|
-
})(factory) : {};
|
|
693
|
-
return factory.class.create(createOptions);
|
|
694
|
-
}
|
|
695
|
-
function teardownRecord(record) {
|
|
696
|
-
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
|
|
697
|
-
if (!test) {
|
|
698
|
-
throw new Error(`expected to receive an instance of Model from @ember-data/model. If using a custom model make sure you implement teardownRecord`);
|
|
699
|
-
}
|
|
700
|
-
})('destroy' in record) : {};
|
|
701
|
-
record.destroy();
|
|
702
|
-
}
|
|
703
|
-
function modelFor(modelName) {
|
|
704
|
-
assertPrivateStore(this);
|
|
705
|
-
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
|
|
706
|
-
if (!test) {
|
|
707
|
-
throw new Error(`Attempted to call store.modelFor(), but the store instance has already been destroyed.`);
|
|
708
|
-
}
|
|
709
|
-
})(!this.isDestroyed && !this.isDestroying) : {};
|
|
710
|
-
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
|
|
711
|
-
if (!test) {
|
|
712
|
-
throw new Error(`You need to pass a model name to the store's modelFor method`);
|
|
713
|
-
}
|
|
714
|
-
})(modelName) : {};
|
|
715
|
-
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
|
|
716
|
-
if (!test) {
|
|
717
|
-
throw new Error(`Please pass a proper model name to the store's modelFor method`);
|
|
718
|
-
}
|
|
719
|
-
})(typeof modelName === 'string' && modelName.length) : {};
|
|
720
|
-
const type = normalizeModelName(modelName);
|
|
721
|
-
const maybeFactory = getModelFactory(this, type);
|
|
722
|
-
const klass = maybeFactory && maybeFactory.class ? maybeFactory.class : null;
|
|
723
|
-
const ignoreType = !klass || !klass.isModel || this._forceShim;
|
|
724
|
-
if (!ignoreType) {
|
|
725
|
-
return klass;
|
|
726
|
-
}
|
|
727
|
-
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
|
|
728
|
-
if (!test) {
|
|
729
|
-
throw new Error(`No model was found for '${type}' and no schema handles the type`);
|
|
730
|
-
}
|
|
731
|
-
})(this.schema.hasResource({
|
|
732
|
-
type
|
|
733
|
-
})) : {};
|
|
734
|
-
}
|
|
735
|
-
function secretInit(record, identifier, store) {
|
|
736
|
-
setRecordIdentifier(record, identifier);
|
|
737
|
-
StoreMap.set(record, store);
|
|
738
|
-
}
|
|
739
|
-
export { attr, belongsTo, hasMany, instantiateRecord, modelFor, teardownRecord };
|
|
667
|
+
export { attr, belongsTo, hasMany };
|
|
@@ -4,8 +4,8 @@ import EmberObject from '@ember/object';
|
|
|
4
4
|
import { recordIdentifierFor, storeFor } from '@warp-drive/core';
|
|
5
5
|
import { assertPrivateStore, notifyInternalSignal, peekInternalSignal, withSignalStore, recordIdentifierFor as recordIdentifierFor$1, gate, memoized, defineSignal, coerceId, entangleSignal, defineGate } from '@warp-drive/core/store/-private';
|
|
6
6
|
import { RecordStore } from '@warp-drive/core/types/symbols';
|
|
7
|
-
import { l as lookupLegacySupport, L as LEGACY_SUPPORT, E as Errors } from "./errors-
|
|
8
|
-
import { u as upgradeStore, F as FetchManager } from "./-private-
|
|
7
|
+
import { l as lookupLegacySupport, L as LEGACY_SUPPORT, E as Errors } from "./errors-B9CDPh3R.js";
|
|
8
|
+
import { u as upgradeStore, F as FetchManager } from "./-private-B1pSSN52.js";
|
|
9
9
|
import { macroCondition, getGlobalConfig } from '@embroider/macros';
|
|
10
10
|
import { cacheFor } from '@ember/object/internals';
|
|
11
11
|
import { Context } from '@warp-drive/core/reactive/-private';
|
|
@@ -254,7 +254,7 @@ function isInvalidError(error) {
|
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
/**
|
|
257
|
-
Historically
|
|
257
|
+
Historically WarpDrive managed a state machine
|
|
258
258
|
for each record, the localState for which
|
|
259
259
|
was reflected onto Model.
|
|
260
260
|
|
|
@@ -680,11 +680,6 @@ function computeOnce(target, propertyName, desc) {
|
|
|
680
680
|
};
|
|
681
681
|
return desc;
|
|
682
682
|
}
|
|
683
|
-
|
|
684
|
-
/**
|
|
685
|
-
* @noInheritDoc
|
|
686
|
-
*/
|
|
687
|
-
|
|
688
683
|
/**
|
|
689
684
|
* Base class from which Models can be defined.
|
|
690
685
|
*
|
|
@@ -727,7 +722,10 @@ function computeOnce(target, propertyName, desc) {
|
|
|
727
722
|
* the class to use as the reactive object for data of resource
|
|
728
723
|
* of that type.
|
|
729
724
|
*
|
|
725
|
+
* @public
|
|
730
726
|
* @noInheritDoc
|
|
727
|
+
* @hideconstructor
|
|
728
|
+
* @legacy
|
|
731
729
|
*/
|
|
732
730
|
class Model extends EmberObject {
|
|
733
731
|
/** @internal */
|
|
@@ -1255,7 +1253,7 @@ class Model extends EmberObject {
|
|
|
1255
1253
|
/**
|
|
1256
1254
|
Represents the model's class name as a string. This can be used to look up the model's class name through
|
|
1257
1255
|
`Store`'s modelFor method.
|
|
1258
|
-
`modelName` is generated for you by
|
|
1256
|
+
`modelName` is generated for you by WarpDrive. It will be a lowercased, dasherized string.
|
|
1259
1257
|
For example:
|
|
1260
1258
|
```javascript
|
|
1261
1259
|
store.modelFor('post').modelName; // 'post'
|
|
@@ -2337,4 +2335,4 @@ function getModelFactory(store, type) {
|
|
|
2337
2335
|
}
|
|
2338
2336
|
return factory;
|
|
2339
2337
|
}
|
|
2340
|
-
export { Model as M, RecordState as R, _save as _, save as a, buildSchema as b, _reload as c, reload as d, _destroyRecord as e, destroyRecord as f,
|
|
2338
|
+
export { Model as M, RecordState as R, _save as _, save as a, buildSchema as b, _reload as c, reload as d, _destroyRecord as e, destroyRecord as f, getModelFactory as g, hasMany as h, deleteRecord as i, changedAttributes as j, belongsTo as k, createSnapshot as l, restoreDeprecatedModelRequestBehaviors as m, rollbackAttributes as r, serialize as s, unloadRecord as u };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { warn } from '@ember/debug';
|
|
2
2
|
import { macroCondition, getGlobalConfig } from '@embroider/macros';
|
|
3
3
|
import '@warp-drive/core/reactive/-private';
|
|
4
|
-
import "./-private-
|
|
4
|
+
import "./-private-B1pSSN52.js";
|
|
5
5
|
import '@warp-drive/core/store/-private';
|
|
6
6
|
const newline = /\r?\n/;
|
|
7
7
|
function parseResponseHeaders(headersString) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { warn } from '@ember/debug';
|
|
2
2
|
import { dasherize, pluralize, singularize } from '@warp-drive/utilities/string';
|
|
3
|
-
import { J as JSONSerializer } from "../json-
|
|
3
|
+
import { J as JSONSerializer } from "../json-BHxlccxF.js";
|
|
4
4
|
import { macroCondition, getGlobalConfig } from '@embroider/macros';
|
|
5
5
|
|
|
6
6
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
@@ -10,8 +10,6 @@ import { macroCondition, getGlobalConfig } from '@embroider/macros';
|
|
|
10
10
|
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
11
11
|
const JSONAPISerializer = JSONSerializer.extend({
|
|
12
12
|
/**
|
|
13
|
-
@param {Object} documentHash
|
|
14
|
-
@return {Object}
|
|
15
13
|
@private
|
|
16
14
|
*/
|
|
17
15
|
_normalizeDocumentHelper(documentHash) {
|
|
@@ -41,8 +39,6 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
41
39
|
return documentHash;
|
|
42
40
|
},
|
|
43
41
|
/**
|
|
44
|
-
@param {Object} relationshipDataHash
|
|
45
|
-
@return {Object}
|
|
46
42
|
@private
|
|
47
43
|
*/
|
|
48
44
|
_normalizeRelationshipDataHelper(relationshipDataHash) {
|
|
@@ -50,8 +46,6 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
50
46
|
return relationshipDataHash;
|
|
51
47
|
},
|
|
52
48
|
/**
|
|
53
|
-
@param {Object} resourceHash
|
|
54
|
-
@return {Object}
|
|
55
49
|
@private
|
|
56
50
|
*/
|
|
57
51
|
_normalizeResourceHelper(resourceHash) {
|
|
@@ -88,21 +82,13 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
88
82
|
/**
|
|
89
83
|
Normalize some data and push it into the store.
|
|
90
84
|
@public
|
|
91
|
-
@param {Store} store
|
|
92
|
-
@param {Object} payload
|
|
93
85
|
*/
|
|
94
86
|
pushPayload(store, payload) {
|
|
95
87
|
const normalizedPayload = this._normalizeDocumentHelper(payload);
|
|
96
88
|
store.push(normalizedPayload);
|
|
97
89
|
},
|
|
98
90
|
/**
|
|
99
|
-
@
|
|
100
|
-
@param {Model} primaryModelClass
|
|
101
|
-
@param {Object} payload
|
|
102
|
-
@param {String|Number} id
|
|
103
|
-
@param {String} requestType
|
|
104
|
-
@param {Boolean} isSingle
|
|
105
|
-
@return {Object} JSON-API Document
|
|
91
|
+
@return A {json:api} Document
|
|
106
92
|
@private
|
|
107
93
|
*/
|
|
108
94
|
_normalizeResponse(store, primaryModelClass, payload, id, requestType, isSingle) {
|
|
@@ -144,8 +130,6 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
144
130
|
Returns a relationship formatted as a JSON-API "relationship object".
|
|
145
131
|
http://jsonapi.org/format/#document-resource-object-relationships
|
|
146
132
|
@public
|
|
147
|
-
@param {Object} relationshipHash
|
|
148
|
-
@return {Object}
|
|
149
133
|
*/
|
|
150
134
|
extractRelationship(relationshipHash) {
|
|
151
135
|
if (Array.isArray(relationshipHash.data)) {
|
|
@@ -164,9 +148,6 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
164
148
|
Returns the resource's relationships formatted as a JSON-API "relationships object".
|
|
165
149
|
http://jsonapi.org/format/#document-resource-object-relationships
|
|
166
150
|
@public
|
|
167
|
-
@param {Object} modelClass
|
|
168
|
-
@param {Object} resourceHash
|
|
169
|
-
@return {Object}
|
|
170
151
|
*/
|
|
171
152
|
extractRelationships(modelClass, resourceHash) {
|
|
172
153
|
const relationships = {};
|
|
@@ -191,9 +172,6 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
191
172
|
return relationships;
|
|
192
173
|
},
|
|
193
174
|
/**
|
|
194
|
-
@param {Model} modelClass
|
|
195
|
-
@param {Object} resourceHash
|
|
196
|
-
@return {String}
|
|
197
175
|
@private
|
|
198
176
|
*/
|
|
199
177
|
_extractType(modelClass, resourceHash) {
|
|
@@ -205,8 +183,7 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
205
183
|
For example the key `posts` would be converted to `post` and the
|
|
206
184
|
key `studentAssesments` would be converted to `student-assesment`.
|
|
207
185
|
@public
|
|
208
|
-
@
|
|
209
|
-
@return {String} the model's modelName
|
|
186
|
+
@return the model's modelName
|
|
210
187
|
*/
|
|
211
188
|
modelNameFromPayloadKey(key) {
|
|
212
189
|
return dasherize(singularize(key));
|
|
@@ -216,8 +193,6 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
216
193
|
For example `post` would be converted to `posts` and
|
|
217
194
|
`student-assesment` would be converted to `student-assesments`.
|
|
218
195
|
@public
|
|
219
|
-
@param {String} modelName
|
|
220
|
-
@return {String}
|
|
221
196
|
*/
|
|
222
197
|
payloadKeyFromModelName(modelName) {
|
|
223
198
|
return pluralize(modelName);
|
|
@@ -267,9 +242,7 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
267
242
|
}
|
|
268
243
|
```
|
|
269
244
|
@public
|
|
270
|
-
@
|
|
271
|
-
@param {String} method
|
|
272
|
-
@return {String} normalized key
|
|
245
|
+
@return normalized key
|
|
273
246
|
*/
|
|
274
247
|
keyForAttribute(key, method) {
|
|
275
248
|
return dasherize(key);
|
|
@@ -292,10 +265,7 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
292
265
|
}
|
|
293
266
|
```
|
|
294
267
|
@public
|
|
295
|
-
@
|
|
296
|
-
@param {String} typeClass
|
|
297
|
-
@param {String} method
|
|
298
|
-
@return {String} normalized key
|
|
268
|
+
@return the normalized key
|
|
299
269
|
*/
|
|
300
270
|
keyForRelationship(key, typeClass, method) {
|
|
301
271
|
return dasherize(key);
|
|
@@ -426,9 +396,6 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
426
396
|
}
|
|
427
397
|
```
|
|
428
398
|
@public
|
|
429
|
-
@param {Snapshot} snapshot
|
|
430
|
-
@param {Object} options
|
|
431
|
-
@return {Object} json
|
|
432
399
|
*/
|
|
433
400
|
serialize(snapshot, options) {
|
|
434
401
|
// @ts-expect-error untyped
|
|
@@ -467,6 +434,7 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
467
434
|
// @ts-expect-error untyped
|
|
468
435
|
if (this._canSerialize(name)) {
|
|
469
436
|
const belongsTo = snapshot.belongsTo(name);
|
|
437
|
+
// @ts-expect-error not narrowed
|
|
470
438
|
const belongsToIsNotNew = belongsTo && !belongsTo.isNew;
|
|
471
439
|
if (belongsTo === null || belongsToIsNotNew) {
|
|
472
440
|
json.relationships = json.relationships || {};
|
|
@@ -480,11 +448,13 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
480
448
|
}
|
|
481
449
|
let data = null;
|
|
482
450
|
if (belongsTo) {
|
|
451
|
+
// @ts-expect-error not narrowed
|
|
483
452
|
const payloadType = this.payloadKeyFromModelName(belongsTo.modelName);
|
|
484
453
|
|
|
485
454
|
// @ts-expect-error untyped
|
|
486
455
|
data = {
|
|
487
456
|
type: payloadType,
|
|
457
|
+
// @ts-expect-error not narrowed
|
|
488
458
|
id: belongsTo.id
|
|
489
459
|
};
|
|
490
460
|
}
|
|
@@ -512,13 +482,16 @@ const JSONAPISerializer = JSONSerializer.extend({
|
|
|
512
482
|
}
|
|
513
483
|
|
|
514
484
|
// only serialize has many relationships that are not new
|
|
485
|
+
// @ts-expect-error not narrowed
|
|
515
486
|
const nonNewHasMany = hasMany.filter(item => !item.isNew);
|
|
516
487
|
const data = new Array(nonNewHasMany.length);
|
|
517
488
|
for (let i = 0; i < nonNewHasMany.length; i++) {
|
|
518
489
|
const item = hasMany[i];
|
|
490
|
+
// @ts-expect-error not narrowed
|
|
519
491
|
const payloadType = this.payloadKeyFromModelName(item.modelName);
|
|
520
492
|
data[i] = {
|
|
521
493
|
type: payloadType,
|
|
494
|
+
// @ts-expect-error not narrowed
|
|
522
495
|
id: item.id
|
|
523
496
|
};
|
|
524
497
|
}
|
package/dist/serializer/json.js
CHANGED
|
@@ -2,5 +2,5 @@ import '@ember/application';
|
|
|
2
2
|
import '@ember/debug';
|
|
3
3
|
import '@warp-drive/utilities/string';
|
|
4
4
|
import '../serializer.js';
|
|
5
|
-
export { J as JSONSerializer } from "../json-
|
|
5
|
+
export { J as JSONSerializer } from "../json-BHxlccxF.js";
|
|
6
6
|
import '@embroider/macros';
|
package/dist/serializer/rest.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { warn } from '@ember/debug';
|
|
2
2
|
import { camelize, dasherize, singularize } from '@warp-drive/utilities/string';
|
|
3
|
-
import { J as JSONSerializer, c as coerceId } from "../json-
|
|
3
|
+
import { J as JSONSerializer, c as coerceId } from "../json-BHxlccxF.js";
|
|
4
4
|
import { macroCondition, getGlobalConfig } from '@embroider/macros';
|
|
5
5
|
import Mixin from '@ember/object/mixin';
|
|
6
6
|
|
|
@@ -96,11 +96,6 @@ import Mixin from '@ember/object/mixin';
|
|
|
96
96
|
are. Please read the docs for the methods this mixin provides, in case you need
|
|
97
97
|
to modify it to fit your specific needs.**
|
|
98
98
|
|
|
99
|
-
For example, review the docs for each method of this mixin:
|
|
100
|
-
* [normalize](/ember-data/release/classes/EmbeddedRecordsMixin/methods/normalize?anchor=normalize)
|
|
101
|
-
* [serializeBelongsTo](/ember-data/release/classes/EmbeddedRecordsMixin/methods/serializeBelongsTo?anchor=serializeBelongsTo)
|
|
102
|
-
* [serializeHasMany](/ember-data/release/classes/EmbeddedRecordsMixin/methods/serializeHasMany?anchor=serializeHasMany)
|
|
103
|
-
|
|
104
99
|
@class EmbeddedRecordsMixin
|
|
105
100
|
@public
|
|
106
101
|
*/
|
|
@@ -583,13 +578,11 @@ function makeArray(value) {
|
|
|
583
578
|
}
|
|
584
579
|
|
|
585
580
|
/**
|
|
586
|
-
*
|
|
587
|
-
|
|
588
|
-
⚠️ <strong>This is LEGACY documentation</strong> for a feature that is no longer encouraged to be used.
|
|
581
|
+
* :::danger
|
|
582
|
+
⚠️ **This is LEGACY documentation** for a feature that is no longer encouraged to be used.
|
|
589
583
|
If starting a new app or thinking of implementing a new adapter, consider writing a
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
</blockquote>
|
|
584
|
+
{@link Handler} instead to be used with the {@link RequestManager}
|
|
585
|
+
:::
|
|
593
586
|
|
|
594
587
|
Normally, applications will use the `RESTSerializer` by implementing
|
|
595
588
|
the `normalize` method.
|
|
@@ -79,11 +79,13 @@ import EmberObject from '@ember/object';
|
|
|
79
79
|
*/
|
|
80
80
|
const Transform = EmberObject;
|
|
81
81
|
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
83
|
+
|
|
82
84
|
/**
|
|
83
85
|
The `BooleanTransform` class is used to serialize and deserialize
|
|
84
86
|
boolean attributes on Ember Data record objects. This transform is
|
|
85
|
-
used when `boolean` is passed as the type parameter to the
|
|
86
|
-
|
|
87
|
+
used when `'boolean'` is passed as the type parameter to the
|
|
88
|
+
{@link attr}function.
|
|
87
89
|
|
|
88
90
|
Usage
|
|
89
91
|
|
|
@@ -139,11 +141,13 @@ class BooleanTransform {
|
|
|
139
141
|
}
|
|
140
142
|
}
|
|
141
143
|
|
|
144
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
145
|
+
|
|
142
146
|
/**
|
|
143
147
|
The `DateTransform` class is used to serialize and deserialize
|
|
144
148
|
date attributes on Ember Data record objects. This transform is used
|
|
145
|
-
when `date` is passed as the type parameter to the
|
|
146
|
-
|
|
149
|
+
when `'date'` is passed as the type parameter to the
|
|
150
|
+
{@link attr} function. It uses the [`ISO 8601`](https://en.wikipedia.org/wiki/ISO_8601)
|
|
147
151
|
standard.
|
|
148
152
|
|
|
149
153
|
```js [app/models/score.js]
|
|
@@ -190,6 +194,9 @@ class DateTransform {
|
|
|
190
194
|
return new this();
|
|
191
195
|
}
|
|
192
196
|
}
|
|
197
|
+
|
|
198
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
199
|
+
|
|
193
200
|
function isNumber(value) {
|
|
194
201
|
return value === value && value !== Infinity && value !== -Infinity;
|
|
195
202
|
}
|
|
@@ -197,7 +204,7 @@ function isNumber(value) {
|
|
|
197
204
|
The `NumberTransform` class is used to serialize and deserialize
|
|
198
205
|
numeric attributes on Ember Data record objects. This transform is
|
|
199
206
|
used when `number` is passed as the type parameter to the
|
|
200
|
-
|
|
207
|
+
{@link attr} function.
|
|
201
208
|
|
|
202
209
|
Usage
|
|
203
210
|
|
|
@@ -235,11 +242,13 @@ class NumberTransform {
|
|
|
235
242
|
}
|
|
236
243
|
}
|
|
237
244
|
|
|
245
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
246
|
+
|
|
238
247
|
/**
|
|
239
248
|
The `StringTransform` class is used to serialize and deserialize
|
|
240
249
|
string attributes on Ember Data record objects. This transform is
|
|
241
250
|
used when `string` is passed as the type parameter to the
|
|
242
|
-
|
|
251
|
+
{@link attr} function.
|
|
243
252
|
|
|
244
253
|
Usage
|
|
245
254
|
|
package/dist/serializer.js
CHANGED
|
@@ -5,13 +5,11 @@ import { a as decorateFieldV2, i as initializeDeferredDecorator } from "./runtim
|
|
|
5
5
|
/**
|
|
6
6
|
## Overview
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
⚠️ <strong>This is LEGACY documentation</strong> for a feature that is no longer encouraged to be used.
|
|
8
|
+
:::danger
|
|
9
|
+
⚠️ **This is LEGACY documentation** for a feature that is no longer encouraged to be used.
|
|
11
10
|
If starting a new app or thinking of implementing a new serializer, consider writing a
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
</blockquote>
|
|
11
|
+
{@link Handler} instead to be used with the {@link RequestManager}
|
|
12
|
+
:::
|
|
15
13
|
|
|
16
14
|
In order to properly manage and present your data, WarpDrive
|
|
17
15
|
needs to understand the structure of data it receives.
|
|
@@ -20,14 +18,14 @@ import { a as decorateFieldV2, i as initializeDeferredDecorator } from "./runtim
|
|
|
20
18
|
the format WarpDrive understands.
|
|
21
19
|
|
|
22
20
|
Data received from an API response is **normalized** into
|
|
23
|
-
[
|
|
21
|
+
[{json:api}](https://jsonapi.org/) (the format used internally
|
|
24
22
|
by WarpDrive), while data sent to an API is **serialized**
|
|
25
23
|
into the format the API expects.
|
|
26
24
|
|
|
27
25
|
### Implementing a Serializer
|
|
28
26
|
|
|
29
27
|
There are only two required serializer methods, one for
|
|
30
|
-
normalizing data from the server API format into
|
|
28
|
+
normalizing data from the server API format into {json:api}, and
|
|
31
29
|
another for serializing records via `Snapshots` into the expected
|
|
32
30
|
server API format.
|
|
33
31
|
|
|
@@ -73,7 +71,7 @@ import { a as decorateFieldV2, i as initializeDeferredDecorator } from "./runtim
|
|
|
73
71
|
// app/serializers/application.js
|
|
74
72
|
```
|
|
75
73
|
|
|
76
|
-
Most requests in
|
|
74
|
+
Most requests in `@warp-drive/legacy` are made with respect to a particular `type` (or `modelName`)
|
|
77
75
|
(e.g., "get me the full collection of **books**" or "get me the **employee** whose id is 37"). We
|
|
78
76
|
refer to this as the **primary** resource `type`.
|
|
79
77
|
|
|
@@ -109,7 +107,6 @@ import { a as decorateFieldV2, i as initializeDeferredDecorator } from "./runtim
|
|
|
109
107
|
|
|
110
108
|
@module
|
|
111
109
|
*/
|
|
112
|
-
|
|
113
110
|
const service = s.service ?? s.inject;
|
|
114
111
|
|
|
115
112
|
/**
|
|
@@ -127,8 +124,7 @@ const service = s.service ?? s.inject;
|
|
|
127
124
|
|
|
128
125
|
* `normalize()`
|
|
129
126
|
|
|
130
|
-
For an example implementation, see
|
|
131
|
-
[JSONSerializer](JSONSerializer), the included JSON serializer.
|
|
127
|
+
For an example implementation, see the included {@link JSONSerializer}.
|
|
132
128
|
|
|
133
129
|
@class Serializer
|
|
134
130
|
@public
|
package/dist/store.js
CHANGED
|
@@ -524,6 +524,9 @@ function restoreDeprecatedStoreBehaviors(StoreKlass) {
|
|
|
524
524
|
});
|
|
525
525
|
return promise.then(document => document.content);
|
|
526
526
|
};
|
|
527
|
+
|
|
528
|
+
// do not put a ts-expect-error here, because typedoc will fail to
|
|
529
|
+
// build due to this error only occurring when references are in use in the editor
|
|
527
530
|
StoreKlass.prototype.getReference = function (resource, id) {
|
|
528
531
|
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
|
|
529
532
|
if (!test) {
|
package/logos/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
# Autogeneration Notice
|
|
2
2
|
|
|
3
|
-
This directory is maintained in the root of the monorepo and sync'd
|
|
4
|
-
repositories by running `bun sync-logos`
|
|
3
|
+
This directory is maintained in the root of the monorepo in `/logos/synced` and sync'd
|
|
4
|
+
to public repositories by running `bun sync-logos`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1498" height="1047" fill="none" viewBox="0 0 1498 1047"><g filter="url(#a)"><path fill="url(#b)" d="M132 175.075C132 149.076 153.138 128 179.213 128H1318.23c26.08 0 47.22 21.076 47.22 47.075v688.85c0 25.999-21.14 47.075-47.22 47.075H179.213C153.138 911 132 889.924 132 863.925z"/><path fill="#201328" d="M1043.4 587.312c0-39.962 30.84-72.357 68.87-72.357h53.09c38.04 0 68.88-32.395 68.88-72.357v-92.651c0-39.962-30.84-72.358-68.88-72.358h-53.09c-38.01 0-68.82 32.351-68.87 72.275v92.734c0 39.962-30.83 72.357-68.869 72.357h-53.089c-38.036 0-68.871-32.395-68.871-72.357v-87.409c0-39.962-30.835-72.358-68.872-72.358h-51.654c-38.037 0-68.872 32.396-68.872 72.358v87.409c0 39.962-30.835 72.357-68.872 72.357h-53.088c-38.037 0-68.872-32.395-68.872-72.357v-92.652c0-39.961-30.835-72.357-68.872-72.357h-53.088c-38.037 0-68.872 32.396-68.872 72.357v92.652c0 39.962 30.835 72.357 68.872 72.357h53.088c38.037 0 68.872 32.395 68.872 72.357v101.741c0 39.962 30.835 72.358 68.872 72.358h53.088c38.037 0 68.872-32.396 68.872-72.358V587.312c0-39.962 30.835-72.357 68.872-72.357h51.654c38.037 0 68.872 32.395 68.872 72.357v101.741c0 39.962 30.835 72.358 68.871 72.358h53.089c38.039 0 68.869-32.396 68.869-72.358z"/></g><defs><linearGradient id="b" x1="748.724" x2="1167.5" y1="128" y2="1070.23" gradientUnits="userSpaceOnUse"><stop stop-color="#ffc474"/><stop offset="1" stop-color="#ff9809"/></linearGradient><filter id="a" width="1497.45" height="1047" x="0" y="0" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="4"/><feGaussianBlur stdDeviation="66"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_757_188"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="4"/><feGaussianBlur stdDeviation="18"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/><feBlend in2="effect1_dropShadow_757_188" result="effect2_dropShadow_757_188"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="4"/><feGaussianBlur stdDeviation="2"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/><feBlend in2="effect2_dropShadow_757_188" result="effect3_dropShadow_757_188"/><feBlend in="SourceGraphic" in2="effect3_dropShadow_757_188" result="shape"/></filter></defs></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="2081" height="200" fill="none" viewBox="0 0 2081 200"><path fill="#000" d="M2064.89 185.359c-15.57 5.16-31.15 8.846-46.72 11.058q-23.22 3.456-47.55 3.456c-20.73 0-39.21-2.212-55.43-6.635q-24.18-6.773-40.77-19.49c-11.06-8.478-19.49-18.844-25.3-31.1-5.8-12.256-8.71-26.125-8.71-41.606 0-14.375 2.91-27.69 8.71-39.947 5.9-12.348 14.19-23.037 24.88-32.068 10.78-9.123 23.78-16.218 38.98-21.286C1928.19 2.58 1945.14 0 1963.85 0c17.23 0 32.99 2.35 47.27 7.05 14.38 4.607 26.68 11.472 36.91 20.595q15.48 13.684 23.91 33.727c5.71 13.361 8.57 28.75 8.57 46.167v12.716h-187.16a48.3 48.3 0 0 0 8.16 16.449c3.87 4.976 9.08 9.215 15.62 12.717 6.54 3.501 14.56 6.22 24.05 8.155 9.58 1.935 21.01 2.903 34.28 2.903 9.4 0 18.61-.553 27.64-1.659 9.04-1.198 17.47-2.719 25.3-4.562q11.745-2.902 21.15-6.358c6.36-2.304 11.47-4.607 15.34-6.911zm-35.38-102.7c-.47-4.7-1.89-9.538-4.29-14.514-2.3-5.069-5.99-9.63-11.06-13.685s-11.7-7.371-19.9-9.952q-12.3-4.008-30.69-4.008-17.28 0-29.85 4.285-12.585 4.284-21.15 10.643c-5.62 4.239-10 8.8-13.13 13.684-3.14 4.884-5.16 9.4-6.09 13.546zm-284.63 112.099h-59.71l-96.06-189.92h57.22l69.11 142.924 68.98-142.924h57.22zm-238.29 0V4.838h51.28v189.92zm-32.63-146.932c-1.38-.461-3.4-1.06-6.08-1.797q-3.87-1.245-9.12-2.35-5.25-1.244-11.61-2.073c-4.15-.553-8.43-.83-12.86-.83-9.21 0-17.83 1.152-25.84 3.456q-11.895 3.317-22.26 8.984a125.3 125.3 0 0 0-19.35 12.717c-5.9 4.7-11.33 9.537-16.31 14.514v114.311h-51.28V4.838h51.28v30.824c6.17-4.608 12.49-9.03 18.94-13.27a163 163 0 0 1 20.32-11.472c7.09-3.318 14.56-5.944 22.39-7.88 7.83-2.026 16.12-3.04 24.88-3.04 3.32 0 6.68.184 10.09.553 3.5.276 6.86.645 10.09 1.106 3.32.46 6.4.967 9.26 1.52s5.35 1.106 7.46 1.659zM1263.71 99.66c0 12.164-1.33 22.991-4 32.483-2.68 9.399-6.45 17.6-11.34 24.604-4.79 7.003-10.6 12.947-17.42 17.831q-10.08 7.325-22.53 11.749c-8.29 2.948-17.23 5.114-26.81 6.496q-14.37 1.935-30 1.935h-120.53V4.838h120.26c10.41 0 20.41.691 29.99 2.073 9.59 1.29 18.52 3.41 26.82 6.359 8.38 2.948 15.99 6.865 22.8 11.749 6.82 4.791 12.63 10.735 17.42 17.83 4.89 7.004 8.66 15.205 11.34 24.605 2.67 9.399 4 20.134 4 32.206m-51.69 0q0-13.685-3.6-23.775c-2.3-6.727-6.08-12.256-11.33-16.587-5.16-4.423-11.93-7.694-20.32-9.814-8.38-2.211-18.61-3.317-30.68-3.317h-63.73v107.262h63.73c12.07 0 22.3-1.06 30.68-3.179 8.39-2.212 15.16-5.529 20.32-9.952 5.25-4.515 9.03-10.137 11.33-16.864q3.6-10.09 3.6-23.774M986.574 63.169q0 14.237-4.699 25.157-4.562 10.92-14.514 18.383-9.952 7.464-25.71 11.335-15.62 3.732-37.735 3.732h-85.285v72.982h-17.278V4.838h102.563q22.116 0 37.735 3.87 15.758 3.732 25.71 11.058t14.514 18.246q4.7 10.92 4.699 25.157m-17.831 0q0-13.546-4.561-21.84-4.423-8.294-13.823-12.716-9.26-4.562-23.636-6.082-14.237-1.52-33.865-1.52h-74.227v84.593h74.227q7.602 0 16.172.138 8.709 0 17.14-.83 8.432-.967 16.034-3.179 7.74-2.349 13.546-7.05 5.945-4.699 9.399-12.301 3.594-7.602 3.594-19.213M766.455 19.49q-4.01-1.244-11.197-2.627-7.049-1.52-18.245-1.52-15.481 0-29.166 3.87-13.545 3.732-25.295 10.229a126.3 126.3 0 0 0-21.563 15.205q-9.951 8.57-17.969 18.245v131.866h-17.278V4.838h17.278V43.54a166 166 0 0 1 20.043-17.555q10.92-8.017 22.945-13.684a125.8 125.8 0 0 1 25.157-8.985Q724.435 0 738.533 0q4.839 0 8.708.276 3.87.14 7.05.553 3.317.277 6.22.691 2.902.416 5.944.968zm-220.33 175.268v-21.01q-9.952 5.39-22.669 9.952-12.579 4.562-26.677 7.879-13.96 3.318-28.751 5.114-14.79 1.797-29.027 1.797-18.522 0-33.312-3.317-14.652-3.318-24.881-9.814-10.228-6.635-15.757-16.31-5.529-9.814-5.529-22.669 0-12.717 6.358-22.393 6.497-9.813 18.384-17.001 11.887-7.326 28.612-12.302 16.864-5.115 37.598-8.57 20.733-3.594 44.784-5.806 24.19-2.349 50.867-3.87V61.925q0-8.846-3.318-15.62-3.317-6.772-9.261-11.749-5.943-5.115-13.96-8.431-8.017-3.456-17.416-5.53-9.262-2.074-19.628-2.902a219 219 0 0 0-20.596-.968q-13.96 0-25.433 1.383-11.473 1.381-21.425 3.87-9.952 2.35-19.075 5.529a563 563 0 0 0-18.384 6.773V14.099q19.213-5.114 40.915-8.846 21.839-3.87 46.305-3.87 20.733 0 38.703 3.593 17.969 3.456 31.238 11.196 13.27 7.74 20.872 20.043 7.603 12.164 7.603 29.718v128.825zm0-102.977q-45.2 2.489-77.268 7.05-31.929 4.561-52.248 11.196-20.32 6.634-29.857 15.481-9.399 8.846-9.399 20.042 0 9.123 4.561 16.173 4.7 7.049 13.408 11.887 8.708 4.7 21.148 7.188 12.44 2.349 27.922 2.349 9.123 0 18.798-.967a276 276 0 0 0 19.49-2.903 319 319 0 0 0 19.075-4.423q9.4-2.627 17.693-5.667t15.066-6.497q6.912-3.455 11.611-7.049zM180.245 4.838l67.73 176.098L318.193 4.838h19.213l-76.438 189.92h-25.71L168.634 23.222l-66.486 171.536h-25.71L0 4.838h19.213l70.218 176.098L157.023 4.838z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="2081" height="200" fill="none" viewBox="0 0 2081 200"><path fill="#fff" d="M2064.89 185.359c-15.57 5.16-31.15 8.846-46.72 11.058q-23.22 3.456-47.55 3.456c-20.73 0-39.21-2.212-55.43-6.635q-24.18-6.773-40.77-19.49c-11.06-8.478-19.49-18.844-25.3-31.1-5.8-12.256-8.71-26.125-8.71-41.606 0-14.375 2.91-27.69 8.71-39.947 5.9-12.348 14.19-23.037 24.88-32.068 10.78-9.123 23.78-16.218 38.98-21.286C1928.19 2.58 1945.14 0 1963.85 0c17.23 0 32.99 2.35 47.27 7.05 14.38 4.607 26.68 11.472 36.91 20.595q15.48 13.684 23.91 33.727c5.71 13.361 8.57 28.75 8.57 46.167v12.716h-187.16a48.3 48.3 0 0 0 8.16 16.449c3.87 4.976 9.08 9.215 15.62 12.717 6.54 3.501 14.56 6.22 24.05 8.155 9.58 1.935 21.01 2.903 34.28 2.903 9.4 0 18.61-.553 27.64-1.659 9.04-1.198 17.47-2.719 25.3-4.562q11.745-2.902 21.15-6.358c6.36-2.304 11.47-4.607 15.34-6.911zm-35.38-102.7c-.47-4.7-1.89-9.538-4.29-14.514-2.3-5.069-5.99-9.63-11.06-13.685s-11.7-7.371-19.9-9.952q-12.3-4.008-30.69-4.008-17.28 0-29.85 4.285-12.585 4.284-21.15 10.643c-5.62 4.239-10 8.8-13.13 13.684-3.14 4.884-5.16 9.4-6.09 13.546zm-284.63 112.099h-59.71l-96.06-189.92h57.22l69.11 142.924 68.98-142.924h57.22zm-238.29 0V4.838h51.28v189.92zm-32.63-146.932c-1.38-.461-3.4-1.06-6.08-1.797q-3.87-1.245-9.12-2.35-5.25-1.244-11.61-2.073c-4.15-.553-8.43-.83-12.86-.83-9.21 0-17.83 1.152-25.84 3.456q-11.895 3.317-22.26 8.984a125.3 125.3 0 0 0-19.35 12.717c-5.9 4.7-11.33 9.537-16.31 14.514v114.311h-51.28V4.838h51.28v30.824c6.17-4.608 12.49-9.03 18.94-13.27a163 163 0 0 1 20.32-11.472c7.09-3.318 14.56-5.944 22.39-7.88 7.83-2.026 16.12-3.04 24.88-3.04 3.32 0 6.68.184 10.09.553 3.5.276 6.86.645 10.09 1.106 3.32.46 6.4.967 9.26 1.52s5.35 1.106 7.46 1.659zM1263.71 99.66c0 12.164-1.33 22.991-4 32.483-2.68 9.399-6.45 17.6-11.34 24.604-4.79 7.003-10.6 12.947-17.42 17.831q-10.08 7.325-22.53 11.749c-8.29 2.948-17.23 5.114-26.81 6.496q-14.37 1.935-30 1.935h-120.53V4.838h120.26c10.41 0 20.41.691 29.99 2.073 9.59 1.29 18.52 3.41 26.82 6.359 8.38 2.948 15.99 6.865 22.8 11.749 6.82 4.791 12.63 10.735 17.42 17.83 4.89 7.004 8.66 15.205 11.34 24.605 2.67 9.399 4 20.134 4 32.206m-51.69 0q0-13.685-3.6-23.775c-2.3-6.727-6.08-12.256-11.33-16.587-5.16-4.423-11.93-7.694-20.32-9.814-8.38-2.211-18.61-3.317-30.68-3.317h-63.73v107.262h63.73c12.07 0 22.3-1.06 30.68-3.179 8.39-2.212 15.16-5.529 20.32-9.952 5.25-4.515 9.03-10.137 11.33-16.864q3.6-10.09 3.6-23.774M986.574 63.169q0 14.237-4.699 25.157-4.562 10.92-14.514 18.383-9.952 7.464-25.71 11.335-15.62 3.732-37.735 3.732h-85.285v72.982h-17.278V4.838h102.563q22.116 0 37.735 3.87 15.758 3.732 25.71 11.058t14.514 18.246q4.7 10.92 4.699 25.157m-17.831 0q0-13.546-4.561-21.84-4.423-8.294-13.823-12.716-9.26-4.562-23.636-6.082-14.237-1.52-33.865-1.52h-74.227v84.593h74.227q7.602 0 16.172.138 8.709 0 17.14-.83 8.432-.967 16.034-3.179 7.74-2.349 13.546-7.05 5.945-4.699 9.399-12.301 3.594-7.602 3.594-19.213M766.455 19.49q-4.01-1.244-11.197-2.627-7.049-1.52-18.245-1.52-15.481 0-29.166 3.87-13.545 3.732-25.295 10.229a126.3 126.3 0 0 0-21.563 15.205q-9.951 8.57-17.969 18.245v131.866h-17.278V4.838h17.278V43.54a166 166 0 0 1 20.043-17.555q10.92-8.017 22.945-13.684a125.8 125.8 0 0 1 25.157-8.985Q724.435 0 738.533 0q4.839 0 8.708.276 3.87.14 7.05.553 3.317.277 6.22.691 2.902.416 5.944.968zm-220.33 175.268v-21.01q-9.952 5.39-22.669 9.952-12.579 4.562-26.677 7.879-13.96 3.318-28.751 5.114-14.79 1.797-29.027 1.797-18.522 0-33.312-3.317-14.652-3.318-24.881-9.814-10.228-6.635-15.757-16.31-5.529-9.814-5.529-22.669 0-12.717 6.358-22.393 6.497-9.813 18.384-17.001 11.887-7.326 28.612-12.302 16.864-5.115 37.598-8.57 20.733-3.594 44.784-5.806 24.19-2.349 50.867-3.87V61.925q0-8.846-3.318-15.62-3.317-6.772-9.261-11.749-5.943-5.115-13.96-8.431-8.017-3.456-17.416-5.53-9.262-2.074-19.628-2.902a219 219 0 0 0-20.596-.968q-13.96 0-25.433 1.383-11.473 1.381-21.425 3.87-9.952 2.35-19.075 5.529a563 563 0 0 0-18.384 6.773V14.099q19.213-5.114 40.915-8.846 21.839-3.87 46.305-3.87 20.733 0 38.703 3.593 17.969 3.456 31.238 11.196 13.27 7.74 20.872 20.043 7.603 12.164 7.603 29.718v128.825zm0-102.977q-45.2 2.489-77.268 7.05-31.929 4.561-52.248 11.196-20.32 6.634-29.857 15.481-9.399 8.846-9.399 20.042 0 9.123 4.561 16.173 4.7 7.049 13.408 11.887 8.708 4.7 21.148 7.188 12.44 2.349 27.922 2.349 9.123 0 18.798-.967a276 276 0 0 0 19.49-2.903 319 319 0 0 0 19.075-4.423q9.4-2.627 17.693-5.667t15.066-6.497q6.912-3.455 11.611-7.049zM180.245 4.838l67.73 176.098L318.193 4.838h19.213l-76.438 189.92h-25.71L168.634 23.222l-66.486 171.536h-25.71L0 4.838h19.213l70.218 176.098L157.023 4.838z"/></svg>
|