@vlayer/sdk 0.1.0-nightly-20241010-e69694a → 0.1.0-nightly-20241014-8787a55

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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@vlayer/sdk",
3
3
  "type": "module",
4
4
  "module": "src/index.ts",
5
- "version": "0.1.0-nightly-20241010-e69694a",
5
+ "version": "0.1.0-nightly-20241014-8787a55",
6
6
  "types": "src/index.ts",
7
7
  "scripts": {
8
8
  "build": "npm run gen:types",
@@ -1,4 +1,4 @@
1
1
  export * from "./ethereum";
2
- export * from "./webProof";
2
+ export * from "@vlayer/web-proof-commons/lib/types/webProof";
3
3
  export * from "./vlayer";
4
4
  export * from "./webProofProvider";
@@ -1,8 +1,8 @@
1
- import { WebProof } from "types/webProof.ts";
2
1
  import { AbiFunction, Hex, Abi, ContractFunctionName } from "viem";
3
2
  import type { ContractFunctionArgsWithout } from "./viem";
4
3
  import {
5
4
  Branded,
5
+ WebProof,
6
6
  WebProofStepExpectUrl,
7
7
  WebProofStepStartPage,
8
8
  } from "@vlayer/web-proof-commons";
@@ -9,10 +9,9 @@ import {
9
9
  type ExtensionMessage,
10
10
  ExtensionMessageType,
11
11
  type MessageToExtension,
12
+ WebProof,
12
13
  } from "@vlayer/web-proof-commons";
13
14
 
14
- import { WebProof } from "../../lib/types/webProof";
15
-
16
15
  // NOTE @types/chrome and webextension-polyfill work only in the extension context
17
16
  // and looks that there is no community driven package providing typings for chrome.runtime
18
17
  // or polyfill logic for the browser APIs available in the browser context
@@ -1,175 +0,0 @@
1
- # Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
2
-
3
- # Logs
4
-
5
- logs
6
- _.log
7
- npm-debug.log_
8
- yarn-debug.log*
9
- yarn-error.log*
10
- lerna-debug.log*
11
- .pnpm-debug.log*
12
-
13
- # Caches
14
-
15
- .cache
16
-
17
- # Diagnostic reports (https://nodejs.org/api/report.html)
18
-
19
- report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
20
-
21
- # Runtime data
22
-
23
- pids
24
- _.pid
25
- _.seed
26
- *.pid.lock
27
-
28
- # Directory for instrumented libs generated by jscoverage/JSCover
29
-
30
- lib-cov
31
-
32
- # Coverage directory used by tools like istanbul
33
-
34
- coverage
35
- *.lcov
36
-
37
- # nyc test coverage
38
-
39
- .nyc_output
40
-
41
- # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
42
-
43
- .grunt
44
-
45
- # Bower dependency directory (https://bower.io/)
46
-
47
- bower_components
48
-
49
- # node-waf configuration
50
-
51
- .lock-wscript
52
-
53
- # Compiled binary addons (https://nodejs.org/api/addons.html)
54
-
55
- build/Release
56
-
57
- # Dependency directories
58
-
59
- node_modules/
60
- jspm_packages/
61
-
62
- # Snowpack dependency directory (https://snowpack.dev/)
63
-
64
- web_modules/
65
-
66
- # TypeScript cache
67
-
68
- *.tsbuildinfo
69
-
70
- # Optional npm cache directory
71
-
72
- .npm
73
-
74
- # Optional eslint cache
75
-
76
- .eslintcache
77
-
78
- # Optional stylelint cache
79
-
80
- .stylelintcache
81
-
82
- # Microbundle cache
83
-
84
- .rpt2_cache/
85
- .rts2_cache_cjs/
86
- .rts2_cache_es/
87
- .rts2_cache_umd/
88
-
89
- # Optional REPL history
90
-
91
- .node_repl_history
92
-
93
- # Output of 'npm pack'
94
-
95
- *.tgz
96
-
97
- # Yarn Integrity file
98
-
99
- .yarn-integrity
100
-
101
- # dotenv environment variable files
102
-
103
- .env
104
- .env.development.local
105
- .env.test.local
106
- .env.production.local
107
- .env.local
108
-
109
- # parcel-bundler cache (https://parceljs.org/)
110
-
111
- .parcel-cache
112
-
113
- # Next.js build output
114
-
115
- .next
116
- out
117
-
118
- # Nuxt.js build / generate output
119
-
120
- .nuxt
121
- dist
122
-
123
- # Gatsby files
124
-
125
- # Comment in the public line in if your project uses Gatsby and not Next.js
126
-
127
- # https://nextjs.org/blog/next-9-1#public-directory-support
128
-
129
- # public
130
-
131
- # vuepress build output
132
-
133
- .vuepress/dist
134
-
135
- # vuepress v2.x temp and cache directory
136
-
137
- .temp
138
-
139
- # Docusaurus cache and generated files
140
-
141
- .docusaurus
142
-
143
- # Serverless directories
144
-
145
- .serverless/
146
-
147
- # FuseBox cache
148
-
149
- .fusebox/
150
-
151
- # DynamoDB Local files
152
-
153
- .dynamodb/
154
-
155
- # TernJS port file
156
-
157
- .tern-port
158
-
159
- # Stores VSCode versions used for testing VSCode extensions
160
-
161
- .vscode-test
162
-
163
- # yarn v2
164
-
165
- .yarn/cache
166
- .yarn/unplugged
167
- .yarn/build-state.yml
168
- .yarn/install-state.gz
169
- .pnp.*
170
-
171
- # IntelliJ based IDEs
172
- .idea
173
-
174
- # Finder (MacOS) folder config
175
- .DS_Store
@@ -1,4 +0,0 @@
1
- # @vlayer/web-proof-commons
2
-
3
- `web-proof-commons` is a TypeScript package that provides common type definitions and utilities shared between the
4
- `browser-extension` and `@vlayer/sdk` projects.
@@ -1 +0,0 @@
1
- export * from "./lib";
@@ -1,2 +0,0 @@
1
- export * from "./message";
2
- export * from "./utils";
@@ -1,71 +0,0 @@
1
- import type { Branded } from "./utils.ts";
2
-
3
- export const EXTENSION_STEP = {
4
- expectUrl: "expectUrl",
5
- startPage: "startPage",
6
- notarize: "notarize",
7
- } as const;
8
-
9
- export type ExtensionStep =
10
- (typeof EXTENSION_STEP)[keyof typeof EXTENSION_STEP];
11
-
12
- export const enum ExtensionAction {
13
- RequestWebProof,
14
- }
15
-
16
- export type MessageToExtension = {
17
- action: ExtensionAction;
18
- payload: WebProverSessionConfig;
19
- };
20
-
21
- export const enum ExtensionMessageType {
22
- ProofDone = "ProofDone",
23
- ProofError = "ProofError",
24
- RedirectBack = "RedirectBack",
25
- }
26
-
27
- export type ExtensionMessage =
28
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
- | { type: ExtensionMessageType.ProofDone; proof: any } // Change to WebProof
30
- | { type: ExtensionMessageType.ProofError; error: string }
31
- | { type: ExtensionMessageType.RedirectBack };
32
-
33
- export type WebProverSessionConfig = {
34
- notaryUrl: string;
35
- wsProxyUrl: string;
36
- logoUrl: string;
37
- steps: WebProofStep[];
38
- };
39
-
40
- export type WebProofStep =
41
- | WebProofStepNotarize
42
- | WebProofStepExpectUrl
43
- | WebProofStepStartPage;
44
-
45
- export type WebProofStepNotarize = Branded<
46
- {
47
- url: string;
48
- method: string;
49
- label: string;
50
- step: typeof EXTENSION_STEP.notarize;
51
- },
52
- "notarize"
53
- >;
54
-
55
- export type WebProofStepExpectUrl = Branded<
56
- {
57
- url: string;
58
- label: string;
59
- step: typeof EXTENSION_STEP.expectUrl;
60
- },
61
- "expectUrl"
62
- >;
63
-
64
- export type WebProofStepStartPage = Branded<
65
- {
66
- url: string;
67
- label: string;
68
- step: typeof EXTENSION_STEP.startPage;
69
- },
70
- "startPage"
71
- >;
@@ -1,12 +0,0 @@
1
- declare const __brand: unique symbol;
2
- type Brand<B> = { [__brand]: B };
3
- export type Branded<T, B> = T & Brand<B>;
4
-
5
- export function isDefined<T>(
6
- value: T | undefined,
7
- message: string = "Value is undefined",
8
- ): asserts value is T {
9
- if (value === undefined) {
10
- throw new Error(message);
11
- }
12
- }
@@ -1,17 +0,0 @@
1
- {
2
- "name": "@vlayer/web-proof-commons",
3
- "private": true,
4
- "version": "1.0.0",
5
- "module": "index.ts",
6
- "type": "module",
7
- "scripts": {
8
- "lint": "eslint lib",
9
- "lint:fix": "eslint --fix lib"
10
- },
11
- "devDependencies": {
12
- "@types/bun": "latest"
13
- },
14
- "peerDependencies": {
15
- "typescript": "^5.0.0"
16
- }
17
- }
@@ -1,27 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- // Enable latest features
4
- "lib": ["ESNext", "DOM"],
5
- "target": "ESNext",
6
- "module": "ESNext",
7
- "moduleDetection": "force",
8
- "jsx": "react-jsx",
9
- "allowJs": true,
10
-
11
- // Bundler mode
12
- "moduleResolution": "bundler",
13
- "allowImportingTsExtensions": true,
14
- "verbatimModuleSyntax": true,
15
- "noEmit": true,
16
-
17
- // Best practices
18
- "strict": true,
19
- "skipLibCheck": true,
20
- "noFallthroughCasesInSwitch": true,
21
-
22
- // Some stricter flags (disabled by default)
23
- "noUnusedLocals": false,
24
- "noUnusedParameters": false,
25
- "noPropertyAccessFromIndexSignature": false
26
- }
27
- }
@@ -1,111 +0,0 @@
1
- // NOTE : this is copied from tlsn-js 5.4
2
- // for some reason newest versions doesn't export this type (clarification is in progress)
3
- // probably it should be reexported from tlsn-js
4
-
5
- export interface WebProof {
6
- session: Session;
7
- substrings: Substrings;
8
- notaryUrl: string;
9
- }
10
-
11
- export interface Session {
12
- header: Header;
13
- signature: Signature;
14
- session_info: SessionInfo;
15
- }
16
-
17
- export interface SessionInfo {
18
- server_name: ServerName;
19
- handshake_decommitment: HandshakeDecommitment;
20
- }
21
-
22
- export interface HandshakeDecommitment {
23
- nonce: number[];
24
- data: Data;
25
- }
26
-
27
- export interface Data {
28
- server_cert_details: ServerCERTDetails;
29
- server_kx_details: ServerKxDetails;
30
- client_random: number[];
31
- server_random: number[];
32
- }
33
-
34
- export interface ServerCERTDetails {
35
- cert_chain: Array<number[]>;
36
- ocsp_response: number[];
37
- scts: null;
38
- }
39
-
40
- export interface ServerKxDetails {
41
- kx_params: number[];
42
- kx_sig: KxSig;
43
- }
44
-
45
- export interface KxSig {
46
- scheme: string;
47
- sig: number[];
48
- }
49
-
50
- export interface Header {
51
- encoder_seed: number[];
52
- merkle_root: number[];
53
- sent_len: number;
54
- recv_len: number;
55
- handshake_summary: HandshakeSummary;
56
- }
57
-
58
- export interface HandshakeSummary {
59
- time: number;
60
- server_public_key: ServerPublicKey;
61
- handshake_commitment: number[];
62
- }
63
-
64
- export interface ServerPublicKey {
65
- group: string;
66
- key: number[];
67
- }
68
-
69
- export interface ServerName {
70
- Dns: string;
71
- }
72
-
73
- export interface Signature {
74
- P256: string;
75
- }
76
-
77
- export interface Substrings {
78
- openings: { [key: string]: Opening[] };
79
- inclusion_proof: InclusionProof;
80
- }
81
-
82
- export interface InclusionProof {
83
- proof: unknown[];
84
- total_leaves: number;
85
- }
86
-
87
- export interface Opening {
88
- kind?: string;
89
- ranges?: Range[];
90
- direction?: string;
91
- Blake3?: Blake3;
92
- }
93
-
94
- export interface Blake3 {
95
- data: number[];
96
- nonce: number[];
97
- }
98
-
99
- export interface Range {
100
- start: number;
101
- end: number;
102
- }
103
- export const assertWebProof = function (candidate: {
104
- notaryUrl?: string;
105
- }): asserts candidate is WebProof {
106
- //for now only thing we check is notary url
107
- //TODO: implement later once we known the conteact with tlsn-js
108
- if (!candidate.notaryUrl) {
109
- throw new Error("Missing required parameter");
110
- }
111
- };