jiren 3.9.1 → 4.1.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/README.md +3 -3
- package/components/index.ts +1 -1
- package/components/native-node.ts +40 -20
- package/components/native-path.ts +47 -0
- package/components/native.ts +59 -54
- package/dist/components/native-node.d.ts.map +1 -1
- package/dist/components/native-node.js +28 -21
- package/dist/components/native-node.js.map +1 -1
- package/dist/components/native-path.d.ts +4 -0
- package/dist/components/native-path.d.ts.map +1 -0
- package/dist/components/native-path.js +30 -0
- package/dist/components/native-path.js.map +1 -0
- package/dist/index-node.d.ts +1 -1
- package/dist/index-node.d.ts.map +1 -1
- package/dist/index-node.js +2 -2
- package/dist/index-node.js.map +1 -1
- package/index-node.ts +2 -2
- package/lib/libcurl-impersonate.dylib +0 -0
- package/lib/libhttpclient.dylib +0 -0
- package/lib/win32-x64/libcurl.dll +0 -0
- package/lib/win32-x64/libhttpclient.dll +0 -0
- package/lib/{zlib1.dll → win32-x64/zlib1.dll} +0 -0
- package/package.json +1 -1
- package/components/client-bun.ts +0 -16
- package/lib/libcurl.dll +0 -0
- package/lib/libhttpclient.dll +0 -0
package/README.md
CHANGED
|
@@ -740,13 +740,13 @@ export async function GET() {
|
|
|
740
740
|
- **Bun** v1.0.0+
|
|
741
741
|
- **Node.js** v18.0.0+ (macOS/Linux/Windows)
|
|
742
742
|
- **OS**:
|
|
743
|
-
- Native mode: macOS (ARM64/x64)
|
|
744
|
-
- Compatibility mode:
|
|
743
|
+
- Native mode: macOS (ARM64/x64), Linux (x64), and Windows (x64) when the bundled native runtime is present
|
|
744
|
+
- Compatibility mode: automatic fetch fallback when the native library is unavailable
|
|
745
745
|
- **Optional**: set `JIREN_FORCE_FETCH_FALLBACK=1` to force compatibility mode.
|
|
746
746
|
|
|
747
747
|
### Node Entrypoints
|
|
748
748
|
|
|
749
|
-
- `import { JirenClient } from "jiren"`:
|
|
749
|
+
- `import { JirenClient } from "jiren"`: auto-select native mode when available, otherwise fetch fallback
|
|
750
750
|
- `import { JirenClient } from "jiren/native"`: native mode (max performance, supported CPUs only)
|
|
751
751
|
|
|
752
752
|
---
|
package/components/index.ts
CHANGED
|
@@ -2,39 +2,59 @@ import koffi from "koffi";
|
|
|
2
2
|
import path from "path";
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
|
+
import {
|
|
6
|
+
resolveNativeLibraryCandidates,
|
|
7
|
+
resolveNativeRuntimeDirectories,
|
|
8
|
+
} from "./native-path.js";
|
|
5
9
|
|
|
6
10
|
const __filename = fileURLToPath(import.meta.url);
|
|
7
11
|
const __dirname = path.dirname(__filename);
|
|
8
12
|
|
|
9
|
-
const
|
|
13
|
+
const libCandidates = resolveNativeLibraryCandidates(__dirname);
|
|
14
|
+
const runtimeDirectories = resolveNativeRuntimeDirectories(__dirname);
|
|
15
|
+
let libPath = libCandidates[0];
|
|
10
16
|
|
|
11
|
-
|
|
12
|
-
if (platform
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
suffix = "dll";
|
|
16
|
-
}
|
|
17
|
+
function prepareWindowsRuntimeDirectories() {
|
|
18
|
+
if (process.platform !== "win32") {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
17
21
|
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
const existingPath = process.env.PATH ?? "";
|
|
23
|
+
const nextPathEntries = runtimeDirectories.filter((dir) =>
|
|
24
|
+
fs.existsSync(dir),
|
|
25
|
+
);
|
|
20
26
|
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
if (nextPathEntries.length > 0) {
|
|
28
|
+
process.env.PATH = `${nextPathEntries.join(path.delimiter)}${path.delimiter}${existingPath}`;
|
|
29
|
+
}
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
let lib: any = null;
|
|
27
33
|
let nativeLoadError: Error | null = null;
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
prepareWindowsRuntimeDirectories();
|
|
36
|
+
|
|
37
|
+
for (const candidate of libCandidates) {
|
|
38
|
+
if (!fs.existsSync(candidate)) {
|
|
39
|
+
continue;
|
|
34
40
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
|
|
42
|
+
libPath = candidate;
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
lib = koffi.load(candidate);
|
|
46
|
+
nativeLoadError = null;
|
|
47
|
+
break;
|
|
48
|
+
} catch (error) {
|
|
49
|
+
nativeLoadError =
|
|
50
|
+
error instanceof Error ? error : new Error("Unknown native load error");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (!lib && !nativeLoadError) {
|
|
55
|
+
nativeLoadError = new Error(
|
|
56
|
+
`Native library not found. Checked: ${libCandidates.join(", ")}`,
|
|
57
|
+
);
|
|
38
58
|
}
|
|
39
59
|
|
|
40
60
|
export const isNativeAvailable = lib !== null;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
|
|
3
|
+
export function nativeSuffixForPlatform(platform = process.platform): string {
|
|
4
|
+
if (platform === "darwin") {
|
|
5
|
+
return "dylib";
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if (platform === "win32") {
|
|
9
|
+
return "dll";
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return "so";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function resolveNativeLibraryCandidates(
|
|
16
|
+
baseDir: string,
|
|
17
|
+
platform = process.platform,
|
|
18
|
+
arch = process.arch,
|
|
19
|
+
): string[] {
|
|
20
|
+
const fileName = `libhttpclient.${nativeSuffixForPlatform(platform)}`;
|
|
21
|
+
return resolveNativeRuntimeDirectories(baseDir, platform, arch).map((dir) =>
|
|
22
|
+
path.join(dir, fileName),
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function resolveNativeRuntimeDirectories(
|
|
27
|
+
baseDir: string,
|
|
28
|
+
platform = process.platform,
|
|
29
|
+
arch = process.arch,
|
|
30
|
+
): string[] {
|
|
31
|
+
const baseLibDirs = [
|
|
32
|
+
path.join(baseDir, "../lib"),
|
|
33
|
+
path.join(baseDir, "../../lib"),
|
|
34
|
+
];
|
|
35
|
+
const runtimeDirs = [`${platform}-${arch}`, platform];
|
|
36
|
+
const directories: string[] = [];
|
|
37
|
+
|
|
38
|
+
for (const libDir of baseLibDirs) {
|
|
39
|
+
for (const runtimeDir of runtimeDirs) {
|
|
40
|
+
directories.push(path.join(libDir, runtimeDir));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
directories.push(libDir);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return directories;
|
|
47
|
+
}
|
package/components/native.ts
CHANGED
|
@@ -1,36 +1,48 @@
|
|
|
1
|
-
import { dlopen, FFIType
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { dlopen, FFIType } from "bun:ffi";
|
|
2
|
+
import { existsSync, readdirSync } from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import {
|
|
5
|
+
resolveNativeLibraryCandidates,
|
|
6
|
+
resolveNativeRuntimeDirectories,
|
|
7
|
+
} from "./native-path";
|
|
4
8
|
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const libDir = dirname(libPath);
|
|
9
|
+
const libCandidates = resolveNativeLibraryCandidates(import.meta.dir);
|
|
10
|
+
const runtimeDirectories = resolveNativeRuntimeDirectories(import.meta.dir);
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const hasLibDir = currentPath
|
|
13
|
-
.split(delimiter)
|
|
14
|
-
.some((entry) => entry.toLowerCase() === libDir.toLowerCase());
|
|
15
|
-
if (!hasLibDir) {
|
|
16
|
-
const nextPath = `${libDir}${delimiter}${currentPath}`;
|
|
17
|
-
process.env.PATH = nextPath;
|
|
18
|
-
process.env.Path = nextPath;
|
|
12
|
+
function prepareWindowsRuntimeDirectories() {
|
|
13
|
+
if (process.platform !== "win32") {
|
|
14
|
+
return;
|
|
19
15
|
}
|
|
20
|
-
}
|
|
21
16
|
|
|
22
|
-
const
|
|
17
|
+
const existingPath = process.env.PATH ?? "";
|
|
18
|
+
const nextPathEntries: string[] = [];
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const dependencyPath = join(libDir, dependency);
|
|
28
|
-
if (!fs.existsSync(dependencyPath)) continue;
|
|
29
|
-
try {
|
|
30
|
-
preloadedWindowsDeps.push(dlopen(dependencyPath, {} as any));
|
|
31
|
-
} catch {
|
|
32
|
-
// Best-effort: dlopen of libhttpclient.dll may still succeed via PATH/system lookup.
|
|
20
|
+
for (const runtimeDir of runtimeDirectories) {
|
|
21
|
+
if (!existsSync(runtimeDir)) {
|
|
22
|
+
continue;
|
|
33
23
|
}
|
|
24
|
+
|
|
25
|
+
nextPathEntries.push(runtimeDir);
|
|
26
|
+
|
|
27
|
+
for (const entry of readdirSync(runtimeDir)) {
|
|
28
|
+
if (!entry.toLowerCase().endsWith(".dll")) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (entry.toLowerCase() === "libhttpclient.dll") {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
try {
|
|
37
|
+
dlopen(path.join(runtimeDir, entry), {});
|
|
38
|
+
} catch {
|
|
39
|
+
// Ignore here and let the main library load surface the real error.
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (nextPathEntries.length > 0) {
|
|
45
|
+
process.env.PATH = `${nextPathEntries.join(path.delimiter)}${path.delimiter}${existingPath}`;
|
|
34
46
|
}
|
|
35
47
|
}
|
|
36
48
|
|
|
@@ -410,37 +422,30 @@ export const ffiDef = {
|
|
|
410
422
|
},
|
|
411
423
|
} as const;
|
|
412
424
|
|
|
413
|
-
let
|
|
414
|
-
let
|
|
425
|
+
let openError: unknown = null;
|
|
426
|
+
let openedLib: ReturnType<typeof dlopen> | null = null;
|
|
427
|
+
|
|
428
|
+
prepareWindowsRuntimeDirectories();
|
|
429
|
+
|
|
430
|
+
for (const candidate of libCandidates) {
|
|
431
|
+
if (!existsSync(candidate)) {
|
|
432
|
+
continue;
|
|
433
|
+
}
|
|
415
434
|
|
|
416
|
-
try {
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
}
|
|
420
|
-
|
|
435
|
+
try {
|
|
436
|
+
openedLib = dlopen(candidate, ffiDef);
|
|
437
|
+
break;
|
|
438
|
+
} catch (error) {
|
|
439
|
+
openError = error;
|
|
421
440
|
}
|
|
422
|
-
} catch (error) {
|
|
423
|
-
nativeLoadError =
|
|
424
|
-
error instanceof Error ? error : new Error("Unknown native load error");
|
|
425
441
|
}
|
|
426
442
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
443
|
+
if (!openedLib) {
|
|
444
|
+
if (openError) {
|
|
445
|
+
throw openError;
|
|
446
|
+
}
|
|
430
447
|
|
|
431
|
-
|
|
432
|
-
return () => {
|
|
433
|
-
const reason = nativeLoadError?.message || "Native runtime unavailable";
|
|
434
|
-
throw new Error(
|
|
435
|
-
`[Jiren] Native symbol "${symbol}" is unavailable. ${reason}`,
|
|
436
|
-
);
|
|
437
|
-
};
|
|
448
|
+
throw new Error(`Native library not found. Checked: ${libCandidates.join(", ")}`);
|
|
438
449
|
}
|
|
439
450
|
|
|
440
|
-
const
|
|
441
|
-
get(_target, symbol) {
|
|
442
|
-
return unavailableSymbol(String(symbol));
|
|
443
|
-
},
|
|
444
|
-
});
|
|
445
|
-
|
|
446
|
-
export const lib = (nativeLib ?? { symbols: unavailableSymbols }) as any;
|
|
451
|
+
export const lib = openedLib;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-node.d.ts","sourceRoot":"","sources":["../../components/native-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native-node.d.ts","sourceRoot":"","sources":["../../components/native-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,35 +2,42 @@ import koffi from "koffi";
|
|
|
2
2
|
import path from "path";
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
|
+
import { resolveNativeLibraryCandidates, resolveNativeRuntimeDirectories, } from "./native-path.js";
|
|
5
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
7
|
const __dirname = path.dirname(__filename);
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
libPath = path.join(__dirname, `../../lib/libhttpclient.${suffix}`);
|
|
8
|
+
const libCandidates = resolveNativeLibraryCandidates(__dirname);
|
|
9
|
+
const runtimeDirectories = resolveNativeRuntimeDirectories(__dirname);
|
|
10
|
+
let libPath = libCandidates[0];
|
|
11
|
+
function prepareWindowsRuntimeDirectories() {
|
|
12
|
+
if (process.platform !== "win32") {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const existingPath = process.env.PATH ?? "";
|
|
16
|
+
const nextPathEntries = runtimeDirectories.filter((dir) => fs.existsSync(dir));
|
|
17
|
+
if (nextPathEntries.length > 0) {
|
|
18
|
+
process.env.PATH = `${nextPathEntries.join(path.delimiter)}${path.delimiter}${existingPath}`;
|
|
19
|
+
}
|
|
20
20
|
}
|
|
21
21
|
let lib = null;
|
|
22
22
|
let nativeLoadError = null;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
prepareWindowsRuntimeDirectories();
|
|
24
|
+
for (const candidate of libCandidates) {
|
|
25
|
+
if (!fs.existsSync(candidate)) {
|
|
26
|
+
continue;
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
libPath = candidate;
|
|
29
|
+
try {
|
|
30
|
+
lib = koffi.load(candidate);
|
|
31
|
+
nativeLoadError = null;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
nativeLoadError =
|
|
36
|
+
error instanceof Error ? error : new Error("Unknown native load error");
|
|
29
37
|
}
|
|
30
38
|
}
|
|
31
|
-
|
|
32
|
-
nativeLoadError =
|
|
33
|
-
error instanceof Error ? error : new Error("Unknown native load error");
|
|
39
|
+
if (!lib && !nativeLoadError) {
|
|
40
|
+
nativeLoadError = new Error(`Native library not found. Checked: ${libCandidates.join(", ")}`);
|
|
34
41
|
}
|
|
35
42
|
export const isNativeAvailable = lib !== null;
|
|
36
43
|
export const nativeLibraryPath = libPath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-node.js","sourceRoot":"","sources":["../../components/native-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"native-node.js","sourceRoot":"","sources":["../../components/native-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,aAAa,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;AAChE,MAAM,kBAAkB,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC;AACtE,IAAI,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAE/B,SAAS,gCAAgC;IACvC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5C,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACxD,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CACnB,CAAC;IAEF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,IAAI,GAAG,GAAQ,IAAI,CAAC;AACpB,IAAI,eAAe,GAAiB,IAAI,CAAC;AAEzC,gCAAgC,EAAE,CAAC;AAEnC,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,SAAS;IACX,CAAC;IAED,OAAO,GAAG,SAAS,CAAC;IAEpB,IAAI,CAAC;QACH,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,eAAe,GAAG,IAAI,CAAC;QACvB,MAAM;IACR,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe;YACb,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC7B,eAAe,GAAG,IAAI,KAAK,CACzB,sCAAsC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,KAAK,IAAI,CAAC;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAe;IACxD,OAAO,GAAG,EAAE;QACV,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,MAAM,GACV,YAAY,IAAI,eAAe,EAAE,OAAO,IAAI,4BAA4B,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,qBAAqB,MAAM,EAAE,CAC9D,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,MAAc,EACd,UAAkB,EAClB,IAAc;IAEd,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,WAAW,EAAE,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpD,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5D,WAAW,EAAE,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5E,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE;QACjD,QAAQ;QACR,cAAc;QACd,cAAc;KACf,CAAC;IACF,eAAe,EAAE,UAAU,CAAC,iBAAiB,EAAE,QAAQ,EAAE;QACvD,QAAQ,EAAE,MAAM;QAChB,cAAc,EAAE,SAAS;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,UAAU;QAC1B,cAAc,EAAE,OAAO;QACvB,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,UAAU;KACnB,CAAC;IACF,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE;QACvD,QAAQ;QACR,cAAc;KACf,CAAC;IACF,uBAAuB,EAAE,UAAU,CAAC,yBAAyB,EAAE,UAAU,EAAE;QACzE,QAAQ;KACT,CAAC;IACF,qBAAqB,EAAE,UAAU,CAAC,uBAAuB,EAAE,QAAQ,EAAE;QACnE,QAAQ;KACT,CAAC;IACF,yBAAyB,EAAE,UAAU,CAAC,2BAA2B,EAAE,UAAU,EAAE;QAC7E,QAAQ;KACT,CAAC;IACF,wBAAwB,EAAE,UAAU,CAAC,0BAA0B,EAAE,QAAQ,EAAE;QACzE,QAAQ;KACT,CAAC;IACF,4BAA4B,EAAE,UAAU,CACtC,8BAA8B,EAC9B,UAAU,EACV,CAAC,QAAQ,CAAC,CACX;IACD,qCAAqC,EAAE,UAAU,CAC/C,uCAAuC,EACvC,QAAQ,EACR,CAAC,QAAQ,CAAC,CACX;IACD,2BAA2B,EAAE,UAAU,CAAC,6BAA6B,EAAE,MAAM,EAAE;QAC7E,QAAQ;KACT,CAAC;IACF,mBAAmB,EAAE,UAAU,CAAC,qBAAqB,EAAE,QAAQ,EAAE;QAC/D,QAAQ,EAAE,kBAAkB;QAC5B,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,MAAM;KACvB,CAAC;IACF,yBAAyB,EAAE,UAAU,CAAC,2BAA2B,EAAE,MAAM,EAAE;QACzE,QAAQ;KACT,CAAC;IACF,qBAAqB,EAAE,UAAU,CAAC,uBAAuB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9E,0BAA0B,EAAE,UAAU,CAAC,4BAA4B,EAAE,MAAM,EAAE;QAC3E,QAAQ;QACR,MAAM;KACP,CAAC;IACF,oBAAoB,EAAE,UAAU,CAAC,sBAAsB,EAAE,QAAQ,EAAE;QACjE,QAAQ;QACR,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,SAAS;QACT,MAAM;KACP,CAAC;IACF,qBAAqB,EAAE,UAAU,CAAC,uBAAuB,EAAE,UAAU,EAAE;QACrE,QAAQ;KACT,CAAC;IACF,yBAAyB,EAAE,UAAU,CAAC,2BAA2B,EAAE,QAAQ,EAAE;QAC3E,QAAQ;KACT,CAAC;IACF,yBAAyB,EAAE,UAAU,CAAC,2BAA2B,EAAE,UAAU,EAAE;QAC7E,QAAQ;KACT,CAAC;IACF,uBAAuB,EAAE,UAAU,CAAC,yBAAyB,EAAE,QAAQ,EAAE;QACvE,QAAQ;KACT,CAAC;IACF,uBAAuB,EAAE,UAAU,CAAC,yBAAyB,EAAE,UAAU,EAAE;QACzE,QAAQ;KACT,CAAC;IACF,+BAA+B,EAAE,UAAU,CACzC,iCAAiC,EACjC,SAAS,EACT,CAAC,QAAQ,CAAC,CACX;IACD,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE;QACvD,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,UAAU;KACX,CAAC;IACF,kBAAkB,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,EAAE;QAC9D,QAAQ;QACR,UAAU;KACX,CAAC;IACF,uBAAuB,EAAE,UAAU,CAAC,yBAAyB,EAAE,QAAQ,EAAE;QACvE,QAAQ;QACR,cAAc;QACd,eAAe;QACf,UAAU;KACX,CAAC;IACF,2BAA2B,EAAE,UAAU,CACrC,6BAA6B,EAC7B,QAAQ,EACR;QACE,QAAQ;QACR,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,eAAe;QACf,UAAU;KACX,CACF;IACD,wBAAwB,EAAE,UAAU,CAAC,0BAA0B,EAAE,MAAM,EAAE;QACvE,QAAQ;KACT,CAAC;IACF,eAAe,EAAE,UAAU,CAAC,iBAAiB,EAAE,QAAQ,EAAE;QACvD,QAAQ;QACR,UAAU;KACX,CAAC;IACF,eAAe,EAAE,UAAU,CAAC,iBAAiB,EAAE,UAAU,EAAE;QACzD,QAAQ;QACR,UAAU;KACX,CAAC;IACF,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,EAAE,SAAS,EAAE;QAC1D,QAAQ;QACR,UAAU;KACX,CAAC;IACF,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IACxE,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5E,WAAW,EAAE,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxE,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,EAAE,QAAQ,EAAE;QACzD,QAAQ;QACR,cAAc;KACf,CAAC;IACF,oBAAoB,EAAE,UAAU,CAAC,sBAAsB,EAAE,UAAU,EAAE;QACnE,QAAQ;QACR,cAAc;KACf,CAAC;IACF,aAAa,EAAE,UAAU,CAAC,eAAe,EAAE,SAAS,EAAE;QACpD,QAAQ;QACR,cAAc;KACf,CAAC;IACF,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE;QACnD,QAAQ;QACR,cAAc;KACf,CAAC;IACF,aAAa,EAAE,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC9E,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;IACnE,eAAe,EAAE,UAAU,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtE,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAExD,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;IAC5D,WAAW,EAAE,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC1D,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC1E,iBAAiB,EAAE,UAAU,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtE,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE;QAC3C,QAAQ,EAAE,QAAQ;QAClB,cAAc,EAAE,MAAM;QACtB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,WAAW;QACvB,SAAS,EAAE,MAAM;KAClB,CAAC;IACF,iBAAiB,EAAE,UAAU,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACzD,QAAQ;QACR,cAAc;KACf,CAAC;IACF,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5D,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9D,iBAAiB,EAAE,UAAU,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEtE,4EAA4E;IAC5E,6CAA6C;IAC7C,4EAA4E;IAC5E,sBAAsB,EAAE,UAAU,CAAC,wBAAwB,EAAE,QAAQ,EAAE;QACrE,QAAQ,EAAE,SAAS;QACnB,cAAc,EAAE,SAAS;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,qBAAqB;QACrC,cAAc,EAAE,kBAAkB;QAClC,QAAQ,EAAE,+BAA+B;KAC1C,CAAC;IACF,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IAChE,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9D,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IACxE,eAAe,EAAE,UAAU,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IACpE,mBAAmB,EAAE,UAAU,CAAC,qBAAqB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9E,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IACpE,sBAAsB,EAAE,UAAU,CAAC,wBAAwB,EAAE,UAAU,EAAE;QACvE,QAAQ;KACT,CAAC;IACF,sBAAsB,EAAE,UAAU,CAAC,wBAAwB,EAAE,UAAU,EAAE;QACvE,QAAQ;KACT,CAAC;IACF,mBAAmB,EAAE,UAAU,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC1E,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE5D,4EAA4E;IAC5E,2CAA2C;IAC3C,4EAA4E;IAC5E,qBAAqB,EAAE,UAAU,CAAC,uBAAuB,EAAE,QAAQ,EAAE;QACnE,QAAQ,EAAE,SAAS;QACnB,cAAc,EAAE,SAAS;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,qBAAqB;QACrC,QAAQ,EAAE,eAAe;QACzB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,+BAA+B;KAC1C,CAAC;IACF,kBAAkB,EAAE,UAAU,CAAC,oBAAoB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5E,qBAAqB,EAAE,UAAU,CAAC,uBAAuB,EAAE,UAAU,EAAE;QACrE,QAAQ;KACT,CAAC;IACF,kBAAkB,EAAE,UAAU,CAAC,oBAAoB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5E,mBAAmB,EAAE,UAAU,CAAC,qBAAqB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9E,0BAA0B,EAAE,UAAU,CAAC,4BAA4B,EAAE,MAAM,EAAE;QAC3E,QAAQ;KACT,CAAC;IACF,mBAAmB,EAAE,UAAU,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC1E,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;IACpE,qBAAqB,EAAE,UAAU,CAAC,uBAAuB,EAAE,QAAQ,EAAE;QACnE,QAAQ;KACT,CAAC;IACF,yBAAyB,EAAE,UAAU,CAAC,2BAA2B,EAAE,UAAU,EAAE;QAC7E,QAAQ;KACT,CAAC;IACF,wBAAwB,EAAE,UAAU,CAAC,0BAA0B,EAAE,QAAQ,EAAE;QACzE,QAAQ;KACT,CAAC;IACF,4BAA4B,EAAE,UAAU,CACtC,8BAA8B,EAC9B,UAAU,EACV,CAAC,QAAQ,CAAC,CACX;IACD,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function nativeSuffixForPlatform(platform?: NodeJS.Platform): string;
|
|
2
|
+
export declare function resolveNativeLibraryCandidates(baseDir: string, platform?: NodeJS.Platform, arch?: NodeJS.Architecture): string[];
|
|
3
|
+
export declare function resolveNativeRuntimeDirectories(baseDir: string, platform?: NodeJS.Platform, arch?: NodeJS.Architecture): string[];
|
|
4
|
+
//# sourceMappingURL=native-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-path.d.ts","sourceRoot":"","sources":["../../components/native-path.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,CAAC,QAAQ,kBAAmB,GAAG,MAAM,CAU3E;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,QAAQ,kBAAmB,EAC3B,IAAI,sBAAe,GAClB,MAAM,EAAE,CAKV;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,QAAQ,kBAAmB,EAC3B,IAAI,sBAAe,GAClB,MAAM,EAAE,CAiBV"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
export function nativeSuffixForPlatform(platform = process.platform) {
|
|
3
|
+
if (platform === "darwin") {
|
|
4
|
+
return "dylib";
|
|
5
|
+
}
|
|
6
|
+
if (platform === "win32") {
|
|
7
|
+
return "dll";
|
|
8
|
+
}
|
|
9
|
+
return "so";
|
|
10
|
+
}
|
|
11
|
+
export function resolveNativeLibraryCandidates(baseDir, platform = process.platform, arch = process.arch) {
|
|
12
|
+
const fileName = `libhttpclient.${nativeSuffixForPlatform(platform)}`;
|
|
13
|
+
return resolveNativeRuntimeDirectories(baseDir, platform, arch).map((dir) => path.join(dir, fileName));
|
|
14
|
+
}
|
|
15
|
+
export function resolveNativeRuntimeDirectories(baseDir, platform = process.platform, arch = process.arch) {
|
|
16
|
+
const baseLibDirs = [
|
|
17
|
+
path.join(baseDir, "../lib"),
|
|
18
|
+
path.join(baseDir, "../../lib"),
|
|
19
|
+
];
|
|
20
|
+
const runtimeDirs = [`${platform}-${arch}`, platform];
|
|
21
|
+
const directories = [];
|
|
22
|
+
for (const libDir of baseLibDirs) {
|
|
23
|
+
for (const runtimeDir of runtimeDirs) {
|
|
24
|
+
directories.push(path.join(libDir, runtimeDir));
|
|
25
|
+
}
|
|
26
|
+
directories.push(libDir);
|
|
27
|
+
}
|
|
28
|
+
return directories;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=native-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-path.js","sourceRoot":"","sources":["../../components/native-path.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,uBAAuB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;IACjE,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAAe,EACf,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAC3B,IAAI,GAAG,OAAO,CAAC,IAAI;IAEnB,MAAM,QAAQ,GAAG,iBAAiB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtE,OAAO,+BAA+B,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1E,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,OAAe,EACf,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAC3B,IAAI,GAAG,OAAO,CAAC,IAAI;IAEnB,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;KAChC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/dist/index-node.d.ts
CHANGED
package/dist/index-node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-node.d.ts","sourceRoot":"","sources":["../index-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index-node.d.ts","sourceRoot":"","sources":["../index-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI1D,cAAc,uBAAuB,CAAC"}
|
package/dist/index-node.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Main client (
|
|
2
|
-
export { JirenClient } from "./components/client-node
|
|
1
|
+
// Main client (auto-select native when available, otherwise fetch fallback)
|
|
2
|
+
export { JirenClient } from "./components/client-node.js";
|
|
3
3
|
// Types
|
|
4
4
|
export * from "./components/types.js";
|
|
5
5
|
//# sourceMappingURL=index-node.js.map
|
package/dist/index-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-node.js","sourceRoot":"","sources":["../index-node.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index-node.js","sourceRoot":"","sources":["../index-node.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,QAAQ;AAER,cAAc,uBAAuB,CAAC"}
|
package/index-node.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Main client (
|
|
2
|
-
export { JirenClient } from "./components/client-node
|
|
1
|
+
// Main client (auto-select native when available, otherwise fetch fallback)
|
|
2
|
+
export { JirenClient } from "./components/client-node.js";
|
|
3
3
|
|
|
4
4
|
// Types
|
|
5
5
|
|
|
Binary file
|
package/lib/libhttpclient.dylib
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/components/client-bun.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { JirenClient as NativeJirenClient } from "./client";
|
|
2
|
-
import { JirenClient as FetchJirenClient } from "./client-node-fetch";
|
|
3
|
-
import { isNativeAvailable, nativeAvailabilityError } from "./native";
|
|
4
|
-
|
|
5
|
-
const forceFallback = process.env.JIREN_FORCE_FETCH_FALLBACK === "1";
|
|
6
|
-
let didWarnNativeUnavailable = false;
|
|
7
|
-
|
|
8
|
-
if (!forceFallback && !isNativeAvailable && !didWarnNativeUnavailable) {
|
|
9
|
-
didWarnNativeUnavailable = true;
|
|
10
|
-
const reason = nativeAvailabilityError?.message ?? "unknown reason";
|
|
11
|
-
console.warn(`[Jiren] Bun native unavailable, using fetch fallback. ${reason}`);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const JirenClient = (
|
|
15
|
-
!forceFallback && isNativeAvailable ? NativeJirenClient : FetchJirenClient
|
|
16
|
-
) as unknown as typeof NativeJirenClient;
|
package/lib/libcurl.dll
DELETED
|
Binary file
|
package/lib/libhttpclient.dll
DELETED
|
Binary file
|