koffi 2.14.1 → 2.15.1

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.
Files changed (113) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/build/koffi/darwin_arm64/koffi.node +0 -0
  3. package/build/koffi/darwin_x64/koffi.node +0 -0
  4. package/build/koffi/freebsd_arm64/koffi.node +0 -0
  5. package/build/koffi/freebsd_ia32/koffi.node +0 -0
  6. package/build/koffi/freebsd_x64/koffi.node +0 -0
  7. package/build/koffi/linux_arm64/koffi.node +0 -0
  8. package/build/koffi/linux_armhf/koffi.node +0 -0
  9. package/build/koffi/linux_ia32/koffi.node +0 -0
  10. package/build/koffi/linux_loong64/koffi.node +0 -0
  11. package/build/koffi/linux_riscv64d/koffi.node +0 -0
  12. package/build/koffi/linux_x64/koffi.node +0 -0
  13. package/build/koffi/musl_arm64/koffi.node +0 -0
  14. package/build/koffi/musl_x64/koffi.node +0 -0
  15. package/build/koffi/openbsd_ia32/koffi.node +0 -0
  16. package/build/koffi/openbsd_x64/koffi.node +0 -0
  17. package/build/koffi/win32_arm64/koffi.node +0 -0
  18. package/build/koffi/win32_ia32/koffi.node +0 -0
  19. package/build/koffi/win32_x64/koffi.node +0 -0
  20. package/doc/assets.ini +2 -1
  21. package/doc/build.sh +9 -0
  22. package/doc/pages/404.md +17 -0
  23. package/doc/pages/index.md +5 -3
  24. package/doc/pages/misc.md +18 -11
  25. package/doc/pages.ini +4 -0
  26. package/doc/static/highlight.js +2 -14
  27. package/doc/static/koffi.css +3 -15
  28. package/doc/static/print.css +2 -14
  29. package/doc/templates/code.html +1 -2
  30. package/doc/templates/page.html +1 -2
  31. package/index.d.ts +29 -24
  32. package/index.js +9 -9
  33. package/indirect.js +9 -9
  34. package/{src/core → lib/native}/base/base.cc +1137 -674
  35. package/{src/core → lib/native}/base/base.hh +362 -195
  36. package/{src/core → lib/native}/base/crc.inc +2 -20
  37. package/lib/native/base/crc_gen.py +72 -0
  38. package/{src/core → lib/native}/base/mimetypes.inc +2 -20
  39. package/{src/core → lib/native}/base/mimetypes_gen.py +2 -21
  40. package/lib/native/base/tower.cc +821 -0
  41. package/lib/native/base/tower.hh +81 -0
  42. package/{src/core → lib/native}/base/unicode.inc +2 -20
  43. package/{src/core → lib/native}/base/unicode_gen.py +4 -41
  44. package/package.json +2 -2
  45. package/src/cnoke/assets/FindCNoke.cmake +24 -30
  46. package/src/cnoke/assets/win_delay_hook.c +6 -20
  47. package/src/cnoke/cnoke.js +2 -21
  48. package/src/cnoke/src/builder.js +51 -66
  49. package/src/cnoke/src/index.js +2 -20
  50. package/src/cnoke/src/tools.js +2 -20
  51. package/src/koffi/CMakeLists.txt +30 -23
  52. package/src/koffi/cmake/raylib.cmake +5 -22
  53. package/src/koffi/cmake/sqlite3.cmake +2 -20
  54. package/src/koffi/src/abi_arm32.cc +7 -25
  55. package/src/koffi/src/abi_arm32_asm.S +2 -20
  56. package/src/koffi/src/abi_arm64.cc +7 -25
  57. package/src/koffi/src/abi_arm64_asm.S +2 -20
  58. package/src/koffi/src/abi_arm64_asm.asm +2 -20
  59. package/src/koffi/src/abi_loong64.cc +2 -20
  60. package/src/koffi/src/abi_loong64_asm.S +2 -20
  61. package/src/koffi/src/abi_riscv64.cc +7 -25
  62. package/src/koffi/src/abi_riscv64_asm.S +2 -20
  63. package/src/koffi/src/abi_x64_sysv.cc +7 -25
  64. package/src/koffi/src/abi_x64_sysv_asm.S +2 -20
  65. package/src/koffi/src/abi_x64_win.cc +12 -30
  66. package/src/koffi/src/abi_x64_win_asm.S +162 -0
  67. package/src/koffi/src/abi_x64_win_asm.asm +2 -20
  68. package/src/koffi/src/abi_x86.cc +7 -25
  69. package/src/koffi/src/abi_x86_asm.S +2 -20
  70. package/src/koffi/src/abi_x86_asm.asm +2 -20
  71. package/src/koffi/src/call.cc +25 -45
  72. package/src/koffi/src/call.hh +3 -21
  73. package/src/koffi/src/errno.inc +2 -20
  74. package/src/koffi/src/ffi.cc +64 -63
  75. package/src/koffi/src/ffi.hh +15 -30
  76. package/src/koffi/src/init.js +2 -20
  77. package/src/koffi/src/parser.cc +13 -27
  78. package/src/koffi/src/parser.hh +3 -21
  79. package/src/koffi/src/trampolines/armasm.inc +0 -21
  80. package/src/koffi/src/trampolines/gnu.inc +0 -21
  81. package/src/koffi/src/trampolines/masm32.inc +0 -21
  82. package/src/koffi/src/trampolines/masm64.inc +0 -21
  83. package/src/koffi/src/trampolines/prototypes.inc +0 -21
  84. package/src/koffi/src/util.cc +50 -64
  85. package/src/koffi/src/util.hh +8 -25
  86. package/src/koffi/src/uv.cc +193 -0
  87. package/src/koffi/src/uv.def +10 -0
  88. package/src/koffi/src/uv.hh +40 -0
  89. package/src/koffi/src/win32.cc +2 -20
  90. package/src/koffi/src/win32.hh +3 -21
  91. package/vendor/node-api-headers/CHANGELOG.md +22 -0
  92. package/vendor/node-api-headers/README.md +6 -17
  93. package/vendor/node-api-headers/include/js_native_api.h +3 -13
  94. package/vendor/node-api-headers/include/js_native_api_types.h +15 -0
  95. package/vendor/node-api-headers/include/node_api.h +0 -4
  96. package/vendor/node-api-headers/include/node_api_types.h +6 -0
  97. package/vendor/node-api-headers/include/uv/aix.h +32 -0
  98. package/vendor/node-api-headers/include/uv/bsd.h +34 -0
  99. package/vendor/node-api-headers/include/uv/darwin.h +61 -0
  100. package/vendor/node-api-headers/include/uv/errno.h +483 -0
  101. package/vendor/node-api-headers/include/uv/linux.h +34 -0
  102. package/vendor/node-api-headers/include/uv/os390.h +33 -0
  103. package/vendor/node-api-headers/include/uv/posix.h +31 -0
  104. package/vendor/node-api-headers/include/uv/sunos.h +44 -0
  105. package/vendor/node-api-headers/include/uv/threadpool.h +37 -0
  106. package/vendor/node-api-headers/include/uv/tree.h +521 -0
  107. package/vendor/node-api-headers/include/uv/unix.h +512 -0
  108. package/vendor/node-api-headers/include/uv/version.h +43 -0
  109. package/vendor/node-api-headers/include/uv/win.h +698 -0
  110. package/vendor/node-api-headers/include/uv.h +1990 -0
  111. package/vendor/node-api-headers/package.json +1 -1
  112. package/vendor/node-api-headers/scripts/update-headers.js +6 -0
  113. package/src/core/base/crc_gen.py +0 -109
package/CHANGELOG.md CHANGED
@@ -5,6 +5,32 @@
5
5
 
6
6
  ## Koffi 2
7
7
 
8
+ ### Koffi 2.15
9
+
10
+ #### Koffi 2.15.1
11
+
12
+ *Released on 2025-01-24*
13
+
14
+ - Fix possible union-related crashes
15
+ - Support MinGW-w64 x64 builds on Windows
16
+
17
+ #### Koffi 2.15.0
18
+
19
+ *Released on 2025-12-21*
20
+
21
+ - Fix parsing error with some parameter types that could lead to weird crashes (regression introduced in Koffi 2.14)
22
+ - Fix rare data race in Koffi memory allocation/release
23
+ - Increase default and maximum length of async call queue
24
+ - Decrease default stack and heap size used for async calls
25
+ - Add API to poll sockets with Node libuv event loop ([@mkicherer](https://github.com/mkicherer))
26
+ - Fix erroneous UTF-32 range checks when decoding UTF-32 buffers ([@VastBlast](https://github.com/VastBlast))
27
+ - Fix possible overflow when encoding malformed UTF-16 to UTF-32
28
+ - Throw error when using negative offset in encode and decode functions ([@VastBlast](https://github.com/VastBlast))
29
+ - Use proper Unicode replacement char in UTF-32 routines
30
+
31
+ > [!NOTE]
32
+ > The socket polling/libuv integration API is not yet documented and might change in subsequent releases. You've been warned!
33
+
8
34
  ### Koffi 2.14
9
35
 
10
36
  #### Koffi 2.14.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/doc/assets.ini CHANGED
@@ -1,4 +1,5 @@
1
1
  EsbuildPath = ../../vendor/esbuild/native/node_modules/@esbuild
2
+ EsbuildRoot = ../..
2
3
 
3
4
  [favicon.png]
4
5
  Type = Copy
@@ -11,7 +12,7 @@ Ignore = favicon.png *.js *.css
11
12
 
12
13
  [static/site.min.js]
13
14
  Type = Bundle
14
- Source = ../../src/web/flat/static.js
15
+ Source = ../../lib/web/flat/static.js
15
16
 
16
17
  [static/highlight.min.js]
17
18
  Type = Bundle
package/doc/build.sh ADDED
@@ -0,0 +1,9 @@
1
+ #!/bin/bash -e
2
+
3
+ cd "$(dirname $0)"
4
+
5
+ ../../bootstrap.sh
6
+ ../../felix -pFast hodler
7
+
8
+ mkdir -p ../../bin/Web/koffi.dev
9
+ ../../bin/Fast/hodler . -O ../../bin/Web/koffi.dev --gzip
@@ -0,0 +1,17 @@
1
+ *The page you requested does not exist...*
2
+
3
+ <div class="error">Error 404</div>
4
+
5
+ <style>
6
+ main {
7
+ display: flex;
8
+ flex-direction: column;
9
+ align-items: center;
10
+ justify-content: center;
11
+ }
12
+ .error {
13
+ margin: 0.8em;
14
+ font-size: 4em;
15
+ font-weight: bold;
16
+ }
17
+ </style>
@@ -7,10 +7,12 @@ Koffi is a **fast and easy-to-use C FFI module for Node.js**, featuring:
7
7
  * Javascript functions can be used as C callbacks
8
8
  * Well-tested code base for popular OS/architecture combinations
9
9
 
10
- I work on this project on my spare time, if you like this project, consider supporting me:
10
+ If you like this project, consider supporting me:
11
11
 
12
- <p style="display: flex; gap: 2em; justify-content: center;">
13
- <a href="https://buymeacoffee.com/koromix" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174" style="border-radius: 12px;"></a>
12
+ <p style="display: flex; gap: 1em; justify-content: center; align-items: center;">
13
+ <a href="https://liberapay.com/Koromix/donate" target="_blank"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
14
+ <a href="https://github.com/sponsors/koromix" target="_blank"><img src="https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86"></a>
15
+ <a href="https://buymeacoffee.com/koromix" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-yellow.png" alt="Buy Me A Coffee" height="30" width="108" style="border-radius: 12px;"></a>
14
16
  </p>
15
17
 
16
18
  Koffi requires [Node.js](https://nodejs.org/) version 16 or later. Use [NVM](https://github.com/nvm-sh/nvm) to install more recent Node versions on older Linux distributions.
package/doc/pages/misc.md CHANGED
@@ -112,21 +112,28 @@ let config = koffi.config();
112
112
  console.log(config);
113
113
  ```
114
114
 
115
- The same is true for asynchronous calls. When an asynchronous call is made, Koffi will allocate new blocks unless there is an unused (resident) set of blocks still available. Once the asynchronous call is finished, these blocks are freed if there are more than `resident_async_pools` sets of blocks left around.
115
+ The same is true for asynchronous calls. When an asynchronous call is made, Koffi will allocate new blocks unless there is an unused (resident) set of blocks still available. Once the asynchronous call is finished, these blocks are freed if there are more than `resident_async_pools` sets of blocks left around. By default, the preallocated stack and heap blocks are much smaller than for synchronous calls (see [default settings](#default-settings)).
116
116
 
117
- There cannot be more than `max_async_calls` running at the same time.
117
+ > [!CAUTION]
118
+ > The **memory usage can blow up easily** if you increase the size of async memory blocks and many async calls are running or queued at the same time !
119
+ >
120
+ > For example, with 4096 running/queued async calls, a stack size of 256 kiB and a heap size of 512 kiB, the memory usage will reach approximately _4096 * (256 + 512) kiB ≈ 3 GiB_ just for Koffi, even though most of it will be freed once the number of queued calls goes down.
121
+
122
+ Async calls run on worker threads, the number of which depends on the number of cores in your machine. Additional async calls are queued, up to `max_async_calls` can run and be queued at the same time. If you try to make an async call once the queue if full, an exception will be thrown.
118
123
 
119
124
  ## Default settings
120
125
 
121
- Setting | Default | Description
122
- -------------------- | ------- | -----------------------------------------------
123
- sync_stack_size | 1 MiB | Stack size for synchronous calls
124
- sync_heap_size | 2 MiB | Heap size for synchronous calls
125
- async_stack_size | 256 kiB | Stack size for asynchronous calls
126
- async_heap_size | 512 kiB | Heap size for asynchronous calls
127
- resident_async_pools | 2 | Number of resident pools for asynchronous calls
128
- max_async_calls | 64 | Maximum number of ongoing asynchronous calls
129
- max_type_size | 64 MiB | Maximum size of Koffi types (for arrays and structs)
126
+ *Changed in Koffi 2.15*
127
+
128
+ Setting | Default | Maximum | Description
129
+ -------------------- | ------- | ------- | ----------------------------------------------------
130
+ sync_stack_size | 1 MiB | 16 MiB | Stack size for synchronous calls
131
+ sync_heap_size | 2 MiB | 16 MiB | Heap size for synchronous calls
132
+ async_stack_size | 128 kiB | 16 MiB | Stack size for asynchronous calls
133
+ async_heap_size | 128 kiB | 16 MiB | Heap size for asynchronous calls
134
+ resident_async_pools | 4 | 16 | Number of resident pools for asynchronous calls
135
+ max_async_calls | 256 | 4096 | Maximum number of queued asynchronous calls
136
+ max_type_size | 64 MiB | 512 MiB | Maximum size of Koffi types (for arrays and structs)
130
137
 
131
138
  # Usage statistics
132
139
 
package/doc/pages.ini CHANGED
@@ -80,3 +80,7 @@ Title = Changelog | Koffi
80
80
  Menu = Changelog
81
81
  Description = List of Koffi versions
82
82
  Template = templates/page.html
83
+
84
+ [pages/404.md]
85
+ Title = Page not found
86
+ Template = templates/page.html
@@ -1,17 +1,5 @@
1
- // Copyright (C) 2025 Niels Martignène <niels.martignene@protonmail.com>
2
- //
3
- // This program is free software: you can redistribute it and/or modify
4
- // it under the terms of the GNU General Public License as published by
5
- // the Free Software Foundation, either version 3 of the License, or
6
- // (at your option) any later version.
7
- //
8
- // This program is distributed in the hope that it will be useful,
9
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- // GNU General Public License for more details.
12
- //
13
- // You should have received a copy of the GNU General Public License
14
- // along with this program. If not, see <https://www.gnu.org/licenses/>.
1
+ // SPDX-License-Identifier: MIT
2
+ // SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
15
3
 
16
4
  import * as hljs from '../../../vendor/highlight.js/highlight.js';
17
5
 
@@ -1,19 +1,7 @@
1
- /* Copyright (C) 2025 Niels Martignène <niels.martignene@protonmail.com>
1
+ /* SPDX-License-Identifier: MIT */
2
+ /* SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com> */
2
3
 
3
- This program is free software: you can redistribute it and/or modify
4
- it under the terms of the GNU General Public License as published by
5
- the Free Software Foundation, either version 3 of the License, or
6
- (at your option) any later version.
7
-
8
- This program is distributed in the hope that it will be useful,
9
- but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- GNU General Public License for more details.
12
-
13
- You should have received a copy of the GNU General Public License
14
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
15
-
16
- @import url('../../../src/web/flat/flat.css');
4
+ @import url('../../../lib/web/flat/flat.css');
17
5
  @import url('../../../vendor/highlight.js/styles/base16/tomorrow.css');
18
6
 
19
7
  html {
@@ -1,17 +1,5 @@
1
- /* Copyright (C) 2025 Niels Martignène <niels.martignene@protonmail.com>
2
-
3
- This program is free software: you can redistribute it and/or modify
4
- it under the terms of the GNU General Public License as published by
5
- the Free Software Foundation, either version 3 of the License, or
6
- (at your option) any later version.
7
-
8
- This program is distributed in the hope that it will be useful,
9
- but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- GNU General Public License for more details.
12
-
13
- You should have received a copy of the GNU General Public License
14
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
1
+ /* SPDX-License-Identifier: MIT */
2
+ /* SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com> */
15
3
 
16
4
  @media print {
17
5
  .schema { width: 90%; }
@@ -17,9 +17,8 @@
17
17
  </head>
18
18
 
19
19
  <body>
20
- <div id="deploy"></div>
21
-
22
20
  <nav id="top">
21
+ <div class="deploy"></div>
23
22
  <menu>
24
23
  <a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}" width="370" height="198" alt="" /></a>
25
24
 
@@ -16,9 +16,8 @@
16
16
  </head>
17
17
 
18
18
  <body>
19
- <div id="deploy"></div>
20
-
21
19
  <nav id="top">
20
+ <div class="deploy"></div>
22
21
  <menu>
23
22
  <a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}" width="370" height="198" alt="" /></a>
24
23
 
package/index.d.ts CHANGED
@@ -1,23 +1,5 @@
1
- // Copyright (C) 2025 Niels Martignène <niels.martignene@protonmail.com>
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy of
4
- // this software and associated documentation files (the “Software”), to deal in
5
- // the Software without restriction, including without limitation the rights to use,
6
- // copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
7
- // Software, and to permit persons to whom the Software is furnished to do so,
8
- // subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in all
11
- // copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
14
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
15
- // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
16
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
17
- // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18
- // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20
- // OTHER DEALINGS IN THE SOFTWARE.
1
+ // SPDX-License-Identifier: MIT
2
+ // SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
21
3
 
22
4
  type LoadOptions = {
23
5
  lazy?: boolean,
@@ -277,7 +259,30 @@ type PrimitiveTypes =
277
259
  | 'wchar_t';
278
260
  export const types: Record<PrimitiveTypes, IKoffiCType>;
279
261
 
280
- // Internal stuff, don't use!
281
- export const node: {
282
- env: { __brand: 'IKoffiNodeEnv' }
283
- };
262
+ export interface IKoffiPollOptions {
263
+ readable?: boolean;
264
+ writable?: boolean;
265
+ disconnect?: boolean;
266
+ }
267
+
268
+ export interface IKoffiPollEvents {
269
+ readable: boolean;
270
+ writable: boolean;
271
+ disconnect: boolean;
272
+ }
273
+
274
+ export namespace node {
275
+ export const env: { __brand: 'IKoffiNodeEnv' };
276
+
277
+ export class PollHandle {
278
+ start(opts: IKoffiPollOptions, callback: (ev: IKoffiPollEvents) => void): void;
279
+ start(callback: (ev: IKoffiPollEvents) => void): void;
280
+ stop(): void;
281
+ close(): void;
282
+ unref(): void;
283
+ ref(): void;
284
+ }
285
+
286
+ export function poll(fd: number, opts: IKoffiPollOptions, callback: (ev: IKoffiPollEvents) => void): PollHandle;
287
+ export function poll(fd: number, callback: (ev: IKoffiPollEvents) => void): PollHandle;
288
+ }
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
+ // bin/Koffi/package/src/cnoke/src/tools.js
8
8
  var require_tools = __commonJS({
9
- "../../../bin/Koffi/package/src/cnoke/src/tools.js"(exports2, module2) {
9
+ "bin/Koffi/package/src/cnoke/src/tools.js"(exports2, module2) {
10
10
  "use strict";
11
11
  var crypto = require("crypto");
12
12
  var fs2 = require("fs");
@@ -397,12 +397,12 @@ var require_tools = __commonJS({
397
397
  }
398
398
  });
399
399
 
400
- // ../../../bin/Koffi/package/src/koffi/package.json
400
+ // bin/Koffi/package/src/koffi/package.json
401
401
  var require_package = __commonJS({
402
- "../../../bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
402
+ "bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
403
403
  module2.exports = {
404
404
  name: "koffi",
405
- version: "2.14.1",
405
+ version: "2.15.1",
406
406
  description: "Fast and simple C FFI (foreign function interface) for Node.js",
407
407
  keywords: [
408
408
  "foreign",
@@ -439,14 +439,14 @@ var require_package = __commonJS({
439
439
  napi: 8,
440
440
  require: "./index.js"
441
441
  },
442
- funding: "https://buymeacoffee.com/koromix"
442
+ funding: "https://liberapay.com/Koromix"
443
443
  };
444
444
  }
445
445
  });
446
446
 
447
- // ../../../bin/Koffi/package/src/koffi/src/init.js
447
+ // bin/Koffi/package/src/koffi/src/init.js
448
448
  var require_init = __commonJS({
449
- "../../../bin/Koffi/package/src/koffi/src/init.js"(exports, module) {
449
+ "bin/Koffi/package/src/koffi/src/init.js"(exports, module) {
450
450
  var fs = require("fs");
451
451
  var path = require("path");
452
452
  var util = require("util");
@@ -529,7 +529,7 @@ var require_init = __commonJS({
529
529
  }
530
530
  });
531
531
 
532
- // ../../../bin/Koffi/package/src/koffi/index.js
532
+ // bin/Koffi/package/src/koffi/index.js
533
533
  var { detect: detect2, init: init2 } = require_init();
534
534
  var triplet2 = detect2();
535
535
  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
+ // bin/Koffi/package/src/cnoke/src/tools.js
8
8
  var require_tools = __commonJS({
9
- "../../../bin/Koffi/package/src/cnoke/src/tools.js"(exports2, module2) {
9
+ "bin/Koffi/package/src/cnoke/src/tools.js"(exports2, module2) {
10
10
  "use strict";
11
11
  var crypto = require("crypto");
12
12
  var fs2 = require("fs");
@@ -397,12 +397,12 @@ var require_tools = __commonJS({
397
397
  }
398
398
  });
399
399
 
400
- // ../../../bin/Koffi/package/src/koffi/package.json
400
+ // bin/Koffi/package/src/koffi/package.json
401
401
  var require_package = __commonJS({
402
- "../../../bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
402
+ "bin/Koffi/package/src/koffi/package.json"(exports2, module2) {
403
403
  module2.exports = {
404
404
  name: "koffi",
405
- version: "2.14.1",
405
+ version: "2.15.1",
406
406
  description: "Fast and simple C FFI (foreign function interface) for Node.js",
407
407
  keywords: [
408
408
  "foreign",
@@ -439,14 +439,14 @@ var require_package = __commonJS({
439
439
  napi: 8,
440
440
  require: "./index.js"
441
441
  },
442
- funding: "https://buymeacoffee.com/koromix"
442
+ funding: "https://liberapay.com/Koromix"
443
443
  };
444
444
  }
445
445
  });
446
446
 
447
- // ../../../bin/Koffi/package/src/koffi/src/init.js
447
+ // bin/Koffi/package/src/koffi/src/init.js
448
448
  var require_init = __commonJS({
449
- "../../../bin/Koffi/package/src/koffi/src/init.js"(exports, module) {
449
+ "bin/Koffi/package/src/koffi/src/init.js"(exports, module) {
450
450
  var fs = require("fs");
451
451
  var path = require("path");
452
452
  var util = require("util");
@@ -529,7 +529,7 @@ var require_init = __commonJS({
529
529
  }
530
530
  });
531
531
 
532
- // ../../../bin/Koffi/package/src/koffi/indirect.js
532
+ // bin/Koffi/package/src/koffi/indirect.js
533
533
  var { detect: detect2, init: init2 } = require_init();
534
534
  var triplet2 = detect2();
535
535
  var mod2 = init2(triplet2, null);