cbor-extract 2.1.0 → 2.2.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/package.json +16 -14
- package/src/extract.cpp +10 -10
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cbor-extract",
|
|
3
3
|
"author": "Kris Zyp",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.0",
|
|
5
5
|
"description": "Node addon for string extraction for cbor-x",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -12,17 +12,18 @@
|
|
|
12
12
|
"install": "node-gyp-build-optional-packages",
|
|
13
13
|
"recompile": "node-gyp rebuild",
|
|
14
14
|
"before-publish": "prebuildify-ci download && node set-optional-deps.cjs",
|
|
15
|
-
"prebuild": "prebuildify-platform-packages --target
|
|
16
|
-
"prebuild-win32": "prebuildify-platform-packages --target
|
|
17
|
-
"prebuild-
|
|
18
|
-
"prebuild-libc
|
|
15
|
+
"prebuild": "prebuildify-platform-packages --target 20.10.0",
|
|
16
|
+
"prebuild-win32": "prebuildify-platform-packages --target 20.10.0 && set ENABLE_V8_FUNCTIONS=false&& prebuildify-platform-packages --platform-packages --napi --target 20.10.0",
|
|
17
|
+
"prebuild-macos": "prebuildify-platform-packages --target 20.0.0 && ENABLE_V8_FUNCTIONS=false prebuildify-platform-packages --napi --platform-packages --target 20.10.0",
|
|
18
|
+
"prebuild-libc": "prebuildify-platform-packages --tag-libc --target 20.10.0 && prebuildify-platform-packages --platform-packages --napi --tag-libc --target 16.14.2 && ENABLE_V8_FUNCTIONS=false prebuildify-platform-packages --platform-packages --napi --tag-libc --target 20.10.0",
|
|
19
|
+
"prebuild-libc-alpine": "prebuildify-cross --image alpine --tag-libc --target 20.10.0",
|
|
19
20
|
"publish-all": "cd prebuilds/win32-x64 && npm publish --access public && cd ../darwin-x64 && npm publish --access public && cd ../darwin-arm64 && npm publish --access public && cd ../linux-x64 && npm publish --access public && cd ../linux-arm64 && npm publish --access public && cd ../linux-arm && npm publish --access public && cd ../.. && npm publish --access public",
|
|
20
21
|
"test": "node ./index.js"
|
|
21
22
|
},
|
|
22
23
|
"main": "./index.js",
|
|
23
24
|
"gypfile": true,
|
|
24
25
|
"dependencies": {
|
|
25
|
-
"node-gyp-build-optional-packages": "5.
|
|
26
|
+
"node-gyp-build-optional-packages": "5.1.1"
|
|
26
27
|
},
|
|
27
28
|
"files": [
|
|
28
29
|
"index.js",
|
|
@@ -34,15 +35,16 @@
|
|
|
34
35
|
"download-cbor-prebuilds": "./bin/download-prebuilds.js"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
|
-
"prebuildify-platform-packages": "5.0.
|
|
38
|
-
"prebuildify-ci": "^1.0.5"
|
|
38
|
+
"prebuildify-platform-packages": "5.0.4",
|
|
39
|
+
"prebuildify-ci": "^1.0.5",
|
|
40
|
+
"prebuildify-cross": "5.0.0"
|
|
39
41
|
},
|
|
40
42
|
"optionalDependencies": {
|
|
41
|
-
"@cbor-extract/cbor-extract-darwin-arm64": "2.
|
|
42
|
-
"@cbor-extract/cbor-extract-darwin-x64": "2.
|
|
43
|
-
"@cbor-extract/cbor-extract-linux-arm": "2.
|
|
44
|
-
"@cbor-extract/cbor-extract-linux-arm64": "2.
|
|
45
|
-
"@cbor-extract/cbor-extract-linux-x64": "2.
|
|
46
|
-
"@cbor-extract/cbor-extract-win32-x64": "2.
|
|
43
|
+
"@cbor-extract/cbor-extract-darwin-arm64": "2.2.0",
|
|
44
|
+
"@cbor-extract/cbor-extract-darwin-x64": "2.2.0",
|
|
45
|
+
"@cbor-extract/cbor-extract-linux-arm": "2.2.0",
|
|
46
|
+
"@cbor-extract/cbor-extract-linux-arm64": "2.2.0",
|
|
47
|
+
"@cbor-extract/cbor-extract-linux-x64": "2.2.0",
|
|
48
|
+
"@cbor-extract/cbor-extract-win32-x64": "2.2.0"
|
|
47
49
|
}
|
|
48
50
|
}
|
package/src/extract.cpp
CHANGED
|
@@ -34,14 +34,14 @@ public:
|
|
|
34
34
|
napi_value target[MAX_TARGET_SIZE + 1]; // leave one for the queued string
|
|
35
35
|
|
|
36
36
|
uint8_t* source;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
uint32_t position = 0;
|
|
38
|
+
uint32_t writePosition = 0;
|
|
39
|
+
uint32_t stringStart = 0;
|
|
40
|
+
uint32_t lastStringEnd = 0;
|
|
41
41
|
|
|
42
|
-
void readString(napi_env env,
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
void readString(napi_env env, uint32_t length, bool allowStringBlocks) {
|
|
43
|
+
uint32_t start = position;
|
|
44
|
+
uint32_t end = position + length;
|
|
45
45
|
if (allowStringBlocks) { // for larger strings, we don't bother to check every character for being latin, and just go right to creating a new string
|
|
46
46
|
while(position < end) {
|
|
47
47
|
if (source[position] < 0x80) // ensure we character is latin and can be decoded as one byte
|
|
@@ -79,7 +79,7 @@ public:
|
|
|
79
79
|
}
|
|
80
80
|
lastStringEnd = end;
|
|
81
81
|
}
|
|
82
|
-
napi_value extractStrings(napi_env env,
|
|
82
|
+
napi_value extractStrings(napi_env env, uint32_t startingPosition, uint32_t size, uint32_t firstStringSize, uint8_t* inputSource) {
|
|
83
83
|
writePosition = 0;
|
|
84
84
|
lastStringEnd = 0;
|
|
85
85
|
position = startingPosition;
|
|
@@ -90,7 +90,7 @@ public:
|
|
|
90
90
|
uint8_t majorType = token >> 5;
|
|
91
91
|
token = token & 0x1f;
|
|
92
92
|
if (majorType == 2 || majorType == 3) {
|
|
93
|
-
|
|
93
|
+
uint32_t length;
|
|
94
94
|
switch (token) {
|
|
95
95
|
case 0x18:
|
|
96
96
|
if (position + 1 > size) {
|
|
@@ -186,7 +186,7 @@ napi_value extractStrings(napi_env env, napi_callback_info info) {
|
|
|
186
186
|
napi_get_value_uint32(env, args[2], &firstStringSize);
|
|
187
187
|
uint8_t* source;
|
|
188
188
|
size_t buffer_size;
|
|
189
|
-
napi_get_buffer_info(env, args[
|
|
189
|
+
napi_get_buffer_info(env, args[3], (void**) &source, &buffer_size);
|
|
190
190
|
return extractor->extractStrings(env, position, size, firstStringSize, source);
|
|
191
191
|
}
|
|
192
192
|
#define EXPORT_NAPI_FUNCTION(name, func) { napi_property_descriptor desc = { name, 0, func, 0, 0, 0, (napi_property_attributes) (napi_writable | napi_configurable), 0 }; napi_define_properties(env, exports, 1, &desc); }
|