@vlayer/sdk 0.1.0-nightly-20250127-96fc5df → 0.1.0-nightly-20250128-0a32cfc
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/api/lib/client.d.ts.map +1 -1
- package/dist/api/lib/client.js.map +1 -1
- package/dist/api/prover.d.ts.map +1 -1
- package/dist/api/prover.js +1 -2
- package/dist/api/prover.js.map +1 -1
- package/dist/api/v_call.d.ts +1 -1
- package/dist/api/v_call.d.ts.map +1 -1
- package/dist/api/v_call.js +8 -2
- package/dist/api/v_call.js.map +1 -1
- package/dist/api/v_getProofReceipt.d.ts.map +1 -1
- package/dist/api/v_getProofReceipt.js.map +1 -1
- package/dist/api/webProof/createWebProofRequest.d.ts.map +1 -1
- package/dist/api/webProof/createWebProofRequest.js.map +1 -1
- package/package.json +20 -7
- package/src/api/email/dnsResolver.test.ts +19 -0
- package/src/api/email/dnsResolver.ts +87 -0
- package/src/api/email/parseEmail.test.ts +133 -0
- package/src/api/email/parseEmail.ts +55 -0
- package/src/api/email/preverify.test.ts +201 -0
- package/src/api/email/preverify.ts +70 -0
- package/src/api/email/testdata/test_email.txt +21 -0
- package/src/api/email/testdata/test_email_multiple_dkims.txt +28 -0
- package/src/api/email/testdata/test_email_subdomain.txt +21 -0
- package/src/api/email/testdata/test_email_unknown_domain.txt +21 -0
- package/src/api/lib/client.test.ts +261 -0
- package/src/api/lib/client.ts +191 -0
- package/src/api/lib/errors.ts +19 -0
- package/src/api/lib/types/ethereum.ts +45 -0
- package/src/api/lib/types/index.ts +3 -0
- package/src/api/lib/types/viem.ts +26 -0
- package/src/api/lib/types/vlayer.ts +156 -0
- package/src/api/lib/types/webProofProvider.ts +68 -0
- package/src/api/prover.ts +120 -0
- package/src/api/utils/prefixAllButNthSubstring.test.ts +24 -0
- package/src/api/utils/prefixAllButNthSubstring.ts +13 -0
- package/src/api/utils/versions.test.ts +52 -0
- package/src/api/utils/versions.ts +31 -0
- package/src/api/v_call.ts +58 -0
- package/src/api/v_getProofReceipt.ts +48 -0
- package/src/api/v_versions.ts +68 -0
- package/src/api/webProof/createWebProofRequest.ts +15 -0
- package/src/api/webProof/index.ts +3 -0
- package/src/api/webProof/providers/extension.test.ts +122 -0
- package/src/api/webProof/providers/extension.ts +197 -0
- package/src/api/webProof/providers/index.ts +1 -0
- package/src/api/webProof/steps/expectUrl.ts +12 -0
- package/src/api/webProof/steps/index.ts +11 -0
- package/src/api/webProof/steps/notarize.ts +20 -0
- package/src/api/webProof/steps/startPage.ts +12 -0
- package/src/config/createContext.ts +69 -0
- package/src/config/deploy.ts +108 -0
- package/src/config/getChainConfirmations.ts +6 -0
- package/src/config/getConfig.ts +71 -0
- package/src/config/index.ts +5 -0
- package/src/config/types.ts +26 -0
- package/src/config/writeEnvVariables.ts +28 -0
- package/src/index.ts +7 -0
- package/src/testHelpers/readFile.ts +3 -0
- package/src/web-proof-commons/index.ts +3 -0
- package/src/web-proof-commons/types/message.ts +176 -0
- package/src/web-proof-commons/types/redaction.test.ts +97 -0
- package/src/web-proof-commons/types/redaction.ts +201 -0
- package/src/web-proof-commons/utils.ts +11 -0
@@ -0,0 +1,201 @@
|
|
1
|
+
import { z } from "zod";
|
2
|
+
import type { WebProofStepNotarize, WebProverSessionConfig } from "./message";
|
3
|
+
export const RedactRequestHeadersSchema = z.object({
|
4
|
+
request: z.object({
|
5
|
+
headers: z.array(z.string()),
|
6
|
+
}),
|
7
|
+
});
|
8
|
+
|
9
|
+
export const RedactRequestHeadersExceptSchema = z.object({
|
10
|
+
request: z.object({
|
11
|
+
headers_except: z.array(z.string()),
|
12
|
+
}),
|
13
|
+
});
|
14
|
+
|
15
|
+
export const RedactRequestUrlQueryParamSchema = z.object({
|
16
|
+
request: z.object({
|
17
|
+
url_query: z.array(z.string()),
|
18
|
+
}),
|
19
|
+
});
|
20
|
+
|
21
|
+
export const RedactRequestUrlQueryParamExceptSchema = z.object({
|
22
|
+
request: z.object({
|
23
|
+
url_query_except: z.array(z.string()),
|
24
|
+
}),
|
25
|
+
});
|
26
|
+
|
27
|
+
export const RedactResponseHeadersSchema = z.object({
|
28
|
+
response: z.object({
|
29
|
+
headers: z.array(z.string()),
|
30
|
+
}),
|
31
|
+
});
|
32
|
+
|
33
|
+
export const RedactResponseHeadersExceptSchema = z.object({
|
34
|
+
response: z.object({
|
35
|
+
headers_except: z.array(z.string()),
|
36
|
+
}),
|
37
|
+
});
|
38
|
+
|
39
|
+
export const RedactResponseJsonBodySchema = z.object({
|
40
|
+
response: z.object({
|
41
|
+
json_body: z.array(z.string()),
|
42
|
+
}),
|
43
|
+
});
|
44
|
+
|
45
|
+
export const RedactResponseJsonBodyExceptSchema = z.object({
|
46
|
+
response: z.object({
|
47
|
+
json_body_except: z.array(z.string()),
|
48
|
+
}),
|
49
|
+
});
|
50
|
+
|
51
|
+
export const RedactionItemSchema = z.union([
|
52
|
+
RedactRequestHeadersSchema,
|
53
|
+
RedactRequestHeadersExceptSchema,
|
54
|
+
RedactRequestUrlQueryParamSchema,
|
55
|
+
RedactRequestUrlQueryParamExceptSchema,
|
56
|
+
RedactResponseHeadersSchema,
|
57
|
+
RedactResponseHeadersExceptSchema,
|
58
|
+
RedactResponseJsonBodySchema,
|
59
|
+
RedactResponseJsonBodyExceptSchema,
|
60
|
+
]);
|
61
|
+
|
62
|
+
export type RedactRequestHeadersExcept = z.infer<
|
63
|
+
typeof RedactRequestHeadersExceptSchema
|
64
|
+
>;
|
65
|
+
export type RedactRequestHeaders = z.infer<typeof RedactRequestHeadersSchema>;
|
66
|
+
|
67
|
+
export type RedactRequestUrlQueryParam = z.infer<
|
68
|
+
typeof RedactRequestUrlQueryParamSchema
|
69
|
+
>;
|
70
|
+
export type RedactRequestUrlQueryParamExcept = z.infer<
|
71
|
+
typeof RedactRequestUrlQueryParamExceptSchema
|
72
|
+
>;
|
73
|
+
export type RedactResponseHeaders = z.infer<typeof RedactResponseHeadersSchema>;
|
74
|
+
|
75
|
+
export type RedactResponseJsonBody = z.infer<
|
76
|
+
typeof RedactResponseJsonBodySchema
|
77
|
+
>;
|
78
|
+
export type RedactResponseJsonBodyExcept = z.infer<
|
79
|
+
typeof RedactResponseJsonBodyExceptSchema
|
80
|
+
>;
|
81
|
+
export type RedactResponseHeadersExcept = z.infer<
|
82
|
+
typeof RedactResponseHeadersExceptSchema
|
83
|
+
>;
|
84
|
+
|
85
|
+
export type RedactionItem = z.infer<typeof RedactionItemSchema>;
|
86
|
+
// Define the individual types
|
87
|
+
|
88
|
+
const checkConflictingItems =
|
89
|
+
(items: RedactionItem[]) =>
|
90
|
+
(
|
91
|
+
getFirstItem: (item: RedactionItem) => boolean,
|
92
|
+
getSecondItem: (item: RedactionItem) => boolean,
|
93
|
+
) => {
|
94
|
+
const hasFirst = items.some(getFirstItem);
|
95
|
+
const hasSecond = items.some(getSecondItem);
|
96
|
+
return !(hasFirst && hasSecond);
|
97
|
+
};
|
98
|
+
|
99
|
+
const ensureNoResponseHeadersConflict = (items: RedactionItem[]) => {
|
100
|
+
const hasResponseHeaders = (item: RedactionItem) =>
|
101
|
+
"response" in item &&
|
102
|
+
"headers" in item.response &&
|
103
|
+
item.response.headers.length > 0;
|
104
|
+
|
105
|
+
const hasResponseHeadersExcept = (item: RedactionItem) =>
|
106
|
+
"response" in item &&
|
107
|
+
"headers_except" in item.response &&
|
108
|
+
item.response.headers_except.length > 0;
|
109
|
+
|
110
|
+
return checkConflictingItems(items)(
|
111
|
+
hasResponseHeaders,
|
112
|
+
hasResponseHeadersExcept,
|
113
|
+
);
|
114
|
+
};
|
115
|
+
|
116
|
+
const ensureNoResponseJsonBodyConflict = (items: RedactionItem[]) => {
|
117
|
+
const hasResponseJsonBody = (item: RedactionItem) =>
|
118
|
+
"response" in item &&
|
119
|
+
"json_body" in item.response &&
|
120
|
+
item.response.json_body.length > 0;
|
121
|
+
|
122
|
+
const hasResponseJsonBodyExcept = (item: RedactionItem) =>
|
123
|
+
"response" in item &&
|
124
|
+
"json_body_except" in item.response &&
|
125
|
+
item.response.json_body_except.length > 0;
|
126
|
+
|
127
|
+
return checkConflictingItems(items)(
|
128
|
+
hasResponseJsonBody,
|
129
|
+
hasResponseJsonBodyExcept,
|
130
|
+
);
|
131
|
+
};
|
132
|
+
|
133
|
+
const ensureNoRequestHeadersConflict = (items: RedactionItem[]) => {
|
134
|
+
const hasRequestHeaders = (item: RedactionItem) =>
|
135
|
+
"request" in item &&
|
136
|
+
"headers" in item.request &&
|
137
|
+
item.request.headers.length > 0;
|
138
|
+
|
139
|
+
const hasRequestHeadersExcept = (item: RedactionItem) =>
|
140
|
+
"request" in item &&
|
141
|
+
"headers_except" in item.request &&
|
142
|
+
item.request.headers_except.length > 0;
|
143
|
+
|
144
|
+
return checkConflictingItems(items)(
|
145
|
+
hasRequestHeaders,
|
146
|
+
hasRequestHeadersExcept,
|
147
|
+
);
|
148
|
+
};
|
149
|
+
|
150
|
+
const ensureNoRequestUrlQueryParamConflict = (items: RedactionItem[]) => {
|
151
|
+
const hasRequestUrlQuery = (item: RedactionItem) =>
|
152
|
+
"request" in item &&
|
153
|
+
"url_query" in item.request &&
|
154
|
+
item.request.url_query.length > 0;
|
155
|
+
|
156
|
+
const hasRequestUrlQueryExcept = (item: RedactionItem) =>
|
157
|
+
"request" in item &&
|
158
|
+
"url_query_except" in item.request &&
|
159
|
+
item.request.url_query_except.length > 0;
|
160
|
+
|
161
|
+
return checkConflictingItems(items)(
|
162
|
+
hasRequestUrlQuery,
|
163
|
+
hasRequestUrlQueryExcept,
|
164
|
+
);
|
165
|
+
};
|
166
|
+
|
167
|
+
export const RedactionItemsArray = z
|
168
|
+
.array(RedactionItemSchema)
|
169
|
+
.refine(ensureNoResponseHeadersConflict, {
|
170
|
+
message: "Cannot have both response headers and response headers_except",
|
171
|
+
})
|
172
|
+
.refine(ensureNoResponseJsonBodyConflict, {
|
173
|
+
message:
|
174
|
+
"Cannot have both response json_body and response json_body_except",
|
175
|
+
})
|
176
|
+
.refine(ensureNoRequestHeadersConflict, {
|
177
|
+
message: "Cannot have both request headers and request headers_except",
|
178
|
+
})
|
179
|
+
.refine(ensureNoRequestUrlQueryParamConflict, {
|
180
|
+
message: "Cannot have both request url_query and request url_query_except",
|
181
|
+
})
|
182
|
+
.refine(ensureNoRequestUrlQueryParamConflict, {
|
183
|
+
message: "Cannot have both request url_query and request url_query_except",
|
184
|
+
});
|
185
|
+
|
186
|
+
export type RedactionItemsArray = z.infer<typeof RedactionItemsArray>;
|
187
|
+
|
188
|
+
export type RedactionConfig = RedactionItem[];
|
189
|
+
|
190
|
+
export function getRedactionConfig(
|
191
|
+
provingSessionConfig: WebProverSessionConfig,
|
192
|
+
): RedactionConfig {
|
193
|
+
const notarizeStep = provingSessionConfig.steps.find(
|
194
|
+
(step): step is WebProofStepNotarize => step.step === "notarize",
|
195
|
+
);
|
196
|
+
const redactionConfig =
|
197
|
+
notarizeStep !== undefined
|
198
|
+
? (notarizeStep as WebProofStepNotarize).redact
|
199
|
+
: [];
|
200
|
+
return redactionConfig;
|
201
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
type Brand<B> = { __brand: B };
|
2
|
+
export type Branded<T, B> = T & Brand<B>;
|
3
|
+
|
4
|
+
export function isDefined<T>(
|
5
|
+
value: T | undefined,
|
6
|
+
message: string = "Value is undefined",
|
7
|
+
): asserts value is T {
|
8
|
+
if (value === undefined) {
|
9
|
+
throw new Error(message);
|
10
|
+
}
|
11
|
+
}
|