@yume-chan/struct 2.0.1 → 3.0.0-beta.0
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/LICENSE +1 -1
- package/esm/bipedal.d.ts +1 -1
- package/esm/bipedal.d.ts.map +1 -1
- package/esm/buffer.d.ts +65 -20
- package/esm/buffer.d.ts.map +1 -1
- package/esm/buffer.js +114 -117
- package/esm/buffer.js.map +1 -1
- package/esm/concat.js.map +1 -1
- package/esm/extend.js.map +1 -1
- package/esm/field/types.d.ts +8 -2
- package/esm/field/types.d.ts.map +1 -1
- package/esm/index.d.ts +0 -8
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js.map +1 -1
- package/esm/readable.d.ts +4 -0
- package/esm/readable.d.ts.map +1 -1
- package/esm/readable.js +5 -0
- package/esm/readable.js.map +1 -1
- package/esm/struct.d.ts +6 -2
- package/esm/struct.d.ts.map +1 -1
- package/esm/struct.js +6 -3
- package/esm/struct.js.map +1 -1
- package/esm/utils.d.ts +7 -2
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +1 -1
- package/esm/utils.js.map +1 -1
- package/package.json +11 -11
- package/src/bipedal.ts +1 -1
- package/src/buffer.ts +226 -228
- package/src/concat.ts +1 -1
- package/src/extend.ts +1 -1
- package/src/field/types.ts +10 -6
- package/src/index.ts +0 -12
- package/src/readable.ts +12 -0
- package/src/struct.ts +16 -5
- package/src/utils.ts +7 -3
- package/tsconfig.build.json +0 -5
- package/CHANGELOG.md +0 -153
- package/tsconfig.build.tsbuildinfo +0 -1
package/esm/struct.js
CHANGED
|
@@ -10,7 +10,12 @@ export class StructNotEnoughDataError extends StructDeserializeError {
|
|
|
10
10
|
super("The underlying readable was ended before the struct was fully deserialized");
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
const StructEmptyErrorBrand = Symbol.for("StructEmptyError.brand");
|
|
13
14
|
export class StructEmptyError extends StructDeserializeError {
|
|
15
|
+
[StructEmptyErrorBrand] = true;
|
|
16
|
+
static [Symbol.hasInstance](value) {
|
|
17
|
+
return !!value?.[StructEmptyErrorBrand];
|
|
18
|
+
}
|
|
14
19
|
constructor() {
|
|
15
20
|
super("The underlying readable doesn't contain any more struct");
|
|
16
21
|
}
|
|
@@ -41,9 +46,7 @@ export function struct(fields, options) {
|
|
|
41
46
|
for (const [key, field] of fieldList) {
|
|
42
47
|
if (key in temp && "init" in field) {
|
|
43
48
|
const result = field.init?.(temp[key], temp);
|
|
44
|
-
|
|
45
|
-
temp[key] = result;
|
|
46
|
-
}
|
|
49
|
+
temp[key] = result;
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
const sizes = new Array(fieldList.length);
|
package/esm/struct.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AASvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
|
package/esm/utils.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
interface TextEncoder {
|
|
2
|
-
encode(input: string): Uint8Array
|
|
2
|
+
encode(input: string): Uint8Array<ArrayBuffer>;
|
|
3
|
+
encodeInto(source: string, destination: Uint8Array): {
|
|
4
|
+
read: number;
|
|
5
|
+
written: number;
|
|
6
|
+
};
|
|
3
7
|
}
|
|
4
8
|
interface TextDecoder {
|
|
5
9
|
decode(buffer?: ArrayBufferView | ArrayBuffer, options?: {
|
|
@@ -7,7 +11,8 @@ interface TextDecoder {
|
|
|
7
11
|
}): string;
|
|
8
12
|
}
|
|
9
13
|
export declare const TextEncoder: new () => TextEncoder, TextDecoder: new () => TextDecoder;
|
|
10
|
-
export declare
|
|
14
|
+
export declare const SharedEncoder: TextEncoder;
|
|
15
|
+
export declare function encodeUtf8(input: string): Uint8Array<ArrayBuffer>;
|
|
11
16
|
export declare function decodeUtf8(buffer: ArrayBufferView | ArrayBuffer): string;
|
|
12
17
|
export {};
|
|
13
18
|
//# sourceMappingURL=utils.d.ts.map
|
package/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACjB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACjB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/C,UAAU,CACN,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,UAAU,GACxB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,UAAU,WAAW;IACjB,MAAM,CACF,MAAM,CAAC,EAAE,eAAe,GAAG,WAAW,EACtC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,MAAM,CAAC;CACb;AAOD,eAAO,MAAQ,WAAW,YAJC,WAAW,EAIV,WAAW,YAHZ,WAIiB,CAAC;AAE7C,eAAO,MAAM,aAAa,aAAoC,CAAC;AAI/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAEjE;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,MAAM,CAIxE"}
|
package/esm/utils.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// because they will pollute the global scope
|
|
3
3
|
// So `TextEncoder` and `TextDecoder` types are not available
|
|
4
4
|
export const { TextEncoder, TextDecoder } = globalThis;
|
|
5
|
-
const SharedEncoder = /* #__PURE__ */ new TextEncoder();
|
|
5
|
+
export const SharedEncoder = /* #__PURE__ */ new TextEncoder();
|
|
6
6
|
const SharedDecoder = /* #__PURE__ */ new TextDecoder();
|
|
7
7
|
/* #__NO_SIDE_EFFECTS__ */
|
|
8
8
|
export function encodeUtf8(input) {
|
package/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,6CAA6C;AAC7C,6DAA6D;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,6CAA6C;AAC7C,6DAA6D;AA0B7D,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GACrC,UAAwC,CAAC;AAE7C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,WAAW,EAAE,CAAC;AAC/D,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,WAAW,EAAE,CAAC;AAExD,0BAA0B;AAC1B,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,UAAU,CAAC,MAAqC;IAC5D,oDAAoD;IACpD,wEAAwE;IACxE,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yume-chan/struct",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-beta.0",
|
|
4
4
|
"description": "C-style structure serializer and deserializer.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"structure",
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"email": "cnsimonchan@live.com",
|
|
15
15
|
"url": "https://chensi.moe/blog"
|
|
16
16
|
},
|
|
17
|
-
"homepage": "https://github.com/yume-chan/ya-webadb/tree/main/
|
|
17
|
+
"homepage": "https://github.com/yume-chan/ya-webadb/tree/main/libraries/struct#readme",
|
|
18
18
|
"repository": {
|
|
19
19
|
"type": "git",
|
|
20
20
|
"url": "git+https://github.com/yume-chan/ya-webadb.git",
|
|
21
|
-
"directory": "
|
|
21
|
+
"directory": "libraries/struct"
|
|
22
22
|
},
|
|
23
23
|
"bugs": {
|
|
24
24
|
"url": "https://github.com/yume-chan/ya-webadb/issues"
|
|
@@ -28,19 +28,19 @@
|
|
|
28
28
|
"types": "esm/index.d.ts",
|
|
29
29
|
"sideEffects": false,
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@yume-chan/async": "^4.
|
|
32
|
-
"@yume-chan/no-data-view": "
|
|
31
|
+
"@yume-chan/async": "^4.1.3",
|
|
32
|
+
"@yume-chan/no-data-view": "3.0.0-beta.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@types/node": "^
|
|
36
|
-
"prettier": "^3.
|
|
37
|
-
"typescript": "^
|
|
35
|
+
"@types/node": "^26.0.0",
|
|
36
|
+
"prettier": "^3.8.4",
|
|
37
|
+
"typescript": "^6.0.3",
|
|
38
38
|
"@yume-chan/eslint-config": "^1.0.0",
|
|
39
|
-
"@yume-chan/
|
|
40
|
-
"@yume-chan/
|
|
39
|
+
"@yume-chan/test-runner": "^1.0.0",
|
|
40
|
+
"@yume-chan/tsconfig": "^1.0.0"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
|
-
"build": "tsc -
|
|
43
|
+
"build": "tsc -p tsconfig.build.json",
|
|
44
44
|
"lint": "run-eslint && prettier src/**/*.ts --write --tab-width 4",
|
|
45
45
|
"test": "run-test"
|
|
46
46
|
}
|
package/src/bipedal.ts
CHANGED
|
@@ -24,7 +24,7 @@ export type BipedalGenerator<This, T, A extends unknown[]> = (
|
|
|
24
24
|
this: This,
|
|
25
25
|
then: <U>(value: MaybePromiseLike<U>) => Iterable<unknown, U, unknown>,
|
|
26
26
|
...args: A
|
|
27
|
-
) => Generator<unknown, T
|
|
27
|
+
) => Generator<unknown, MaybePromiseLike<T>, unknown>;
|
|
28
28
|
|
|
29
29
|
/* #__NO_SIDE_EFFECTS__ */
|
|
30
30
|
export function bipedal<This, T, A extends unknown[]>(
|