@solana/codecs-data-structures 2.0.0-experimental.fb51adb → 2.0.0-experimental.fb655dd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.cjs +92 -23
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +92 -23
- package/dist/index.browser.js.map +1 -1
- package/dist/index.native.js +92 -23
- package/dist/index.native.js.map +1 -1
- package/dist/index.node.cjs +92 -23
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +92 -23
- package/dist/index.node.js.map +1 -1
- package/dist/types/assertions.d.ts.map +1 -1
- package/dist/types/boolean.d.ts.map +1 -1
- package/dist/types/data-enum.d.ts +16 -18
- package/dist/types/data-enum.d.ts.map +1 -1
- package/dist/types/nullable.d.ts.map +1 -1
- package/dist/types/scalar-enum.d.ts.map +1 -1
- package/dist/types/struct.d.ts +15 -30
- package/dist/types/struct.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -43,21 +43,6 @@ export type GetDataEnumKind<T extends DataEnum, K extends T['__kind']> = Extract
|
|
|
43
43
|
export type GetDataEnumKindContent<T extends DataEnum, K extends T['__kind']> = Omit<Extract<T, {
|
|
44
44
|
__kind: K;
|
|
45
45
|
}>, '__kind'>;
|
|
46
|
-
/** Get the name and encoder of each variant in a data enum. */
|
|
47
|
-
export type DataEnumToEncoderTuple<TFrom extends DataEnum> = Array<TFrom extends never ? never : [
|
|
48
|
-
TFrom['__kind'],
|
|
49
|
-
keyof Omit<TFrom, '__kind'> extends never ? Encoder<Omit<TFrom, '__kind'>> | Encoder<void> : Encoder<Omit<TFrom, '__kind'>>
|
|
50
|
-
]>;
|
|
51
|
-
/** Get the name and decoder of each variant in a data enum. */
|
|
52
|
-
export type DataEnumToDecoderTuple<TTo extends DataEnum> = Array<TTo extends never ? never : [
|
|
53
|
-
TTo['__kind'],
|
|
54
|
-
keyof Omit<TTo, '__kind'> extends never ? Decoder<Omit<TTo, '__kind'>> | Decoder<void> : Decoder<Omit<TTo, '__kind'>>
|
|
55
|
-
]>;
|
|
56
|
-
/** Get the name and codec of each variant in a data enum. */
|
|
57
|
-
export type DataEnumToCodecTuple<TFrom extends DataEnum, TTo extends TFrom = TFrom> = Array<TFrom extends never ? never : [
|
|
58
|
-
TFrom['__kind'],
|
|
59
|
-
keyof Omit<TFrom, '__kind'> extends never ? Codec<Omit<TFrom, '__kind'>, Omit<TTo, '__kind'>> | Codec<void> : Codec<Omit<TFrom, '__kind'>, Omit<TTo, '__kind'>>
|
|
60
|
-
]>;
|
|
61
46
|
/** Defines the config for data enum codecs. */
|
|
62
47
|
export type DataEnumCodecConfig<TDiscriminator = NumberCodec | NumberEncoder | NumberDecoder> = {
|
|
63
48
|
/**
|
|
@@ -66,25 +51,38 @@ export type DataEnumCodecConfig<TDiscriminator = NumberCodec | NumberEncoder | N
|
|
|
66
51
|
*/
|
|
67
52
|
size?: TDiscriminator;
|
|
68
53
|
};
|
|
54
|
+
type Variants<T> = readonly (readonly [string, T])[];
|
|
55
|
+
type ArrayIndices<T extends readonly unknown[]> = Exclude<Partial<T>['length'], T['length']> & number;
|
|
56
|
+
type GetEncoderTypeFromVariants<TVariants extends Variants<Encoder<any>>> = {
|
|
57
|
+
[I in ArrayIndices<TVariants>]: {
|
|
58
|
+
__kind: TVariants[I][0];
|
|
59
|
+
} & (TVariants[I][1] extends Encoder<infer TFrom> ? TFrom extends object ? TFrom : object : never);
|
|
60
|
+
}[ArrayIndices<TVariants>];
|
|
61
|
+
type GetDecoderTypeFromVariants<TVariants extends Variants<Decoder<any>>> = {
|
|
62
|
+
[I in ArrayIndices<TVariants>]: {
|
|
63
|
+
__kind: TVariants[I][0];
|
|
64
|
+
} & (TVariants[I][1] extends Decoder<infer TTo> ? TTo extends object ? TTo : object : never);
|
|
65
|
+
}[ArrayIndices<TVariants>];
|
|
69
66
|
/**
|
|
70
67
|
* Creates a data enum encoder.
|
|
71
68
|
*
|
|
72
69
|
* @param variants - The variant encoders of the data enum.
|
|
73
70
|
* @param config - A set of config for the encoder.
|
|
74
71
|
*/
|
|
75
|
-
export declare function getDataEnumEncoder<
|
|
72
|
+
export declare function getDataEnumEncoder<const TVariants extends Variants<Encoder<any>>>(variants: TVariants, config?: DataEnumCodecConfig<NumberEncoder>): Encoder<GetEncoderTypeFromVariants<TVariants>>;
|
|
76
73
|
/**
|
|
77
74
|
* Creates a data enum decoder.
|
|
78
75
|
*
|
|
79
76
|
* @param variants - The variant decoders of the data enum.
|
|
80
77
|
* @param config - A set of config for the decoder.
|
|
81
78
|
*/
|
|
82
|
-
export declare function getDataEnumDecoder<
|
|
79
|
+
export declare function getDataEnumDecoder<const TVariants extends Variants<Decoder<any>>>(variants: TVariants, config?: DataEnumCodecConfig<NumberDecoder>): Decoder<GetDecoderTypeFromVariants<TVariants>>;
|
|
83
80
|
/**
|
|
84
81
|
* Creates a data enum codec.
|
|
85
82
|
*
|
|
86
83
|
* @param variants - The variant codecs of the data enum.
|
|
87
84
|
* @param config - A set of config for the codec.
|
|
88
85
|
*/
|
|
89
|
-
export declare function getDataEnumCodec<
|
|
86
|
+
export declare function getDataEnumCodec<const TVariants extends Variants<Codec<any, any>>>(variants: TVariants, config?: DataEnumCodecConfig<NumberCodec>): Codec<GetEncoderTypeFromVariants<TVariants>, GetDecoderTypeFromVariants<TVariants> & GetEncoderTypeFromVariants<TVariants>>;
|
|
87
|
+
export {};
|
|
90
88
|
//# sourceMappingURL=data-enum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-enum.d.ts","sourceRoot":"","sources":["../../src/data-enum.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-enum.d.ts","sourceRoot":"","sources":["../../src/data-enum.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nullable.d.ts","sourceRoot":"","sources":["../../src/nullable.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,EAIL,OAAO,EACP,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAGhB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAGtB,WAAW,EACX,aAAa,EACb,aAAa,EAChB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"nullable.d.ts","sourceRoot":"","sources":["../../src/nullable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar-enum.d.ts","sourceRoot":"","sources":["../../src/scalar-enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAGhB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAGtB,WAAW,EACX,aAAa,EACb,aAAa,EAChB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"scalar-enum.d.ts","sourceRoot":"","sources":["../../src/scalar-enum.ts"],"names":[],"mappings":"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"}
|
package/dist/types/struct.d.ts
CHANGED
|
@@ -1,47 +1,32 @@
|
|
|
1
1
|
import { Codec, Decoder, Encoder, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, VariableSizeCodec, VariableSizeDecoder, VariableSizeEncoder } from '@solana/codecs-core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
[
|
|
9
|
-
}
|
|
10
|
-
/** Get the name and decoder of each field in a struct. */
|
|
11
|
-
export type StructToDecoderTuple<TTo extends object> = Array<{
|
|
12
|
-
[K in keyof TTo]: [K, Decoder<TTo[K]>];
|
|
13
|
-
}[keyof TTo]>;
|
|
14
|
-
/** Get the name and fixed-size decoder of each field in a struct. */
|
|
15
|
-
export type StructToFixedSizeDecoderTuple<TTo extends object> = Array<{
|
|
16
|
-
[K in keyof TTo]: [K, FixedSizeDecoder<TTo[K]>];
|
|
17
|
-
}[keyof TTo]>;
|
|
18
|
-
/** Get the name and codec of each field in a struct. */
|
|
19
|
-
export type StructToCodecTuple<TFrom extends object, TTo extends TFrom> = Array<{
|
|
20
|
-
[K in keyof TFrom]: [K, Codec<TFrom[K], TTo[K]>];
|
|
21
|
-
}[keyof TFrom]>;
|
|
22
|
-
/** Get the name and fixed-size codec of each field in a struct. */
|
|
23
|
-
export type StructToFixedSizeCodecTuple<TFrom extends object, TTo extends TFrom> = Array<{
|
|
24
|
-
[K in keyof TFrom]: [K, FixedSizeCodec<TFrom[K], TTo[K]>];
|
|
25
|
-
}[keyof TFrom]>;
|
|
2
|
+
type Fields<T> = readonly (readonly [string, T])[];
|
|
3
|
+
type ArrayIndices<T extends readonly unknown[]> = Exclude<Partial<T>['length'], T['length']> & number;
|
|
4
|
+
type GetEncoderTypeFromFields<TFields extends Fields<Encoder<any>>> = {
|
|
5
|
+
[I in ArrayIndices<TFields> as TFields[I][0]]: TFields[I][1] extends Encoder<infer TFrom> ? TFrom : never;
|
|
6
|
+
};
|
|
7
|
+
type GetDecoderTypeFromFields<TFields extends Fields<Decoder<any>>> = {
|
|
8
|
+
[I in ArrayIndices<TFields> as TFields[I][0]]: TFields[I][1] extends Decoder<infer TTo> ? TTo : never;
|
|
9
|
+
};
|
|
26
10
|
/**
|
|
27
11
|
* Creates a encoder for a custom object.
|
|
28
12
|
*
|
|
29
13
|
* @param fields - The name and encoder of each field.
|
|
30
14
|
*/
|
|
31
|
-
export declare function getStructEncoder<
|
|
32
|
-
export declare function getStructEncoder<
|
|
15
|
+
export declare function getStructEncoder<const TFields extends Fields<FixedSizeEncoder<any>>>(fields: TFields): FixedSizeEncoder<GetEncoderTypeFromFields<TFields>>;
|
|
16
|
+
export declare function getStructEncoder<const TFields extends Fields<Encoder<any>>>(fields: TFields): VariableSizeEncoder<GetEncoderTypeFromFields<TFields>>;
|
|
33
17
|
/**
|
|
34
18
|
* Creates a decoder for a custom object.
|
|
35
19
|
*
|
|
36
20
|
* @param fields - The name and decoder of each field.
|
|
37
21
|
*/
|
|
38
|
-
export declare function getStructDecoder<
|
|
39
|
-
export declare function getStructDecoder<
|
|
22
|
+
export declare function getStructDecoder<const TFields extends Fields<FixedSizeDecoder<any>>>(fields: TFields): FixedSizeDecoder<GetDecoderTypeFromFields<TFields>>;
|
|
23
|
+
export declare function getStructDecoder<const TFields extends Fields<Decoder<any>>>(fields: TFields): VariableSizeDecoder<GetDecoderTypeFromFields<TFields>>;
|
|
40
24
|
/**
|
|
41
25
|
* Creates a codec for a custom object.
|
|
42
26
|
*
|
|
43
27
|
* @param fields - The name and codec of each field.
|
|
44
28
|
*/
|
|
45
|
-
export declare function getStructCodec<
|
|
46
|
-
export declare function getStructCodec<
|
|
29
|
+
export declare function getStructCodec<const TFields extends Fields<FixedSizeCodec<any>>>(fields: TFields): FixedSizeCodec<GetEncoderTypeFromFields<TFields>, GetDecoderTypeFromFields<TFields> & GetEncoderTypeFromFields<TFields>>;
|
|
30
|
+
export declare function getStructCodec<const TFields extends Fields<Codec<any>>>(fields: TFields): VariableSizeCodec<GetEncoderTypeFromFields<TFields>, GetDecoderTypeFromFields<TFields> & GetEncoderTypeFromFields<TFields>>;
|
|
31
|
+
export {};
|
|
47
32
|
//# sourceMappingURL=struct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/struct.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/struct.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,EAIL,OAAO,EACP,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAEhB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAI7B,KAAK,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;AAEtG,KAAK,wBAAwB,CAAC,OAAO,SAAS,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI;KACjE,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK;CAC5G,CAAC;AAEF,KAAK,wBAAwB,CAAC,OAAO,SAAS,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI;KACjE,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK;CACxG,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAChF,MAAM,EAAE,OAAO,GAChB,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EACvE,MAAM,EAAE,OAAO,GAChB,mBAAmB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;AA4B1D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAChF,MAAM,EAAE,OAAO,GAChB,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EACvE,MAAM,EAAE,OAAO,GAChB,mBAAmB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;AAuB1D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAC5E,MAAM,EAAE,OAAO,GAChB,cAAc,CACb,wBAAwB,CAAC,OAAO,CAAC,EACjC,wBAAwB,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,CACxE,CAAC;AACF,wBAAgB,cAAc,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACnE,MAAM,EAAE,OAAO,GAChB,iBAAiB,CAChB,wBAAwB,CAAC,OAAO,CAAC,EACjC,wBAAwB,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,CACxE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana/codecs-data-structures",
|
|
3
|
-
"version": "2.0.0-experimental.
|
|
3
|
+
"version": "2.0.0-experimental.fb655dd",
|
|
4
4
|
"description": "Codecs for various data structures",
|
|
5
5
|
"exports": {
|
|
6
6
|
"browser": {
|
|
@@ -49,8 +49,9 @@
|
|
|
49
49
|
"node": ">=17.4"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@solana/codecs-core": "2.0.0-experimental.
|
|
53
|
-
"@solana/
|
|
52
|
+
"@solana/codecs-core": "2.0.0-experimental.fb655dd",
|
|
53
|
+
"@solana/errors": "2.0.0-experimental.fb655dd",
|
|
54
|
+
"@solana/codecs-numbers": "2.0.0-experimental.fb655dd"
|
|
54
55
|
},
|
|
55
56
|
"bundlewatch": {
|
|
56
57
|
"defaultCompression": "gzip",
|