@vicin/phantom 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/README.md +869 -0
- package/dist/assertors/assertors.d.ts +86 -0
- package/dist/assertors/assertors.d.ts.map +1 -0
- package/dist/assertors/assertors.js +91 -0
- package/dist/assertors/assertors.js.map +1 -0
- package/dist/assertors/brand.d.ts +13 -0
- package/dist/assertors/brand.d.ts.map +1 -0
- package/dist/assertors/brand.js +12 -0
- package/dist/assertors/brand.js.map +1 -0
- package/dist/assertors/identity.d.ts +13 -0
- package/dist/assertors/identity.d.ts.map +1 -0
- package/dist/assertors/identity.js +12 -0
- package/dist/assertors/identity.js.map +1 -0
- package/dist/assertors/index.d.ts +2 -0
- package/dist/assertors/index.d.ts.map +1 -0
- package/dist/assertors/index.js +2 -0
- package/dist/assertors/index.js.map +1 -0
- package/dist/assertors/trait.d.ts +38 -0
- package/dist/assertors/trait.d.ts.map +1 -0
- package/dist/assertors/trait.js +37 -0
- package/dist/assertors/trait.js.map +1 -0
- package/dist/assertors/transformation.d.ts +27 -0
- package/dist/assertors/transformation.d.ts.map +1 -0
- package/dist/assertors/transformation.js +26 -0
- package/dist/assertors/transformation.js.map +1 -0
- package/dist/chain/chain.d.ts +42 -0
- package/dist/chain/chain.d.ts.map +1 -0
- package/dist/chain/chain.js +48 -0
- package/dist/chain/chain.js.map +1 -0
- package/dist/chain/index.d.ts +2 -0
- package/dist/chain/index.d.ts.map +1 -0
- package/dist/chain/index.js +2 -0
- package/dist/chain/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/phantom.d.ts +352 -0
- package/dist/phantom.d.ts.map +1 -0
- package/dist/phantom.js +139 -0
- package/dist/phantom.js.map +1 -0
- package/dist/types/composed/brand.d.ts +32 -0
- package/dist/types/composed/brand.d.ts.map +1 -0
- package/dist/types/composed/brand.js +2 -0
- package/dist/types/composed/brand.js.map +1 -0
- package/dist/types/composed/helpers.d.ts +75 -0
- package/dist/types/composed/helpers.d.ts.map +1 -0
- package/dist/types/composed/helpers.js +2 -0
- package/dist/types/composed/helpers.js.map +1 -0
- package/dist/types/composed/identity.d.ts +37 -0
- package/dist/types/composed/identity.d.ts.map +1 -0
- package/dist/types/composed/identity.js +2 -0
- package/dist/types/composed/identity.js.map +1 -0
- package/dist/types/composed/index.d.ts +6 -0
- package/dist/types/composed/index.d.ts.map +1 -0
- package/dist/types/composed/index.js +2 -0
- package/dist/types/composed/index.js.map +1 -0
- package/dist/types/composed/trait.d.ts +35 -0
- package/dist/types/composed/trait.d.ts.map +1 -0
- package/dist/types/composed/trait.js +2 -0
- package/dist/types/composed/trait.js.map +1 -0
- package/dist/types/composed/transformation.d.ts +34 -0
- package/dist/types/composed/transformation.d.ts.map +1 -0
- package/dist/types/composed/transformation.js +2 -0
- package/dist/types/composed/transformation.js.map +1 -0
- package/dist/types/core/base.d.ts +35 -0
- package/dist/types/core/base.d.ts.map +1 -0
- package/dist/types/core/base.js +2 -0
- package/dist/types/core/base.js.map +1 -0
- package/dist/types/core/index.d.ts +8 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/core/index.js +2 -0
- package/dist/types/core/index.js.map +1 -0
- package/dist/types/core/input.d.ts +38 -0
- package/dist/types/core/input.d.ts.map +1 -0
- package/dist/types/core/input.js +2 -0
- package/dist/types/core/input.js.map +1 -0
- package/dist/types/core/label.d.ts +34 -0
- package/dist/types/core/label.d.ts.map +1 -0
- package/dist/types/core/label.js +2 -0
- package/dist/types/core/label.js.map +1 -0
- package/dist/types/core/phantom.d.ts +20 -0
- package/dist/types/core/phantom.d.ts.map +1 -0
- package/dist/types/core/phantom.js +11 -0
- package/dist/types/core/phantom.js.map +1 -0
- package/dist/types/core/tag.d.ts +35 -0
- package/dist/types/core/tag.d.ts.map +1 -0
- package/dist/types/core/tag.js +2 -0
- package/dist/types/core/tag.js.map +1 -0
- package/dist/types/core/traits.d.ts +51 -0
- package/dist/types/core/traits.d.ts.map +1 -0
- package/dist/types/core/traits.js +2 -0
- package/dist/types/core/traits.js.map +1 -0
- package/dist/types/core/variants.d.ts +34 -0
- package/dist/types/core/variants.d.ts.map +1 -0
- package/dist/types/core/variants.js +2 -0
- package/dist/types/core/variants.js.map +1 -0
- package/dist/types/errors.d.ts +40 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +2 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/public.d.ts +224 -0
- package/dist/types/public.d.ts.map +1 -0
- package/dist/types/public.js +12 -0
- package/dist/types/public.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Base as NamespaceBase, Label as NamespaceLabel, Tag as NamespaceTag, Variants as NamespaceVariants } from '../core';
|
|
2
|
+
import type { ErrorType, Errors } from '../errors';
|
|
3
|
+
import type { HandleOriginalType, PatchMetadata, Prettify, WithMetadata } from './helpers';
|
|
4
|
+
/**
|
|
5
|
+
* Identity API.
|
|
6
|
+
*
|
|
7
|
+
* Identities are brands with additional constraints:
|
|
8
|
+
* - Base type
|
|
9
|
+
* - Variants
|
|
10
|
+
*/
|
|
11
|
+
export declare namespace Identity {
|
|
12
|
+
/** Type guard for any identity. */
|
|
13
|
+
export type Any = NamespaceTag.Of<string | symbol>;
|
|
14
|
+
/** Declare an identity */
|
|
15
|
+
export type Declare<T extends string | symbol, L extends string = never, B extends unknown = never, V extends string = never> = Prettify<NamespaceTag.Of<T> & NamespaceLabel.OfIfExists<L> & NamespaceBase.OfIfExists<B> & NamespaceVariants.OfIfExists<V>>;
|
|
16
|
+
/**
|
|
17
|
+
* Assign an identity to a value.
|
|
18
|
+
* Enforces base-type compatibility.
|
|
19
|
+
*/
|
|
20
|
+
export type Assign<I extends Any, T> = T extends ErrorType<any> ? T : _Assign<I, HandleOriginalType<T>>;
|
|
21
|
+
/** Internal implementation of 'Identity.Assign' */
|
|
22
|
+
type _Assign<I extends Any, T> = NamespaceTag.HasTag<T> extends true ? ErrorType<Errors<I, T>['alreadyBranded']> : T extends NamespaceBase.BaseOf<I> ? WithMetadata<T, I> : ErrorType<Errors<I, T>['typeNotExtendBase']>;
|
|
23
|
+
/** Safe identity assignment */
|
|
24
|
+
export type AssignSafe<I extends Any, T> = T extends ErrorType<any> ? T : _AssignSafe<I, HandleOriginalType<T>>;
|
|
25
|
+
/** Internal implementation of 'Identity.AssignSafe' */
|
|
26
|
+
type _AssignSafe<I extends Any, T> = NamespaceTag.HasTag<T> extends true ? T : T extends NamespaceBase.BaseOf<I> ? WithMetadata<T, I> : ErrorType<Errors<I, T>['typeNotExtendBase']>;
|
|
27
|
+
/** Set the active variant on an identity */
|
|
28
|
+
export type WithVariant<I extends Any, V extends NamespaceVariants.VariantsOf<I>> = PatchMetadata<I, NamespaceVariants.Of<V>>;
|
|
29
|
+
/** Set the active variant on a value */
|
|
30
|
+
export type WithTypeVariant<T, V extends NamespaceVariants.VariantsOf<T>> = T extends ErrorType<any> ? T : _WithTypeVariant<HandleOriginalType<T>, V>;
|
|
31
|
+
/** Internal implementation of 'Identity.WithTypeVariant' */
|
|
32
|
+
type _WithTypeVariant<T, V extends NamespaceVariants.VariantsOf<T>> = WithMetadata<T, NamespaceVariants.Of<V>>;
|
|
33
|
+
/** Check whether value is branded with */
|
|
34
|
+
export type isIdentity<T, I extends Any> = T extends I ? true : false;
|
|
35
|
+
export {};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/types/composed/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/types/composed/identity.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/composed/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/composed/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Phantom as NamespacePhantom, Traits as NamespaceTraits } from '../core';
|
|
2
|
+
import type { ErrorType } from '../errors';
|
|
3
|
+
import type { Equals, HandleOriginalType, IfNever, IntersectOf, WithMetadata, WithoutMetadata } from './helpers';
|
|
4
|
+
/**
|
|
5
|
+
* Trait API.
|
|
6
|
+
*
|
|
7
|
+
* Traits are additive capabilities that can be attached
|
|
8
|
+
* or removed independently.
|
|
9
|
+
*/
|
|
10
|
+
export declare namespace Trait {
|
|
11
|
+
/** Type guard for any trait. */
|
|
12
|
+
export type Any = NamespaceTraits.Of<string | symbol>;
|
|
13
|
+
/** Declare a trait */
|
|
14
|
+
export type Declare<Tr extends string | symbol> = NamespaceTraits.Of<Tr>;
|
|
15
|
+
/** Add a trait */
|
|
16
|
+
export type Add<Tr extends Any, T> = T extends ErrorType<any> ? T : _Add<Tr, HandleOriginalType<T>>;
|
|
17
|
+
/** Internal implementation of 'Trait.Add' */
|
|
18
|
+
type _Add<Tr extends Any, T> = WithMetadata<T, NamespaceTraits.FromMap<IfNever<NamespaceTraits.TraitsOf<T>> & IfNever<NamespaceTraits.TraitsOf<Tr>>>>;
|
|
19
|
+
/** Add multiple traits */
|
|
20
|
+
export type AddMulti<Tr extends readonly Any[], T> = T extends ErrorType<any> ? T : _AddMulti<Tr, HandleOriginalType<T>>;
|
|
21
|
+
/** Internal implementation of 'Trait.AddMulti' */
|
|
22
|
+
type _AddMulti<Tr extends readonly Any[], T> = WithMetadata<T, NamespaceTraits.FromMap<IfNever<NamespaceTraits.TraitsOf<T>> & IfNever<NamespaceTraits.TraitsOf<IntersectOf<Tr[number]>>>>>;
|
|
23
|
+
/** Remove a trait */
|
|
24
|
+
export type Drop<Tr extends Any, T> = T extends ErrorType<any> ? T : _Drop<Tr, HandleOriginalType<T>>;
|
|
25
|
+
/** Internal implementation of 'Trait.Drop' */
|
|
26
|
+
type _Drop<Tr extends Any, T> = Equals<NamespaceTraits.TraitKeysOf<Tr>, NamespaceTraits.TraitKeysOf<T>> extends true ? Equals<keyof NamespacePhantom.PhantomOf<T>, '__OriginalType' | '__Traits'> extends true ? NamespacePhantom.StripPhantom<T> : WithoutMetadata<T, '__Traits'> : WithMetadata<T, NamespaceTraits.FromMap<Omit<NamespaceTraits.TraitsOf<T>, NamespaceTraits.TraitKeysOf<Tr>>>>;
|
|
27
|
+
/** Remove multiple traits */
|
|
28
|
+
export type DropMulti<Tr extends readonly Any[], T> = T extends ErrorType<any> ? T : _DropMulti<Tr, HandleOriginalType<T>>;
|
|
29
|
+
/** Internal implementation of 'Trait.DropMulti' */
|
|
30
|
+
type _DropMulti<Tr extends readonly Any[], T> = Equals<NamespaceTraits.TraitKeysOf<IntersectOf<Tr[number]>>, NamespaceTraits.TraitKeysOf<T>> extends true ? Equals<keyof NamespacePhantom.PhantomOf<T>, '__OriginalType' | '__Traits'> extends true ? NamespacePhantom.StripPhantom<T> : WithoutMetadata<T, '__Traits'> : WithMetadata<T, NamespaceTraits.FromMap<Omit<NamespaceTraits.TraitsOf<T>, NamespaceTraits.TraitKeysOf<IntersectOf<Tr[number]>>>>>;
|
|
31
|
+
/** Check whether value has trait */
|
|
32
|
+
export type HasTrait<T, Tr extends Any> = T extends Tr ? true : false;
|
|
33
|
+
export {};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=trait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trait.d.ts","sourceRoot":"","sources":["../../../src/types/composed/trait.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trait.js","sourceRoot":"","sources":["../../../src/types/composed/trait.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Input, Base as NamespaceBase, Input as NamespaceInput, Label as NamespaceLabel, Tag as NamespaceTag, Variants as NamespaceVariants } from '../core';
|
|
2
|
+
import type { ErrorType, Errors } from '../errors';
|
|
3
|
+
import type { HandleOriginalType, PatchMetadata, Prettify, WithMetadata } from './helpers';
|
|
4
|
+
/**
|
|
5
|
+
* Transformation API.
|
|
6
|
+
*
|
|
7
|
+
* Transformations represent reversible operations that
|
|
8
|
+
* change the shape of a value while preserving its origin.
|
|
9
|
+
*/
|
|
10
|
+
export declare namespace Transformation {
|
|
11
|
+
/** Type guard for any transformation. */
|
|
12
|
+
export type Any = NamespaceInput.Of<any> & NamespaceTag.Of<string | symbol>;
|
|
13
|
+
/** Declare a transformation */
|
|
14
|
+
export type Declare<I, T extends string | symbol, L extends string = never, B extends unknown = never, V extends string = never> = Prettify<NamespaceInput.Of<I> & NamespaceTag.Of<T> & NamespaceLabel.OfIfExists<L> & NamespaceBase.OfIfExists<B> & NamespaceVariants.OfIfExists<V>>;
|
|
15
|
+
/**
|
|
16
|
+
* Apply a transformation to a value.
|
|
17
|
+
* Enforces base-type compatibility.
|
|
18
|
+
*/
|
|
19
|
+
export type Apply<Tr extends Any, I, T> = T extends ErrorType<any> ? T : _Apply<Tr, I, HandleOriginalType<T>>;
|
|
20
|
+
/** Internal implementation of 'Transformation.Apply' */
|
|
21
|
+
type _Apply<Tr extends Any, I, T> = NamespaceTag.HasTag<T> extends true ? ErrorType<Errors<I, T>['alreadyBranded']> : T extends NamespaceBase.BaseOf<I> ? WithMetadata<T, PatchMetadata<Tr, Input.Of<I>>> : ErrorType<Errors<I, T>['typeNotExtendBase']>;
|
|
22
|
+
/** Revert a transformation */
|
|
23
|
+
export type Revert<Tr extends Any, T, I> = T extends ErrorType<any> ? T : _Revert<Tr, HandleOriginalType<T>, I>;
|
|
24
|
+
/** Internal implementation of 'Transformation.Revert' */
|
|
25
|
+
type _Revert<Tr extends Any, T, I> = NamespaceInput.HasInput<T> extends true ? T extends Tr ? NamespaceInput.InputOf<T> : ErrorType<Errors<Tr, T>['transformationMismatch']> : ErrorType<Errors<never, T>['notTransformed']>;
|
|
26
|
+
/** Revert a transformation whatever transformation was */
|
|
27
|
+
export type RevertAny<T, I> = T extends ErrorType<any> ? T : _RevertAny<HandleOriginalType<T>>;
|
|
28
|
+
/** Internal implementation of 'Transformation.RevertAny' */
|
|
29
|
+
type _RevertAny<T> = NamespaceInput.HasInput<T> extends true ? NamespaceInput.InputOf<T> : ErrorType<Errors<never, T>['notTransformed']>;
|
|
30
|
+
/** Check whether value is transformed with */
|
|
31
|
+
export type isTransformed<T, Tr extends Any> = T extends Tr ? true : false;
|
|
32
|
+
export {};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=transformation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../../src/types/composed/transformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformation.js","sourceRoot":"","sources":["../../../src/types/composed/transformation.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base-type metadata.
|
|
3
|
+
*
|
|
4
|
+
* Used to constrain which runtime types a brand, identity,
|
|
5
|
+
* or transformation may be applied to.
|
|
6
|
+
*/
|
|
7
|
+
export declare namespace Base {
|
|
8
|
+
/** Marker type for base constraints */
|
|
9
|
+
type Any = {
|
|
10
|
+
__Phantom: {
|
|
11
|
+
__Base?: unknown;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
/** Declare a base type */
|
|
15
|
+
type Of<Base> = {
|
|
16
|
+
__Phantom: {
|
|
17
|
+
__Base?: Base;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
/** Conditionally declare a base type */
|
|
21
|
+
type OfIfExists<Base> = [Base] extends [never] ? {} : Of<Base>;
|
|
22
|
+
/** Extract the base type */
|
|
23
|
+
type BaseOf<T> = T extends {
|
|
24
|
+
__Phantom: {
|
|
25
|
+
__Base?: infer Base;
|
|
26
|
+
};
|
|
27
|
+
} ? Exclude<Base, undefined> : unknown;
|
|
28
|
+
/** Check whether a base constraint exists */
|
|
29
|
+
type HasBase<T, B = unknown> = T extends {
|
|
30
|
+
__Phantom: {
|
|
31
|
+
__Base?: B;
|
|
32
|
+
};
|
|
33
|
+
} ? true : false;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/types/core/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,yBAAiB,IAAI,CAAC;IACpB,uCAAuC;IACvC,KAAY,GAAG,GAAG;QAChB,SAAS,EAAE;YAAE,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACjC,CAAC;IAEF,0BAA0B;IAC1B,KAAY,EAAE,CAAC,IAAI,IAAI;QACrB,SAAS,EAAE;YAAE,MAAM,CAAC,EAAE,IAAI,CAAA;SAAE,CAAC;KAC9B,CAAC;IAEF,wCAAwC;IACxC,KAAY,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAEtE,4BAA4B;IAC5B,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;QAAE,SAAS,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;SAAE,CAAA;KAAE,GACpE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GACxB,OAAO,CAAC;IAEZ,6CAA6C;IAC7C,KAAY,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,SAAS;QAAE,SAAS,EAAE;YAAE,MAAM,CAAC,EAAE,CAAC,CAAA;SAAE,CAAA;KAAE,GACzE,IAAI,GACJ,KAAK,CAAC;CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/types/core/base.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type { Base } from './base';
|
|
2
|
+
export type { Input } from './input';
|
|
3
|
+
export type { Label } from './label';
|
|
4
|
+
export { Phantom } from './phantom';
|
|
5
|
+
export type { Tag } from './tag';
|
|
6
|
+
export type { Traits } from './traits';
|
|
7
|
+
export type { Variants } from './variants';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/core/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input metadata.
|
|
3
|
+
*
|
|
4
|
+
* Utilities for attaching and querying input metadata in transformations.
|
|
5
|
+
*/
|
|
6
|
+
export declare namespace Input {
|
|
7
|
+
/** Marker type for input value */
|
|
8
|
+
type Any = {
|
|
9
|
+
__Phantom: {
|
|
10
|
+
__Input: unknown;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
/** Set input */
|
|
14
|
+
type Of<Input> = {
|
|
15
|
+
__Phantom: {
|
|
16
|
+
__Input: Input;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
/** Conditionally set input */
|
|
20
|
+
type OfIfExists<Input> = [Input] extends [never] ? {} : {
|
|
21
|
+
__Phantom: {
|
|
22
|
+
__Input: Input;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/** Extract the input */
|
|
26
|
+
type InputOf<T> = T extends {
|
|
27
|
+
__Phantom: {
|
|
28
|
+
__Input: infer Input;
|
|
29
|
+
};
|
|
30
|
+
} ? Input : never;
|
|
31
|
+
/** Check whether an input exists */
|
|
32
|
+
type HasInput<T, I = unknown> = T extends {
|
|
33
|
+
__Phantom: {
|
|
34
|
+
__Input: I;
|
|
35
|
+
};
|
|
36
|
+
} ? true : false;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/types/core/input.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,yBAAiB,KAAK,CAAC;IACrB,kCAAkC;IAClC,KAAY,GAAG,GAAG;QAAE,SAAS,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;IAEtD,gBAAgB;IAChB,KAAY,EAAE,CAAC,KAAK,IAAI;QAAE,SAAS,EAAE;YAAE,OAAO,EAAE,KAAK,CAAA;SAAE,CAAA;KAAE,CAAC;IAE1D,8BAA8B;IAC9B,KAAY,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GACnD,EAAE,GACF;QAAE,SAAS,EAAE;YAAE,OAAO,EAAE,KAAK,CAAA;SAAE,CAAA;KAAE,CAAC;IAEtC,wBAAwB;IACxB,KAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;QAAE,SAAS,EAAE;YAAE,OAAO,EAAE,MAAM,KAAK,CAAA;SAAE,CAAA;KAAE,GACtE,KAAK,GACL,KAAK,CAAC;IAEV,oCAAoC;IACpC,KAAY,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,SAAS;QAC/C,SAAS,EAAE;YAAE,OAAO,EAAE,CAAC,CAAA;SAAE,CAAC;KAC3B,GACG,IAAI,GACJ,KAAK,CAAC;CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/types/core/input.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional human-readable label metadata.
|
|
3
|
+
*
|
|
4
|
+
* Labels are descriptive only and do not affect identity.
|
|
5
|
+
*/
|
|
6
|
+
export declare namespace Label {
|
|
7
|
+
/** Marker type for labeled values */
|
|
8
|
+
type Any = {
|
|
9
|
+
__Phantom: {
|
|
10
|
+
__Label?: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
/** Attach a label */
|
|
14
|
+
type Of<Label extends string> = {
|
|
15
|
+
__Phantom: {
|
|
16
|
+
__Label?: Label;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
/** Conditionally attach a label */
|
|
20
|
+
type OfIfExists<Label extends string> = [Label] extends [never] ? {} : Of<Label>;
|
|
21
|
+
/** Extract the label */
|
|
22
|
+
type LabelOf<T> = T extends {
|
|
23
|
+
__Phantom: {
|
|
24
|
+
__Label?: infer Label;
|
|
25
|
+
};
|
|
26
|
+
} ? Exclude<Label, undefined> : never;
|
|
27
|
+
/** Check whether a label exists */
|
|
28
|
+
type HasLabel<T, L extends string = string> = T extends {
|
|
29
|
+
__Phantom: {
|
|
30
|
+
__Label?: L;
|
|
31
|
+
};
|
|
32
|
+
} ? true : false;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../src/types/core/label.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,yBAAiB,KAAK,CAAC;IACrB,qCAAqC;IACrC,KAAY,GAAG,GAAG;QAChB,SAAS,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACjC,CAAC;IAEF,qBAAqB;IACrB,KAAY,EAAE,CAAC,KAAK,SAAS,MAAM,IAAI;QACrC,SAAS,EAAE;YAAE,OAAO,CAAC,EAAE,KAAK,CAAA;SAAE,CAAC;KAChC,CAAC;IAEF,mCAAmC;IACnC,KAAY,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAClE,EAAE,GACF,EAAE,CAAC,KAAK,CAAC,CAAC;IAEd,wBAAwB;IACxB,KAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;QACjC,SAAS,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,KAAK,CAAA;SAAE,CAAC;KACtC,GACG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,GACzB,KAAK,CAAC;IAEV,mCAAmC;IACnC,KAAY,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS;QAC7D,SAAS,EAAE;YAAE,OAAO,CAAC,EAAE,CAAC,CAAA;SAAE,CAAC;KAC5B,GACG,IAAI,GACJ,KAAK,CAAC;CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/types/core/label.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phantom meatadata object manipulators.
|
|
3
|
+
*
|
|
4
|
+
* Phantom matadata object holds all metadata used by 'phantom'.
|
|
5
|
+
*/
|
|
6
|
+
export declare namespace Phantom {
|
|
7
|
+
/** Get phantom metadata object from a type */
|
|
8
|
+
type PhantomOf<T> = T extends {
|
|
9
|
+
__Phantom: infer Phantom extends object;
|
|
10
|
+
} ? Phantom : never;
|
|
11
|
+
/** Stip phantom metadata object from a type */
|
|
12
|
+
type StripPhantom<T> = T extends {
|
|
13
|
+
__Phantom: {
|
|
14
|
+
__OriginalType?: infer O;
|
|
15
|
+
};
|
|
16
|
+
} ? Exclude<O, undefined> : T;
|
|
17
|
+
/** run-time helper for 'StringPhantom', used for debugging mainly */
|
|
18
|
+
const stripPhantom: <T>(value: T) => StripPhantom<T>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=phantom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phantom.d.ts","sourceRoot":"","sources":["../../../src/types/core/phantom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,yBAAiB,OAAO,CAAC;IACvB,8CAA8C;IAC9C,KAAY,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS;QACnC,SAAS,EAAE,MAAM,OAAO,SAAS,MAAM,CAAC;KACzC,GACG,OAAO,GACP,KAAK,CAAC;IAEV,+CAA+C;IAC/C,KAAY,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;QACtC,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC;KACzC,GACG,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,GACrB,CAAC,CAAC;IAEN,qEAAqE;IAC9D,MAAM,YAAY,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,YAAY,CAAC,CAAC,CAAiB,CAAC;CAC5E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phantom meatadata object manipulators.
|
|
3
|
+
*
|
|
4
|
+
* Phantom matadata object holds all metadata used by 'phantom'.
|
|
5
|
+
*/
|
|
6
|
+
export var Phantom;
|
|
7
|
+
(function (Phantom) {
|
|
8
|
+
/** run-time helper for 'StringPhantom', used for debugging mainly */
|
|
9
|
+
Phantom.stripPhantom = (value) => value;
|
|
10
|
+
})(Phantom || (Phantom = {}));
|
|
11
|
+
//# sourceMappingURL=phantom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phantom.js","sourceRoot":"","sources":["../../../src/types/core/phantom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,KAAW,OAAO,CAiBvB;AAjBD,WAAiB,OAAO;IAetB,qEAAqE;IACxD,oBAAY,GAAG,CAAI,KAAQ,EAAmB,EAAE,CAAC,KAAY,CAAC;AAC7E,CAAC,EAjBgB,OAAO,KAAP,OAAO,QAiBvB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nominal tag metadata.
|
|
3
|
+
*
|
|
4
|
+
* Tags uniquely identify a branded or identified type.
|
|
5
|
+
* A value may only have a single tag.
|
|
6
|
+
*/
|
|
7
|
+
export declare namespace Tag {
|
|
8
|
+
/** Marker type for any tagged value */
|
|
9
|
+
type Any = {
|
|
10
|
+
__Phantom: {
|
|
11
|
+
__Tag: string | symbol;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
/** Attach a specific tag */
|
|
15
|
+
type Of<Tag extends string | symbol> = {
|
|
16
|
+
__Phantom: {
|
|
17
|
+
__Tag: Tag;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
/** Conditionally attach a tag if it exists */
|
|
21
|
+
type OfIfExists<Tag extends string | symbol> = [Tag] extends [never] ? {} : Of<Tag>;
|
|
22
|
+
/** Extract the tag from a type */
|
|
23
|
+
type TagOf<T> = T extends {
|
|
24
|
+
__Phantom: {
|
|
25
|
+
__Tag: infer Tag;
|
|
26
|
+
};
|
|
27
|
+
} ? Tag : never;
|
|
28
|
+
/** Check whether a type is tagged */
|
|
29
|
+
type HasTag<T, Ta extends string | symbol = string | symbol> = T extends {
|
|
30
|
+
__Phantom: {
|
|
31
|
+
__Tag: Ta;
|
|
32
|
+
};
|
|
33
|
+
} ? true : false;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=tag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../../src/types/core/tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,yBAAiB,GAAG,CAAC;IACnB,uCAAuC;IACvC,KAAY,GAAG,GAAG;QAChB,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACvC,CAAC;IAEF,4BAA4B;IAC5B,KAAY,EAAE,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI;QAC5C,SAAS,EAAE;YAAE,KAAK,EAAE,GAAG,CAAA;SAAE,CAAC;KAC3B,CAAC;IAEF,8CAA8C;IAC9C,KAAY,UAAU,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GACvE,EAAE,GACF,EAAE,CAAC,GAAG,CAAC,CAAC;IAEZ,kCAAkC;IAClC,KAAY,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS;QAAE,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,GAAG,CAAA;SAAE,CAAA;KAAE,GAChE,GAAG,GACH,KAAK,CAAC;IAEV,qCAAqC;IACrC,KAAY,MAAM,CAChB,CAAC,EACD,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAC1C,CAAC,SAAS;QAAE,SAAS,EAAE;YAAE,KAAK,EAAE,EAAE,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,GAAG,KAAK,CAAC;CAC3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../src/types/core/tag.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trait metadata.
|
|
3
|
+
*
|
|
4
|
+
* Traits behave like a set of capabilities that can be
|
|
5
|
+
* added or removed independently.
|
|
6
|
+
*/
|
|
7
|
+
export declare namespace Traits {
|
|
8
|
+
/** Marker type for trait-bearing values */
|
|
9
|
+
type Any = {
|
|
10
|
+
__Phantom: {
|
|
11
|
+
__Traits: {};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
/** Declare a single trait */
|
|
15
|
+
type Of<Trait extends string | symbol> = {
|
|
16
|
+
__Phantom: {
|
|
17
|
+
__Traits: {
|
|
18
|
+
[K in Trait]: true;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
/** Construct traits from an explicit trait map */
|
|
23
|
+
type FromMap<Traits extends Record<string | symbol, true>> = {
|
|
24
|
+
__Phantom: {
|
|
25
|
+
__Traits: Traits;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
/** Conditionally declare a trait */
|
|
29
|
+
type OfIfExists<Trait extends string | symbol> = [Trait] extends [
|
|
30
|
+
never
|
|
31
|
+
] ? {} : Of<Trait>;
|
|
32
|
+
/** Extract the trait map */
|
|
33
|
+
type TraitsOf<T> = T extends {
|
|
34
|
+
__Phantom: {
|
|
35
|
+
__Traits: infer Traits;
|
|
36
|
+
};
|
|
37
|
+
} ? Traits extends Record<string | symbol, true> ? Traits : never : never;
|
|
38
|
+
/** Extract trait keys */
|
|
39
|
+
type TraitKeysOf<T> = T extends {
|
|
40
|
+
__Phantom: {
|
|
41
|
+
__Traits: infer Traits;
|
|
42
|
+
};
|
|
43
|
+
} ? keyof Traits : never;
|
|
44
|
+
/** Check if any traits exist */
|
|
45
|
+
type HasTraits<T, Tr extends string | symbol = string | symbol> = T extends {
|
|
46
|
+
__Phantom: {
|
|
47
|
+
__Traits: Record<Tr, true>;
|
|
48
|
+
};
|
|
49
|
+
} ? true : false;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=traits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traits.d.ts","sourceRoot":"","sources":["../../../src/types/core/traits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,yBAAiB,MAAM,CAAC;IACtB,2CAA2C;IAC3C,KAAY,GAAG,GAAG;QAChB,SAAS,EAAE;YAAE,QAAQ,EAAE,EAAE,CAAA;SAAE,CAAC;KAC7B,CAAC;IAEF,6BAA6B;IAC7B,KAAY,EAAE,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI;QAC9C,SAAS,EAAE;YAAE,QAAQ,EAAE;iBAAG,CAAC,IAAI,KAAK,GAAG,IAAI;aAAE,CAAA;SAAE,CAAC;KACjD,CAAC;IAEF,kDAAkD;IAClD,KAAY,OAAO,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,IAAI;QAClE,SAAS,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KACjC,CAAC;IAEF,oCAAoC;IACpC,KAAY,UAAU,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS;QACtE,KAAK;KACN,GACG,EAAE,GACF,EAAE,CAAC,KAAK,CAAC,CAAC;IAEd,4BAA4B;IAC5B,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;QAClC,SAAS,EAAE;YAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;SAAE,CAAC;KACvC,GACG,MAAM,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,GAC1C,MAAM,GACN,KAAK,GACP,KAAK,CAAC;IAEV,yBAAyB;IACzB,KAAY,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;QACrC,SAAS,EAAE;YAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;SAAE,CAAC;KACvC,GACG,MAAM,MAAM,GACZ,KAAK,CAAC;IAEV,gCAAgC;IAChC,KAAY,SAAS,CACnB,CAAC,EACD,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAC1C,CAAC,SAAS;QACZ,SAAS,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;SAAE,CAAC;KAC3C,GACG,IAAI,GACJ,KAAK,CAAC;CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traits.js","sourceRoot":"","sources":["../../../src/types/core/traits.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variant metadata.
|
|
3
|
+
*
|
|
4
|
+
* Variants represent mutually exclusive states of a type.
|
|
5
|
+
*/
|
|
6
|
+
export declare namespace Variants {
|
|
7
|
+
/** Marker type for variant-bearing values */
|
|
8
|
+
type Any = {
|
|
9
|
+
__Phantom: {
|
|
10
|
+
__Variants: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
/** Declare allowed variants */
|
|
14
|
+
type Of<Variants extends string> = {
|
|
15
|
+
__Phantom: {
|
|
16
|
+
__Variants: Variants;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
/** Conditionally declare variants */
|
|
20
|
+
type OfIfExists<Variants extends string> = [Variants] extends [never] ? {} : Of<Variants>;
|
|
21
|
+
/** Extract variant union */
|
|
22
|
+
type VariantsOf<T> = T extends {
|
|
23
|
+
__Phantom: {
|
|
24
|
+
__Variants: infer Variants;
|
|
25
|
+
};
|
|
26
|
+
} ? Variants extends string ? Variants : never : never;
|
|
27
|
+
/** Check whether variants exist */
|
|
28
|
+
type HasVariants<T> = T extends {
|
|
29
|
+
__Phantom: {
|
|
30
|
+
__Variants: string;
|
|
31
|
+
};
|
|
32
|
+
} ? true : false;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/types/core/variants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,yBAAiB,QAAQ,CAAC;IACxB,6CAA6C;IAC7C,KAAY,GAAG,GAAG;QAChB,SAAS,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;KACnC,CAAC;IAEF,+BAA+B;IAC/B,KAAY,EAAE,CAAC,QAAQ,SAAS,MAAM,IAAI;QACxC,SAAS,EAAE;YAAE,UAAU,EAAE,QAAQ,CAAA;SAAE,CAAC;KACrC,CAAC;IAEF,qCAAqC;IACrC,KAAY,UAAU,CAAC,QAAQ,SAAS,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GACxE,EAAE,GACF,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEjB,4BAA4B;IAC5B,KAAY,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;QACpC,SAAS,EAAE;YAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;SAAE,CAAC;KAC3C,GACG,QAAQ,SAAS,MAAM,GACrB,QAAQ,GACR,KAAK,GACP,KAAK,CAAC;IAEV,mCAAmC;IACnC,KAAY,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;QACrC,SAAS,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;KACnC,GACG,IAAI,GACJ,KAAK,CAAC;CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.js","sourceRoot":"","sources":["../../../src/types/core/variants.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Base, Phantom } from './core';
|
|
2
|
+
/** Interface of 'Brand' and 'Identity' errors. */
|
|
3
|
+
export interface Errors<I, T> {
|
|
4
|
+
alreadyBranded: {
|
|
5
|
+
code: 'ALREADY_BRANDED';
|
|
6
|
+
message: 'Type already branded';
|
|
7
|
+
context: {
|
|
8
|
+
type: T;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
typeNotExtendBase: {
|
|
12
|
+
code: 'TYPE_NOT_EXTEND_BASE';
|
|
13
|
+
message: 'Type not extend base';
|
|
14
|
+
context: {
|
|
15
|
+
type: Phantom.StripPhantom<T>;
|
|
16
|
+
base: Base.BaseOf<I>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
transformationMismatch: {
|
|
20
|
+
code: 'TRANSFORMATION_MISMATCH';
|
|
21
|
+
message: 'Transformation mismatch';
|
|
22
|
+
context: {
|
|
23
|
+
type: T;
|
|
24
|
+
transformation: I;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
notTransformed: {
|
|
28
|
+
code: 'NOT_TRANSFORMED';
|
|
29
|
+
message: 'Type is not transformed';
|
|
30
|
+
context: {
|
|
31
|
+
type: T;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export declare const __ErrorType: unique symbol;
|
|
36
|
+
/** Unique Error type for rules validation in phantom. */
|
|
37
|
+
export type ErrorType<E> = {
|
|
38
|
+
[__ErrorType]: E;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE5C,kDAAkD;AAClD,MAAM,WAAW,MAAM,CAAC,CAAC,EAAE,CAAC;IAC1B,cAAc,EAAE;QACd,IAAI,EAAE,iBAAiB,CAAC;QACxB,OAAO,EAAE,sBAAsB,CAAC;QAChC,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,CAAC;SACT,CAAC;KACH,CAAC;IACF,iBAAiB,EAAE;QACjB,IAAI,EAAE,sBAAsB,CAAC;QAC7B,OAAO,EAAE,sBAAsB,CAAC;QAChC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACtB,CAAC;KACH,CAAC;IACF,sBAAsB,EAAE;QACtB,IAAI,EAAE,yBAAyB,CAAC;QAChC,OAAO,EAAE,yBAAyB,CAAC;QACnC,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,CAAC;YACR,cAAc,EAAE,CAAC,CAAC;SACnB,CAAC;KACH,CAAC;IACF,cAAc,EAAE;QACd,IAAI,EAAE,iBAAiB,CAAC;QACxB,OAAO,EAAE,yBAAyB,CAAC;QACnC,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,CAAC;SACT,CAAC;KACH,CAAC;CACH;AAED,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEhD,yDAAyD;AACzD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,YAAY,EACV,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,OAAO,EACP,KAAK,EACL,GAAG,EACH,KAAK,EACL,MAAM,EACN,cAAc,EACd,QAAQ,GACT,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
|