@warp-drive-mirror/utilities 5.7.0 → 5.8.0-alpha.10

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 CHANGED
@@ -15,10 +15,13 @@
15
15
 
16
16
  ![NPM Stable Version](https://img.shields.io/npm/v/ember-data/latest?label=version&style=flat&color=FFC474)
17
17
  ![NPM Downloads](https://img.shields.io/npm/dm/ember-data.svg?style=flat&color=FFC474)
18
- ![License](https://img.shields.io/github/license/emberjs/data.svg?style=flat&color=FFC474)
18
+ ![License](https://img.shields.io/github/license/warp-drive-data/warp-drive.svg?style=flat&color=FFC474)
19
19
  [![Docs](./logos/docs-badge.svg)](https://docs.warp-drive.io)
20
- [![Discord Community Server](https://img.shields.io/badge/Discord-grey?logo=discord&logoColor=FFC474)](https://discord.gg/zT3asNS
20
+ [![EmberJS Discord Community Server](https://img.shields.io/badge/EmberJS-grey?logo=discord&logoColor=FFC474)](https://discord.gg/zT3asNS
21
21
  )
22
+ [![WarpDrive Discord Server](https://img.shields.io/badge/WarpDrive-grey?logo=discord&logoColor=FFC474)](https://discord.gg/PHBbnWJx5S
23
+ )
24
+
22
25
 
23
26
  <br>
24
27
 
@@ -45,7 +48,7 @@ pnpm add -E @warp-drive-mirror/utilities
45
48
 
46
49
  ## Code of Conduct
47
50
 
48
- Refer to the [Code of Conduct](https://github.com/emberjs/data/blob/main/CODE_OF_CONDUCT.md) for community guidelines and inclusivity.
51
+ Refer to the [Code of Conduct](https://github.com/warp-drive-data/warp-drive/blob/main/CODE_OF_CONDUCT.md) for community guidelines and inclusivity.
49
52
 
50
53
  <br>
51
54
 
@@ -1,9 +1,6 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive";
1
2
  import type { TypeFromInstance } from "@warp-drive-mirror/core/types/record";
2
3
  import type { FindRecordOptions, FindRecordRequestOptions, RemotelyAccessibleIdentifier } from "@warp-drive-mirror/core/types/request";
3
- import type { SingleResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
4
- export type FindRecordResultDocument<T> = Omit<SingleResourceDataDocument<T>, "data"> & {
5
- data: T;
6
- };
7
4
  /**
8
5
  * Builds request options to fetch a single resource by a known id or identifier
9
6
  * configured for the url and header expectations of most ActiveRecord APIs.
@@ -59,7 +56,9 @@ export type FindRecordResultDocument<T> = Omit<SingleResourceDataDocument<T>, "d
59
56
  * @param identifier
60
57
  * @param options
61
58
  */
62
- export declare function findRecord<T>(identifier: RemotelyAccessibleIdentifier<TypeFromInstance<T>>, options?: FindRecordOptions): FindRecordRequestOptions<FindRecordResultDocument<T>, T>;
59
+ export declare function findRecord<T>(identifier: RemotelyAccessibleIdentifier<TypeFromInstance<T>>, options?: FindRecordOptions): FindRecordRequestOptions<ReactiveDataDocument<T>, T>;
63
60
  export declare function findRecord(identifier: RemotelyAccessibleIdentifier, options?: FindRecordOptions): FindRecordRequestOptions;
64
- export declare function findRecord<T>(type: TypeFromInstance<T>, id: string, options?: FindRecordOptions): FindRecordRequestOptions<FindRecordResultDocument<T>, T>;
61
+ export declare function findRecord<T>(type: TypeFromInstance<T>, id: string, options?: FindRecordOptions): FindRecordRequestOptions<ReactiveDataDocument<T>, T>;
65
62
  export declare function findRecord(type: string, id: string, options?: FindRecordOptions): FindRecordRequestOptions;
63
+ /** @deprecated use {@link ReactiveDataDocument} instead */
64
+ export type FindRecordResultDocument<T> = ReactiveDataDocument<T>;
@@ -1,7 +1,7 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive";
1
2
  import type { QueryParamsSource } from "@warp-drive-mirror/core/types/params";
2
3
  import type { TypeFromInstance } from "@warp-drive-mirror/core/types/record";
3
4
  import type { ConstrainedRequestOptions, QueryRequestOptions } from "@warp-drive-mirror/core/types/request";
4
- import type { CollectionResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
5
5
  /**
6
6
  * Builds request options to query for resources, usually by a primary
7
7
  * type, configured for the url and header expectations of most ActiveRecord APIs.
@@ -49,5 +49,5 @@ import type { CollectionResourceDataDocument } from "@warp-drive-mirror/core/typ
49
49
  * @param query
50
50
  * @param options
51
51
  */
52
- export declare function query<T>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions<CollectionResourceDataDocument<T>>;
52
+ export declare function query<T>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions<ReactiveDataDocument<T[]>>;
53
53
  export declare function query(type: string, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions;
@@ -1,6 +1,6 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive";
1
2
  import type { TypedRecordInstance } from "@warp-drive-mirror/core/types/record";
2
3
  import type { ConstrainedRequestOptions, CreateRequestOptions, DeleteRequestOptions, UpdateRequestOptions } from "@warp-drive-mirror/core/types/request";
3
- import type { SingleResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
4
4
  /**
5
5
  * Builds request options to delete record for resources,
6
6
  * configured for the url, method and header expectations of ActiveRecord APIs.
@@ -140,7 +140,7 @@ export declare function updateRecord<
140
140
  RT extends TypedRecordInstance = T
141
141
  >(record: T, options?: ConstrainedRequestOptions & {
142
142
  patch?: boolean;
143
- }): UpdateRequestOptions<SingleResourceDataDocument<RT>, T>;
143
+ }): UpdateRequestOptions<ReactiveDataDocument<RT>, T>;
144
144
  export declare function updateRecord(record: unknown, options?: ConstrainedRequestOptions & {
145
145
  patch?: boolean;
146
146
  }): UpdateRequestOptions;
@@ -40,7 +40,7 @@ import type { Handler } from "@warp-drive-mirror/core/request";
40
40
  * ```
41
41
  *
42
42
  * Errors are not processed by this handler, so if the request fails and the error response
43
- * is not in {JSON:API} format additional processing may be needed.
43
+ * is not in {json:api} format additional processing may be needed.
44
44
  *
45
45
  * @group Handlers
46
46
  */
@@ -1,6 +1,6 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive";
1
2
  import type { TypeFromInstance } from "@warp-drive-mirror/core/types/record";
2
3
  import type { FindRecordOptions, FindRecordRequestOptions, RemotelyAccessibleIdentifier } from "@warp-drive-mirror/core/types/request";
3
- import type { SingleResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
4
4
  /**
5
5
  * Builds request options to fetch a single resource by a known id or identifier
6
6
  * configured for the url and header expectations of most JSON:API APIs.
@@ -53,13 +53,10 @@ import type { SingleResourceDataDocument } from "@warp-drive-mirror/core/types/s
53
53
  * ```
54
54
  *
55
55
  * @public
56
- * @param identifier
57
- * @param options
58
56
  */
59
- export type FindRecordResultDocument<T> = Omit<SingleResourceDataDocument<T>, "data"> & {
60
- data: T;
61
- };
62
- export declare function findRecord<T>(identifier: RemotelyAccessibleIdentifier<TypeFromInstance<T>>, options?: FindRecordOptions): FindRecordRequestOptions<FindRecordResultDocument<T>, T>;
57
+ export declare function findRecord<T>(identifier: RemotelyAccessibleIdentifier<TypeFromInstance<T>>, options?: FindRecordOptions): FindRecordRequestOptions<ReactiveDataDocument<T>, T>;
63
58
  export declare function findRecord(identifier: RemotelyAccessibleIdentifier, options?: FindRecordOptions): FindRecordRequestOptions;
64
- export declare function findRecord<T>(type: TypeFromInstance<T>, id: string, options?: FindRecordOptions): FindRecordRequestOptions<FindRecordResultDocument<T>, T>;
59
+ export declare function findRecord<T>(type: TypeFromInstance<T>, id: string, options?: FindRecordOptions): FindRecordRequestOptions<ReactiveDataDocument<T>, T>;
65
60
  export declare function findRecord(type: string, id: string, options?: FindRecordOptions): FindRecordRequestOptions;
61
+ /** @deprecated use {@link ReactiveDataDocument} */
62
+ export type FindRecordResultDocument<T> = ReactiveDataDocument<T>;
@@ -1,7 +1,7 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive";
1
2
  import type { QueryParamsSource } from "@warp-drive-mirror/core/types/params";
2
3
  import type { TypedRecordInstance, TypeFromInstance } from "@warp-drive-mirror/core/types/record";
3
4
  import type { ConstrainedRequestOptions, PostQueryRequestOptions, QueryRequestOptions } from "@warp-drive-mirror/core/types/request";
4
- import type { CollectionResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
5
5
  /**
6
6
  * Builds request options to query for resources, usually by a primary
7
7
  * type, configured for the url and header expectations of most JSON:API APIs.
@@ -49,11 +49,8 @@ import type { CollectionResourceDataDocument } from "@warp-drive-mirror/core/typ
49
49
  * ```
50
50
  *
51
51
  * @public
52
- * @param identifier
53
- * @param query
54
- * @param options
55
52
  */
56
- export declare function query<T extends TypedRecordInstance>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions<CollectionResourceDataDocument<T>>;
53
+ export declare function query<T extends TypedRecordInstance>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions<ReactiveDataDocument<T[]>>;
57
54
  export declare function query(type: string, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions;
58
55
  /**
59
56
  * Builds request options to query for resources, usually by a primary
@@ -99,5 +96,5 @@ export declare function query(type: string, query?: QueryParamsSource, options?:
99
96
  * @param query
100
97
  * @param options
101
98
  */
102
- export declare function postQuery<T>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): PostQueryRequestOptions<CollectionResourceDataDocument<T>>;
99
+ export declare function postQuery<T>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): PostQueryRequestOptions<ReactiveDataDocument<T[]>>;
103
100
  export declare function postQuery(type: string, query?: QueryParamsSource, options?: ConstrainedRequestOptions): PostQueryRequestOptions;
@@ -1,6 +1,6 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive.js";
1
2
  import type { TypedRecordInstance } from "@warp-drive-mirror/core/types/record";
2
3
  import type { ConstrainedRequestOptions, CreateRequestOptions, DeleteRequestOptions, UpdateRequestOptions } from "@warp-drive-mirror/core/types/request";
3
- import type { SingleResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
4
4
  /**
5
5
  * Builds request options to delete record for resources,
6
6
  * configured for the url, method and header expectations of most JSON:API APIs.
@@ -140,7 +140,7 @@ export declare function updateRecord<
140
140
  RT extends TypedRecordInstance = T
141
141
  >(record: T, options?: ConstrainedRequestOptions & {
142
142
  patch?: boolean;
143
- }): UpdateRequestOptions<SingleResourceDataDocument<RT>, T>;
143
+ }): UpdateRequestOptions<ReactiveDataDocument<RT>, T>;
144
144
  export declare function updateRecord(record: unknown, options?: ConstrainedRequestOptions & {
145
145
  patch?: boolean;
146
146
  }): UpdateRequestOptions;
@@ -1,6 +1,6 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive";
1
2
  import type { TypeFromInstance } from "@warp-drive-mirror/core/types/record";
2
3
  import type { FindRecordOptions, FindRecordRequestOptions, RemotelyAccessibleIdentifier } from "@warp-drive-mirror/core/types/request";
3
- import type { SingleResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
4
4
  /**
5
5
  * Builds request options to fetch a single resource by a known id or identifier
6
6
  * configured for the url and header expectations of most REST APIs.
@@ -53,13 +53,10 @@ import type { SingleResourceDataDocument } from "@warp-drive-mirror/core/types/s
53
53
  * ```
54
54
  *
55
55
  * @public
56
- * @param identifier
57
- * @param options
58
56
  */
59
- export type FindRecordResultDocument<T> = Omit<SingleResourceDataDocument<T>, "data"> & {
60
- data: T;
61
- };
62
- export declare function findRecord<T>(identifier: RemotelyAccessibleIdentifier<TypeFromInstance<T>>, options?: FindRecordOptions): FindRecordRequestOptions<FindRecordResultDocument<T>, T>;
57
+ export declare function findRecord<T>(identifier: RemotelyAccessibleIdentifier<TypeFromInstance<T>>, options?: FindRecordOptions): FindRecordRequestOptions<ReactiveDataDocument<T>, T>;
63
58
  export declare function findRecord(identifier: RemotelyAccessibleIdentifier, options?: FindRecordOptions): FindRecordRequestOptions;
64
- export declare function findRecord<T>(type: TypeFromInstance<T>, id: string, options?: FindRecordOptions): FindRecordRequestOptions<FindRecordResultDocument<T>, T>;
59
+ export declare function findRecord<T>(type: TypeFromInstance<T>, id: string, options?: FindRecordOptions): FindRecordRequestOptions<ReactiveDataDocument<T>, T>;
65
60
  export declare function findRecord(type: string, id: string, options?: FindRecordOptions): FindRecordRequestOptions;
61
+ /** @deprecated use {@link ReactiveDataDocument} instead */
62
+ export type FindRecordResultDocument<T> = ReactiveDataDocument<T>;
@@ -1,7 +1,7 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive";
1
2
  import type { QueryParamsSource } from "@warp-drive-mirror/core/types/params";
2
3
  import type { TypeFromInstance } from "@warp-drive-mirror/core/types/record";
3
4
  import type { ConstrainedRequestOptions, QueryRequestOptions } from "@warp-drive-mirror/core/types/request";
4
- import type { CollectionResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
5
5
  /**
6
6
  * Builds request options to query for resources, usually by a primary
7
7
  * type, configured for the url and header expectations of most REST APIs.
@@ -49,5 +49,5 @@ import type { CollectionResourceDataDocument } from "@warp-drive-mirror/core/typ
49
49
  * @param query
50
50
  * @param options
51
51
  */
52
- export declare function query<T>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions<CollectionResourceDataDocument<T>>;
52
+ export declare function query<T>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions<ReactiveDataDocument<T[]>>;
53
53
  export declare function query(type: string, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions;
@@ -1,6 +1,6 @@
1
+ import type { ReactiveDataDocument } from "@warp-drive-mirror/core/reactive";
1
2
  import type { TypedRecordInstance } from "@warp-drive-mirror/core/types/record";
2
3
  import type { ConstrainedRequestOptions, CreateRequestOptions, DeleteRequestOptions, UpdateRequestOptions } from "@warp-drive-mirror/core/types/request";
3
- import type { SingleResourceDataDocument } from "@warp-drive-mirror/core/types/spec/document";
4
4
  /**
5
5
  * Builds request options to delete record for resources,
6
6
  * configured for the url, method and header expectations of REST APIs.
@@ -140,7 +140,7 @@ export declare function updateRecord<
140
140
  RT extends TypedRecordInstance = T
141
141
  >(record: T, options?: ConstrainedRequestOptions & {
142
142
  patch?: boolean;
143
- }): UpdateRequestOptions<SingleResourceDataDocument<RT>, T>;
143
+ }): UpdateRequestOptions<ReactiveDataDocument<RT>, T>;
144
144
  export declare function updateRecord(record: unknown, options?: ConstrainedRequestOptions & {
145
145
  patch?: boolean;
146
146
  }): UpdateRequestOptions;
@@ -88,6 +88,8 @@ function findRecord(arg1, arg2, arg3) {
88
88
  };
89
89
  }
90
90
 
91
+ /** @deprecated use {@link ReactiveDataDocument} instead */
92
+
91
93
  /**
92
94
  * Builds request options to query for resources, usually by a primary
93
95
  * type, configured for the url and header expectations of most ActiveRecord APIs.
package/dist/handlers.js CHANGED
@@ -35,7 +35,7 @@ const DEFAULT_CONSTRAINTS = {
35
35
  DataView: 1000,
36
36
  String: 1000
37
37
  };
38
- const TypedArray = Object.getPrototypeOf(Uint8Array.prototype);
38
+ const TypedArray = Object.getPrototypeOf(Uint8Array);
39
39
 
40
40
  /**
41
41
  * A request handler that automatically compresses the request body
@@ -84,7 +84,7 @@ class AutoCompress {
84
84
  const {
85
85
  body
86
86
  } = request;
87
- const shouldCompress = isCompressibleMethod(request.method) && request.options?.compress !== false && (
87
+ const shouldCompress = !!body && isCompressibleMethod(request.method) && request.options?.compress !== false && (
88
88
  // prettier-ignore
89
89
  request.options?.compress ? true : typeof body === 'string' || body instanceof String ? canCompress('String', constraints, body.length) : body instanceof Blob ? canCompress('Blob', constraints, body.size) : body instanceof ArrayBuffer ? canCompress('ArrayBuffer', constraints, body.byteLength) : body instanceof DataView ? canCompress('DataView', constraints, body.byteLength) : body instanceof TypedArray ? canCompress('TypedArray', constraints, body.byteLength) : false);
90
90
  if (!shouldCompress) return next(request);
@@ -218,7 +218,7 @@ class Gate {
218
218
  * ```
219
219
  *
220
220
  * Errors are not processed by this handler, so if the request fails and the error response
221
- * is not in {JSON:API} format additional processing may be needed.
221
+ * is not in {json:api} format additional processing may be needed.
222
222
  *
223
223
  * @group Handlers
224
224
  */
package/dist/json-api.js CHANGED
@@ -122,8 +122,6 @@ function setBuildURLConfig(config) {
122
122
  * ```
123
123
  *
124
124
  * @public
125
- * @param identifier
126
- * @param options
127
125
  */
128
126
 
129
127
  function findRecord(arg1, arg2, arg3) {
@@ -154,6 +152,8 @@ function findRecord(arg1, arg2, arg3) {
154
152
  };
155
153
  }
156
154
 
155
+ /** @deprecated use {@link ReactiveDataDocument} */
156
+
157
157
  /**
158
158
  * Builds request options to query for resources, usually by a primary
159
159
  * type, configured for the url and header expectations of most JSON:API APIs.
@@ -201,9 +201,6 @@ function findRecord(arg1, arg2, arg3) {
201
201
  * ```
202
202
  *
203
203
  * @public
204
- * @param identifier
205
- * @param query
206
- * @param options
207
204
  */
208
205
 
209
206
  function query(type,
package/dist/rest.js CHANGED
@@ -56,8 +56,6 @@ import { macroCondition, getGlobalConfig } from '@embroider/macros';
56
56
  * ```
57
57
  *
58
58
  * @public
59
- * @param identifier
60
- * @param options
61
59
  */
62
60
 
63
61
  function findRecord(arg1, arg2, arg3) {
@@ -88,6 +86,8 @@ function findRecord(arg1, arg2, arg3) {
88
86
  };
89
87
  }
90
88
 
89
+ /** @deprecated use {@link ReactiveDataDocument} instead */
90
+
91
91
  /**
92
92
  * Builds request options to query for resources, usually by a primary
93
93
  * type, configured for the url and header expectations of most REST APIs.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warp-drive-mirror/utilities",
3
- "version": "5.7.0",
3
+ "version": "5.8.0-alpha.10",
4
4
  "description": "Utilities package for WarpDrive | Things your app might find useful",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -9,7 +9,7 @@
9
9
  "author": "Chris Thoburn <runspired@users.noreply.github.com>",
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "git+ssh://git@github.com:emberjs/data.git",
12
+ "url": "git+ssh://git@github.com:warp-drive-data/warp-drive.git",
13
13
  "directory": "warp-drive-packages/utilities"
14
14
  },
15
15
  "files": [
@@ -36,7 +36,7 @@
36
36
  }
37
37
  },
38
38
  "peerDependencies": {
39
- "@warp-drive-mirror/core": "5.7.0"
39
+ "@warp-drive-mirror/core": "5.8.0-alpha.10"
40
40
  },
41
41
  "dependencies": {
42
42
  "@embroider/macros": "^1.18.1"
@@ -45,8 +45,8 @@
45
45
  "@babel/core": "^7.28.3",
46
46
  "@babel/plugin-transform-typescript": "^7.28.0",
47
47
  "@babel/preset-typescript": "^7.27.1",
48
- "@warp-drive/internal-config": "5.7.0",
49
- "@warp-drive-mirror/core": "5.7.0",
48
+ "@warp-drive/internal-config": "5.8.0-alpha.10",
49
+ "@warp-drive-mirror/core": "5.8.0-alpha.10",
50
50
  "decorator-transforms": "^2.3.0",
51
51
  "expect-type": "^1.2.2",
52
52
  "typescript": "^5.9.2",