@trayio/commons 5.34.0 → 5.35.0-unstable.fd7158a

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 (146) hide show
  1. package/dist/base64/Base64.d.ts +5 -10
  2. package/dist/base64/Base64.d.ts.map +1 -1
  3. package/dist/base64/Base64.js +8 -40
  4. package/dist/base64/Base64.unit.test.js +4 -27
  5. package/dist/buffer/BufferExtensions.d.ts +4 -4
  6. package/dist/buffer/BufferExtensions.d.ts.map +1 -1
  7. package/dist/buffer/BufferExtensions.js +25 -38
  8. package/dist/buffer/BufferExtensions.unit.test.js +22 -45
  9. package/dist/callsite/CallSite.js +17 -7
  10. package/dist/codec/CamelCasePropertyNameCodec.d.ts +2 -2
  11. package/dist/codec/CamelCasePropertyNameCodec.d.ts.map +1 -1
  12. package/dist/codec/CamelCasePropertyNameCodec.js +2 -25
  13. package/dist/codec/Codec.abstract.test.d.ts +2 -2
  14. package/dist/codec/Codec.abstract.test.d.ts.map +1 -1
  15. package/dist/codec/Codec.abstract.test.js +5 -31
  16. package/dist/codec/Codec.d.ts +2 -2
  17. package/dist/codec/Codec.d.ts.map +1 -1
  18. package/dist/codec/CompositeCodec.d.ts +2 -2
  19. package/dist/codec/CompositeCodec.d.ts.map +1 -1
  20. package/dist/codec/CompositeCodec.js +2 -26
  21. package/dist/codec/PartialRedactionCodec.d.ts +2 -2
  22. package/dist/codec/PartialRedactionCodec.d.ts.map +1 -1
  23. package/dist/codec/PartialRedactionCodec.js +2 -25
  24. package/dist/codec/RemoveNullValuesCodec.d.ts +2 -2
  25. package/dist/codec/RemoveNullValuesCodec.d.ts.map +1 -1
  26. package/dist/codec/RemoveNullValuesCodec.js +2 -25
  27. package/dist/codec/RemoveTopLevelTagCodec.d.ts +2 -2
  28. package/dist/codec/RemoveTopLevelTagCodec.d.ts.map +1 -1
  29. package/dist/codec/RemoveTopLevelTagCodec.js +2 -25
  30. package/dist/codec/SensitiveRemoveTagAndRedactCodec.d.ts +2 -2
  31. package/dist/codec/SensitiveRemoveTagAndRedactCodec.d.ts.map +1 -1
  32. package/dist/codec/SensitiveRemoveTagAndRedactCodec.js +2 -25
  33. package/dist/codec/SensitiveRemoveTagAndRedactCodec.unit.test.js +15 -38
  34. package/dist/codec/SnakeCasePropertyNameCodec.d.ts +2 -2
  35. package/dist/codec/SnakeCasePropertyNameCodec.d.ts.map +1 -1
  36. package/dist/codec/SnakeCasePropertyNameCodec.js +2 -25
  37. package/dist/codec/TypeCodec.d.ts +24 -8
  38. package/dist/codec/TypeCodec.d.ts.map +1 -1
  39. package/dist/codec/TypeCodec.js +40 -48
  40. package/dist/codec/TypeCodec.unit.test.js +12 -38
  41. package/dist/dynamicschema/DynamicSchema.d.ts +6 -12
  42. package/dist/dynamicschema/DynamicSchema.d.ts.map +1 -1
  43. package/dist/dynamicschema/DynamicSchema.js +18 -41
  44. package/dist/dynamicschema/DynamicSchema.unit.test.js +51 -75
  45. package/dist/dynamictype/DynamicType.d.ts +17 -20
  46. package/dist/dynamictype/DynamicType.d.ts.map +1 -1
  47. package/dist/dynamictype/DynamicType.js +48 -35
  48. package/dist/effect/EffectExtensions.d.ts +29 -0
  49. package/dist/effect/EffectExtensions.d.ts.map +1 -0
  50. package/dist/effect/EffectExtensions.js +30 -0
  51. package/dist/effect/EffectExtensions.unit.test.d.ts +2 -0
  52. package/dist/effect/EffectExtensions.unit.test.d.ts.map +1 -0
  53. package/dist/effect/EffectExtensions.unit.test.js +59 -0
  54. package/dist/effect/Interop.d.ts +53 -0
  55. package/dist/effect/Interop.d.ts.map +1 -0
  56. package/dist/effect/Interop.js +56 -0
  57. package/dist/effect/Interop.unit.test.d.ts +2 -0
  58. package/dist/effect/Interop.unit.test.d.ts.map +1 -0
  59. package/dist/effect/Interop.unit.test.js +134 -0
  60. package/dist/effect/SchemaExtensions.d.ts +11 -0
  61. package/dist/effect/SchemaExtensions.d.ts.map +1 -0
  62. package/dist/effect/SchemaExtensions.js +7 -0
  63. package/dist/effect/SchemaExtensions.unit.test.d.ts +2 -0
  64. package/dist/effect/SchemaExtensions.unit.test.d.ts.map +1 -0
  65. package/dist/effect/SchemaExtensions.unit.test.js +29 -0
  66. package/dist/file/FakeFileStorage.d.ts +8 -8
  67. package/dist/file/FakeFileStorage.d.ts.map +1 -1
  68. package/dist/file/FakeFileStorage.js +16 -40
  69. package/dist/file/File.d.ts +10 -14
  70. package/dist/file/File.d.ts.map +1 -1
  71. package/dist/file/File.js +31 -24
  72. package/dist/file/FileStorage.abstract.test.d.ts.map +1 -1
  73. package/dist/file/FileStorage.abstract.test.js +18 -41
  74. package/dist/file/NodeFsFileStorage.d.ts +9 -11
  75. package/dist/file/NodeFsFileStorage.d.ts.map +1 -1
  76. package/dist/file/NodeFsFileStorage.integration.test.js +21 -45
  77. package/dist/file/NodeFsFileStorage.js +37 -29
  78. package/dist/http/Http.d.ts +11 -13
  79. package/dist/http/Http.d.ts.map +1 -1
  80. package/dist/http/Http.js +30 -22
  81. package/dist/http/Http.unit.test.js +3 -26
  82. package/dist/http/HttpClient.abstract.test.d.ts.map +1 -1
  83. package/dist/http/HttpClient.abstract.test.js +104 -108
  84. package/dist/http/HttpClient.d.ts +2 -2
  85. package/dist/http/HttpClient.d.ts.map +1 -1
  86. package/dist/http/HttpController.d.ts +2 -3
  87. package/dist/http/HttpController.d.ts.map +1 -1
  88. package/dist/http/HttpSchemas.d.ts +13 -0
  89. package/dist/http/HttpSchemas.d.ts.map +1 -0
  90. package/dist/http/HttpSchemas.js +23 -0
  91. package/dist/http/MultipartHttpRequestBody.integration.test.js +31 -20
  92. package/dist/http/MultipartHttpRequestBody.unit.test.js +70 -53
  93. package/dist/record/Record.d.ts +3 -3
  94. package/dist/record/Record.d.ts.map +1 -1
  95. package/dist/record/Record.js +9 -30
  96. package/dist/result/Result.d.ts +3 -3
  97. package/dist/result/Result.d.ts.map +1 -1
  98. package/dist/result/Result.js +9 -26
  99. package/dist/schema/DateFromUnixTime.d.ts +4 -0
  100. package/dist/schema/DateFromUnixTime.d.ts.map +1 -0
  101. package/dist/schema/DateFromUnixTime.js +10 -0
  102. package/dist/schema/DateFromUnixTime.unit.test.d.ts +2 -0
  103. package/dist/schema/DateFromUnixTime.unit.test.d.ts.map +1 -0
  104. package/dist/schema/DateFromUnixTime.unit.test.js +11 -0
  105. package/dist/schema/JsonSchemaIntrospector.js +17 -7
  106. package/dist/sensitive/Sensitive.d.ts +7 -3
  107. package/dist/sensitive/Sensitive.d.ts.map +1 -1
  108. package/dist/sensitive/Sensitive.js +23 -39
  109. package/dist/sensitive/Sensitive.unit.test.d.ts +4 -4
  110. package/dist/sensitive/Sensitive.unit.test.d.ts.map +1 -1
  111. package/dist/sensitive/Sensitive.unit.test.js +20 -46
  112. package/dist/serialization/FormUrlEncodedSerialization.d.ts +2 -2
  113. package/dist/serialization/FormUrlEncodedSerialization.d.ts.map +1 -1
  114. package/dist/serialization/FormUrlEncodedSerialization.js +5 -28
  115. package/dist/serialization/JsonSerialization.d.ts +2 -2
  116. package/dist/serialization/JsonSerialization.d.ts.map +1 -1
  117. package/dist/serialization/JsonSerialization.js +5 -28
  118. package/dist/serialization/Serialization.abstract.test.d.ts.map +1 -1
  119. package/dist/serialization/Serialization.abstract.test.js +6 -32
  120. package/dist/serialization/Serialization.d.ts +2 -2
  121. package/dist/serialization/Serialization.d.ts.map +1 -1
  122. package/dist/try/Try.d.ts +2 -2
  123. package/dist/try/Try.d.ts.map +1 -1
  124. package/dist/try/Try.js +2 -32
  125. package/dist/uuid/Uuid.d.ts +11 -10
  126. package/dist/uuid/Uuid.d.ts.map +1 -1
  127. package/dist/uuid/Uuid.js +13 -39
  128. package/dist/uuid/Uuid.unit.test.js +4 -27
  129. package/dist/zod/SchemaParser.abstract.test.d.ts.map +1 -1
  130. package/dist/zod/SchemaParser.abstract.test.js +6 -31
  131. package/dist/zod/SchemaParser.d.ts +2 -2
  132. package/dist/zod/SchemaParser.d.ts.map +1 -1
  133. package/dist/zod/ZodSchemaParser.d.ts +3 -4
  134. package/dist/zod/ZodSchemaParser.d.ts.map +1 -1
  135. package/dist/zod/ZodSchemaParser.js +4 -28
  136. package/dist/zod/ZodSchemaParser.unit.test.js +2 -25
  137. package/package.json +3 -8
  138. package/dist/http/HttpTypeDescriptors.d.ts +0 -11
  139. package/dist/http/HttpTypeDescriptors.d.ts.map +0 -1
  140. package/dist/http/HttpTypeDescriptors.js +0 -59
  141. package/dist/task/Task.d.ts +0 -19
  142. package/dist/task/Task.d.ts.map +0 -1
  143. package/dist/task/Task.js +0 -74
  144. package/dist/task/Task.unit.test.d.ts +0 -2
  145. package/dist/task/Task.unit.test.d.ts.map +0 -1
  146. package/dist/task/Task.unit.test.js +0 -46
@@ -15,17 +15,28 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ const effect_1 = require("effect");
29
40
  const stream_1 = require("stream");
30
41
  const http_1 = require("http");
31
42
  const formidable_1 = __importDefault(require("formidable"));
@@ -148,10 +159,10 @@ describe('MultipartHttpRequestBody - E2E', () => {
148
159
  },
149
160
  };
150
161
  // Write file to client storage
151
- const writeResult = await clientStorage.write({
162
+ const writeResult = await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({
152
163
  reference: fileDescriptor,
153
164
  content: stream_1.Readable.from(originalContent),
154
- }, undefined)();
165
+ }, undefined)));
155
166
  expect(writeResult._tag).toBe('Right');
156
167
  // 2. Create multipart body with NESTED FileDescriptor
157
168
  const bodyWithNestedFile = {
@@ -161,7 +172,7 @@ describe('MultipartHttpRequestBody - E2E', () => {
161
172
  reference: fileDescriptor, // NESTED structure
162
173
  },
163
174
  };
164
- const multipartResult = await Http_1.MultipartHttpRequestBody.create(bodyWithNestedFile, clientStorage)();
175
+ const multipartResult = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create(bodyWithNestedFile, clientStorage)));
165
176
  expect(multipartResult._tag).toBe('Right');
166
177
  if (multipartResult._tag === 'Left') {
167
178
  throw new Error(`Failed to create multipart body: ${multipartResult.left.message}`);
@@ -258,11 +269,11 @@ describe('MultipartHttpRequestBody - E2E', () => {
258
269
  },
259
270
  };
260
271
  // Write files to client storage
261
- await clientStorage.write({ reference: fileDescriptor1, content: stream_1.Readable.from(content1) }, undefined)();
262
- await clientStorage.write({ reference: fileDescriptor2, content: stream_1.Readable.from(content2) }, undefined)();
272
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor1, content: stream_1.Readable.from(content1) }, undefined)));
273
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor2, content: stream_1.Readable.from(content2) }, undefined)));
263
274
  // Create body with multiple nested FileDescriptors
264
275
  const bodyWithMultipleFiles = {
265
- rootFile: fileDescriptor1,
276
+ rootFile: fileDescriptor1, // Root level
266
277
  nested: {
267
278
  deepFile: {
268
279
  reference: fileDescriptor2, // Nested level
@@ -270,7 +281,7 @@ describe('MultipartHttpRequestBody - E2E', () => {
270
281
  },
271
282
  description: 'Multiple files test',
272
283
  };
273
- const multipartResult = await Http_1.MultipartHttpRequestBody.create(bodyWithMultipleFiles, clientStorage)();
284
+ const multipartResult = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create(bodyWithMultipleFiles, clientStorage)));
274
285
  expect(multipartResult._tag).toBe('Right');
275
286
  if (multipartResult._tag === 'Left') {
276
287
  throw new Error(`Failed to create multipart body: ${multipartResult.left.message}`);
@@ -343,10 +354,10 @@ describe('MultipartHttpRequestBody - E2E', () => {
343
354
  key: 'test-doc',
344
355
  metadata: { name: 'doc.txt', size: 100, contentType: 'text/plain' },
345
356
  };
346
- await clientStorage.write({
357
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({
347
358
  reference: fileDescriptor,
348
359
  content: stream_1.Readable.from('document content'),
349
- }, undefined)();
360
+ }, undefined)));
350
361
  // Create request body with nested structures AND a file
351
362
  const bodyWithNestedStructure = {
352
363
  title: 'Test Document',
@@ -361,7 +372,7 @@ describe('MultipartHttpRequestBody - E2E', () => {
361
372
  },
362
373
  document: fileDescriptor,
363
374
  };
364
- const multipartResult = await Http_1.MultipartHttpRequestBody.create(bodyWithNestedStructure, clientStorage)();
375
+ const multipartResult = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create(bodyWithNestedStructure, clientStorage)));
365
376
  expect(multipartResult._tag).toBe('Right');
366
377
  if (multipartResult._tag === 'Left') {
367
378
  throw new Error(`Failed: ${multipartResult.left.message}`);
@@ -434,10 +445,10 @@ describe('MultipartHttpRequestBody - E2E', () => {
434
445
  key: 'asset-123',
435
446
  metadata: { name: 'logo.png', size: 2048, contentType: 'image/png' },
436
447
  };
437
- await clientStorage.write({
448
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({
438
449
  reference: fileDescriptor,
439
450
  content: stream_1.Readable.from('image data'),
440
- }, undefined)();
451
+ }, undefined)));
441
452
  const bodyLikeLibraryService = {
442
453
  fileName: 'logo.png',
443
454
  overrideIfPresent: true,
@@ -451,7 +462,7 @@ describe('MultipartHttpRequestBody - E2E', () => {
451
462
  },
452
463
  imageContent: fileDescriptor,
453
464
  };
454
- const multipartResult = await Http_1.MultipartHttpRequestBody.create(bodyLikeLibraryService, clientStorage)();
465
+ const multipartResult = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create(bodyLikeLibraryService, clientStorage)));
455
466
  expect(multipartResult._tag).toBe('Right');
456
467
  if (multipartResult._tag === 'Left') {
457
468
  throw new Error(`Failed: ${multipartResult.left.message}`);
@@ -15,14 +15,25 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ const effect_1 = require("effect");
26
37
  const stream_1 = require("stream");
27
38
  const NodeFsFileStorage_1 = require("../file/NodeFsFileStorage");
28
39
  const Http_1 = require("./Http");
@@ -55,8 +66,8 @@ describe('MultipartHttpRequestBody.create', () => {
55
66
  key: 'root-file',
56
67
  metadata: { name: 'file.txt', size: 100, contentType: 'text/plain' },
57
68
  };
58
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('content') }, undefined)();
59
- const result = await Http_1.MultipartHttpRequestBody.create({ file: fileDescriptor }, clientStorage)();
69
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('content') }, undefined)));
70
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({ file: fileDescriptor }, clientStorage)));
60
71
  expect(result._tag).toBe('Right');
61
72
  if (result._tag === 'Right') {
62
73
  // Files are now keyed by object path, not storage key
@@ -69,12 +80,12 @@ describe('MultipartHttpRequestBody.create', () => {
69
80
  key: 'nested-file',
70
81
  metadata: { name: 'file.txt', size: 100, contentType: 'text/plain' },
71
82
  };
72
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('content') }, undefined)();
73
- const result = await Http_1.MultipartHttpRequestBody.create({
83
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('content') }, undefined)));
84
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
74
85
  data: {
75
86
  file: fileDescriptor,
76
87
  },
77
- }, clientStorage)();
88
+ }, clientStorage)));
78
89
  expect(result._tag).toBe('Right');
79
90
  if (result._tag === 'Right') {
80
91
  // Files are now keyed by object path, not storage key
@@ -87,8 +98,8 @@ describe('MultipartHttpRequestBody.create', () => {
87
98
  key: 'deep-file',
88
99
  metadata: { name: 'file.txt', size: 100, contentType: 'text/plain' },
89
100
  };
90
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('content') }, undefined)();
91
- const result = await Http_1.MultipartHttpRequestBody.create({
101
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('content') }, undefined)));
102
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
92
103
  level1: {
93
104
  level2: {
94
105
  level3: {
@@ -96,7 +107,7 @@ describe('MultipartHttpRequestBody.create', () => {
96
107
  },
97
108
  },
98
109
  },
99
- }, clientStorage)();
110
+ }, clientStorage)));
100
111
  expect(result._tag).toBe('Right');
101
112
  if (result._tag === 'Right') {
102
113
  // Files are now keyed by object path, not storage key
@@ -114,14 +125,14 @@ describe('MultipartHttpRequestBody.create', () => {
114
125
  key: 'file-2',
115
126
  metadata: { name: 'file2.txt', size: 100, contentType: 'text/plain' },
116
127
  };
117
- await clientStorage.write({ reference: file1, content: stream_1.Readable.from('content1') }, undefined)();
118
- await clientStorage.write({ reference: file2, content: stream_1.Readable.from('content2') }, undefined)();
119
- const result = await Http_1.MultipartHttpRequestBody.create({
128
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: file1, content: stream_1.Readable.from('content1') }, undefined)));
129
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: file2, content: stream_1.Readable.from('content2') }, undefined)));
130
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
120
131
  rootFile: file1,
121
132
  nested: {
122
133
  deepFile: file2,
123
134
  },
124
- }, clientStorage)();
135
+ }, clientStorage)));
125
136
  expect(result._tag).toBe('Right');
126
137
  if (result._tag === 'Right') {
127
138
  expect(Object.keys(result.right.files)).toHaveLength(2);
@@ -133,13 +144,13 @@ describe('MultipartHttpRequestBody.create', () => {
133
144
  });
134
145
  describe('Field Flattening', () => {
135
146
  it('should flatten nested fields with dot notation', async () => {
136
- const result = await Http_1.MultipartHttpRequestBody.create({
147
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
137
148
  title: 'Test',
138
149
  metadata: {
139
150
  author: 'John',
140
151
  version: '1.0',
141
152
  },
142
- }, clientStorage)();
153
+ }, clientStorage)));
143
154
  expect(result._tag).toBe('Right');
144
155
  if (result._tag === 'Right') {
145
156
  expect(result.right.fields.title).toBe('Test');
@@ -148,7 +159,7 @@ describe('MultipartHttpRequestBody.create', () => {
148
159
  }
149
160
  });
150
161
  it('should flatten deeply nested fields', async () => {
151
- const result = await Http_1.MultipartHttpRequestBody.create({
162
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
152
163
  level1: {
153
164
  level2: {
154
165
  level3: {
@@ -156,19 +167,19 @@ describe('MultipartHttpRequestBody.create', () => {
156
167
  },
157
168
  },
158
169
  },
159
- }, clientStorage)();
170
+ }, clientStorage)));
160
171
  expect(result._tag).toBe('Right');
161
172
  if (result._tag === 'Right') {
162
173
  expect(result.right.fields['level1.level2.level3.value']).toBe('deep');
163
174
  }
164
175
  });
165
176
  it('should handle primitive values at root level', async () => {
166
- const result = await Http_1.MultipartHttpRequestBody.create({
177
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
167
178
  string: 'text',
168
179
  number: 123,
169
180
  boolean: true,
170
181
  null: null,
171
- }, clientStorage)();
182
+ }, clientStorage)));
172
183
  expect(result._tag).toBe('Right');
173
184
  if (result._tag === 'Right') {
174
185
  expect(result.right.fields.string).toBe('text');
@@ -180,13 +191,13 @@ describe('MultipartHttpRequestBody.create', () => {
180
191
  });
181
192
  describe('Array Support', () => {
182
193
  it('should serialize arrays as comma-separated strings', async () => {
183
- const result = await Http_1.MultipartHttpRequestBody.create({
194
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
184
195
  title: 'Test',
185
196
  tags: ['tag1', 'tag2', 'tag3'],
186
197
  nested: {
187
198
  items: ['a', 'b', 'c'],
188
199
  },
189
- }, clientStorage)();
200
+ }, clientStorage)));
190
201
  expect(result._tag).toBe('Right');
191
202
  if (result._tag === 'Right') {
192
203
  expect(result.right.fields.title).toBe('Test');
@@ -195,10 +206,10 @@ describe('MultipartHttpRequestBody.create', () => {
195
206
  }
196
207
  });
197
208
  it('should handle empty arrays', async () => {
198
- const result = await Http_1.MultipartHttpRequestBody.create({
209
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
199
210
  title: 'Test',
200
211
  tags: [],
201
- }, clientStorage)();
212
+ }, clientStorage)));
202
213
  expect(result._tag).toBe('Right');
203
214
  if (result._tag === 'Right') {
204
215
  expect(result.right.fields.title).toBe('Test');
@@ -206,9 +217,9 @@ describe('MultipartHttpRequestBody.create', () => {
206
217
  }
207
218
  });
208
219
  it('should handle arrays with mixed types', async () => {
209
- const result = await Http_1.MultipartHttpRequestBody.create({
220
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
210
221
  values: [1, 'text', true, null],
211
- }, clientStorage)();
222
+ }, clientStorage)));
212
223
  expect(result._tag).toBe('Right');
213
224
  if (result._tag === 'Right') {
214
225
  // All values converted to strings and joined
@@ -227,8 +238,8 @@ describe('MultipartHttpRequestBody.create', () => {
227
238
  contentType: 'image/png',
228
239
  },
229
240
  };
230
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('data') }, undefined)();
231
- const result = await Http_1.MultipartHttpRequestBody.create({ file: fileDescriptor }, clientStorage)();
241
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('data') }, undefined)));
242
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({ file: fileDescriptor }, clientStorage)));
232
243
  expect(result._tag).toBe('Right');
233
244
  if (result._tag === 'Right') {
234
245
  // Files are now keyed by object path, not storage key
@@ -249,8 +260,8 @@ describe('MultipartHttpRequestBody.create', () => {
249
260
  contentType: 'application/pdf',
250
261
  },
251
262
  };
252
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('pdf data') }, undefined)();
253
- const result = await Http_1.MultipartHttpRequestBody.create({
263
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('pdf data') }, undefined)));
264
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
254
265
  title: 'Document',
255
266
  category: 'report',
256
267
  metadata: {
@@ -258,7 +269,7 @@ describe('MultipartHttpRequestBody.create', () => {
258
269
  tags: ['important', 'confidential'],
259
270
  },
260
271
  document: fileDescriptor,
261
- }, clientStorage)();
272
+ }, clientStorage)));
262
273
  expect(result._tag).toBe('Right');
263
274
  if (result._tag === 'Right') {
264
275
  // Check fields
@@ -283,10 +294,13 @@ describe('MultipartHttpRequestBody.create', () => {
283
294
  contentType: 'application/pdf',
284
295
  },
285
296
  };
286
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('file content') }, undefined)();
287
- const result = await Http_1.MultipartHttpRequestBody.create({
297
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({
298
+ reference: fileDescriptor,
299
+ content: stream_1.Readable.from('file content'),
300
+ }, undefined)));
301
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
288
302
  file: fileDescriptor,
289
- }, clientStorage)();
303
+ }, clientStorage)));
290
304
  expect(result._tag).toBe('Right');
291
305
  if (result._tag === 'Right') {
292
306
  // The file should be keyed by the object path 'file', not the storage key
@@ -304,12 +318,12 @@ describe('MultipartHttpRequestBody.create', () => {
304
318
  contentType: 'image/png',
305
319
  },
306
320
  };
307
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('image data') }, undefined)();
308
- const result = await Http_1.MultipartHttpRequestBody.create({
321
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('image data') }, undefined)));
322
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
309
323
  data: {
310
324
  attachment: fileDescriptor,
311
325
  },
312
- }, clientStorage)();
326
+ }, clientStorage)));
313
327
  expect(result._tag).toBe('Right');
314
328
  if (result._tag === 'Right') {
315
329
  // The file should be keyed by 'data.attachment', not the storage key
@@ -327,8 +341,11 @@ describe('MultipartHttpRequestBody.create', () => {
327
341
  contentType: 'application/pdf',
328
342
  },
329
343
  };
330
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('report content') }, undefined)();
331
- const result = await Http_1.MultipartHttpRequestBody.create({
344
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({
345
+ reference: fileDescriptor,
346
+ content: stream_1.Readable.from('report content'),
347
+ }, undefined)));
348
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
332
349
  project: {
333
350
  documents: {
334
351
  reports: {
@@ -336,7 +353,7 @@ describe('MultipartHttpRequestBody.create', () => {
336
353
  },
337
354
  },
338
355
  },
339
- }, clientStorage)();
356
+ }, clientStorage)));
340
357
  expect(result._tag).toBe('Right');
341
358
  if (result._tag === 'Right') {
342
359
  // The file should be keyed by the full object path
@@ -372,10 +389,10 @@ describe('MultipartHttpRequestBody.create', () => {
372
389
  contentType: 'text/plain',
373
390
  },
374
391
  };
375
- await clientStorage.write({ reference: file1, content: stream_1.Readable.from('content1') }, undefined)();
376
- await clientStorage.write({ reference: file2, content: stream_1.Readable.from('content2') }, undefined)();
377
- await clientStorage.write({ reference: file3, content: stream_1.Readable.from('content3') }, undefined)();
378
- const result = await Http_1.MultipartHttpRequestBody.create({
392
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: file1, content: stream_1.Readable.from('content1') }, undefined)));
393
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: file2, content: stream_1.Readable.from('content2') }, undefined)));
394
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: file3, content: stream_1.Readable.from('content3') }, undefined)));
395
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
379
396
  avatar: file1,
380
397
  data: {
381
398
  document: file2,
@@ -383,7 +400,7 @@ describe('MultipartHttpRequestBody.create', () => {
383
400
  attachment: file3,
384
401
  },
385
402
  },
386
- }, clientStorage)();
403
+ }, clientStorage)));
387
404
  expect(result._tag).toBe('Right');
388
405
  if (result._tag === 'Right') {
389
406
  // Each file should be keyed by its object path, not its storage key
@@ -407,12 +424,12 @@ describe('MultipartHttpRequestBody.create', () => {
407
424
  contentType: 'application/pdf',
408
425
  },
409
426
  };
410
- await clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('pdf data') }, undefined)();
411
- const result = await Http_1.MultipartHttpRequestBody.create({
427
+ await effect_1.Effect.runPromise(effect_1.Effect.either(clientStorage.write({ reference: fileDescriptor, content: stream_1.Readable.from('pdf data') }, undefined)));
428
+ const result = await effect_1.Effect.runPromise(effect_1.Effect.either(Http_1.MultipartHttpRequestBody.create({
412
429
  nested: {
413
430
  file: fileDescriptor,
414
431
  },
415
- }, clientStorage)();
432
+ }, clientStorage)));
416
433
  expect(result._tag).toBe('Right');
417
434
  if (result._tag === 'Right') {
418
435
  const file = result.right.files['nested.file'];
@@ -1,4 +1,4 @@
1
- import * as O from 'fp-ts/Option';
2
- export declare const addValueToRecordIfPresent: <K extends string | number | symbol, V>(record: Record<K, V>, key: K, valueOpt: O.Option<V>) => Record<K, V>;
3
- export declare const addValuesToRecordIfPresent: <K extends string | number | symbol, V>(record: Record<K, V>, valuesToAdd: Record<K, O.Option<V>>) => Record<K, V>;
1
+ import { Option } from 'effect';
2
+ export declare const addValueToRecordIfPresent: <K extends keyof any, V>(record: Record<K, V>, key: K, valueOpt: Option.Option<V>) => Record<K, V>;
3
+ export declare const addValuesToRecordIfPresent: <K extends keyof any, V>(record: Record<K, V>, valuesToAdd: Record<K, Option.Option<V>>) => Record<K, V>;
4
4
  //# sourceMappingURL=Record.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Record.d.ts","sourceRoot":"","sources":["../../src/record/Record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,yBAAyB,8GAUpC,CAAC;AAEH,eAAO,MAAM,0BAA0B,oHAMC,CAAC"}
1
+ {"version":3,"file":"Record.d.ts","sourceRoot":"","sources":["../../src/record/Record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,EAC/D,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,KAAK,CAAC,EACN,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KACxB,MAAM,CAAC,CAAC,EAAE,CAAC,CAOX,CAAC;AAEJ,eAAO,MAAM,0BAA0B,GAAI,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,EAChE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,aAAa,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KACtC,MAAM,CAAC,CAAC,EAAE,CAAC,CAIZ,CAAC"}
@@ -1,35 +1,14 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.addValuesToRecordIfPresent = exports.addValueToRecordIfPresent = void 0;
27
- const O = __importStar(require("fp-ts/Option"));
28
- const A = __importStar(require("fp-ts/Array"));
29
- const addValueToRecordIfPresent = (record, key, valueOpt) => O.getOrElse(() => record)(O.map((value) => {
30
- record[key] = value;
31
- return record;
32
- })(valueOpt));
4
+ const effect_1 = require("effect");
5
+ const addValueToRecordIfPresent = (record, key, valueOpt) => effect_1.Option.match(valueOpt, {
6
+ onNone: () => record,
7
+ onSome: (value) => {
8
+ record[key] = value;
9
+ return record;
10
+ },
11
+ });
33
12
  exports.addValueToRecordIfPresent = addValueToRecordIfPresent;
34
- const addValuesToRecordIfPresent = (record, valuesToAdd) => A.reduce(record, (acc, key) => (0, exports.addValueToRecordIfPresent)(acc, key, valuesToAdd[key]))(Object.keys(valuesToAdd));
13
+ const addValuesToRecordIfPresent = (record, valuesToAdd) => Object.keys(valuesToAdd).reduce((acc, key) => (0, exports.addValueToRecordIfPresent)(acc, key, valuesToAdd[key]), record);
35
14
  exports.addValuesToRecordIfPresent = addValuesToRecordIfPresent;
@@ -1,4 +1,4 @@
1
- import * as E from 'fp-ts/Either';
1
+ import { Either } from 'effect';
2
2
  export type Failure<E> = {
3
3
  readonly _tag: 'Failure';
4
4
  readonly isSuccess: false;
@@ -24,8 +24,8 @@ export interface ResultInterface {
24
24
  }
25
25
  export declare const Result: ResultInterface;
26
26
  export interface ResultInternalInterface {
27
- fromEitherWithSimpleError: <T>(either: E.Either<Error, T>) => Result<Error, T>;
28
- fromEitherWithSimpleErrorAndUnknown: <T>(either: E.Either<Error, unknown>) => Result<Error, T>;
27
+ fromEitherWithSimpleError: <T>(either: Either.Either<T, Error>) => Result<Error, T>;
28
+ fromEitherWithSimpleErrorAndUnknown: <T>(either: Either.Either<unknown, Error>) => Result<Error, T>;
29
29
  }
30
30
  export declare const ResultInternal: ResultInternalInterface;
31
31
  //# sourceMappingURL=Result.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../src/result/Result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnD,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,KAAK;IAC5B,YAAY,EAAE,CAAC;gBAAf,YAAY,EAAE,CAAC;CAOlC;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACZ,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KACpB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAClB;AAED,eAAO,MAAM,MAAM,EAAE,eAgCpB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACvC,yBAAyB,EAAE,CAAC,CAAC,EAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KACtB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtB,mCAAmC,EAAE,CAAC,CAAC,EACtC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAC5B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,uBAgB5B,CAAC"}
1
+ {"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../src/result/Result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnD,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,KAAK;IAC5B,YAAY,EAAE,CAAC;gBAAf,YAAY,EAAE,CAAC;CAOlC;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACZ,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KACpB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAClB;AAED,eAAO,MAAM,MAAM,EAAE,eAgCpB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACvC,yBAAyB,EAAE,CAAC,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,KAC3B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtB,mCAAmC,EAAE,CAAC,CAAC,EACtC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,KACjC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,uBAgB5B,CAAC"}
@@ -1,30 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.ResultInternal = exports.Result = exports.ResultFailureError = void 0;
27
- const E = __importStar(require("fp-ts/Either"));
4
+ const effect_1 = require("effect");
28
5
  class ResultFailureError extends Error {
29
6
  failureCause;
30
7
  constructor(failureCause) {
@@ -64,6 +41,12 @@ exports.Result = {
64
41
  },
65
42
  };
66
43
  exports.ResultInternal = {
67
- fromEitherWithSimpleError: (either) => E.match((error) => exports.Result.failure(error), (value) => exports.Result.success(value))(either),
68
- fromEitherWithSimpleErrorAndUnknown: (either) => E.match((error) => exports.Result.failure(error), (value) => exports.Result.success(value))(either),
44
+ fromEitherWithSimpleError: (either) => effect_1.Either.match(either, {
45
+ onLeft: (error) => exports.Result.failure(error),
46
+ onRight: (value) => exports.Result.success(value),
47
+ }),
48
+ fromEitherWithSimpleErrorAndUnknown: (either) => effect_1.Either.match(either, {
49
+ onLeft: (error) => exports.Result.failure(error),
50
+ onRight: (value) => exports.Result.success(value),
51
+ }),
69
52
  };
@@ -0,0 +1,4 @@
1
+ import { Schema } from 'effect';
2
+ /** Seconds since the Unix epoch on the wire, a Date in memory. Replaces io-ts-types' `DateFromUnixTime`. */
3
+ export declare const DateFromUnixTime: Schema.transform<typeof Schema.Number, typeof Schema.DateFromSelf>;
4
+ //# sourceMappingURL=DateFromUnixTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFromUnixTime.d.ts","sourceRoot":"","sources":["../../src/schema/DateFromUnixTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,4GAA4G;AAC5G,eAAO,MAAM,gBAAgB,oEAQoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DateFromUnixTime = void 0;
4
+ const effect_1 = require("effect");
5
+ /** Seconds since the Unix epoch on the wire, a Date in memory. Replaces io-ts-types' `DateFromUnixTime`. */
6
+ exports.DateFromUnixTime = effect_1.Schema.transform(effect_1.Schema.Number, effect_1.Schema.DateFromSelf, {
7
+ strict: true,
8
+ decode: (seconds) => new Date(seconds * 1000),
9
+ encode: (date) => Math.floor(date.getTime() / 1000),
10
+ }).annotations({ identifier: 'DateFromUnixTime' });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DateFromUnixTime.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFromUnixTime.unit.test.d.ts","sourceRoot":"","sources":["../../src/schema/DateFromUnixTime.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const effect_1 = require("effect");
4
+ const DateFromUnixTime_1 = require("./DateFromUnixTime");
5
+ describe('DateFromUnixTime', () => {
6
+ it('decodes seconds to a Date and encodes back to whole seconds', () => {
7
+ const decoded = effect_1.Schema.decodeUnknownSync(DateFromUnixTime_1.DateFromUnixTime)(1700000000);
8
+ expect(decoded.toISOString()).toBe('2023-11-14T22:13:20.000Z');
9
+ expect(effect_1.Schema.encodeSync(DateFromUnixTime_1.DateFromUnixTime)(new Date(1700000000500))).toBe(1700000000);
10
+ });
11
+ });