@zeke-02/tinfoil 0.0.11 → 0.11.7
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/dist/ai-sdk-provider.browser.d.ts +12 -0
- package/dist/ai-sdk-provider.browser.d.ts.map +1 -0
- package/dist/{esm/ai-sdk-provider.mjs → ai-sdk-provider.browser.js} +9 -5
- package/dist/ai-sdk-provider.browser.js.map +1 -0
- package/dist/ai-sdk-provider.d.ts +6 -1
- package/dist/ai-sdk-provider.d.ts.map +1 -0
- package/dist/ai-sdk-provider.js +12 -11
- package/dist/ai-sdk-provider.js.map +1 -0
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +3 -5
- package/dist/config.js.map +1 -0
- package/dist/encrypted-body-fetch.d.ts +8 -2
- package/dist/encrypted-body-fetch.d.ts.map +1 -0
- package/dist/encrypted-body-fetch.js +27 -26
- package/dist/encrypted-body-fetch.js.map +1 -0
- package/dist/env.d.ts +1 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +2 -4
- package/dist/env.js.map +1 -0
- package/dist/index.browser.d.ts +8 -7
- package/dist/index.browser.d.ts.map +1 -0
- package/dist/index.browser.js +8 -28
- package/dist/index.browser.js.map +1 -0
- package/dist/index.d.ts +9 -8
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -47
- package/dist/index.js.map +1 -0
- package/dist/pinned-tls-fetch.d.ts +1 -0
- package/dist/pinned-tls-fetch.d.ts.map +1 -0
- package/dist/pinned-tls-fetch.js +13 -17
- package/dist/pinned-tls-fetch.js.map +1 -0
- package/dist/router.d.ts +1 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +6 -7
- package/dist/router.js.map +1 -0
- package/dist/{esm/secure-client.d.ts → secure-client.browser.d.ts} +2 -1
- package/dist/secure-client.browser.d.ts.map +1 -0
- package/dist/{esm/secure-client.mjs → secure-client.browser.js} +46 -56
- package/dist/secure-client.browser.js.map +1 -0
- package/dist/secure-client.d.ts +2 -1
- package/dist/secure-client.d.ts.map +1 -0
- package/dist/secure-client.js +51 -65
- package/dist/secure-client.js.map +1 -0
- package/dist/secure-fetch.browser.d.ts +1 -0
- package/dist/secure-fetch.browser.d.ts.map +1 -0
- package/dist/secure-fetch.browser.js +4 -6
- package/dist/secure-fetch.browser.js.map +1 -0
- package/dist/secure-fetch.d.ts +1 -0
- package/dist/secure-fetch.d.ts.map +1 -0
- package/dist/secure-fetch.js +16 -8
- package/dist/secure-fetch.js.map +1 -0
- package/dist/{tinfoilai.d.ts → tinfoil-ai.browser.d.ts} +5 -2
- package/dist/tinfoil-ai.browser.d.ts.map +1 -0
- package/dist/{tinfoilai.js → tinfoil-ai.browser.js} +50 -39
- package/dist/tinfoil-ai.browser.js.map +1 -0
- package/dist/{esm/tinfoilai.d.ts → tinfoil-ai.d.ts} +5 -2
- package/dist/tinfoil-ai.d.ts.map +1 -0
- package/dist/{esm/tinfoilai.mjs → tinfoil-ai.js} +29 -11
- package/dist/tinfoil-ai.js.map +1 -0
- package/dist/unverified-client.d.ts +1 -2
- package/dist/unverified-client.d.ts.map +1 -0
- package/dist/unverified-client.js +10 -13
- package/dist/unverified-client.js.map +1 -0
- package/dist/verifier.d.ts +2 -141
- package/dist/verifier.d.ts.map +1 -0
- package/dist/verifier.js +2 -570
- package/dist/verifier.js.map +1 -0
- package/package.json +48 -41
- package/LICENSE +0 -661
- package/README.md +0 -183
- package/dist/__tests__/test-utils.d.ts +0 -1
- package/dist/__tests__/test-utils.js +0 -44
- package/dist/esm/__tests__/test-utils.d.ts +0 -1
- package/dist/esm/__tests__/test-utils.mjs +0 -38
- package/dist/esm/ai-sdk-provider.d.ts +0 -7
- package/dist/esm/config.d.ts +0 -13
- package/dist/esm/config.mjs +0 -13
- package/dist/esm/encrypted-body-fetch.d.ts +0 -13
- package/dist/esm/encrypted-body-fetch.mjs +0 -105
- package/dist/esm/env.d.ts +0 -5
- package/dist/esm/env.mjs +0 -17
- package/dist/esm/fetch-adapter.d.ts +0 -21
- package/dist/esm/fetch-adapter.mjs +0 -23
- package/dist/esm/index.browser.d.ts +0 -7
- package/dist/esm/index.browser.mjs +0 -8
- package/dist/esm/index.d.ts +0 -9
- package/dist/esm/index.mjs +0 -13
- package/dist/esm/pinned-tls-fetch.d.ts +0 -1
- package/dist/esm/pinned-tls-fetch.mjs +0 -110
- package/dist/esm/router.d.ts +0 -11
- package/dist/esm/router.mjs +0 -33
- package/dist/esm/secure-fetch.browser.d.ts +0 -1
- package/dist/esm/secure-fetch.browser.mjs +0 -10
- package/dist/esm/secure-fetch.d.ts +0 -1
- package/dist/esm/secure-fetch.mjs +0 -12
- package/dist/esm/unverified-client.d.ts +0 -18
- package/dist/esm/unverified-client.mjs +0 -61
- package/dist/esm/verifier.d.ts +0 -141
- package/dist/esm/verifier.mjs +0 -532
- package/dist/esm/wasm-exec.js +0 -668
- package/dist/esm/wasm-exec.mjs +0 -668
- package/dist/fetch-adapter.d.ts +0 -21
- package/dist/fetch-adapter.js +0 -27
- package/dist/wasm-exec.js +0 -668
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SecureClient } from "./secure-client.browser.js";
|
|
2
|
+
interface CreateTinfoilAIOptions {
|
|
3
|
+
baseURL?: string;
|
|
4
|
+
enclaveURL?: string;
|
|
5
|
+
configRepo?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function createTinfoilAI(apiKey: string, options?: CreateTinfoilAIOptions): Promise<{
|
|
8
|
+
provider: import("@ai-sdk/openai-compatible").OpenAICompatibleProvider<string, string, string, string>;
|
|
9
|
+
secureClient: SecureClient;
|
|
10
|
+
}>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ai-sdk-provider.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-sdk-provider.browser.d.ts","sourceRoot":"","sources":["../src/ai-sdk-provider.browser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;;;GA8BzF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
|
|
2
|
-
import { TINFOIL_CONFIG } from "./config.
|
|
3
|
-
import { SecureClient } from "./secure-client.
|
|
4
|
-
export async function createTinfoilAI(apiKey, options = {}
|
|
2
|
+
import { TINFOIL_CONFIG } from "./config.js";
|
|
3
|
+
import { SecureClient } from "./secure-client.browser.js";
|
|
4
|
+
export async function createTinfoilAI(apiKey, options = {}) {
|
|
5
5
|
const baseURL = options.baseURL;
|
|
6
6
|
const enclaveURL = options.enclaveURL;
|
|
7
7
|
const configRepo = options.configRepo || TINFOIL_CONFIG.INFERENCE_PROXY_REPO;
|
|
@@ -16,11 +16,15 @@ export async function createTinfoilAI(apiKey, options = {}, headers = {}) {
|
|
|
16
16
|
if (!finalBaseURL) {
|
|
17
17
|
throw new Error("Unable to determine baseURL for AI SDK provider");
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
const provider = createOpenAICompatible({
|
|
20
20
|
name: "tinfoil",
|
|
21
21
|
baseURL: finalBaseURL,
|
|
22
22
|
apiKey: apiKey,
|
|
23
23
|
fetch: secureClient.fetch,
|
|
24
|
-
headers,
|
|
25
24
|
});
|
|
25
|
+
return {
|
|
26
|
+
provider,
|
|
27
|
+
secureClient,
|
|
28
|
+
};
|
|
26
29
|
}
|
|
30
|
+
//# sourceMappingURL=ai-sdk-provider.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-sdk-provider.browser.js","sourceRoot":"","sources":["../src/ai-sdk-provider.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAQ1D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,UAAkC,EAAE;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,oBAAoB,CAAC;IAE7E,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,OAAO;QACP,UAAU;QACV,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAE3B,yDAAyD;IACzD,MAAM,YAAY,GAAG,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;IAC1D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACtC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,YAAY,CAAC,KAAK;KAC1B,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import { SecureClient } from "./secure-client.js";
|
|
1
2
|
interface CreateTinfoilAIOptions {
|
|
2
3
|
baseURL?: string;
|
|
3
4
|
enclaveURL?: string;
|
|
4
5
|
configRepo?: string;
|
|
5
6
|
}
|
|
6
|
-
export declare function createTinfoilAI(apiKey: string, options?: CreateTinfoilAIOptions
|
|
7
|
+
export declare function createTinfoilAI(apiKey: string, options?: CreateTinfoilAIOptions): Promise<{
|
|
8
|
+
provider: import("@ai-sdk/openai-compatible").OpenAICompatibleProvider<string, string, string, string>;
|
|
9
|
+
secureClient: SecureClient;
|
|
10
|
+
}>;
|
|
7
11
|
export {};
|
|
12
|
+
//# sourceMappingURL=ai-sdk-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-sdk-provider.d.ts","sourceRoot":"","sources":["../src/ai-sdk-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;;;GA8BzF"}
|
package/dist/ai-sdk-provider.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const config_1 = require("./config");
|
|
6
|
-
const secure_client_1 = require("./secure-client");
|
|
7
|
-
async function createTinfoilAI(apiKey, options = {}, headers = {}) {
|
|
1
|
+
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
|
|
2
|
+
import { TINFOIL_CONFIG } from "./config.js";
|
|
3
|
+
import { SecureClient } from "./secure-client.js";
|
|
4
|
+
export async function createTinfoilAI(apiKey, options = {}) {
|
|
8
5
|
const baseURL = options.baseURL;
|
|
9
6
|
const enclaveURL = options.enclaveURL;
|
|
10
|
-
const configRepo = options.configRepo ||
|
|
11
|
-
const secureClient = new
|
|
7
|
+
const configRepo = options.configRepo || TINFOIL_CONFIG.INFERENCE_PROXY_REPO;
|
|
8
|
+
const secureClient = new SecureClient({
|
|
12
9
|
baseURL,
|
|
13
10
|
enclaveURL,
|
|
14
11
|
configRepo,
|
|
@@ -19,11 +16,15 @@ async function createTinfoilAI(apiKey, options = {}, headers = {}) {
|
|
|
19
16
|
if (!finalBaseURL) {
|
|
20
17
|
throw new Error("Unable to determine baseURL for AI SDK provider");
|
|
21
18
|
}
|
|
22
|
-
|
|
19
|
+
const provider = createOpenAICompatible({
|
|
23
20
|
name: "tinfoil",
|
|
24
21
|
baseURL: finalBaseURL,
|
|
25
22
|
apiKey: apiKey,
|
|
26
23
|
fetch: secureClient.fetch,
|
|
27
|
-
headers,
|
|
28
24
|
});
|
|
25
|
+
return {
|
|
26
|
+
provider,
|
|
27
|
+
secureClient,
|
|
28
|
+
};
|
|
29
29
|
}
|
|
30
|
+
//# sourceMappingURL=ai-sdk-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-sdk-provider.js","sourceRoot":"","sources":["../src/ai-sdk-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQlD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,UAAkC,EAAE;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,oBAAoB,CAAC;IAE7E,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,OAAO;QACP,UAAU;QACV,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAE3B,yDAAyD;IACzD,MAAM,YAAY,GAAG,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;IAC1D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACtC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,YAAY,CAAC,KAAK;KAC1B,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,YAAY;KACb,CAAC;AACJ,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ export declare const TINFOIL_CONFIG: {
|
|
|
9
9
|
/**
|
|
10
10
|
* The ATC (Attestation and Trust Center) API URL for fetching available routers
|
|
11
11
|
*/
|
|
12
|
-
readonly ATC_API_URL: "https://atc.tinfoil.sh/routers";
|
|
12
|
+
readonly ATC_API_URL: "https://atc.tinfoil.sh/routers?platform=snp";
|
|
13
13
|
};
|
|
14
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;;IAGH;;OAEG;;CAEK,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TINFOIL_CONFIG = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Configuration constants for the Tinfoil Node SDK
|
|
6
3
|
*/
|
|
7
|
-
|
|
4
|
+
export const TINFOIL_CONFIG = {
|
|
8
5
|
/**
|
|
9
6
|
* The GitHub repository for code attestation verification
|
|
10
7
|
*/
|
|
@@ -12,5 +9,6 @@ exports.TINFOIL_CONFIG = {
|
|
|
12
9
|
/**
|
|
13
10
|
* The ATC (Attestation and Trust Center) API URL for fetching available routers
|
|
14
11
|
*/
|
|
15
|
-
ATC_API_URL: "https://atc.tinfoil.sh/routers",
|
|
12
|
+
ATC_API_URL: "https://atc.tinfoil.sh/routers?platform=snp",
|
|
16
13
|
};
|
|
14
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;;OAEG;IACH,oBAAoB,EAAE,qCAAqC;IAE3D;;OAEG;IACH,WAAW,EAAE,6CAA6C;CAClD,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import type { Transport as EhbpTransport } from "
|
|
2
|
-
|
|
1
|
+
import type { Transport as EhbpTransport } from "ehbp";
|
|
2
|
+
import { Identity } from "ehbp";
|
|
3
|
+
/**
|
|
4
|
+
* Fetch and parse server identity from the HPKE keys endpoint.
|
|
5
|
+
* Returns the server Identity which can be used to create a Transport.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getServerIdentity(enclaveURL: string): Promise<Identity>;
|
|
3
8
|
export declare function normalizeEncryptedBodyRequestArgs(input: RequestInfo | URL, init?: RequestInit): {
|
|
4
9
|
url: string;
|
|
5
10
|
init?: RequestInit;
|
|
@@ -11,3 +16,4 @@ type FetchWithResponse = typeof fetch & {
|
|
|
11
16
|
export declare function createEncryptedBodyFetch(baseURL: string, hpkePublicKey?: string, enclaveURL?: string): FetchWithResponse;
|
|
12
17
|
export declare function getTransportForOrigin(origin: string, keyOrigin: string): Promise<EhbpTransport>;
|
|
13
18
|
export {};
|
|
19
|
+
//# sourceMappingURL=encrypted-body-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encrypted-body-fetch.d.ts","sourceRoot":"","sources":["../src/encrypted-body-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAuB,MAAM,MAAM,CAAC;AAGrD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsB7E;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAuBrC;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,aAAa,CAAC,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,aAAa,GAChC,OAAO,CAAC,QAAQ,CAAC,CA2BnB;AAGD,KAAK,iBAAiB,GAAG,OAAO,KAAK,GAAG;IAAE,QAAQ,EAAE,OAAO,QAAQ,CAAA;CAAE,CAAC;AAItE,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,iBAAiB,CA4CnB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAiBxB"}
|
|
@@ -1,33 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const fetch_adapter_1 = require("./fetch-adapter");
|
|
10
|
-
// Public API
|
|
11
|
-
async function getHPKEKey(enclaveURL) {
|
|
12
|
-
const url = new URL(enclaveURL);
|
|
13
|
-
const keysURL = new URL(ehbp_1.PROTOCOL.KEYS_PATH, enclaveURL);
|
|
1
|
+
import { Identity, Transport, PROTOCOL } from "ehbp";
|
|
2
|
+
import { fetch as tauriFetch } from "@tauri-apps/plugin-http";
|
|
3
|
+
/**
|
|
4
|
+
* Fetch and parse server identity from the HPKE keys endpoint.
|
|
5
|
+
* Returns the server Identity which can be used to create a Transport.
|
|
6
|
+
*/
|
|
7
|
+
export async function getServerIdentity(enclaveURL) {
|
|
8
|
+
const keysURL = new URL(PROTOCOL.KEYS_PATH, enclaveURL);
|
|
14
9
|
if (keysURL.protocol !== "https:") {
|
|
15
10
|
throw new Error(`HTTPS is required for remote key retrieval. Invalid protocol: ${keysURL.protocol}`);
|
|
16
11
|
}
|
|
17
|
-
const
|
|
18
|
-
const response = await fetchFn(keysURL.toString());
|
|
12
|
+
const response = await tauriFetch(keysURL.toString());
|
|
19
13
|
if (!response.ok) {
|
|
20
14
|
throw new Error(`Failed to get server public key: ${response.status}`);
|
|
21
15
|
}
|
|
22
16
|
const contentType = response.headers.get("content-type");
|
|
23
|
-
if (contentType !==
|
|
17
|
+
if (contentType !== PROTOCOL.KEYS_MEDIA_TYPE) {
|
|
24
18
|
throw new Error(`Invalid content type: ${contentType}`);
|
|
25
19
|
}
|
|
26
20
|
const keysData = new Uint8Array(await response.arrayBuffer());
|
|
27
|
-
|
|
28
|
-
return serverIdentity.getPublicKey();
|
|
21
|
+
return await Identity.unmarshalPublicConfig(keysData);
|
|
29
22
|
}
|
|
30
|
-
function normalizeEncryptedBodyRequestArgs(input, init) {
|
|
23
|
+
export function normalizeEncryptedBodyRequestArgs(input, init) {
|
|
31
24
|
if (typeof input === "string") {
|
|
32
25
|
return { url: input, init };
|
|
33
26
|
}
|
|
@@ -47,7 +40,7 @@ function normalizeEncryptedBodyRequestArgs(input, init) {
|
|
|
47
40
|
init: { ...derivedInit, ...init },
|
|
48
41
|
};
|
|
49
42
|
}
|
|
50
|
-
async function encryptedBodyRequest(input, hpkePublicKey, init, enclaveURL, transportInstance) {
|
|
43
|
+
export async function encryptedBodyRequest(input, hpkePublicKey, init, enclaveURL, transportInstance) {
|
|
51
44
|
const { url: requestUrl, init: requestInit } = normalizeEncryptedBodyRequestArgs(input, init);
|
|
52
45
|
let actualTransport;
|
|
53
46
|
if (transportInstance) {
|
|
@@ -69,7 +62,8 @@ async function encryptedBodyRequest(input, hpkePublicKey, init, enclaveURL, tran
|
|
|
69
62
|
}
|
|
70
63
|
return actualTransport.request(requestUrl, requestInit);
|
|
71
64
|
}
|
|
72
|
-
|
|
65
|
+
const ENCLAVE_URL_HEADER = "X-Tinfoil-Enclave-Url";
|
|
66
|
+
export function createEncryptedBodyFetch(baseURL, hpkePublicKey, enclaveURL) {
|
|
73
67
|
// Create a dedicated transport instance for this fetch function
|
|
74
68
|
let transportPromise = null;
|
|
75
69
|
const getOrCreateTransport = async () => {
|
|
@@ -85,16 +79,23 @@ function createEncryptedBodyFetch(baseURL, hpkePublicKey, enclaveURL) {
|
|
|
85
79
|
const secureFetch = (async (input, init) => {
|
|
86
80
|
const normalized = normalizeEncryptedBodyRequestArgs(input, init);
|
|
87
81
|
const targetUrl = new URL(normalized.url, baseURL);
|
|
82
|
+
// Add the enclave URL header so proxies know where to forward requests
|
|
83
|
+
// Only set if enclaveURL differs from baseURL (avoids CORS issues when hitting enclave directly)
|
|
84
|
+
const headers = new Headers(normalized.init?.headers);
|
|
85
|
+
if (enclaveURL && new URL(enclaveURL).origin !== new URL(baseURL).origin) {
|
|
86
|
+
headers.set(ENCLAVE_URL_HEADER, enclaveURL);
|
|
87
|
+
}
|
|
88
|
+
const initWithEnclaveHeader = { ...normalized.init, headers };
|
|
88
89
|
// Get the dedicated transport instance for this fetch function
|
|
89
90
|
const transportInstance = await getOrCreateTransport();
|
|
90
|
-
return encryptedBodyRequest(targetUrl.toString(), hpkePublicKey,
|
|
91
|
+
return encryptedBodyRequest(targetUrl.toString(), hpkePublicKey, initWithEnclaveHeader, enclaveURL, transportInstance);
|
|
91
92
|
});
|
|
92
93
|
// Expose Response constructor for OpenAI SDK's FormData support detection
|
|
93
94
|
// This prevents the SDK from making a test request to 'data:,' which would fail through EHBP
|
|
94
95
|
secureFetch.Response = Response;
|
|
95
96
|
return secureFetch;
|
|
96
97
|
}
|
|
97
|
-
async function getTransportForOrigin(origin, keyOrigin) {
|
|
98
|
+
export async function getTransportForOrigin(origin, keyOrigin) {
|
|
98
99
|
if (typeof globalThis !== "undefined") {
|
|
99
100
|
const isSecure = globalThis.isSecureContext !== false;
|
|
100
101
|
const hasSubtle = !!(globalThis.crypto && globalThis.crypto.subtle);
|
|
@@ -105,8 +106,8 @@ async function getTransportForOrigin(origin, keyOrigin) {
|
|
|
105
106
|
throw new Error(`EHBP requires a secure browser context: ${reason}`);
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
|
-
const
|
|
109
|
-
const serverPublicKey = await getHPKEKey(keyOrigin);
|
|
109
|
+
const serverIdentity = await getServerIdentity(keyOrigin);
|
|
110
110
|
const requestHost = new URL(origin).host;
|
|
111
|
-
return new
|
|
111
|
+
return new Transport(serverIdentity, requestHost);
|
|
112
112
|
}
|
|
113
|
+
//# sourceMappingURL=encrypted-body-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encrypted-body-fetch.js","sourceRoot":"","sources":["../src/encrypted-body-fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/env.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAgBvC"}
|
package/dist/env.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isRealBrowser = isRealBrowser;
|
|
4
1
|
/**
|
|
5
2
|
* Detects if the code is running in a real browser environment.
|
|
6
3
|
* Returns false for Node.js environments, even with WASM loaded.
|
|
7
4
|
*/
|
|
8
|
-
function isRealBrowser() {
|
|
5
|
+
export function isRealBrowser() {
|
|
9
6
|
if (typeof process !== "undefined" &&
|
|
10
7
|
process.versions &&
|
|
11
8
|
process.versions.node) {
|
|
@@ -18,3 +15,4 @@ function isRealBrowser() {
|
|
|
18
15
|
}
|
|
19
16
|
return false;
|
|
20
17
|
}
|
|
18
|
+
//# sourceMappingURL=env.js.map
|
package/dist/env.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,IACE,OAAO,OAAO,KAAK,WAAW;QAC7B,OAAe,CAAC,QAAQ;QACxB,OAAe,CAAC,QAAQ,CAAC,IAAI,EAC9B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC5E,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/index.browser.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { TinfoilAI } from "./
|
|
2
|
-
export { TinfoilAI as default } from "./
|
|
3
|
-
export * from "./verifier";
|
|
4
|
-
export * from "./ai-sdk-provider";
|
|
5
|
-
export * from "./config";
|
|
6
|
-
export { SecureClient } from "./secure-client";
|
|
7
|
-
export { UnverifiedClient } from "./unverified-client";
|
|
1
|
+
export { TinfoilAI } from "./tinfoil-ai.browser.js";
|
|
2
|
+
export { TinfoilAI as default } from "./tinfoil-ai.browser.js";
|
|
3
|
+
export * from "./verifier.js";
|
|
4
|
+
export * from "./ai-sdk-provider.browser.js";
|
|
5
|
+
export * from "./config.js";
|
|
6
|
+
export { SecureClient } from "./secure-client.browser.js";
|
|
7
|
+
export { UnverifiedClient } from "./unverified-client.js";
|
|
8
|
+
//# sourceMappingURL=index.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAE/D,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.browser.js
CHANGED
|
@@ -1,29 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.UnverifiedClient = exports.SecureClient = exports.default = exports.TinfoilAI = void 0;
|
|
18
1
|
// Browser-safe entry point: avoids Node built-ins
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Object.defineProperty(exports, "SecureClient", { enumerable: true, get: function () { return secure_client_1.SecureClient; } });
|
|
28
|
-
var unverified_client_1 = require("./unverified-client");
|
|
29
|
-
Object.defineProperty(exports, "UnverifiedClient", { enumerable: true, get: function () { return unverified_client_1.UnverifiedClient; } });
|
|
2
|
+
export { TinfoilAI } from "./tinfoil-ai.browser.js";
|
|
3
|
+
export { TinfoilAI as default } from "./tinfoil-ai.browser.js";
|
|
4
|
+
export * from "./verifier.js";
|
|
5
|
+
export * from "./ai-sdk-provider.browser.js";
|
|
6
|
+
export * from "./config.js";
|
|
7
|
+
export { SecureClient } from "./secure-client.browser.js";
|
|
8
|
+
export { UnverifiedClient } from "./unverified-client.js";
|
|
9
|
+
//# sourceMappingURL=index.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAE/D,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export { TinfoilAI } from "./
|
|
2
|
-
export { TinfoilAI as default } from "./
|
|
3
|
-
export * from "./verifier";
|
|
4
|
-
export * from "./ai-sdk-provider";
|
|
5
|
-
export * from "./config";
|
|
6
|
-
export { SecureClient } from "./secure-client";
|
|
7
|
-
export { UnverifiedClient } from "./unverified-client";
|
|
8
|
-
export { fetchRouter } from "./router";
|
|
1
|
+
export { TinfoilAI } from "./tinfoil-ai.js";
|
|
2
|
+
export { TinfoilAI as default } from "./tinfoil-ai.js";
|
|
3
|
+
export * from "./verifier.js";
|
|
4
|
+
export * from "./ai-sdk-provider.js";
|
|
5
|
+
export * from "./config.js";
|
|
6
|
+
export { SecureClient } from "./secure-client.js";
|
|
7
|
+
export { UnverifiedClient } from "./unverified-client.js";
|
|
8
|
+
export { fetchRouter } from "./router.js";
|
|
9
9
|
export { type Uploadable, toFile, APIPromise, PagePromise, OpenAIError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, NotFoundError, ConflictError, RateLimitError, BadRequestError, AuthenticationError, InternalServerError, PermissionDeniedError, UnprocessableEntityError, } from "openai";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGvD,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,EACL,KAAK,UAAU,EACf,MAAM,EACN,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,QAAQ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,51 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.UnprocessableEntityError = exports.PermissionDeniedError = exports.InternalServerError = exports.AuthenticationError = exports.BadRequestError = exports.RateLimitError = exports.ConflictError = exports.NotFoundError = exports.APIUserAbortError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIError = exports.OpenAIError = exports.PagePromise = exports.APIPromise = exports.toFile = exports.fetchRouter = exports.UnverifiedClient = exports.SecureClient = exports.default = exports.TinfoilAI = void 0;
|
|
18
1
|
// Re-export the TinfoilAI class
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var tinfoilai_2 = require("./tinfoilai");
|
|
22
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tinfoilai_2.TinfoilAI; } });
|
|
2
|
+
export { TinfoilAI } from "./tinfoil-ai.js";
|
|
3
|
+
export { TinfoilAI as default } from "./tinfoil-ai.js";
|
|
23
4
|
// Export verifier
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
Object.defineProperty(exports, "UnverifiedClient", { enumerable: true, get: function () { return unverified_client_1.UnverifiedClient; } });
|
|
31
|
-
var router_1 = require("./router");
|
|
32
|
-
Object.defineProperty(exports, "fetchRouter", { enumerable: true, get: function () { return router_1.fetchRouter; } });
|
|
5
|
+
export * from "./verifier.js";
|
|
6
|
+
export * from "./ai-sdk-provider.js";
|
|
7
|
+
export * from "./config.js";
|
|
8
|
+
export { SecureClient } from "./secure-client.js";
|
|
9
|
+
export { UnverifiedClient } from "./unverified-client.js";
|
|
10
|
+
export { fetchRouter } from "./router.js";
|
|
33
11
|
// Re-export OpenAI utility types and classes that users might need
|
|
34
12
|
// Using public exports from the main OpenAI package instead of deep imports
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Object.defineProperty(exports, "APIPromise", { enumerable: true, get: function () { return openai_1.APIPromise; } });
|
|
38
|
-
Object.defineProperty(exports, "PagePromise", { enumerable: true, get: function () { return openai_1.PagePromise; } });
|
|
39
|
-
Object.defineProperty(exports, "OpenAIError", { enumerable: true, get: function () { return openai_1.OpenAIError; } });
|
|
40
|
-
Object.defineProperty(exports, "APIError", { enumerable: true, get: function () { return openai_1.APIError; } });
|
|
41
|
-
Object.defineProperty(exports, "APIConnectionError", { enumerable: true, get: function () { return openai_1.APIConnectionError; } });
|
|
42
|
-
Object.defineProperty(exports, "APIConnectionTimeoutError", { enumerable: true, get: function () { return openai_1.APIConnectionTimeoutError; } });
|
|
43
|
-
Object.defineProperty(exports, "APIUserAbortError", { enumerable: true, get: function () { return openai_1.APIUserAbortError; } });
|
|
44
|
-
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return openai_1.NotFoundError; } });
|
|
45
|
-
Object.defineProperty(exports, "ConflictError", { enumerable: true, get: function () { return openai_1.ConflictError; } });
|
|
46
|
-
Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return openai_1.RateLimitError; } });
|
|
47
|
-
Object.defineProperty(exports, "BadRequestError", { enumerable: true, get: function () { return openai_1.BadRequestError; } });
|
|
48
|
-
Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return openai_1.AuthenticationError; } });
|
|
49
|
-
Object.defineProperty(exports, "InternalServerError", { enumerable: true, get: function () { return openai_1.InternalServerError; } });
|
|
50
|
-
Object.defineProperty(exports, "PermissionDeniedError", { enumerable: true, get: function () { return openai_1.PermissionDeniedError; } });
|
|
51
|
-
Object.defineProperty(exports, "UnprocessableEntityError", { enumerable: true, get: function () { return openai_1.UnprocessableEntityError; } });
|
|
13
|
+
export { toFile, APIPromise, PagePromise, OpenAIError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, NotFoundError, ConflictError, RateLimitError, BadRequestError, AuthenticationError, InternalServerError, PermissionDeniedError, UnprocessableEntityError, } from "openai";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEvD,kBAAkB;AAClB,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,mEAAmE;AACnE,4EAA4E;AAC5E,OAAO,EAEL,MAAM,EACN,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pinned-tls-fetch.d.ts","sourceRoot":"","sources":["../src/pinned-tls-fetch.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,GAAG,OAAO,KAAK,CAyGlG"}
|
package/dist/pinned-tls-fetch.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const https_1 = __importDefault(require("https"));
|
|
8
|
-
const tls_1 = require("tls");
|
|
9
|
-
const crypto_1 = require("crypto");
|
|
10
|
-
const stream_1 = require("stream");
|
|
11
|
-
function createPinnedTlsFetch(baseURL, expectedFingerprintHex) {
|
|
1
|
+
import https from "https";
|
|
2
|
+
import tls, { checkServerIdentity as tlsCheckServerIdentity } from "tls";
|
|
3
|
+
import { X509Certificate, createHash } from "crypto";
|
|
4
|
+
import { Readable } from "stream";
|
|
5
|
+
import { ReadableStream as NodeReadableStream } from "stream/web";
|
|
6
|
+
export function createPinnedTlsFetch(baseURL, expectedFingerprintHex) {
|
|
12
7
|
return (async (input, init) => {
|
|
13
8
|
// Normalize URL with base URL support
|
|
14
9
|
const makeURL = (value) => {
|
|
@@ -42,7 +37,7 @@ function createPinnedTlsFetch(baseURL, expectedFingerprintHex) {
|
|
|
42
37
|
}
|
|
43
38
|
// Convert web streams to Node streams if needed
|
|
44
39
|
if (body && typeof body.getReader === "function") {
|
|
45
|
-
body =
|
|
40
|
+
body = Readable.fromWeb(body);
|
|
46
41
|
}
|
|
47
42
|
if (body instanceof ArrayBuffer) {
|
|
48
43
|
body = Buffer.from(body);
|
|
@@ -62,18 +57,18 @@ function createPinnedTlsFetch(baseURL, expectedFingerprintHex) {
|
|
|
62
57
|
if (!raw) {
|
|
63
58
|
return new Error("Certificate raw bytes are unavailable for pinning");
|
|
64
59
|
}
|
|
65
|
-
const x509 = new
|
|
60
|
+
const x509 = new X509Certificate(raw);
|
|
66
61
|
const publicKeyDer = x509.publicKey.export({ type: "spki", format: "der" });
|
|
67
|
-
const fp =
|
|
62
|
+
const fp = createHash("sha256").update(publicKeyDer).digest("hex");
|
|
68
63
|
if (fp !== expectedFingerprintHex) {
|
|
69
64
|
return new Error(`Certificate public key fingerprint mismatch. Expected: ${expectedFingerprintHex}, Got: ${fp}`);
|
|
70
65
|
}
|
|
71
|
-
return (
|
|
66
|
+
return tlsCheckServerIdentity(host, cert);
|
|
72
67
|
},
|
|
73
68
|
};
|
|
74
69
|
const { signal } = init || {};
|
|
75
70
|
const res = await new Promise((resolve, reject) => {
|
|
76
|
-
const req =
|
|
71
|
+
const req = https.request(requestOptions, resolve);
|
|
77
72
|
req.on("error", reject);
|
|
78
73
|
if (signal) {
|
|
79
74
|
if (signal.aborted) {
|
|
@@ -106,7 +101,7 @@ function createPinnedTlsFetch(baseURL, expectedFingerprintHex) {
|
|
|
106
101
|
}
|
|
107
102
|
}
|
|
108
103
|
// Convert Node stream to Web ReadableStream
|
|
109
|
-
const webStream =
|
|
104
|
+
const webStream = Readable.toWeb(res);
|
|
110
105
|
return new Response(webStream, {
|
|
111
106
|
status: res.statusCode || 0,
|
|
112
107
|
statusText: res.statusMessage || "",
|
|
@@ -114,3 +109,4 @@ function createPinnedTlsFetch(baseURL, expectedFingerprintHex) {
|
|
|
114
109
|
});
|
|
115
110
|
});
|
|
116
111
|
}
|
|
112
|
+
//# sourceMappingURL=pinned-tls-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pinned-tls-fetch.js","sourceRoot":"","sources":["../src/pinned-tls-fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/router.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CA2BnD"}
|
package/dist/router.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.fetchRouter = fetchRouter;
|
|
4
|
-
const config_1 = require("./config");
|
|
1
|
+
import { TINFOIL_CONFIG } from "./config.js";
|
|
2
|
+
import { fetch as tauriFetch } from "@tauri-apps/plugin-http";
|
|
5
3
|
/**
|
|
6
4
|
* Router utilities for fetching available Tinfoil routers
|
|
7
5
|
*/
|
|
@@ -12,10 +10,10 @@ const config_1 = require("./config");
|
|
|
12
10
|
* @returns Promise<string> A randomly selected router address
|
|
13
11
|
* @throws Error if no routers are found or if the request fails
|
|
14
12
|
*/
|
|
15
|
-
async function fetchRouter() {
|
|
16
|
-
const routersUrl =
|
|
13
|
+
export async function fetchRouter() {
|
|
14
|
+
const routersUrl = TINFOIL_CONFIG.ATC_API_URL;
|
|
17
15
|
try {
|
|
18
|
-
const response = await
|
|
16
|
+
const response = await tauriFetch(routersUrl);
|
|
19
17
|
if (!response.ok) {
|
|
20
18
|
throw new Error(`Failed to fetch routers: ${response.status} ${response.statusText}`);
|
|
21
19
|
}
|
|
@@ -34,3 +32,4 @@ async function fetchRouter() {
|
|
|
34
32
|
throw new Error("Failed to fetch router: Unknown error");
|
|
35
33
|
}
|
|
36
34
|
}
|
|
35
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAa,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEhD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,oCAAoC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|