@arrai-innovations/reactive-helpers 21.1.2 → 22.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +109 -21
  3. package/config/commonCrud.js +7 -10
  4. package/config/listCrud.js +33 -33
  5. package/config/objectCrud.js +64 -59
  6. package/package.json +103 -89
  7. package/types/config/listCrud.d.ts +83 -28
  8. package/types/config/objectCrud.d.ts +139 -49
  9. package/types/tests/benchmarks/fixtures.d.ts +60 -0
  10. package/types/tests/benchmarks/listLayers.bench.d.ts +1 -0
  11. package/types/tests/benchmarks/listPush.bench.d.ts +1 -0
  12. package/types/tests/benchmarks/listStream.bench.d.ts +1 -0
  13. package/types/tests/unit/use/lifecycleCleanup.spec.d.ts +1 -0
  14. package/types/tests/unit/use/listPerformance.spec.d.ts +1 -0
  15. package/types/tests/unit/utils/cancellablePromise.spec.d.ts +1 -0
  16. package/types/use/cancellableIntent.d.ts +36 -33
  17. package/types/use/combineClasses.d.ts +5 -2
  18. package/types/use/error.d.ts +39 -19
  19. package/types/use/list.d.ts +27 -26
  20. package/types/use/listCalculated.d.ts +38 -55
  21. package/types/use/listFilter.d.ts +25 -33
  22. package/types/use/listInstance.d.ts +94 -81
  23. package/types/use/listRelated.d.ts +37 -57
  24. package/types/use/listSearch.d.ts +54 -52
  25. package/types/use/listSort.d.ts +31 -40
  26. package/types/use/listSubscription.d.ts +33 -36
  27. package/types/use/loading.d.ts +20 -10
  28. package/types/use/loadingError.d.ts +12 -3
  29. package/types/use/object.d.ts +8 -5
  30. package/types/use/objectCalculated.d.ts +46 -39
  31. package/types/use/objectInstance.d.ts +70 -74
  32. package/types/use/objectRelated.d.ts +51 -41
  33. package/types/use/objectSubscription.d.ts +38 -48
  34. package/types/use/proxyError.d.ts +15 -6
  35. package/types/use/proxyLoading.d.ts +11 -5
  36. package/types/use/proxyLoadingError.d.ts +19 -7
  37. package/types/use/search.d.ts +33 -29
  38. package/types/utils/assignReactiveObject.d.ts +3 -0
  39. package/types/utils/cancellableFetch.d.ts +2 -3
  40. package/types/utils/cancellablePromise.d.ts +42 -8
  41. package/types/utils/classes.d.ts +7 -1
  42. package/types/utils/deepUnref.d.ts +1 -1
  43. package/types/utils/getFakePk.d.ts +2 -2
  44. package/types/utils/isReactiveTyped.d.ts +2 -0
  45. package/types/utils/keyDiff.d.ts +4 -6
  46. package/types/utils/relatedCalculatedHelpers.d.ts +2 -0
  47. package/types/utils/watches.d.ts +1 -1
  48. package/use/cancellableIntent.js +36 -9
  49. package/use/combineClasses.js +2 -2
  50. package/use/error.js +10 -14
  51. package/use/list.js +6 -18
  52. package/use/listCalculated.js +28 -38
  53. package/use/listFilter.js +12 -24
  54. package/use/listInstance.js +101 -60
  55. package/use/listRelated.js +18 -37
  56. package/use/listSearch.js +9 -18
  57. package/use/listSort.js +95 -64
  58. package/use/listSubscription.js +19 -25
  59. package/use/loading.js +5 -7
  60. package/use/loadingError.js +3 -3
  61. package/use/object.js +14 -27
  62. package/use/objectCalculated.js +21 -25
  63. package/use/objectInstance.js +55 -50
  64. package/use/objectRelated.js +19 -25
  65. package/use/objectSubscription.js +18 -30
  66. package/use/proxyError.js +10 -10
  67. package/use/proxyLoading.js +5 -5
  68. package/use/proxyLoadingError.js +13 -8
  69. package/use/search.js +5 -11
  70. package/utils/assignReactiveObject.js +3 -3
  71. package/utils/cancellableFetch.js +3 -3
  72. package/utils/cancellablePromise.js +25 -8
  73. package/utils/classes.js +2 -2
  74. package/utils/deepUnref.js +1 -5
  75. package/utils/getFakePk.js +2 -2
  76. package/utils/isReactiveTyped.js +2 -0
  77. package/utils/keyDiff.js +1 -3
  78. package/utils/relatedCalculatedHelpers.js +2 -0
@@ -9,173 +9,180 @@ import { readonly } from "vue";
9
9
  */
10
10
 
11
11
  /**
12
- * @typedef {{[key:string]: any}} TargetArgs
12
+ * @typedef {{[key:string]: any}} TargetArgs - Implementation-specific arguments passed through to the CRUD handlers, such as endpoint identifiers.
13
13
  */
14
14
 
15
15
  /**
16
- * Additional arguments that can be passed to CRUD handlers.
17
- *
18
- * @typedef {{[key:string]: any}} AdditionalCrudArgs
16
+ * @typedef {{[key:string]: any}} AdditionalCrudArgs - Additional arguments that can be passed to CRUD handlers.
19
17
  */
20
18
 
21
19
  /**
22
- * Defines the CRUD-related handlers and additional utilities provided by the object instance.
23
- *
24
- * @typedef {object} ObjectTargetProperties
20
+ * @typedef {object} ObjectTargetProperties - Defines the CRUD-related handlers and additional utilities provided by the object instance.
25
21
  * @property {TargetArgs} args - The arguments to be passed to the crud handlers.
26
22
  */
27
23
 
28
24
  /**
29
- * @typedef {object} ObjectTargetOption
25
+ * @typedef {object} ObjectTargetOption - Optional target arguments passed through to the object CRUD handlers.
30
26
  * @property {TargetArgs} [target={}] - The arguments to be passed to the crud handlers.
31
27
  */
32
28
 
33
29
  /**
34
- * @typedef {object} CreateArgsRaw
30
+ * @typedef {object} CreateArgsRaw - Raw arguments for an object create operation before additional CRUD arguments are merged in.
35
31
  * @property {TargetArgs} target - The arguments to be passed to the crud handlers.
36
- * @property {{[key:string]: any}} object - The data to be acted upon.
37
- * @property {{[key:string]: any}} params - The arguments to be passed to the retrieve function.
32
+ * @property {{[key:string]: any}} object - The new object to create; it carries no primary key yet.
33
+ * @property {{[key:string]: any}} params - Your listing or retrieval arguments, passed through to the crud handlers.
38
34
  * @property {string} pkKey - The key name of the primary key.
39
- * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A ref to indicate if the request was cancelled.
35
+ * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A readonly ref that becomes true once the request is cancelled.
40
36
  */
41
37
 
42
38
  /**
43
- * @typedef {CreateArgsRaw & AdditionalCrudArgs} CreateArgs
39
+ * @typedef {CreateArgsRaw & AdditionalCrudArgs} CreateArgs - Arguments for an object create operation, combining the raw arguments with any additional CRUD arguments.
44
40
  */
45
41
 
46
42
  /**
47
- * @typedef {object} RetrieveArgsRaw
43
+ * @typedef {object} RetrieveArgsRaw - Raw arguments for an object retrieve operation before run-tracking and additional CRUD arguments are merged in.
48
44
  * @property {TargetArgs} target - The arguments to be passed to the crud handlers.
49
45
  * @property {import('./commonCrud.js').Pk} pk - The pk of the object to be acted upon.
50
46
  * @property {string} pkKey - The key name of the primary key.
51
- * @property {{[key:string]: any}} params - The arguments to be passed to the retrieve function.
52
- * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A ref to indicate if the request was cancelled.
47
+ * @property {{[key:string]: any}} params - Your listing or retrieval arguments, passed through to the crud handlers.
48
+ * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A readonly ref that becomes true once the request is cancelled.
53
49
  */
54
50
 
55
51
  /**
56
- * @typedef {RetrieveArgsRaw & Partial<import('../use/cancellableIntent.js').CommonRunTracking> & AdditionalCrudArgs} RetrieveArgs
52
+ * @typedef {RetrieveArgsRaw & Partial<import('../use/cancellableIntent.js').CommonRunTracking> & AdditionalCrudArgs} RetrieveArgs - Arguments for an object retrieve operation, combining the raw arguments with run-tracking and any additional CRUD arguments.
57
53
  */
58
54
 
59
55
  /**
60
- * @typedef {object} UpdateArgsRaw
56
+ * @typedef {object} UpdateArgsRaw - Raw arguments for an object update operation before additional CRUD arguments are merged in.
61
57
  * @property {TargetArgs} target - The arguments to be passed to the crud handlers.
62
- * @property {import('../use/objectInstance.js').ExistingCrudObject} object - The data to be acted upon.
63
- * @property {{[key:string]: any}} params - The arguments to be passed to the retrieve function.
58
+ * @property {import('../use/objectInstance.js').ExistingCrudObject} object - The complete object to update; its primary key rides inside it, at `object[pkKey]`.
59
+ * @property {{[key:string]: any}} params - Your listing or retrieval arguments, passed through to the crud handlers.
64
60
  * @property {string} pkKey - The key name of the primary key.
65
- * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A ref to indicate if the request was cancelled.
61
+ * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A readonly ref that becomes true once the request is cancelled.
66
62
  */
67
63
 
68
64
  /**
69
- * @typedef {UpdateArgsRaw & AdditionalCrudArgs} UpdateArgs
65
+ * @typedef {UpdateArgsRaw & AdditionalCrudArgs} UpdateArgs - Arguments for an object update operation, combining the raw arguments with any additional CRUD arguments.
70
66
  */
71
67
 
72
68
  /**
73
- * @typedef {object} DeleteArgsRaw
69
+ * @typedef {object} DeleteArgsRaw - Raw arguments for an object delete operation before additional CRUD arguments are merged in.
74
70
  * @property {TargetArgs} target - The arguments to be passed to the crud handlers.
75
71
  * @property {import('./commonCrud.js').Pk} pk - The pk of the object to be acted upon.
76
72
  * @property {string} pkKey - The key name of the primary key.
73
+ * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A readonly ref that becomes true once the request is cancelled.
77
74
  */
78
75
 
79
76
  /**
80
- * @typedef {DeleteArgsRaw & AdditionalCrudArgs} DeleteArgs
77
+ * @typedef {DeleteArgsRaw & AdditionalCrudArgs} DeleteArgs - Arguments for an object delete operation, combining the raw arguments with any additional CRUD arguments.
81
78
  */
82
79
 
83
80
  /**
84
- * @typedef {object} PartialArgsRaw
81
+ * @typedef {object} PartialArgsRaw - Raw arguments for an object patch (partial update) operation before additional CRUD arguments are merged in.
85
82
  * @property {TargetArgs} target - The arguments to be passed to the crud handlers.
86
83
  * @property {import('./commonCrud.js').Pk} pk - The pk of the object to be acted upon.
87
84
  * @property {string} pkKey - The key name of the primary key.
88
- * @property {{[key:string]: any}} partialObject - The data to be acted upon.
89
- * @property {{[key:string]: any}} params - The arguments to be passed to the retrieve function.
90
- * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A ref to indicate if the request was cancelled.
85
+ * @property {{[key:string]: any}} partialObject - The changed fields only.
86
+ * @property {{[key:string]: any}} params - Your listing or retrieval arguments, passed through to the crud handlers.
87
+ * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A readonly ref that becomes true once the request is cancelled.
91
88
  */
92
89
  /**
93
- * @typedef {PartialArgsRaw & AdditionalCrudArgs} PartialArgs
90
+ * @typedef {PartialArgsRaw & AdditionalCrudArgs} PartialArgs - Arguments for an object patch (partial update) operation, combining the raw arguments with any additional CRUD arguments.
94
91
  */
95
92
 
96
93
  /**
97
- * @typedef {object} ObjectExecuteActionArgsRaw
98
- * @property {import('../config/objectCrud.js').TargetArgs} target - The arguments to be passed to the crud handlers.
99
- * @property {string} pk - The id of the objects to be acted upon.
94
+ * @typedef {object} ObjectExecuteActionArgsRaw - Raw arguments for a single-object execute-action operation before additional CRUD arguments are merged in.
95
+ * @property {TargetArgs} target - The arguments to be passed to the crud handlers.
96
+ * @property {import('./commonCrud.js').Pk} pk - The pk of the object to be acted upon.
100
97
  * @property {string} pkKey - The key name of the primary key.
101
98
  * @property {string} action - The action to execute.
102
- * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A ref to indicate if the request was cancelled.
99
+ * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A readonly ref that becomes true once the request is cancelled.
103
100
  */
104
101
 
105
102
  /**
106
- * @typedef {ObjectExecuteActionArgsRaw & AdditionalCrudArgs} ObjectExecuteActionArgs
103
+ * @typedef {ObjectExecuteActionArgsRaw & AdditionalCrudArgs} ObjectExecuteActionArgs - Arguments for a single-object execute-action operation, combining the raw arguments with any additional CRUD arguments.
107
104
  */
108
105
 
109
106
  /**
110
- * @callback CrudSubscribeCallback
107
+ * @callback CrudSubscribeCallback - Callback invoked with the changed object and the action (create, update, or delete) when a subscribed object changes.
111
108
  * @param {import('../use/objectInstance.js').ExistingCrudObject} data - The data to be passed to the callback.
112
109
  * @param {"delete"|"update"|"create"} action - The action that was performed.
113
110
  */
114
111
 
115
112
  /**
116
- * @typedef {object} ObjectSubscribeArgsRaw
113
+ * @typedef {object} ObjectSubscribeArgsRaw - Raw arguments for a single-object subscribe operation before run-tracking and additional CRUD arguments are merged in.
117
114
  * @property {TargetArgs} target - The arguments to be passed to the crud handlers.
118
115
  * @property {import('./commonCrud.js').Pk} pk - The pk of the object to be acted upon.
119
116
  * @property {string} pkKey - The key name of the primary key.
120
- * @property {{[key:string]: any}} params - The arguments to be passed to the retrieve function.
117
+ * @property {{[key:string]: any}} params - Your listing or retrieval arguments, passed through to the crud handlers.
121
118
  * @property {CrudSubscribeCallback} callback - The callback to be called when the object is updated.
122
- * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A ref to indicate if the request was cancelled.
119
+ * @property {Readonly<import('vue').Ref<boolean>>} isCancelled - A readonly ref that becomes true once the request is cancelled.
123
120
  */
124
121
 
125
122
  /**
126
- * @typedef {ObjectSubscribeArgsRaw & import('../use/cancellableIntent.js').CommonRunTracking & AdditionalCrudArgs} ObjectSubscribeArgs
123
+ * @typedef {ObjectSubscribeArgsRaw & import('../use/cancellableIntent.js').CommonRunTracking & AdditionalCrudArgs} ObjectSubscribeArgs - Arguments for a single-object subscribe operation, combining the raw arguments with run-tracking and any additional CRUD arguments.
127
124
  */
128
125
 
129
126
  /**
130
- * @typedef {import('../utils/cancellablePromise.js').MaybeCancellablePromise<object|string>} CrudResponse
127
+ * @typedef {import('../utils/cancellablePromise.js').MaybeCancellablePromise<object>} CrudResponse -
128
+ * The value returned by an object CRUD handler whose resolved value becomes the record: create, retrieve, update, and
129
+ * patch. A possibly-cancellable promise resolving to the complete record. The instance mirrors the resolved value
130
+ * into `state.object`, so a partial record drops the fields it omits, and a resolved value that is not an object (a
131
+ * bare primary key string, for instance) fails the assignment and is stored in `state.error`.
131
132
  */
132
133
 
133
134
  /**
134
- * @callback CrudCreateFn
135
+ * @typedef {import('../utils/cancellablePromise.js').MaybeCancellablePromise<object|string|void>} CrudCompletionResponse -
136
+ * The value returned by an object CRUD handler whose resolved value is ignored: delete, and executeAction. A
137
+ * possibly-cancellable promise whose resolution signals success and nothing more, so it may resolve a record, a
138
+ * primary key string, or nothing at all.
139
+ */
140
+
141
+ /**
142
+ * @callback CrudCreateFn - Signature for the handler that creates an object in the backing store.
135
143
  * @param {CreateArgs} args - The arguments to be passed to the create function.
136
- * @returns {CrudResponse} - The response data from the create function.
144
+ * @returns {CrudResponse} - A promise resolving the created record in full.
137
145
  */
138
146
 
139
147
  /**
140
- * @callback CrudRetrieveFn
148
+ * @callback CrudRetrieveFn - Signature for the handler that retrieves an object from the backing store.
141
149
  * @param {RetrieveArgs} args - The arguments to be passed to the retrieve function.
142
- * @returns {CrudResponse} - The response data from the retrieve function.
150
+ * @returns {CrudResponse} - A promise resolving the retrieved record in full.
143
151
  */
144
152
 
145
153
  /**
146
- * @callback CrudUpdateFn
154
+ * @callback CrudUpdateFn - Signature for the handler that updates an object in the backing store.
147
155
  * @param {UpdateArgs} args - The arguments to be passed to the update function.
148
- * @returns {CrudResponse} - The response data from the update function.
156
+ * @returns {CrudResponse} - A promise resolving the updated record in full.
149
157
  */
150
158
 
151
159
  /**
152
- * @callback CrudPatchFn
160
+ * @callback CrudPatchFn - Signature for the handler that partially updates (patches) an object in the backing store.
153
161
  * @param {PartialArgs} args - The arguments to be passed to the patch function.
154
- * @returns {CrudResponse} - The response data from the patch function.
162
+ * @returns {CrudResponse} - A promise resolving the patched record in full, not just the changed fields.
155
163
  */
156
164
 
157
165
  /**
158
- * @callback CrudDeleteFn
166
+ * @callback CrudDeleteFn - Signature for the handler that deletes an object from the backing store.
159
167
  * @param {DeleteArgs} args - The arguments to be passed to the delete function.
160
- * @returns {CrudResponse} - The response data from the delete function.
168
+ * @returns {CrudCompletionResponse} - A promise whose resolution means the delete succeeded; its value is ignored.
161
169
  */
162
170
 
163
171
  /**
164
- * @callback CrudObjectExecuteActionFn
172
+ * @callback CrudObjectExecuteActionFn - Signature for the handler that executes an action on a single object in the backing store.
165
173
  * @param {ObjectExecuteActionArgs} args - The arguments to be passed to the executeAction function.
166
- * @returns {CrudResponse} - The response data from the delete function.
174
+ * @returns {CrudCompletionResponse} - A promise whose resolution means the action succeeded; its value is ignored, and
175
+ * `objectInstance.executeAction` resolves `true`.
167
176
  */
168
177
 
169
178
  /**
170
- * @callback CrudObjectSubscribeFn
179
+ * @callback CrudObjectSubscribeFn - Signature for the handler that subscribes to changes on a single object in the backing store.
171
180
  * @param {ObjectSubscribeArgs} args - The arguments to be passed to the subscribe function.
172
181
  * @returns {import('../utils/cancellablePromise.js').CancellablePromise<void>} - The cancellable promise.
173
182
  */
174
183
 
175
184
  /**
176
- * Defines the CRUD-related handlers and additional utilities provided by the object instance.
177
- *
178
- * @typedef {object} ObjectCrudHandlers
185
+ * @typedef {object} ObjectCrudHandlers - Defines the CRUD-related handlers and additional utilities provided by the object instance.
179
186
  * @property {CrudCreateFn} [create] - A function to be used instead of the default crud create function.
180
187
  * @property {CrudRetrieveFn} [retrieve] - A function to be used instead of the default crud retrieve function.
181
188
  * @property {CrudUpdateFn} [update] - A function to be used instead of the default crud update function.
@@ -187,9 +194,7 @@ import { readonly } from "vue";
187
194
  */
188
195
 
189
196
  /**
190
- * The CRUD arguments.
191
- *
192
- * @typedef {ObjectTargetProperties & ObjectCrudHandlers} ObjectTarget
197
+ * @typedef {ObjectTargetProperties & ObjectCrudHandlers} ObjectTarget - The CRUD arguments.
193
198
  *
194
199
  */
195
200
 
package/package.json CHANGED
@@ -1,91 +1,105 @@
1
1
  {
2
- "name": "@arrai-innovations/reactive-helpers",
3
- "version": "21.1.2",
4
- "description": "VueJS 3 utility composition functions to help manipulate objects and lists.",
5
- "main": "index.js",
6
- "type": "module",
7
- "types": "types/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./index.js",
11
- "types": "./types/index.d.ts"
12
- }
13
- },
14
- "files": [
15
- "index.js",
16
- "README.md",
17
- "use/",
18
- "utils/",
19
- "config/",
20
- "types/"
21
- ],
22
- "directories": {
23
- "use": "use",
24
- "utils": "utils",
25
- "tests": "tests"
26
- },
27
- "scripts": {
28
- "test": "npx --no-install vitest",
29
- "eslint": "npx --no-install eslint --fix index.js config/**/*.js tests/**/*.js use/**/*.js utils/**/*.js",
30
- "prettier": "npx --no-install prettier --write .",
31
- "coverage": "npm test -- run --coverage=true",
32
- "prepare": "npx --no-install husky",
33
- "docs": "node make_type_doc.js",
34
- "docs:check": "node check_type_doc.js",
35
- "docs:clean": "node clean_type_doc.js",
36
- "types": "node make_types.js",
37
- "types:check": "node check_types.js"
38
- },
39
- "repository": {
40
- "type": "git",
41
- "url": "git+https://github.com/arrai-innovations/reactive-helpers.git"
42
- },
43
- "author": "Arrai Innovations Inc. <developers@arrai.com>",
44
- "license": "UNLICENSED",
45
- "bugs": {
46
- "url": "https://github.com/arrai-innovations/reactive-helpers/issues"
47
- },
48
- "homepage": "https://github.com/arrai-innovations/reactive-helpers#readme",
49
- "devDependencies": {
50
- "@arrai-innovations/commitlint-config": "^2.0.0",
51
- "@commitlint/cli": "^19.4.0",
52
- "@godaddy/dmd": "^1.0.4",
53
- "@trivago/prettier-plugin-sort-imports": "^5.2.1",
54
- "@types/browser-util-inspect": "^0.2.4",
55
- "@types/lodash-es": "^4.17.12",
56
- "@typescript-eslint/eslint-plugin": "^7.18.0",
57
- "@typescript-eslint/parser": "^7.18.0",
58
- "@vitest/coverage-istanbul": "^3.1.4",
59
- "@vitest/coverage-v8": "^3.1.4",
60
- "@vue/compiler-sfc": "^3.4.37",
61
- "@vue/eslint-config-prettier": "^9.0.0",
62
- "@vue/test-utils": "^2.3.2",
63
- "doctoc": "^2.1.0",
64
- "eslint": "^8.56.0",
65
- "eslint-plugin-jsdoc": "^48.11.0",
66
- "eslint-plugin-vitest": "~0.5.4",
67
- "eslint-plugin-vitest-globals": "^1.3.1",
68
- "eslint-plugin-vue": "^9.27.0",
69
- "flush-promises": "^1.0.2",
70
- "globals": "^16.0.0",
71
- "husky": "^9.1.7",
72
- "jsdom": "^26.0.0",
73
- "lint-staged": "^15.2.8",
74
- "prettier": "^3.3.3",
75
- "typedoc": "^0.28.15",
76
- "typedoc-plugin-markdown": "^4.9.0",
77
- "typescript": "^5.5.4",
78
- "vitest": "^3.1.2"
79
- },
80
- "dependencies": {
81
- "@jcoreio/async-throttle": "^1.6.0",
82
- "browser-util-inspect": "^0.2.0",
83
- "flexsearch": "0.7.21",
84
- "vue-deepunref": "^1.0.1"
85
- },
86
- "peerDependencies": {
87
- "@vueuse/core": "^13.0.0",
88
- "lodash-es": "^4.17.23",
89
- "vue": "^3.5.13"
2
+ "name": "@arrai-innovations/reactive-helpers",
3
+ "version": "22.1.0",
4
+ "description": "VueJS 3 utility composition functions to help manipulate objects and lists.",
5
+ "main": "index.js",
6
+ "type": "module",
7
+ "types": "types/index.d.ts",
8
+ "publishConfig": {
9
+ "registry": "https://registry.npmjs.org/",
10
+ "access": "public"
11
+ },
12
+ "exports": {
13
+ ".": {
14
+ "import": "./index.js",
15
+ "types": "./types/index.d.ts"
90
16
  }
91
- }
17
+ },
18
+ "files": [
19
+ "index.js",
20
+ "README.md",
21
+ "use/",
22
+ "utils/",
23
+ "config/",
24
+ "types/"
25
+ ],
26
+ "directories": {
27
+ "use": "use",
28
+ "utils": "utils",
29
+ "tests": "tests"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/arrai-innovations/reactive-helpers.git"
34
+ },
35
+ "author": "Arrai Innovations Inc. <developers@arrai.com>",
36
+ "license": "BSD-3-Clause",
37
+ "bugs": {
38
+ "url": "https://github.com/arrai-innovations/reactive-helpers/issues"
39
+ },
40
+ "homepage": "https://github.com/arrai-innovations/reactive-helpers#readme",
41
+ "devDependencies": {
42
+ "@arrai-innovations/commitlint-config": "^2.1.0",
43
+ "@commitlint/cli": "^19.8.1",
44
+ "@eslint/js": "9.39.4",
45
+ "@godaddy/dmd": "^1.0.4",
46
+ "@trivago/prettier-plugin-sort-imports": "^5.2.2",
47
+ "@types/browser-util-inspect": "^0.2.4",
48
+ "@types/lodash-es": "^4.17.12",
49
+ "@vitest/coverage-istanbul": "^4.1.9",
50
+ "@vitest/coverage-v8": "^4.1.9",
51
+ "@vitest/eslint-plugin": "^1.6.20",
52
+ "@vue/compiler-sfc": "^3.5.38",
53
+ "@vue/eslint-config-prettier": "^10.2.0",
54
+ "@vue/test-utils": "^2.4.11",
55
+ "doctoc": "^2.5.0",
56
+ "eslint": "^9.39.4",
57
+ "eslint-config-prettier": "^10.1.8",
58
+ "eslint-plugin-jsdoc": "^63.0.6",
59
+ "eslint-plugin-no-autofix": "^2.1.0",
60
+ "eslint-plugin-vue": "^10.9.2",
61
+ "flush-promises": "^1.0.2",
62
+ "globals": "^16.5.0",
63
+ "jsdom": "^26.1.0",
64
+ "lefthook": "^1.13.6",
65
+ "prettier": "^3.8.4",
66
+ "typedoc": "^0.28.19",
67
+ "typedoc-plugin-markdown": "^4.12.0",
68
+ "typescript": "^5.9.3",
69
+ "vite": "^8.0.16",
70
+ "vitepress": "^1.6.4",
71
+ "vitest": "^4.1.9",
72
+ "vue-eslint-parser": "^10.4.1"
73
+ },
74
+ "dependencies": {
75
+ "@jcoreio/async-throttle": "^1.7.0",
76
+ "browser-util-inspect": "^0.2.0",
77
+ "flexsearch": "0.7.21",
78
+ "vue-deepunref": "^1.0.1"
79
+ },
80
+ "peerDependencies": {
81
+ "@vueuse/core": "^13.0.0",
82
+ "lodash-es": "^4.17.23",
83
+ "vue": "^3.5.13"
84
+ },
85
+ "scripts": {
86
+ "benchmark": "vitest bench --run",
87
+ "benchmark:list": "vitest bench --run tests/benchmarks/listPush.bench.js",
88
+ "benchmark:list:ci": "vitest bench --run tests/benchmarks/listPush.bench.js --outputJson benchmark-results/list-push.json",
89
+ "benchmark:check": "node check_benchmark.js",
90
+ "benchmark:layers": "vitest bench --run tests/benchmarks/listLayers.bench.js",
91
+ "benchmark:stream": "vitest bench --run tests/benchmarks/listStream.bench.js",
92
+ "test": "vitest",
93
+ "eslint": "eslint --fix index.js config/**/*.js tests/**/*.js use/**/*.js utils/**/*.js",
94
+ "prettier": "prettier --write .",
95
+ "coverage": "vitest run --coverage=true",
96
+ "docs": "node make_type_doc.js",
97
+ "docs:check": "node check_type_doc.js",
98
+ "docs:clean": "node clean_type_doc.js",
99
+ "docs:site:dev": "vitepress dev docs",
100
+ "docs:site:build": "vitepress build docs",
101
+ "docs:site:preview": "vitepress preview docs",
102
+ "types": "node make_types.js",
103
+ "types:check": "node check_types.js"
104
+ }
105
+ }