@trayio/commons 5.35.0-unstable.fd7158a → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base64/Base64.d.ts +10 -5
- package/dist/base64/Base64.d.ts.map +1 -1
- package/dist/base64/Base64.js +40 -8
- package/dist/base64/Base64.unit.test.js +27 -4
- package/dist/buffer/BufferExtensions.d.ts +4 -4
- package/dist/buffer/BufferExtensions.d.ts.map +1 -1
- package/dist/buffer/BufferExtensions.js +38 -25
- package/dist/buffer/BufferExtensions.unit.test.js +45 -22
- package/dist/callsite/CallSite.js +7 -17
- package/dist/codec/CamelCasePropertyNameCodec.d.ts +2 -2
- package/dist/codec/CamelCasePropertyNameCodec.d.ts.map +1 -1
- package/dist/codec/CamelCasePropertyNameCodec.js +25 -2
- package/dist/codec/Codec.abstract.test.d.ts +2 -2
- package/dist/codec/Codec.abstract.test.d.ts.map +1 -1
- package/dist/codec/Codec.abstract.test.js +31 -5
- package/dist/codec/Codec.d.ts +2 -2
- package/dist/codec/Codec.d.ts.map +1 -1
- package/dist/codec/CompositeCodec.d.ts +2 -2
- package/dist/codec/CompositeCodec.d.ts.map +1 -1
- package/dist/codec/CompositeCodec.js +26 -2
- package/dist/codec/PartialRedactionCodec.d.ts +2 -2
- package/dist/codec/PartialRedactionCodec.d.ts.map +1 -1
- package/dist/codec/PartialRedactionCodec.js +25 -2
- package/dist/codec/RemoveNullValuesCodec.d.ts +2 -2
- package/dist/codec/RemoveNullValuesCodec.d.ts.map +1 -1
- package/dist/codec/RemoveNullValuesCodec.js +25 -2
- package/dist/codec/RemoveTopLevelTagCodec.d.ts +2 -2
- package/dist/codec/RemoveTopLevelTagCodec.d.ts.map +1 -1
- package/dist/codec/RemoveTopLevelTagCodec.js +25 -2
- package/dist/codec/SensitiveRemoveTagAndRedactCodec.d.ts +2 -2
- package/dist/codec/SensitiveRemoveTagAndRedactCodec.d.ts.map +1 -1
- package/dist/codec/SensitiveRemoveTagAndRedactCodec.js +25 -2
- package/dist/codec/SensitiveRemoveTagAndRedactCodec.unit.test.js +38 -15
- package/dist/codec/SnakeCasePropertyNameCodec.d.ts +2 -2
- package/dist/codec/SnakeCasePropertyNameCodec.d.ts.map +1 -1
- package/dist/codec/SnakeCasePropertyNameCodec.js +25 -2
- package/dist/codec/TypeCodec.d.ts +8 -24
- package/dist/codec/TypeCodec.d.ts.map +1 -1
- package/dist/codec/TypeCodec.js +48 -40
- package/dist/codec/TypeCodec.unit.test.js +38 -12
- package/dist/dynamicschema/DynamicSchema.d.ts +12 -6
- package/dist/dynamicschema/DynamicSchema.d.ts.map +1 -1
- package/dist/dynamicschema/DynamicSchema.js +41 -18
- package/dist/dynamicschema/DynamicSchema.unit.test.js +75 -51
- package/dist/dynamictype/DynamicType.d.ts +20 -17
- package/dist/dynamictype/DynamicType.d.ts.map +1 -1
- package/dist/dynamictype/DynamicType.js +35 -48
- package/dist/file/FakeFileStorage.d.ts +8 -8
- package/dist/file/FakeFileStorage.d.ts.map +1 -1
- package/dist/file/FakeFileStorage.js +40 -16
- package/dist/file/File.d.ts +14 -10
- package/dist/file/File.d.ts.map +1 -1
- package/dist/file/File.js +24 -31
- package/dist/file/FileStorage.abstract.test.d.ts.map +1 -1
- package/dist/file/FileStorage.abstract.test.js +41 -18
- package/dist/file/NodeFsFileStorage.d.ts +11 -9
- package/dist/file/NodeFsFileStorage.d.ts.map +1 -1
- package/dist/file/NodeFsFileStorage.integration.test.js +45 -21
- package/dist/file/NodeFsFileStorage.js +29 -37
- package/dist/http/Http.d.ts +13 -11
- package/dist/http/Http.d.ts.map +1 -1
- package/dist/http/Http.js +22 -30
- package/dist/http/Http.unit.test.js +26 -3
- package/dist/http/HttpClient.abstract.test.d.ts.map +1 -1
- package/dist/http/HttpClient.abstract.test.js +108 -104
- package/dist/http/HttpClient.d.ts +2 -2
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpController.d.ts +3 -2
- package/dist/http/HttpController.d.ts.map +1 -1
- package/dist/http/HttpTypeDescriptors.d.ts +11 -0
- package/dist/http/HttpTypeDescriptors.d.ts.map +1 -0
- package/dist/http/HttpTypeDescriptors.js +59 -0
- package/dist/http/MultipartHttpRequestBody.integration.test.js +20 -31
- package/dist/http/MultipartHttpRequestBody.unit.test.js +53 -70
- package/dist/record/Record.d.ts +3 -3
- package/dist/record/Record.d.ts.map +1 -1
- package/dist/record/Record.js +30 -9
- package/dist/result/Result.d.ts +3 -3
- package/dist/result/Result.d.ts.map +1 -1
- package/dist/result/Result.js +26 -9
- package/dist/schema/JsonSchemaIntrospector.js +7 -17
- package/dist/sensitive/Sensitive.d.ts +3 -7
- package/dist/sensitive/Sensitive.d.ts.map +1 -1
- package/dist/sensitive/Sensitive.js +39 -23
- package/dist/sensitive/Sensitive.unit.test.d.ts +4 -4
- package/dist/sensitive/Sensitive.unit.test.d.ts.map +1 -1
- package/dist/sensitive/Sensitive.unit.test.js +46 -20
- package/dist/serialization/FormUrlEncodedSerialization.d.ts +2 -2
- package/dist/serialization/FormUrlEncodedSerialization.d.ts.map +1 -1
- package/dist/serialization/FormUrlEncodedSerialization.js +28 -5
- package/dist/serialization/JsonSerialization.d.ts +2 -2
- package/dist/serialization/JsonSerialization.d.ts.map +1 -1
- package/dist/serialization/JsonSerialization.js +28 -5
- package/dist/serialization/Serialization.abstract.test.d.ts.map +1 -1
- package/dist/serialization/Serialization.abstract.test.js +32 -6
- package/dist/serialization/Serialization.d.ts +2 -2
- package/dist/serialization/Serialization.d.ts.map +1 -1
- package/dist/task/Task.d.ts +19 -0
- package/dist/task/Task.d.ts.map +1 -0
- package/dist/task/Task.js +74 -0
- package/dist/task/Task.unit.test.d.ts +2 -0
- package/dist/task/Task.unit.test.d.ts.map +1 -0
- package/dist/task/Task.unit.test.js +46 -0
- package/dist/try/Try.d.ts +2 -2
- package/dist/try/Try.d.ts.map +1 -1
- package/dist/try/Try.js +32 -2
- package/dist/uuid/Uuid.d.ts +10 -11
- package/dist/uuid/Uuid.d.ts.map +1 -1
- package/dist/uuid/Uuid.js +39 -13
- package/dist/uuid/Uuid.unit.test.js +27 -4
- package/dist/zod/SchemaParser.abstract.test.d.ts.map +1 -1
- package/dist/zod/SchemaParser.abstract.test.js +31 -6
- package/dist/zod/SchemaParser.d.ts +2 -2
- package/dist/zod/SchemaParser.d.ts.map +1 -1
- package/dist/zod/ZodSchemaParser.d.ts +4 -3
- package/dist/zod/ZodSchemaParser.d.ts.map +1 -1
- package/dist/zod/ZodSchemaParser.js +28 -4
- package/dist/zod/ZodSchemaParser.unit.test.js +25 -2
- package/package.json +9 -4
- package/dist/effect/EffectExtensions.d.ts +0 -29
- package/dist/effect/EffectExtensions.d.ts.map +0 -1
- package/dist/effect/EffectExtensions.js +0 -30
- package/dist/effect/EffectExtensions.unit.test.d.ts +0 -2
- package/dist/effect/EffectExtensions.unit.test.d.ts.map +0 -1
- package/dist/effect/EffectExtensions.unit.test.js +0 -59
- package/dist/effect/Interop.d.ts +0 -53
- package/dist/effect/Interop.d.ts.map +0 -1
- package/dist/effect/Interop.js +0 -56
- package/dist/effect/Interop.unit.test.d.ts +0 -2
- package/dist/effect/Interop.unit.test.d.ts.map +0 -1
- package/dist/effect/Interop.unit.test.js +0 -134
- package/dist/effect/SchemaExtensions.d.ts +0 -11
- package/dist/effect/SchemaExtensions.d.ts.map +0 -1
- package/dist/effect/SchemaExtensions.js +0 -7
- package/dist/effect/SchemaExtensions.unit.test.d.ts +0 -2
- package/dist/effect/SchemaExtensions.unit.test.d.ts.map +0 -1
- package/dist/effect/SchemaExtensions.unit.test.js +0 -29
- package/dist/http/HttpSchemas.d.ts +0 -13
- package/dist/http/HttpSchemas.d.ts.map +0 -1
- package/dist/http/HttpSchemas.js +0 -23
- package/dist/schema/DateFromUnixTime.d.ts +0 -4
- package/dist/schema/DateFromUnixTime.d.ts.map +0 -1
- package/dist/schema/DateFromUnixTime.js +0 -10
- package/dist/schema/DateFromUnixTime.unit.test.d.ts +0 -2
- package/dist/schema/DateFromUnixTime.unit.test.d.ts.map +0 -1
- package/dist/schema/DateFromUnixTime.unit.test.js +0 -11
|
@@ -1,7 +1,30 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.PartialRedactionCodec = void 0;
|
|
4
|
-
const
|
|
27
|
+
const E = __importStar(require("fp-ts/lib/Either"));
|
|
5
28
|
const lodash_1 = require("lodash");
|
|
6
29
|
class PartialRedactionCodec {
|
|
7
30
|
static instance = new PartialRedactionCodec();
|
|
@@ -9,7 +32,7 @@ class PartialRedactionCodec {
|
|
|
9
32
|
return this.removeNullValuesIfPresent(value);
|
|
10
33
|
}
|
|
11
34
|
decode(value) {
|
|
12
|
-
return
|
|
35
|
+
return E.right(value);
|
|
13
36
|
}
|
|
14
37
|
isObject(value) {
|
|
15
38
|
return (0, lodash_1.isPlainObject)(value);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as E from 'fp-ts/lib/Either';
|
|
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):
|
|
6
|
+
decode(value: unknown): E.Either<Error, unknown>;
|
|
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,
|
|
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,14 +1,37 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.RemoveNullValuesCodec = void 0;
|
|
4
|
-
const
|
|
27
|
+
const E = __importStar(require("fp-ts/lib/Either"));
|
|
5
28
|
class RemoveNullValuesCodec {
|
|
6
29
|
static instance = new RemoveNullValuesCodec();
|
|
7
30
|
encode(value) {
|
|
8
31
|
return this.removeNullValuesIfPresent(value);
|
|
9
32
|
}
|
|
10
33
|
decode(value) {
|
|
11
|
-
return
|
|
34
|
+
return E.right(this.removeNullValuesIfPresent(value));
|
|
12
35
|
}
|
|
13
36
|
isObject(value) {
|
|
14
37
|
return typeof value === 'object' && !Array.isArray(value) && value !== null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as E from 'fp-ts/lib/Either';
|
|
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):
|
|
11
|
+
decode(value: unknown): E.Either<Error, unknown>;
|
|
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,
|
|
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,7 +1,30 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.RemoveTopLevelTagCodec = void 0;
|
|
4
|
-
const
|
|
27
|
+
const E = __importStar(require("fp-ts/lib/Either"));
|
|
5
28
|
/**
|
|
6
29
|
* Codec that removes the _tag property from the top level of the object.
|
|
7
30
|
* We use this to expose RequestFailed on APIs as the _tag property is an implementation detail.
|
|
@@ -13,7 +36,7 @@ class RemoveTopLevelTagCodec {
|
|
|
13
36
|
return this.removeTopLevelTagIfPresent(value);
|
|
14
37
|
}
|
|
15
38
|
decode(value) {
|
|
16
|
-
return
|
|
39
|
+
return E.right(this.removeTopLevelTagIfPresent(value));
|
|
17
40
|
}
|
|
18
41
|
isObject(value) {
|
|
19
42
|
return typeof value === 'object' && !Array.isArray(value) && value !== null;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as E from 'fp-ts/lib/Either';
|
|
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):
|
|
8
|
+
decode(value: unknown): E.Either<Error, unknown>;
|
|
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,
|
|
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,7 +1,30 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.SensitiveRemoveTagAndRedactCodec = void 0;
|
|
4
|
-
const
|
|
27
|
+
const E = __importStar(require("fp-ts/lib/Either"));
|
|
5
28
|
const lodash_1 = require("lodash");
|
|
6
29
|
class SensitiveRemoveTagAndRedactCodec {
|
|
7
30
|
redactValues;
|
|
@@ -15,7 +38,7 @@ class SensitiveRemoveTagAndRedactCodec {
|
|
|
15
38
|
return this.stripTagAndRedactValue(value);
|
|
16
39
|
}
|
|
17
40
|
decode(value) {
|
|
18
|
-
return
|
|
41
|
+
return E.right(value);
|
|
19
42
|
}
|
|
20
43
|
isObject(value) {
|
|
21
44
|
return (0, lodash_1.isPlainObject)(value);
|
|
@@ -1,6 +1,29 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
26
|
+
const O = __importStar(require("fp-ts/Option"));
|
|
4
27
|
const Sensitive_1 = require("../sensitive/Sensitive");
|
|
5
28
|
const Sensitive_unit_test_1 = require("../sensitive/Sensitive.unit.test");
|
|
6
29
|
const CompositeCodec_1 = require("./CompositeCodec");
|
|
@@ -80,7 +103,7 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
|
|
|
80
103
|
const creationDate = new Date();
|
|
81
104
|
const value = {
|
|
82
105
|
user: {
|
|
83
|
-
password: Sensitive_1.Sensitive.fromValue(
|
|
106
|
+
password: Sensitive_1.Sensitive.fromValue(O.some('test')),
|
|
84
107
|
username: 'username',
|
|
85
108
|
dob: Sensitive_1.Sensitive.fromValue(dob),
|
|
86
109
|
creationDate,
|
|
@@ -102,7 +125,7 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
|
|
|
102
125
|
const creationDate = new Date();
|
|
103
126
|
const value = {
|
|
104
127
|
user: {
|
|
105
|
-
password: Sensitive_1.Sensitive.fromValue(
|
|
128
|
+
password: Sensitive_1.Sensitive.fromValue(O.some('test')),
|
|
106
129
|
username: 'username',
|
|
107
130
|
dob: Sensitive_1.Sensitive.fromValue(dob),
|
|
108
131
|
creationDate,
|
|
@@ -111,7 +134,7 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
|
|
|
111
134
|
const actualValue = SensitiveRemoveTagAndRedactCodec_1.SensitiveRemoveTagAndRedactCodec.instance(false).encode(value);
|
|
112
135
|
const expectedValue = {
|
|
113
136
|
user: {
|
|
114
|
-
password:
|
|
137
|
+
password: O.some('test'),
|
|
115
138
|
username: 'username',
|
|
116
139
|
dob,
|
|
117
140
|
creationDate,
|
|
@@ -122,17 +145,17 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
|
|
|
122
145
|
it('should redact sensitive typed data and type encode the value', () => {
|
|
123
146
|
const testValueEncoded = {
|
|
124
147
|
strField: 'str',
|
|
125
|
-
intField: Sensitive_1.Sensitive.fromValue(
|
|
148
|
+
intField: Sensitive_1.Sensitive.fromValue(O.some(123)),
|
|
126
149
|
objectField: Sensitive_1.Sensitive.fromValue({
|
|
127
150
|
str: 'test',
|
|
128
151
|
int: 123,
|
|
129
|
-
optionalObj: Sensitive_1.Sensitive.fromValue(
|
|
152
|
+
optionalObj: Sensitive_1.Sensitive.fromValue(O.some({
|
|
130
153
|
test: 'test',
|
|
131
154
|
test1: 'test1',
|
|
132
155
|
testArray: Sensitive_1.Sensitive.fromValue([
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
156
|
+
O.some('test1'),
|
|
157
|
+
O.some('test2'),
|
|
158
|
+
O.some('test3'),
|
|
136
159
|
]),
|
|
137
160
|
})),
|
|
138
161
|
}),
|
|
@@ -149,18 +172,18 @@ describe('SensitiveRemoveTagAndRedactCodec', () => {
|
|
|
149
172
|
it('should not redact sensitive typed data and type encode the value', () => {
|
|
150
173
|
const testValueEncoded = {
|
|
151
174
|
strField: 'str',
|
|
152
|
-
intField: Sensitive_1.Sensitive.fromValue(
|
|
175
|
+
intField: Sensitive_1.Sensitive.fromValue(O.some(123)),
|
|
153
176
|
objectField: Sensitive_1.Sensitive.fromValue({
|
|
154
177
|
str: 'test',
|
|
155
178
|
int: 123,
|
|
156
|
-
optionalObj: Sensitive_1.Sensitive.fromValue(
|
|
179
|
+
optionalObj: Sensitive_1.Sensitive.fromValue(O.some({
|
|
157
180
|
test: 'test',
|
|
158
181
|
test1: 'test1',
|
|
159
182
|
testArray: Sensitive_1.Sensitive.fromValue([
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
183
|
+
O.some('test'),
|
|
184
|
+
O.some('test1'),
|
|
185
|
+
O.some('test2'),
|
|
186
|
+
O.some('test3'),
|
|
164
187
|
]),
|
|
165
188
|
})),
|
|
166
189
|
}),
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as E from 'fp-ts/lib/Either';
|
|
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):
|
|
6
|
+
decode(value: unknown): E.Either<Error, unknown>;
|
|
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,
|
|
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,7 +1,30 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.SnakeCasePropertyNameCodec = void 0;
|
|
4
|
-
const
|
|
27
|
+
const E = __importStar(require("fp-ts/lib/Either"));
|
|
5
28
|
const StringExtensions_1 = require("../string/StringExtensions");
|
|
6
29
|
class SnakeCasePropertyNameCodec {
|
|
7
30
|
static instance = new SnakeCasePropertyNameCodec();
|
|
@@ -9,7 +32,7 @@ class SnakeCasePropertyNameCodec {
|
|
|
9
32
|
return this.snakeCasePropertyNameIfPresent(value);
|
|
10
33
|
}
|
|
11
34
|
decode(value) {
|
|
12
|
-
return
|
|
35
|
+
return E.right(this.snakeCasePropertyNameIfPresent(value));
|
|
13
36
|
}
|
|
14
37
|
isObject(value) {
|
|
15
38
|
return typeof value === 'object' && !Array.isArray(value) && value !== null;
|
|
@@ -1,32 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as E from 'fp-ts/lib/Either';
|
|
2
|
+
import * as t from 'io-ts';
|
|
2
3
|
import { Codec } from './Codec';
|
|
3
|
-
|
|
4
|
-
|
|
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>>;
|
|
4
|
+
export declare class TypeCodec<T> implements Codec<T> {
|
|
5
|
+
static fromDescriptor<T>(descriptor: t.Type<T, unknown>, redactValues?: boolean): Codec<T>;
|
|
12
6
|
static undefined: Codec<undefined>;
|
|
13
7
|
static unknown: Codec<unknown>;
|
|
14
8
|
static emptyRecord: Codec<{}>;
|
|
15
9
|
static stringRecord: Codec<Record<string, string>>;
|
|
16
|
-
|
|
17
|
-
private
|
|
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;
|
|
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;
|
|
23
12
|
private constructor();
|
|
24
|
-
|
|
25
|
-
|
|
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>;
|
|
13
|
+
encode(value: T): unknown;
|
|
14
|
+
decode(value: unknown): E.Either<Error, T>;
|
|
31
15
|
}
|
|
32
16
|
//# sourceMappingURL=TypeCodec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeCodec.d.ts","sourceRoot":"","sources":["../../src/codec/TypeCodec.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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"}
|
package/dist/codec/TypeCodec.js
CHANGED
|
@@ -1,53 +1,61 @@
|
|
|
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
|
+
};
|
|
2
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TypeCodec =
|
|
4
|
-
const
|
|
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");
|
|
5
35
|
const CompositeCodec_1 = require("./CompositeCodec");
|
|
6
36
|
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. */
|
|
15
37
|
class TypeCodec {
|
|
16
|
-
|
|
17
|
-
|
|
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));
|
|
38
|
+
static fromDescriptor(descriptor, redactValues = false) {
|
|
39
|
+
return CompositeCodec_1.CompositeCodec.fromCodecs(new TypeCodec(descriptor), SensitiveRemoveTagAndRedactCodec_1.SensitiveRemoveTagAndRedactCodec.instance(redactValues));
|
|
22
40
|
}
|
|
23
|
-
static undefined = TypeCodec.
|
|
24
|
-
static unknown = TypeCodec.
|
|
25
|
-
static emptyRecord = TypeCodec.
|
|
26
|
-
static stringRecord = TypeCodec.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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);
|
|
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;
|
|
40
51
|
}
|
|
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
|
-
*/
|
|
46
52
|
encode(value) {
|
|
47
|
-
return this.
|
|
53
|
+
return this.descriptor.encode(value);
|
|
48
54
|
}
|
|
49
55
|
decode(value) {
|
|
50
|
-
|
|
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(', '))));
|
|
51
59
|
}
|
|
52
60
|
}
|
|
53
61
|
exports.TypeCodec = TypeCodec;
|
|
@@ -1,18 +1,44 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
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");
|
|
4
30
|
const TypeCodec_1 = require("./TypeCodec");
|
|
5
31
|
const Codec_abstract_test_1 = require("./Codec.abstract.test");
|
|
6
|
-
const testTypeCodec = TypeCodec_1.TypeCodec.
|
|
7
|
-
strField:
|
|
8
|
-
intField:
|
|
32
|
+
const testTypeCodec = TypeCodec_1.TypeCodec.fromDescriptor(t.type({
|
|
33
|
+
strField: t.string,
|
|
34
|
+
intField: (0, io_ts_types_1.optionFromNullable)(t.number),
|
|
9
35
|
}));
|
|
10
36
|
(0, Codec_abstract_test_1.testCodec)(testTypeCodec);
|
|
11
37
|
describe('Type Codec Test', () => {
|
|
12
38
|
test('should encode option some without the extra layer', () => {
|
|
13
39
|
const testValue = {
|
|
14
40
|
strField: 'str',
|
|
15
|
-
intField:
|
|
41
|
+
intField: O.some(123),
|
|
16
42
|
};
|
|
17
43
|
const result = testTypeCodec.encode(testValue);
|
|
18
44
|
const expected = {
|
|
@@ -24,7 +50,7 @@ describe('Type Codec Test', () => {
|
|
|
24
50
|
test('should encode option none without the extra layer', () => {
|
|
25
51
|
const testValue = {
|
|
26
52
|
strField: 'str',
|
|
27
|
-
intField:
|
|
53
|
+
intField: O.none,
|
|
28
54
|
};
|
|
29
55
|
const result = testTypeCodec.encode(testValue);
|
|
30
56
|
const expected = {
|
|
@@ -39,9 +65,9 @@ describe('Type Codec Test', () => {
|
|
|
39
65
|
intField: 123,
|
|
40
66
|
};
|
|
41
67
|
const result = testTypeCodec.decode(testValueEncoded);
|
|
42
|
-
const expected =
|
|
68
|
+
const expected = E.right({
|
|
43
69
|
strField: 'str',
|
|
44
|
-
intField:
|
|
70
|
+
intField: O.some(123),
|
|
45
71
|
});
|
|
46
72
|
expect(result).toStrictEqual(expected);
|
|
47
73
|
});
|
|
@@ -51,9 +77,9 @@ describe('Type Codec Test', () => {
|
|
|
51
77
|
intField: null,
|
|
52
78
|
};
|
|
53
79
|
const result = testTypeCodec.decode(testValueEncoded);
|
|
54
|
-
const expected =
|
|
80
|
+
const expected = E.right({
|
|
55
81
|
strField: 'str',
|
|
56
|
-
intField:
|
|
82
|
+
intField: O.none,
|
|
57
83
|
});
|
|
58
84
|
expect(result).toStrictEqual(expected);
|
|
59
85
|
});
|
|
@@ -62,9 +88,9 @@ describe('Type Codec Test', () => {
|
|
|
62
88
|
strField: 'str',
|
|
63
89
|
};
|
|
64
90
|
const result = testTypeCodec.decode(testValueEncoded);
|
|
65
|
-
const expected =
|
|
91
|
+
const expected = E.right({
|
|
66
92
|
strField: 'str',
|
|
67
|
-
intField:
|
|
93
|
+
intField: O.none,
|
|
68
94
|
});
|
|
69
95
|
expect(result).toStrictEqual(expected);
|
|
70
96
|
});
|