@kontor/kontor-sdk 1.0.0-alpha.39 → 1.0.0-alpha.40
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/README.md +1 -1
- package/dist/cjs/sdk/actions/kontor/public/call-view.js.map +1 -1
- package/dist/cjs/sdk/chains/definitions/signet.js +2 -2
- package/dist/cjs/sdk/test/e2e.test-deprecated.js +2 -0
- package/dist/cjs/sdk/test/e2e.test-deprecated.js.map +1 -0
- package/dist/cjs/sdk/utils/wit/codecs/bool.js +9 -21
- package/dist/cjs/sdk/utils/wit/codecs/bool.js.map +1 -1
- package/dist/cjs/sdk/utils/wit/codecs/contract-address.js +92 -0
- package/dist/cjs/sdk/utils/wit/codecs/contract-address.js.map +1 -0
- package/dist/cjs/sdk/utils/wit/codecs/index.js +29 -0
- package/dist/cjs/sdk/utils/wit/codecs/index.js.map +1 -0
- package/dist/cjs/sdk/utils/wit/codecs/list.js +21 -95
- package/dist/cjs/sdk/utils/wit/codecs/list.js.map +1 -1
- package/dist/cjs/sdk/utils/wit/codecs/numerics.js +228 -0
- package/dist/cjs/sdk/utils/wit/codecs/numerics.js.map +1 -0
- package/dist/cjs/sdk/utils/wit/codecs/option.js +21 -72
- package/dist/cjs/sdk/utils/wit/codecs/option.js.map +1 -1
- package/dist/cjs/sdk/utils/wit/codecs/result.js +32 -0
- package/dist/cjs/sdk/utils/wit/codecs/result.js.map +1 -0
- package/dist/cjs/sdk/utils/wit/codecs/string.js +16 -21
- package/dist/cjs/sdk/utils/wit/codecs/string.js.map +1 -1
- package/dist/cjs/sdk/utils/wit/codecs/unit.js +11 -19
- package/dist/cjs/sdk/utils/wit/codecs/unit.js.map +1 -1
- package/dist/cjs/sdk/utils/wit/codecs/util.js +185 -0
- package/dist/cjs/sdk/utils/wit/codecs/util.js.map +1 -0
- package/dist/cjs/sdk/utils/wit/decode-wit-parameter.js +297 -163
- package/dist/cjs/sdk/utils/wit/decode-wit-parameter.js.map +1 -1
- package/dist/cjs/sdk/utils/wit/encode-wit-parameters.js +214 -221
- package/dist/cjs/sdk/utils/wit/encode-wit-parameters.js.map +1 -1
- package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
- package/dist/cjs/wit/built-ins.js +19 -0
- package/dist/cjs/wit/built-ins.js.map +1 -0
- package/dist/cjs/wit/regex.js +1 -1
- package/dist/cjs/wit/regex.js.map +1 -1
- package/dist/cjs/wit/wit-parser/core/errors/signature.js +17 -2
- package/dist/cjs/wit/wit-parser/core/errors/signature.js.map +1 -1
- package/dist/cjs/wit/wit-parser/core/signatures.js +18 -0
- package/dist/cjs/wit/wit-parser/core/signatures.js.map +1 -1
- package/dist/cjs/wit/wit-parser/core/types/{records.js → user-defined.js} +1 -1
- package/dist/cjs/wit/wit-parser/core/types/user-defined.js.map +1 -0
- package/dist/cjs/wit/wit-parser/core/user-defined.js +271 -0
- package/dist/cjs/wit/wit-parser/core/user-defined.js.map +1 -0
- package/dist/cjs/wit/wit-parser/core/utils.js +29 -7
- package/dist/cjs/wit/wit-parser/core/utils.js.map +1 -1
- package/dist/cjs/wit/wit-parser/parse-wit-parameter.js +9 -3
- package/dist/cjs/wit/wit-parser/parse-wit-parameter.js.map +1 -1
- package/dist/cjs/wit/wit-parser/parse-wit.js +7 -3
- package/dist/cjs/wit/wit-parser/parse-wit.js.map +1 -1
- package/dist/esm/sdk/actions/kontor/public/call-view.js.map +1 -1
- package/dist/esm/sdk/chains/definitions/signet.js +2 -2
- package/dist/esm/sdk/test/e2e.test-deprecated.js +197 -0
- package/dist/esm/sdk/test/e2e.test-deprecated.js.map +1 -0
- package/dist/esm/sdk/utils/wit/codecs/bool.js +9 -21
- package/dist/esm/sdk/utils/wit/codecs/bool.js.map +1 -1
- package/dist/esm/sdk/utils/wit/codecs/contract-address.js +92 -0
- package/dist/esm/sdk/utils/wit/codecs/contract-address.js.map +1 -0
- package/dist/esm/sdk/utils/wit/codecs/index.js +9 -0
- package/dist/esm/sdk/utils/wit/codecs/index.js.map +1 -0
- package/dist/esm/sdk/utils/wit/codecs/list.js +20 -114
- package/dist/esm/sdk/utils/wit/codecs/list.js.map +1 -1
- package/dist/esm/sdk/utils/wit/codecs/numerics.js +234 -0
- package/dist/esm/sdk/utils/wit/codecs/numerics.js.map +1 -0
- package/dist/esm/sdk/utils/wit/codecs/option.js +21 -88
- package/dist/esm/sdk/utils/wit/codecs/option.js.map +1 -1
- package/dist/esm/sdk/utils/wit/codecs/result.js +29 -0
- package/dist/esm/sdk/utils/wit/codecs/result.js.map +1 -0
- package/dist/esm/sdk/utils/wit/codecs/string.js +22 -22
- package/dist/esm/sdk/utils/wit/codecs/string.js.map +1 -1
- package/dist/esm/sdk/utils/wit/codecs/unit.js +12 -21
- package/dist/esm/sdk/utils/wit/codecs/unit.js.map +1 -1
- package/dist/esm/sdk/utils/wit/codecs/util.js +181 -0
- package/dist/esm/sdk/utils/wit/codecs/util.js.map +1 -0
- package/dist/esm/sdk/utils/wit/decode-wit-parameter.js +322 -188
- package/dist/esm/sdk/utils/wit/decode-wit-parameter.js.map +1 -1
- package/dist/esm/sdk/utils/wit/encode-wit-parameters.js +230 -233
- package/dist/esm/sdk/utils/wit/encode-wit-parameters.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/wit/built-ins.js +16 -0
- package/dist/esm/wit/built-ins.js.map +1 -0
- package/dist/esm/wit/regex.js +1 -1
- package/dist/esm/wit/regex.js.map +1 -1
- package/dist/esm/wit/wit-parser/core/errors/signature.js +15 -1
- package/dist/esm/wit/wit-parser/core/errors/signature.js.map +1 -1
- package/dist/esm/wit/wit-parser/core/signatures.js +14 -0
- package/dist/esm/wit/wit-parser/core/signatures.js.map +1 -1
- package/dist/esm/wit/wit-parser/core/types/signatures.js.map +1 -1
- package/dist/esm/wit/wit-parser/core/types/user-defined.js +2 -0
- package/dist/esm/wit/wit-parser/core/types/user-defined.js.map +1 -0
- package/dist/esm/wit/wit-parser/core/types/utils.js +25 -0
- package/dist/esm/wit/wit-parser/core/types/utils.js.map +1 -1
- package/dist/esm/wit/wit-parser/core/user-defined.js +280 -0
- package/dist/esm/wit/wit-parser/core/user-defined.js.map +1 -0
- package/dist/esm/wit/wit-parser/core/utils.js +33 -36
- package/dist/esm/wit/wit-parser/core/utils.js.map +1 -1
- package/dist/esm/wit/wit-parser/parse-wit-parameter.js +10 -4
- package/dist/esm/wit/wit-parser/parse-wit-parameter.js.map +1 -1
- package/dist/esm/wit/wit-parser/parse-wit.js +8 -4
- package/dist/esm/wit/wit-parser/parse-wit.js.map +1 -1
- package/dist/types/sdk/actions/kontor/public/call-view.d.ts +2 -1
- package/dist/types/sdk/actions/kontor/public/call-view.d.ts.map +1 -1
- package/dist/types/sdk/chains/definitions/signet.d.ts +2 -2
- package/dist/types/sdk/test/e2e.test-deprecated.d.ts +2 -0
- package/dist/types/sdk/test/e2e.test-deprecated.d.ts.map +1 -0
- package/dist/types/sdk/types/contract.d.ts +5 -5
- package/dist/types/sdk/types/contract.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/codecs/bool.d.ts +2 -2
- package/dist/types/sdk/utils/wit/codecs/bool.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/codecs/contract-address.d.ts +5 -0
- package/dist/types/sdk/utils/wit/codecs/contract-address.d.ts.map +1 -0
- package/dist/types/sdk/utils/wit/codecs/index.d.ts +9 -0
- package/dist/types/sdk/utils/wit/codecs/index.d.ts.map +1 -0
- package/dist/types/sdk/utils/wit/codecs/list.d.ts +2 -16
- package/dist/types/sdk/utils/wit/codecs/list.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/codecs/numerics.d.ts +14 -0
- package/dist/types/sdk/utils/wit/codecs/numerics.d.ts.map +1 -0
- package/dist/types/sdk/utils/wit/codecs/option.d.ts +3 -23
- package/dist/types/sdk/utils/wit/codecs/option.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/codecs/result.d.ts +4 -0
- package/dist/types/sdk/utils/wit/codecs/result.d.ts.map +1 -0
- package/dist/types/sdk/utils/wit/codecs/string.d.ts +6 -2
- package/dist/types/sdk/utils/wit/codecs/string.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/codecs/types.d.ts +4 -0
- package/dist/types/sdk/utils/wit/codecs/types.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/codecs/unit.d.ts +2 -11
- package/dist/types/sdk/utils/wit/codecs/unit.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/codecs/util.d.ts +12 -0
- package/dist/types/sdk/utils/wit/codecs/util.d.ts.map +1 -0
- package/dist/types/sdk/utils/wit/decode-wit-parameter.d.ts +9 -31
- package/dist/types/sdk/utils/wit/decode-wit-parameter.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/encode-wit-parameters.d.ts +9 -1
- package/dist/types/sdk/utils/wit/encode-wit-parameters.d.ts.map +1 -1
- package/dist/types/wit/built-ins.d.ts +6 -0
- package/dist/types/wit/built-ins.d.ts.map +1 -0
- package/dist/types/wit/regex.d.ts.map +1 -1
- package/dist/types/wit/utils.d.ts +53 -33
- package/dist/types/wit/utils.d.ts.map +1 -1
- package/dist/types/wit/wit-parser/core/errors/signature.d.ts +7 -1
- package/dist/types/wit/wit-parser/core/errors/signature.d.ts.map +1 -1
- package/dist/types/wit/wit-parser/core/signatures.d.ts +10 -0
- package/dist/types/wit/wit-parser/core/signatures.d.ts.map +1 -1
- package/dist/types/wit/wit-parser/core/types/signatures.d.ts +6 -2
- package/dist/types/wit/wit-parser/core/types/signatures.d.ts.map +1 -1
- package/dist/types/wit/wit-parser/core/types/user-defined.d.ts +134 -0
- package/dist/types/wit/wit-parser/core/types/user-defined.d.ts.map +1 -0
- package/dist/types/wit/wit-parser/core/types/utils.d.ts +86 -11
- package/dist/types/wit/wit-parser/core/types/utils.d.ts.map +1 -1
- package/dist/types/wit/wit-parser/core/user-defined.d.ts +19 -0
- package/dist/types/wit/wit-parser/core/user-defined.d.ts.map +1 -0
- package/dist/types/wit/wit-parser/core/utils.d.ts +8 -4
- package/dist/types/wit/wit-parser/core/utils.d.ts.map +1 -1
- package/dist/types/wit/wit-parser/parse-wit-parameter.d.ts +11 -5
- package/dist/types/wit/wit-parser/parse-wit-parameter.d.ts.map +1 -1
- package/dist/types/wit/wit-parser/parse-wit.d.ts +7 -3
- package/dist/types/wit/wit-parser/parse-wit.d.ts.map +1 -1
- package/dist/types/wit/wit.d.ts +20 -12
- package/dist/types/wit/wit.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/sdk/actions/get-contract.test-d.ts +430 -50
- package/src/sdk/actions/get-contract.test.ts +324 -24
- package/src/sdk/actions/kontor/public/call-view.ts +2 -1
- package/src/sdk/actions/kontor/public/proc-contract.test-d.ts +107 -0
- package/src/sdk/actions/kontor/public/proc-contract.test.ts +234 -21
- package/src/sdk/actions/kontor/public/view-contract.test-d.ts +240 -0
- package/src/sdk/actions/kontor/public/view-contract.test.ts +613 -18
- package/src/sdk/chains/definitions/signet.ts +2 -2
- package/src/sdk/clients/base/create-rpc-client.test.ts +2 -2
- package/src/sdk/clients/create-public-client.test.ts +2 -2
- package/src/sdk/clients/kontor/create-public-client.test.ts +2 -2
- package/src/sdk/clients/transports/http-rpc.test.ts +0 -24
- package/src/sdk/test/e2e.test-deprecated.ts +195 -0
- package/src/sdk/types/contract.test-d.ts +489 -55
- package/src/sdk/types/contract.ts +6 -7
- package/src/sdk/utils/wit/codecs/bool.test.ts +29 -0
- package/src/sdk/utils/wit/codecs/bool.ts +10 -25
- package/src/sdk/utils/wit/codecs/contract-address.test.ts +37 -0
- package/src/sdk/utils/wit/codecs/contract-address.ts +114 -0
- package/src/sdk/utils/wit/codecs/index.ts +20 -0
- package/src/sdk/utils/wit/codecs/list.test-d.ts +13 -0
- package/src/sdk/utils/wit/codecs/list.test.ts +55 -0
- package/src/sdk/utils/wit/codecs/list.ts +21 -150
- package/src/sdk/utils/wit/codecs/numerics.test.ts +399 -0
- package/src/sdk/utils/wit/codecs/numerics.ts +304 -0
- package/src/sdk/utils/wit/codecs/option.test.ts +71 -0
- package/src/sdk/utils/wit/codecs/option.ts +21 -120
- package/src/sdk/utils/wit/codecs/result.test.ts +82 -0
- package/src/sdk/utils/wit/codecs/result.ts +37 -0
- package/src/sdk/utils/wit/codecs/string.test.ts +62 -0
- package/src/sdk/utils/wit/codecs/string.ts +23 -25
- package/src/sdk/utils/wit/codecs/types.ts +5 -0
- package/src/sdk/utils/wit/codecs/unit.test.ts +27 -0
- package/src/sdk/utils/wit/codecs/unit.ts +14 -38
- package/src/sdk/utils/wit/codecs/util.test.ts +221 -0
- package/src/sdk/utils/wit/codecs/util.ts +193 -0
- package/src/sdk/utils/wit/decode-wit-parameter.test.ts +1264 -32
- package/src/sdk/utils/wit/decode-wit-parameter.ts +508 -211
- package/src/sdk/utils/wit/encode-wit-parameters.test.ts +955 -91
- package/src/sdk/utils/wit/encode-wit-parameters.ts +277 -274
- package/src/sdk/utils/wit/get-wit-item.test.ts +1 -1
- package/src/wit/built-ins.ts +23 -0
- package/src/wit/regex.ts +1 -1
- package/src/wit/utils.ts +120 -74
- package/src/wit/wit-parser/core/errors/signature.ts +13 -2
- package/src/wit/wit-parser/core/signatures.ts +28 -0
- package/src/wit/wit-parser/core/types/signatures.test-d.ts +21 -0
- package/src/wit/wit-parser/core/types/signatures.ts +19 -2
- package/src/wit/wit-parser/core/types/user-defined.test-d.ts +1308 -0
- package/src/wit/wit-parser/core/types/user-defined.ts +412 -0
- package/src/wit/wit-parser/core/types/utils.test-d.ts +43 -2
- package/src/wit/wit-parser/core/types/utils.ts +143 -14
- package/src/wit/wit-parser/core/user-defined.test.ts +609 -0
- package/src/wit/wit-parser/core/user-defined.ts +392 -0
- package/src/wit/wit-parser/core/utils.test.ts +334 -115
- package/src/wit/wit-parser/core/utils.ts +54 -38
- package/src/wit/wit-parser/parse-wit-parameter.test.ts +282 -4
- package/src/wit/wit-parser/parse-wit-parameter.ts +37 -11
- package/src/wit/wit-parser/parse-wit.test.ts +738 -12
- package/src/wit/wit-parser/parse-wit.ts +25 -10
- package/src/wit/wit.ts +37 -16
- package/vitest.config.ts +5 -0
- package/dist/cjs/sdk/utils/wit/codecs/decimal.js +0 -148
- package/dist/cjs/sdk/utils/wit/codecs/decimal.js.map +0 -1
- package/dist/cjs/sdk/utils/wit/codecs/enum.js +0 -94
- package/dist/cjs/sdk/utils/wit/codecs/enum.js.map +0 -1
- package/dist/cjs/sdk/utils/wit/codecs/integer.js +0 -125
- package/dist/cjs/sdk/utils/wit/codecs/integer.js.map +0 -1
- package/dist/cjs/sdk/utils/wit/codecs/s64.js +0 -57
- package/dist/cjs/sdk/utils/wit/codecs/s64.js.map +0 -1
- package/dist/cjs/sdk/utils/wit/codecs/u64.js +0 -56
- package/dist/cjs/sdk/utils/wit/codecs/u64.js.map +0 -1
- package/dist/cjs/wit/wit-parser/core/records.js +0 -70
- package/dist/cjs/wit/wit-parser/core/records.js.map +0 -1
- package/dist/cjs/wit/wit-parser/core/types/records.js.map +0 -1
- package/dist/esm/sdk/utils/wit/codecs/decimal.js +0 -165
- package/dist/esm/sdk/utils/wit/codecs/decimal.js.map +0 -1
- package/dist/esm/sdk/utils/wit/codecs/enum.js +0 -104
- package/dist/esm/sdk/utils/wit/codecs/enum.js.map +0 -1
- package/dist/esm/sdk/utils/wit/codecs/integer.js +0 -167
- package/dist/esm/sdk/utils/wit/codecs/integer.js.map +0 -1
- package/dist/esm/sdk/utils/wit/codecs/s64.js +0 -65
- package/dist/esm/sdk/utils/wit/codecs/s64.js.map +0 -1
- package/dist/esm/sdk/utils/wit/codecs/u64.js +0 -63
- package/dist/esm/sdk/utils/wit/codecs/u64.js.map +0 -1
- package/dist/esm/wit/wit-parser/core/records.js +0 -73
- package/dist/esm/wit/wit-parser/core/records.js.map +0 -1
- package/dist/esm/wit/wit-parser/core/types/records.js +0 -2
- package/dist/esm/wit/wit-parser/core/types/records.js.map +0 -1
- package/dist/types/sdk/utils/wit/codecs/decimal.d.ts +0 -42
- package/dist/types/sdk/utils/wit/codecs/decimal.d.ts.map +0 -1
- package/dist/types/sdk/utils/wit/codecs/enum.d.ts +0 -49
- package/dist/types/sdk/utils/wit/codecs/enum.d.ts.map +0 -1
- package/dist/types/sdk/utils/wit/codecs/integer.d.ts +0 -36
- package/dist/types/sdk/utils/wit/codecs/integer.d.ts.map +0 -1
- package/dist/types/sdk/utils/wit/codecs/s64.d.ts +0 -23
- package/dist/types/sdk/utils/wit/codecs/s64.d.ts.map +0 -1
- package/dist/types/sdk/utils/wit/codecs/u64.d.ts +0 -23
- package/dist/types/sdk/utils/wit/codecs/u64.d.ts.map +0 -1
- package/dist/types/wit/wit-parser/core/records.d.ts +0 -4
- package/dist/types/wit/wit-parser/core/records.d.ts.map +0 -1
- package/dist/types/wit/wit-parser/core/types/records.d.ts +0 -51
- package/dist/types/wit/wit-parser/core/types/records.d.ts.map +0 -1
- package/src/sdk/test/e2e.test.ts +0 -194
- package/src/sdk/utils/wit/codecs/decimal.ts +0 -215
- package/src/sdk/utils/wit/codecs/enum.ts +0 -114
- package/src/sdk/utils/wit/codecs/integer.ts +0 -193
- package/src/sdk/utils/wit/codecs/s64.ts +0 -76
- package/src/sdk/utils/wit/codecs/u64.ts +0 -73
- package/src/wit/wit-parser/core/records.test.ts +0 -69
- package/src/wit/wit-parser/core/records.ts +0 -101
- package/src/wit/wit-parser/core/types/records.test-d.ts +0 -331
- package/src/wit/wit-parser/core/types/records.ts +0 -91
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Error_ } from "./error.js";
|
|
2
|
-
import type { WitStateMutability, Wit, MBits, WitInt, WitList, WitType, TypedDataParameter, TypedData, WitParameterKind, WitParameter,
|
|
2
|
+
import type { WitStateMutability, Wit, MBits, WitInt, WitList, WitType, TypedDataParameter, TypedData, WitParameterKind, WitParameter, WitRecord, TypedDataType, WitOption, WitResult, WitVariant, WitEnum } from "./wit.js";
|
|
3
3
|
import type { ResolvedRegister } from "./register.js";
|
|
4
4
|
import type { Merge, Pretty } from "./type-utils.js";
|
|
5
|
+
import type { WitError } from "./built-ins.js";
|
|
5
6
|
export type IsWit<wit> = wit extends Wit ? true : false;
|
|
6
7
|
export type ExtractWitFunctions<wit extends Wit, witFuncContext extends WitStateMutability = WitStateMutability> = Extract<wit[number], {
|
|
7
8
|
type: "function";
|
|
@@ -14,25 +15,16 @@ export type ExtractWitFunction<wit extends Wit, functionName extends ExtractWitF
|
|
|
14
15
|
type NoBits = "";
|
|
15
16
|
type GreaterThan48Bits = Exclude<MBits, 8 | 16 | 32 | NoBits>;
|
|
16
17
|
type LessThanOrEqualTo48Bits = Exclude<MBits, GreaterThan48Bits | NoBits>;
|
|
17
|
-
export type Option<T> =
|
|
18
|
-
|
|
19
|
-
} | {
|
|
20
|
-
kind: "some";
|
|
21
|
-
value: T;
|
|
22
|
-
};
|
|
23
|
-
export type Result<T, E> = {
|
|
24
|
-
ok: true;
|
|
25
|
-
value: T;
|
|
26
|
-
} | {
|
|
27
|
-
ok: false;
|
|
28
|
-
error: E;
|
|
29
|
-
};
|
|
18
|
+
export type Option<T> = ["none"] | ["some", T];
|
|
19
|
+
export type Result<T, E> = ["ok", T] | ["err", E];
|
|
30
20
|
export type WitTypeToPrimitiveType<witType extends WitType> = PrimitiveTypeLookup[witType];
|
|
31
21
|
interface PrimitiveTypeLookup extends WitIntMap, WitListMap, WitOptionMap, WitResultMap {
|
|
32
22
|
bool: boolean;
|
|
33
23
|
address: string;
|
|
34
24
|
string: string;
|
|
35
|
-
|
|
25
|
+
record: Record<string, unknown>;
|
|
26
|
+
variant: [string, unknown];
|
|
27
|
+
enum: string;
|
|
36
28
|
error: unknown;
|
|
37
29
|
integer: ResolvedRegister["bigIntType"];
|
|
38
30
|
decimal: ResolvedRegister["decimalType"];
|
|
@@ -49,27 +41,15 @@ type WitOptionMap = {
|
|
|
49
41
|
[_ in WitOption]: Option<unknown>;
|
|
50
42
|
};
|
|
51
43
|
type WitResultMap = {
|
|
52
|
-
[_ in WitResult]: Result<unknown,
|
|
44
|
+
[_ in WitResult]: Result<unknown, WitError.T>;
|
|
53
45
|
};
|
|
54
46
|
type BitsTypeLookup = {
|
|
55
47
|
[key in MBits]: ResolvedRegister[key extends LessThanOrEqualTo48Bits ? "intType" : "bigIntType"];
|
|
56
48
|
};
|
|
57
|
-
type WitBasicType = Exclude<WitType,
|
|
49
|
+
type WitBasicType = Exclude<WitType, WitRecord | WitList | WitResult | WitOption | WitVariant | WitEnum>;
|
|
58
50
|
export type WitParametersToPrimitiveTypes<witParameters extends readonly WitParameter[], witParameterKind extends WitParameterKind = WitParameterKind> = Pretty<{
|
|
59
51
|
[key in keyof witParameters]: WitParameterToPrimitiveType<witParameters[key], witParameterKind>;
|
|
60
52
|
}>;
|
|
61
|
-
export type WitParameterToPrimitiveType<witParameter extends WitParameter | {
|
|
62
|
-
name: string;
|
|
63
|
-
type: unknown;
|
|
64
|
-
}, witParameterKind extends WitParameterKind = WitParameterKind> = witParameter["type"] extends WitBasicType ? WitTypeToPrimitiveType<witParameter["type"]> : witParameter extends {
|
|
65
|
-
type: WitTuple;
|
|
66
|
-
components: infer components extends readonly WitParameter[];
|
|
67
|
-
} ? WitComponentsToPrimitiveType<components, witParameterKind> : MaybeExtractListParameterType<witParameter["type"]> extends infer head extends string ? WitListToPrimitiveType<witParameter, witParameterKind, head> : MaybeExtractOptionParameterType<witParameter["type"]> extends infer inner extends string ? WitOptionToPrimitiveType<witParameter, witParameterKind, inner> : MaybeExtractResultParameterType<witParameter["type"]> extends [
|
|
68
|
-
infer ok extends string,
|
|
69
|
-
infer _err extends string
|
|
70
|
-
] ? WitResultToPrimitiveType<witParameter, witParameterKind, ok> : ResolvedRegister["strictWitType"] extends true ? Error_<`Unknown type '${witParameter["type"] & string}'.`> : witParameter extends {
|
|
71
|
-
components: Error_<string>;
|
|
72
|
-
} ? witParameter["components"] : unknown;
|
|
73
53
|
type MaybeExtractListParameterType<T> = T extends `list<${infer Inner}>` ? Inner : undefined;
|
|
74
54
|
type MaybeExtractOptionParameterType<T> = T extends `option<${infer Inner}>` ? Inner : undefined;
|
|
75
55
|
type MaybeExtractResultParameterType<T> = T extends `result<${infer Ok}, ${infer Err}>` ? [Ok, Err] : undefined;
|
|
@@ -90,7 +70,47 @@ type WitResultToPrimitiveType<witParameter extends WitParameter | {
|
|
|
90
70
|
type: unknown;
|
|
91
71
|
}, witParameterKind extends WitParameterKind, ok extends string> = Result<WitParameterToPrimitiveType<Merge<witParameter, {
|
|
92
72
|
type: ok;
|
|
93
|
-
}>, witParameterKind>,
|
|
73
|
+
}>, witParameterKind>, WitError.T> extends infer R ? R : never;
|
|
74
|
+
export type WitParameterToPrimitiveType<witParameter extends WitParameter | {
|
|
75
|
+
name: string;
|
|
76
|
+
type: unknown;
|
|
77
|
+
}, witParameterKind extends WitParameterKind = WitParameterKind> = witParameter["type"] extends WitBasicType ? WitTypeToPrimitiveType<witParameter["type"]> : witParameter extends {
|
|
78
|
+
type: "variant";
|
|
79
|
+
components?: infer components extends readonly WitParameter[];
|
|
80
|
+
} ? WitVariantToPrimitiveType<components, witParameterKind> : witParameter extends {
|
|
81
|
+
type: "enum";
|
|
82
|
+
} ? witParameter extends {
|
|
83
|
+
components?: infer components extends readonly WitParameter[];
|
|
84
|
+
} ? WitEnumToPrimitiveType<components> : never : witParameter extends {
|
|
85
|
+
type: WitRecord;
|
|
86
|
+
components: infer components extends readonly WitParameter[];
|
|
87
|
+
} ? WitComponentsToPrimitiveType<components, witParameterKind> : MaybeExtractListParameterType<witParameter["type"]> extends infer head extends string ? WitListToPrimitiveType<witParameter, witParameterKind, head> : MaybeExtractOptionParameterType<witParameter["type"]> extends infer inner extends string ? WitOptionToPrimitiveType<witParameter, witParameterKind, inner> : MaybeExtractResultParameterType<witParameter["type"]> extends [
|
|
88
|
+
infer ok extends string,
|
|
89
|
+
infer _err extends "error"
|
|
90
|
+
] ? WitResultToPrimitiveType<witParameter, witParameterKind, ok> : ResolvedRegister["strictWitType"] extends true ? Error_<`Unknown type '${witParameter["type"] & string}'.`> : witParameter extends {
|
|
91
|
+
components: Error_<string>;
|
|
92
|
+
} ? witParameter["components"] : unknown;
|
|
93
|
+
type WitVariantToPrimitiveType<components extends readonly WitParameter[], witParameterKind extends WitParameterKind> = {
|
|
94
|
+
[K in keyof components]: components[K] extends {
|
|
95
|
+
name: infer CaseName extends string;
|
|
96
|
+
} ? components[K] extends {
|
|
97
|
+
type: "_";
|
|
98
|
+
} ? [CaseName] : components[K] extends {
|
|
99
|
+
type: WitRecord;
|
|
100
|
+
name: string;
|
|
101
|
+
components?: infer components extends readonly WitParameter[];
|
|
102
|
+
} ? [CaseName, WitComponentsToPrimitiveType<components, witParameterKind>] : [
|
|
103
|
+
CaseName,
|
|
104
|
+
WitParameterToPrimitiveType<components[K], witParameterKind>
|
|
105
|
+
] : never;
|
|
106
|
+
}[number];
|
|
107
|
+
type WitEnumToPrimitiveType<components extends readonly WitParameter[]> = Readonly<{
|
|
108
|
+
[K in keyof components]: components[K] extends {
|
|
109
|
+
name: infer CaseName extends string;
|
|
110
|
+
} ? components[K] extends {
|
|
111
|
+
type: "_";
|
|
112
|
+
} ? CaseName : never : never;
|
|
113
|
+
}>[number];
|
|
94
114
|
type WitComponentsToPrimitiveType<components extends readonly WitParameter[], witParameterKind extends WitParameterKind> = components extends readonly [] ? [] : components[number]["name"] extends Exclude<components[number]["name"] & string, undefined | ""> ? {
|
|
95
115
|
[component in components[number] as component["name"] & {}]: WitParameterToPrimitiveType<component, witParameterKind>;
|
|
96
116
|
} : {
|
|
@@ -104,7 +124,7 @@ export type TypedDataToPrimitiveTypes<typedData extends TypedData, witParameterK
|
|
|
104
124
|
[_ in key2["type"] | key]: true;
|
|
105
125
|
}>[key2["type"]] : key2["type"] extends `${infer type extends keyof typedData & string}[${infer tail}]` ? WitParameterToPrimitiveType<{
|
|
106
126
|
name: key2["name"];
|
|
107
|
-
type: `
|
|
127
|
+
type: `record[${tail}]`;
|
|
108
128
|
components: _TypedDataParametersToWitParameters<typedData[type], typedData, keyReferences & {
|
|
109
129
|
[_ in type | key]: true;
|
|
110
130
|
}>;
|
|
@@ -119,13 +139,13 @@ type _TypedDataParametersToWitParameters<typedDataParameters extends readonly Ty
|
|
|
119
139
|
type: unknown;
|
|
120
140
|
} ? typedDataParameter["type"] extends keyof typedData & string ? {
|
|
121
141
|
name: typedDataParameter["name"];
|
|
122
|
-
type: "
|
|
142
|
+
type: "record";
|
|
123
143
|
components: typedDataParameter["type"] extends keyof keyReferences ? Error_<`Circular reference detected. '${typedDataParameter["type"]}' is a circular reference.`> : _TypedDataParametersToWitParameters<typedData[typedDataParameter["type"]], typedData, keyReferences & {
|
|
124
144
|
[_ in typedDataParameter["type"]]: true;
|
|
125
145
|
}>;
|
|
126
146
|
} : typedDataParameter["type"] extends `${infer type extends keyof typedData & string}[${infer tail}]` ? {
|
|
127
147
|
name: typedDataParameter["name"];
|
|
128
|
-
type: `
|
|
148
|
+
type: `record[${tail}]`;
|
|
129
149
|
components: type extends keyof keyReferences ? Error_<`Circular reference detected. '${typedDataParameter["type"]}' is a circular reference.`> : _TypedDataParametersToWitParameters<typedData[type], typedData, keyReferences & {
|
|
130
150
|
[_ in type]: true;
|
|
131
151
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/wit/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EACV,kBAAkB,EAClB,GAAG,EACH,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/wit/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export declare class InvalidSignatureError extends BaseError {
|
|
|
4
4
|
name: string;
|
|
5
5
|
constructor({ signature, type, }: {
|
|
6
6
|
signature: string;
|
|
7
|
-
type: WitItemType | "record";
|
|
7
|
+
type: WitItemType | "record" | "variant" | "enum";
|
|
8
8
|
});
|
|
9
9
|
}
|
|
10
10
|
export declare class UnknownSignatureError extends BaseError {
|
|
@@ -19,4 +19,10 @@ export declare class InvalidRecordSignatureError extends BaseError {
|
|
|
19
19
|
signature: string;
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
+
export declare class InvalidVariantSignatureError extends BaseError {
|
|
23
|
+
name: string;
|
|
24
|
+
constructor({ signature }: {
|
|
25
|
+
signature: string;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
22
28
|
//# sourceMappingURL=signature.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/errors/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,qBAAa,qBAAsB,SAAQ,SAAS;IACzC,IAAI,SAA2B;gBAE5B,EACV,SAAS,EACT,IAAI,GACL,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/errors/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,qBAAa,qBAAsB,SAAQ,SAAS;IACzC,IAAI,SAA2B;gBAE5B,EACV,SAAS,EACT,IAAI,GACL,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;KACnD;CAKF;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IACzC,IAAI,SAA2B;gBAE5B,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;CAKjD;AAED,qBAAa,2BAA4B,SAAQ,SAAS;IAC/C,IAAI,SAAiC;gBAElC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;CAMjD;AAED,qBAAa,4BAA6B,SAAQ,SAAS;IAChD,IAAI,SAAkC;gBAEnC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;CAMjD"}
|
|
@@ -15,4 +15,14 @@ export declare function execRecordSignature(signature: string): {
|
|
|
15
15
|
name: string;
|
|
16
16
|
properties: string;
|
|
17
17
|
} | undefined;
|
|
18
|
+
export declare function isVariantSignature(signature: string): boolean;
|
|
19
|
+
export declare function execVariantSignature(signature: string): {
|
|
20
|
+
name: string;
|
|
21
|
+
cases: string;
|
|
22
|
+
} | undefined;
|
|
23
|
+
export declare function isEnumSignature(signature: string): boolean;
|
|
24
|
+
export declare function execEnumSignature(signature: string): {
|
|
25
|
+
name: string;
|
|
26
|
+
cases: string;
|
|
27
|
+
} | undefined;
|
|
18
28
|
//# sourceMappingURL=signatures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../../../src/wit/wit-parser/core/signatures.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,WAEjD;AACD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM;UACzB,MAAM;gBAAc,MAAM;cAIpD;AAKD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,WAEpD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM;;;;;SAgBtD;AAKD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,WAElD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM;UAE3C,MAAM;gBACA,MAAM;cAErB"}
|
|
1
|
+
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../../../src/wit/wit-parser/core/signatures.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,WAEjD;AACD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM;UACzB,MAAM;gBAAc,MAAM;cAIpD;AAKD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,WAEpD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM;;;;;SAgBtD;AAKD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,WAElD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM;UAE3C,MAAM;gBACA,MAAM;cAErB;AAKD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,WAEnD;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM;UAE5C,MAAM;WACL,MAAM;cAEhB;AAKD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,WAEhD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM;UAEzC,MAAM;WACL,MAAM;cAEhB"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import type { Error_ } from "../../../error.js";
|
|
2
|
-
export type IsSignature<type extends string> = (IsFunctionSignature<type> extends true ? true : never) | (IsRecordSignature<type> extends true ? true : never);
|
|
2
|
+
export type IsSignature<type extends string> = (IsFunctionSignature<type> extends true ? true : never) | (IsRecordSignature<type> extends true ? true : never) | (IsVariantSignature<type> extends true ? true : never) | (IsEnumSignature<type> extends true ? true : never);
|
|
3
3
|
export type Signature<string1 extends string, string2 extends string | unknown = unknown> = IsSignature<string1> extends true ? string1 : string extends string1 ? string1 : Error_<`Signature "${string1}" is invalid${string2 extends string ? ` at position ${string2}` : ""}.`>;
|
|
4
4
|
export type Signatures<signatures extends readonly string[]> = {
|
|
5
5
|
[key in keyof signatures]: Signature<signatures[key], key>;
|
|
6
6
|
};
|
|
7
7
|
export type RecordSignature<name extends string = string, properties extends string = string> = `record ${name} { ${properties} }`;
|
|
8
8
|
export type IsRecordSignature<signature extends string> = signature extends RecordSignature<infer name> ? IsName<name> : false;
|
|
9
|
+
export type VariantSignature<name extends string = string, cases extends string = string> = `variant ${name} { ${cases} }`;
|
|
10
|
+
export type IsVariantSignature<signature extends string> = signature extends VariantSignature<infer name> ? IsName<name> : false;
|
|
11
|
+
export type EnumSignature<name extends string = string, cases extends string = string> = `enum ${name} { ${cases} }`;
|
|
12
|
+
export type IsEnumSignature<signature extends string> = signature extends EnumSignature<infer name> ? IsName<name> : false;
|
|
9
13
|
export type FunctionSignature<name extends string = string, tail extends string = string> = `export ${name}: func(${tail}`;
|
|
10
14
|
export type IsFunctionSignature<signature> = signature extends FunctionSignature<infer name> ? IsName<name> extends true ? signature extends ValidFunctionSignatures ? true : false : false : false;
|
|
11
15
|
export type IsName<name extends string> = name extends "" ? false : ValidateName<name> extends name ? true : false;
|
|
12
16
|
export type AssertName<name extends string> = ValidateName<name> extends infer invalidName extends string[] ? `[${invalidName[number]}]` : name;
|
|
13
17
|
export type ValidateName<name extends string, checkCharacters extends boolean = false> = name extends `${string}${" "}${string}` ? Error_<`Identifier "${name}" cannot contain whitespace.`> : IsWitKeyword<name> extends true ? Error_<`"${name}" is a protected WIT keyword.`> : name extends `${number}` ? Error_<`Identifier "${name}" cannot be a number string.`> : name extends `${number}${string}` ? Error_<`Identifier "${name}" cannot start with a number.`> : checkCharacters extends true ? IsValidCharacter<name> extends true ? name : Error_<`"${name}" contains invalid character.`> : name;
|
|
14
18
|
export type IsWitKeyword<word extends string> = word extends WitKeyword ? true : false;
|
|
15
|
-
export type WitKeyword = "package" | "world" | "interface" | "contract" | "include" | "use" | "import" | "export" | "func" | "borrow" | "record" | "list" | "enum" | "flags" | "variant" | "option" | "result" | "
|
|
19
|
+
export type WitKeyword = "package" | "world" | "interface" | "contract" | "include" | "use" | "import" | "export" | "func" | "borrow" | "record" | "list" | "enum" | "flags" | "variant" | "option" | "result" | "bool" | "s8" | "s16" | "s32" | "s64" | "u8" | "u16" | "u32" | "u64" | "f32" | "f64" | "char" | "string";
|
|
16
20
|
export type IsValidCharacter<character extends string> = character extends `${ValidCharacters}${infer tail}` ? tail extends "" ? true : IsValidCharacter<tail> : false;
|
|
17
21
|
type ValidCharacters = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" | "_";
|
|
18
22
|
type Returns = `-> ${string};`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/types/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,WAAW,CAAC,IAAI,SAAS,MAAM,IACvC,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,GACvD,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/types/signatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { WitParameter } from "../../../wit.js";
|
|
2
|
+
import type { Trim } from "../../../type-utils.js";
|
|
3
|
+
import type { RecordSignature, VariantSignature, EnumSignature } from "./signatures.js";
|
|
4
|
+
import type { ParseWitParameter, SplitParameters } from "./utils.js";
|
|
5
|
+
import type { Error_ } from "../../../error.js";
|
|
6
|
+
export type ComponentLookup = Record<string, readonly (WitParameter & {
|
|
7
|
+
type: string;
|
|
8
|
+
})[]>;
|
|
9
|
+
export type RecordLookup = ComponentLookup;
|
|
10
|
+
export type VariantLookup = ComponentLookup;
|
|
11
|
+
export type EnumLookup = Record<string, readonly string[]>;
|
|
12
|
+
export type ParseEnums<signatures extends readonly string[]> = {
|
|
13
|
+
[signature in signatures[number] as ParseEnum<signature> extends infer enum_ extends {
|
|
14
|
+
name: string;
|
|
15
|
+
} ? enum_["name"] : never]: ParseEnum<signature>["cases"];
|
|
16
|
+
};
|
|
17
|
+
export type ParseEnum<signature extends string> = signature extends EnumSignature<infer name, infer cases> ? {
|
|
18
|
+
readonly name: Trim<name>;
|
|
19
|
+
readonly cases: ParseEnumCases<cases>;
|
|
20
|
+
} : never;
|
|
21
|
+
export type ParseEnumCases<signature extends string, result extends readonly string[] = []> = Trim<signature> extends `${infer head},${infer tail}` ? ParseEnumCases<tail, readonly [...result, Trim<head>]> : Trim<signature> extends "" ? result : readonly [...result, Trim<signature>];
|
|
22
|
+
export type NormalizeVariantCaseToken<S extends string> = Trim<S> extends `${infer N}(${infer T})` ? `${Trim<N>}: ${Trim<T>}` : `${Trim<S>}: _`;
|
|
23
|
+
export type ParseVariants<signatures extends readonly string[], enums extends EnumLookup | unknown = unknown, records extends ComponentLookup | unknown = unknown> = {
|
|
24
|
+
[signature in signatures[number] as ParseVariant<signature, {}, records, enums> extends infer variant extends {
|
|
25
|
+
name: string;
|
|
26
|
+
} ? variant["name"] : never]: ParseVariant<signature, {}, records, enums>["components"];
|
|
27
|
+
};
|
|
28
|
+
export type ParseVariant<signature extends string, variants extends ComponentLookup | unknown = unknown, records extends ComponentLookup | unknown = unknown, enums extends EnumLookup | unknown = unknown> = signature extends VariantSignature<infer name, infer components> ? {
|
|
29
|
+
readonly name: name;
|
|
30
|
+
readonly components: ParseVariantCases<components, variants, records, enums>;
|
|
31
|
+
} : never;
|
|
32
|
+
export type ParseVariantCases<signature extends string, variants extends ComponentLookup | unknown = unknown, records extends ComponentLookup | unknown = unknown, enums extends EnumLookup | unknown = unknown> = SplitParameters<signature> extends infer parts extends readonly string[] ? {
|
|
33
|
+
readonly [K in keyof parts]: ParseWitParameter<NormalizeVariantCaseToken<parts[K]>, {
|
|
34
|
+
records: records;
|
|
35
|
+
variants: variants;
|
|
36
|
+
enums: enums;
|
|
37
|
+
}>;
|
|
38
|
+
} : SplitParameters<signature>;
|
|
39
|
+
export type ParseRecords<signatures extends readonly string[], variants extends ComponentLookup | unknown = unknown, enums extends EnumLookup | unknown = unknown> = {
|
|
40
|
+
[signature in signatures[number] as ParseRecord<signature, {}, variants, enums> extends infer record extends {
|
|
41
|
+
name: string;
|
|
42
|
+
} ? record["name"] : never]: ParseRecord<signature, {}, variants, enums>["components"];
|
|
43
|
+
};
|
|
44
|
+
export type ParseRecord<signature extends string, records extends ComponentLookup | unknown = unknown, variants extends ComponentLookup | unknown = unknown, enums extends EnumLookup | unknown = unknown> = signature extends RecordSignature<infer name, infer properties> ? {
|
|
45
|
+
readonly name: Trim<name>;
|
|
46
|
+
readonly components: ParseRecordProperties<properties, records, variants, enums>;
|
|
47
|
+
} : never;
|
|
48
|
+
export type ParseRecordProperties<signature extends string, records extends ComponentLookup | unknown = unknown, variants extends ComponentLookup | unknown = unknown, enums extends EnumLookup | unknown = unknown> = SplitParameters<signature> extends infer parts extends readonly string[] ? {
|
|
49
|
+
readonly [K in keyof parts]: ParseWitParameter<parts[K], {
|
|
50
|
+
records: records;
|
|
51
|
+
variants: variants;
|
|
52
|
+
enums: enums;
|
|
53
|
+
}>;
|
|
54
|
+
} : SplitParameters<signature>;
|
|
55
|
+
export type ResolveTypes<witParameters extends readonly (WitParameter & {
|
|
56
|
+
type: string;
|
|
57
|
+
})[], records extends ComponentLookup | unknown = unknown, variants extends ComponentLookup | unknown = unknown, enums extends EnumLookup | unknown = unknown, keyReferences extends {
|
|
58
|
+
[_: string]: unknown;
|
|
59
|
+
} | unknown = unknown> = readonly [
|
|
60
|
+
...{
|
|
61
|
+
[key in keyof witParameters]: witParameters[key]["type"] extends `list<${infer inner}>` ? ResolveWrappedType<witParameters[key], "list", inner, records, variants, enums, keyReferences> : witParameters[key]["type"] extends `option<${infer inner}>` ? ResolveWrappedType<witParameters[key], "option", inner, records, variants, enums, keyReferences> : witParameters[key]["type"] extends `borrow<${infer inner}>` ? ResolveWrappedType<witParameters[key], "borrow", inner, records, variants, enums, keyReferences> : witParameters[key]["type"] extends `result<${infer inner}, error>` ? ResolveWrappedType<witParameters[key], "result", inner, records, variants, enums, keyReferences> : ResolveDirectType<witParameters[key], records, variants, enums, keyReferences>;
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
type ResolveWrappedType<param extends WitParameter & {
|
|
65
|
+
type: string;
|
|
66
|
+
}, wrapper extends string, inner extends string, records extends ComponentLookup | unknown, variants extends ComponentLookup | unknown, enums extends EnumLookup | unknown, keyReferences extends {
|
|
67
|
+
[_: string]: unknown;
|
|
68
|
+
} | unknown> = [
|
|
69
|
+
records
|
|
70
|
+
] extends [ComponentLookup] ? inner extends keyof records ? inner extends keyof keyReferences ? Error_<`Circular reference detected at "${inner}".`> : {
|
|
71
|
+
readonly name: param["name"];
|
|
72
|
+
readonly type: wrapper extends "result" ? `result<record, error>` : `${wrapper}<record>`;
|
|
73
|
+
readonly internalType: wrapper extends "result" ? `result<${inner}, error>` : `${wrapper}<${inner}>`;
|
|
74
|
+
readonly components: ResolveTypes<records[inner], records, variants, enums, keyReferences & {
|
|
75
|
+
[K in inner]: true;
|
|
76
|
+
}>;
|
|
77
|
+
} : [variants] extends [ComponentLookup] ? inner extends keyof variants ? inner extends keyof keyReferences ? Error_<`Circular reference detected at "${inner}".`> : {
|
|
78
|
+
readonly name: param["name"];
|
|
79
|
+
readonly type: wrapper extends "result" ? `result<variant, error>` : `${wrapper}<variant>`;
|
|
80
|
+
readonly internalType: wrapper extends "result" ? `result<${inner}, error>` : `${wrapper}<${inner}>`;
|
|
81
|
+
readonly components: ResolveTypes<variants[inner], records, variants, enums, keyReferences & {
|
|
82
|
+
[K in inner]: true;
|
|
83
|
+
}>;
|
|
84
|
+
} : [enums] extends [EnumLookup] ? inner extends keyof enums ? inner extends keyof keyReferences ? Error_<`Circular reference detected at "${inner}".`> : {
|
|
85
|
+
readonly name: param["name"];
|
|
86
|
+
readonly type: wrapper extends "result" ? `result<enum, error>` : `${wrapper}<enum>`;
|
|
87
|
+
readonly internalType: wrapper extends "result" ? `result<${inner}, error>` : `${wrapper}<${inner}>`;
|
|
88
|
+
readonly components: EnumToComponents<enums[inner]>;
|
|
89
|
+
} : param : param : param : param;
|
|
90
|
+
type ResolveDirectType<param extends WitParameter & {
|
|
91
|
+
type: string;
|
|
92
|
+
}, records extends ComponentLookup | unknown, variants extends ComponentLookup | unknown, enums extends EnumLookup | unknown, keyReferences extends {
|
|
93
|
+
[_: string]: unknown;
|
|
94
|
+
} | unknown> = [
|
|
95
|
+
records
|
|
96
|
+
] extends [ComponentLookup] ? param["type"] extends keyof records ? param["type"] extends keyof keyReferences ? Error_<`Circular reference detected at "${param["type"]}".`> : {
|
|
97
|
+
readonly name: param["name"];
|
|
98
|
+
readonly type: "record";
|
|
99
|
+
readonly internalType: param["type"];
|
|
100
|
+
readonly components: ResolveTypes<records[param["type"]], records, variants, enums, keyReferences & {
|
|
101
|
+
[K in param["type"]]: true;
|
|
102
|
+
}>;
|
|
103
|
+
} : [variants] extends [ComponentLookup] ? param["type"] extends keyof variants ? param["type"] extends keyof keyReferences ? Error_<`Circular reference detected at "${param["type"]}".`> : {
|
|
104
|
+
readonly name: param["name"];
|
|
105
|
+
readonly type: "variant";
|
|
106
|
+
readonly internalType: param["type"];
|
|
107
|
+
readonly components: ResolveTypes<variants[param["type"]], records, variants, enums, keyReferences & {
|
|
108
|
+
[K in param["type"]]: true;
|
|
109
|
+
}>;
|
|
110
|
+
} : [enums] extends [EnumLookup] ? param["type"] extends keyof enums ? param["type"] extends keyof keyReferences ? Error_<`Circular reference detected at "${param["type"]}".`> : {
|
|
111
|
+
readonly name: param["name"];
|
|
112
|
+
readonly type: "enum";
|
|
113
|
+
readonly internalType: param["type"];
|
|
114
|
+
readonly components: EnumToComponents<enums[param["type"]]>;
|
|
115
|
+
} : param : param : param : param;
|
|
116
|
+
export type EnumToComponents<cases extends readonly string[]> = readonly [
|
|
117
|
+
...{
|
|
118
|
+
[K in keyof cases]: {
|
|
119
|
+
readonly name: cases[K];
|
|
120
|
+
readonly type: "_";
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
];
|
|
124
|
+
export type ParseTypes<signatures extends readonly string[]> = ParseEnums<signatures> extends infer enums extends EnumLookup ? ParseRecords<signatures, {}, enums> extends infer shallowRecords extends ComponentLookup ? ParseVariants<signatures, enums, {}> extends infer shallowVariants extends ComponentLookup ? {
|
|
125
|
+
records: {
|
|
126
|
+
[K in keyof shallowRecords]: ResolveTypes<shallowRecords[K], shallowRecords, shallowVariants, enums>;
|
|
127
|
+
};
|
|
128
|
+
variants: {
|
|
129
|
+
[K in keyof shallowVariants]: ResolveTypes<shallowVariants[K], shallowRecords, shallowVariants, enums>;
|
|
130
|
+
};
|
|
131
|
+
enums: enums;
|
|
132
|
+
} : never : never : never;
|
|
133
|
+
export {};
|
|
134
|
+
//# sourceMappingURL=user-defined.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-defined.d.ts","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/types/user-defined.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import type { RecordLookup } from "./records.js";
|
|
2
1
|
import type { Trim, Pretty } from "../../../type-utils.js";
|
|
3
2
|
import type { FunctionSignature, IsFunctionSignature } from "./signatures.js";
|
|
4
3
|
import type { Error_ } from "../../../error.js";
|
|
4
|
+
import type { EnumLookup, RecordLookup, VariantLookup, EnumToComponents } from "./user-defined.js";
|
|
5
5
|
type ParseOptions = {
|
|
6
6
|
records?: RecordLookup | unknown;
|
|
7
|
+
variants?: VariantLookup | unknown;
|
|
8
|
+
enums?: EnumLookup | unknown;
|
|
7
9
|
};
|
|
8
10
|
type DefaultParseOptions = {};
|
|
9
11
|
type Readonlyify<T> = {
|
|
@@ -12,9 +14,21 @@ type Readonlyify<T> = {
|
|
|
12
14
|
type HasRecords<Opts> = Opts extends {
|
|
13
15
|
records: Record<string, unknown>;
|
|
14
16
|
} ? true : false;
|
|
17
|
+
type HasVariants<Opts> = Opts extends {
|
|
18
|
+
variants: Record<string, unknown>;
|
|
19
|
+
} ? true : false;
|
|
20
|
+
type HasEnums<Opts> = Opts extends {
|
|
21
|
+
enums: Record<string, unknown>;
|
|
22
|
+
} ? true : false;
|
|
15
23
|
type RecordsOf<Opts> = Opts extends {
|
|
16
24
|
records: infer R extends RecordLookup;
|
|
17
25
|
} ? R : never;
|
|
26
|
+
type VariantsOf<Opts> = Opts extends {
|
|
27
|
+
variants: infer R extends VariantLookup;
|
|
28
|
+
} ? R : never;
|
|
29
|
+
type EnumsOf<Opts> = Opts extends {
|
|
30
|
+
enums: infer E extends EnumLookup;
|
|
31
|
+
} ? E : never;
|
|
18
32
|
type WithName<Shallow> = Shallow extends {
|
|
19
33
|
name: infer N extends string;
|
|
20
34
|
} ? {
|
|
@@ -25,10 +39,71 @@ type GetComponents<T> = T extends {
|
|
|
25
39
|
} ? {
|
|
26
40
|
readonly components: C;
|
|
27
41
|
} : {};
|
|
28
|
-
type
|
|
29
|
-
|
|
42
|
+
type MapCaseFields<Fields extends readonly {
|
|
43
|
+
readonly name?: string | undefined;
|
|
44
|
+
readonly type: string;
|
|
45
|
+
}[], V extends VariantLookup, R extends RecordLookup, E extends EnumLookup> = {
|
|
46
|
+
readonly [I in keyof Fields]: Fields[I] extends {
|
|
47
|
+
readonly name?: infer N extends string | undefined;
|
|
48
|
+
readonly internalType: infer IT extends string;
|
|
49
|
+
readonly type: infer T extends string;
|
|
50
|
+
} ? Pretty<{
|
|
51
|
+
readonly name: N;
|
|
52
|
+
} & MapGenericType<IT extends "_" ? T : IT, {
|
|
53
|
+
variants: V;
|
|
54
|
+
records: R;
|
|
55
|
+
enums: E;
|
|
56
|
+
}>> : never;
|
|
57
|
+
};
|
|
58
|
+
type AsUserDefinedType<T extends string, Opts extends ParseOptions> = T extends "_" ? Readonlyify<{
|
|
59
|
+
type: "_";
|
|
60
|
+
internalType: "_";
|
|
61
|
+
}> : HasRecords<Opts> extends true ? T extends keyof RecordsOf<Opts> ? Readonlyify<{
|
|
62
|
+
type: "record";
|
|
63
|
+
internalType: T;
|
|
30
64
|
components: RecordsOf<Opts>[T];
|
|
65
|
+
}> : HasVariants<Opts> extends true ? T extends keyof VariantsOf<Opts> ? Readonlyify<{
|
|
66
|
+
type: "variant";
|
|
67
|
+
internalType: T;
|
|
68
|
+
components: MapCaseFields<VariantsOf<Opts>[T], VariantsOf<Opts>, RecordsOf<Opts>, EnumsOf<Opts>>;
|
|
69
|
+
}> : HasEnums<Opts> extends true ? T extends keyof EnumsOf<Opts> ? Readonlyify<{
|
|
70
|
+
type: "enum";
|
|
31
71
|
internalType: T;
|
|
72
|
+
components: EnumToComponents<EnumsOf<Opts>[T]>;
|
|
73
|
+
}> : Readonlyify<{
|
|
74
|
+
type: T;
|
|
75
|
+
internalType: T;
|
|
76
|
+
}> : Readonlyify<{
|
|
77
|
+
type: T;
|
|
78
|
+
internalType: T;
|
|
79
|
+
}> : HasEnums<Opts> extends true ? T extends keyof EnumsOf<Opts> ? Readonlyify<{
|
|
80
|
+
type: "enum";
|
|
81
|
+
internalType: T;
|
|
82
|
+
components: EnumToComponents<EnumsOf<Opts>[T]>;
|
|
83
|
+
}> : Readonlyify<{
|
|
84
|
+
type: T;
|
|
85
|
+
internalType: T;
|
|
86
|
+
}> : Readonlyify<{
|
|
87
|
+
type: T;
|
|
88
|
+
internalType: T;
|
|
89
|
+
}> : HasVariants<Opts> extends true ? T extends keyof VariantsOf<Opts> ? Readonlyify<{
|
|
90
|
+
type: "variant";
|
|
91
|
+
internalType: T;
|
|
92
|
+
components: VariantsOf<Opts>[T];
|
|
93
|
+
}> : HasEnums<Opts> extends true ? T extends keyof EnumsOf<Opts> ? Readonlyify<{
|
|
94
|
+
type: "enum";
|
|
95
|
+
internalType: T;
|
|
96
|
+
components: EnumToComponents<EnumsOf<Opts>[T]>;
|
|
97
|
+
}> : Readonlyify<{
|
|
98
|
+
type: T;
|
|
99
|
+
internalType: T;
|
|
100
|
+
}> : Readonlyify<{
|
|
101
|
+
type: T;
|
|
102
|
+
internalType: T;
|
|
103
|
+
}> : HasEnums<Opts> extends true ? T extends keyof EnumsOf<Opts> ? Readonlyify<{
|
|
104
|
+
type: "enum";
|
|
105
|
+
internalType: T;
|
|
106
|
+
components: EnumToComponents<EnumsOf<Opts>[T]>;
|
|
32
107
|
}> : Readonlyify<{
|
|
33
108
|
type: T;
|
|
34
109
|
internalType: T;
|
|
@@ -64,7 +139,7 @@ type MapGenericType<T extends string, Opts extends ParseOptions> = T extends `li
|
|
|
64
139
|
} ? Readonlyify<{
|
|
65
140
|
type: `result<${LMapped["type"]}, ${RMapped["type"]}>`;
|
|
66
141
|
internalType: T;
|
|
67
|
-
} & MaybeResultComponents<LMapped, RMapped>> : never : never : never :
|
|
142
|
+
} & MaybeResultComponents<LMapped, RMapped>> : never : never : never : AsUserDefinedType<T, Opts>;
|
|
68
143
|
export type ParseWitParameter<signature extends string, options extends ParseOptions = DefaultParseOptions> = (signature extends `${infer left}: ${infer right}` ? {
|
|
69
144
|
readonly type: Trim<right>;
|
|
70
145
|
} & {
|
|
@@ -89,16 +164,16 @@ export type _ParseFunctionParametersAndContext<signature extends string> = signa
|
|
|
89
164
|
} : never;
|
|
90
165
|
export type SplitParameters<signature extends string, result extends unknown[] = [], current extends string = "", depth extends readonly number[] = []> = signature extends "" ? current extends "" ? [...result] : depth["length"] extends 0 ? [...result, Trim<current>] : Error_<`Unbalanced <>. "${current}" has too many opening "<".`> : signature extends `${infer char}${infer tail}` ? char extends "," ? depth["length"] extends 0 ? SplitParameters<tail, [...result, Trim<current>], ""> : SplitParameters<tail, result, `${current}${char}`, depth> : char extends "<" ? SplitParameters<tail, result, `${current}${char}`, [...depth, 1]> : char extends ">" ? depth["length"] extends 0 ? Error_<`Unbalanced <>. "${current}${char}" has too many closing ">".`> : SplitParameters<tail, result, `${current}${char}`, Pop<depth>> : SplitParameters<tail, result, `${current}${char}`, depth> : [];
|
|
91
166
|
type Pop<type extends readonly number[]> = type extends [...infer head, any] ? head : [];
|
|
92
|
-
export type ParseSignature<signature extends string,
|
|
167
|
+
export type ParseSignature<signature extends string, types extends {
|
|
168
|
+
records?: RecordLookup | unknown;
|
|
169
|
+
variants?: VariantLookup | unknown;
|
|
170
|
+
enums?: EnumLookup | unknown;
|
|
171
|
+
} = {}> = IsFunctionSignature<signature> extends true ? signature extends FunctionSignature<infer name, infer tail> ? {
|
|
93
172
|
readonly name: name;
|
|
94
173
|
readonly type: "function";
|
|
95
174
|
readonly context: _ParseFunctionParametersAndContext<signature>["Context"];
|
|
96
|
-
readonly inputs: ParseWitParameters<SplitParameters<_ParseFunctionParametersAndContext<signature>["Inputs"]>,
|
|
97
|
-
|
|
98
|
-
}>;
|
|
99
|
-
readonly outputs: tail extends `${string} -> ${infer returns};` ? ParseWitParameters<SplitParameters<Trim<returns>>, {
|
|
100
|
-
records: records;
|
|
101
|
-
}> : readonly [];
|
|
175
|
+
readonly inputs: ParseWitParameters<SplitParameters<_ParseFunctionParametersAndContext<signature>["Inputs"]>, types>;
|
|
176
|
+
readonly outputs: tail extends `${string} -> ${infer returns};` ? ParseWitParameters<SplitParameters<Trim<returns>>, types> : readonly [];
|
|
102
177
|
} : never : never;
|
|
103
178
|
export {};
|
|
104
179
|
//# sourceMappingURL=utils.d.ts.map
|