@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
@@ -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.PartialRedactionCodec = void 0;
27
- const E = __importStar(require("fp-ts/lib/Either"));
4
+ const effect_1 = require("effect");
28
5
  const lodash_1 = require("lodash");
29
6
  class PartialRedactionCodec {
30
7
  static instance = new PartialRedactionCodec();
@@ -32,7 +9,7 @@ class PartialRedactionCodec {
32
9
  return this.removeNullValuesIfPresent(value);
33
10
  }
34
11
  decode(value) {
35
- return E.right(value);
12
+ return effect_1.Either.right(value);
36
13
  }
37
14
  isObject(value) {
38
15
  return (0, lodash_1.isPlainObject)(value);
@@ -1,9 +1,9 @@
1
- import * as E from 'fp-ts/lib/Either';
1
+ import { Either } from 'effect';
2
2
  import { Codec } from './Codec';
3
3
  export declare class RemoveNullValuesCodec implements Codec<unknown> {
4
4
  static instance: Codec<unknown>;
5
5
  encode(value: unknown): unknown;
6
- decode(value: unknown): E.Either<Error, unknown>;
6
+ decode(value: unknown): Either.Either<unknown, Error>;
7
7
  private isObject;
8
8
  private removeNullValuesIfPresent;
9
9
  private removeNullFromArrayIfPresent;
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveNullValuesCodec.d.ts","sourceRoot":"","sources":["../../src/codec/RemoveNullValuesCodec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,qBAAsB,YAAW,KAAK,CAAC,OAAO,CAAC;IAC3D,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAA+B;IAE9D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI/B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;IAIhD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,4BAA4B;IASpC,OAAO,CAAC,6BAA6B;CAgBrC"}
1
+ {"version":3,"file":"RemoveNullValuesCodec.d.ts","sourceRoot":"","sources":["../../src/codec/RemoveNullValuesCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,qBAAsB,YAAW,KAAK,CAAC,OAAO,CAAC;IAC3D,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAA+B;IAE9D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI/B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAIrD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,4BAA4B;IASpC,OAAO,CAAC,6BAA6B;CAgBrC"}
@@ -1,37 +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.RemoveNullValuesCodec = void 0;
27
- const E = __importStar(require("fp-ts/lib/Either"));
4
+ const effect_1 = require("effect");
28
5
  class RemoveNullValuesCodec {
29
6
  static instance = new RemoveNullValuesCodec();
30
7
  encode(value) {
31
8
  return this.removeNullValuesIfPresent(value);
32
9
  }
33
10
  decode(value) {
34
- return E.right(this.removeNullValuesIfPresent(value));
11
+ return effect_1.Either.right(this.removeNullValuesIfPresent(value));
35
12
  }
36
13
  isObject(value) {
37
14
  return typeof value === 'object' && !Array.isArray(value) && value !== null;
@@ -1,4 +1,4 @@
1
- import * as E from 'fp-ts/lib/Either';
1
+ import { Either } from 'effect';
2
2
  import { Codec } from './Codec';
3
3
  /**
4
4
  * Codec that removes the _tag property from the top level of the object.
@@ -8,7 +8,7 @@ import { Codec } from './Codec';
8
8
  export declare class RemoveTopLevelTagCodec implements Codec<unknown> {
9
9
  static instance: Codec<unknown>;
10
10
  encode(value: unknown): unknown;
11
- decode(value: unknown): E.Either<Error, unknown>;
11
+ decode(value: unknown): Either.Either<unknown, Error>;
12
12
  private isObject;
13
13
  private removeTopLevelTagIfPresent;
14
14
  private removeNullFromObjectIfPresent;
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveTopLevelTagCodec.d.ts","sourceRoot":"","sources":["../../src/codec/RemoveTopLevelTagCodec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,KAAK,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAgC;IAE/D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI/B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;IAIhD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,6BAA6B;CAQrC"}
1
+ {"version":3,"file":"RemoveTopLevelTagCodec.d.ts","sourceRoot":"","sources":["../../src/codec/RemoveTopLevelTagCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,KAAK,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAgC;IAE/D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI/B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAIrD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,6BAA6B;CAQrC"}
@@ -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.RemoveTopLevelTagCodec = void 0;
27
- const E = __importStar(require("fp-ts/lib/Either"));
4
+ const effect_1 = require("effect");
28
5
  /**
29
6
  * Codec that removes the _tag property from the top level of the object.
30
7
  * We use this to expose RequestFailed on APIs as the _tag property is an implementation detail.
@@ -36,7 +13,7 @@ class RemoveTopLevelTagCodec {
36
13
  return this.removeTopLevelTagIfPresent(value);
37
14
  }
38
15
  decode(value) {
39
- return E.right(this.removeTopLevelTagIfPresent(value));
16
+ return effect_1.Either.right(this.removeTopLevelTagIfPresent(value));
40
17
  }
41
18
  isObject(value) {
42
19
  return typeof value === 'object' && !Array.isArray(value) && value !== null;
@@ -1,11 +1,11 @@
1
- import * as E from 'fp-ts/lib/Either';
1
+ import { Either } from 'effect';
2
2
  import { Codec } from './Codec';
3
3
  export declare class SensitiveRemoveTagAndRedactCodec implements Codec<unknown> {
4
4
  private redactValues;
5
5
  constructor(redactValues?: boolean);
6
6
  static instance(redactValues?: boolean): Codec<unknown>;
7
7
  encode(value: unknown): unknown;
8
- decode(value: unknown): E.Either<Error, unknown>;
8
+ decode(value: unknown): Either.Either<unknown, Error>;
9
9
  private isObject;
10
10
  private stripTagAndRedactValue;
11
11
  private redactValuesFromArrayIfPresent;
@@ -1 +1 @@
1
- {"version":3,"file":"SensitiveRemoveTagAndRedactCodec.d.ts","sourceRoot":"","sources":["../../src/codec/SensitiveRemoveTagAndRedactCodec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,gCAAiC,YAAW,KAAK,CAAC,OAAO,CAAC;IAC1D,OAAO,CAAC,YAAY;gBAAZ,YAAY,GAAE,OAAe;IAEjD,MAAM,CAAC,QAAQ,CAAC,YAAY,UAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;IAIrD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI/B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;IAIhD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,8BAA8B;IAStC,OAAO,CAAC,+BAA+B;CAyCvC"}
1
+ {"version":3,"file":"SensitiveRemoveTagAndRedactCodec.d.ts","sourceRoot":"","sources":["../../src/codec/SensitiveRemoveTagAndRedactCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,gCAAiC,YAAW,KAAK,CAAC,OAAO,CAAC;IAC1D,OAAO,CAAC,YAAY;gBAAZ,YAAY,GAAE,OAAe;IAEjD,MAAM,CAAC,QAAQ,CAAC,YAAY,UAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;IAIrD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI/B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAIrD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,8BAA8B;IAStC,OAAO,CAAC,+BAA+B;CAyCvC"}
@@ -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.SensitiveRemoveTagAndRedactCodec = void 0;
27
- const E = __importStar(require("fp-ts/lib/Either"));
4
+ const effect_1 = require("effect");
28
5
  const lodash_1 = require("lodash");
29
6
  class SensitiveRemoveTagAndRedactCodec {
30
7
  redactValues;
@@ -38,7 +15,7 @@ class SensitiveRemoveTagAndRedactCodec {
38
15
  return this.stripTagAndRedactValue(value);
39
16
  }
40
17
  decode(value) {
41
- return E.right(value);
18
+ return effect_1.Either.right(value);
42
19
  }
43
20
  isObject(value) {
44
21
  return (0, lodash_1.isPlainObject)(value);
@@ -1,29 +1,6 @@
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
- const O = __importStar(require("fp-ts/Option"));
3
+ const effect_1 = require("effect");
27
4
  const Sensitive_1 = require("../sensitive/Sensitive");
28
5
  const Sensitive_unit_test_1 = require("../sensitive/Sensitive.unit.test");
29
6
  const CompositeCodec_1 = require("./CompositeCodec");
@@ -103,7 +80,7 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
103
80
  const creationDate = new Date();
104
81
  const value = {
105
82
  user: {
106
- password: Sensitive_1.Sensitive.fromValue(O.some('test')),
83
+ password: Sensitive_1.Sensitive.fromValue(effect_1.Option.some('test')),
107
84
  username: 'username',
108
85
  dob: Sensitive_1.Sensitive.fromValue(dob),
109
86
  creationDate,
@@ -125,7 +102,7 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
125
102
  const creationDate = new Date();
126
103
  const value = {
127
104
  user: {
128
- password: Sensitive_1.Sensitive.fromValue(O.some('test')),
105
+ password: Sensitive_1.Sensitive.fromValue(effect_1.Option.some('test')),
129
106
  username: 'username',
130
107
  dob: Sensitive_1.Sensitive.fromValue(dob),
131
108
  creationDate,
@@ -134,7 +111,7 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
134
111
  const actualValue = SensitiveRemoveTagAndRedactCodec_1.SensitiveRemoveTagAndRedactCodec.instance(false).encode(value);
135
112
  const expectedValue = {
136
113
  user: {
137
- password: O.some('test'),
114
+ password: effect_1.Option.some('test'),
138
115
  username: 'username',
139
116
  dob,
140
117
  creationDate,
@@ -145,17 +122,17 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
145
122
  it('should redact sensitive typed data and type encode the value', () => {
146
123
  const testValueEncoded = {
147
124
  strField: 'str',
148
- intField: Sensitive_1.Sensitive.fromValue(O.some(123)),
125
+ intField: Sensitive_1.Sensitive.fromValue(effect_1.Option.some(123)),
149
126
  objectField: Sensitive_1.Sensitive.fromValue({
150
127
  str: 'test',
151
128
  int: 123,
152
- optionalObj: Sensitive_1.Sensitive.fromValue(O.some({
129
+ optionalObj: Sensitive_1.Sensitive.fromValue(effect_1.Option.some({
153
130
  test: 'test',
154
131
  test1: 'test1',
155
132
  testArray: Sensitive_1.Sensitive.fromValue([
156
- O.some('test1'),
157
- O.some('test2'),
158
- O.some('test3'),
133
+ effect_1.Option.some('test1'),
134
+ effect_1.Option.some('test2'),
135
+ effect_1.Option.some('test3'),
159
136
  ]),
160
137
  })),
161
138
  }),
@@ -172,18 +149,18 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
172
149
  it('should not redact sensitive typed data and type encode the value', () => {
173
150
  const testValueEncoded = {
174
151
  strField: 'str',
175
- intField: Sensitive_1.Sensitive.fromValue(O.some(123)),
152
+ intField: Sensitive_1.Sensitive.fromValue(effect_1.Option.some(123)),
176
153
  objectField: Sensitive_1.Sensitive.fromValue({
177
154
  str: 'test',
178
155
  int: 123,
179
- optionalObj: Sensitive_1.Sensitive.fromValue(O.some({
156
+ optionalObj: Sensitive_1.Sensitive.fromValue(effect_1.Option.some({
180
157
  test: 'test',
181
158
  test1: 'test1',
182
159
  testArray: Sensitive_1.Sensitive.fromValue([
183
- O.some('test'),
184
- O.some('test1'),
185
- O.some('test2'),
186
- O.some('test3'),
160
+ effect_1.Option.some('test'),
161
+ effect_1.Option.some('test1'),
162
+ effect_1.Option.some('test2'),
163
+ effect_1.Option.some('test3'),
187
164
  ]),
188
165
  })),
189
166
  }),
@@ -1,9 +1,9 @@
1
- import * as E from 'fp-ts/lib/Either';
1
+ import { Either } from 'effect';
2
2
  import { Codec } from './Codec';
3
3
  export declare class SnakeCasePropertyNameCodec implements Codec<unknown> {
4
4
  static instance: Codec<unknown>;
5
5
  encode(value: unknown): unknown;
6
- decode(value: unknown): E.Either<Error, unknown>;
6
+ decode(value: unknown): Either.Either<unknown, Error>;
7
7
  private isObject;
8
8
  private snakeCasePropertyNameIfPresent;
9
9
  private snakeCasePropertyNameFromArrayIfPresent;
@@ -1 +1 @@
1
- {"version":3,"file":"SnakeCasePropertyNameCodec.d.ts","sourceRoot":"","sources":["../../src/codec/SnakeCasePropertyNameCodec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,qBAAa,0BAA2B,YAAW,KAAK,CAAC,OAAO,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAoC;IAEnE,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI/B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;IAIhD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,8BAA8B;IAatC,OAAO,CAAC,uCAAuC;IAW/C,OAAO,CAAC,wCAAwC;CAehD"}
1
+ {"version":3,"file":"SnakeCasePropertyNameCodec.d.ts","sourceRoot":"","sources":["../../src/codec/SnakeCasePropertyNameCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,qBAAa,0BAA2B,YAAW,KAAK,CAAC,OAAO,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAoC;IAEnE,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI/B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAIrD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,8BAA8B;IAatC,OAAO,CAAC,uCAAuC;IAW/C,OAAO,CAAC,wCAAwC;CAehD"}
@@ -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.SnakeCasePropertyNameCodec = void 0;
27
- const E = __importStar(require("fp-ts/lib/Either"));
4
+ const effect_1 = require("effect");
28
5
  const StringExtensions_1 = require("../string/StringExtensions");
29
6
  class SnakeCasePropertyNameCodec {
30
7
  static instance = new SnakeCasePropertyNameCodec();
@@ -32,7 +9,7 @@ class SnakeCasePropertyNameCodec {
32
9
  return this.snakeCasePropertyNameIfPresent(value);
33
10
  }
34
11
  decode(value) {
35
- return E.right(this.snakeCasePropertyNameIfPresent(value));
12
+ return effect_1.Either.right(this.snakeCasePropertyNameIfPresent(value));
36
13
  }
37
14
  isObject(value) {
38
15
  return typeof value === 'object' && !Array.isArray(value) && value !== null;
@@ -1,16 +1,32 @@
1
- import * as E from 'fp-ts/lib/Either';
2
- import * as t from 'io-ts';
1
+ import { Either, ParseResult, Schema } from 'effect';
3
2
  import { Codec } from './Codec';
4
- export declare class TypeCodec<T> implements Codec<T> {
5
- static fromDescriptor<T>(descriptor: t.Type<T, unknown>, redactValues?: boolean): Codec<T>;
3
+ /** Formats a decode failure the way io-ts-reporters used to: one `path: message` per issue, comma separated. */
4
+ export declare const formatParseError: (error: ParseResult.ParseError) => string;
5
+ /** A Codec backed by an Effect Schema. Decoding reports every issue; encoding strips the Sensitive tag. */
6
+ export declare class TypeCodec<A, I = unknown> implements Codec<A> {
7
+ /**
8
+ * The decoded type is taken from the schema; do not pass type arguments. Schemas are invariant in their
9
+ * type parameters, so an explicit `Codec<T>` annotation on the receiving variable is the place to name `T`.
10
+ */
11
+ static fromSchema<S extends Schema.Schema.All>(schema: S, redactValues?: boolean): Codec<Schema.Schema.Type<S>>;
6
12
  static undefined: Codec<undefined>;
7
13
  static unknown: Codec<unknown>;
8
14
  static emptyRecord: Codec<{}>;
9
15
  static stringRecord: Codec<Record<string, string>>;
10
- static partialRecord: <K extends Record<string, unknown>, G extends t.Any>(k: t.KeyofType<K>, type: G) => t.PartialC<Record<string, G>>;
11
- private descriptor;
16
+ private readonly decodeUnknown;
17
+ private readonly encodeValue;
18
+ /**
19
+ * `onExcessProperty: 'preserve'` keeps io-ts `t.type` semantics: properties the schema does not declare pass
20
+ * through decode and encode untouched instead of being stripped (Effect's default).
21
+ */
22
+ private static readonly parseOptions;
12
23
  private constructor();
13
- encode(value: T): unknown;
14
- decode(value: unknown): E.Either<Error, T>;
24
+ /**
25
+ * Encodes through the schema, which validates the value on the way out: a value that does not match the
26
+ * schema throws a `ParseError`. io-ts `encode` never validated, so callers ported from it should not pass
27
+ * placeholders such as `{}` for an absent input; pass `undefined` with `TypeCodec.undefined` instead.
28
+ */
29
+ encode(value: A): unknown;
30
+ decode(value: unknown): Either.Either<A, Error>;
15
31
  }
16
32
  //# sourceMappingURL=TypeCodec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeCodec.d.ts","sourceRoot":"","sources":["../../src/codec/TypeCodec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAK3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIhC,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,cAAc,CAAC,CAAC,EACtB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,EAC9B,YAAY,GAAE,OAAe,GAC3B,KAAK,CAAC,CAAC,CAAC;IAOX,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAEhC;IAEF,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAgD;IAC9E,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAA4C;IACzE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAElB;IAIhC,MAAM,CAAC,aAAa,oHAGoB;IAExC,OAAO,CAAC,UAAU,CAAqB;IAEvC,OAAO;IAIP,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAIzB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;CAQ1C"}
1
+ {"version":3,"file":"TypeCodec.d.ts","sourceRoot":"","sources":["../../src/codec/TypeCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIhC,gHAAgH;AAChH,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,CAAC,UAAU,KAAG,MAOpD,CAAC;AAEd,2GAA2G;AAC3G,qBAAa,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;IACzD;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAC5C,MAAM,EAAE,CAAC,EACT,YAAY,GAAE,OAAe,GAC3B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAY/B,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAA0C;IAE5E,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAwC;IAEtE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAA2C;IAExE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAEhD;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAEgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAE9C;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAGzB;IAEX,OAAO;IAQP;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAIzB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;CAM/C"}
@@ -1,61 +1,53 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
2
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.TypeCodec = void 0;
30
- const E = __importStar(require("fp-ts/lib/Either"));
31
- const t = __importStar(require("io-ts"));
32
- const io_ts_reporters_1 = __importDefault(require("io-ts-reporters"));
33
- const Record_1 = require("fp-ts/Record");
34
- const function_1 = require("fp-ts/function");
3
+ exports.TypeCodec = exports.formatParseError = void 0;
4
+ const effect_1 = require("effect");
35
5
  const CompositeCodec_1 = require("./CompositeCodec");
36
6
  const SensitiveRemoveTagAndRedactCodec_1 = require("./SensitiveRemoveTagAndRedactCodec");
7
+ /** Formats a decode failure the way io-ts-reporters used to: one `path: message` per issue, comma separated. */
8
+ const formatParseError = (error) => effect_1.ParseResult.ArrayFormatter.formatErrorSync(error)
9
+ .map((issue) => issue.path.length > 0
10
+ ? `${issue.path.join('.')}: ${issue.message}`
11
+ : issue.message)
12
+ .join(', ');
13
+ exports.formatParseError = formatParseError;
14
+ /** A Codec backed by an Effect Schema. Decoding reports every issue; encoding strips the Sensitive tag. */
37
15
  class TypeCodec {
38
- static fromDescriptor(descriptor, redactValues = false) {
39
- return CompositeCodec_1.CompositeCodec.fromCodecs(new TypeCodec(descriptor), SensitiveRemoveTagAndRedactCodec_1.SensitiveRemoveTagAndRedactCodec.instance(redactValues));
16
+ /**
17
+ * The decoded type is taken from the schema; do not pass type arguments. Schemas are invariant in their
18
+ * type parameters, so an explicit `Codec<T>` annotation on the receiving variable is the place to name `T`.
19
+ */
20
+ static fromSchema(schema, redactValues = false) {
21
+ return CompositeCodec_1.CompositeCodec.fromCodecs(new TypeCodec(schema), SensitiveRemoveTagAndRedactCodec_1.SensitiveRemoveTagAndRedactCodec.instance(redactValues));
40
22
  }
41
- static undefined = TypeCodec.fromDescriptor(t.undefined);
42
- static unknown = TypeCodec.fromDescriptor(t.unknown);
43
- static emptyRecord = TypeCodec.fromDescriptor(t.type({}));
44
- static stringRecord = TypeCodec.fromDescriptor(t.record(t.string, t.string));
45
- // Added support for partial records as IO-TS does not support them
46
- // https://github.com/gcanti/io-ts/issues/429#issuecomment-862472408
47
- static partialRecord = (k, type) => t.partial((0, Record_1.map)(() => type)(k.keys));
48
- descriptor;
49
- constructor(descriptor) {
50
- this.descriptor = descriptor;
23
+ static undefined = TypeCodec.fromSchema(effect_1.Schema.Undefined);
24
+ static unknown = TypeCodec.fromSchema(effect_1.Schema.Unknown);
25
+ static emptyRecord = TypeCodec.fromSchema(effect_1.Schema.Struct({}));
26
+ static stringRecord = TypeCodec.fromSchema(effect_1.Schema.mutable(effect_1.Schema.Record({ key: effect_1.Schema.String, value: effect_1.Schema.String })));
27
+ decodeUnknown;
28
+ encodeValue;
29
+ /**
30
+ * `onExcessProperty: 'preserve'` keeps io-ts `t.type` semantics: properties the schema does not declare pass
31
+ * through decode and encode untouched instead of being stripped (Effect's default).
32
+ */
33
+ static parseOptions = {
34
+ errors: 'all',
35
+ onExcessProperty: 'preserve',
36
+ };
37
+ constructor(schema) {
38
+ this.decodeUnknown = effect_1.Schema.decodeUnknownEither(schema, TypeCodec.parseOptions);
39
+ this.encodeValue = effect_1.Schema.encodeSync(schema, TypeCodec.parseOptions);
51
40
  }
41
+ /**
42
+ * Encodes through the schema, which validates the value on the way out: a value that does not match the
43
+ * schema throws a `ParseError`. io-ts `encode` never validated, so callers ported from it should not pass
44
+ * placeholders such as `{}` for an absent input; pass `undefined` with `TypeCodec.undefined` instead.
45
+ */
52
46
  encode(value) {
53
- return this.descriptor.encode(value);
47
+ return this.encodeValue(value);
54
48
  }
55
49
  decode(value) {
56
- const result = this.descriptor.decode(value);
57
- const report = io_ts_reporters_1.default.report(result);
58
- return (0, function_1.pipe)(result, E.mapLeft((e) => new Error(report.join(', '))));
50
+ return effect_1.Either.mapLeft(this.decodeUnknown(value), (error) => new Error((0, exports.formatParseError)(error)));
59
51
  }
60
52
  }
61
53
  exports.TypeCodec = TypeCodec;
@@ -1,44 +1,18 @@
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
- const E = __importStar(require("fp-ts/Either"));
27
- const O = __importStar(require("fp-ts/Option"));
28
- const t = __importStar(require("io-ts"));
29
- const io_ts_types_1 = require("io-ts-types");
3
+ const effect_1 = require("effect");
30
4
  const TypeCodec_1 = require("./TypeCodec");
31
5
  const Codec_abstract_test_1 = require("./Codec.abstract.test");
32
- const testTypeCodec = TypeCodec_1.TypeCodec.fromDescriptor(t.type({
33
- strField: t.string,
34
- intField: (0, io_ts_types_1.optionFromNullable)(t.number),
6
+ const testTypeCodec = TypeCodec_1.TypeCodec.fromSchema(effect_1.Schema.Struct({
7
+ strField: effect_1.Schema.String,
8
+ intField: effect_1.Schema.OptionFromNullishOr(effect_1.Schema.Number, null),
35
9
  }));
36
10
  (0, Codec_abstract_test_1.testCodec)(testTypeCodec);
37
11
  describe('Type Codec Test', () => {
38
12
  test('should encode option some without the extra layer', () => {
39
13
  const testValue = {
40
14
  strField: 'str',
41
- intField: O.some(123),
15
+ intField: effect_1.Option.some(123),
42
16
  };
43
17
  const result = testTypeCodec.encode(testValue);
44
18
  const expected = {
@@ -50,7 +24,7 @@ describe('Type Codec Test', () => {
50
24
  test('should encode option none without the extra layer', () => {
51
25
  const testValue = {
52
26
  strField: 'str',
53
- intField: O.none,
27
+ intField: effect_1.Option.none(),
54
28
  };
55
29
  const result = testTypeCodec.encode(testValue);
56
30
  const expected = {
@@ -65,9 +39,9 @@ describe('Type Codec Test', () => {
65
39
  intField: 123,
66
40
  };
67
41
  const result = testTypeCodec.decode(testValueEncoded);
68
- const expected = E.right({
42
+ const expected = effect_1.Either.right({
69
43
  strField: 'str',
70
- intField: O.some(123),
44
+ intField: effect_1.Option.some(123),
71
45
  });
72
46
  expect(result).toStrictEqual(expected);
73
47
  });
@@ -77,9 +51,9 @@ describe('Type Codec Test', () => {
77
51
  intField: null,
78
52
  };
79
53
  const result = testTypeCodec.decode(testValueEncoded);
80
- const expected = E.right({
54
+ const expected = effect_1.Either.right({
81
55
  strField: 'str',
82
- intField: O.none,
56
+ intField: effect_1.Option.none(),
83
57
  });
84
58
  expect(result).toStrictEqual(expected);
85
59
  });
@@ -88,9 +62,9 @@ describe('Type Codec Test', () => {
88
62
  strField: 'str',
89
63
  };
90
64
  const result = testTypeCodec.decode(testValueEncoded);
91
- const expected = E.right({
65
+ const expected = effect_1.Either.right({
92
66
  strField: 'str',
93
- intField: O.none,
67
+ intField: effect_1.Option.none(),
94
68
  });
95
69
  expect(result).toStrictEqual(expected);
96
70
  });