@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.
Files changed (63) hide show
  1. package/dist/api/lib/client.d.ts.map +1 -1
  2. package/dist/api/lib/client.js.map +1 -1
  3. package/dist/api/prover.d.ts.map +1 -1
  4. package/dist/api/prover.js +1 -2
  5. package/dist/api/prover.js.map +1 -1
  6. package/dist/api/v_call.d.ts +1 -1
  7. package/dist/api/v_call.d.ts.map +1 -1
  8. package/dist/api/v_call.js +8 -2
  9. package/dist/api/v_call.js.map +1 -1
  10. package/dist/api/v_getProofReceipt.d.ts.map +1 -1
  11. package/dist/api/v_getProofReceipt.js.map +1 -1
  12. package/dist/api/webProof/createWebProofRequest.d.ts.map +1 -1
  13. package/dist/api/webProof/createWebProofRequest.js.map +1 -1
  14. package/package.json +20 -7
  15. package/src/api/email/dnsResolver.test.ts +19 -0
  16. package/src/api/email/dnsResolver.ts +87 -0
  17. package/src/api/email/parseEmail.test.ts +133 -0
  18. package/src/api/email/parseEmail.ts +55 -0
  19. package/src/api/email/preverify.test.ts +201 -0
  20. package/src/api/email/preverify.ts +70 -0
  21. package/src/api/email/testdata/test_email.txt +21 -0
  22. package/src/api/email/testdata/test_email_multiple_dkims.txt +28 -0
  23. package/src/api/email/testdata/test_email_subdomain.txt +21 -0
  24. package/src/api/email/testdata/test_email_unknown_domain.txt +21 -0
  25. package/src/api/lib/client.test.ts +261 -0
  26. package/src/api/lib/client.ts +191 -0
  27. package/src/api/lib/errors.ts +19 -0
  28. package/src/api/lib/types/ethereum.ts +45 -0
  29. package/src/api/lib/types/index.ts +3 -0
  30. package/src/api/lib/types/viem.ts +26 -0
  31. package/src/api/lib/types/vlayer.ts +156 -0
  32. package/src/api/lib/types/webProofProvider.ts +68 -0
  33. package/src/api/prover.ts +120 -0
  34. package/src/api/utils/prefixAllButNthSubstring.test.ts +24 -0
  35. package/src/api/utils/prefixAllButNthSubstring.ts +13 -0
  36. package/src/api/utils/versions.test.ts +52 -0
  37. package/src/api/utils/versions.ts +31 -0
  38. package/src/api/v_call.ts +58 -0
  39. package/src/api/v_getProofReceipt.ts +48 -0
  40. package/src/api/v_versions.ts +68 -0
  41. package/src/api/webProof/createWebProofRequest.ts +15 -0
  42. package/src/api/webProof/index.ts +3 -0
  43. package/src/api/webProof/providers/extension.test.ts +122 -0
  44. package/src/api/webProof/providers/extension.ts +197 -0
  45. package/src/api/webProof/providers/index.ts +1 -0
  46. package/src/api/webProof/steps/expectUrl.ts +12 -0
  47. package/src/api/webProof/steps/index.ts +11 -0
  48. package/src/api/webProof/steps/notarize.ts +20 -0
  49. package/src/api/webProof/steps/startPage.ts +12 -0
  50. package/src/config/createContext.ts +69 -0
  51. package/src/config/deploy.ts +108 -0
  52. package/src/config/getChainConfirmations.ts +6 -0
  53. package/src/config/getConfig.ts +71 -0
  54. package/src/config/index.ts +5 -0
  55. package/src/config/types.ts +26 -0
  56. package/src/config/writeEnvVariables.ts +28 -0
  57. package/src/index.ts +7 -0
  58. package/src/testHelpers/readFile.ts +3 -0
  59. package/src/web-proof-commons/index.ts +3 -0
  60. package/src/web-proof-commons/types/message.ts +176 -0
  61. package/src/web-proof-commons/types/redaction.test.ts +97 -0
  62. package/src/web-proof-commons/types/redaction.ts +201 -0
  63. 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
+ }