@ember-data/serializer 5.4.0-alpha.35 → 5.4.0-alpha.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/addon/-private.js +3 -3
  2. package/addon/{embedded-records-mixin-HTw8JJT1.js.map → embedded-records-mixin-QJe_8jrF.js.map} +1 -1
  3. package/addon/index.js.map +1 -1
  4. package/addon/json.js +1 -1
  5. package/addon/json.js.map +1 -1
  6. package/addon/rest.js +2 -2
  7. package/addon/rest.js.map +1 -1
  8. package/addon/{string-A02hFTMo.js → string-Juwz4cu0.js} +13 -0
  9. package/addon/string-Juwz4cu0.js.map +1 -0
  10. package/addon/transform.js +1 -1
  11. package/addon/{utils-N1ERF6HN.js.map → utils-NcVD2Jb5.js.map} +1 -1
  12. package/addon-main.js +1 -0
  13. package/package.json +40 -35
  14. package/unstable-preview-types/-private/transforms/boolean.d.ts +2 -0
  15. package/unstable-preview-types/-private/transforms/boolean.d.ts.map +1 -1
  16. package/unstable-preview-types/-private/transforms/date.d.ts +2 -0
  17. package/unstable-preview-types/-private/transforms/date.d.ts.map +1 -1
  18. package/unstable-preview-types/-private/transforms/number.d.ts +2 -0
  19. package/unstable-preview-types/-private/transforms/number.d.ts.map +1 -1
  20. package/unstable-preview-types/-private/transforms/string.d.ts +2 -0
  21. package/unstable-preview-types/-private/transforms/string.d.ts.map +1 -1
  22. package/unstable-preview-types/index.d.ts +8 -7
  23. package/unstable-preview-types/index.d.ts.map +1 -1
  24. package/unstable-preview-types/json-api.d.ts +2 -2
  25. package/unstable-preview-types/rest.d.ts +2 -2
  26. package/addon/string-A02hFTMo.js.map +0 -1
  27. /package/addon/{embedded-records-mixin-HTw8JJT1.js → embedded-records-mixin-QJe_8jrF.js} +0 -0
  28. /package/addon/{utils-N1ERF6HN.js → utils-NcVD2Jb5.js} +0 -0
@@ -1,4 +1,5 @@
1
1
  import EmberObject from '@ember/object';
2
+ import { TransformName } from '@warp-drive/core-types/symbols';
2
3
 
3
4
  /**
4
5
  @module @ember-data/serializer
@@ -160,6 +161,9 @@ const Transform = EmberObject;
160
161
  @public
161
162
  */
162
163
  class BooleanTransform {
164
+ constructor() {
165
+ this[TransformName] = 'boolean';
166
+ }
163
167
  deserialize(serialized, options) {
164
168
  if ((serialized === null || serialized === undefined) && options?.allowNull === true) {
165
169
  return null;
@@ -211,6 +215,9 @@ class BooleanTransform {
211
215
  */
212
216
 
213
217
  class DateTransform {
218
+ constructor() {
219
+ this[TransformName] = 'date';
220
+ }
214
221
  deserialize(serialized, _options) {
215
222
  if (typeof serialized === 'string') {
216
223
  let offset = serialized.indexOf('+');
@@ -272,6 +279,9 @@ function isNumber(value) {
272
279
  @public
273
280
  */
274
281
  class NumberTransform {
282
+ constructor() {
283
+ this[TransformName] = 'number';
284
+ }
275
285
  deserialize(serialized, _options) {
276
286
  if (serialized === '' || serialized === null || serialized === undefined) {
277
287
  return null;
@@ -319,6 +329,9 @@ class NumberTransform {
319
329
  @public
320
330
  */
321
331
  class StringTransform {
332
+ constructor() {
333
+ this[TransformName] = 'string';
334
+ }
322
335
  deserialize(serialized, _options) {
323
336
  return !serialized && serialized !== '' ? null : String(serialized);
324
337
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-Juwz4cu0.js","sources":["../src/-private/transforms/transform.ts","../src/-private/transforms/boolean.ts","../src/-private/transforms/date.ts","../src/-private/transforms/number.ts","../src/-private/transforms/string.ts"],"sourcesContent":["/**\n @module @ember-data/serializer\n*/\nimport EmberObject from '@ember/object';\n\nimport type { AttributeSchema } from '@warp-drive/core-types/schema';\n\n/**\n The `Transform` class is used to serialize and deserialize model\n attributes when they are saved or loaded from an\n adapter. Subclassing `Transform` is useful for creating custom\n attributes. All subclasses of `Transform` must implement a\n `serialize` and a `deserialize` method.\n\n Example\n\n ```app/transforms/temperature.js\n\n // Converts centigrade in the JSON to fahrenheit in the app\n export default class TemperatureTransform {\n deserialize(serialized, options) {\n return (serialized * 1.8) + 32;\n }\n\n serialize(deserialized, options) {\n return (deserialized - 32) / 1.8;\n }\n\n static create() {\n return new this();\n }\n }\n ```\n\n Usage\n\n ```app/models/requirement.js\n import Model, { attr } from '@ember-data/model';\n\n export default class RequirementModel extends Model {\n @attr('string') name;\n @attr('temperature') temperature;\n }\n ```\n\n The options passed into the `attr` function when the attribute is\n declared on the model is also available in the transform.\n\n ```app/models/post.js\n import Model, { attr } from '@ember-data/model';\n\n export default class PostModel extends Model {\n @attr('string') title;\n @attr('markdown', {\n markdown: {\n gfm: false,\n sanitize: true\n }\n })\n markdown;\n }\n ```\n\n ```app/transforms/markdown.js\n export default class MarkdownTransform {\n serialize(deserialized, options) {\n return deserialized.raw;\n }\n\n deserialize(serialized, options) {\n let markdownOptions = options.markdown || {};\n\n return marked(serialized, markdownOptions);\n }\n\n static create() {\n return new this();\n }\n }\n ```\n\n @class Transform\n @public\n */\n/**\n When given a deserialized value from a record attribute this\n method must return the serialized value.\n\n Example\n\n ```javascript\n serialize(deserialized, options) {\n return deserialized ? null : Number(deserialized);\n }\n ```\n\n @method serialize\n @public\n @param deserialized The deserialized value\n @param options hash of options passed to `attr`\n @return The serialized value\n*/\n/**\n When given a serialized value from a JSON object this method must\n return the deserialized value for the record attribute.\n\n Example\n\n ```javascript\n deserialize(serialized, options) {\n return empty(serialized) ? null : Number(serialized);\n }\n ```\n\n @method deserialize\n @public\n @param serialized The serialized value\n @param options hash of options passed to `attr`\n @return The deserialized value\n*/\ninterface Transform {\n serialize(value: unknown, options: AttributeSchema['options']): unknown;\n deserialize(value: unknown, options: AttributeSchema['options']): unknown;\n}\nconst Transform = EmberObject;\n\nexport default Transform;\n","/**\n @module @ember-data/serializer\n*/\n\nimport { TransformName } from '@warp-drive/core-types/symbols';\n\n/**\n The `BooleanTransform` class is used to serialize and deserialize\n boolean attributes on Ember Data record objects. This transform is\n used when `boolean` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/user.js\n import Model, { attr } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('boolean') isAdmin;\n @attr('string') name;\n @attr('string') email;\n }\n ```\n\n By default, the boolean transform only allows for values of `true` or\n `false`. You can opt into allowing `null` values for\n boolean attributes via `attr('boolean', { allowNull: true })`\n\n ```app/models/user.js\n import Model, { attr } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('string') email;\n @attr('string') username;\n @attr('boolean', { allowNull: true }) wantsWeeklyEmail;\n }\n ```\n\n @class BooleanTransform\n @public\n */\nexport default class BooleanTransform {\n deserialize(serialized: boolean | null | number | string, options?: { allowNull?: boolean }): boolean | null {\n if ((serialized === null || serialized === undefined) && options?.allowNull === true) {\n return null;\n }\n\n if (typeof serialized === 'boolean') {\n return serialized;\n } else if (typeof serialized === 'string') {\n return /^(true|t|1)$/i.test(serialized);\n } else if (typeof serialized === 'number') {\n return serialized === 1;\n } else {\n return false;\n }\n }\n\n serialize(deserialized: boolean | null, options?: { allowNull?: boolean }): boolean | null {\n if ((deserialized === null || deserialized === undefined) && options?.allowNull === true) {\n return null;\n }\n\n return Boolean(deserialized);\n }\n\n [TransformName] = 'boolean' as const;\n\n static create() {\n return new this();\n }\n}\n","/**\n @module @ember-data/serializer\n*/\n\nimport { TransformName } from '@warp-drive/core-types/symbols';\n\n/**\n The `DateTransform` class is used to serialize and deserialize\n date attributes on Ember Data record objects. This transform is used\n when `date` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function. It uses the [`ISO 8601`](https://en.wikipedia.org/wiki/ISO_8601)\n standard.\n\n ```app/models/score.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class ScoreModel extends Model {\n @attr('number') value;\n @belongsTo('player') player;\n @attr('date') date;\n }\n ```\n\n @class DateTransform\n @public\n */\n\nexport default class DateTransform {\n deserialize(serialized: string | number | null, _options?: Record<string, unknown>) {\n if (typeof serialized === 'string') {\n let offset = serialized.indexOf('+');\n\n if (offset !== -1 && serialized.length - 5 === offset) {\n offset += 3;\n return new Date(serialized.slice(0, offset) + ':' + serialized.slice(offset));\n }\n return new Date(serialized);\n } else if (typeof serialized === 'number') {\n return new Date(serialized);\n } else if (serialized === null || serialized === undefined) {\n // if the value is null return null\n // if the value is not present in the data return undefined\n return serialized;\n } else {\n return null;\n }\n }\n\n serialize(date: Date, _options?: Record<string, unknown>): string | null {\n // @ts-expect-error isNaN accepts date as it is coercible\n if (date instanceof Date && !isNaN(date)) {\n return date.toISOString();\n } else {\n return null;\n }\n }\n\n [TransformName] = 'date' as const;\n\n static create() {\n return new this();\n }\n}\n","/**\n @module @ember-data/serializer\n*/\n\nimport { TransformName } from '@warp-drive/core-types/symbols';\n\nfunction isNumber(value: number) {\n return value === value && value !== Infinity && value !== -Infinity;\n}\n\n/**\n The `NumberTransform` class is used to serialize and deserialize\n numeric attributes on Ember Data record objects. This transform is\n used when `number` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/score.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class ScoreModel extends Model {\n @attr('number') value;\n @belongsTo('player') player;\n @attr('date') date;\n }\n ```\n\n @class NumberTransform\n @public\n */\nexport default class NumberTransform {\n deserialize(serialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null {\n if (serialized === '' || serialized === null || serialized === undefined) {\n return null;\n } else {\n const transformed = Number(serialized);\n\n return isNumber(transformed) ? transformed : null;\n }\n }\n\n serialize(deserialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null {\n if (deserialized === '' || deserialized === null || deserialized === undefined) {\n return null;\n } else {\n const transformed = Number(deserialized);\n\n return isNumber(transformed) ? transformed : null;\n }\n }\n\n [TransformName] = 'number' as const;\n\n static create() {\n return new this();\n }\n}\n","/**\n @module @ember-data/serializer\n*/\n\nimport { TransformName } from '@warp-drive/core-types/symbols';\n\n/**\n The `StringTransform` class is used to serialize and deserialize\n string attributes on Ember Data record objects. This transform is\n used when `string` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/user.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('boolean') isAdmin;\n @attr('string') name;\n @attr('string') email;\n }\n ```\n\n @class StringTransform\n @public\n */\nexport default class StringTransform {\n deserialize(serialized: unknown, _options?: Record<string, unknown>): string | null {\n return !serialized && serialized !== '' ? null : String(serialized);\n }\n serialize(deserialized: unknown, _options?: Record<string, unknown>): string | null {\n return !deserialized && deserialized !== '' ? null : String(deserialized);\n }\n\n [TransformName] = 'string' as const;\n\n static create() {\n return new this();\n }\n}\n"],"names":["Transform","EmberObject","BooleanTransform","constructor","TransformName","deserialize","serialized","options","undefined","allowNull","test","serialize","deserialized","Boolean","create","DateTransform","_options","offset","indexOf","length","Date","slice","date","isNaN","toISOString","isNumber","value","Infinity","NumberTransform","transformed","Number","StringTransform","String"],"mappings":";;;AAAA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKMA,MAAAA,SAAS,GAAGC;;AC5HlB;AACA;AACA;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,MAAMC,gBAAgB,CAAC;EAAAC,WAAA,GAAA;IAAA,IAyBnCC,CAAAA,aAAa,IAAI,SAAS,CAAA;AAAA,GAAA;AAxB3BC,EAAAA,WAAWA,CAACC,UAA4C,EAAEC,OAAiC,EAAkB;AAC3G,IAAA,IAAI,CAACD,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAKE,SAAS,KAAKD,OAAO,EAAEE,SAAS,KAAK,IAAI,EAAE;AACpF,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI,OAAOH,UAAU,KAAK,SAAS,EAAE;AACnC,MAAA,OAAOA,UAAU,CAAA;AACnB,KAAC,MAAM,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE;AACzC,MAAA,O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"}
@@ -1 +1 @@
1
- export { B as BooleanTransform, D as DateTransform, N as NumberTransform, S as StringTransform, T as default } from "./string-A02hFTMo";
1
+ export { B as BooleanTransform, D as DateTransform, N as NumberTransform, S as StringTransform, T as default } from "./string-Juwz4cu0";
@@ -1 +1 @@
1
- {"version":3,"file":"utils-N1ERF6HN.js","sources":["../src/-private/utils.ts"],"sourcesContent":["type Coercable = string | number | boolean | null | undefined | symbol;\n\nexport function coerceId(id: Coercable): string | null {\n if (id === null || id === undefined || id === '') {\n return null;\n } else if (typeof id === 'string') {\n return id;\n } else if (typeof id === 'symbol') {\n return id.toString();\n } else {\n return String(id);\n }\n}\n"],"names":["coerceId","id","undefined","toString","String"],"mappings":"AAEO,SAASA,QAAQA,CAACC,EAAa,EAAiB;EACrD,IAAIA,EAAE,KAAK,IAAI,IAAIA,EAAE,KAAKC,SAAS,IAAID,EAAE,KAAK,EAAE,EAAE;AAChD,IAAA,OAAO,IAAI,CAAA;AACb,GAAC,MAAM,IAAI,OAAOA,EAAE,KAAK,QAAQ,EAAE;AACjC,IAAA,OAAOA,EAAE,CAAA;AACX,GAAC,MAAM,IAAI,OAAOA,EAAE,KAAK,QAAQ,EAAE;AACjC,IAAA,OAAOA,EAAE,CAACE,QAAQ,EAAE,CAAA;AACtB,GAAC,MAAM;IACL,OAAOC,MAAM,CAACH,EAAE,CAAC,CAAA;AACnB,GAAA;AACF;;;;"}
1
+ {"version":3,"file":"utils-NcVD2Jb5.js","sources":["../src/-private/utils.ts"],"sourcesContent":["type Coercable = string | number | boolean | null | undefined | symbol;\n\nexport function coerceId(id: Coercable): string | null {\n if (id === null || id === undefined || id === '') {\n return null;\n } else if (typeof id === 'string') {\n return id;\n } else if (typeof id === 'symbol') {\n return id.toString();\n } else {\n return String(id);\n }\n}\n"],"names":["coerceId","id","undefined","toString","String"],"mappings":"AAEO,SAASA,QAAQA,CAACC,EAAa,EAAiB;EACrD,IAAIA,EAAE,KAAK,IAAI,IAAIA,EAAE,KAAKC,SAAS,IAAID,EAAE,KAAK,EAAE,EAAE;AAChD,IAAA,OAAO,IAAI,CAAA;AACb,GAAC,MAAM,IAAI,OAAOA,EAAE,KAAK,QAAQ,EAAE;AACjC,IAAA,OAAOA,EAAE,CAAA;AACX,GAAC,MAAM,IAAI,OAAOA,EAAE,KAAK,QAAQ,EAAE;AACjC,IAAA,OAAOA,EAAE,CAACE,QAAQ,EAAE,CAAA;AACtB,GAAC,MAAM;IACL,OAAOC,MAAM,CAACH,EAAE,CAAC,CAAA;AACnB,GAAA;AACF;;;;"}
package/addon-main.js CHANGED
@@ -58,6 +58,7 @@ module.exports = {
58
58
 
59
59
  // copy configs forward
60
60
  const ownConfig = this.options['@embroider/macros'].setOwnConfig;
61
+ ownConfig.polyfillUUID = hostOptions.polyfillUUID ?? false;
61
62
  ownConfig.compatWith = hostOptions.compatWith || null;
62
63
  ownConfig.debug = debugOptions;
63
64
  ownConfig.deprecations = Object.assign(DEPRECATIONS, ownConfig.deprecations || {}, hostOptions.deprecations || {});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-data/serializer",
3
- "version": "5.4.0-alpha.35",
3
+ "version": "5.4.0-alpha.41",
4
4
  "description": "Provides Legacy JSON, JSON:API and REST Implementations of the Serializer Interface for use with @ember-data/store",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -13,6 +13,13 @@
13
13
  "license": "MIT",
14
14
  "author": "",
15
15
  "directories": {},
16
+ "scripts": {
17
+ "lint": "eslint . --quiet --cache --cache-strategy=content --ext .js,.ts,.mjs,.cjs --report-unused-disable-directives",
18
+ "build:types": "tsc --build",
19
+ "build:client": "rollup --config && babel ./addon --out-dir addon --plugins=../private-build-infra/src/transforms/babel-plugin-transform-ext.js",
20
+ "_build": "bun run build:client && bun run build:types",
21
+ "_syncPnpm": "bun run sync-dependencies-meta-injected"
22
+ },
16
23
  "ember-addon": {
17
24
  "main": "addon-main.js",
18
25
  "type": "addon",
@@ -30,7 +37,8 @@
30
37
  ],
31
38
  "peerDependencies": {
32
39
  "@ember/string": "^3.1.1",
33
- "@warp-drive/core-types": "0.0.0-alpha.21",
40
+ "@warp-drive/core-types": "workspace:0.0.0-alpha.27",
41
+ "@ember-data/legacy-compat": "workspace:5.4.0-alpha.41",
34
42
  "ember-inflector": "^4.0.2"
35
43
  },
36
44
  "dependenciesMeta": {
@@ -54,42 +62,46 @@
54
62
  },
55
63
  "@ember-data/tracking": {
56
64
  "injected": true
65
+ },
66
+ "@ember-data/legacy-compat": {
67
+ "injected": true
57
68
  }
58
69
  },
59
70
  "dependencies": {
60
- "@ember-data/private-build-infra": "5.4.0-alpha.35",
61
- "@embroider/macros": "^1.13.5",
71
+ "@ember-data/private-build-infra": "workspace:5.4.0-alpha.41",
72
+ "@embroider/macros": "^1.15.0",
62
73
  "ember-cli-babel": "^8.2.0",
63
- "ember-cli-test-info": "^1.0.0",
64
- "pnpm-sync-dependencies-meta-injected": "0.0.10"
74
+ "ember-cli-test-info": "^1.0.0"
65
75
  },
66
76
  "devDependencies": {
67
- "@babel/cli": "^7.23.9",
68
- "@babel/core": "^7.23.9",
69
- "@babel/plugin-proposal-decorators": "^7.23.9",
70
- "@babel/plugin-transform-class-properties": "^7.23.3",
71
- "@babel/plugin-transform-private-methods": "^7.23.3",
72
- "@babel/plugin-transform-runtime": "^7.23.9",
73
- "@babel/plugin-transform-typescript": "^7.23.6",
74
- "@babel/preset-env": "^7.23.9",
75
- "@babel/preset-typescript": "^7.23.3",
76
- "@babel/runtime": "^7.23.9",
77
- "@ember-data/request": "5.4.0-alpha.35",
78
- "@ember-data/store": "5.4.0-alpha.35",
79
- "@ember-data/tracking": "5.4.0-alpha.35",
77
+ "@babel/cli": "^7.24.1",
78
+ "@babel/core": "^7.24.1",
79
+ "@babel/plugin-proposal-decorators": "^7.24.1",
80
+ "@babel/plugin-transform-class-properties": "^7.24.1",
81
+ "@babel/plugin-transform-private-methods": "^7.24.1",
82
+ "@babel/plugin-transform-runtime": "^7.24.1",
83
+ "@babel/plugin-transform-typescript": "^7.24.1",
84
+ "@babel/preset-env": "^7.24.1",
85
+ "@babel/preset-typescript": "^7.24.1",
86
+ "@babel/runtime": "^7.24.1",
87
+ "@ember-data/request": "workspace:5.4.0-alpha.41",
88
+ "@ember-data/store": "workspace:5.4.0-alpha.41",
89
+ "@ember-data/tracking": "workspace:5.4.0-alpha.41",
90
+ "@ember-data/legacy-compat": "workspace:5.4.0-alpha.41",
80
91
  "@ember/string": "^3.1.1",
81
- "@embroider/addon-dev": "^4.1.2",
92
+ "@embroider/addon-dev": "^4.2.1",
82
93
  "@glimmer/component": "^1.1.2",
83
94
  "@rollup/plugin-babel": "^6.0.4",
84
95
  "@rollup/plugin-node-resolve": "^15.2.3",
85
- "@warp-drive/core-types": "0.0.0-alpha.21",
86
- "@warp-drive/internal-config": "5.4.0-alpha.35",
96
+ "@warp-drive/core-types": "workspace:0.0.0-alpha.27",
97
+ "@warp-drive/internal-config": "workspace:5.4.0-alpha.41",
87
98
  "ember-inflector": "^4.0.2",
88
- "ember-source": "~5.6.0",
89
- "rollup": "^4.9.6",
90
- "typescript": "^5.3.3",
99
+ "ember-source": "~5.7.0",
100
+ "pnpm-sync-dependencies-meta-injected": "0.0.10",
101
+ "rollup": "^4.13.0",
102
+ "typescript": "^5.4.3",
91
103
  "walk-sync": "^3.0.0",
92
- "webpack": "^5.89.0"
104
+ "webpack": "^5.91.0"
93
105
  },
94
106
  "engines": {
95
107
  "node": ">= 18.19.1"
@@ -97,12 +109,5 @@
97
109
  "volta": {
98
110
  "extends": "../../package.json"
99
111
  },
100
- "packageManager": "pnpm@8.6.0",
101
- "scripts": {
102
- "lint": "eslint . --quiet --cache --cache-strategy=content --ext .js,.ts,.mjs,.cjs --report-unused-disable-directives",
103
- "build:types": "tsc --build",
104
- "build:client": "rollup --config && babel ./addon --out-dir addon --plugins=../private-build-infra/src/transforms/babel-plugin-transform-ext.js",
105
- "_build": "bun run build:client && bun run build:types",
106
- "_syncPnpm": "bun run sync-dependencies-meta-injected"
107
- }
108
- }
112
+ "packageManager": "pnpm@8.15.5"
113
+ }
@@ -2,6 +2,7 @@ declare module '@ember-data/serializer/-private/transforms/boolean' {
2
2
  /**
3
3
  @module @ember-data/serializer
4
4
  */
5
+ import { TransformName } from '@warp-drive/core-types/symbols';
5
6
  /**
6
7
  The `BooleanTransform` class is used to serialize and deserialize
7
8
  boolean attributes on Ember Data record objects. This transform is
@@ -44,6 +45,7 @@ declare module '@ember-data/serializer/-private/transforms/boolean' {
44
45
  serialize(deserialized: boolean | null, options?: {
45
46
  allowNull?: boolean;
46
47
  }): boolean | null;
48
+ [TransformName]: "boolean";
47
49
  static create(): BooleanTransform;
48
50
  }
49
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/boolean.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,GAAG,IAAI;IAgB5G,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,GAAG,IAAI;IAQ1F,MAAM,CAAC,MAAM;CAGd"}
1
+ {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/boolean.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,GAAG,IAAI;IAgB5G,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,GAAG,IAAI;IAQ1F,CAAC,aAAa,CAAC,YAAsB;IAErC,MAAM,CAAC,MAAM;CAGd"}
@@ -2,6 +2,7 @@ declare module '@ember-data/serializer/-private/transforms/date' {
2
2
  /**
3
3
  @module @ember-data/serializer
4
4
  */
5
+ import { TransformName } from '@warp-drive/core-types/symbols';
5
6
  /**
6
7
  The `DateTransform` class is used to serialize and deserialize
7
8
  date attributes on Ember Data record objects. This transform is used
@@ -25,6 +26,7 @@ declare module '@ember-data/serializer/-private/transforms/date' {
25
26
  export default class DateTransform {
26
27
  deserialize(serialized: string | number | null, _options?: Record<string, unknown>): Date | null;
27
28
  serialize(date: Date, _options?: Record<string, unknown>): string | null;
29
+ [TransformName]: "date";
28
30
  static create(): DateTransform;
29
31
  }
30
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/date.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoBlF,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IASxE,MAAM,CAAC,MAAM;CAGd"}
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/date.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoBlF,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IASxE,CAAC,aAAa,CAAC,SAAmB;IAElC,MAAM,CAAC,MAAM;CAGd"}
@@ -2,6 +2,7 @@ declare module '@ember-data/serializer/-private/transforms/number' {
2
2
  /**
3
3
  @module @ember-data/serializer
4
4
  */
5
+ import { TransformName } from '@warp-drive/core-types/symbols';
5
6
  /**
6
7
  The `NumberTransform` class is used to serialize and deserialize
7
8
  numeric attributes on Ember Data record objects. This transform is
@@ -26,6 +27,7 @@ declare module '@ember-data/serializer/-private/transforms/number' {
26
27
  export default class NumberTransform {
27
28
  deserialize(serialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null;
28
29
  serialize(deserialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null;
30
+ [TransformName]: "number";
29
31
  static create(): NumberTransform;
30
32
  }
31
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/number.ts"],"names":[],"mappings":"AAAA;;EAEE;AAMF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAU9G,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAU9G,MAAM,CAAC,MAAM;CAGd"}
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/number.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAM/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAU9G,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAU9G,CAAC,aAAa,CAAC,WAAqB;IAEpC,MAAM,CAAC,MAAM;CAGd"}
@@ -2,6 +2,7 @@ declare module '@ember-data/serializer/-private/transforms/string' {
2
2
  /**
3
3
  @module @ember-data/serializer
4
4
  */
5
+ import { TransformName } from '@warp-drive/core-types/symbols';
5
6
  /**
6
7
  The `StringTransform` class is used to serialize and deserialize
7
8
  string attributes on Ember Data record objects. This transform is
@@ -26,6 +27,7 @@ declare module '@ember-data/serializer/-private/transforms/string' {
26
27
  export default class StringTransform {
27
28
  deserialize(serialized: unknown, _options?: Record<string, unknown>): string | null;
28
29
  serialize(deserialized: unknown, _options?: Record<string, unknown>): string | null;
30
+ [TransformName]: "string";
29
31
  static create(): StringTransform;
30
32
  }
31
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/string.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAGnF,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAInF,MAAM,CAAC,MAAM;CAGd"}
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/string.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAGnF,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAInF,CAAC,aAAa,CAAC,WAAqB;IAEpC,MAAM,CAAC,MAAM;CAGd"}
@@ -1,15 +1,15 @@
1
1
  /// <reference path="./json-api.d.ts" />
2
- /// <reference path="./rest.d.ts" />
3
2
  /// <reference path="./transform.d.ts" />
4
- /// <reference path="./-private.d.ts" />
5
3
  /// <reference path="./json.d.ts" />
6
- /// <reference path="./-private/embedded-records-mixin.d.ts" />
4
+ /// <reference path="./rest.d.ts" />
5
+ /// <reference path="./-private.d.ts" />
7
6
  /// <reference path="./-private/utils.d.ts" />
8
- /// <reference path="./-private/transforms/string.d.ts" />
7
+ /// <reference path="./-private/embedded-records-mixin.d.ts" />
9
8
  /// <reference path="./-private/transforms/date.d.ts" />
10
- /// <reference path="./-private/transforms/boolean.d.ts" />
11
- /// <reference path="./-private/transforms/transform.d.ts" />
12
9
  /// <reference path="./-private/transforms/number.d.ts" />
10
+ /// <reference path="./-private/transforms/transform.d.ts" />
11
+ /// <reference path="./-private/transforms/string.d.ts" />
12
+ /// <reference path="./-private/transforms/boolean.d.ts" />
13
13
  declare module '@ember-data/serializer' {
14
14
  /**
15
15
  ## Overview
@@ -123,6 +123,7 @@ declare module '@ember-data/serializer' {
123
123
  import EmberObject from '@ember/object';
124
124
  import type Store from '@ember-data/store';
125
125
  import type { ModelSchema } from '@ember-data/store/-types/q/ds-model';
126
+ import type { EmptyResourceDocument, SingleResourceDocument } from '@warp-drive/core-types/spec/raw';
126
127
  /**
127
128
  > ⚠️ CAUTION you likely want the docs for [<Interface> Serializer](/ember-data/release/classes/%3CInterface%3E%20Serializer)
128
129
  > as extending this abstract class is unnecessary.
@@ -271,7 +272,7 @@ declare module '@ember-data/serializer' {
271
272
  @param {Object} hash
272
273
  @return {Object}
273
274
  */
274
- normalize(_typeClass: ModelSchema, hash: Record<string, unknown>): Record<string, unknown>;
275
+ normalize(_typeClass: ModelSchema, hash: Record<string, unknown>): SingleResourceDocument | EmptyResourceDocument;
275
276
  }
276
277
  }
277
278
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2GE;;AAEF,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;EAqBE;AAEF,MAAM,CAAC,OAAO,MAAO,SAAQ,WAAW;IACrB,KAAK,EAAE,KAAK,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;MAoBE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkCE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwCE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;MA0BE;IACF,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG3F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2GE;;AAEF,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAErG;;;;;;;;;;;;;;;;;;;;;EAqBE;AAEF,MAAM,CAAC,OAAO,MAAO,SAAQ,WAAW;IACrB,KAAK,EAAE,KAAK,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;MAoBE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkCE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwCE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;MA0BE;IACF,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB,GAAG,qBAAqB;CAGlH"}
@@ -126,7 +126,7 @@ declare module '@ember-data/serializer/json-api' {
126
126
  @public
127
127
  @extends JSONSerializer
128
128
  */
129
- const JSONAPISerializer: Readonly<Readonly<typeof import(".").default> & (new (owner?: import("@ember/-internals/owner").default | undefined) => import(".").default) & {
129
+ const JSONAPISerializer: Readonly<Readonly<typeof import("@ember-data/serializer").default> & (new (owner?: import("@ember/-internals/owner").default | undefined) => import(".").default) & {
130
130
  primaryKey: string;
131
131
  mergedProperties: Object;
132
132
  applyTransforms(typeClass: Model, data: Object): Object;
@@ -170,7 +170,7 @@ declare module '@ember-data/serializer/json-api' {
170
170
  keyForRelationship(key: string, typeClass: string, method: string): string;
171
171
  keyForLink(key: string, kind: string): string;
172
172
  transformFor(attributeType: string, skipAssertion: boolean): Transform;
173
- }> & (new (owner?: import("@ember/-internals/owner").default | undefined) => import(".").default) & {
173
+ }> & (new (owner?: import("@ember-data/serializer/@ember/-internals/owner").default | undefined) => import(".").default) & {
174
174
  /**
175
175
  @method _normalizeDocumentHelper
176
176
  @param {Object} documentHash
@@ -54,7 +54,7 @@ declare module '@ember-data/serializer/rest' {
54
54
  @public
55
55
  @extends JSONSerializer
56
56
  */
57
- const RESTSerializer: Readonly<Readonly<typeof import(".").default> & (new (owner?: import("@ember/-internals/owner").default | undefined) => import(".").default) & {
57
+ const RESTSerializer: Readonly<Readonly<typeof import("@ember-data/serializer").default> & (new (owner?: import("@ember/-internals/owner").default | undefined) => import(".").default) & {
58
58
  primaryKey: string;
59
59
  mergedProperties: Object;
60
60
  applyTransforms(typeClass: Model, data: Object): Object;
@@ -129,7 +129,7 @@ declare module '@ember-data/serializer/rest' {
129
129
  keyForRelationship(key: string, typeClass: string, method: string): string;
130
130
  keyForLink(key: string, kind: string): string;
131
131
  transformFor(attributeType: string, skipAssertion: boolean): Transform;
132
- }> & (new (owner?: import("@ember/-internals/owner").default | undefined) => import(".").default) & {
132
+ }> & (new (owner?: import("@ember-data/serializer/@ember/-internals/owner").default | undefined) => import(".").default) & {
133
133
  /**
134
134
  `keyForPolymorphicType` can be used to define a custom key when
135
135
  serializing and deserializing a polymorphic type. By default, the
@@ -1 +0,0 @@
1
- {"version":3,"file":"string-A02hFTMo.js","sources":["../src/-private/transforms/transform.ts","../src/-private/transforms/boolean.ts","../src/-private/transforms/date.ts","../src/-private/transforms/number.ts","../src/-private/transforms/string.ts"],"sourcesContent":["/**\n @module @ember-data/serializer\n*/\nimport EmberObject from '@ember/object';\n\nimport type { AttributeSchema } from '@warp-drive/core-types/schema';\n\n/**\n The `Transform` class is used to serialize and deserialize model\n attributes when they are saved or loaded from an\n adapter. Subclassing `Transform` is useful for creating custom\n attributes. All subclasses of `Transform` must implement a\n `serialize` and a `deserialize` method.\n\n Example\n\n ```app/transforms/temperature.js\n\n // Converts centigrade in the JSON to fahrenheit in the app\n export default class TemperatureTransform {\n deserialize(serialized, options) {\n return (serialized * 1.8) + 32;\n }\n\n serialize(deserialized, options) {\n return (deserialized - 32) / 1.8;\n }\n\n static create() {\n return new this();\n }\n }\n ```\n\n Usage\n\n ```app/models/requirement.js\n import Model, { attr } from '@ember-data/model';\n\n export default class RequirementModel extends Model {\n @attr('string') name;\n @attr('temperature') temperature;\n }\n ```\n\n The options passed into the `attr` function when the attribute is\n declared on the model is also available in the transform.\n\n ```app/models/post.js\n import Model, { attr } from '@ember-data/model';\n\n export default class PostModel extends Model {\n @attr('string') title;\n @attr('markdown', {\n markdown: {\n gfm: false,\n sanitize: true\n }\n })\n markdown;\n }\n ```\n\n ```app/transforms/markdown.js\n export default class MarkdownTransform {\n serialize(deserialized, options) {\n return deserialized.raw;\n }\n\n deserialize(serialized, options) {\n let markdownOptions = options.markdown || {};\n\n return marked(serialized, markdownOptions);\n }\n\n static create() {\n return new this();\n }\n }\n ```\n\n @class Transform\n @public\n */\n/**\n When given a deserialized value from a record attribute this\n method must return the serialized value.\n\n Example\n\n ```javascript\n serialize(deserialized, options) {\n return deserialized ? null : Number(deserialized);\n }\n ```\n\n @method serialize\n @public\n @param deserialized The deserialized value\n @param options hash of options passed to `attr`\n @return The serialized value\n*/\n/**\n When given a serialized value from a JSON object this method must\n return the deserialized value for the record attribute.\n\n Example\n\n ```javascript\n deserialize(serialized, options) {\n return empty(serialized) ? null : Number(serialized);\n }\n ```\n\n @method deserialize\n @public\n @param serialized The serialized value\n @param options hash of options passed to `attr`\n @return The deserialized value\n*/\ninterface Transform {\n serialize(value: unknown, options: AttributeSchema['options']): unknown;\n deserialize(value: unknown, options: AttributeSchema['options']): unknown;\n}\nconst Transform = EmberObject;\n\nexport default Transform;\n","/**\n @module @ember-data/serializer\n*/\n\n/**\n The `BooleanTransform` class is used to serialize and deserialize\n boolean attributes on Ember Data record objects. This transform is\n used when `boolean` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/user.js\n import Model, { attr } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('boolean') isAdmin;\n @attr('string') name;\n @attr('string') email;\n }\n ```\n\n By default, the boolean transform only allows for values of `true` or\n `false`. You can opt into allowing `null` values for\n boolean attributes via `attr('boolean', { allowNull: true })`\n\n ```app/models/user.js\n import Model, { attr } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('string') email;\n @attr('string') username;\n @attr('boolean', { allowNull: true }) wantsWeeklyEmail;\n }\n ```\n\n @class BooleanTransform\n @public\n */\nexport default class BooleanTransform {\n deserialize(serialized: boolean | null | number | string, options?: { allowNull?: boolean }): boolean | null {\n if ((serialized === null || serialized === undefined) && options?.allowNull === true) {\n return null;\n }\n\n if (typeof serialized === 'boolean') {\n return serialized;\n } else if (typeof serialized === 'string') {\n return /^(true|t|1)$/i.test(serialized);\n } else if (typeof serialized === 'number') {\n return serialized === 1;\n } else {\n return false;\n }\n }\n\n serialize(deserialized: boolean | null, options?: { allowNull?: boolean }): boolean | null {\n if ((deserialized === null || deserialized === undefined) && options?.allowNull === true) {\n return null;\n }\n\n return Boolean(deserialized);\n }\n\n static create() {\n return new this();\n }\n}\n","/**\n @module @ember-data/serializer\n*/\n\n/**\n The `DateTransform` class is used to serialize and deserialize\n date attributes on Ember Data record objects. This transform is used\n when `date` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function. It uses the [`ISO 8601`](https://en.wikipedia.org/wiki/ISO_8601)\n standard.\n\n ```app/models/score.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class ScoreModel extends Model {\n @attr('number') value;\n @belongsTo('player') player;\n @attr('date') date;\n }\n ```\n\n @class DateTransform\n @public\n */\n\nexport default class DateTransform {\n deserialize(serialized: string | number | null, _options?: Record<string, unknown>) {\n if (typeof serialized === 'string') {\n let offset = serialized.indexOf('+');\n\n if (offset !== -1 && serialized.length - 5 === offset) {\n offset += 3;\n return new Date(serialized.slice(0, offset) + ':' + serialized.slice(offset));\n }\n return new Date(serialized);\n } else if (typeof serialized === 'number') {\n return new Date(serialized);\n } else if (serialized === null || serialized === undefined) {\n // if the value is null return null\n // if the value is not present in the data return undefined\n return serialized;\n } else {\n return null;\n }\n }\n\n serialize(date: Date, _options?: Record<string, unknown>): string | null {\n // @ts-expect-error isNaN accepts date as it is coercible\n if (date instanceof Date && !isNaN(date)) {\n return date.toISOString();\n } else {\n return null;\n }\n }\n\n static create() {\n return new this();\n }\n}\n","/**\n @module @ember-data/serializer\n*/\n\nfunction isNumber(value: number) {\n return value === value && value !== Infinity && value !== -Infinity;\n}\n\n/**\n The `NumberTransform` class is used to serialize and deserialize\n numeric attributes on Ember Data record objects. This transform is\n used when `number` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/score.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class ScoreModel extends Model {\n @attr('number') value;\n @belongsTo('player') player;\n @attr('date') date;\n }\n ```\n\n @class NumberTransform\n @public\n */\nexport default class NumberTransform {\n deserialize(serialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null {\n if (serialized === '' || serialized === null || serialized === undefined) {\n return null;\n } else {\n const transformed = Number(serialized);\n\n return isNumber(transformed) ? transformed : null;\n }\n }\n\n serialize(deserialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null {\n if (deserialized === '' || deserialized === null || deserialized === undefined) {\n return null;\n } else {\n const transformed = Number(deserialized);\n\n return isNumber(transformed) ? transformed : null;\n }\n }\n\n static create() {\n return new this();\n }\n}\n","/**\n @module @ember-data/serializer\n*/\n\n/**\n The `StringTransform` class is used to serialize and deserialize\n string attributes on Ember Data record objects. This transform is\n used when `string` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/user.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('boolean') isAdmin;\n @attr('string') name;\n @attr('string') email;\n }\n ```\n\n @class StringTransform\n @public\n */\nexport default class StringTransform {\n deserialize(serialized: unknown, _options?: Record<string, unknown>): string | null {\n return !serialized && serialized !== '' ? null : String(serialized);\n }\n serialize(deserialized: unknown, _options?: Record<string, unknown>): string | null {\n return !deserialized && deserialized !== '' ? null : String(deserialized);\n }\n\n static create() {\n return new this();\n }\n}\n"],"names":["Transform","EmberObject","BooleanTransform","deserialize","serialized","options","undefined","allowNull","test","serialize","deserialized","Boolean","create","DateTransform","_options","offset","indexOf","length","Date","slice","date","isNaN","toISOString","isNumber","value","Infinity","NumberTransform","transformed","Number","StringTransform","String"],"mappings":";;AAAA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKMA,MAAAA,SAAS,GAAGC;;AC5HlB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,MAAMC,gBAAgB,CAAC;AACpCC,EAAAA,WAAWA,CAACC,UAA4C,EAAEC,OAAiC,EAAkB;AAC3G,IAAA,IAAI,CAACD,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAKE,SAAS,KAAKD,OAAO,EAAEE,SAAS,KAAK,IAAI,EAAE;AACpF,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI,OAAOH,UAAU,KAAK,SAAS,EAAE;AACnC,MAAA,OAAOA,UAAU,CAAA;AACnB,KAAC,MAAM,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE;AACzC,MAAA,OAAO,eAAe,CAACI,IAAI,CAACJ,UAAU,CAAC,CAAA;AACzC,KAAC,MAAM,IAAI,OAAOA,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"}
File without changes