anymal-protocol 1.0.65 → 1.0.67
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/index.d.mts +14 -2
- package/dist/index.d.ts +14 -2
- package/dist/index.js +8 -0
- package/dist/index.mjs +7 -0
- package/package.json +1 -1
- package/dist/chunk-43I5M7QS.mjs +0 -93
- package/dist/chunk-5UXBNDDZ.mjs +0 -93
- package/dist/chunk-DIGESQEI.mjs +0 -91
- package/dist/chunk-KEC6WLEL.mjs +0 -93
- package/dist/chunk-QHK3YPLJ.mjs +0 -93
package/dist/index.d.mts
CHANGED
|
@@ -243,13 +243,25 @@ interface ActionRecord {
|
|
|
243
243
|
version_cid?: string;
|
|
244
244
|
quantity: number;
|
|
245
245
|
reward_amount?: number;
|
|
246
|
-
status:
|
|
246
|
+
status: "PENDING" | "VALIDATED" | "CLAIMED";
|
|
247
247
|
createdAt: string;
|
|
248
248
|
validatedAt?: string | null;
|
|
249
249
|
claimIndex?: number | null;
|
|
250
250
|
claimedAt?: string | null;
|
|
251
251
|
claimQuantity?: number | null;
|
|
252
252
|
}
|
|
253
|
+
interface ActionDefinition {
|
|
254
|
+
key: string;
|
|
255
|
+
action_id: string;
|
|
256
|
+
name: string;
|
|
257
|
+
namespace: string;
|
|
258
|
+
description: string;
|
|
259
|
+
reward_amount: number;
|
|
260
|
+
max_claims: number;
|
|
261
|
+
rule_type: string;
|
|
262
|
+
requires_review: boolean;
|
|
263
|
+
is_active: boolean;
|
|
264
|
+
}
|
|
253
265
|
/**
|
|
254
266
|
* API response for fetching action records.
|
|
255
267
|
*/
|
|
@@ -331,4 +343,4 @@ declare function useCreateOrganizationAppData(): (appId: string, pid: string, db
|
|
|
331
343
|
|
|
332
344
|
declare function useFetchBalance(): (publicClient: any, walletAddress: string, kibbleTokenAddress: string) => Promise<number | undefined>;
|
|
333
345
|
|
|
334
|
-
export { AUTH_API_ENDPOINTS, type ActionPayload, ActionType, type AnymalNftMetadataInputData, type AuthEnvelope, type ContractActionPayload, type CreateAnymalInputData, type ExternalActionPayload, type GraphQLActionPayload, type JWTOptions, NETWORK_HOSTS, Network, type SubmitResponse, createAuthEnvelope, fetchAnymals, generateAppSignature, generateBytes32Nonce, generateJWT, loadExistingSecp256k1PrivateKey, serializePublicKeyCompressed, submitAction, useAddAnymalToDatabase, useApproveKibbleToken, useApproveOrgPartialPayment, useCreateOrganizationAppData, useCreateOrganizationBase, useCreateUserAppData, useCreateWeb3Account, useDeleteAnymalFromDatabase, useFetchActions, useFetchAnymals, useFetchBalance, useFetchNotifications, useFetchUserData, useMintAnymalNFT, useProcessOrgPartialKibblePayment, useProcessPartialKibblePayment, useSaveAnymalMetadata, useUpdateAnymalWithNFT, useUpdateOrgWalletAddress, useUpdateUserAsVerified, useUpdateUserEmail, useUpdateUserName, useUpdateUserPid, useUploadAnymalImage, useVerifyAccount, useVerifyWeb3AuthSession };
|
|
346
|
+
export { AUTH_API_ENDPOINTS, type ActionDefinition, type ActionPayload, type ActionRecord, ActionSourceType, ActionType, type AnymalNftMetadataInputData, type AuthEnvelope, type ContractActionPayload, type CreateAnymalInputData, type ExternalActionPayload, type GraphQLActionPayload, type JWTOptions, NETWORK_HOSTS, Network, type SubmitResponse, createAuthEnvelope, fetchAnymals, generateAppSignature, generateBytes32Nonce, generateJWT, loadExistingSecp256k1PrivateKey, serializePublicKeyCompressed, submitAction, useAddAnymalToDatabase, useApproveKibbleToken, useApproveOrgPartialPayment, useCreateOrganizationAppData, useCreateOrganizationBase, useCreateUserAppData, useCreateWeb3Account, useDeleteAnymalFromDatabase, useFetchActions, useFetchAnymals, useFetchBalance, useFetchNotifications, useFetchUserData, useMintAnymalNFT, useProcessOrgPartialKibblePayment, useProcessPartialKibblePayment, useSaveAnymalMetadata, useUpdateAnymalWithNFT, useUpdateOrgWalletAddress, useUpdateUserAsVerified, useUpdateUserEmail, useUpdateUserName, useUpdateUserPid, useUploadAnymalImage, useVerifyAccount, useVerifyWeb3AuthSession };
|
package/dist/index.d.ts
CHANGED
|
@@ -243,13 +243,25 @@ interface ActionRecord {
|
|
|
243
243
|
version_cid?: string;
|
|
244
244
|
quantity: number;
|
|
245
245
|
reward_amount?: number;
|
|
246
|
-
status:
|
|
246
|
+
status: "PENDING" | "VALIDATED" | "CLAIMED";
|
|
247
247
|
createdAt: string;
|
|
248
248
|
validatedAt?: string | null;
|
|
249
249
|
claimIndex?: number | null;
|
|
250
250
|
claimedAt?: string | null;
|
|
251
251
|
claimQuantity?: number | null;
|
|
252
252
|
}
|
|
253
|
+
interface ActionDefinition {
|
|
254
|
+
key: string;
|
|
255
|
+
action_id: string;
|
|
256
|
+
name: string;
|
|
257
|
+
namespace: string;
|
|
258
|
+
description: string;
|
|
259
|
+
reward_amount: number;
|
|
260
|
+
max_claims: number;
|
|
261
|
+
rule_type: string;
|
|
262
|
+
requires_review: boolean;
|
|
263
|
+
is_active: boolean;
|
|
264
|
+
}
|
|
253
265
|
/**
|
|
254
266
|
* API response for fetching action records.
|
|
255
267
|
*/
|
|
@@ -331,4 +343,4 @@ declare function useCreateOrganizationAppData(): (appId: string, pid: string, db
|
|
|
331
343
|
|
|
332
344
|
declare function useFetchBalance(): (publicClient: any, walletAddress: string, kibbleTokenAddress: string) => Promise<number | undefined>;
|
|
333
345
|
|
|
334
|
-
export { AUTH_API_ENDPOINTS, type ActionPayload, ActionType, type AnymalNftMetadataInputData, type AuthEnvelope, type ContractActionPayload, type CreateAnymalInputData, type ExternalActionPayload, type GraphQLActionPayload, type JWTOptions, NETWORK_HOSTS, Network, type SubmitResponse, createAuthEnvelope, fetchAnymals, generateAppSignature, generateBytes32Nonce, generateJWT, loadExistingSecp256k1PrivateKey, serializePublicKeyCompressed, submitAction, useAddAnymalToDatabase, useApproveKibbleToken, useApproveOrgPartialPayment, useCreateOrganizationAppData, useCreateOrganizationBase, useCreateUserAppData, useCreateWeb3Account, useDeleteAnymalFromDatabase, useFetchActions, useFetchAnymals, useFetchBalance, useFetchNotifications, useFetchUserData, useMintAnymalNFT, useProcessOrgPartialKibblePayment, useProcessPartialKibblePayment, useSaveAnymalMetadata, useUpdateAnymalWithNFT, useUpdateOrgWalletAddress, useUpdateUserAsVerified, useUpdateUserEmail, useUpdateUserName, useUpdateUserPid, useUploadAnymalImage, useVerifyAccount, useVerifyWeb3AuthSession };
|
|
346
|
+
export { AUTH_API_ENDPOINTS, type ActionDefinition, type ActionPayload, type ActionRecord, ActionSourceType, ActionType, type AnymalNftMetadataInputData, type AuthEnvelope, type ContractActionPayload, type CreateAnymalInputData, type ExternalActionPayload, type GraphQLActionPayload, type JWTOptions, NETWORK_HOSTS, Network, type SubmitResponse, createAuthEnvelope, fetchAnymals, generateAppSignature, generateBytes32Nonce, generateJWT, loadExistingSecp256k1PrivateKey, serializePublicKeyCompressed, submitAction, useAddAnymalToDatabase, useApproveKibbleToken, useApproveOrgPartialPayment, useCreateOrganizationAppData, useCreateOrganizationBase, useCreateUserAppData, useCreateWeb3Account, useDeleteAnymalFromDatabase, useFetchActions, useFetchAnymals, useFetchBalance, useFetchNotifications, useFetchUserData, useMintAnymalNFT, useProcessOrgPartialKibblePayment, useProcessPartialKibblePayment, useSaveAnymalMetadata, useUpdateAnymalWithNFT, useUpdateOrgWalletAddress, useUpdateUserAsVerified, useUpdateUserEmail, useUpdateUserName, useUpdateUserPid, useUploadAnymalImage, useVerifyAccount, useVerifyWeb3AuthSession };
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
23
|
AUTH_API_ENDPOINTS: () => AUTH_API_ENDPOINTS,
|
|
24
|
+
ActionSourceType: () => ActionSourceType,
|
|
24
25
|
ActionType: () => ActionType,
|
|
25
26
|
NETWORK_HOSTS: () => NETWORK_HOSTS,
|
|
26
27
|
Network: () => Network,
|
|
@@ -2164,6 +2165,12 @@ var ActionType = /* @__PURE__ */ ((ActionType2) => {
|
|
|
2164
2165
|
ActionType2["EXTERNAL"] = "EXTERNAL";
|
|
2165
2166
|
return ActionType2;
|
|
2166
2167
|
})(ActionType || {});
|
|
2168
|
+
var ActionSourceType = /* @__PURE__ */ ((ActionSourceType2) => {
|
|
2169
|
+
ActionSourceType2["USER"] = "USER";
|
|
2170
|
+
ActionSourceType2["ORGANIZATION"] = "ORGANIZATION";
|
|
2171
|
+
ActionSourceType2["APP"] = "APP";
|
|
2172
|
+
return ActionSourceType2;
|
|
2173
|
+
})(ActionSourceType || {});
|
|
2167
2174
|
|
|
2168
2175
|
// src/utils/application/useCreateUserAppData.ts
|
|
2169
2176
|
var import_react24 = require("react");
|
|
@@ -2304,6 +2311,7 @@ function useFetchBalance() {
|
|
|
2304
2311
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2305
2312
|
0 && (module.exports = {
|
|
2306
2313
|
AUTH_API_ENDPOINTS,
|
|
2314
|
+
ActionSourceType,
|
|
2307
2315
|
ActionType,
|
|
2308
2316
|
NETWORK_HOSTS,
|
|
2309
2317
|
Network,
|
package/dist/index.mjs
CHANGED
|
@@ -2032,6 +2032,12 @@ var ActionType = /* @__PURE__ */ ((ActionType2) => {
|
|
|
2032
2032
|
ActionType2["EXTERNAL"] = "EXTERNAL";
|
|
2033
2033
|
return ActionType2;
|
|
2034
2034
|
})(ActionType || {});
|
|
2035
|
+
var ActionSourceType = /* @__PURE__ */ ((ActionSourceType2) => {
|
|
2036
|
+
ActionSourceType2["USER"] = "USER";
|
|
2037
|
+
ActionSourceType2["ORGANIZATION"] = "ORGANIZATION";
|
|
2038
|
+
ActionSourceType2["APP"] = "APP";
|
|
2039
|
+
return ActionSourceType2;
|
|
2040
|
+
})(ActionSourceType || {});
|
|
2035
2041
|
|
|
2036
2042
|
// src/utils/application/useCreateUserAppData.ts
|
|
2037
2043
|
import { useCallback as useCallback24 } from "react";
|
|
@@ -2171,6 +2177,7 @@ function useFetchBalance() {
|
|
|
2171
2177
|
}
|
|
2172
2178
|
export {
|
|
2173
2179
|
AUTH_API_ENDPOINTS,
|
|
2180
|
+
ActionSourceType,
|
|
2174
2181
|
ActionType,
|
|
2175
2182
|
NETWORK_HOSTS,
|
|
2176
2183
|
Network,
|
package/package.json
CHANGED
package/dist/chunk-43I5M7QS.mjs
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
// src/helpers/CryptoUtils.tsx
|
|
9
|
-
import { ec as EC } from "elliptic";
|
|
10
|
-
var ec = new EC("secp256k1");
|
|
11
|
-
var Network = /* @__PURE__ */ ((Network2) => {
|
|
12
|
-
Network2["Testnet"] = "testnet";
|
|
13
|
-
Network2["Localnet"] = "localnet";
|
|
14
|
-
return Network2;
|
|
15
|
-
})(Network || {});
|
|
16
|
-
var NETWORK_HOSTS = {
|
|
17
|
-
["testnet" /* Testnet */]: "https://dev-db.petastic.com",
|
|
18
|
-
["localnet" /* Localnet */]: "http://host.docker.internal:9181"
|
|
19
|
-
};
|
|
20
|
-
function loadExistingSecp256k1PrivateKey(hexKey) {
|
|
21
|
-
if (!hexKey) {
|
|
22
|
-
throw new Error("Private key hex must be provided");
|
|
23
|
-
}
|
|
24
|
-
return ec.keyFromPrivate(hexKey, "hex");
|
|
25
|
-
}
|
|
26
|
-
function serializePublicKeyCompressed(keyPair) {
|
|
27
|
-
return keyPair.getPublic(true, "hex");
|
|
28
|
-
}
|
|
29
|
-
function base64url(input) {
|
|
30
|
-
let buf;
|
|
31
|
-
if (typeof input === "string") buf = Buffer.from(input);
|
|
32
|
-
else if (input instanceof ArrayBuffer) buf = Buffer.from(input);
|
|
33
|
-
else buf = input;
|
|
34
|
-
return buf.toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
35
|
-
}
|
|
36
|
-
function sha256HashNode(data) {
|
|
37
|
-
const { createHash } = __require("crypto");
|
|
38
|
-
return createHash("sha256").update(data).digest();
|
|
39
|
-
}
|
|
40
|
-
async function hashInput(data) {
|
|
41
|
-
if (typeof window !== "undefined" && window.crypto?.subtle) {
|
|
42
|
-
const encoder = new TextEncoder();
|
|
43
|
-
const encoded = encoder.encode(data);
|
|
44
|
-
const hashBuffer = await window.crypto.subtle.digest("SHA-256", encoded);
|
|
45
|
-
return Buffer.from(hashBuffer);
|
|
46
|
-
} else {
|
|
47
|
-
return sha256HashNode(data);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async function generateJWT(sub, aud, keyPair, expiresInSeconds = 24 * 60 * 60) {
|
|
51
|
-
const iat = Math.floor(Date.now() / 1e3);
|
|
52
|
-
const exp = iat + expiresInSeconds;
|
|
53
|
-
const header = { alg: "ES256", typ: "JWT" };
|
|
54
|
-
const payload = { sub, aud, iat, exp };
|
|
55
|
-
const encodedHeader = base64url(JSON.stringify(header));
|
|
56
|
-
const encodedPayload = base64url(JSON.stringify(payload));
|
|
57
|
-
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
58
|
-
const hash = await hashInput(signingInput);
|
|
59
|
-
const signature = keyPair.sign(hash, { canonical: true });
|
|
60
|
-
const rBuf = signature.r.toArrayLike(Buffer, "be", 32);
|
|
61
|
-
const sBuf = signature.s.toArrayLike(Buffer, "be", 32);
|
|
62
|
-
const rawSig = Buffer.concat([rBuf, sBuf]);
|
|
63
|
-
const encodedSig = base64url(rawSig);
|
|
64
|
-
return `${signingInput}.${encodedSig}`;
|
|
65
|
-
}
|
|
66
|
-
async function createAuthEnvelope(privateKeyHex, network = "testnet" /* Testnet */, options) {
|
|
67
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
68
|
-
const publicKey = serializePublicKeyCompressed(keyPair);
|
|
69
|
-
const host = NETWORK_HOSTS[network];
|
|
70
|
-
if (!host) {
|
|
71
|
-
throw new Error(`Unsupported network: ${network}`);
|
|
72
|
-
}
|
|
73
|
-
const token = await generateJWT(publicKey, host, keyPair, options?.expiresInSeconds);
|
|
74
|
-
return { publicKey, token };
|
|
75
|
-
}
|
|
76
|
-
async function generateAppSignature(privateKeyHex, clientId, redirectUri, state) {
|
|
77
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
78
|
-
const message = `${clientId}:${redirectUri}:${state}`;
|
|
79
|
-
const hash = await hashInput(message);
|
|
80
|
-
const signatureDER = keyPair.sign(hash, { canonical: true }).toDER();
|
|
81
|
-
return Buffer.from(signatureDER).toString("hex");
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export {
|
|
85
|
-
__require,
|
|
86
|
-
Network,
|
|
87
|
-
NETWORK_HOSTS,
|
|
88
|
-
loadExistingSecp256k1PrivateKey,
|
|
89
|
-
serializePublicKeyCompressed,
|
|
90
|
-
generateJWT,
|
|
91
|
-
createAuthEnvelope,
|
|
92
|
-
generateAppSignature
|
|
93
|
-
};
|
package/dist/chunk-5UXBNDDZ.mjs
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
// src/helpers/CryptoUtils.tsx
|
|
9
|
-
import { ec as EC } from "elliptic";
|
|
10
|
-
var ec = new EC("secp256k1");
|
|
11
|
-
var Network = /* @__PURE__ */ ((Network2) => {
|
|
12
|
-
Network2["Testnet"] = "testnet";
|
|
13
|
-
Network2["Localnet"] = "localnet";
|
|
14
|
-
return Network2;
|
|
15
|
-
})(Network || {});
|
|
16
|
-
var NETWORK_HOSTS = {
|
|
17
|
-
["testnet" /* Testnet */]: "https://dev-db.petastic.com",
|
|
18
|
-
["localnet" /* Localnet */]: "http://docker.host.internal:9181"
|
|
19
|
-
};
|
|
20
|
-
function loadExistingSecp256k1PrivateKey(hexKey) {
|
|
21
|
-
if (!hexKey) {
|
|
22
|
-
throw new Error("Private key hex must be provided");
|
|
23
|
-
}
|
|
24
|
-
return ec.keyFromPrivate(hexKey, "hex");
|
|
25
|
-
}
|
|
26
|
-
function serializePublicKeyCompressed(keyPair) {
|
|
27
|
-
return keyPair.getPublic(true, "hex");
|
|
28
|
-
}
|
|
29
|
-
function base64url(input) {
|
|
30
|
-
let buf;
|
|
31
|
-
if (typeof input === "string") buf = Buffer.from(input);
|
|
32
|
-
else if (input instanceof ArrayBuffer) buf = Buffer.from(input);
|
|
33
|
-
else buf = input;
|
|
34
|
-
return buf.toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
35
|
-
}
|
|
36
|
-
function sha256HashNode(data) {
|
|
37
|
-
const { createHash } = __require("crypto");
|
|
38
|
-
return createHash("sha256").update(data).digest();
|
|
39
|
-
}
|
|
40
|
-
async function hashInput(data) {
|
|
41
|
-
if (typeof window !== "undefined" && window.crypto?.subtle) {
|
|
42
|
-
const encoder = new TextEncoder();
|
|
43
|
-
const encoded = encoder.encode(data);
|
|
44
|
-
const hashBuffer = await window.crypto.subtle.digest("SHA-256", encoded);
|
|
45
|
-
return Buffer.from(hashBuffer);
|
|
46
|
-
} else {
|
|
47
|
-
return sha256HashNode(data);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async function generateJWT(sub, aud, keyPair, expiresInSeconds = 24 * 60 * 60) {
|
|
51
|
-
const iat = Math.floor(Date.now() / 1e3);
|
|
52
|
-
const exp = iat + expiresInSeconds;
|
|
53
|
-
const header = { alg: "ES256", typ: "JWT" };
|
|
54
|
-
const payload = { sub, aud, iat, exp };
|
|
55
|
-
const encodedHeader = base64url(JSON.stringify(header));
|
|
56
|
-
const encodedPayload = base64url(JSON.stringify(payload));
|
|
57
|
-
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
58
|
-
const hash = await hashInput(signingInput);
|
|
59
|
-
const signature = keyPair.sign(hash, { canonical: true });
|
|
60
|
-
const rBuf = signature.r.toArrayLike(Buffer, "be", 32);
|
|
61
|
-
const sBuf = signature.s.toArrayLike(Buffer, "be", 32);
|
|
62
|
-
const rawSig = Buffer.concat([rBuf, sBuf]);
|
|
63
|
-
const encodedSig = base64url(rawSig);
|
|
64
|
-
return `${signingInput}.${encodedSig}`;
|
|
65
|
-
}
|
|
66
|
-
async function createAuthEnvelope(privateKeyHex, network = "testnet" /* Testnet */, options) {
|
|
67
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
68
|
-
const publicKey = serializePublicKeyCompressed(keyPair);
|
|
69
|
-
const host = NETWORK_HOSTS[network];
|
|
70
|
-
if (!host) {
|
|
71
|
-
throw new Error(`Unsupported network: ${network}`);
|
|
72
|
-
}
|
|
73
|
-
const token = await generateJWT(publicKey, host, keyPair, options?.expiresInSeconds);
|
|
74
|
-
return { publicKey, token };
|
|
75
|
-
}
|
|
76
|
-
async function generateAppSignature(privateKeyHex, clientId, redirectUri, state) {
|
|
77
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
78
|
-
const message = `${clientId}:${redirectUri}:${state}`;
|
|
79
|
-
const hash = await hashInput(message);
|
|
80
|
-
const signatureDER = keyPair.sign(hash, { canonical: true }).toDER();
|
|
81
|
-
return Buffer.from(signatureDER).toString("hex");
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export {
|
|
85
|
-
__require,
|
|
86
|
-
Network,
|
|
87
|
-
NETWORK_HOSTS,
|
|
88
|
-
loadExistingSecp256k1PrivateKey,
|
|
89
|
-
serializePublicKeyCompressed,
|
|
90
|
-
generateJWT,
|
|
91
|
-
createAuthEnvelope,
|
|
92
|
-
generateAppSignature
|
|
93
|
-
};
|
package/dist/chunk-DIGESQEI.mjs
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
// src/helpers/CryptoUtils.tsx
|
|
9
|
-
import { ec as EC } from "elliptic";
|
|
10
|
-
var ec = new EC("secp256k1");
|
|
11
|
-
var Network = /* @__PURE__ */ ((Network2) => {
|
|
12
|
-
Network2["Testnet"] = "testnet";
|
|
13
|
-
return Network2;
|
|
14
|
-
})(Network || {});
|
|
15
|
-
var NETWORK_HOSTS = {
|
|
16
|
-
["testnet" /* Testnet */]: "https://dev-db.petastic.com"
|
|
17
|
-
};
|
|
18
|
-
function loadExistingSecp256k1PrivateKey(hexKey) {
|
|
19
|
-
if (!hexKey) {
|
|
20
|
-
throw new Error("Private key hex must be provided");
|
|
21
|
-
}
|
|
22
|
-
return ec.keyFromPrivate(hexKey, "hex");
|
|
23
|
-
}
|
|
24
|
-
function serializePublicKeyCompressed(keyPair) {
|
|
25
|
-
return keyPair.getPublic(true, "hex");
|
|
26
|
-
}
|
|
27
|
-
function base64url(input) {
|
|
28
|
-
let buf;
|
|
29
|
-
if (typeof input === "string") buf = Buffer.from(input);
|
|
30
|
-
else if (input instanceof ArrayBuffer) buf = Buffer.from(input);
|
|
31
|
-
else buf = input;
|
|
32
|
-
return buf.toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
33
|
-
}
|
|
34
|
-
function sha256HashNode(data) {
|
|
35
|
-
const { createHash } = __require("crypto");
|
|
36
|
-
return createHash("sha256").update(data).digest();
|
|
37
|
-
}
|
|
38
|
-
async function hashInput(data) {
|
|
39
|
-
if (typeof window !== "undefined" && window.crypto?.subtle) {
|
|
40
|
-
const encoder = new TextEncoder();
|
|
41
|
-
const encoded = encoder.encode(data);
|
|
42
|
-
const hashBuffer = await window.crypto.subtle.digest("SHA-256", encoded);
|
|
43
|
-
return Buffer.from(hashBuffer);
|
|
44
|
-
} else {
|
|
45
|
-
return sha256HashNode(data);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
async function generateJWT(sub, aud, keyPair, expiresInSeconds = 24 * 60 * 60) {
|
|
49
|
-
const iat = Math.floor(Date.now() / 1e3);
|
|
50
|
-
const exp = iat + expiresInSeconds;
|
|
51
|
-
const header = { alg: "ES256", typ: "JWT" };
|
|
52
|
-
const payload = { sub, aud, iat, exp };
|
|
53
|
-
const encodedHeader = base64url(JSON.stringify(header));
|
|
54
|
-
const encodedPayload = base64url(JSON.stringify(payload));
|
|
55
|
-
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
56
|
-
const hash = await hashInput(signingInput);
|
|
57
|
-
const signature = keyPair.sign(hash, { canonical: true });
|
|
58
|
-
const rBuf = signature.r.toArrayLike(Buffer, "be", 32);
|
|
59
|
-
const sBuf = signature.s.toArrayLike(Buffer, "be", 32);
|
|
60
|
-
const rawSig = Buffer.concat([rBuf, sBuf]);
|
|
61
|
-
const encodedSig = base64url(rawSig);
|
|
62
|
-
return `${signingInput}.${encodedSig}`;
|
|
63
|
-
}
|
|
64
|
-
async function createAuthEnvelope(privateKeyHex, network = "testnet" /* Testnet */, options) {
|
|
65
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
66
|
-
const publicKey = serializePublicKeyCompressed(keyPair);
|
|
67
|
-
const host = NETWORK_HOSTS[network];
|
|
68
|
-
if (!host) {
|
|
69
|
-
throw new Error(`Unsupported network: ${network}`);
|
|
70
|
-
}
|
|
71
|
-
const token = await generateJWT(publicKey, host, keyPair, options?.expiresInSeconds);
|
|
72
|
-
return { publicKey, token };
|
|
73
|
-
}
|
|
74
|
-
async function generateAppSignature(privateKeyHex, clientId, redirectUri, state) {
|
|
75
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
76
|
-
const message = `${clientId}:${redirectUri}:${state}`;
|
|
77
|
-
const hash = await hashInput(message);
|
|
78
|
-
const signatureDER = keyPair.sign(hash, { canonical: true }).toDER();
|
|
79
|
-
return Buffer.from(signatureDER).toString("hex");
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export {
|
|
83
|
-
__require,
|
|
84
|
-
Network,
|
|
85
|
-
NETWORK_HOSTS,
|
|
86
|
-
loadExistingSecp256k1PrivateKey,
|
|
87
|
-
serializePublicKeyCompressed,
|
|
88
|
-
generateJWT,
|
|
89
|
-
createAuthEnvelope,
|
|
90
|
-
generateAppSignature
|
|
91
|
-
};
|
package/dist/chunk-KEC6WLEL.mjs
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
// src/helpers/CryptoUtils.tsx
|
|
9
|
-
import { ec as EC } from "elliptic";
|
|
10
|
-
var ec = new EC("secp256k1");
|
|
11
|
-
var Network = /* @__PURE__ */ ((Network2) => {
|
|
12
|
-
Network2["Testnet"] = "testnet";
|
|
13
|
-
Network2["Localnet"] = "localnet";
|
|
14
|
-
return Network2;
|
|
15
|
-
})(Network || {});
|
|
16
|
-
var NETWORK_HOSTS = {
|
|
17
|
-
["testnet" /* Testnet */]: "dev-db.petastic.com",
|
|
18
|
-
["localnet" /* Localnet */]: "host.docker.internal:9181"
|
|
19
|
-
};
|
|
20
|
-
function loadExistingSecp256k1PrivateKey(hexKey) {
|
|
21
|
-
if (!hexKey) {
|
|
22
|
-
throw new Error("Private key hex must be provided");
|
|
23
|
-
}
|
|
24
|
-
return ec.keyFromPrivate(hexKey, "hex");
|
|
25
|
-
}
|
|
26
|
-
function serializePublicKeyCompressed(keyPair) {
|
|
27
|
-
return keyPair.getPublic(true, "hex");
|
|
28
|
-
}
|
|
29
|
-
function base64url(input) {
|
|
30
|
-
let buf;
|
|
31
|
-
if (typeof input === "string") buf = Buffer.from(input);
|
|
32
|
-
else if (input instanceof ArrayBuffer) buf = Buffer.from(input);
|
|
33
|
-
else buf = input;
|
|
34
|
-
return buf.toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
35
|
-
}
|
|
36
|
-
function sha256HashNode(data) {
|
|
37
|
-
const { createHash } = __require("crypto");
|
|
38
|
-
return createHash("sha256").update(data).digest();
|
|
39
|
-
}
|
|
40
|
-
async function hashInput(data) {
|
|
41
|
-
if (typeof window !== "undefined" && window.crypto?.subtle) {
|
|
42
|
-
const encoder = new TextEncoder();
|
|
43
|
-
const encoded = encoder.encode(data);
|
|
44
|
-
const hashBuffer = await window.crypto.subtle.digest("SHA-256", encoded);
|
|
45
|
-
return Buffer.from(hashBuffer);
|
|
46
|
-
} else {
|
|
47
|
-
return sha256HashNode(data);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async function generateJWT(sub, aud, keyPair, expiresInSeconds = 24 * 60 * 60) {
|
|
51
|
-
const iat = Math.floor(Date.now() / 1e3);
|
|
52
|
-
const exp = iat + expiresInSeconds;
|
|
53
|
-
const header = { alg: "ES256", typ: "JWT" };
|
|
54
|
-
const payload = { sub, aud, iat, exp };
|
|
55
|
-
const encodedHeader = base64url(JSON.stringify(header));
|
|
56
|
-
const encodedPayload = base64url(JSON.stringify(payload));
|
|
57
|
-
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
58
|
-
const hash = await hashInput(signingInput);
|
|
59
|
-
const signature = keyPair.sign(hash, { canonical: true });
|
|
60
|
-
const rBuf = signature.r.toArrayLike(Buffer, "be", 32);
|
|
61
|
-
const sBuf = signature.s.toArrayLike(Buffer, "be", 32);
|
|
62
|
-
const rawSig = Buffer.concat([rBuf, sBuf]);
|
|
63
|
-
const encodedSig = base64url(rawSig);
|
|
64
|
-
return `${signingInput}.${encodedSig}`;
|
|
65
|
-
}
|
|
66
|
-
async function createAuthEnvelope(privateKeyHex, network = "testnet" /* Testnet */, options) {
|
|
67
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
68
|
-
const publicKey = serializePublicKeyCompressed(keyPair);
|
|
69
|
-
const host = NETWORK_HOSTS[network];
|
|
70
|
-
if (!host) {
|
|
71
|
-
throw new Error(`Unsupported network: ${network}`);
|
|
72
|
-
}
|
|
73
|
-
const token = await generateJWT(publicKey, host, keyPair, options?.expiresInSeconds);
|
|
74
|
-
return { publicKey, token };
|
|
75
|
-
}
|
|
76
|
-
async function generateAppSignature(privateKeyHex, clientId, redirectUri, state) {
|
|
77
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
78
|
-
const message = `${clientId}:${redirectUri}:${state}`;
|
|
79
|
-
const hash = await hashInput(message);
|
|
80
|
-
const signatureDER = keyPair.sign(hash, { canonical: true }).toDER();
|
|
81
|
-
return Buffer.from(signatureDER).toString("hex");
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export {
|
|
85
|
-
__require,
|
|
86
|
-
Network,
|
|
87
|
-
NETWORK_HOSTS,
|
|
88
|
-
loadExistingSecp256k1PrivateKey,
|
|
89
|
-
serializePublicKeyCompressed,
|
|
90
|
-
generateJWT,
|
|
91
|
-
createAuthEnvelope,
|
|
92
|
-
generateAppSignature
|
|
93
|
-
};
|
package/dist/chunk-QHK3YPLJ.mjs
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
// src/helpers/CryptoUtils.tsx
|
|
9
|
-
import { ec as EC } from "elliptic";
|
|
10
|
-
var ec = new EC("secp256k1");
|
|
11
|
-
var Network = /* @__PURE__ */ ((Network2) => {
|
|
12
|
-
Network2["Testnet"] = "testnet";
|
|
13
|
-
Network2["Localnet"] = "localnet";
|
|
14
|
-
return Network2;
|
|
15
|
-
})(Network || {});
|
|
16
|
-
var NETWORK_HOSTS = {
|
|
17
|
-
["testnet" /* Testnet */]: "https://dev-db.petastic.com",
|
|
18
|
-
["localnet" /* Localnet */]: "host.docker.internal:9181"
|
|
19
|
-
};
|
|
20
|
-
function loadExistingSecp256k1PrivateKey(hexKey) {
|
|
21
|
-
if (!hexKey) {
|
|
22
|
-
throw new Error("Private key hex must be provided");
|
|
23
|
-
}
|
|
24
|
-
return ec.keyFromPrivate(hexKey, "hex");
|
|
25
|
-
}
|
|
26
|
-
function serializePublicKeyCompressed(keyPair) {
|
|
27
|
-
return keyPair.getPublic(true, "hex");
|
|
28
|
-
}
|
|
29
|
-
function base64url(input) {
|
|
30
|
-
let buf;
|
|
31
|
-
if (typeof input === "string") buf = Buffer.from(input);
|
|
32
|
-
else if (input instanceof ArrayBuffer) buf = Buffer.from(input);
|
|
33
|
-
else buf = input;
|
|
34
|
-
return buf.toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
35
|
-
}
|
|
36
|
-
function sha256HashNode(data) {
|
|
37
|
-
const { createHash } = __require("crypto");
|
|
38
|
-
return createHash("sha256").update(data).digest();
|
|
39
|
-
}
|
|
40
|
-
async function hashInput(data) {
|
|
41
|
-
if (typeof window !== "undefined" && window.crypto?.subtle) {
|
|
42
|
-
const encoder = new TextEncoder();
|
|
43
|
-
const encoded = encoder.encode(data);
|
|
44
|
-
const hashBuffer = await window.crypto.subtle.digest("SHA-256", encoded);
|
|
45
|
-
return Buffer.from(hashBuffer);
|
|
46
|
-
} else {
|
|
47
|
-
return sha256HashNode(data);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async function generateJWT(sub, aud, keyPair, expiresInSeconds = 24 * 60 * 60) {
|
|
51
|
-
const iat = Math.floor(Date.now() / 1e3);
|
|
52
|
-
const exp = iat + expiresInSeconds;
|
|
53
|
-
const header = { alg: "ES256", typ: "JWT" };
|
|
54
|
-
const payload = { sub, aud, iat, exp };
|
|
55
|
-
const encodedHeader = base64url(JSON.stringify(header));
|
|
56
|
-
const encodedPayload = base64url(JSON.stringify(payload));
|
|
57
|
-
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
58
|
-
const hash = await hashInput(signingInput);
|
|
59
|
-
const signature = keyPair.sign(hash, { canonical: true });
|
|
60
|
-
const rBuf = signature.r.toArrayLike(Buffer, "be", 32);
|
|
61
|
-
const sBuf = signature.s.toArrayLike(Buffer, "be", 32);
|
|
62
|
-
const rawSig = Buffer.concat([rBuf, sBuf]);
|
|
63
|
-
const encodedSig = base64url(rawSig);
|
|
64
|
-
return `${signingInput}.${encodedSig}`;
|
|
65
|
-
}
|
|
66
|
-
async function createAuthEnvelope(privateKeyHex, network = "testnet" /* Testnet */, options) {
|
|
67
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
68
|
-
const publicKey = serializePublicKeyCompressed(keyPair);
|
|
69
|
-
const host = NETWORK_HOSTS[network];
|
|
70
|
-
if (!host) {
|
|
71
|
-
throw new Error(`Unsupported network: ${network}`);
|
|
72
|
-
}
|
|
73
|
-
const token = await generateJWT(publicKey, host, keyPair, options?.expiresInSeconds);
|
|
74
|
-
return { publicKey, token };
|
|
75
|
-
}
|
|
76
|
-
async function generateAppSignature(privateKeyHex, clientId, redirectUri, state) {
|
|
77
|
-
const keyPair = loadExistingSecp256k1PrivateKey(privateKeyHex);
|
|
78
|
-
const message = `${clientId}:${redirectUri}:${state}`;
|
|
79
|
-
const hash = await hashInput(message);
|
|
80
|
-
const signatureDER = keyPair.sign(hash, { canonical: true }).toDER();
|
|
81
|
-
return Buffer.from(signatureDER).toString("hex");
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export {
|
|
85
|
-
__require,
|
|
86
|
-
Network,
|
|
87
|
-
NETWORK_HOSTS,
|
|
88
|
-
loadExistingSecp256k1PrivateKey,
|
|
89
|
-
serializePublicKeyCompressed,
|
|
90
|
-
generateJWT,
|
|
91
|
-
createAuthEnvelope,
|
|
92
|
-
generateAppSignature
|
|
93
|
-
};
|