@satoshibits/functional 1.1.0 → 1.1.2

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 (130) hide show
  1. package/README.md +28 -145
  2. package/dist/array-utils.d.mts +13 -0
  3. package/dist/array-utils.d.mts.map +1 -1
  4. package/dist/array-utils.mjs +13 -0
  5. package/dist/array-utils.mjs.map +1 -1
  6. package/dist/array-utils.test.d.ts +2 -0
  7. package/dist/array-utils.test.d.ts.map +1 -0
  8. package/dist/array-utils.test.js +256 -0
  9. package/dist/array-utils.test.js.map +1 -0
  10. package/dist/composition.d.mts +13 -0
  11. package/dist/composition.d.mts.map +1 -1
  12. package/dist/composition.mjs +13 -0
  13. package/dist/composition.mjs.map +1 -1
  14. package/dist/composition.test.d.ts +2 -0
  15. package/dist/composition.test.d.ts.map +1 -0
  16. package/dist/composition.test.js +409 -0
  17. package/dist/composition.test.js.map +1 -0
  18. package/dist/integration.test.d.mts +2 -0
  19. package/dist/integration.test.d.mts.map +1 -0
  20. package/dist/integration.test.mjs +486 -0
  21. package/dist/integration.test.mjs.map +1 -0
  22. package/dist/io.d.mts +12 -0
  23. package/dist/io.d.mts.map +1 -1
  24. package/dist/io.mjs +12 -0
  25. package/dist/io.mjs.map +1 -1
  26. package/dist/io.test.d.mts +2 -0
  27. package/dist/io.test.d.mts.map +1 -0
  28. package/dist/io.test.mjs +373 -0
  29. package/dist/io.test.mjs.map +1 -0
  30. package/dist/laws.test.d.mts +2 -0
  31. package/dist/laws.test.d.mts.map +1 -0
  32. package/dist/laws.test.mjs +614 -0
  33. package/dist/laws.test.mjs.map +1 -0
  34. package/dist/object-utils.d.mts +11 -0
  35. package/dist/object-utils.d.mts.map +1 -1
  36. package/dist/object-utils.mjs +11 -0
  37. package/dist/object-utils.mjs.map +1 -1
  38. package/dist/object-utils.test.d.ts +2 -0
  39. package/dist/object-utils.test.d.ts.map +1 -0
  40. package/dist/object-utils.test.js +286 -0
  41. package/dist/object-utils.test.js.map +1 -0
  42. package/dist/option-additions.test.d.mts +2 -0
  43. package/dist/option-additions.test.d.mts.map +1 -0
  44. package/dist/option-additions.test.mjs +325 -0
  45. package/dist/option-additions.test.mjs.map +1 -0
  46. package/dist/option.d.mts +20 -3
  47. package/dist/option.d.mts.map +1 -1
  48. package/dist/option.mjs +20 -3
  49. package/dist/option.mjs.map +1 -1
  50. package/dist/option.test.d.ts +6 -0
  51. package/dist/option.test.d.ts.map +1 -0
  52. package/dist/option.test.js +606 -0
  53. package/dist/option.test.js.map +1 -0
  54. package/dist/performance.d.mts +26 -9
  55. package/dist/performance.d.mts.map +1 -1
  56. package/dist/performance.mjs +26 -9
  57. package/dist/performance.mjs.map +1 -1
  58. package/dist/performance.test.d.ts +2 -0
  59. package/dist/performance.test.d.ts.map +1 -0
  60. package/dist/performance.test.js +424 -0
  61. package/dist/performance.test.js.map +1 -0
  62. package/dist/pipeline.d.mts +12 -0
  63. package/dist/pipeline.d.mts.map +1 -1
  64. package/dist/pipeline.mjs +12 -0
  65. package/dist/pipeline.mjs.map +1 -1
  66. package/dist/pipeline.test.d.ts +2 -0
  67. package/dist/pipeline.test.d.ts.map +1 -0
  68. package/dist/pipeline.test.js +445 -0
  69. package/dist/pipeline.test.js.map +1 -0
  70. package/dist/predicates.d.mts +12 -0
  71. package/dist/predicates.d.mts.map +1 -1
  72. package/dist/predicates.mjs +12 -0
  73. package/dist/predicates.mjs.map +1 -1
  74. package/dist/predicates.test.d.ts +2 -0
  75. package/dist/predicates.test.d.ts.map +1 -0
  76. package/dist/predicates.test.js +375 -0
  77. package/dist/predicates.test.js.map +1 -0
  78. package/dist/reader-result.d.mts +37 -16
  79. package/dist/reader-result.d.mts.map +1 -1
  80. package/dist/reader-result.mjs +37 -16
  81. package/dist/reader-result.mjs.map +1 -1
  82. package/dist/reader-result.test.d.ts +2 -0
  83. package/dist/reader-result.test.d.ts.map +1 -0
  84. package/dist/reader-result.test.js +1259 -0
  85. package/dist/reader-result.test.js.map +1 -0
  86. package/dist/reader.d.mts +12 -0
  87. package/dist/reader.d.mts.map +1 -1
  88. package/dist/reader.mjs +12 -0
  89. package/dist/reader.mjs.map +1 -1
  90. package/dist/reader.test.d.mts +2 -0
  91. package/dist/reader.test.d.mts.map +1 -0
  92. package/dist/reader.test.mjs +288 -0
  93. package/dist/reader.test.mjs.map +1 -0
  94. package/dist/result-additions.test.d.mts +2 -0
  95. package/dist/result-additions.test.d.mts.map +1 -0
  96. package/dist/result-additions.test.mjs +325 -0
  97. package/dist/result-additions.test.mjs.map +1 -0
  98. package/dist/result.d.mts +12 -0
  99. package/dist/result.d.mts.map +1 -1
  100. package/dist/result.mjs +12 -0
  101. package/dist/result.mjs.map +1 -1
  102. package/dist/result.test.d.ts +2 -0
  103. package/dist/result.test.d.ts.map +1 -0
  104. package/dist/result.test.js +453 -0
  105. package/dist/result.test.js.map +1 -0
  106. package/dist/task.d.mts +13 -0
  107. package/dist/task.d.mts.map +1 -1
  108. package/dist/task.mjs +13 -0
  109. package/dist/task.mjs.map +1 -1
  110. package/dist/task.test.d.mts +2 -0
  111. package/dist/task.test.d.mts.map +1 -0
  112. package/dist/task.test.mjs +1006 -0
  113. package/dist/task.test.mjs.map +1 -0
  114. package/dist/types.d.mts +12 -0
  115. package/dist/types.d.mts.map +1 -1
  116. package/dist/types.mjs +12 -0
  117. package/dist/types.mjs.map +1 -1
  118. package/dist/types.test.d.ts +6 -0
  119. package/dist/types.test.d.ts.map +1 -0
  120. package/dist/types.test.js +447 -0
  121. package/dist/types.test.js.map +1 -0
  122. package/dist/validation.d.mts +12 -0
  123. package/dist/validation.d.mts.map +1 -1
  124. package/dist/validation.mjs +12 -0
  125. package/dist/validation.mjs.map +1 -1
  126. package/dist/validation.test.d.ts +2 -0
  127. package/dist/validation.test.d.ts.map +1 -0
  128. package/dist/validation.test.js +518 -0
  129. package/dist/validation.test.js.map +1 -0
  130. package/package.json +77 -13
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.test.mjs","sourceRoot":"","sources":["../src/task.test.mts"],"names":[],"mappings":"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"}
package/dist/types.d.mts CHANGED
@@ -7,6 +7,18 @@
7
7
  * provides utilities for creating branded types, common domain types, and
8
8
  * advanced TypeScript type utilities.
9
9
  *
10
+ * ### For Dummies
11
+ * - Branded types are stickers you slap on primitives so TypeScript stops mixing them up.
12
+ * - `brand` gives you a constructor; using it is as cheap as returning the original value.
13
+ * - Helpful utilities like `assertNever` make exhaustive checks safer.
14
+ *
15
+ * ### Decision Tree
16
+ * - Need a nominal type? Create it with `const UserId = brand<string, 'UserId'>('UserId')`.
17
+ * - Got a branded value and want the plain type? Use `Unbrand<UserId>`.
18
+ * - Building rich domain models? Use the provided ID constructors (e.g., `UserId`, `AccountId`).
19
+ * - Validating before branding? Pass a `validate` function into `brand`.
20
+ * - Checking switch exhaustiveness? Drop `assertNever(value)` in the default case.
21
+ *
10
22
  * @example
11
23
  * ```typescript
12
24
  * import { brand, Brand, UserId, Email, assertNever } from './types.mts';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.mts"],"names":[],"mappings":"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"}
package/dist/types.mjs CHANGED
@@ -8,6 +8,18 @@
8
8
  * provides utilities for creating branded types, common domain types, and
9
9
  * advanced TypeScript type utilities.
10
10
  *
11
+ * ### For Dummies
12
+ * - Branded types are stickers you slap on primitives so TypeScript stops mixing them up.
13
+ * - `brand` gives you a constructor; using it is as cheap as returning the original value.
14
+ * - Helpful utilities like `assertNever` make exhaustive checks safer.
15
+ *
16
+ * ### Decision Tree
17
+ * - Need a nominal type? Create it with `const UserId = brand<string, 'UserId'>('UserId')`.
18
+ * - Got a branded value and want the plain type? Use `Unbrand<UserId>`.
19
+ * - Building rich domain models? Use the provided ID constructors (e.g., `UserId`, `AccountId`).
20
+ * - Validating before branding? Pass a `validate` function into `brand`.
21
+ * - Checking switch exhaustiveness? Drop `assertNever(value)` in the default case.
22
+ *
11
23
  * @example
12
24
  * ```typescript
13
25
  * import { brand, Brand, UserId, Email, assertNever } from './types.mts';
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module types.test
3
+ * Tests for branded types and type utilities
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,447 @@
1
+ "use strict";
2
+ /**
3
+ * @module types.test
4
+ * Tests for branded types and type utilities
5
+ */
6
+ var __extends = (this && this.__extends) || (function () {
7
+ var extendStatics = function (d, b) {
8
+ extendStatics = Object.setPrototypeOf ||
9
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
11
+ return extendStatics(d, b);
12
+ };
13
+ return function (d, b) {
14
+ if (typeof b !== "function" && b !== null)
15
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
16
+ extendStatics(d, b);
17
+ function __() { this.constructor = d; }
18
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19
+ };
20
+ })();
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __generator = (this && this.__generator) || function (thisArg, body) {
31
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
32
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
33
+ function verb(n) { return function (v) { return step([n, v]); }; }
34
+ function step(op) {
35
+ if (f) throw new TypeError("Generator is already executing.");
36
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
37
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
38
+ if (y = 0, t) op = [op[0] & 2, t.value];
39
+ switch (op[0]) {
40
+ case 0: case 1: t = op; break;
41
+ case 4: _.label++; return { value: op[1], done: false };
42
+ case 5: _.label++; y = op[1]; op = [0]; continue;
43
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
44
+ default:
45
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
46
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
47
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
48
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
49
+ if (t[2]) _.ops.pop();
50
+ _.trys.pop(); continue;
51
+ }
52
+ op = body.call(thisArg, _);
53
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
54
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
55
+ }
56
+ };
57
+ Object.defineProperty(exports, "__esModule", { value: true });
58
+ var vitest_1 = require("vitest");
59
+ var types_mjs_1 = require("./types.mjs");
60
+ (0, vitest_1.describe)('Branded Types', function () {
61
+ (0, vitest_1.describe)('brand function', function () {
62
+ (0, vitest_1.it)('should create a branded type constructor', function () {
63
+ var TestId = (0, types_mjs_1.brand)('TestId');
64
+ var id = TestId('test-123');
65
+ // Runtime value is unchanged
66
+ (0, vitest_1.expect)(id).toBe('test-123');
67
+ // Type system sees it as branded
68
+ var typedId = id;
69
+ (0, vitest_1.expect)(typedId).toBe('test-123');
70
+ });
71
+ (0, vitest_1.it)('should support validation in brand constructor', function () {
72
+ var ValidatedId = (0, types_mjs_1.brand)('ValidatedId', function (value) {
73
+ if (!value.startsWith('valid_')) {
74
+ throw new Error('ID must start with valid_');
75
+ }
76
+ return value;
77
+ });
78
+ (0, vitest_1.expect)(function () { return ValidatedId('invalid'); }).toThrow('ID must start with valid_');
79
+ (0, vitest_1.expect)(ValidatedId('valid_123')).toBe('valid_123');
80
+ });
81
+ (0, vitest_1.it)('should preserve the original value', function () {
82
+ var NumberId = (0, types_mjs_1.brand)('NumberId');
83
+ var id = NumberId(42);
84
+ (0, vitest_1.expect)(id).toBe(42);
85
+ (0, vitest_1.expect)(typeof id).toBe('number');
86
+ });
87
+ });
88
+ (0, vitest_1.describe)('Common ID Types', function () {
89
+ (0, vitest_1.it)('should create AccountId', function () {
90
+ var id = (0, types_mjs_1.AccountId)('acc_123456');
91
+ (0, vitest_1.expect)(id).toBe('acc_123456');
92
+ // Type checking
93
+ var typedId = id;
94
+ (0, vitest_1.expect)(typedId).toBe('acc_123456');
95
+ });
96
+ (0, vitest_1.it)('should create UserId', function () {
97
+ var id = (0, types_mjs_1.UserId)('usr_789012');
98
+ (0, vitest_1.expect)(id).toBe('usr_789012');
99
+ });
100
+ (0, vitest_1.it)('should create CampaignId', function () {
101
+ var id = (0, types_mjs_1.CampaignId)('camp_abc123');
102
+ (0, vitest_1.expect)(id).toBe('camp_abc123');
103
+ });
104
+ (0, vitest_1.it)('should create ProfileId', function () {
105
+ var id = (0, types_mjs_1.ProfileId)('prof_def456');
106
+ (0, vitest_1.expect)(id).toBe('prof_def456');
107
+ });
108
+ (0, vitest_1.it)('should create SegmentId', function () {
109
+ var id = (0, types_mjs_1.SegmentId)('seg_ghi789');
110
+ (0, vitest_1.expect)(id).toBe('seg_ghi789');
111
+ });
112
+ (0, vitest_1.it)('should create EmailTemplateId', function () {
113
+ var id = (0, types_mjs_1.EmailTemplateId)('tpl_jkl012');
114
+ (0, vitest_1.expect)(id).toBe('tpl_jkl012');
115
+ });
116
+ (0, vitest_1.it)('should create EngineId', function () {
117
+ var id = (0, types_mjs_1.EngineId)('eng_mno345');
118
+ (0, vitest_1.expect)(id).toBe('eng_mno345');
119
+ });
120
+ (0, vitest_1.it)('should create ImportId', function () {
121
+ var id = (0, types_mjs_1.ImportId)('imp_pqr678');
122
+ (0, vitest_1.expect)(id).toBe('imp_pqr678');
123
+ });
124
+ (0, vitest_1.it)('should prevent mixing different ID types at compile time', function () {
125
+ var accountId = (0, types_mjs_1.AccountId)('acc_123');
126
+ var userId = (0, types_mjs_1.UserId)('usr_456');
127
+ // These would cause TypeScript errors:
128
+ // const wrong: AccountId = userId;
129
+ // const alsoWrong: UserId = accountId;
130
+ // But runtime values are just strings
131
+ (0, vitest_1.expect)(typeof accountId).toBe('string');
132
+ (0, vitest_1.expect)(typeof userId).toBe('string');
133
+ });
134
+ });
135
+ (0, vitest_1.describe)('Value Object Types', function () {
136
+ (0, vitest_1.describe)('Email', function () {
137
+ (0, vitest_1.it)('should accept valid email addresses', function () {
138
+ (0, vitest_1.expect)((0, types_mjs_1.Email)('user@example.com')).toBe('user@example.com');
139
+ (0, vitest_1.expect)((0, types_mjs_1.Email)('test.user+tag@sub.domain.com')).toBe('test.user+tag@sub.domain.com');
140
+ });
141
+ (0, vitest_1.it)('should reject invalid email addresses', function () {
142
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Email)('invalid'); }).toThrow('Invalid email format');
143
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Email)('missing@'); }).toThrow('Invalid email format');
144
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Email)('@domain.com'); }).toThrow('Invalid email format');
145
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Email)('user@'); }).toThrow('Invalid email format');
146
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Email)('user @domain.com'); }).toThrow('Invalid email format');
147
+ });
148
+ (0, vitest_1.it)('should normalize email to lowercase', function () {
149
+ (0, vitest_1.expect)((0, types_mjs_1.Email)('User@EXAMPLE.com')).toBe('user@example.com');
150
+ (0, vitest_1.expect)((0, types_mjs_1.Email)('TEST@TEST.COM')).toBe('test@test.com');
151
+ });
152
+ });
153
+ (0, vitest_1.describe)('Url', function () {
154
+ (0, vitest_1.it)('should accept valid URLs', function () {
155
+ (0, vitest_1.expect)((0, types_mjs_1.Url)('https://example.com')).toBe('https://example.com');
156
+ (0, vitest_1.expect)((0, types_mjs_1.Url)('http://localhost:3000')).toBe('http://localhost:3000');
157
+ (0, vitest_1.expect)((0, types_mjs_1.Url)('https://api.example.com/v1/users?id=123')).toBe('https://api.example.com/v1/users?id=123');
158
+ });
159
+ (0, vitest_1.it)('should reject invalid URLs', function () {
160
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Url)('not-a-url'); }).toThrow('Invalid URL format');
161
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Url)('//missing-protocol.com'); }).toThrow('Invalid URL format');
162
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Url)('http://'); }).toThrow('Invalid URL format');
163
+ });
164
+ (0, vitest_1.it)('should preserve URL exactly as provided', function () {
165
+ var url = 'https://Example.COM/Path';
166
+ (0, vitest_1.expect)((0, types_mjs_1.Url)(url)).toBe(url);
167
+ });
168
+ });
169
+ (0, vitest_1.describe)('PositiveInt', function () {
170
+ (0, vitest_1.it)('should accept positive integers', function () {
171
+ (0, vitest_1.expect)((0, types_mjs_1.PositiveInt)(1)).toBe(1);
172
+ (0, vitest_1.expect)((0, types_mjs_1.PositiveInt)(42)).toBe(42);
173
+ (0, vitest_1.expect)((0, types_mjs_1.PositiveInt)(1000000)).toBe(1000000);
174
+ });
175
+ (0, vitest_1.it)('should reject non-positive numbers', function () {
176
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.PositiveInt)(0); }).toThrow('Value must be a positive integer');
177
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.PositiveInt)(-1); }).toThrow('Value must be a positive integer');
178
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.PositiveInt)(-100); }).toThrow('Value must be a positive integer');
179
+ });
180
+ (0, vitest_1.it)('should reject non-integers', function () {
181
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.PositiveInt)(1.5); }).toThrow('Value must be a positive integer');
182
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.PositiveInt)(0.1); }).toThrow('Value must be a positive integer');
183
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.PositiveInt)(Math.PI); }).toThrow('Value must be a positive integer');
184
+ });
185
+ });
186
+ (0, vitest_1.describe)('Percentage', function () {
187
+ (0, vitest_1.it)('should accept values between 0 and 100', function () {
188
+ (0, vitest_1.expect)((0, types_mjs_1.Percentage)(0)).toBe(0);
189
+ (0, vitest_1.expect)((0, types_mjs_1.Percentage)(50)).toBe(50);
190
+ (0, vitest_1.expect)((0, types_mjs_1.Percentage)(100)).toBe(100);
191
+ (0, vitest_1.expect)((0, types_mjs_1.Percentage)(99.99)).toBe(99.99);
192
+ });
193
+ (0, vitest_1.it)('should reject values outside 0-100 range', function () {
194
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Percentage)(-1); }).toThrow('Percentage must be between 0 and 100');
195
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Percentage)(101); }).toThrow('Percentage must be between 0 and 100');
196
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.Percentage)(200); }).toThrow('Percentage must be between 0 and 100');
197
+ });
198
+ });
199
+ (0, vitest_1.describe)('ISODateString', function () {
200
+ (0, vitest_1.it)('should accept valid ISO date strings', function () {
201
+ (0, vitest_1.expect)((0, types_mjs_1.ISODateString)('2024-01-15')).toBe('2024-01-15');
202
+ (0, vitest_1.expect)((0, types_mjs_1.ISODateString)('2024-01-15T10:30:00Z')).toBe('2024-01-15T10:30:00Z');
203
+ (0, vitest_1.expect)((0, types_mjs_1.ISODateString)('2024-01-15T10:30:00.123Z')).toBe('2024-01-15T10:30:00.123Z');
204
+ });
205
+ (0, vitest_1.it)('should reject invalid date strings', function () {
206
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.ISODateString)('invalid-date'); }).toThrow('Invalid ISO date string');
207
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.ISODateString)('2024-13-01'); }).toThrow('Invalid ISO date string');
208
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.ISODateString)('2024-01-32'); }).toThrow('Invalid ISO date string');
209
+ });
210
+ (0, vitest_1.it)('should preserve the exact format provided', function () {
211
+ var date = '2024-01-15T10:30:00.123+05:30';
212
+ (0, vitest_1.expect)((0, types_mjs_1.ISODateString)(date)).toBe(date);
213
+ });
214
+ });
215
+ (0, vitest_1.describe)('NonEmptyString', function () {
216
+ (0, vitest_1.it)('should accept non-empty strings', function () {
217
+ (0, vitest_1.expect)((0, types_mjs_1.NonEmptyString)('hello')).toBe('hello');
218
+ (0, vitest_1.expect)((0, types_mjs_1.NonEmptyString)('a')).toBe('a');
219
+ (0, vitest_1.expect)((0, types_mjs_1.NonEmptyString)(' spaces ')).toBe(' spaces ');
220
+ });
221
+ (0, vitest_1.it)('should reject empty strings', function () {
222
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.NonEmptyString)(''); }).toThrow('String cannot be empty');
223
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.NonEmptyString)(' '); }).toThrow('String cannot be empty');
224
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.NonEmptyString)('\t\n'); }).toThrow('String cannot be empty');
225
+ });
226
+ });
227
+ });
228
+ (0, vitest_1.describe)('Type Utilities', function () {
229
+ (0, vitest_1.describe)('Unbrand', function () {
230
+ (0, vitest_1.it)('should extract underlying type', function () {
231
+ // Type-level test
232
+ var value = 'test';
233
+ (0, vitest_1.expect)(value).toBe('test');
234
+ });
235
+ (0, vitest_1.it)('should return original type for non-branded types', function () {
236
+ var value = 'test';
237
+ (0, vitest_1.expect)(value).toBe('test');
238
+ });
239
+ });
240
+ (0, vitest_1.describe)('DeepReadonly', function () {
241
+ (0, vitest_1.it)('should work with nested objects', function () {
242
+ var config = {
243
+ api: {
244
+ endpoint: 'https://api.example.com',
245
+ timeout: 5000,
246
+ headers: {
247
+ auth: 'Bearer token',
248
+ },
249
+ },
250
+ };
251
+ // These would cause TypeScript errors:
252
+ // config.api.endpoint = 'new';
253
+ // config.api.headers.auth = 'new';
254
+ (0, vitest_1.expect)(config.api.endpoint).toBe('https://api.example.com');
255
+ });
256
+ });
257
+ (0, vitest_1.describe)('RequireKeys', function () {
258
+ (0, vitest_1.it)('should make specified keys required', function () {
259
+ var user = {
260
+ id: '123', // Required
261
+ // name and email remain optional
262
+ };
263
+ (0, vitest_1.expect)(user.id).toBe('123');
264
+ });
265
+ });
266
+ (0, vitest_1.describe)('OptionalKeys', function () {
267
+ (0, vitest_1.it)('should make specified keys optional', function () {
268
+ var config = {
269
+ apiKey: 'key123',
270
+ // timeout and debug are now optional
271
+ };
272
+ (0, vitest_1.expect)(config.apiKey).toBe('key123');
273
+ });
274
+ });
275
+ (0, vitest_1.describe)('KeysOfType', function () {
276
+ (0, vitest_1.it)('should extract keys with specific value types', function () {
277
+ // Type-level tests
278
+ var stringKey = 'id'; // or 'name'
279
+ var numberKey = 'age';
280
+ var booleanKey = 'isActive';
281
+ (0, vitest_1.expect)(stringKey).toBe('id');
282
+ (0, vitest_1.expect)(numberKey).toBe('age');
283
+ (0, vitest_1.expect)(booleanKey).toBe('isActive');
284
+ });
285
+ });
286
+ (0, vitest_1.describe)('Nominal', function () {
287
+ (0, vitest_1.it)('should create nominal types', function () {
288
+ // Example of nominal types
289
+ // type Kilometers = Nominal<number, 'Kilometers'>;
290
+ var distance = 100;
291
+ // These would cause TypeScript errors:
292
+ // const wrong: Kilometers = distance;
293
+ (0, vitest_1.expect)(distance).toBe(100);
294
+ });
295
+ });
296
+ });
297
+ (0, vitest_1.describe)('Type Guards', function () {
298
+ (0, vitest_1.describe)('isBrand', function () {
299
+ (0, vitest_1.it)('should create type guard for branded types', function () {
300
+ // Example of brand creation
301
+ // const TestId = brand<string, 'TestId'>('TestId');
302
+ var isTestId = (0, types_mjs_1.isBrand)('TestId');
303
+ // Note: This is a simplified test since actual branded types
304
+ // don't have runtime __brand property. In practice, you'd
305
+ // track branded values differently.
306
+ var value = 'test';
307
+ (0, vitest_1.expect)(isTestId(value)).toBe(false);
308
+ // If we manually create a branded-like object
309
+ var brandedLike = Object.assign('test', { __brand: 'TestId' });
310
+ (0, vitest_1.expect)(isTestId(brandedLike)).toBe(true);
311
+ });
312
+ });
313
+ });
314
+ (0, vitest_1.describe)('Enum Utilities', function () {
315
+ (0, vitest_1.describe)('createEnum', function () {
316
+ (0, vitest_1.it)('should create a frozen enum object', function () {
317
+ var Status = (0, types_mjs_1.createEnum)({
318
+ PENDING: 'pending',
319
+ ACTIVE: 'active',
320
+ COMPLETED: 'completed',
321
+ });
322
+ (0, vitest_1.expect)(Status.PENDING).toBe('pending');
323
+ (0, vitest_1.expect)(Status.ACTIVE).toBe('active');
324
+ (0, vitest_1.expect)(Status.COMPLETED).toBe('completed');
325
+ // Should be frozen
326
+ (0, vitest_1.expect)(Object.isFrozen(Status)).toBe(true);
327
+ (0, vitest_1.expect)(function () {
328
+ Status.NEW = 'new';
329
+ }).toThrow();
330
+ });
331
+ (0, vitest_1.it)('should work with EnumType', function () {
332
+ var Status = (0, types_mjs_1.createEnum)({
333
+ PENDING: 'pending',
334
+ ACTIVE: 'active',
335
+ COMPLETED: 'completed',
336
+ });
337
+ var status = Status.ACTIVE;
338
+ (0, vitest_1.expect)(status).toBe('active');
339
+ // Type checking ensures only valid values
340
+ // const invalid: Status = 'invalid'; // TypeScript error
341
+ });
342
+ });
343
+ (0, vitest_1.describe)('assertNever', function () {
344
+ (0, vitest_1.it)('should throw for unexpected values', function () {
345
+ var value = 'unexpected';
346
+ (0, vitest_1.expect)(function () { return (0, types_mjs_1.assertNever)(value); }).toThrow('Unexpected value: "unexpected"');
347
+ });
348
+ (0, vitest_1.it)('should ensure exhaustive switches', function () {
349
+ function handleStatus(status) {
350
+ switch (status) {
351
+ case 'pending':
352
+ return 'Waiting...';
353
+ case 'active':
354
+ return 'In progress';
355
+ case 'completed':
356
+ return 'Done!';
357
+ default:
358
+ return (0, types_mjs_1.assertNever)(status);
359
+ }
360
+ }
361
+ (0, vitest_1.expect)(handleStatus('pending')).toBe('Waiting...');
362
+ (0, vitest_1.expect)(handleStatus('active')).toBe('In progress');
363
+ (0, vitest_1.expect)(handleStatus('completed')).toBe('Done!');
364
+ });
365
+ });
366
+ });
367
+ (0, vitest_1.describe)('Real-world usage patterns', function () {
368
+ (0, vitest_1.it)('should enforce type safety for entity relationships', function () {
369
+ var user = {
370
+ id: (0, types_mjs_1.UserId)('usr_123'),
371
+ accountId: (0, types_mjs_1.AccountId)('acc_456'),
372
+ email: (0, types_mjs_1.Email)('user@example.com'),
373
+ name: 'John Doe',
374
+ };
375
+ var campaign = {
376
+ id: (0, types_mjs_1.CampaignId)('camp_789'),
377
+ accountId: (0, types_mjs_1.AccountId)('acc_456'),
378
+ name: (0, types_mjs_1.NonEmptyString)('Summer Sale'),
379
+ openRate: (0, types_mjs_1.Percentage)(25.5),
380
+ };
381
+ // Type system ensures you can't mix IDs
382
+ // user.id = campaign.id; // TypeScript error
383
+ (0, vitest_1.expect)(user.accountId).toBe(campaign.accountId);
384
+ });
385
+ (0, vitest_1.it)('should work with repository pattern', function () {
386
+ var Repository = /** @class */ (function () {
387
+ function Repository() {
388
+ }
389
+ Repository.prototype.findById = function (_id) {
390
+ return __awaiter(this, void 0, void 0, function () {
391
+ return __generator(this, function (_a) {
392
+ // Mock implementation
393
+ return [2 /*return*/, Promise.resolve(null)];
394
+ });
395
+ });
396
+ };
397
+ return Repository;
398
+ }());
399
+ var UserRepository = /** @class */ (function (_super) {
400
+ __extends(UserRepository, _super);
401
+ function UserRepository() {
402
+ return _super !== null && _super.apply(this, arguments) || this;
403
+ }
404
+ return UserRepository;
405
+ }(Repository));
406
+ var CampaignRepository = /** @class */ (function (_super) {
407
+ __extends(CampaignRepository, _super);
408
+ function CampaignRepository() {
409
+ return _super !== null && _super.apply(this, arguments) || this;
410
+ }
411
+ return CampaignRepository;
412
+ }(Repository));
413
+ var userRepo = new UserRepository();
414
+ var campaignRepo = new CampaignRepository();
415
+ // Type-safe repository calls
416
+ // Example of type-safe repository calls
417
+ // const userId = UserId('usr_123');
418
+ // const campaignId = CampaignId('camp_456');
419
+ // These would be type errors:
420
+ // userRepo.findById(campaignId);
421
+ // campaignRepo.findById(userId);
422
+ (0, vitest_1.expect)(userRepo).toBeDefined();
423
+ (0, vitest_1.expect)(campaignRepo).toBeDefined();
424
+ });
425
+ (0, vitest_1.it)('should validate and transform API inputs', function () {
426
+ function validateAndCreate(input) {
427
+ return {
428
+ email: (0, types_mjs_1.Email)(input.email),
429
+ name: (0, types_mjs_1.NonEmptyString)(input.name),
430
+ accountId: (0, types_mjs_1.AccountId)(input.accountId),
431
+ id: (0, types_mjs_1.UserId)("usr_".concat(Date.now())),
432
+ };
433
+ }
434
+ var input = {
435
+ email: 'newuser@example.com',
436
+ name: 'New User',
437
+ accountId: 'acc_123',
438
+ };
439
+ var validated = validateAndCreate(input);
440
+ (0, vitest_1.expect)(validated.email).toBe('newuser@example.com');
441
+ (0, vitest_1.expect)(validated.name).toBe('New User');
442
+ (0, vitest_1.expect)(validated.accountId).toBe('acc_123');
443
+ (0, vitest_1.expect)(validated.id).toMatch(/^usr_\d+$/);
444
+ });
445
+ });
446
+ });
447
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"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"}