@solana/codecs-numbers 2.0.0-experimental.0983bae → 2.0.0-experimental.0af01ac
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 +112 -4
- package/dist/index.browser.cjs +54 -66
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +55 -67
- package/dist/index.browser.js.map +1 -1
- package/dist/index.native.js +55 -67
- package/dist/index.native.js.map +1 -1
- package/dist/index.node.cjs +54 -66
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +55 -67
- package/dist/index.node.js.map +1 -1
- package/dist/types/assertions.d.ts.map +1 -1
- package/dist/types/common.d.ts +8 -4
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/f32.d.ts +5 -5
- package/dist/types/f32.d.ts.map +1 -1
- package/dist/types/f64.d.ts +5 -5
- package/dist/types/f64.d.ts.map +1 -1
- package/dist/types/i128.d.ts +5 -5
- package/dist/types/i128.d.ts.map +1 -1
- package/dist/types/i16.d.ts +5 -5
- package/dist/types/i16.d.ts.map +1 -1
- package/dist/types/i32.d.ts +5 -5
- package/dist/types/i32.d.ts.map +1 -1
- package/dist/types/i64.d.ts +5 -5
- package/dist/types/i64.d.ts.map +1 -1
- package/dist/types/i8.d.ts +4 -5
- package/dist/types/i8.d.ts.map +1 -1
- package/dist/types/index.d.ts +15 -15
- package/dist/types/short-u16.d.ts +4 -8
- package/dist/types/short-u16.d.ts.map +1 -1
- package/dist/types/u128.d.ts +5 -5
- package/dist/types/u128.d.ts.map +1 -1
- package/dist/types/u16.d.ts +5 -5
- package/dist/types/u16.d.ts.map +1 -1
- package/dist/types/u32.d.ts +5 -5
- package/dist/types/u32.d.ts.map +1 -1
- package/dist/types/u64.d.ts +5 -5
- package/dist/types/u64.d.ts.map +1 -1
- package/dist/types/u8.d.ts +4 -5
- package/dist/types/u8.d.ts.map +1 -1
- package/dist/types/utils.d.ts +11 -11
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +12 -32
- package/dist/index.development.js +0 -412
- package/dist/index.development.js.map +0 -1
- package/dist/index.production.min.js +0 -51
package/dist/types/u128.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u128.d.ts","sourceRoot":"","sources":["../../src/u128.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"u128.d.ts","sourceRoot":"","sources":["../../src/u128.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,cAAc,YAAY,iBAAiB,KAAQ,iBAAiB,MAAM,GAAG,MAAM,EAAE,EAAE,CAa9F,CAAC;AAEP,eAAO,MAAM,cAAc,YAAY,iBAAiB,KAAQ,iBAAiB,MAAM,EAAE,EAAE,CAYrF,CAAC;AAEP,eAAO,MAAM,YAAY,YAAY,iBAAiB,KAAQ,eAAe,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,CACxC,CAAC"}
|
package/dist/types/u16.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NumberCodecConfig } from './common';
|
|
3
|
-
export declare const getU16Encoder: (config?: NumberCodecConfig) =>
|
|
4
|
-
export declare const getU16Decoder: (config?: NumberCodecConfig) =>
|
|
5
|
-
export declare const getU16Codec: (config?: NumberCodecConfig) =>
|
|
1
|
+
import { FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';
|
|
2
|
+
import { NumberCodecConfig } from './common.js';
|
|
3
|
+
export declare const getU16Encoder: (config?: NumberCodecConfig) => FixedSizeEncoder<number, 2>;
|
|
4
|
+
export declare const getU16Decoder: (config?: NumberCodecConfig) => FixedSizeDecoder<number, 2>;
|
|
5
|
+
export declare const getU16Codec: (config?: NumberCodecConfig) => FixedSizeCodec<number, number, 2>;
|
|
6
6
|
//# sourceMappingURL=u16.d.ts.map
|
package/dist/types/u16.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u16.d.ts","sourceRoot":"","sources":["../../src/u16.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"u16.d.ts","sourceRoot":"","sources":["../../src/u16.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,aAAa,YAAY,iBAAiB,KAAQ,iBAAiB,MAAM,EAAE,CAAC,CAOnF,CAAC;AAEP,eAAO,MAAM,aAAa,YAAY,iBAAiB,KAAQ,iBAAiB,MAAM,EAAE,CAAC,CAMnF,CAAC;AAEP,eAAO,MAAM,WAAW,YAAY,iBAAiB,KAAQ,eAAe,MAAM,EAAE,MAAM,EAAE,CAAC,CAC/B,CAAC"}
|
package/dist/types/u32.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NumberCodecConfig } from './common';
|
|
3
|
-
export declare const getU32Encoder: (config?: NumberCodecConfig) =>
|
|
4
|
-
export declare const getU32Decoder: (config?: NumberCodecConfig) =>
|
|
5
|
-
export declare const getU32Codec: (config?: NumberCodecConfig) =>
|
|
1
|
+
import { FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';
|
|
2
|
+
import { NumberCodecConfig } from './common.js';
|
|
3
|
+
export declare const getU32Encoder: (config?: NumberCodecConfig) => FixedSizeEncoder<number, 4>;
|
|
4
|
+
export declare const getU32Decoder: (config?: NumberCodecConfig) => FixedSizeDecoder<number, 4>;
|
|
5
|
+
export declare const getU32Codec: (config?: NumberCodecConfig) => FixedSizeCodec<number, number, 4>;
|
|
6
6
|
//# sourceMappingURL=u32.d.ts.map
|
package/dist/types/u32.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u32.d.ts","sourceRoot":"","sources":["../../src/u32.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"u32.d.ts","sourceRoot":"","sources":["../../src/u32.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,aAAa,YAAY,iBAAiB,KAAQ,iBAAiB,MAAM,EAAE,CAAC,CAOnF,CAAC;AAEP,eAAO,MAAM,aAAa,YAAY,iBAAiB,KAAQ,iBAAiB,MAAM,EAAE,CAAC,CAMnF,CAAC;AAEP,eAAO,MAAM,WAAW,YAAY,iBAAiB,KAAQ,eAAe,MAAM,EAAE,MAAM,EAAE,CAAC,CAC/B,CAAC"}
|
package/dist/types/u64.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NumberCodecConfig } from './common';
|
|
3
|
-
export declare const getU64Encoder: (config?: NumberCodecConfig) =>
|
|
4
|
-
export declare const getU64Decoder: (config?: NumberCodecConfig) =>
|
|
5
|
-
export declare const getU64Codec: (config?: NumberCodecConfig) =>
|
|
1
|
+
import { FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';
|
|
2
|
+
import { NumberCodecConfig } from './common.js';
|
|
3
|
+
export declare const getU64Encoder: (config?: NumberCodecConfig) => FixedSizeEncoder<number | bigint, 8>;
|
|
4
|
+
export declare const getU64Decoder: (config?: NumberCodecConfig) => FixedSizeDecoder<bigint, 8>;
|
|
5
|
+
export declare const getU64Codec: (config?: NumberCodecConfig) => FixedSizeCodec<number | bigint, bigint, 8>;
|
|
6
6
|
//# sourceMappingURL=u64.d.ts.map
|
package/dist/types/u64.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u64.d.ts","sourceRoot":"","sources":["../../src/u64.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"u64.d.ts","sourceRoot":"","sources":["../../src/u64.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,aAAa,YAAY,iBAAiB,KAAQ,iBAAiB,MAAM,GAAG,MAAM,EAAE,CAAC,CAO5F,CAAC;AAEP,eAAO,MAAM,aAAa,YAAY,iBAAiB,KAAQ,iBAAiB,MAAM,EAAE,CAAC,CAMnF,CAAC;AAEP,eAAO,MAAM,WAAW,YAAY,iBAAiB,KAAQ,eAAe,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CACxC,CAAC"}
|
package/dist/types/u8.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const getU8Codec: (config?: SingleByteNumberCodecConfig) => Codec<number>;
|
|
1
|
+
import { FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';
|
|
2
|
+
export declare const getU8Encoder: () => FixedSizeEncoder<number, 1>;
|
|
3
|
+
export declare const getU8Decoder: () => FixedSizeDecoder<number, 1>;
|
|
4
|
+
export declare const getU8Codec: () => FixedSizeCodec<number, number, 1>;
|
|
6
5
|
//# sourceMappingURL=u8.d.ts.map
|
package/dist/types/u8.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u8.d.ts","sourceRoot":"","sources":["../../src/u8.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"u8.d.ts","sourceRoot":"","sources":["../../src/u8.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvG,eAAO,MAAM,YAAY,QAAO,iBAAiB,MAAM,EAAE,CAAC,CAMpD,CAAC;AAEP,eAAO,MAAM,YAAY,QAAO,iBAAiB,MAAM,EAAE,CAAC,CAKpD,CAAC;AAEP,eAAO,MAAM,UAAU,QAAO,eAAe,MAAM,EAAE,MAAM,EAAE,CAAC,CAAiD,CAAC"}
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NumberCodecConfig
|
|
3
|
-
type NumberFactorySharedInput = {
|
|
1
|
+
import { FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';
|
|
2
|
+
import { NumberCodecConfig } from './common.js';
|
|
3
|
+
type NumberFactorySharedInput<TSize extends number> = {
|
|
4
4
|
name: string;
|
|
5
|
-
size:
|
|
6
|
-
config
|
|
5
|
+
size: TSize;
|
|
6
|
+
config?: NumberCodecConfig;
|
|
7
7
|
};
|
|
8
|
-
type NumberFactoryEncoderInput<
|
|
8
|
+
type NumberFactoryEncoderInput<TFrom, TSize extends number> = NumberFactorySharedInput<TSize> & {
|
|
9
9
|
range?: [number | bigint, number | bigint];
|
|
10
|
-
set: (view: DataView, value:
|
|
10
|
+
set: (view: DataView, value: TFrom, littleEndian?: boolean) => void;
|
|
11
11
|
};
|
|
12
|
-
type NumberFactoryDecoderInput<
|
|
13
|
-
get: (view: DataView, littleEndian?: boolean) =>
|
|
12
|
+
type NumberFactoryDecoderInput<TTo, TSize extends number> = NumberFactorySharedInput<TSize> & {
|
|
13
|
+
get: (view: DataView, littleEndian?: boolean) => TTo;
|
|
14
14
|
};
|
|
15
|
-
export declare function numberEncoderFactory<
|
|
16
|
-
export declare function numberDecoderFactory<
|
|
15
|
+
export declare function numberEncoderFactory<TFrom extends number | bigint, TSize extends number>(input: NumberFactoryEncoderInput<TFrom, TSize>): FixedSizeEncoder<TFrom, TSize>;
|
|
16
|
+
export declare function numberDecoderFactory<TTo extends number | bigint, TSize extends number>(input: NumberFactoryDecoderInput<TTo, TSize>): FixedSizeDecoder<TTo, TSize>;
|
|
17
17
|
export {};
|
|
18
18
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,gBAAgB,EAChB,gBAAgB,EAEnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAU,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErD,KAAK,wBAAwB,CAAC,KAAK,SAAS,MAAM,IAAI;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,KAAK,yBAAyB,CAAC,KAAK,EAAE,KAAK,SAAS,MAAM,IAAI,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC5F,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC3C,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACvE,CAAC;AAEF,KAAK,yBAAyB,CAAC,GAAG,EAAE,KAAK,SAAS,MAAM,IAAI,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC1F,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC;CACxD,CAAC;AAMF,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,SAAS,MAAM,EACpF,KAAK,EAAE,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,GAC/C,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAahC;AAED,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,SAAS,MAAM,EAClF,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,KAAK,CAAC,GAC7C,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAU9B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana/codecs-numbers",
|
|
3
|
-
"version": "2.0.0-experimental.
|
|
3
|
+
"version": "2.0.0-experimental.0af01ac",
|
|
4
4
|
"description": "Codecs for numbers of different sizes and endianness",
|
|
5
5
|
"exports": {
|
|
6
6
|
"browser": {
|
|
@@ -49,29 +49,8 @@
|
|
|
49
49
|
"node": ">=17.4"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@solana/
|
|
53
|
-
|
|
54
|
-
"devDependencies": {
|
|
55
|
-
"@solana/eslint-config-solana": "^1.0.2",
|
|
56
|
-
"@swc/jest": "^0.2.29",
|
|
57
|
-
"@types/jest": "^29.5.6",
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^6.7.0",
|
|
59
|
-
"@typescript-eslint/parser": "^6.3.0",
|
|
60
|
-
"agadoo": "^3.0.0",
|
|
61
|
-
"eslint": "^8.45.0",
|
|
62
|
-
"eslint-plugin-jest": "^27.4.2",
|
|
63
|
-
"eslint-plugin-sort-keys-fix": "^1.1.2",
|
|
64
|
-
"jest": "^29.7.0",
|
|
65
|
-
"jest-environment-jsdom": "^29.7.0",
|
|
66
|
-
"jest-runner-eslint": "^2.1.2",
|
|
67
|
-
"jest-runner-prettier": "^1.0.0",
|
|
68
|
-
"prettier": "^2.8",
|
|
69
|
-
"tsup": "7.2.0",
|
|
70
|
-
"typescript": "^5.2.2",
|
|
71
|
-
"version-from-git": "^1.1.1",
|
|
72
|
-
"tsconfig": "0.0.0",
|
|
73
|
-
"test-config": "0.0.0",
|
|
74
|
-
"build-scripts": "0.0.0"
|
|
52
|
+
"@solana/errors": "2.0.0-experimental.0af01ac",
|
|
53
|
+
"@solana/codecs-core": "2.0.0-experimental.0af01ac"
|
|
75
54
|
},
|
|
76
55
|
"bundlewatch": {
|
|
77
56
|
"defaultCompression": "gzip",
|
|
@@ -82,18 +61,19 @@
|
|
|
82
61
|
]
|
|
83
62
|
},
|
|
84
63
|
"scripts": {
|
|
85
|
-
"compile:js": "tsup --config build-scripts/tsup.config.
|
|
86
|
-
"compile:typedefs": "tsc -p ./tsconfig.declarations.json",
|
|
87
|
-
"dev": "jest -c node_modules/test-config/jest-dev.config.ts --rootDir . --watch",
|
|
88
|
-
"publish-
|
|
64
|
+
"compile:js": "tsup --config build-scripts/tsup.config.package.ts",
|
|
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",
|
|
89
69
|
"style:fix": "pnpm eslint --fix src/* && pnpm prettier -w src/* package.json",
|
|
90
|
-
"test:lint": "jest -c node_modules/test-config/jest-lint.config.ts --rootDir . --silent",
|
|
91
|
-
"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",
|
|
92
72
|
"test:treeshakability:browser": "agadoo dist/index.browser.js",
|
|
93
73
|
"test:treeshakability:native": "agadoo dist/index.native.js",
|
|
94
74
|
"test:treeshakability:node": "agadoo dist/index.node.js",
|
|
95
75
|
"test:typecheck": "tsc --noEmit",
|
|
96
|
-
"test:unit:browser": "jest -c node_modules/test-config/jest-unit.config.browser.ts --rootDir . --silent",
|
|
97
|
-
"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"
|
|
98
78
|
}
|
|
99
79
|
}
|
|
@@ -1,412 +0,0 @@
|
|
|
1
|
-
this.globalThis = this.globalThis || {};
|
|
2
|
-
this.globalThis.solanaWeb3 = (function (exports) {
|
|
3
|
-
'use strict';
|
|
4
|
-
|
|
5
|
-
// src/assertions.ts
|
|
6
|
-
function assertNumberIsBetweenForCodec(codecDescription, min, max, value) {
|
|
7
|
-
if (value < min || value > max) {
|
|
8
|
-
throw new Error(
|
|
9
|
-
`Codec [${codecDescription}] expected number to be in the range [${min}, ${max}], got ${value}.`
|
|
10
|
-
);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// src/common.ts
|
|
15
|
-
var Endian = /* @__PURE__ */ ((Endian2) => {
|
|
16
|
-
Endian2[Endian2["LITTLE"] = 0] = "LITTLE";
|
|
17
|
-
Endian2[Endian2["BIG"] = 1] = "BIG";
|
|
18
|
-
return Endian2;
|
|
19
|
-
})(Endian || {});
|
|
20
|
-
|
|
21
|
-
// ../codecs-core/dist/index.browser.js
|
|
22
|
-
function assertByteArrayIsNotEmptyForCodec(codecDescription, bytes, offset = 0) {
|
|
23
|
-
if (bytes.length - offset <= 0) {
|
|
24
|
-
throw new Error(`Codec [${codecDescription}] cannot decode empty byte arrays.`);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function assertByteArrayHasEnoughBytesForCodec(codecDescription, expected, bytes, offset = 0) {
|
|
28
|
-
const bytesLength = bytes.length - offset;
|
|
29
|
-
if (bytesLength < expected) {
|
|
30
|
-
throw new Error(`Codec [${codecDescription}] expected ${expected} bytes, got ${bytesLength}.`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function combineCodec(encoder, decoder, description) {
|
|
34
|
-
if (encoder.fixedSize !== decoder.fixedSize) {
|
|
35
|
-
throw new Error(
|
|
36
|
-
`Encoder and decoder must have the same fixed size, got [${encoder.fixedSize}] and [${decoder.fixedSize}].`
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
if (encoder.maxSize !== decoder.maxSize) {
|
|
40
|
-
throw new Error(
|
|
41
|
-
`Encoder and decoder must have the same max size, got [${encoder.maxSize}] and [${decoder.maxSize}].`
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
if (description === void 0 && encoder.description !== decoder.description) {
|
|
45
|
-
throw new Error(
|
|
46
|
-
`Encoder and decoder must have the same description, got [${encoder.description}] and [${decoder.description}]. Pass a custom description as a third argument if you want to override the description and bypass this error.`
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
decode: decoder.decode,
|
|
51
|
-
description: description ?? encoder.description,
|
|
52
|
-
encode: encoder.encode,
|
|
53
|
-
fixedSize: encoder.fixedSize,
|
|
54
|
-
maxSize: encoder.maxSize
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// src/utils.ts
|
|
59
|
-
function sharedNumberFactory(input) {
|
|
60
|
-
let littleEndian;
|
|
61
|
-
let defaultDescription = input.name;
|
|
62
|
-
if (input.size > 1) {
|
|
63
|
-
littleEndian = !("endian" in input.config) || input.config.endian === 0 /* LITTLE */;
|
|
64
|
-
defaultDescription += littleEndian ? "(le)" : "(be)";
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
description: input.config.description ?? defaultDescription,
|
|
68
|
-
fixedSize: input.size,
|
|
69
|
-
littleEndian,
|
|
70
|
-
maxSize: input.size
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
function numberEncoderFactory(input) {
|
|
74
|
-
const codecData = sharedNumberFactory(input);
|
|
75
|
-
return {
|
|
76
|
-
description: codecData.description,
|
|
77
|
-
encode(value) {
|
|
78
|
-
if (input.range) {
|
|
79
|
-
assertNumberIsBetweenForCodec(input.name, input.range[0], input.range[1], value);
|
|
80
|
-
}
|
|
81
|
-
const arrayBuffer = new ArrayBuffer(input.size);
|
|
82
|
-
input.set(new DataView(arrayBuffer), value, codecData.littleEndian);
|
|
83
|
-
return new Uint8Array(arrayBuffer);
|
|
84
|
-
},
|
|
85
|
-
fixedSize: codecData.fixedSize,
|
|
86
|
-
maxSize: codecData.maxSize
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
function numberDecoderFactory(input) {
|
|
90
|
-
const codecData = sharedNumberFactory(input);
|
|
91
|
-
return {
|
|
92
|
-
decode(bytes, offset = 0) {
|
|
93
|
-
assertByteArrayIsNotEmptyForCodec(codecData.description, bytes, offset);
|
|
94
|
-
assertByteArrayHasEnoughBytesForCodec(codecData.description, input.size, bytes, offset);
|
|
95
|
-
const view = new DataView(toArrayBuffer(bytes, offset, input.size));
|
|
96
|
-
return [input.get(view, codecData.littleEndian), offset + input.size];
|
|
97
|
-
},
|
|
98
|
-
description: codecData.description,
|
|
99
|
-
fixedSize: codecData.fixedSize,
|
|
100
|
-
maxSize: codecData.maxSize
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
function toArrayBuffer(bytes, offset, length) {
|
|
104
|
-
const bytesOffset = bytes.byteOffset + (offset ?? 0);
|
|
105
|
-
const bytesLength = length ?? bytes.byteLength;
|
|
106
|
-
return bytes.buffer.slice(bytesOffset, bytesOffset + bytesLength);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// src/f32.ts
|
|
110
|
-
var getF32Encoder = (config = {}) => numberEncoderFactory({
|
|
111
|
-
config,
|
|
112
|
-
name: "f32",
|
|
113
|
-
set: (view, value, le) => view.setFloat32(0, value, le),
|
|
114
|
-
size: 4
|
|
115
|
-
});
|
|
116
|
-
var getF32Decoder = (config = {}) => numberDecoderFactory({
|
|
117
|
-
config,
|
|
118
|
-
get: (view, le) => view.getFloat32(0, le),
|
|
119
|
-
name: "f32",
|
|
120
|
-
size: 4
|
|
121
|
-
});
|
|
122
|
-
var getF32Codec = (config = {}) => combineCodec(getF32Encoder(config), getF32Decoder(config));
|
|
123
|
-
|
|
124
|
-
// src/f64.ts
|
|
125
|
-
var getF64Encoder = (config = {}) => numberEncoderFactory({
|
|
126
|
-
config,
|
|
127
|
-
name: "f64",
|
|
128
|
-
set: (view, value, le) => view.setFloat64(0, value, le),
|
|
129
|
-
size: 8
|
|
130
|
-
});
|
|
131
|
-
var getF64Decoder = (config = {}) => numberDecoderFactory({
|
|
132
|
-
config,
|
|
133
|
-
get: (view, le) => view.getFloat64(0, le),
|
|
134
|
-
name: "f64",
|
|
135
|
-
size: 8
|
|
136
|
-
});
|
|
137
|
-
var getF64Codec = (config = {}) => combineCodec(getF64Encoder(config), getF64Decoder(config));
|
|
138
|
-
|
|
139
|
-
// src/i128.ts
|
|
140
|
-
var getI128Encoder = (config = {}) => numberEncoderFactory({
|
|
141
|
-
config,
|
|
142
|
-
name: "i128",
|
|
143
|
-
range: [-BigInt("0x7fffffffffffffffffffffffffffffff") - 1n, BigInt("0x7fffffffffffffffffffffffffffffff")],
|
|
144
|
-
set: (view, value, le) => {
|
|
145
|
-
const leftOffset = le ? 8 : 0;
|
|
146
|
-
const rightOffset = le ? 0 : 8;
|
|
147
|
-
const rightMask = 0xffffffffffffffffn;
|
|
148
|
-
view.setBigInt64(leftOffset, BigInt(value) >> 64n, le);
|
|
149
|
-
view.setBigUint64(rightOffset, BigInt(value) & rightMask, le);
|
|
150
|
-
},
|
|
151
|
-
size: 16
|
|
152
|
-
});
|
|
153
|
-
var getI128Decoder = (config = {}) => numberDecoderFactory({
|
|
154
|
-
config,
|
|
155
|
-
get: (view, le) => {
|
|
156
|
-
const leftOffset = le ? 8 : 0;
|
|
157
|
-
const rightOffset = le ? 0 : 8;
|
|
158
|
-
const left = view.getBigInt64(leftOffset, le);
|
|
159
|
-
const right = view.getBigUint64(rightOffset, le);
|
|
160
|
-
return (left << 64n) + right;
|
|
161
|
-
},
|
|
162
|
-
name: "i128",
|
|
163
|
-
size: 16
|
|
164
|
-
});
|
|
165
|
-
var getI128Codec = (config = {}) => combineCodec(getI128Encoder(config), getI128Decoder(config));
|
|
166
|
-
|
|
167
|
-
// src/i16.ts
|
|
168
|
-
var getI16Encoder = (config = {}) => numberEncoderFactory({
|
|
169
|
-
config,
|
|
170
|
-
name: "i16",
|
|
171
|
-
range: [-Number("0x7fff") - 1, Number("0x7fff")],
|
|
172
|
-
set: (view, value, le) => view.setInt16(0, value, le),
|
|
173
|
-
size: 2
|
|
174
|
-
});
|
|
175
|
-
var getI16Decoder = (config = {}) => numberDecoderFactory({
|
|
176
|
-
config,
|
|
177
|
-
get: (view, le) => view.getInt16(0, le),
|
|
178
|
-
name: "i16",
|
|
179
|
-
size: 2
|
|
180
|
-
});
|
|
181
|
-
var getI16Codec = (config = {}) => combineCodec(getI16Encoder(config), getI16Decoder(config));
|
|
182
|
-
|
|
183
|
-
// src/i32.ts
|
|
184
|
-
var getI32Encoder = (config = {}) => numberEncoderFactory({
|
|
185
|
-
config,
|
|
186
|
-
name: "i32",
|
|
187
|
-
range: [-Number("0x7fffffff") - 1, Number("0x7fffffff")],
|
|
188
|
-
set: (view, value, le) => view.setInt32(0, value, le),
|
|
189
|
-
size: 4
|
|
190
|
-
});
|
|
191
|
-
var getI32Decoder = (config = {}) => numberDecoderFactory({
|
|
192
|
-
config,
|
|
193
|
-
get: (view, le) => view.getInt32(0, le),
|
|
194
|
-
name: "i32",
|
|
195
|
-
size: 4
|
|
196
|
-
});
|
|
197
|
-
var getI32Codec = (config = {}) => combineCodec(getI32Encoder(config), getI32Decoder(config));
|
|
198
|
-
|
|
199
|
-
// src/i64.ts
|
|
200
|
-
var getI64Encoder = (config = {}) => numberEncoderFactory({
|
|
201
|
-
config,
|
|
202
|
-
name: "i64",
|
|
203
|
-
range: [-BigInt("0x7fffffffffffffff") - 1n, BigInt("0x7fffffffffffffff")],
|
|
204
|
-
set: (view, value, le) => view.setBigInt64(0, BigInt(value), le),
|
|
205
|
-
size: 8
|
|
206
|
-
});
|
|
207
|
-
var getI64Decoder = (config = {}) => numberDecoderFactory({
|
|
208
|
-
config,
|
|
209
|
-
get: (view, le) => view.getBigInt64(0, le),
|
|
210
|
-
name: "i64",
|
|
211
|
-
size: 8
|
|
212
|
-
});
|
|
213
|
-
var getI64Codec = (config = {}) => combineCodec(getI64Encoder(config), getI64Decoder(config));
|
|
214
|
-
|
|
215
|
-
// src/i8.ts
|
|
216
|
-
var getI8Encoder = (config = {}) => numberEncoderFactory({
|
|
217
|
-
config,
|
|
218
|
-
name: "i8",
|
|
219
|
-
range: [-Number("0x7f") - 1, Number("0x7f")],
|
|
220
|
-
set: (view, value) => view.setInt8(0, value),
|
|
221
|
-
size: 1
|
|
222
|
-
});
|
|
223
|
-
var getI8Decoder = (config = {}) => numberDecoderFactory({
|
|
224
|
-
config,
|
|
225
|
-
get: (view) => view.getInt8(0),
|
|
226
|
-
name: "i8",
|
|
227
|
-
size: 1
|
|
228
|
-
});
|
|
229
|
-
var getI8Codec = (config = {}) => combineCodec(getI8Encoder(config), getI8Decoder(config));
|
|
230
|
-
|
|
231
|
-
// src/short-u16.ts
|
|
232
|
-
var getShortU16Encoder = (config = {}) => ({
|
|
233
|
-
description: config.description ?? "shortU16",
|
|
234
|
-
encode: (value) => {
|
|
235
|
-
assertNumberIsBetweenForCodec("shortU16", 0, 65535, value);
|
|
236
|
-
const bytes = [0];
|
|
237
|
-
for (let ii = 0; ; ii += 1) {
|
|
238
|
-
const alignedValue = value >> ii * 7;
|
|
239
|
-
if (alignedValue === 0) {
|
|
240
|
-
break;
|
|
241
|
-
}
|
|
242
|
-
const nextSevenBits = 127 & alignedValue;
|
|
243
|
-
bytes[ii] = nextSevenBits;
|
|
244
|
-
if (ii > 0) {
|
|
245
|
-
bytes[ii - 1] |= 128;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
return new Uint8Array(bytes);
|
|
249
|
-
},
|
|
250
|
-
fixedSize: null,
|
|
251
|
-
maxSize: 3
|
|
252
|
-
});
|
|
253
|
-
var getShortU16Decoder = (config = {}) => ({
|
|
254
|
-
decode: (bytes, offset = 0) => {
|
|
255
|
-
let value = 0;
|
|
256
|
-
let byteCount = 0;
|
|
257
|
-
while (++byteCount) {
|
|
258
|
-
const byteIndex = byteCount - 1;
|
|
259
|
-
const currentByte = bytes[offset + byteIndex];
|
|
260
|
-
const nextSevenBits = 127 & currentByte;
|
|
261
|
-
value |= nextSevenBits << byteIndex * 7;
|
|
262
|
-
if ((currentByte & 128) === 0) {
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
return [value, offset + byteCount];
|
|
267
|
-
},
|
|
268
|
-
description: config.description ?? "shortU16",
|
|
269
|
-
fixedSize: null,
|
|
270
|
-
maxSize: 3
|
|
271
|
-
});
|
|
272
|
-
var getShortU16Codec = (config = {}) => combineCodec(getShortU16Encoder(config), getShortU16Decoder(config));
|
|
273
|
-
|
|
274
|
-
// src/u128.ts
|
|
275
|
-
var getU128Encoder = (config = {}) => numberEncoderFactory({
|
|
276
|
-
config,
|
|
277
|
-
name: "u128",
|
|
278
|
-
range: [0, BigInt("0xffffffffffffffffffffffffffffffff")],
|
|
279
|
-
set: (view, value, le) => {
|
|
280
|
-
const leftOffset = le ? 8 : 0;
|
|
281
|
-
const rightOffset = le ? 0 : 8;
|
|
282
|
-
const rightMask = 0xffffffffffffffffn;
|
|
283
|
-
view.setBigUint64(leftOffset, BigInt(value) >> 64n, le);
|
|
284
|
-
view.setBigUint64(rightOffset, BigInt(value) & rightMask, le);
|
|
285
|
-
},
|
|
286
|
-
size: 16
|
|
287
|
-
});
|
|
288
|
-
var getU128Decoder = (config = {}) => numberDecoderFactory({
|
|
289
|
-
config,
|
|
290
|
-
get: (view, le) => {
|
|
291
|
-
const leftOffset = le ? 8 : 0;
|
|
292
|
-
const rightOffset = le ? 0 : 8;
|
|
293
|
-
const left = view.getBigUint64(leftOffset, le);
|
|
294
|
-
const right = view.getBigUint64(rightOffset, le);
|
|
295
|
-
return (left << 64n) + right;
|
|
296
|
-
},
|
|
297
|
-
name: "u128",
|
|
298
|
-
size: 16
|
|
299
|
-
});
|
|
300
|
-
var getU128Codec = (config = {}) => combineCodec(getU128Encoder(config), getU128Decoder(config));
|
|
301
|
-
|
|
302
|
-
// src/u16.ts
|
|
303
|
-
var getU16Encoder = (config = {}) => numberEncoderFactory({
|
|
304
|
-
config,
|
|
305
|
-
name: "u16",
|
|
306
|
-
range: [0, Number("0xffff")],
|
|
307
|
-
set: (view, value, le) => view.setUint16(0, value, le),
|
|
308
|
-
size: 2
|
|
309
|
-
});
|
|
310
|
-
var getU16Decoder = (config = {}) => numberDecoderFactory({
|
|
311
|
-
config,
|
|
312
|
-
get: (view, le) => view.getUint16(0, le),
|
|
313
|
-
name: "u16",
|
|
314
|
-
size: 2
|
|
315
|
-
});
|
|
316
|
-
var getU16Codec = (config = {}) => combineCodec(getU16Encoder(config), getU16Decoder(config));
|
|
317
|
-
|
|
318
|
-
// src/u32.ts
|
|
319
|
-
var getU32Encoder = (config = {}) => numberEncoderFactory({
|
|
320
|
-
config,
|
|
321
|
-
name: "u32",
|
|
322
|
-
range: [0, Number("0xffffffff")],
|
|
323
|
-
set: (view, value, le) => view.setUint32(0, value, le),
|
|
324
|
-
size: 4
|
|
325
|
-
});
|
|
326
|
-
var getU32Decoder = (config = {}) => numberDecoderFactory({
|
|
327
|
-
config,
|
|
328
|
-
get: (view, le) => view.getUint32(0, le),
|
|
329
|
-
name: "u32",
|
|
330
|
-
size: 4
|
|
331
|
-
});
|
|
332
|
-
var getU32Codec = (config = {}) => combineCodec(getU32Encoder(config), getU32Decoder(config));
|
|
333
|
-
|
|
334
|
-
// src/u64.ts
|
|
335
|
-
var getU64Encoder = (config = {}) => numberEncoderFactory({
|
|
336
|
-
config,
|
|
337
|
-
name: "u64",
|
|
338
|
-
range: [0, BigInt("0xffffffffffffffff")],
|
|
339
|
-
set: (view, value, le) => view.setBigUint64(0, BigInt(value), le),
|
|
340
|
-
size: 8
|
|
341
|
-
});
|
|
342
|
-
var getU64Decoder = (config = {}) => numberDecoderFactory({
|
|
343
|
-
config,
|
|
344
|
-
get: (view, le) => view.getBigUint64(0, le),
|
|
345
|
-
name: "u64",
|
|
346
|
-
size: 8
|
|
347
|
-
});
|
|
348
|
-
var getU64Codec = (config = {}) => combineCodec(getU64Encoder(config), getU64Decoder(config));
|
|
349
|
-
|
|
350
|
-
// src/u8.ts
|
|
351
|
-
var getU8Encoder = (config = {}) => numberEncoderFactory({
|
|
352
|
-
config,
|
|
353
|
-
name: "u8",
|
|
354
|
-
range: [0, Number("0xff")],
|
|
355
|
-
set: (view, value) => view.setUint8(0, value),
|
|
356
|
-
size: 1
|
|
357
|
-
});
|
|
358
|
-
var getU8Decoder = (config = {}) => numberDecoderFactory({
|
|
359
|
-
config,
|
|
360
|
-
get: (view) => view.getUint8(0),
|
|
361
|
-
name: "u8",
|
|
362
|
-
size: 1
|
|
363
|
-
});
|
|
364
|
-
var getU8Codec = (config = {}) => combineCodec(getU8Encoder(config), getU8Decoder(config));
|
|
365
|
-
|
|
366
|
-
exports.Endian = Endian;
|
|
367
|
-
exports.assertNumberIsBetweenForCodec = assertNumberIsBetweenForCodec;
|
|
368
|
-
exports.getF32Codec = getF32Codec;
|
|
369
|
-
exports.getF32Decoder = getF32Decoder;
|
|
370
|
-
exports.getF32Encoder = getF32Encoder;
|
|
371
|
-
exports.getF64Codec = getF64Codec;
|
|
372
|
-
exports.getF64Decoder = getF64Decoder;
|
|
373
|
-
exports.getF64Encoder = getF64Encoder;
|
|
374
|
-
exports.getI128Codec = getI128Codec;
|
|
375
|
-
exports.getI128Decoder = getI128Decoder;
|
|
376
|
-
exports.getI128Encoder = getI128Encoder;
|
|
377
|
-
exports.getI16Codec = getI16Codec;
|
|
378
|
-
exports.getI16Decoder = getI16Decoder;
|
|
379
|
-
exports.getI16Encoder = getI16Encoder;
|
|
380
|
-
exports.getI32Codec = getI32Codec;
|
|
381
|
-
exports.getI32Decoder = getI32Decoder;
|
|
382
|
-
exports.getI32Encoder = getI32Encoder;
|
|
383
|
-
exports.getI64Codec = getI64Codec;
|
|
384
|
-
exports.getI64Decoder = getI64Decoder;
|
|
385
|
-
exports.getI64Encoder = getI64Encoder;
|
|
386
|
-
exports.getI8Codec = getI8Codec;
|
|
387
|
-
exports.getI8Decoder = getI8Decoder;
|
|
388
|
-
exports.getI8Encoder = getI8Encoder;
|
|
389
|
-
exports.getShortU16Codec = getShortU16Codec;
|
|
390
|
-
exports.getShortU16Decoder = getShortU16Decoder;
|
|
391
|
-
exports.getShortU16Encoder = getShortU16Encoder;
|
|
392
|
-
exports.getU128Codec = getU128Codec;
|
|
393
|
-
exports.getU128Decoder = getU128Decoder;
|
|
394
|
-
exports.getU128Encoder = getU128Encoder;
|
|
395
|
-
exports.getU16Codec = getU16Codec;
|
|
396
|
-
exports.getU16Decoder = getU16Decoder;
|
|
397
|
-
exports.getU16Encoder = getU16Encoder;
|
|
398
|
-
exports.getU32Codec = getU32Codec;
|
|
399
|
-
exports.getU32Decoder = getU32Decoder;
|
|
400
|
-
exports.getU32Encoder = getU32Encoder;
|
|
401
|
-
exports.getU64Codec = getU64Codec;
|
|
402
|
-
exports.getU64Decoder = getU64Decoder;
|
|
403
|
-
exports.getU64Encoder = getU64Encoder;
|
|
404
|
-
exports.getU8Codec = getU8Codec;
|
|
405
|
-
exports.getU8Decoder = getU8Decoder;
|
|
406
|
-
exports.getU8Encoder = getU8Encoder;
|
|
407
|
-
|
|
408
|
-
return exports;
|
|
409
|
-
|
|
410
|
-
})({});
|
|
411
|
-
//# sourceMappingURL=out.js.map
|
|
412
|
-
//# sourceMappingURL=index.development.js.map
|