@solana/codecs-data-structures 2.0.0-experimental.2ac1df6 → 2.0.0-experimental.2df278c
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 +482 -4
- package/dist/index.browser.cjs +34 -43
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +35 -44
- package/dist/index.browser.js.map +1 -1
- package/dist/index.native.js +35 -44
- package/dist/index.native.js.map +1 -1
- package/dist/index.node.cjs +34 -43
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +35 -44
- package/dist/index.node.js.map +1 -1
- package/dist/types/array.d.ts +3 -18
- package/dist/types/array.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/map.d.ts +3 -18
- package/dist/types/map.d.ts.map +1 -1
- package/dist/types/scalar-enum.d.ts +36 -17
- package/dist/types/scalar-enum.d.ts.map +1 -1
- package/dist/types/set.d.ts +3 -18
- package/dist/types/set.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 +11 -33
|
@@ -1,17 +1,36 @@
|
|
|
1
1
|
import { FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, VariableSizeCodec, VariableSizeDecoder, VariableSizeEncoder } from '@solana/codecs-core';
|
|
2
2
|
import { FixedSizeNumberCodec, FixedSizeNumberDecoder, FixedSizeNumberEncoder, NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
|
|
3
3
|
/**
|
|
4
|
-
* Defines
|
|
4
|
+
* Defines the "lookup object" of a scalar enum.
|
|
5
5
|
*
|
|
6
6
|
* @example
|
|
7
7
|
* ```ts
|
|
8
8
|
* enum Direction { Left, Right };
|
|
9
|
-
* type DirectionType = ScalarEnum<Direction>;
|
|
10
9
|
* ```
|
|
11
10
|
*/
|
|
12
|
-
export type ScalarEnum
|
|
13
|
-
[key:
|
|
14
|
-
}
|
|
11
|
+
export type ScalarEnum = {
|
|
12
|
+
[key: string]: string | number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Returns the allowed input for a scalar enum.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* enum Direction { Left, Right };
|
|
20
|
+
* type DirectionInput = ScalarEnumFrom<Direction>; // "Left" | "Right" | 0 | 1
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export type ScalarEnumFrom<TEnum extends ScalarEnum> = keyof TEnum | TEnum[keyof TEnum];
|
|
24
|
+
/**
|
|
25
|
+
* Returns all the available variants of a scalar enum.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* enum Direction { Left, Right };
|
|
30
|
+
* type DirectionOutput = ScalarEnumFrom<Direction>; // 0 | 1
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export type ScalarEnumTo<TEnum extends ScalarEnum> = TEnum[keyof TEnum];
|
|
15
34
|
/** Defines the config for scalar enum codecs. */
|
|
16
35
|
export type ScalarEnumCodecConfig<TDiscriminator extends NumberCodec | NumberEncoder | NumberDecoder> = {
|
|
17
36
|
/**
|
|
@@ -26,31 +45,31 @@ export type ScalarEnumCodecConfig<TDiscriminator extends NumberCodec | NumberEnc
|
|
|
26
45
|
* @param constructor - The constructor of the scalar enum.
|
|
27
46
|
* @param config - A set of config for the encoder.
|
|
28
47
|
*/
|
|
29
|
-
export declare function getScalarEnumEncoder<
|
|
30
|
-
export declare function getScalarEnumEncoder<
|
|
48
|
+
export declare function getScalarEnumEncoder<TEnum extends ScalarEnum>(constructor: TEnum): FixedSizeEncoder<ScalarEnumFrom<TEnum>, 1>;
|
|
49
|
+
export declare function getScalarEnumEncoder<TEnum extends ScalarEnum, TSize extends number>(constructor: TEnum, config: ScalarEnumCodecConfig<NumberEncoder> & {
|
|
31
50
|
size: FixedSizeNumberEncoder<TSize>;
|
|
32
|
-
}): FixedSizeEncoder<
|
|
33
|
-
export declare function getScalarEnumEncoder<
|
|
51
|
+
}): FixedSizeEncoder<ScalarEnumFrom<TEnum>, TSize>;
|
|
52
|
+
export declare function getScalarEnumEncoder<TEnum extends ScalarEnum>(constructor: TEnum, config?: ScalarEnumCodecConfig<NumberEncoder>): VariableSizeEncoder<ScalarEnumFrom<TEnum>>;
|
|
34
53
|
/**
|
|
35
54
|
* Creates a scalar enum decoder.
|
|
36
55
|
*
|
|
37
56
|
* @param constructor - The constructor of the scalar enum.
|
|
38
57
|
* @param config - A set of config for the decoder.
|
|
39
58
|
*/
|
|
40
|
-
export declare function getScalarEnumDecoder<
|
|
41
|
-
export declare function getScalarEnumDecoder<
|
|
59
|
+
export declare function getScalarEnumDecoder<TEnum extends ScalarEnum>(constructor: TEnum): FixedSizeDecoder<ScalarEnumTo<TEnum>, 1>;
|
|
60
|
+
export declare function getScalarEnumDecoder<TEnum extends ScalarEnum, TSize extends number>(constructor: TEnum, config: ScalarEnumCodecConfig<NumberDecoder> & {
|
|
42
61
|
size: FixedSizeNumberDecoder<TSize>;
|
|
43
|
-
}): FixedSizeDecoder<
|
|
44
|
-
export declare function getScalarEnumDecoder<
|
|
62
|
+
}): FixedSizeDecoder<ScalarEnumTo<TEnum>, TSize>;
|
|
63
|
+
export declare function getScalarEnumDecoder<TEnum extends ScalarEnum>(constructor: TEnum, config?: ScalarEnumCodecConfig<NumberDecoder>): VariableSizeDecoder<ScalarEnumTo<TEnum>>;
|
|
45
64
|
/**
|
|
46
65
|
* Creates a scalar enum codec.
|
|
47
66
|
*
|
|
48
67
|
* @param constructor - The constructor of the scalar enum.
|
|
49
68
|
* @param config - A set of config for the codec.
|
|
50
69
|
*/
|
|
51
|
-
export declare function getScalarEnumCodec<
|
|
52
|
-
export declare function getScalarEnumCodec<
|
|
70
|
+
export declare function getScalarEnumCodec<TEnum extends ScalarEnum>(constructor: TEnum): FixedSizeCodec<ScalarEnumFrom<TEnum>, ScalarEnumTo<TEnum>, 1>;
|
|
71
|
+
export declare function getScalarEnumCodec<TEnum extends ScalarEnum, TSize extends number>(constructor: TEnum, config: ScalarEnumCodecConfig<NumberCodec> & {
|
|
53
72
|
size: FixedSizeNumberCodec<TSize>;
|
|
54
|
-
}): FixedSizeCodec<
|
|
55
|
-
export declare function getScalarEnumCodec<
|
|
73
|
+
}): FixedSizeCodec<ScalarEnumFrom<TEnum>, ScalarEnumTo<TEnum>, TSize>;
|
|
74
|
+
export declare function getScalarEnumCodec<TEnum extends ScalarEnum>(constructor: TEnum, config?: ScalarEnumCodecConfig<NumberCodec>): VariableSizeCodec<ScalarEnumFrom<TEnum>, ScalarEnumTo<TEnum>>;
|
|
56
75
|
//# sourceMappingURL=scalar-enum.d.ts.map
|
|
@@ -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;AAEhC
|
|
1
|
+
{"version":3,"file":"scalar-enum.d.ts","sourceRoot":"","sources":["../../src/scalar-enum.ts"],"names":[],"mappings":"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"}
|
package/dist/types/set.d.ts
CHANGED
|
@@ -21,12 +21,7 @@ export declare function getSetEncoder<TFrom>(item: Encoder<TFrom>, config: SetCo
|
|
|
21
21
|
export declare function getSetEncoder<TFrom>(item: FixedSizeEncoder<TFrom>, config: SetCodecConfig<NumberEncoder> & {
|
|
22
22
|
size: number;
|
|
23
23
|
}): FixedSizeEncoder<Set<TFrom>>;
|
|
24
|
-
export declare function getSetEncoder<TFrom>(item:
|
|
25
|
-
size: 'remainder';
|
|
26
|
-
}): VariableSizeEncoder<Set<TFrom>>;
|
|
27
|
-
export declare function getSetEncoder<TFrom>(item: Encoder<TFrom>, config?: SetCodecConfig<NumberEncoder> & {
|
|
28
|
-
size?: number | NumberEncoder;
|
|
29
|
-
}): VariableSizeEncoder<Set<TFrom>>;
|
|
24
|
+
export declare function getSetEncoder<TFrom>(item: Encoder<TFrom>, config?: SetCodecConfig<NumberEncoder>): VariableSizeEncoder<Set<TFrom>>;
|
|
30
25
|
/**
|
|
31
26
|
* Decodes an set of items.
|
|
32
27
|
*
|
|
@@ -39,12 +34,7 @@ export declare function getSetDecoder<TTo>(item: Decoder<TTo>, config: SetCodecC
|
|
|
39
34
|
export declare function getSetDecoder<TTo>(item: FixedSizeDecoder<TTo>, config: SetCodecConfig<NumberDecoder> & {
|
|
40
35
|
size: number;
|
|
41
36
|
}): FixedSizeDecoder<Set<TTo>>;
|
|
42
|
-
export declare function getSetDecoder<TTo>(item:
|
|
43
|
-
size: 'remainder';
|
|
44
|
-
}): VariableSizeDecoder<Set<TTo>>;
|
|
45
|
-
export declare function getSetDecoder<TTo>(item: Decoder<TTo>, config?: SetCodecConfig<NumberDecoder> & {
|
|
46
|
-
size?: number | NumberDecoder;
|
|
47
|
-
}): VariableSizeDecoder<Set<TTo>>;
|
|
37
|
+
export declare function getSetDecoder<TTo>(item: Decoder<TTo>, config?: SetCodecConfig<NumberDecoder>): VariableSizeDecoder<Set<TTo>>;
|
|
48
38
|
/**
|
|
49
39
|
* Creates a codec for an set of items.
|
|
50
40
|
*
|
|
@@ -57,10 +47,5 @@ export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item: Code
|
|
|
57
47
|
export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item: FixedSizeCodec<TFrom, TTo>, config: SetCodecConfig<NumberCodec> & {
|
|
58
48
|
size: number;
|
|
59
49
|
}): FixedSizeCodec<Set<TFrom>, Set<TTo>>;
|
|
60
|
-
export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item:
|
|
61
|
-
size: 'remainder';
|
|
62
|
-
}): VariableSizeCodec<Set<TFrom>, Set<TTo>>;
|
|
63
|
-
export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item: Codec<TFrom, TTo>, config?: SetCodecConfig<NumberCodec> & {
|
|
64
|
-
size?: number | NumberCodec;
|
|
65
|
-
}): VariableSizeCodec<Set<TFrom>, Set<TTo>>;
|
|
50
|
+
export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item: Codec<TFrom, TTo>, config?: SetCodecConfig<NumberCodec>): VariableSizeCodec<Set<TFrom>, Set<TTo>>;
|
|
66
51
|
//# sourceMappingURL=set.d.ts.map
|
package/dist/types/set.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/set.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EAEL,OAAO,EACP,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAGhB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAoC,MAAM,SAAS,CAAC;AAE/E,yCAAyC;AACzC,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,WAAW,GAAG,aAAa,GAAG,aAAa,IAAI;IACtF;;;OAGG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAC/B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EACpB,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,GACpD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAC/B,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC7B,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GACzD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,wBAAgB,aAAa,CAAC,KAAK,EAC/B,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/set.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.2df278c",
|
|
4
4
|
"description": "Codecs for various data structures",
|
|
5
5
|
"exports": {
|
|
6
6
|
"browser": {
|
|
@@ -49,31 +49,8 @@
|
|
|
49
49
|
"node": ">=17.4"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@solana/codecs-core": "2.0.0-experimental.
|
|
53
|
-
"@solana/codecs-numbers": "2.0.0-experimental.
|
|
54
|
-
},
|
|
55
|
-
"devDependencies": {
|
|
56
|
-
"@solana/eslint-config-solana": "^1.0.2",
|
|
57
|
-
"@swc/jest": "^0.2.29",
|
|
58
|
-
"@types/jest": "^29.5.11",
|
|
59
|
-
"@typescript-eslint/eslint-plugin": "^6.13.2",
|
|
60
|
-
"@typescript-eslint/parser": "^6.3.0",
|
|
61
|
-
"agadoo": "^3.0.0",
|
|
62
|
-
"eslint": "^8.45.0",
|
|
63
|
-
"eslint-plugin-jest": "^27.4.2",
|
|
64
|
-
"eslint-plugin-sort-keys-fix": "^1.1.2",
|
|
65
|
-
"jest": "^29.7.0",
|
|
66
|
-
"jest-environment-jsdom": "^29.7.0",
|
|
67
|
-
"jest-runner-eslint": "^2.1.2",
|
|
68
|
-
"jest-runner-prettier": "^1.0.0",
|
|
69
|
-
"prettier": "^3.1",
|
|
70
|
-
"tsup": "^8.0.1",
|
|
71
|
-
"typescript": "^5.2.2",
|
|
72
|
-
"version-from-git": "^1.1.1",
|
|
73
|
-
"@solana/codecs-strings": "2.0.0-experimental.2ac1df6",
|
|
74
|
-
"build-scripts": "0.0.0",
|
|
75
|
-
"test-config": "0.0.0",
|
|
76
|
-
"tsconfig": "0.0.0"
|
|
52
|
+
"@solana/codecs-core": "2.0.0-experimental.2df278c",
|
|
53
|
+
"@solana/codecs-numbers": "2.0.0-experimental.2df278c"
|
|
77
54
|
},
|
|
78
55
|
"bundlewatch": {
|
|
79
56
|
"defaultCompression": "gzip",
|
|
@@ -85,17 +62,18 @@
|
|
|
85
62
|
},
|
|
86
63
|
"scripts": {
|
|
87
64
|
"compile:js": "tsup --config build-scripts/tsup.config.package.ts",
|
|
88
|
-
"compile:typedefs": "tsc -p ./tsconfig.declarations.json && node node_modules/build-scripts/add-js-extension-to-types.mjs",
|
|
89
|
-
"dev": "jest -c node_modules/test-config/jest-dev.config.ts --rootDir . --watch",
|
|
90
|
-
"publish-
|
|
65
|
+
"compile:typedefs": "tsc -p ./tsconfig.declarations.json && node node_modules/@solana/build-scripts/add-js-extension-to-types.mjs",
|
|
66
|
+
"dev": "jest -c node_modules/@solana/test-config/jest-dev.config.ts --rootDir . --watch",
|
|
67
|
+
"publish-impl": "npm view $npm_package_name@$npm_package_version > /dev/null 2>&1 || pnpm publish --tag experimental --access public --no-git-checks",
|
|
68
|
+
"publish-packages": "pnpm prepublishOnly && pnpm publish-impl",
|
|
91
69
|
"style:fix": "pnpm eslint --fix src/* && pnpm prettier -w src/* package.json",
|
|
92
|
-
"test:lint": "jest -c node_modules/test-config/jest-lint.config.ts --rootDir . --silent",
|
|
93
|
-
"test:prettier": "jest -c node_modules/test-config/jest-prettier.config.ts --rootDir . --silent",
|
|
70
|
+
"test:lint": "jest -c node_modules/@solana/test-config/jest-lint.config.ts --rootDir . --silent",
|
|
71
|
+
"test:prettier": "jest -c node_modules/@solana/test-config/jest-prettier.config.ts --rootDir . --silent",
|
|
94
72
|
"test:treeshakability:browser": "agadoo dist/index.browser.js",
|
|
95
73
|
"test:treeshakability:native": "agadoo dist/index.native.js",
|
|
96
74
|
"test:treeshakability:node": "agadoo dist/index.node.js",
|
|
97
75
|
"test:typecheck": "tsc --noEmit",
|
|
98
|
-
"test:unit:browser": "jest -c node_modules/test-config/jest-unit.config.browser.ts --rootDir . --silent",
|
|
99
|
-
"test:unit:node": "jest -c node_modules/test-config/jest-unit.config.node.ts --rootDir . --silent"
|
|
76
|
+
"test:unit:browser": "jest -c node_modules/@solana/test-config/jest-unit.config.browser.ts --rootDir . --silent",
|
|
77
|
+
"test:unit:node": "jest -c node_modules/@solana/test-config/jest-unit.config.node.ts --rootDir . --silent"
|
|
100
78
|
}
|
|
101
79
|
}
|