koffi 2.15.2-beta.2 → 2.15.2

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/CHANGELOG.md CHANGED
@@ -9,10 +9,12 @@
9
9
 
10
10
  #### Koffi 2.15.2
11
11
 
12
- *Released on 2026-03-08*
12
+ *Released on 2026-03-11*
13
13
 
14
+ - Fix possible deadlock or crash after a callback has been used when exiting from Node 24.14+
14
15
  - Fix build problems on Android/Termux
15
16
  - Fix failing indirect loading caused by missing path test
17
+ - Don't force users to set all members when using koffi.config() in TypeScript
16
18
  - Use Clang to build Linux ARM64 prebuild
17
19
 
18
20
  #### Koffi 2.15.1
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/index.d.ts CHANGED
@@ -145,13 +145,13 @@ export function introspect(type: TypeSpec): TypeInfo;
145
145
  export function alias(name: string, type: TypeSpec): IKoffiCType;
146
146
 
147
147
  type KoffiConfig = {
148
- sync_stack_size: number
149
- sync_heap_size: number
150
- async_stack_size: number
151
- async_heap_size: number
152
- resident_async_pools: number
153
- max_async_calls: number
154
- max_type_size: number
148
+ sync_stack_size?: number
149
+ sync_heap_size?: number
150
+ async_stack_size?: number
151
+ async_heap_size?: number
152
+ resident_async_pools?: number
153
+ max_async_calls?: number
154
+ max_type_size?: number
155
155
  };
156
156
  type KoffiStats = {
157
157
  disposed: number
package/index.js CHANGED
@@ -4,9 +4,9 @@ var __commonJS = (cb, mod3) => function __require() {
4
4
  return mod3 || (0, cb[__getOwnPropNames(cb)[0]])((mod3 = { exports: {} }).exports, mod3), mod3.exports;
5
5
  };
6
6
 
7
- // ../../../bin/Koffi/package/src/cnoke/src/tools.js
7
+ // package/src/cnoke/src/tools.js
8
8
  var require_tools = __commonJS({
9
- "../../../bin/Koffi/package/src/cnoke/src/tools.js"(exports2, module2) {
9
+ "package/src/cnoke/src/tools.js"(exports2, module2) {
10
10
  "use strict";
11
11
  var crypto = require("crypto");
12
12
  var fs2 = require("fs");
@@ -393,12 +393,12 @@ var require_tools = __commonJS({
393
393
  }
394
394
  });
395
395
 
396
- // ../../../bin/Koffi/package/src/koffi/package.json
396
+ // package/src/koffi/package.json
397
397
  var require_package = __commonJS({
398
- "../../../bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
398
+ "package/src/koffi/package.json"(exports2, module2) {
399
399
  module2.exports = {
400
400
  name: "koffi",
401
- version: "2.15.2-beta.2",
401
+ version: "2.15.2",
402
402
  description: "Fast and simple C FFI (foreign function interface) for Node.js",
403
403
  keywords: [
404
404
  "foreign",
@@ -440,9 +440,9 @@ var require_package = __commonJS({
440
440
  }
441
441
  });
442
442
 
443
- // ../../../bin/Koffi/package/src/koffi/src/init.js
443
+ // package/src/koffi/src/init.js
444
444
  var require_init = __commonJS({
445
- "../../../bin/Koffi/package/src/koffi/src/init.js"(exports, module) {
445
+ "package/src/koffi/src/init.js"(exports, module) {
446
446
  var fs = require("fs");
447
447
  var path = require("path");
448
448
  var util = require("util");
@@ -526,7 +526,7 @@ var require_init = __commonJS({
526
526
  }
527
527
  });
528
528
 
529
- // ../../../bin/Koffi/package/src/koffi/index.js
529
+ // package/src/koffi/index.js
530
530
  var { detect: detect2, init: init2 } = require_init();
531
531
  var triplet2 = detect2();
532
532
  var native2 = null;
package/indirect.js CHANGED
@@ -4,9 +4,9 @@ var __commonJS = (cb, mod3) => function __require() {
4
4
  return mod3 || (0, cb[__getOwnPropNames(cb)[0]])((mod3 = { exports: {} }).exports, mod3), mod3.exports;
5
5
  };
6
6
 
7
- // ../../../bin/Koffi/package/src/cnoke/src/tools.js
7
+ // package/src/cnoke/src/tools.js
8
8
  var require_tools = __commonJS({
9
- "../../../bin/Koffi/package/src/cnoke/src/tools.js"(exports2, module2) {
9
+ "package/src/cnoke/src/tools.js"(exports2, module2) {
10
10
  "use strict";
11
11
  var crypto = require("crypto");
12
12
  var fs2 = require("fs");
@@ -393,12 +393,12 @@ var require_tools = __commonJS({
393
393
  }
394
394
  });
395
395
 
396
- // ../../../bin/Koffi/package/src/koffi/package.json
396
+ // package/src/koffi/package.json
397
397
  var require_package = __commonJS({
398
- "../../../bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
398
+ "package/src/koffi/package.json"(exports2, module2) {
399
399
  module2.exports = {
400
400
  name: "koffi",
401
- version: "2.15.2-beta.2",
401
+ version: "2.15.2",
402
402
  description: "Fast and simple C FFI (foreign function interface) for Node.js",
403
403
  keywords: [
404
404
  "foreign",
@@ -440,9 +440,9 @@ var require_package = __commonJS({
440
440
  }
441
441
  });
442
442
 
443
- // ../../../bin/Koffi/package/src/koffi/src/init.js
443
+ // package/src/koffi/src/init.js
444
444
  var require_init = __commonJS({
445
- "../../../bin/Koffi/package/src/koffi/src/init.js"(exports, module) {
445
+ "package/src/koffi/src/init.js"(exports, module) {
446
446
  var fs = require("fs");
447
447
  var path = require("path");
448
448
  var util = require("util");
@@ -526,7 +526,7 @@ var require_init = __commonJS({
526
526
  }
527
527
  });
528
528
 
529
- // ../../../bin/Koffi/package/src/koffi/indirect.js
529
+ // package/src/koffi/indirect.js
530
530
  var { detect: detect2, init: init2 } = require_init();
531
531
  var triplet2 = detect2();
532
532
  var mod2 = init2(triplet2, null);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koffi",
3
- "version": "2.15.2-beta.2",
3
+ "version": "2.15.2",
4
4
  "description": "Fast and simple C FFI (foreign function interface) for Node.js",
5
5
  "keywords": [
6
6
  "foreign",
@@ -2343,6 +2343,11 @@ bool InitAsyncBroker(Napi::Env env, InstanceData *instance)
2343
2343
  return false;
2344
2344
  }
2345
2345
  napi_unref_threadsafe_function(env, instance->broker);
2346
+
2347
+ napi_add_env_cleanup_hook(env, [](void *udata) {
2348
+ napi_threadsafe_function broker = (napi_threadsafe_function)udata;
2349
+ napi_release_threadsafe_function(broker, napi_tsfn_abort);
2350
+ }, instance->broker);
2346
2351
  }
2347
2352
 
2348
2353
  return true;
@@ -2627,10 +2632,6 @@ InstanceData::~InstanceData()
2627
2632
  }
2628
2633
  }
2629
2634
  }
2630
-
2631
- if (broker) {
2632
- napi_release_threadsafe_function(broker, napi_tsfn_abort);
2633
- }
2634
2635
  }
2635
2636
 
2636
2637
  NODE_API_MODULE(koffi, InitModule);