@fgv/ts-utils 4.1.0 → 4.2.1

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 (67) hide show
  1. package/CHANGELOG.json +30 -0
  2. package/CHANGELOG.md +17 -1
  3. package/dist/ts-utils.d.ts +599 -54
  4. package/lib/index.d.ts +3 -1
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +6 -1
  7. package/lib/index.js.map +1 -1
  8. package/lib/packlets/collections/common.d.ts +6 -0
  9. package/lib/packlets/collections/common.d.ts.map +1 -0
  10. package/lib/packlets/collections/common.js +24 -0
  11. package/lib/packlets/collections/common.js.map +1 -0
  12. package/lib/packlets/collections/index.d.ts +8 -0
  13. package/lib/packlets/collections/index.d.ts.map +1 -0
  14. package/lib/packlets/collections/index.js +68 -0
  15. package/lib/packlets/collections/index.js.map +1 -0
  16. package/lib/packlets/collections/readonlyResultMap.d.ts +58 -0
  17. package/lib/packlets/collections/readonlyResultMap.d.ts.map +1 -0
  18. package/lib/packlets/collections/readonlyResultMap.js +24 -0
  19. package/lib/packlets/collections/readonlyResultMap.js.map +1 -0
  20. package/lib/packlets/collections/resultMap.d.ts +180 -0
  21. package/lib/packlets/collections/resultMap.d.ts.map +1 -0
  22. package/lib/packlets/collections/resultMap.js +224 -0
  23. package/lib/packlets/collections/resultMap.js.map +1 -0
  24. package/lib/packlets/collections/resultMapValidator.d.ts +94 -0
  25. package/lib/packlets/collections/resultMapValidator.d.ts.map +1 -0
  26. package/lib/packlets/collections/resultMapValidator.js +126 -0
  27. package/lib/packlets/collections/resultMapValidator.js.map +1 -0
  28. package/lib/packlets/collections/utils.d.ts +69 -0
  29. package/lib/packlets/collections/utils.d.ts.map +1 -0
  30. package/lib/packlets/collections/utils.js +116 -0
  31. package/lib/packlets/collections/utils.js.map +1 -0
  32. package/lib/packlets/collections/validatingResultMap.d.ts +73 -0
  33. package/lib/packlets/collections/validatingResultMap.d.ts.map +1 -0
  34. package/lib/packlets/collections/validatingResultMap.js +102 -0
  35. package/lib/packlets/collections/validatingResultMap.js.map +1 -0
  36. package/lib/packlets/conversion/baseConverter.d.ts +7 -3
  37. package/lib/packlets/conversion/baseConverter.d.ts.map +1 -1
  38. package/lib/packlets/conversion/baseConverter.js +10 -0
  39. package/lib/packlets/conversion/baseConverter.js.map +1 -1
  40. package/lib/packlets/conversion/converter.d.ts +19 -3
  41. package/lib/packlets/conversion/converter.d.ts.map +1 -1
  42. package/lib/packlets/conversion/converter.js.map +1 -1
  43. package/lib/packlets/conversion/converters.d.ts +42 -42
  44. package/lib/packlets/conversion/converters.d.ts.map +1 -1
  45. package/lib/packlets/conversion/converters.js +9 -9
  46. package/lib/packlets/conversion/converters.js.map +1 -1
  47. package/lib/packlets/conversion/defaultingConverter.d.ts +6 -2
  48. package/lib/packlets/conversion/defaultingConverter.d.ts.map +1 -1
  49. package/lib/packlets/conversion/defaultingConverter.js +7 -0
  50. package/lib/packlets/conversion/defaultingConverter.js.map +1 -1
  51. package/lib/packlets/conversion/objectConverter.d.ts +3 -3
  52. package/lib/packlets/conversion/objectConverter.d.ts.map +1 -1
  53. package/lib/packlets/conversion/objectConverter.js.map +1 -1
  54. package/lib/packlets/validation/field.d.ts +1 -1
  55. package/lib/packlets/validation/field.d.ts.map +1 -1
  56. package/lib/packlets/validation/field.js.map +1 -1
  57. package/lib/packlets/validation/genericValidator.d.ts +6 -2
  58. package/lib/packlets/validation/genericValidator.d.ts.map +1 -1
  59. package/lib/packlets/validation/genericValidator.js +19 -2
  60. package/lib/packlets/validation/genericValidator.js.map +1 -1
  61. package/lib/packlets/validation/validator.d.ts +18 -1
  62. package/lib/packlets/validation/validator.d.ts.map +1 -1
  63. package/lib/packlets/validation/validator.js.map +1 -1
  64. package/lib/packlets/validation/validatorBase.d.ts +1 -1
  65. package/lib/packlets/validation/validatorBase.d.ts.map +1 -1
  66. package/lib/packlets/validation/validatorBase.js.map +1 -1
  67. package/package.json +1 -1
package/lib/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
+ import * as Collections from './packlets/collections';
1
2
  import * as Conversion from './packlets/conversion';
2
3
  import * as Hash from './packlets/hash';
3
4
  import * as Validation from './packlets/validation';
5
+ import { IReadOnlyResultMap, ResultMap, ValidatingResultMap } from './packlets/collections';
4
6
  import { Converter, Converters, ObjectConverter, StringConverter } from './packlets/conversion';
5
7
  import { Validator, Validators } from './packlets/validation';
6
8
  export * from './packlets/base';
7
- export { Conversion, Converter, Converters, Hash, ObjectConverter, StringConverter, Validation, Validator, Validators };
9
+ export { Collections, Conversion, Converter, Converters, Hash, IReadOnlyResultMap, ObjectConverter, ResultMap, StringConverter, ValidatingResultMap, Validation, Validator, Validators };
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE9D,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,IAAI,EACJ,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,UAAU,EACX,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE9D,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,IAAI,EACJ,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,UAAU,EACX,CAAC"}
package/lib/index.js CHANGED
@@ -57,13 +57,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
57
57
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
58
58
  };
59
59
  Object.defineProperty(exports, "__esModule", { value: true });
60
- exports.Validators = exports.Validation = exports.StringConverter = exports.ObjectConverter = exports.Hash = exports.Converters = exports.Conversion = void 0;
60
+ exports.Validators = exports.Validation = exports.ValidatingResultMap = exports.StringConverter = exports.ResultMap = exports.ObjectConverter = exports.Hash = exports.Converters = exports.Conversion = exports.Collections = void 0;
61
+ const Collections = __importStar(require("./packlets/collections"));
62
+ exports.Collections = Collections;
61
63
  const Conversion = __importStar(require("./packlets/conversion"));
62
64
  exports.Conversion = Conversion;
63
65
  const Hash = __importStar(require("./packlets/hash"));
64
66
  exports.Hash = Hash;
65
67
  const Validation = __importStar(require("./packlets/validation"));
66
68
  exports.Validation = Validation;
69
+ const collections_1 = require("./packlets/collections");
70
+ Object.defineProperty(exports, "ResultMap", { enumerable: true, get: function () { return collections_1.ResultMap; } });
71
+ Object.defineProperty(exports, "ValidatingResultMap", { enumerable: true, get: function () { return collections_1.ValidatingResultMap; } });
67
72
  const conversion_1 = require("./packlets/conversion");
68
73
  Object.defineProperty(exports, "Converters", { enumerable: true, get: function () { return conversion_1.Converters; } });
69
74
  Object.defineProperty(exports, "ObjectConverter", { enumerable: true, get: function () { return conversion_1.ObjectConverter; } });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,kEAAoD;AASlD,gCAAU;AARZ,sDAAwC;AAWtC,oBAAI;AAVN,kEAAoD;AAalD,gCAAU;AAXZ,sDAAgG;AAO9F,2FAPkB,uBAAU,OAOlB;AAEV,gGAT8B,4BAAe,OAS9B;AACf,gGAV+C,4BAAe,OAU/C;AATjB,sDAA8D;AAY5D,2FAZkB,uBAAU,OAYlB;AAVZ,kDAAgC","sourcesContent":["/*\n * Copyright (c) 2020 Erik Fortune\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nimport * as Conversion from './packlets/conversion';\nimport * as Hash from './packlets/hash';\nimport * as Validation from './packlets/validation';\n\nimport { Converter, Converters, ObjectConverter, StringConverter } from './packlets/conversion';\nimport { Validator, Validators } from './packlets/validation';\n\nexport * from './packlets/base';\nexport {\n Conversion,\n Converter,\n Converters,\n Hash,\n ObjectConverter,\n StringConverter,\n Validation,\n Validator,\n Validators\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oEAAsD;AAWpD,kCAAW;AAVb,kEAAoD;AAWlD,gCAAU;AAVZ,sDAAwC;AAatC,oBAAI;AAZN,kEAAoD;AAkBlD,gCAAU;AAhBZ,wDAA4F;AAa1F,0FAb2B,uBAAS,OAa3B;AAET,oGAfsC,iCAAmB,OAetC;AAdrB,sDAAgG;AAQ9F,2FARkB,uBAAU,OAQlB;AAGV,gGAX8B,4BAAe,OAW9B;AAEf,gGAb+C,4BAAe,OAa/C;AAZjB,sDAA8D;AAgB5D,2FAhBkB,uBAAU,OAgBlB;AAdZ,kDAAgC","sourcesContent":["/*\n * Copyright (c) 2020 Erik Fortune\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nimport * as Collections from './packlets/collections';\nimport * as Conversion from './packlets/conversion';\nimport * as Hash from './packlets/hash';\nimport * as Validation from './packlets/validation';\n\nimport { IReadOnlyResultMap, ResultMap, ValidatingResultMap } from './packlets/collections';\nimport { Converter, Converters, ObjectConverter, StringConverter } from './packlets/conversion';\nimport { Validator, Validators } from './packlets/validation';\n\nexport * from './packlets/base';\nexport {\n Collections,\n Conversion,\n Converter,\n Converters,\n Hash,\n IReadOnlyResultMap,\n ObjectConverter,\n ResultMap,\n StringConverter,\n ValidatingResultMap,\n Validation,\n Validator,\n Validators\n};\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generic key-value entry.
3
+ * @public
4
+ */
5
+ export type KeyValueEntry<TK extends string = string, TV = unknown> = [TK, TV];
6
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/packlets/collections/common.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2025 Erik Fortune
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ * of this software and associated documentation files (the "Software"), to deal
7
+ * in the Software without restriction, including without limitation the rights
8
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the Software is
10
+ * furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/packlets/collections/common.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG","sourcesContent":["/*\n * Copyright (c) 2025 Erik Fortune\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/**\n * Generic key-value entry.\n * @public\n */\nexport type KeyValueEntry<TK extends string = string, TV = unknown> = [TK, TV];\n"]}
@@ -0,0 +1,8 @@
1
+ import * as Utils from './utils';
2
+ export * from './common';
3
+ export * from './readonlyResultMap';
4
+ export * from './resultMap';
5
+ export * from './resultMapValidator';
6
+ export * from './validatingResultMap';
7
+ export { Utils };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/packlets/collections/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2025 Erik Fortune
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ * of this software and associated documentation files (the "Software"), to deal
7
+ * in the Software without restriction, including without limitation the rights
8
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the Software is
10
+ * furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || (function () {
40
+ var ownKeys = function(o) {
41
+ ownKeys = Object.getOwnPropertyNames || function (o) {
42
+ var ar = [];
43
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
44
+ return ar;
45
+ };
46
+ return ownKeys(o);
47
+ };
48
+ return function (mod) {
49
+ if (mod && mod.__esModule) return mod;
50
+ var result = {};
51
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
52
+ __setModuleDefault(result, mod);
53
+ return result;
54
+ };
55
+ })();
56
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
57
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
58
+ };
59
+ Object.defineProperty(exports, "__esModule", { value: true });
60
+ exports.Utils = void 0;
61
+ const Utils = __importStar(require("./utils"));
62
+ exports.Utils = Utils;
63
+ __exportStar(require("./common"), exports);
64
+ __exportStar(require("./readonlyResultMap"), exports);
65
+ __exportStar(require("./resultMap"), exports);
66
+ __exportStar(require("./resultMapValidator"), exports);
67
+ __exportStar(require("./validatingResultMap"), exports);
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/packlets/collections/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AAOxB,sBAAK;AALd,2CAAyB;AACzB,sDAAoC;AACpC,8CAA4B;AAC5B,uDAAqC;AACrC,wDAAsC","sourcesContent":["/*\n * Copyright (c) 2025 Erik Fortune\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nimport * as Utils from './utils';\n\nexport * from './common';\nexport * from './readonlyResultMap';\nexport * from './resultMap';\nexport * from './resultMapValidator';\nexport * from './validatingResultMap';\nexport { Utils };\n"]}
@@ -0,0 +1,58 @@
1
+ import { DetailedResult } from '../base';
2
+ import { KeyValueEntry } from './common';
3
+ /**
4
+ * Additional success or failure details for {@link Collections.ResultMap | ResultMap} calls.
5
+ * @public
6
+ */
7
+ export type ResultMapResultDetail = 'added' | 'deleted' | 'exists' | 'invalid-key' | 'invalid-value' | 'not-found' | 'success' | 'updated';
8
+ /**
9
+ * Callback for {@link Collections.ResultMap | ResultMap} `forEach` method.
10
+ * @public
11
+ */
12
+ export type ResultMapForEachCb<TK extends string = string, TE = unknown> = (value: TE, key: TK, map: IReadOnlyResultMap<TK, TE>, thisArg?: unknown) => void;
13
+ /**
14
+ * A readonly `ReadonlyMap<TK, TV>`-like object which reports success or failure
15
+ * with additional details using the
16
+ * {@link https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils#the-result-pattern | result pattern}.
17
+ * @public
18
+ */
19
+ export interface IReadOnlyResultMap<TK extends string = string, TV = unknown> {
20
+ /**
21
+ * {@inheritdoc Collections.ResultMap.inner}
22
+ */
23
+ readonly inner: ReadonlyMap<TK, TV>;
24
+ /**
25
+ * {@inheritdoc Collections.ResultMap.size}
26
+ */
27
+ readonly size: number;
28
+ /**
29
+ * {@inheritdoc Collections.ResultMap.entries}
30
+ */
31
+ entries(): MapIterator<KeyValueEntry<TK, TV>>;
32
+ /**
33
+ * {@inheritdoc Collections.ResultMap.forEach}
34
+ */
35
+ forEach(cb: ResultMapForEachCb, arg?: unknown): void;
36
+ /**
37
+ * {@inheritdoc Collections.ResultMap.get}
38
+ */
39
+ get(key: TK): DetailedResult<TV, ResultMapResultDetail>;
40
+ /**
41
+ * {@inheritdoc Collections.ResultMap.has}
42
+ */
43
+ has(key: TK): boolean;
44
+ /**
45
+ * {@inheritdoc Collections.ResultMap.keys}
46
+ */
47
+ keys(): MapIterator<TK>;
48
+ /**
49
+ * {@inheritdoc Collections.ResultMap.values}
50
+ */
51
+ values(): MapIterator<TV>;
52
+ /**
53
+ * Gets an iterator over the map entries.
54
+ * @returns An iterator over the map entries.
55
+ */
56
+ [Symbol.iterator](): IterableIterator<KeyValueEntry<TK, TV>>;
57
+ }
58
+ //# sourceMappingURL=readonlyResultMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonlyResultMap.d.ts","sourceRoot":"","sources":["../../../src/packlets/collections/readonlyResultMap.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,SAAS,GACT,QAAQ,GACR,aAAa,GACb,eAAe,GACf,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,IAAI,CACzE,KAAK,EAAE,EAAE,EACT,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,EAC/B,OAAO,CAAC,EAAE,OAAO,KACd,IAAI,CAAC;AAEV;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO;IAC1E;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAErD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,cAAc,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAExD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAEtB;;OAEG;IACH,IAAI,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,MAAM,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IAE1B;;;OAGG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;CAC9D"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2025 Erik Fortune
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ * of this software and associated documentation files (the "Software"), to deal
7
+ * in the Software without restriction, including without limitation the rights
8
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the Software is
10
+ * furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ //# sourceMappingURL=readonlyResultMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonlyResultMap.js","sourceRoot":"","sources":["../../../src/packlets/collections/readonlyResultMap.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG","sourcesContent":["/*\n * Copyright (c) 2025 Erik Fortune\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nimport { DetailedResult } from '../base';\nimport { KeyValueEntry } from './common';\n\n/**\n * Additional success or failure details for {@link Collections.ResultMap | ResultMap} calls.\n * @public\n */\nexport type ResultMapResultDetail =\n | 'added'\n | 'deleted'\n | 'exists'\n | 'invalid-key'\n | 'invalid-value'\n | 'not-found'\n | 'success'\n | 'updated';\n\n/**\n * Callback for {@link Collections.ResultMap | ResultMap} `forEach` method.\n * @public\n */\nexport type ResultMapForEachCb<TK extends string = string, TE = unknown> = (\n value: TE,\n key: TK,\n map: IReadOnlyResultMap<TK, TE>,\n thisArg?: unknown\n) => void;\n\n/**\n * A readonly `ReadonlyMap<TK, TV>`-like object which reports success or failure\n * with additional details using the\n * {@link https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils#the-result-pattern | result pattern}.\n * @public\n */\nexport interface IReadOnlyResultMap<TK extends string = string, TV = unknown> {\n /**\n * {@inheritdoc Collections.ResultMap.inner}\n */\n readonly inner: ReadonlyMap<TK, TV>;\n\n /**\n * {@inheritdoc Collections.ResultMap.size}\n */\n readonly size: number;\n\n /**\n * {@inheritdoc Collections.ResultMap.entries}\n */\n entries(): MapIterator<KeyValueEntry<TK, TV>>;\n\n /**\n * {@inheritdoc Collections.ResultMap.forEach}\n */\n forEach(cb: ResultMapForEachCb, arg?: unknown): void;\n\n /**\n * {@inheritdoc Collections.ResultMap.get}\n */\n get(key: TK): DetailedResult<TV, ResultMapResultDetail>;\n\n /**\n * {@inheritdoc Collections.ResultMap.has}\n */\n has(key: TK): boolean;\n\n /**\n * {@inheritdoc Collections.ResultMap.keys}\n */\n keys(): MapIterator<TK>;\n\n /**\n * {@inheritdoc Collections.ResultMap.values}\n */\n values(): MapIterator<TV>;\n\n /**\n * Gets an iterator over the map entries.\n * @returns An iterator over the map entries.\n */\n [Symbol.iterator](): IterableIterator<KeyValueEntry<TK, TV>>;\n}\n"]}
@@ -0,0 +1,180 @@
1
+ import { DetailedResult, Result } from '../base';
2
+ import { KeyValueEntry } from './common';
3
+ import { IReadOnlyResultMap, ResultMapForEachCb, ResultMapResultDetail } from './readonlyResultMap';
4
+ /**
5
+ * Parameters for constructing a {@link Collections.ResultMap | ResultMap}.
6
+ * @public
7
+ */
8
+ export interface IResultMapConstructorParams<TK extends string = string, TV = unknown> {
9
+ entries?: Iterable<KeyValueEntry<TK, TV>>;
10
+ }
11
+ /**
12
+ * Deferred constructor for the {@link Collections.ResultMap.(getOrAdd:2) | getOrAdd} method.
13
+ * @public
14
+ */
15
+ export type ResultMapValueFactory<TK extends string = string, TV = unknown> = (key: TK) => Result<TV>;
16
+ /**
17
+ * A {@link Collections.ResultMap | ResultMap} class as a `Map<TK, TV>`-like object which
18
+ * reports success or failure with additional details using the
19
+ * {@link https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils#the-result-pattern | result pattern}.
20
+ * @public
21
+ */
22
+ export declare class ResultMap<TK extends string = string, TV = unknown> implements IReadOnlyResultMap<TK, TV> {
23
+ /**
24
+ * Readonly raw access to the inner `Map<TK, TV>` object.
25
+ */
26
+ get inner(): ReadonlyMap<TK, TV>;
27
+ /**
28
+ * Protected raw access to the inner `Map<TK, TV>` object.
29
+ * @public
30
+ */
31
+ protected readonly _inner: Map<TK, TV>;
32
+ /**
33
+ * Constructs a new {@link Collections.ResultMap | ResultMap}.
34
+ * @param iterable - An iterable to initialize the map.
35
+ */
36
+ constructor(iterable?: Iterable<KeyValueEntry<TK, TV>>);
37
+ /**
38
+ * Constructs a new {@link Collections.ResultMap | ResultMap}.
39
+ * @param params - An optional set of parameters to configure the map.
40
+ */
41
+ constructor(params: IResultMapConstructorParams);
42
+ /**
43
+ * Creates a new {@link Collections.ResultMap | ResultMap}.
44
+ * @param elements - An optional iterable to initialize the map.
45
+ * @returns `Success` with the new map, or `Failure` with error details
46
+ * if an error occurred.
47
+ * @public
48
+ */
49
+ static create<TK extends string = string, TV = unknown>(elements: Iterable<KeyValueEntry<TK, TV>>): Result<ResultMap<TK, TV>>;
50
+ /**
51
+ * Creates a new {@link Collections.ResultMap | ResultMap}.
52
+ * @param params - An optional set of parameters to configure the map.
53
+ * @returns `Success` with the new map, or `Failure` with error details
54
+ * if an error occurred.
55
+ * @public
56
+ */
57
+ static create<TK extends string = string, TV = unknown>(params?: IResultMapConstructorParams<TK, TV>): Result<ResultMap<TK, TV>>;
58
+ /**
59
+ * Sets a key/value pair in the map if the key does not already exist.
60
+ * @param key - The key to set.
61
+ * @param value - The value to set.
62
+ * @returns `Success` with the value and detail `added` if the key was added,
63
+ * `Failure` with detail `exists` if the key already exists. Fails with detail
64
+ * 'invalid-key' or 'invalid-value' and an error message if either is invalid.
65
+ */
66
+ add(key: TK, value: TV): DetailedResult<TV, ResultMapResultDetail>;
67
+ /**
68
+ * Clears the map.
69
+ */
70
+ clear(): void;
71
+ /**
72
+ * Deletes a key from the map.
73
+ * @param key - The key to delete.
74
+ * @returns `Success` with the previous value and the detail 'deleted'
75
+ * if the key was found and deleted, `Failure` with detail 'not-found'
76
+ * if the key was not found, or with detail 'invalid-key' if the key is invalid.
77
+ */
78
+ delete(key: TK): DetailedResult<TV, ResultMapResultDetail>;
79
+ /**
80
+ * Returns an iterator over the map entries.
81
+ * @returns An iterator over the map entries.
82
+ */
83
+ entries(): MapIterator<KeyValueEntry<TK, TV>>;
84
+ /**
85
+ * Calls a function for each entry in the map.
86
+ * @param cb - The function to call for each entry.
87
+ * @param arg - An optional argument to pass to the callback.
88
+ */
89
+ forEach(cb: ResultMapForEachCb<TK, TV>, arg?: unknown): void;
90
+ /**
91
+ * Gets a value from the map.
92
+ * @param key - The key to retrieve.
93
+ * @returns `Success` with the value and detail `exists` if the key was found,
94
+ * `Failure` with detail `not-found` if the key was not found or with detail
95
+ * `invalid-key` if the key is invalid.
96
+ */
97
+ get(key: TK): DetailedResult<TV, ResultMapResultDetail>;
98
+ /**
99
+ * Gets a value from the map, or adds a supplied value it if it does not exist.
100
+ * @param key - The key to be retrieved or created.
101
+ * @param value - The value to add if the key does not exist.
102
+ * @returns `Success` with the value and detail `exists` if the key was found,
103
+ * `Success` with the value and detail `added` if the key was not found and added.
104
+ * Fails with detail 'invalid-key' or 'invalid-value' and an error message if either
105
+ * is invalid.
106
+ * {@label WITH_VALUE}
107
+ */
108
+ getOrAdd(key: TK, value: TV): DetailedResult<TV, ResultMapResultDetail>;
109
+ /**
110
+ * Gets a value from the map, or adds a value created by a factory function if it does not exist.
111
+ * @param key - The key of the element to be retrieved or created.
112
+ * @param factory - A {@link Collections.ResultMapValueFactory | factory function} to create the value if
113
+ * the key does not exist.
114
+ * @returns `Success` with the value and detail `exists` if the key was found, `Success` with
115
+ * the value and detail `added` if the key was not found and added. Fails with detail 'invalid-key'
116
+ * or 'invalid-value' and an error message if either is invalid.
117
+ * {@label WITH_FACTORY}
118
+ */
119
+ getOrAdd(key: TK, factory: ResultMapValueFactory<TK, TV>): DetailedResult<TV, ResultMapResultDetail>;
120
+ /**
121
+ * Returns `true` if the map contains a key.
122
+ * @param key - The key to check.
123
+ * @returns `true` if the key exists, `false` otherwise.
124
+ */
125
+ has(key: TK): boolean;
126
+ /**
127
+ * Returns an iterator over the map keys.
128
+ * @returns An iterator over the map keys.
129
+ */
130
+ keys(): MapIterator<TK>;
131
+ /**
132
+ * Sets a key/value pair in the map.
133
+ * @param key - The key to set.
134
+ * @param value - The value to set.
135
+ * @returns `Success` with the new value and the detail `updated` if the
136
+ * key was found and updated, `Success` with the new value and detail
137
+ * `added` if the key was not found and added. Fails with detail
138
+ * 'invalid-key' or 'invalid-value' and an error message if either is invalid.
139
+ */
140
+ set(key: TK, value: TV): DetailedResult<TV, ResultMapResultDetail>;
141
+ /**
142
+ * Returns the number of entries in the map.
143
+ */
144
+ get size(): number;
145
+ /**
146
+ * Updates an existing key in the map - the map is not updated if the key does
147
+ * not exist.
148
+ * @param key - The key to update.
149
+ * @param value - The value to set.
150
+ * @returns `Success` with the value and detail 'exists' if the key was found
151
+ * and the value updated, `Failure` an error message and with detail `not-found`
152
+ * if the key was not found, or with detail 'invalid-key' or 'invalid-value'
153
+ * if either is invalid.
154
+ */
155
+ update(key: TK, value: TV): DetailedResult<TV, ResultMapResultDetail>;
156
+ /**
157
+ * Returns an iterator over the map values.
158
+ * @returns An iterator over the map values.
159
+ */
160
+ values(): MapIterator<TV>;
161
+ /**
162
+ * Gets an iterator over the map entries.
163
+ * @returns An iterator over the map entries.
164
+ */
165
+ [Symbol.iterator](): IterableIterator<KeyValueEntry<TK, TV>>;
166
+ /**
167
+ * Gets a readonly version of this map.
168
+ * @returns A readonly version of this map.
169
+ */
170
+ toReadOnly(): IReadOnlyResultMap<TK, TV>;
171
+ /**
172
+ * Determines if a value is a {@link Collections.ResultMapValueFactory | ResultMapValueFactory}.
173
+ * @param value - The value to check.
174
+ * @returns `true` if the value is a {@link Collections.ResultMapValueFactory | ResultMapValueFactory},
175
+ * `false` otherwise.
176
+ * @public
177
+ */
178
+ protected _isResultMapValueFactory<TK extends string, TV>(value: TV | ResultMapValueFactory<TK, TV>): value is ResultMapValueFactory<TK, TV>;
179
+ }
180
+ //# sourceMappingURL=resultMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultMap.d.ts","sourceRoot":"","sources":["../../../src/packlets/collections/resultMap.ts"],"names":[],"mappings":"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"}