@thirdweb-dev/service-utils 0.5.0-nightly-6cf298a29-20240308012322 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cf-worker/index.js +152 -0
- package/dist/cjs/cf-worker/index.js.map +1 -0
- package/dist/cjs/cf-worker/usage.js +55 -0
- package/dist/cjs/cf-worker/usage.js.map +1 -0
- package/dist/cjs/core/api.js +42 -0
- package/dist/cjs/core/api.js.map +1 -0
- package/dist/cjs/core/authorize/client.js +104 -0
- package/dist/cjs/core/authorize/client.js.map +1 -0
- package/dist/cjs/core/authorize/index.js +110 -0
- package/dist/cjs/core/authorize/index.js.map +1 -0
- package/dist/cjs/core/authorize/service.js +60 -0
- package/dist/cjs/core/authorize/service.js.map +1 -0
- package/dist/cjs/core/authorize/types.js +3 -0
- package/dist/cjs/core/authorize/types.js.map +1 -0
- package/dist/cjs/core/rateLimit/index.js +60 -0
- package/dist/cjs/core/rateLimit/index.js.map +1 -0
- package/dist/cjs/core/rateLimit/types.js +3 -0
- package/dist/cjs/core/rateLimit/types.js.map +1 -0
- package/dist/cjs/core/services.js +85 -0
- package/dist/cjs/core/services.js.map +1 -0
- package/dist/cjs/core/types.js +3 -0
- package/dist/cjs/core/types.js.map +1 -0
- package/dist/cjs/core/usage.js +85 -0
- package/dist/cjs/core/usage.js.map +1 -0
- package/dist/cjs/index.js +13 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/mocks.js +61 -0
- package/dist/cjs/mocks.js.map +1 -0
- package/dist/cjs/node/index.js +156 -0
- package/dist/cjs/node/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/cf-worker/index.js +145 -0
- package/dist/esm/cf-worker/index.js.map +1 -0
- package/dist/esm/cf-worker/usage.js +53 -0
- package/dist/esm/cf-worker/usage.js.map +1 -0
- package/dist/esm/core/api.js +38 -0
- package/dist/esm/core/api.js.map +1 -0
- package/dist/esm/core/authorize/client.js +99 -0
- package/dist/esm/core/authorize/client.js.map +1 -0
- package/dist/esm/core/authorize/index.js +107 -0
- package/dist/esm/core/authorize/index.js.map +1 -0
- package/dist/esm/core/authorize/service.js +57 -0
- package/dist/esm/core/authorize/service.js.map +1 -0
- package/dist/esm/core/authorize/types.js +2 -0
- package/dist/esm/core/authorize/types.js.map +1 -0
- package/dist/esm/core/rateLimit/index.js +57 -0
- package/dist/esm/core/rateLimit/index.js.map +1 -0
- package/dist/esm/core/rateLimit/types.js +2 -0
- package/dist/esm/core/rateLimit/types.js.map +1 -0
- package/dist/esm/core/services.js +81 -0
- package/dist/esm/core/services.js.map +1 -0
- package/dist/esm/core/types.js +2 -0
- package/dist/esm/core/types.js.map +1 -0
- package/dist/esm/core/usage.js +82 -0
- package/dist/esm/core/usage.js.map +1 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/mocks.js +58 -0
- package/dist/esm/mocks.js.map +1 -0
- package/dist/esm/node/index.js +149 -0
- package/dist/esm/node/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/{declarations/src → types}/cf-worker/index.d.ts +8 -10
- package/dist/types/cf-worker/index.d.ts.map +1 -0
- package/dist/types/cf-worker/usage.d.ts +24 -0
- package/dist/types/cf-worker/usage.d.ts.map +1 -0
- package/dist/types/core/api.d.ts +121 -0
- package/dist/types/core/api.d.ts.map +1 -0
- package/dist/types/core/authorize/client.d.ts +17 -0
- package/dist/types/core/authorize/client.d.ts.map +1 -0
- package/dist/{declarations/src → types}/core/authorize/index.d.ts +6 -5
- package/dist/types/core/authorize/index.d.ts.map +1 -0
- package/dist/types/core/authorize/service.d.ts +4 -0
- package/dist/types/core/authorize/service.d.ts.map +1 -0
- package/dist/types/core/authorize/types.d.ts +10 -0
- package/dist/types/core/authorize/types.d.ts.map +1 -0
- package/dist/{declarations/src → types}/core/rateLimit/index.d.ts +4 -4
- package/dist/types/core/rateLimit/index.d.ts.map +1 -0
- package/dist/types/core/rateLimit/types.d.ts.map +1 -0
- package/dist/{declarations/src → types}/core/services.d.ts +55 -23
- package/dist/types/core/services.d.ts.map +1 -0
- package/dist/types/core/types.d.ts.map +1 -0
- package/dist/{declarations/src/cf-worker → types/core}/usage.d.ts +84 -30
- package/dist/types/core/usage.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/mocks.d.ts +7 -0
- package/dist/types/mocks.d.ts.map +1 -0
- package/dist/types/node/index.d.ts +23 -0
- package/dist/types/node/index.d.ts.map +1 -0
- package/package.json +42 -45
- package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.d.ts +0 -2
- package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.d.ts.map +0 -1
- package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.dev.js +0 -272
- package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.js +0 -7
- package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.prod.js +0 -272
- package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.esm.js +0 -258
- package/cf-worker/package.json +0 -4
- package/dist/declarations/src/cf-worker/index.d.ts.map +0 -1
- package/dist/declarations/src/cf-worker/usage.d.ts.map +0 -1
- package/dist/declarations/src/core/api.d.ts +0 -84
- package/dist/declarations/src/core/api.d.ts.map +0 -1
- package/dist/declarations/src/core/authorize/client.d.ts +0 -9
- package/dist/declarations/src/core/authorize/client.d.ts.map +0 -1
- package/dist/declarations/src/core/authorize/index.d.ts.map +0 -1
- package/dist/declarations/src/core/authorize/service.d.ts +0 -7
- package/dist/declarations/src/core/authorize/service.d.ts.map +0 -1
- package/dist/declarations/src/core/authorize/types.d.ts +0 -12
- package/dist/declarations/src/core/authorize/types.d.ts.map +0 -1
- package/dist/declarations/src/core/rateLimit/index.d.ts.map +0 -1
- package/dist/declarations/src/core/rateLimit/types.d.ts.map +0 -1
- package/dist/declarations/src/core/services.d.ts.map +0 -1
- package/dist/declarations/src/core/types.d.ts.map +0 -1
- package/dist/declarations/src/core/usageLimit/index.d.ts +0 -5
- package/dist/declarations/src/core/usageLimit/index.d.ts.map +0 -1
- package/dist/declarations/src/core/usageLimit/types.d.ts +0 -9
- package/dist/declarations/src/core/usageLimit/types.d.ts.map +0 -1
- package/dist/declarations/src/index.d.ts +0 -2
- package/dist/declarations/src/index.d.ts.map +0 -1
- package/dist/declarations/src/node/index.d.ts +0 -43
- package/dist/declarations/src/node/index.d.ts.map +0 -1
- package/dist/index-3b9a0743.esm.js +0 -572
- package/dist/index-62b88cac.cjs.dev.js +0 -576
- package/dist/index-aa324361.cjs.prod.js +0 -576
- package/dist/services-2aecbda8.esm.js +0 -65
- package/dist/services-508322f3.cjs.dev.js +0 -70
- package/dist/services-5c4d6977.cjs.prod.js +0 -70
- package/dist/thirdweb-dev-service-utils.cjs.d.ts +0 -2
- package/dist/thirdweb-dev-service-utils.cjs.d.ts.map +0 -1
- package/dist/thirdweb-dev-service-utils.cjs.dev.js +0 -12
- package/dist/thirdweb-dev-service-utils.cjs.js +0 -7
- package/dist/thirdweb-dev-service-utils.cjs.prod.js +0 -12
- package/dist/thirdweb-dev-service-utils.esm.js +0 -1
- package/node/dist/thirdweb-dev-service-utils-node.cjs.d.ts +0 -2
- package/node/dist/thirdweb-dev-service-utils-node.cjs.d.ts.map +0 -1
- package/node/dist/thirdweb-dev-service-utils-node.cjs.dev.js +0 -193
- package/node/dist/thirdweb-dev-service-utils-node.cjs.js +0 -7
- package/node/dist/thirdweb-dev-service-utils-node.cjs.prod.js +0 -193
- package/node/dist/thirdweb-dev-service-utils-node.esm.js +0 -180
- package/node/package.json +0 -4
- /package/dist/{declarations/src → types}/core/rateLimit/types.d.ts +0 -0
- /package/dist/{declarations/src → types}/core/types.d.ts +0 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
export const validProjectResponse = {
|
2
|
+
id: "1",
|
3
|
+
publishableKey: "your-api-key",
|
4
|
+
walletAddresses: ["creator-address"],
|
5
|
+
domains: ["example.com", "*.example.com"],
|
6
|
+
bundleIds: [],
|
7
|
+
services: [
|
8
|
+
{
|
9
|
+
name: "storage",
|
10
|
+
actions: ["read", "write"],
|
11
|
+
},
|
12
|
+
{
|
13
|
+
name: "rpc",
|
14
|
+
actions: [],
|
15
|
+
},
|
16
|
+
{
|
17
|
+
name: "bundler",
|
18
|
+
actions: [],
|
19
|
+
allowedChainIds: [1, 2, 3],
|
20
|
+
},
|
21
|
+
],
|
22
|
+
teamId: "1",
|
23
|
+
createdAt: new Date("2024-06-01"),
|
24
|
+
updatedAt: new Date("2024-06-01"),
|
25
|
+
name: "test-project",
|
26
|
+
slug: "test-project",
|
27
|
+
image: "https://example.com/image.png",
|
28
|
+
};
|
29
|
+
export const validTeamResponse = {
|
30
|
+
id: "1",
|
31
|
+
name: "test-team",
|
32
|
+
slug: "test-team",
|
33
|
+
image: "https://example.com/image.png",
|
34
|
+
createdAt: new Date("2024-06-01"),
|
35
|
+
updatedAt: new Date("2024-06-01"),
|
36
|
+
billingPlan: "free",
|
37
|
+
billingEmail: "test@example.com",
|
38
|
+
billingStatus: "noPayment",
|
39
|
+
growthTrialEligible: false,
|
40
|
+
enabledScopes: ["storage", "rpc", "bundler"],
|
41
|
+
};
|
42
|
+
export const validTeamAndProjectResponse = {
|
43
|
+
team: validTeamResponse,
|
44
|
+
project: validProjectResponse,
|
45
|
+
authMethod: "publishableKey",
|
46
|
+
};
|
47
|
+
export const validServiceConfig = {
|
48
|
+
apiUrl: "https://api.example.com",
|
49
|
+
serviceScope: "storage",
|
50
|
+
serviceApiKey: "service-api-key",
|
51
|
+
serviceAction: "read",
|
52
|
+
};
|
53
|
+
export const validBundlerServiceConfig = {
|
54
|
+
apiUrl: "https://api.example.com",
|
55
|
+
serviceScope: "bundler",
|
56
|
+
serviceApiKey: "service-api-key",
|
57
|
+
};
|
58
|
+
//# sourceMappingURL=mocks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/mocks.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,EAAE,EAAE,GAAG;IACP,cAAc,EAAE,cAAc;IAC9B,eAAe,EAAE,CAAC,iBAAiB,CAAC;IACpC,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;IACzC,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC3B;QACD;YACE,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,EAAE;SACZ;QACD;YACE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3B;KACF;IACD,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACjC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACjC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,+BAA+B;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC7C,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,+BAA+B;IACtC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACjC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACjC,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,kBAAkB;IAChC,aAAa,EAAE,WAAW;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,aAAa,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,oBAAoB;IAC7B,UAAU,EAAE,gBAAgB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,MAAM;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,iBAAiB;CACjC,CAAC"}
|
@@ -0,0 +1,149 @@
|
|
1
|
+
import { createHash } from "node:crypto";
|
2
|
+
import { authorize } from "../core/authorize/index.js";
|
3
|
+
export * from "../core/usage.js";
|
4
|
+
export * from "../core/rateLimit/index.js";
|
5
|
+
export * from "../core/services.js";
|
6
|
+
export async function authorizeNode(authInput, serviceConfig, cacheOptions) {
|
7
|
+
let authData;
|
8
|
+
try {
|
9
|
+
authData = extractAuthorizationData(authInput);
|
10
|
+
}
|
11
|
+
catch (e) {
|
12
|
+
if (e instanceof Error && e.message === "KEY_CONFLICT") {
|
13
|
+
return {
|
14
|
+
authorized: false,
|
15
|
+
status: 400,
|
16
|
+
errorMessage: "Please pass either a client id or a secret key.",
|
17
|
+
errorCode: "KEY_CONFLICT",
|
18
|
+
};
|
19
|
+
}
|
20
|
+
return {
|
21
|
+
authorized: false,
|
22
|
+
status: 500,
|
23
|
+
errorMessage: "Internal Server Error",
|
24
|
+
errorCode: "INTERNAL_SERVER_ERROR",
|
25
|
+
};
|
26
|
+
}
|
27
|
+
return await authorize(authData, serviceConfig, cacheOptions);
|
28
|
+
}
|
29
|
+
function isNodeHeaders(headers) {
|
30
|
+
return typeof headers === "object" && !("get" in headers);
|
31
|
+
}
|
32
|
+
function getHeader(headers, headerName) {
|
33
|
+
return isNodeHeaders(headers)
|
34
|
+
? Array.isArray(headers[headerName])
|
35
|
+
? (headers[headerName]?.[0] ?? null)
|
36
|
+
: (headers[headerName] ?? null)
|
37
|
+
: (headers.get(headerName) ?? null);
|
38
|
+
}
|
39
|
+
export function extractAuthorizationData(authInput) {
|
40
|
+
let requestUrl;
|
41
|
+
try {
|
42
|
+
requestUrl = new URL(authInput.req.url || "", `http://${getHeader(authInput.req.headers, "host")}`);
|
43
|
+
}
|
44
|
+
catch (error) {
|
45
|
+
console.log("** Node URL Error **", error);
|
46
|
+
throw error;
|
47
|
+
}
|
48
|
+
const headers = authInput.req.headers;
|
49
|
+
const secretKey = getHeader(headers, "x-secret-key");
|
50
|
+
// prefer clientId that is explicitly passed in
|
51
|
+
let clientId = authInput.clientId ?? null;
|
52
|
+
if (!clientId) {
|
53
|
+
// next preference is clientId from header
|
54
|
+
clientId = getHeader(headers, "x-client-id");
|
55
|
+
}
|
56
|
+
// next preference is search param
|
57
|
+
if (!clientId) {
|
58
|
+
clientId = requestUrl.searchParams.get("clientId");
|
59
|
+
}
|
60
|
+
// bundle id from header is first preference
|
61
|
+
let bundleId = getHeader(headers, "x-bundle-id");
|
62
|
+
// next preference is search param
|
63
|
+
if (!bundleId) {
|
64
|
+
bundleId = requestUrl.searchParams.get("bundleId");
|
65
|
+
}
|
66
|
+
let ecosystemId = getHeader(headers, "x-ecosystem-id");
|
67
|
+
if (!ecosystemId) {
|
68
|
+
ecosystemId = requestUrl.searchParams.get("ecosystemId");
|
69
|
+
}
|
70
|
+
let ecosystemPartnerId = getHeader(headers, "x-ecosystem-partner-id");
|
71
|
+
if (!ecosystemPartnerId) {
|
72
|
+
ecosystemPartnerId = requestUrl.searchParams.get("ecosystemPartnerId");
|
73
|
+
}
|
74
|
+
let origin = getHeader(headers, "origin");
|
75
|
+
// if origin header is not available we'll fall back to referrer;
|
76
|
+
if (!origin) {
|
77
|
+
origin = getHeader(headers, "referer");
|
78
|
+
}
|
79
|
+
// if we have an origin at this point, normalize it
|
80
|
+
if (origin) {
|
81
|
+
try {
|
82
|
+
origin = new URL(origin).host;
|
83
|
+
}
|
84
|
+
catch (e) {
|
85
|
+
console.warn("failed to parse origin", origin, e);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
// handle if we a secret key is passed in the headers
|
89
|
+
let secretKeyHash = null;
|
90
|
+
if (secretKey) {
|
91
|
+
// hash the secret key
|
92
|
+
secretKeyHash = hashSecretKey(secretKey);
|
93
|
+
}
|
94
|
+
let jwt = null;
|
95
|
+
let useWalletAuth = null;
|
96
|
+
// check for authorization header on the request
|
97
|
+
const authorizationHeader = getHeader(headers, "authorization");
|
98
|
+
if (authorizationHeader) {
|
99
|
+
const [type, token] = authorizationHeader.split(" ");
|
100
|
+
if (type?.toLowerCase() === "bearer" && !!token) {
|
101
|
+
jwt = token;
|
102
|
+
const walletAuthHeader = getHeader(headers, "x-authorize-wallet");
|
103
|
+
// IK a stringified boolean is not ideal, but it's required to pass it in the headers.
|
104
|
+
if (walletAuthHeader?.toLowerCase() === "true") {
|
105
|
+
useWalletAuth = walletAuthHeader;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
return {
|
110
|
+
jwt,
|
111
|
+
hashedJWT: jwt ? hashSecretKey(jwt) : null,
|
112
|
+
secretKeyHash,
|
113
|
+
secretKey,
|
114
|
+
clientId,
|
115
|
+
ecosystemId,
|
116
|
+
ecosystemPartnerId,
|
117
|
+
origin,
|
118
|
+
bundleId,
|
119
|
+
targetAddress: authInput.targetAddress,
|
120
|
+
useWalletAuth,
|
121
|
+
};
|
122
|
+
}
|
123
|
+
export function hashSecretKey(secretKey) {
|
124
|
+
return createHash("sha256").update(secretKey).digest("hex");
|
125
|
+
}
|
126
|
+
export function logHttpRequest({ clientId, req, res, isAuthed, statusMessage, latencyMs, }) {
|
127
|
+
try {
|
128
|
+
const authorizationData = extractAuthorizationData({ req, clientId });
|
129
|
+
const headers = req.headers;
|
130
|
+
console.log(JSON.stringify({
|
131
|
+
method: req.method,
|
132
|
+
pathname: req.url,
|
133
|
+
hasSecretKey: !!authorizationData.secretKey,
|
134
|
+
hasClientId: !!authorizationData.clientId,
|
135
|
+
hasJwt: !!authorizationData.jwt,
|
136
|
+
clientId: authorizationData.clientId,
|
137
|
+
isAuthed,
|
138
|
+
status: res.statusCode,
|
139
|
+
statusMessage,
|
140
|
+
sdkName: getHeader(headers, "x-sdk-name"),
|
141
|
+
sdkVersion: getHeader(headers, "x-sdk-version"),
|
142
|
+
platform: getHeader(headers, "x-sdk-platform"),
|
143
|
+
os: getHeader(headers, "x-sdk-os"),
|
144
|
+
latencyMs,
|
145
|
+
}));
|
146
|
+
}
|
147
|
+
catch { }
|
148
|
+
}
|
149
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"type": "module","sideEffects":false}
|
@@ -1,13 +1,12 @@
|
|
1
1
|
import type { ExecutionContext, KVNamespace, Response } from "@cloudflare/workers-types";
|
2
|
-
import type { CoreServiceConfig } from "../core/api";
|
3
2
|
import type { Request } from "@cloudflare/workers-types";
|
4
|
-
import type {
|
5
|
-
import type {
|
6
|
-
import type {
|
7
|
-
|
8
|
-
export * from "
|
9
|
-
export * from "../core/
|
10
|
-
export * from "../core/
|
3
|
+
import type { CoreServiceConfig } from "../core/api.js";
|
4
|
+
import type { AuthorizationInput } from "../core/authorize/index.js";
|
5
|
+
import type { AuthorizationResult } from "../core/authorize/types.js";
|
6
|
+
import type { CoreAuthInput } from "../core/types.js";
|
7
|
+
export * from "./usage.js";
|
8
|
+
export * from "../core/services.js";
|
9
|
+
export * from "../core/rateLimit/index.js";
|
11
10
|
export type WorkerServiceConfig = CoreServiceConfig & {
|
12
11
|
kvStore: KVNamespace;
|
13
12
|
ctx: ExecutionContext;
|
@@ -19,8 +18,7 @@ type AuthInput = CoreAuthInput & {
|
|
19
18
|
export declare function authorizeWorker(authInput: AuthInput, serviceConfig: WorkerServiceConfig): Promise<AuthorizationResult>;
|
20
19
|
export declare function extractAuthorizationData(authInput: AuthInput): Promise<AuthorizationInput>;
|
21
20
|
export declare function hashSecretKey(secretKey: string): Promise<string>;
|
22
|
-
export declare function
|
23
|
-
export declare function logHttpRequest({ source, clientId, req, res, isAuthed, statusMessage, latencyMs, }: AuthInput & {
|
21
|
+
export declare function logHttpRequest({ clientId, req, res, isAuthed, statusMessage, latencyMs, }: AuthInput & {
|
24
22
|
source: string;
|
25
23
|
res: Response;
|
26
24
|
isAuthed?: boolean;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cf-worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,gBAAgB,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG;IACpD,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,gBAAgB,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF,KAAK,SAAS,GAAG,aAAa,GAAG;IAC/B,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,wBAAsB,eAAe,CACnC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAED,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA+E7B;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,mBAIpD;AAQD,wBAAsB,cAAc,CAAC,EACnC,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,SAAS,GAAG;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,iBA0BA"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { type UsageEvent } from "../core/usage.js";
|
2
|
+
export type { UsageEvent } from "../core/usage.js";
|
3
|
+
/**
|
4
|
+
* Publish usage events. Provide the relevant fields for your application.
|
5
|
+
*
|
6
|
+
* Usage in Cloudflare Workers:
|
7
|
+
* ctx.waitUntil(
|
8
|
+
* publishUsageEvents(
|
9
|
+
* [event1, event2],
|
10
|
+
* { queueUrl, accessKeyId, secretAccessKey },
|
11
|
+
* )
|
12
|
+
* )
|
13
|
+
*
|
14
|
+
* @param usageEvents
|
15
|
+
* @param config
|
16
|
+
*/
|
17
|
+
declare function publishUsageEvents(usageEvents: UsageEvent[], config: {
|
18
|
+
queueUrl: string;
|
19
|
+
accessKeyId: string;
|
20
|
+
secretAccessKey: string;
|
21
|
+
region?: string;
|
22
|
+
}): Promise<void>;
|
23
|
+
export { publishUsageEvents };
|
24
|
+
//# sourceMappingURL=usage.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/cf-worker/usage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AACrE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAWnD;;;;;;;;;;;;;GAaG;AACH,iBAAe,kBAAkB,CAC/B,WAAW,EAAE,UAAU,EAAE,EACzB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
import type { AuthorizationInput } from "./authorize/index.js";
|
2
|
+
import type { ServiceName } from "./services.js";
|
3
|
+
export type UserOpData = {
|
4
|
+
sender: string;
|
5
|
+
targets: string[];
|
6
|
+
gasLimit: string;
|
7
|
+
gasPrice: string;
|
8
|
+
};
|
9
|
+
export type PolicyResult = {
|
10
|
+
policyId: string | null;
|
11
|
+
isAllowed: boolean;
|
12
|
+
reason: string;
|
13
|
+
};
|
14
|
+
export type CoreServiceConfig = {
|
15
|
+
apiUrl: string;
|
16
|
+
serviceScope: ServiceName | null;
|
17
|
+
serviceApiKey: string;
|
18
|
+
serviceAction?: string;
|
19
|
+
useWalletAuth?: boolean;
|
20
|
+
};
|
21
|
+
export type TeamAndProjectResponse = {
|
22
|
+
authMethod: "secretKey" | "publishableKey" | "jwt" | "teamId";
|
23
|
+
team: TeamResponse;
|
24
|
+
project?: ProjectResponse | null;
|
25
|
+
};
|
26
|
+
export type ApiResponse = {
|
27
|
+
data: TeamAndProjectResponse | null;
|
28
|
+
error: {
|
29
|
+
code: string;
|
30
|
+
statusCode: number;
|
31
|
+
message: string;
|
32
|
+
};
|
33
|
+
};
|
34
|
+
export type TeamResponse = {
|
35
|
+
id: string;
|
36
|
+
name: string;
|
37
|
+
slug: string;
|
38
|
+
image: string | null;
|
39
|
+
billingPlan: "free" | "starter" | "growth" | "pro";
|
40
|
+
createdAt: Date;
|
41
|
+
updatedAt: Date | null;
|
42
|
+
billingEmail: string | null;
|
43
|
+
billingStatus: "noPayment" | "validPayment" | "invalidPayment" | null;
|
44
|
+
growthTrialEligible: boolean | null;
|
45
|
+
enabledScopes: ServiceName[];
|
46
|
+
};
|
47
|
+
export type ProjectResponse = {
|
48
|
+
id: string;
|
49
|
+
teamId: string;
|
50
|
+
createdAt: Date;
|
51
|
+
updatedAt: Date | null;
|
52
|
+
publishableKey: string;
|
53
|
+
name: string;
|
54
|
+
slug: string;
|
55
|
+
image: string | null;
|
56
|
+
domains: string[];
|
57
|
+
bundleIds: string[];
|
58
|
+
services: ({
|
59
|
+
name: "pay";
|
60
|
+
actions: never[];
|
61
|
+
payoutAddress: string | null;
|
62
|
+
} | {
|
63
|
+
name: "storage";
|
64
|
+
actions: ("read" | "write")[];
|
65
|
+
} | {
|
66
|
+
name: "rpc";
|
67
|
+
actions: never[];
|
68
|
+
} | {
|
69
|
+
name: "insight";
|
70
|
+
actions: never[];
|
71
|
+
} | {
|
72
|
+
name: "nebula";
|
73
|
+
actions: never[];
|
74
|
+
} | {
|
75
|
+
name: "bundler";
|
76
|
+
actions: never[];
|
77
|
+
allowedChainIds?: number[] | null;
|
78
|
+
allowedContractAddresses?: string[] | null;
|
79
|
+
allowedWallets?: string[] | null;
|
80
|
+
blockedWallets?: string[] | null;
|
81
|
+
bypassWallets?: string[] | null;
|
82
|
+
limits?: {
|
83
|
+
global?: {
|
84
|
+
maxSpend: string;
|
85
|
+
maxSpendUnit: "usd" | "native";
|
86
|
+
} | null;
|
87
|
+
} | null;
|
88
|
+
serverVerifier?: {
|
89
|
+
url: string;
|
90
|
+
headers?: {
|
91
|
+
key: string;
|
92
|
+
value: string;
|
93
|
+
}[];
|
94
|
+
} | null;
|
95
|
+
} | {
|
96
|
+
name: "embeddedWallets";
|
97
|
+
actions: never[];
|
98
|
+
redirectUrls?: string[] | null;
|
99
|
+
applicationName?: string | null;
|
100
|
+
applicationImageUrl?: string | null;
|
101
|
+
recoveryShareManagement?: string | null;
|
102
|
+
customAuthentication?: CustomAuthenticationServiceSchema | null;
|
103
|
+
customAuthEndpoint?: CustomAuthEndpointServiceSchema | null;
|
104
|
+
})[];
|
105
|
+
walletAddresses: string[];
|
106
|
+
};
|
107
|
+
type CustomAuthenticationServiceSchema = {
|
108
|
+
jwksUri: string;
|
109
|
+
aud: string;
|
110
|
+
};
|
111
|
+
type CustomAuthEndpointServiceSchema = {
|
112
|
+
authEndpoint: string;
|
113
|
+
customHeaders: {
|
114
|
+
key: string;
|
115
|
+
value: string;
|
116
|
+
}[];
|
117
|
+
};
|
118
|
+
export declare function fetchTeamAndProject(authData: AuthorizationInput, config: CoreServiceConfig): Promise<ApiResponse>;
|
119
|
+
export declare function updateRateLimitedAt(projectId: string, config: CoreServiceConfig): Promise<void>;
|
120
|
+
export {};
|
121
|
+
//# sourceMappingURL=api.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/core/api.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import type { TeamAndProjectResponse } from "../api.js";
|
2
|
+
import type { AuthorizationResult } from "./types.js";
|
3
|
+
export type ClientAuthorizationPayload = {
|
4
|
+
secretKeyHash: string | null;
|
5
|
+
bundleId: string | null;
|
6
|
+
origin: string | null;
|
7
|
+
};
|
8
|
+
export declare function authorizeClient(authOptions: ClientAuthorizationPayload, teamAndProjectResponse: TeamAndProjectResponse): AuthorizationResult;
|
9
|
+
export declare function authorizeDomain({ domains, origin, }: {
|
10
|
+
domains: string[];
|
11
|
+
origin: string;
|
12
|
+
}): boolean;
|
13
|
+
export declare function authorizeBundleId({ bundleIds, bundleId, }: {
|
14
|
+
bundleIds: string[];
|
15
|
+
bundleId: string;
|
16
|
+
}): boolean;
|
17
|
+
//# sourceMappingURL=client.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,WAAW,EAAE,0BAA0B,EACvC,sBAAsB,EAAE,sBAAsB,GAC7C,mBAAmB,CAuErB;AAGD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,GACP,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAgCjD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,QAAQ,GACT,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CASrD"}
|
@@ -1,8 +1,10 @@
|
|
1
|
-
import {
|
2
|
-
import { AuthorizationResult } from "./types";
|
1
|
+
import { type CoreServiceConfig, type TeamAndProjectResponse } from "../api.js";
|
2
|
+
import type { AuthorizationResult } from "./types.js";
|
3
3
|
export type AuthorizationInput = {
|
4
4
|
secretKey: string | null;
|
5
5
|
clientId: string | null;
|
6
|
+
ecosystemId: string | null;
|
7
|
+
ecosystemPartnerId: string | null;
|
6
8
|
origin: string | null;
|
7
9
|
bundleId: string | null;
|
8
10
|
secretKeyHash: string | null;
|
@@ -11,11 +13,10 @@ export type AuthorizationInput = {
|
|
11
13
|
targetAddress?: string | string[];
|
12
14
|
useWalletAuth?: string | null;
|
13
15
|
};
|
14
|
-
type CacheOptions = {
|
16
|
+
export type CacheOptions = {
|
15
17
|
get: (clientId: string) => Promise<string | null>;
|
16
|
-
put: (clientId: string, data:
|
18
|
+
put: (clientId: string, data: TeamAndProjectResponse) => Promise<void> | void;
|
17
19
|
cacheTtlSeconds: number;
|
18
20
|
};
|
19
21
|
export declare function authorize(authData: AuthorizationInput, serviceConfig: CoreServiceConfig, cacheOptions?: CacheOptions): Promise<AuthorizationResult>;
|
20
|
-
export {};
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAE5B,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAElC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9E,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AASF,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA+G9B"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import type { CoreServiceConfig, TeamAndProjectResponse } from "../api.js";
|
2
|
+
import type { AuthorizationResult } from "./types.js";
|
3
|
+
export declare function authorizeService(teamAndProjectResponse: TeamAndProjectResponse, serviceConfig: CoreServiceConfig): AuthorizationResult;
|
4
|
+
//# sourceMappingURL=service.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,gBAAgB,CAC9B,sBAAsB,EAAE,sBAAsB,EAC9C,aAAa,EAAE,iBAAiB,GAC/B,mBAAmB,CAiErB"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import type { TeamAndProjectResponse } from "../api.js";
|
2
|
+
export type AuthorizationResult = ({
|
3
|
+
authorized: true;
|
4
|
+
} & TeamAndProjectResponse) | {
|
5
|
+
authorized: false;
|
6
|
+
status: number;
|
7
|
+
errorMessage: string;
|
8
|
+
errorCode: string;
|
9
|
+
};
|
10
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAC3B,CAAC;IACC,UAAU,EAAE,IAAI,CAAC;CAClB,GAAG,sBAAsB,CAAC,GAC3B;IACE,UAAU,EAAE,KAAK,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
@@ -1,12 +1,12 @@
|
|
1
|
-
import { CoreServiceConfig } from "../api";
|
2
|
-
import {
|
3
|
-
import { RateLimitResult } from "./types";
|
1
|
+
import { type CoreServiceConfig, type ProjectResponse } from "../api.js";
|
2
|
+
import type { RateLimitResult } from "./types.js";
|
4
3
|
type IRedis = {
|
5
4
|
incr: (key: string) => Promise<number>;
|
6
5
|
expire: (key: string, ttlSeconds: number) => Promise<0 | 1>;
|
7
6
|
};
|
8
7
|
export declare function rateLimit(args: {
|
9
|
-
|
8
|
+
project?: ProjectResponse;
|
9
|
+
limitPerSecond: number;
|
10
10
|
serviceConfig: CoreServiceConfig;
|
11
11
|
redis: IRedis;
|
12
12
|
/**
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/rateLimit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7D,CAAC;AAEF,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsE3B"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/rateLimit/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACvB;IACE,WAAW,EAAE,KAAK,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
|