harmony-erlpack 0.0.1 → 0.0.3
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/.forgejo/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.forgejo/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/.forgejo/pull_request_template.md +5 -0
- package/.forgejo/workflows/npm-publish.yml +24 -0
- package/.forgejo/workflows/tsc-check.yml +20 -0
- package/dist/decode.d.ts +1 -1
- package/dist/decode.d.ts.map +1 -1
- package/dist/decode.js +4 -4
- package/dist/decode.js.map +1 -1
- package/dist/encode.d.ts.map +1 -1
- package/dist/encode.js +52 -35
- package/dist/encode.js.map +1 -1
- package/dist/ready.d.ts +1358 -0
- package/dist/ready.d.ts.map +1 -0
- package/dist/ready.js +4098 -0
- package/dist/ready.js.map +1 -0
- package/dist/test.d.ts +2 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +2 -0
- package/dist/test.js.map +1 -1
- package/package.json +5 -2
- package/src/decode.ts +4 -4
- package/src/encode.ts +51 -34
- package/src/test.ts +2 -1
- package/src/dump.bin +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve.
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
**To Reproduce**
|
|
14
|
+
Steps to reproduce the behavior:
|
|
15
|
+
1. Go to '...'
|
|
16
|
+
2. Click on '....'
|
|
17
|
+
3. Scroll down to '....'
|
|
18
|
+
4. See error
|
|
19
|
+
|
|
20
|
+
**Expected behavior**
|
|
21
|
+
A clear and concise description of what you expected to happen.
|
|
22
|
+
|
|
23
|
+
**Screenshots**
|
|
24
|
+
If applicable, add screenshots to help explain your problem.
|
|
25
|
+
|
|
26
|
+
**Desktop (please complete the following information):**
|
|
27
|
+
- OS: [e.g. iOS]
|
|
28
|
+
- Browser: [e.g. Chrome, Safari]
|
|
29
|
+
- Browser Version: [e.g. 22]
|
|
30
|
+
|
|
31
|
+
**Smartphone (please complete the following information):**
|
|
32
|
+
- Device: [e.g. iPhone6]
|
|
33
|
+
- OS: [e.g. iOS8.1, Android 16]
|
|
34
|
+
- Browser: [e.g. stock browser, safari]
|
|
35
|
+
- Browser Version: [e.g. 22]
|
|
36
|
+
|
|
37
|
+
**Additional context**
|
|
38
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project.
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Example: I'm always frustrated when [...]
|
|
12
|
+
|
|
13
|
+
**Describe the solution you'd like**
|
|
14
|
+
A clear and concise description of what you want to happen.
|
|
15
|
+
|
|
16
|
+
**Describe alternatives you've considered**
|
|
17
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
18
|
+
|
|
19
|
+
**Additional context**
|
|
20
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: NPM Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
publish:
|
|
9
|
+
name: publish
|
|
10
|
+
runs-on: codeberg-tiny
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- name: install node v22
|
|
14
|
+
uses: actions/setup-node@v1
|
|
15
|
+
with:
|
|
16
|
+
node-version: 22
|
|
17
|
+
- name: npm i
|
|
18
|
+
run: npm i
|
|
19
|
+
- name: npm run tsc
|
|
20
|
+
run: npm run tsc
|
|
21
|
+
- name: auth
|
|
22
|
+
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_CI_TOKEN }}
|
|
23
|
+
- name: publish
|
|
24
|
+
run: npm publish --access public
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: TSC check CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
tsc:
|
|
9
|
+
name: tsc
|
|
10
|
+
runs-on: codeberg-tiny
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- name: install node v22
|
|
14
|
+
uses: actions/setup-node@v1
|
|
15
|
+
with:
|
|
16
|
+
node-version: 22
|
|
17
|
+
- name: npm i
|
|
18
|
+
run: npm i
|
|
19
|
+
- name: npm run tsc
|
|
20
|
+
run: npm run tsc --noEmit
|
package/dist/decode.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare function unpack(buff: ArrayBufferLike, { offset }?: {
|
|
2
2
|
offset: number;
|
|
3
|
-
}): string | number | bigint | boolean | unknown[] | Record<string | number, unknown> | undefined;
|
|
3
|
+
}): string | number | bigint | boolean | unknown[] | Record<string | number, unknown> | null | undefined;
|
|
4
4
|
//# sourceMappingURL=decode.d.ts.map
|
package/dist/decode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"AA+BA,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,EAAC,MAAM,EAAC;;CAAc,
|
|
1
|
+
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"AA+BA,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,EAAC,MAAM,EAAC;;CAAc,wGA4EnE"}
|
package/dist/decode.js
CHANGED
|
@@ -67,7 +67,7 @@ export function unpack(buff, { offset } = { offset: 0 }) {
|
|
|
67
67
|
case "false":
|
|
68
68
|
return false;
|
|
69
69
|
case "nil":
|
|
70
|
-
return
|
|
70
|
+
return null;
|
|
71
71
|
default:
|
|
72
72
|
throw new Error(text);
|
|
73
73
|
}
|
|
@@ -80,16 +80,16 @@ export function unpack(buff, { offset } = { offset: 0 }) {
|
|
|
80
80
|
}
|
|
81
81
|
case 108 /* erlTypes.array */: {
|
|
82
82
|
const len = reader.readI32();
|
|
83
|
-
const arr =
|
|
83
|
+
const arr = new Array(len);
|
|
84
84
|
for (let i = 0; i < len; i++) {
|
|
85
|
-
arr
|
|
85
|
+
arr[i] = unpack();
|
|
86
86
|
}
|
|
87
87
|
reader.readByte();
|
|
88
88
|
return arr;
|
|
89
89
|
}
|
|
90
90
|
case 116 /* erlTypes.object */: {
|
|
91
91
|
const len = reader.readI32();
|
|
92
|
-
const obj2 =
|
|
92
|
+
const obj2 = Object.create(null);
|
|
93
93
|
for (let i = 0; i < len; i++) {
|
|
94
94
|
obj2[unpack()] = unpack();
|
|
95
95
|
}
|
package/dist/decode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"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"}
|
package/dist/encode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAsEA,wBAAgB,IAAI,CAAC,GAAG,EAAE,OAAO,eAoHhC"}
|
package/dist/encode.js
CHANGED
|
@@ -2,22 +2,29 @@ import { version } from "./erltype.js";
|
|
|
2
2
|
class ByteLayer {
|
|
3
3
|
buffer = new ArrayBuffer(1 << 6);
|
|
4
4
|
view = new DataView(this.buffer);
|
|
5
|
+
u8a = new Uint8Array(this.buffer);
|
|
5
6
|
index = 0;
|
|
7
|
+
bufLen = this.buffer.byteLength - 10;
|
|
6
8
|
getSpace(len) {
|
|
7
|
-
if (this.index + len >= this.
|
|
9
|
+
if (this.index + len >= this.bufLen) {
|
|
8
10
|
let llen = this.buffer.byteLength;
|
|
9
11
|
while (this.index + len >= llen)
|
|
10
12
|
llen *= 2;
|
|
11
13
|
this.buffer = this.buffer.transfer(llen);
|
|
12
14
|
this.view = new DataView(this.buffer);
|
|
15
|
+
this.u8a = new Uint8Array(this.buffer);
|
|
16
|
+
this.bufLen = llen - 10;
|
|
13
17
|
}
|
|
14
18
|
const old = this.index;
|
|
15
19
|
this.index += len;
|
|
16
20
|
return old;
|
|
17
21
|
}
|
|
22
|
+
appendLabel(num) {
|
|
23
|
+
this.u8a[this.index++] = num;
|
|
24
|
+
}
|
|
18
25
|
appendByte(num) {
|
|
19
26
|
const i = this.getSpace(1);
|
|
20
|
-
this.
|
|
27
|
+
this.u8a[i] = num;
|
|
21
28
|
}
|
|
22
29
|
append32IntDelayed() {
|
|
23
30
|
const i = this.getSpace(4);
|
|
@@ -57,18 +64,20 @@ class ByteLayer {
|
|
|
57
64
|
}
|
|
58
65
|
const encoder = new TextEncoder();
|
|
59
66
|
const preAtoms = new Map();
|
|
67
|
+
const nilAtom = encoder.encode("nil");
|
|
68
|
+
const trueAtom = encoder.encode("true");
|
|
69
|
+
const falseAtom = encoder.encode("false");
|
|
60
70
|
export function pack(obj) {
|
|
61
71
|
const layer = new ByteLayer();
|
|
62
|
-
const
|
|
63
|
-
function appendAtom(str) {
|
|
72
|
+
const appendAtom = (str) => {
|
|
64
73
|
const buf = preAtoms.get(str) ?? encoder.encode(str);
|
|
65
74
|
if (!preAtoms.has(str))
|
|
66
75
|
preAtoms.set(str, buf);
|
|
67
76
|
layer.appendByte(115 /* erlTypes.sAtom */);
|
|
68
77
|
layer.appendByte(buf.length);
|
|
69
78
|
layer.appendBuffer(buf);
|
|
70
|
-
}
|
|
71
|
-
|
|
79
|
+
};
|
|
80
|
+
const layBigint = (d) => {
|
|
72
81
|
const bytes = [];
|
|
73
82
|
const sign = d < 0n;
|
|
74
83
|
d = sign ? d * -1n : d;
|
|
@@ -82,18 +91,18 @@ export function pack(obj) {
|
|
|
82
91
|
layer.appendByte(+sign);
|
|
83
92
|
layer.appendBuffer(bytes);
|
|
84
93
|
}
|
|
85
|
-
}
|
|
94
|
+
};
|
|
86
95
|
layer.appendByte(version);
|
|
87
96
|
function packObj(obj) {
|
|
88
97
|
switch (typeof obj) {
|
|
89
98
|
case "number": {
|
|
90
99
|
if (Number.isInteger(obj) && obj < 2 ** 32 && obj >= -(2 ** 31)) {
|
|
91
100
|
if (obj > 0 && obj < 256) {
|
|
92
|
-
layer.
|
|
101
|
+
layer.appendLabel(97 /* erlTypes.u8 */);
|
|
93
102
|
layer.appendByte(obj);
|
|
94
103
|
}
|
|
95
104
|
else if (obj < 2 ** 31 && obj >= -(2 ** 31)) {
|
|
96
|
-
layer.
|
|
105
|
+
layer.appendLabel(98 /* erlTypes.i32 */);
|
|
97
106
|
layer.append32Int(obj);
|
|
98
107
|
}
|
|
99
108
|
else {
|
|
@@ -101,61 +110,69 @@ export function pack(obj) {
|
|
|
101
110
|
}
|
|
102
111
|
}
|
|
103
112
|
else {
|
|
104
|
-
layer.
|
|
113
|
+
layer.appendLabel(70 /* erlTypes.double */);
|
|
105
114
|
layer.appendDouble(obj);
|
|
106
115
|
}
|
|
107
116
|
break;
|
|
108
117
|
}
|
|
109
118
|
case "undefined": {
|
|
110
|
-
|
|
119
|
+
layer.appendLabel(115 /* erlTypes.sAtom */);
|
|
120
|
+
layer.appendByte(nilAtom.length);
|
|
121
|
+
layer.appendBuffer(nilAtom);
|
|
111
122
|
break;
|
|
112
123
|
}
|
|
113
124
|
case "boolean": {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (obj.length < 100) {
|
|
119
|
-
const buf = strMap.get(obj) ?? encoder.encode(obj);
|
|
120
|
-
strMap.set(obj, buf);
|
|
121
|
-
layer.appendByte(109 /* erlTypes.bin */);
|
|
122
|
-
layer.append32Int(buf.length);
|
|
123
|
-
layer.appendBuffer(buf);
|
|
125
|
+
if (obj) {
|
|
126
|
+
layer.appendLabel(115 /* erlTypes.sAtom */);
|
|
127
|
+
layer.appendByte(trueAtom.length);
|
|
128
|
+
layer.appendBuffer(trueAtom);
|
|
124
129
|
}
|
|
125
130
|
else {
|
|
126
|
-
layer.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const { buff, ret } = layer.getBuffer(size);
|
|
130
|
-
const { written } = encoder.encodeInto(obj, buff);
|
|
131
|
-
ret(size - written);
|
|
132
|
-
len(written);
|
|
131
|
+
layer.appendLabel(115 /* erlTypes.sAtom */);
|
|
132
|
+
layer.appendByte(falseAtom.length);
|
|
133
|
+
layer.appendBuffer(falseAtom);
|
|
133
134
|
}
|
|
134
135
|
break;
|
|
135
136
|
}
|
|
137
|
+
case "string": {
|
|
138
|
+
layer.appendLabel(109 /* erlTypes.bin */);
|
|
139
|
+
const len = layer.append32IntDelayed();
|
|
140
|
+
const size = obj.length * 3;
|
|
141
|
+
const { buff, ret } = layer.getBuffer(size);
|
|
142
|
+
const { written } = encoder.encodeInto(obj, buff);
|
|
143
|
+
ret(size - written);
|
|
144
|
+
len(written);
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
136
147
|
case "object": {
|
|
137
148
|
if (obj instanceof Array) {
|
|
138
|
-
layer.
|
|
149
|
+
layer.appendLabel(108 /* erlTypes.array */);
|
|
139
150
|
layer.append32Int(obj.length);
|
|
140
151
|
for (const item of obj) {
|
|
141
152
|
packObj(item);
|
|
142
153
|
}
|
|
143
154
|
//Leaving this off will make @yukikaze-bot/erlpack segfault
|
|
144
|
-
layer.
|
|
155
|
+
layer.appendLabel(106 /* erlTypes.endList */);
|
|
145
156
|
}
|
|
146
157
|
else if (obj === null) {
|
|
147
|
-
|
|
158
|
+
layer.appendLabel(115 /* erlTypes.sAtom */);
|
|
159
|
+
layer.appendByte(nilAtom.length);
|
|
160
|
+
layer.appendBuffer(nilAtom);
|
|
148
161
|
}
|
|
149
162
|
else {
|
|
150
|
-
layer.
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
for (const
|
|
163
|
+
layer.appendLabel(116 /* erlTypes.object */);
|
|
164
|
+
const d = layer.append32IntDelayed();
|
|
165
|
+
let i = 0;
|
|
166
|
+
for (const key in obj) {
|
|
167
|
+
//@ts-expect-error this is safe to do
|
|
168
|
+
const value = obj[key];
|
|
154
169
|
if (typeof value === "function" || typeof value === "symbol")
|
|
155
170
|
continue;
|
|
171
|
+
i++;
|
|
156
172
|
packObj(key);
|
|
157
173
|
packObj(value);
|
|
158
174
|
}
|
|
175
|
+
d(i);
|
|
159
176
|
}
|
|
160
177
|
break;
|
|
161
178
|
}
|
package/dist/encode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAC,MAAM,cAAc,CAAC;AAE/C,MAAM,SAAS;IACN,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,CAAC,GAAW;QAC3B,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"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"}
|