ts-data-forge 4.1.0 → 5.0.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.
- package/dist/json/json.d.mts +9 -3
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +6 -0
- package/dist/json/json.mjs.map +1 -1
- package/package.json +13 -13
- package/src/array/impl/array-utils-creation.test.mts +187 -74
- package/src/array/impl/array-utils-element-access.test.mts +19 -3
- package/src/array/impl/array-utils-iterators.test.mts +44 -24
- package/src/array/impl/array-utils-modification.test.mts +36 -33
- package/src/array/impl/array-utils-reducing-value.test.mts +47 -16
- package/src/array/impl/array-utils-search.test.mts +42 -9
- package/src/array/impl/array-utils-set-op.test.mts +54 -26
- package/src/array/impl/array-utils-size.test.mts +1 -0
- package/src/array/impl/array-utils-slice-clamped.test.mts +20 -11
- package/src/array/impl/array-utils-slicing.test.mts +27 -21
- package/src/array/impl/array-utils-transformation.test.mts +140 -92
- package/src/array/impl/array-utils-validation.test.mts +58 -10
- package/src/array/impl/array.test.mts +5 -5
- package/src/collections/imap-mapped.test.mts +63 -18
- package/src/collections/imap.test.mts +74 -26
- package/src/collections/iset-mapped.test.mts +81 -30
- package/src/collections/iset.test.mts +168 -68
- package/src/collections/queue.test.mts +32 -1
- package/src/collections/stack.test.mts +22 -8
- package/src/functional/match.test.mts +1 -1
- package/src/functional/optional.test.mts +61 -4
- package/src/functional/pipe.test.mts +10 -1
- package/src/functional/result.test.mts +127 -4
- package/src/functional/ternary-result.test.mts +34 -18
- package/src/guard/is-non-empty-string.test.mts +5 -2
- package/src/guard/is-non-null-object.test.mts +3 -5
- package/src/guard/is-primitive.test.mts +5 -3
- package/src/guard/is-record.test.mts +1 -1
- package/src/guard/is-type.test.mts +35 -20
- package/src/guard/key-is-in.test.mts +1 -1
- package/src/iterator/range.test.mts +22 -16
- package/src/json/json.mts +9 -3
- package/src/json/json.test.mts +140 -64
- package/src/number/branded-types/finite-number.test.mts +3 -2
- package/src/number/branded-types/int.test.mts +4 -3
- package/src/number/branded-types/int16.test.mts +9 -3
- package/src/number/branded-types/int32.test.mts +9 -3
- package/src/number/branded-types/non-negative-finite-number.test.mts +6 -4
- package/src/number/branded-types/non-negative-int16.test.mts +8 -3
- package/src/number/branded-types/non-negative-int32.test.mts +8 -3
- package/src/number/branded-types/non-zero-finite-number.test.mts +6 -3
- package/src/number/branded-types/non-zero-int.test.mts +6 -3
- package/src/number/branded-types/non-zero-int16.test.mts +9 -3
- package/src/number/branded-types/non-zero-int32.test.mts +9 -3
- package/src/number/branded-types/non-zero-safe-int.test.mts +10 -3
- package/src/number/branded-types/non-zero-uint16.test.mts +8 -3
- package/src/number/branded-types/non-zero-uint32.test.mts +8 -3
- package/src/number/branded-types/positive-finite-number.test.mts +7 -3
- package/src/number/branded-types/positive-int.test.mts +5 -3
- package/src/number/branded-types/positive-int16.test.mts +8 -3
- package/src/number/branded-types/positive-int32.test.mts +8 -3
- package/src/number/branded-types/positive-safe-int.test.mts +8 -3
- package/src/number/branded-types/positive-uint16.test.mts +8 -3
- package/src/number/branded-types/positive-uint32.test.mts +8 -3
- package/src/number/branded-types/safe-int.test.mts +8 -2
- package/src/number/branded-types/safe-uint.test.mts +8 -3
- package/src/number/branded-types/uint.test.mts +5 -3
- package/src/number/branded-types/uint16.test.mts +8 -3
- package/src/number/branded-types/uint32.test.mts +8 -3
- package/src/number/enum/int8.test.mts +8 -3
- package/src/number/enum/uint8.test.mts +6 -3
- package/src/number/num.test.mts +16 -2
- package/src/object/object.test.mts +26 -13
- package/src/others/cast-mutable.test.mts +10 -8
- package/src/others/cast-readonly.test.mts +9 -5
- package/src/others/if-then.test.mts +4 -1
- package/src/others/map-nullable.test.mts +28 -1
- package/src/others/memoize-function.test.mts +20 -17
- package/src/others/tuple.test.mts +3 -2
- package/src/others/unknown-to-string.test.mts +15 -2
- package/src/promise/promise.test.mts +6 -1
package/dist/json/json.d.mts
CHANGED
|
@@ -86,6 +86,8 @@ export declare namespace Json {
|
|
|
86
86
|
*
|
|
87
87
|
* assert.ok(Result.isOk(filtered));
|
|
88
88
|
* if (Result.isOk(filtered)) {
|
|
89
|
+
* assert(isString(filtered.value));
|
|
90
|
+
*
|
|
89
91
|
* assert.ok(!filtered.value.includes('age'));
|
|
90
92
|
* }
|
|
91
93
|
* ```
|
|
@@ -110,7 +112,7 @@ export declare namespace Json {
|
|
|
110
112
|
* - On failure: `Result.err(errorMessage)` where `errorMessage` describes the
|
|
111
113
|
* error
|
|
112
114
|
*/
|
|
113
|
-
const stringify: (value: unknown, replacer?: (this: unknown, key: string, val: unknown) => unknown, space?: UintRangeInclusive<1, 10> | string) => Result<string, string>;
|
|
115
|
+
const stringify: (value: unknown, replacer?: (this: unknown, key: string, val: unknown) => unknown, space?: UintRangeInclusive<1, 10> | string) => Result<string | undefined, string>;
|
|
114
116
|
/**
|
|
115
117
|
* Safely converts a JavaScript value to a JSON string, including only the
|
|
116
118
|
* specified properties.
|
|
@@ -136,6 +138,8 @@ export declare namespace Json {
|
|
|
136
138
|
*
|
|
137
139
|
* assert.ok(Result.isOk(safeJson));
|
|
138
140
|
* if (Result.isOk(safeJson)) {
|
|
141
|
+
* assert(isString(safeJson.value));
|
|
142
|
+
*
|
|
139
143
|
* const parsed: unknown = JSON.parse(safeJson.value);
|
|
140
144
|
* assert.deepStrictEqual(parsed, {
|
|
141
145
|
* id: 1,
|
|
@@ -169,7 +173,7 @@ export declare namespace Json {
|
|
|
169
173
|
* - On success: `Result.ok(jsonString)` with only selected properties
|
|
170
174
|
* - On failure: `Result.err(errorMessage)` describing the serialization error
|
|
171
175
|
*/
|
|
172
|
-
const stringifySelected: (value: unknown, propertiesToBeSelected?: readonly (number | string)[], space?: UintRangeInclusive<1, 10> | string) => Result<string, string>;
|
|
176
|
+
const stringifySelected: (value: unknown, propertiesToBeSelected?: readonly (number | string)[], space?: UintRangeInclusive<1, 10> | string) => Result<string | undefined, string>;
|
|
173
177
|
/**
|
|
174
178
|
* Safely converts a JavaScript record to a JSON string with keys sorted
|
|
175
179
|
* alphabetically at all levels.
|
|
@@ -209,6 +213,8 @@ export declare namespace Json {
|
|
|
209
213
|
* const formatted = Json.stringifySortedKey(unorderedData, 2);
|
|
210
214
|
* assert.ok(Result.isOk(formatted));
|
|
211
215
|
* if (Result.isOk(formatted)) {
|
|
216
|
+
* assert(isString(formatted.value));
|
|
217
|
+
*
|
|
212
218
|
* // Check that keys are in order (first key should be "apple")
|
|
213
219
|
* assert.ok(
|
|
214
220
|
* formatted.value.indexOf('"apple"') < formatted.value.indexOf('"mango"'),
|
|
@@ -237,6 +243,6 @@ export declare namespace Json {
|
|
|
237
243
|
* alphabetically
|
|
238
244
|
* - On failure: `Result.err(errorMessage)` describing the serialization error
|
|
239
245
|
*/
|
|
240
|
-
const stringifySortedKey: (value: UnknownRecord, space?: UintRangeInclusive<1, 10> | string) => Result<string, string>;
|
|
246
|
+
const stringifySortedKey: (value: UnknownRecord, space?: UintRangeInclusive<1, 10> | string) => Result<string | undefined, string>;
|
|
241
247
|
}
|
|
242
248
|
//# sourceMappingURL=json.d.mts.map
|
package/dist/json/json.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.mts","sourceRoot":"","sources":["../../src/json/json.mts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACI,MAAM,KAAK,GAChB,MAAM,MAAM,EACZ,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,KAClE,MAAM,CAAC,SAAS,EAAE,MAAM,CAa1B,CAAC;IAEF
|
|
1
|
+
{"version":3,"file":"json.d.mts","sourceRoot":"","sources":["../../src/json/json.mts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACI,MAAM,KAAK,GAChB,MAAM,MAAM,EACZ,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,KAClE,MAAM,CAAC,SAAS,EAAE,MAAM,CAa1B,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0DG;IACI,MAAM,SAAS,GACpB,OAAO,OAAO,EACd,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,EAChE,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAOnC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACI,MAAM,iBAAiB,GAC5B,OAAO,OAAO,EACd,yBAAyB,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACrD,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CASnC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoEG;IACI,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAMnC,CAAC;CACH"}
|
package/dist/json/json.mjs
CHANGED
|
@@ -139,6 +139,8 @@ var Json;
|
|
|
139
139
|
*
|
|
140
140
|
* assert.ok(Result.isOk(filtered));
|
|
141
141
|
* if (Result.isOk(filtered)) {
|
|
142
|
+
* assert(isString(filtered.value));
|
|
143
|
+
*
|
|
142
144
|
* assert.ok(!filtered.value.includes('age'));
|
|
143
145
|
* }
|
|
144
146
|
* ```
|
|
@@ -197,6 +199,8 @@ var Json;
|
|
|
197
199
|
*
|
|
198
200
|
* assert.ok(Result.isOk(safeJson));
|
|
199
201
|
* if (Result.isOk(safeJson)) {
|
|
202
|
+
* assert(isString(safeJson.value));
|
|
203
|
+
*
|
|
200
204
|
* const parsed: unknown = JSON.parse(safeJson.value);
|
|
201
205
|
* assert.deepStrictEqual(parsed, {
|
|
202
206
|
* id: 1,
|
|
@@ -278,6 +282,8 @@ var Json;
|
|
|
278
282
|
* const formatted = Json.stringifySortedKey(unorderedData, 2);
|
|
279
283
|
* assert.ok(Result.isOk(formatted));
|
|
280
284
|
* if (Result.isOk(formatted)) {
|
|
285
|
+
* assert(isString(formatted.value));
|
|
286
|
+
*
|
|
281
287
|
* // Check that keys are in order (first key should be "apple")
|
|
282
288
|
* assert.ok(
|
|
283
289
|
* formatted.value.indexOf('"apple"') < formatted.value.indexOf('"mango"'),
|
package/dist/json/json.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.mjs","sources":["../../src/json/json.mts"],"sourcesContent":[null],"names":["Result.ok","Result.err","Arr.uniq"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;;;;AAIG;AACG,IAAW;AAAjB,CAAA,UAAiB,IAAI,EAAA;AACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CG;AACU,IAAA,IAAA,CAAA,KAAK,GAAG,CACnB,IAAY,EACZ,OAAmE,KACtC;AAC7B,QAAA,IAAI;YACF,OAAOA,EAAS,CACd,IAAI,CAAC,KAAK,CACR,IAAI;;YAEJ,OAAkE,CACnE,CACF;QACH;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC;AACrC,YAAA,OAAOC,GAAU,CAAC,MAAM,CAAC;QAC3B;AACF,IAAA,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"json.mjs","sources":["../../src/json/json.mts"],"sourcesContent":[null],"names":["Result.ok","Result.err","Arr.uniq"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-data-forge",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@emotion/react": "^11.14.0",
|
|
80
80
|
"@emotion/styled": "^11.14.1",
|
|
81
|
-
"@mui/material": "^7.3.
|
|
81
|
+
"@mui/material": "^7.3.5",
|
|
82
82
|
"@octokit/core": "7.0.6",
|
|
83
83
|
"@rollup/plugin-replace": "^6.0.3",
|
|
84
84
|
"@rollup/plugin-strip": "^3.0.4",
|
|
@@ -87,18 +87,18 @@
|
|
|
87
87
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
88
88
|
"@semantic-release/exec": "^7.1.0",
|
|
89
89
|
"@semantic-release/git": "^10.0.1",
|
|
90
|
-
"@semantic-release/github": "^12.0.
|
|
90
|
+
"@semantic-release/github": "^12.0.2",
|
|
91
91
|
"@semantic-release/npm": "^13.1.1",
|
|
92
92
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
93
93
|
"@sindresorhus/is": "^7.1.1",
|
|
94
94
|
"@types/node": "^24.10.0",
|
|
95
95
|
"@types/react": "^19.2.2",
|
|
96
|
-
"@vitest/coverage-v8": "^4.0.
|
|
97
|
-
"@vitest/ui": "^4.0.
|
|
96
|
+
"@vitest/coverage-v8": "^4.0.8",
|
|
97
|
+
"@vitest/ui": "^4.0.8",
|
|
98
98
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
99
|
-
"cspell": "^9.
|
|
100
|
-
"eslint": "9.
|
|
101
|
-
"eslint-config-typed": "^3.1
|
|
99
|
+
"cspell": "^9.3.0",
|
|
100
|
+
"eslint": "9.39.1",
|
|
101
|
+
"eslint-config-typed": "^3.5.1",
|
|
102
102
|
"fast-glob": "^3.3.3",
|
|
103
103
|
"immer": "^10.2.0",
|
|
104
104
|
"jiti": "^2.6.1",
|
|
@@ -109,17 +109,17 @@
|
|
|
109
109
|
"prettier": "^3.6.2",
|
|
110
110
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
111
111
|
"prettier-plugin-packagejson": "^2.5.19",
|
|
112
|
-
"rollup": "^4.
|
|
113
|
-
"semantic-release": "^25.0.
|
|
114
|
-
"ts-fortress": "^5.
|
|
112
|
+
"rollup": "^4.53.2",
|
|
113
|
+
"semantic-release": "^25.0.2",
|
|
114
|
+
"ts-fortress": "^5.3.0",
|
|
115
115
|
"ts-repo-utils": "^7.8.0",
|
|
116
116
|
"tslib": "^2.8.1",
|
|
117
117
|
"tsx": "^4.20.6",
|
|
118
118
|
"typedoc": "^0.28.14",
|
|
119
119
|
"typedoc-github-theme": "^0.3.1",
|
|
120
120
|
"typescript": "^5.9.3",
|
|
121
|
-
"vite": "^7.
|
|
122
|
-
"vitest": "^4.0.
|
|
121
|
+
"vite": "^7.2.2",
|
|
122
|
+
"vitest": "^4.0.8"
|
|
123
123
|
},
|
|
124
124
|
"peerDependencies": {
|
|
125
125
|
"typescript": ">=4.8"
|