@interop/wallet-request 0.1.0 → 0.2.0
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/README.md +1 -1
- package/dist/appKey.d.ts +10 -70
- package/dist/appKey.d.ts.map +1 -1
- package/dist/appKey.js +34 -112
- package/dist/appKey.js.map +1 -1
- package/dist/capabilityRequest.d.ts +1 -1
- package/dist/capabilityRequest.js +1 -1
- package/dist/classify.d.ts +2 -2
- package/dist/classify.d.ts.map +1 -1
- package/dist/classify.js +13 -35
- package/dist/classify.js.map +1 -1
- package/dist/composeVp.d.ts +0 -5
- package/dist/composeVp.d.ts.map +1 -1
- package/dist/composeVp.js +4 -7
- package/dist/composeVp.js.map +1 -1
- package/dist/ephemeralExchange.d.ts +22 -6
- package/dist/ephemeralExchange.d.ts.map +1 -1
- package/dist/ephemeralExchange.js +43 -16
- package/dist/ephemeralExchange.js.map +1 -1
- package/dist/exchangeClient.d.ts +7 -4
- package/dist/exchangeClient.d.ts.map +1 -1
- package/dist/exchangeClient.js +9 -18
- package/dist/exchangeClient.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/interactionUrl.d.ts +1 -1
- package/dist/interactionUrl.d.ts.map +1 -1
- package/dist/interactionUrl.js +17 -9
- package/dist/interactionUrl.js.map +1 -1
- package/dist/matching.d.ts.map +1 -1
- package/dist/matching.js +3 -18
- package/dist/matching.js.map +1 -1
- package/dist/onboarding.d.ts +1 -1
- package/dist/onboarding.js +1 -1
- package/dist/onboarding.js.map +1 -1
- package/dist/parse.d.ts +20 -7
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +41 -17
- package/dist/parse.js.map +1 -1
- package/dist/processRequest.d.ts +16 -1
- package/dist/processRequest.d.ts.map +1 -1
- package/dist/processRequest.js +29 -3
- package/dist/processRequest.js.map +1 -1
- package/dist/queryPredicates.d.ts +44 -33
- package/dist/queryPredicates.d.ts.map +1 -1
- package/dist/queryPredicates.js +56 -45
- package/dist/queryPredicates.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/walletInput.d.ts +22 -7
- package/dist/walletInput.d.ts.map +1 -1
- package/dist/walletInput.js +61 -14
- package/dist/walletInput.js.map +1 -1
- package/package.json +3 -2
package/dist/walletInput.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export type WalletInput = {
|
|
|
35
35
|
* trimmed input; an absent one means the branch never matches. A wallet on a
|
|
36
36
|
* WAS account passes `@interop/wallet-core`'s own predicates
|
|
37
37
|
* (`isWasLinkPayload` from `space`, `isConnectCode` from `enrollment`), so
|
|
38
|
-
* the grammar keeps its one
|
|
38
|
+
* the grammar keeps its one definition there.
|
|
39
39
|
*/
|
|
40
40
|
export interface WalletInputRecognizers {
|
|
41
41
|
/**
|
|
@@ -54,9 +54,10 @@ export interface WalletInputRecognizers {
|
|
|
54
54
|
* @param text {string} the scanned, pasted, or opened text
|
|
55
55
|
* @param [options] {object}
|
|
56
56
|
* @param [options.deepLinkSchemes] {string[]} the link prefixes this app has
|
|
57
|
-
* registered (custom protocols and universal app links)
|
|
58
|
-
*
|
|
59
|
-
*
|
|
57
|
+
* registered (custom protocols and universal app links), matched at a URL
|
|
58
|
+
* delimiter per {@link matchesLinkPrefix}. Empty, the deep-link and
|
|
59
|
+
* legacy-request branches never match -- a wallet with no registered links
|
|
60
|
+
* has nothing to route them to
|
|
60
61
|
* @param [options.recognizers] {WalletInputRecognizers} the account-
|
|
61
62
|
* convention predicates for the `was-link` and `connect-code` branches.
|
|
62
63
|
* Absent, neither branch ever matches
|
|
@@ -66,11 +67,25 @@ export declare function classifyWalletInput(text: string, { deepLinkSchemes, rec
|
|
|
66
67
|
deepLinkSchemes?: string[];
|
|
67
68
|
recognizers?: WalletInputRecognizers;
|
|
68
69
|
}): WalletInput;
|
|
70
|
+
/**
|
|
71
|
+
* Raised by {@link handleWalletInput} when the input's kind has no handler:
|
|
72
|
+
* this wallet does not implement the grammar the text turned out to be. The
|
|
73
|
+
* classified `kind` rides along so a caller can name it in its own message.
|
|
74
|
+
* Dispatch on `err.name` rather than `instanceof`, as with the package's other
|
|
75
|
+
* errors: the classifier may resolve to a different copy of this package than
|
|
76
|
+
* the caller's, which makes the name the stable contract.
|
|
77
|
+
*/
|
|
78
|
+
export declare class UnhandledWalletInputError extends Error {
|
|
79
|
+
readonly kind: WalletInput['kind'];
|
|
80
|
+
constructor({ kind }: {
|
|
81
|
+
kind: WalletInput['kind'];
|
|
82
|
+
});
|
|
83
|
+
}
|
|
69
84
|
/**
|
|
70
85
|
* The handlers a caller injects, one per classified kind. Every handler is
|
|
71
|
-
* optional: an input whose kind has no handler throws
|
|
72
|
-
*
|
|
73
|
-
* with it.
|
|
86
|
+
* optional: an input whose kind has no handler throws
|
|
87
|
+
* {@link UnhandledWalletInputError}, which is what keeps a wallet that does not
|
|
88
|
+
* implement a grammar from silently doing the wrong thing with it.
|
|
74
89
|
*/
|
|
75
90
|
export interface WalletInputHandlers<T> {
|
|
76
91
|
wasLink?: (input: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletInput.d.ts","sourceRoot":"","sources":["../src/walletInput.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletInput.d.ts","sourceRoot":"","sources":["../src/walletInput.ts"],"names":[],"mappings":"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"}
|
package/dist/walletInput.js
CHANGED
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
* matches, so the ordering above is preserved whichever subset is wired.
|
|
53
53
|
*/
|
|
54
54
|
import { isInteractionUrl } from './interactionUrl.js';
|
|
55
|
-
import {
|
|
55
|
+
import { log } from './log.js';
|
|
56
|
+
import { walletApiMessageObjectOf, parseWalletApiMessage, parseWalletApiUrl } from './parse.js';
|
|
56
57
|
/**
|
|
57
58
|
* The query parameters of a link, whatever its scheme. Uses the substring
|
|
58
59
|
* after the first `?` rather than `new URL`, so a custom-protocol link parses
|
|
@@ -65,6 +66,30 @@ function queryParamsOf(text) {
|
|
|
65
66
|
const start = text.indexOf('?');
|
|
66
67
|
return new URLSearchParams(start === -1 ? '' : text.slice(start + 1));
|
|
67
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Whether a link is on one of the app's registered link prefixes. The match is
|
|
71
|
+
* anchored at a URL delimiter: after the prefix the text must end or continue
|
|
72
|
+
* with `/`, `?`, or `#`, unless the prefix itself already ends in a delimiter
|
|
73
|
+
* (`dccrequest://`, `https://lcw.app/`). A bare-origin prefix such as
|
|
74
|
+
* `https://wallet.example.com` therefore matches `https://wallet.example.com/x`
|
|
75
|
+
* but not the lookalike host `https://wallet.example.com.evil.org/x`, which a
|
|
76
|
+
* plain `startsWith` would route to the app's own link handling.
|
|
77
|
+
*
|
|
78
|
+
* @param options {object}
|
|
79
|
+
* @param options.text {string}
|
|
80
|
+
* @param options.prefix {string}
|
|
81
|
+
* @returns {boolean}
|
|
82
|
+
*/
|
|
83
|
+
function matchesLinkPrefix({ text, prefix }) {
|
|
84
|
+
if (!text.startsWith(prefix)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (/[/?#:]$/.test(prefix)) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
const next = text.charAt(prefix.length);
|
|
91
|
+
return next === '' || next === '/' || next === '?' || next === '#';
|
|
92
|
+
}
|
|
68
93
|
/**
|
|
69
94
|
* Classifies one piece of wallet input. See the module doc for the order and
|
|
70
95
|
* why each branch sits where it does.
|
|
@@ -72,9 +97,10 @@ function queryParamsOf(text) {
|
|
|
72
97
|
* @param text {string} the scanned, pasted, or opened text
|
|
73
98
|
* @param [options] {object}
|
|
74
99
|
* @param [options.deepLinkSchemes] {string[]} the link prefixes this app has
|
|
75
|
-
* registered (custom protocols and universal app links)
|
|
76
|
-
*
|
|
77
|
-
*
|
|
100
|
+
* registered (custom protocols and universal app links), matched at a URL
|
|
101
|
+
* delimiter per {@link matchesLinkPrefix}. Empty, the deep-link and
|
|
102
|
+
* legacy-request branches never match -- a wallet with no registered links
|
|
103
|
+
* has nothing to route them to
|
|
78
104
|
* @param [options.recognizers] {WalletInputRecognizers} the account-
|
|
79
105
|
* convention predicates for the `was-link` and `connect-code` branches.
|
|
80
106
|
* Absent, neither branch ever matches
|
|
@@ -88,7 +114,7 @@ export function classifyWalletInput(text, { deepLinkSchemes = [], recognizers =
|
|
|
88
114
|
if (recognizers.isConnectCode?.(trimmed)) {
|
|
89
115
|
return { kind: 'connect-code', text: trimmed };
|
|
90
116
|
}
|
|
91
|
-
const isDeepLink = deepLinkSchemes.some(
|
|
117
|
+
const isDeepLink = deepLinkSchemes.some(prefix => matchesLinkPrefix({ text: trimmed, prefix }));
|
|
92
118
|
if (isDeepLink) {
|
|
93
119
|
const params = queryParamsOf(trimmed);
|
|
94
120
|
if (params.has('vc_request_url') && params.has('issuer')) {
|
|
@@ -107,19 +133,31 @@ export function classifyWalletInput(text, { deepLinkSchemes = [], recognizers =
|
|
|
107
133
|
}
|
|
108
134
|
// A link on an unregistered scheme can still carry a wallet API message in
|
|
109
135
|
// its `request` parameter (a site's own QR code).
|
|
110
|
-
const
|
|
111
|
-
const message =
|
|
112
|
-
? parseWalletApiMessage({ messageObject
|
|
113
|
-
:
|
|
114
|
-
? parseWalletApiMessage({
|
|
115
|
-
messageObject: JSON.parse(trimmed)
|
|
116
|
-
})
|
|
117
|
-
: undefined;
|
|
136
|
+
const messageObject = parseWalletApiUrl({ url: trimmed }) ?? walletApiMessageObjectOf(trimmed);
|
|
137
|
+
const message = messageObject
|
|
138
|
+
? parseWalletApiMessage({ messageObject })
|
|
139
|
+
: undefined;
|
|
118
140
|
if (message) {
|
|
119
141
|
return { kind: 'wallet-api-message', text: trimmed, message };
|
|
120
142
|
}
|
|
121
143
|
return { kind: 'credentials', text: trimmed };
|
|
122
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Raised by {@link handleWalletInput} when the input's kind has no handler:
|
|
147
|
+
* this wallet does not implement the grammar the text turned out to be. The
|
|
148
|
+
* classified `kind` rides along so a caller can name it in its own message.
|
|
149
|
+
* Dispatch on `err.name` rather than `instanceof`, as with the package's other
|
|
150
|
+
* errors: the classifier may resolve to a different copy of this package than
|
|
151
|
+
* the caller's, which makes the name the stable contract.
|
|
152
|
+
*/
|
|
153
|
+
export class UnhandledWalletInputError extends Error {
|
|
154
|
+
kind;
|
|
155
|
+
constructor({ kind }) {
|
|
156
|
+
super(`Unhandled wallet input of kind "${kind}".`);
|
|
157
|
+
this.name = 'UnhandledWalletInputError';
|
|
158
|
+
this.kind = kind;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
123
161
|
/**
|
|
124
162
|
* Classifies input and dispatches it to the matching handler.
|
|
125
163
|
*
|
|
@@ -133,6 +171,15 @@ export function classifyWalletInput(text, { deepLinkSchemes = [], recognizers =
|
|
|
133
171
|
* @returns {Promise<*>} whatever the matching handler resolves to
|
|
134
172
|
*/
|
|
135
173
|
export async function handleWalletInput({ text, deepLinkSchemes, recognizers, handlers }) {
|
|
174
|
+
// A handler for a grammar this package does not own can only fire through
|
|
175
|
+
// its recognizer; a handler wired without one is unreachable, which nothing
|
|
176
|
+
// else would ever report.
|
|
177
|
+
if (handlers.wasLink && !recognizers?.isWasLink) {
|
|
178
|
+
log.warn('handlers.wasLink is set but recognizers.isWasLink is not');
|
|
179
|
+
}
|
|
180
|
+
if (handlers.connectCode && !recognizers?.isConnectCode) {
|
|
181
|
+
log.warn('handlers.connectCode is set but recognizers.isConnectCode is not');
|
|
182
|
+
}
|
|
136
183
|
const input = classifyWalletInput(text, { deepLinkSchemes, recognizers });
|
|
137
184
|
switch (input.kind) {
|
|
138
185
|
case 'was-link':
|
|
@@ -162,7 +209,7 @@ export async function handleWalletInput({ text, deepLinkSchemes, recognizers, ha
|
|
|
162
209
|
*/
|
|
163
210
|
async function dispatch({ handler, input }) {
|
|
164
211
|
if (!handler) {
|
|
165
|
-
throw new
|
|
212
|
+
throw new UnhandledWalletInputError({ kind: input.kind });
|
|
166
213
|
}
|
|
167
214
|
return handler(input);
|
|
168
215
|
}
|
package/dist/walletInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletInput.js","sourceRoot":"","sources":["../src/walletInput.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"walletInput.js","sourceRoot":"","sources":["../src/walletInput.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interop/wallet-request",
|
|
3
3
|
"description": "Wallet-request and exchange protocol handling for Interop wallet apps: input classification, VPR parsing, QueryByExample matching, cryptosuite negotiation, VP composition, the App Connect app-key credential, and the VC-API / ephemeral-exchange clients.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "pnpm run clear && tsc",
|
|
@@ -70,7 +70,8 @@
|
|
|
70
70
|
"vitest": "^4.1.7"
|
|
71
71
|
},
|
|
72
72
|
"publishConfig": {
|
|
73
|
-
"access": "public"
|
|
73
|
+
"access": "public",
|
|
74
|
+
"provenance": true
|
|
74
75
|
},
|
|
75
76
|
"keywords": [
|
|
76
77
|
"wallet",
|