@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.
Files changed (111) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +869 -0
  3. package/dist/assertors/assertors.d.ts +86 -0
  4. package/dist/assertors/assertors.d.ts.map +1 -0
  5. package/dist/assertors/assertors.js +91 -0
  6. package/dist/assertors/assertors.js.map +1 -0
  7. package/dist/assertors/brand.d.ts +13 -0
  8. package/dist/assertors/brand.d.ts.map +1 -0
  9. package/dist/assertors/brand.js +12 -0
  10. package/dist/assertors/brand.js.map +1 -0
  11. package/dist/assertors/identity.d.ts +13 -0
  12. package/dist/assertors/identity.d.ts.map +1 -0
  13. package/dist/assertors/identity.js +12 -0
  14. package/dist/assertors/identity.js.map +1 -0
  15. package/dist/assertors/index.d.ts +2 -0
  16. package/dist/assertors/index.d.ts.map +1 -0
  17. package/dist/assertors/index.js +2 -0
  18. package/dist/assertors/index.js.map +1 -0
  19. package/dist/assertors/trait.d.ts +38 -0
  20. package/dist/assertors/trait.d.ts.map +1 -0
  21. package/dist/assertors/trait.js +37 -0
  22. package/dist/assertors/trait.js.map +1 -0
  23. package/dist/assertors/transformation.d.ts +27 -0
  24. package/dist/assertors/transformation.d.ts.map +1 -0
  25. package/dist/assertors/transformation.js +26 -0
  26. package/dist/assertors/transformation.js.map +1 -0
  27. package/dist/chain/chain.d.ts +42 -0
  28. package/dist/chain/chain.d.ts.map +1 -0
  29. package/dist/chain/chain.js +48 -0
  30. package/dist/chain/chain.js.map +1 -0
  31. package/dist/chain/index.d.ts +2 -0
  32. package/dist/chain/index.d.ts.map +1 -0
  33. package/dist/chain/index.js +2 -0
  34. package/dist/chain/index.js.map +1 -0
  35. package/dist/index.d.ts +7 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +6 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/phantom.d.ts +352 -0
  40. package/dist/phantom.d.ts.map +1 -0
  41. package/dist/phantom.js +139 -0
  42. package/dist/phantom.js.map +1 -0
  43. package/dist/types/composed/brand.d.ts +32 -0
  44. package/dist/types/composed/brand.d.ts.map +1 -0
  45. package/dist/types/composed/brand.js +2 -0
  46. package/dist/types/composed/brand.js.map +1 -0
  47. package/dist/types/composed/helpers.d.ts +75 -0
  48. package/dist/types/composed/helpers.d.ts.map +1 -0
  49. package/dist/types/composed/helpers.js +2 -0
  50. package/dist/types/composed/helpers.js.map +1 -0
  51. package/dist/types/composed/identity.d.ts +37 -0
  52. package/dist/types/composed/identity.d.ts.map +1 -0
  53. package/dist/types/composed/identity.js +2 -0
  54. package/dist/types/composed/identity.js.map +1 -0
  55. package/dist/types/composed/index.d.ts +6 -0
  56. package/dist/types/composed/index.d.ts.map +1 -0
  57. package/dist/types/composed/index.js +2 -0
  58. package/dist/types/composed/index.js.map +1 -0
  59. package/dist/types/composed/trait.d.ts +35 -0
  60. package/dist/types/composed/trait.d.ts.map +1 -0
  61. package/dist/types/composed/trait.js +2 -0
  62. package/dist/types/composed/trait.js.map +1 -0
  63. package/dist/types/composed/transformation.d.ts +34 -0
  64. package/dist/types/composed/transformation.d.ts.map +1 -0
  65. package/dist/types/composed/transformation.js +2 -0
  66. package/dist/types/composed/transformation.js.map +1 -0
  67. package/dist/types/core/base.d.ts +35 -0
  68. package/dist/types/core/base.d.ts.map +1 -0
  69. package/dist/types/core/base.js +2 -0
  70. package/dist/types/core/base.js.map +1 -0
  71. package/dist/types/core/index.d.ts +8 -0
  72. package/dist/types/core/index.d.ts.map +1 -0
  73. package/dist/types/core/index.js +2 -0
  74. package/dist/types/core/index.js.map +1 -0
  75. package/dist/types/core/input.d.ts +38 -0
  76. package/dist/types/core/input.d.ts.map +1 -0
  77. package/dist/types/core/input.js +2 -0
  78. package/dist/types/core/input.js.map +1 -0
  79. package/dist/types/core/label.d.ts +34 -0
  80. package/dist/types/core/label.d.ts.map +1 -0
  81. package/dist/types/core/label.js +2 -0
  82. package/dist/types/core/label.js.map +1 -0
  83. package/dist/types/core/phantom.d.ts +20 -0
  84. package/dist/types/core/phantom.d.ts.map +1 -0
  85. package/dist/types/core/phantom.js +11 -0
  86. package/dist/types/core/phantom.js.map +1 -0
  87. package/dist/types/core/tag.d.ts +35 -0
  88. package/dist/types/core/tag.d.ts.map +1 -0
  89. package/dist/types/core/tag.js +2 -0
  90. package/dist/types/core/tag.js.map +1 -0
  91. package/dist/types/core/traits.d.ts +51 -0
  92. package/dist/types/core/traits.d.ts.map +1 -0
  93. package/dist/types/core/traits.js +2 -0
  94. package/dist/types/core/traits.js.map +1 -0
  95. package/dist/types/core/variants.d.ts +34 -0
  96. package/dist/types/core/variants.d.ts.map +1 -0
  97. package/dist/types/core/variants.js +2 -0
  98. package/dist/types/core/variants.js.map +1 -0
  99. package/dist/types/errors.d.ts +40 -0
  100. package/dist/types/errors.d.ts.map +1 -0
  101. package/dist/types/errors.js +2 -0
  102. package/dist/types/errors.js.map +1 -0
  103. package/dist/types/index.d.ts +4 -0
  104. package/dist/types/index.d.ts.map +1 -0
  105. package/dist/types/index.js +2 -0
  106. package/dist/types/index.js.map +1 -0
  107. package/dist/types/public.d.ts +224 -0
  108. package/dist/types/public.d.ts.map +1 -0
  109. package/dist/types/public.js +12 -0
  110. package/dist/types/public.js.map +1 -0
  111. package/package.json +57 -0
@@ -0,0 +1,224 @@
1
+ import type { Brand as NamespaceBrand, Identity as NamespaceIdentity, Trait as NamespaceTrait, Transformation as NamespaceTransformation } from './composed';
2
+ import type { Base as NamespaceBase, Input as NamespaceInput, Label as NamespaceLabel, Tag as NamespaceTag, Traits as NamespaceTraits, Variants as NamespaceVariants } from './core';
3
+ import { Phantom as NamespacePhantom } from './core';
4
+ /**
5
+ * Phantom meatadata object manipulators.
6
+ *
7
+ * Phantom matadata object holds all metadata used by 'phantom'.
8
+ */
9
+ export declare namespace Phantom {
10
+ /** Get phantom metadata object from a type */
11
+ type PhantomOf<T> = NamespacePhantom.PhantomOf<T>;
12
+ /** Stip phantom metadata object from a type */
13
+ type StripPhantom<T> = NamespacePhantom.StripPhantom<T>;
14
+ /** run-time helper for 'StringPhantom', used for debugging mainly */
15
+ const stripPhantom: <T>(value: T) => NamespacePhantom.StripPhantom<T>;
16
+ }
17
+ /**
18
+ * Optional human-readable label metadata.
19
+ *
20
+ * Labels are descriptive only and do not affect identity.
21
+ */
22
+ export declare namespace Label {
23
+ /** Marker type for labeled values */
24
+ type Any = NamespaceLabel.Any;
25
+ /** Extract the label */
26
+ type LabelOf<T> = NamespaceLabel.LabelOf<T>;
27
+ /** Check whether a label exists */
28
+ type HasLabel<T, L extends string = string> = NamespaceLabel.HasLabel<T, L>;
29
+ }
30
+ /**
31
+ * Nominal tag metadata.
32
+ *
33
+ * Tags uniquely identify a branded or identified type.
34
+ * A value may only have a single tag.
35
+ */
36
+ export declare namespace Tag {
37
+ /** Marker type for any tagged value */
38
+ type Any = NamespaceTag.Any;
39
+ /** Extract the tag from a type */
40
+ type TagOf<T> = NamespaceTag.TagOf<T>;
41
+ /** Check whether a type is tagged */
42
+ type HasTag<T, Ta extends string | symbol = string | symbol> = NamespaceTag.HasTag<T, Ta>;
43
+ }
44
+ /**
45
+ * Variant metadata.
46
+ *
47
+ * Variants represent mutually exclusive states of a type.
48
+ */
49
+ export declare namespace Variants {
50
+ /** Marker type for variant-bearing values */
51
+ type Any = NamespaceVariants.Any;
52
+ /** Extract variant union */
53
+ type VariantsOf<T> = NamespaceVariants.VariantsOf<T>;
54
+ /** Check whether variants exist */
55
+ type HasVariants<T> = NamespaceVariants.HasVariants<T>;
56
+ }
57
+ /**
58
+ * Base-type metadata.
59
+ *
60
+ * Used to constrain which runtime types a brand, identity,
61
+ * or transformation may be applied to.
62
+ */
63
+ export declare namespace Base {
64
+ /** Marker type for base constraints */
65
+ type Any = NamespaceBase.Any;
66
+ /** Extract the base type */
67
+ type BaseOf<T> = NamespaceBase.BaseOf<T>;
68
+ /** Check whether a base constraint exists */
69
+ type HasBase<T, B = unknown> = NamespaceBase.HasBase<T, B>;
70
+ }
71
+ /**
72
+ * Input metadata.
73
+ *
74
+ * Utilities for attaching and querying input metadata in transformations.
75
+ */
76
+ export declare namespace Input {
77
+ /** Marker type for input value */
78
+ type Any = NamespaceInput.Any;
79
+ /** Extract the input */
80
+ type InputOf<T> = NamespaceInput.InputOf<T>;
81
+ /** Check whether an input exists */
82
+ type HasInput<T, I = unknown> = NamespaceInput.HasInput<T, I>;
83
+ }
84
+ /**
85
+ * Trait metadata.
86
+ *
87
+ * Traits behave like a set of capabilities that can be
88
+ * added or removed independently.
89
+ */
90
+ export declare namespace Traits {
91
+ /** Marker type for trait-bearing values */
92
+ type Any = NamespaceTraits.Any;
93
+ /** Extract the trait map */
94
+ type TraitsOf<T> = NamespaceTraits.TraitsOf<T>;
95
+ /** Extract trait keys */
96
+ type TraitKeysOf<T> = NamespaceTraits.TraitKeysOf<T>;
97
+ /** Check if any traits exist */
98
+ type HasTraits<T, Tr extends string | symbol = string | symbol> = NamespaceTraits.HasTraits<T, Tr>;
99
+ }
100
+ /**
101
+ * Branding API.
102
+ *
103
+ * Brands provide nominal typing for otherwise identical values.
104
+ * A value may only be branded once.
105
+ */
106
+ export declare namespace Brand {
107
+ /** Type guard for any brand. */
108
+ type Any = NamespaceBrand.Any;
109
+ /** Declare a brand */
110
+ type Declare<T extends string | symbol, L extends string = never> = NamespaceBrand.Declare<T, L>;
111
+ /** Assign a brand to a value. Fails if the value is already branded */
112
+ type Assign<B extends Any, T> = NamespaceBrand.Assign<B, T>;
113
+ /** Assign a brand if possible, otherwise return the original type */
114
+ type AssignSafe<B extends Any, T> = NamespaceBrand.AssignSafe<B, T>;
115
+ /** Check whether value is branded with */
116
+ type isBrand<T, B extends Any> = NamespaceBrand.isBrand<T, B>;
117
+ }
118
+ /**
119
+ * Identity API.
120
+ *
121
+ * Identities are brands with additional constraints:
122
+ * - Base type
123
+ * - Variants
124
+ */
125
+ export declare namespace Identity {
126
+ /** Type guard for any identity. */
127
+ type Any = NamespaceIdentity.Any;
128
+ /** Declare an identity */
129
+ type Declare<T extends string | symbol, L extends string = never, B extends unknown = never, V extends string = never> = NamespaceIdentity.Declare<T, L, B, V>;
130
+ /** Assign an identity to a value. Enforces base-type compatibility */
131
+ type Assign<I extends Any, T> = NamespaceIdentity.Assign<I, T>;
132
+ /** Safe identity assignment */
133
+ type AssignSafe<I extends Any, T> = NamespaceIdentity.AssignSafe<I, T>;
134
+ /** Set the active variant on an identity */
135
+ type WithVariant<I extends Any, V extends Variants.VariantsOf<I>> = NamespaceIdentity.WithVariant<I, V>;
136
+ /** Set the active variant on a value */
137
+ type WithTypeVariant<T, V extends Variants.VariantsOf<T>> = NamespaceIdentity.WithTypeVariant<T, V>;
138
+ /** Check whether value is branded with */
139
+ type isIdentity<T, I extends Any> = NamespaceIdentity.isIdentity<T, I>;
140
+ }
141
+ /**
142
+ * Trait API.
143
+ *
144
+ * Traits are additive capabilities that can be attached
145
+ * or removed independently.
146
+ */
147
+ export declare namespace Trait {
148
+ /** Type guard for any trait. */
149
+ type Any = NamespaceTrait.Any;
150
+ /** Declare a trait */
151
+ type Declare<Tr extends string | symbol> = NamespaceTrait.Declare<Tr>;
152
+ /** Add a trait */
153
+ type Add<Tr extends Any, T> = NamespaceTrait.Add<Tr, T>;
154
+ /** Add multiple traits */
155
+ type AddMulti<Tr extends readonly Any[], T> = NamespaceTrait.AddMulti<Tr, T>;
156
+ /** Remove a trait */
157
+ type Drop<Tr extends Any, T> = NamespaceTrait.Drop<Tr, T>;
158
+ /** Remove multiple traits */
159
+ type DropMulti<Tr extends readonly Any[], T> = NamespaceTrait.DropMulti<Tr, T>;
160
+ /** Check whether value has trait */
161
+ type HasTrait<T, Tr extends Any> = NamespaceTrait.HasTrait<T, Tr>;
162
+ }
163
+ /**
164
+ * Transformation API.
165
+ *
166
+ * Transformations represent reversible operations that
167
+ * change the shape of a value while preserving its origin.
168
+ */
169
+ export declare namespace Transformation {
170
+ /** Type guard for any transformation. */
171
+ type Any = NamespaceTransformation.Any;
172
+ /** Declare a transformation */
173
+ type Declare<I, T extends string | symbol, L extends string = never, B extends unknown = never, V extends string = never> = NamespaceTransformation.Declare<I, T, L, B, V>;
174
+ /** Apply a transformation to a value. Enforces base-type compatibility */
175
+ type Apply<Tr extends Any, I, T> = NamespaceTransformation.Apply<Tr, I, T>;
176
+ /** Revert a transformation */
177
+ type Revert<Tr extends Any, T, I> = NamespaceTransformation.Revert<Tr, T, I>;
178
+ /** Revert a transformation whatever transformation was */
179
+ type RevertAny<T, I> = NamespaceTransformation.RevertAny<T, I>;
180
+ /** Check whether value is transformed with */
181
+ type isTransformed<T, Tr extends Any> = NamespaceTransformation.isTransformed<T, Tr>;
182
+ }
183
+ /**
184
+ * Inspect API.
185
+ *
186
+ * Inspection helpers of phantom types.
187
+ */
188
+ export declare namespace Inspect {
189
+ /** Extract the label */
190
+ type LabelOf<T> = NamespaceLabel.LabelOf<T>;
191
+ /** Check whether a base constraint exists */
192
+ type HasLabel<T, L extends string = string> = NamespaceLabel.HasLabel<T, L>;
193
+ /** Extract the tag from a type */
194
+ type TagOf<T> = NamespaceTag.TagOf<T>;
195
+ /** Check whether a type is tagged */
196
+ type HasTag<T, Ta extends string | symbol = string | symbol> = NamespaceTag.HasTag<T, Ta>;
197
+ /** Extract variant union */
198
+ type VariantsOf<T> = NamespaceVariants.VariantsOf<T>;
199
+ /** Check whether variants exist */
200
+ type HasVariants<T> = NamespaceVariants.HasVariants<T>;
201
+ /** Extract the base type */
202
+ type BaseOf<T> = NamespaceBase.BaseOf<T>;
203
+ /** Check whether a base constraint exists */
204
+ type HasBase<T, B = unknown> = NamespaceBase.HasBase<T, B>;
205
+ /** Extract the input */
206
+ type InputOf<T> = NamespaceInput.InputOf<T>;
207
+ /** Check whether an input exists */
208
+ type HasInput<T, I = unknown> = NamespaceInput.HasInput<T, I>;
209
+ /** Extract the trait map */
210
+ type TraitsOf<T> = NamespaceTraits.TraitsOf<T>;
211
+ /** Extract trait keys */
212
+ type TraitKeysOf<T> = NamespaceTraits.TraitKeysOf<T>;
213
+ /** Check if any traits exist */
214
+ type HasTraits<T> = NamespaceTraits.HasTraits<T>;
215
+ /** Check whether value is branded with */
216
+ type isBrand<T, B extends Brand.Any> = NamespaceBrand.isBrand<T, B>;
217
+ /** Check whether value is branded with */
218
+ type isIdentity<T, I extends Identity.Any> = NamespaceIdentity.isIdentity<T, I>;
219
+ /** Check whether value has trait */
220
+ type HasTrait<T, Tr extends Trait.Any> = NamespaceTrait.HasTrait<T, Tr>;
221
+ /** Check whether value is transformed with */
222
+ type isTransformed<T, Tr extends Transformation.Any> = NamespaceTransformation.isTransformed<T, Tr>;
223
+ }
224
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Phantom as NamespacePhantom } from './core';
2
+ /**
3
+ * Phantom meatadata object manipulators.
4
+ *
5
+ * Phantom matadata object holds all metadata used by 'phantom'.
6
+ */
7
+ export var Phantom;
8
+ (function (Phantom) {
9
+ /** run-time helper for 'StringPhantom', used for debugging mainly */
10
+ Phantom.stripPhantom = NamespacePhantom.stripPhantom;
11
+ })(Phantom || (Phantom = {}));
12
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAErD;;;;GAIG;AACH,MAAM,KAAW,OAAO,CAOvB;AAPD,WAAiB,OAAO;IAKtB,qEAAqE;IACxD,oBAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;AAC5D,CAAC,EAPgB,OAAO,KAAP,OAAO,QAOvB"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@vicin/phantom",
3
+ "version": "1.0.1",
4
+ "description": "Powerful, lightweight TypeScript library for nominal typing.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/ZiadTaha62/phantom.git"
13
+ },
14
+ "homepage": "https://github.com/ZiadTaha62/phantom#readme",
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "lint": "eslint --fix",
18
+ "format": "prettier --write",
19
+ "test": "jest tests && tsd",
20
+ "test:unit": "jest tests/unit --coverage",
21
+ "test:types": "tsd",
22
+ "prepublishOnly": "npm run build && npm run test:unit && npm run test:types"
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "README.md"
27
+ ],
28
+ "tsd": {
29
+ "directory": "tests/types",
30
+ "compilerOptions": {
31
+ "strict": true,
32
+ "esModuleInterop": true,
33
+ "moduleResolution": "node"
34
+ }
35
+ },
36
+ "keywords": [
37
+ "typescript",
38
+ "nominal-typing",
39
+ "ddd"
40
+ ],
41
+ "author": "Ziad ziadtaha62@gmail.com",
42
+ "license": "MIT",
43
+ "devDependencies": {
44
+ "@types/jest": "^30.0.0",
45
+ "@typescript-eslint/eslint-plugin": "^8.54.0",
46
+ "@typescript-eslint/parser": "^8.54.0",
47
+ "eslint": "^9.39.2",
48
+ "eslint-config-prettier": "^10.1.8",
49
+ "eslint-plugin-prettier": "^5.5.5",
50
+ "globals": "^17.3.0",
51
+ "jest": "^30.2.0",
52
+ "prettier": "^3.8.1",
53
+ "ts-jest": "^29.4.6",
54
+ "tsd": "^0.33.0",
55
+ "typescript": "^5.9.3"
56
+ }
57
+ }