@interop/wallet-request 0.1.0 → 0.3.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.
Files changed (56) hide show
  1. package/README.md +1 -1
  2. package/dist/appKey.d.ts +10 -70
  3. package/dist/appKey.d.ts.map +1 -1
  4. package/dist/appKey.js +35 -113
  5. package/dist/appKey.js.map +1 -1
  6. package/dist/capabilityRequest.d.ts +1 -1
  7. package/dist/capabilityRequest.js +1 -1
  8. package/dist/classify.d.ts +2 -2
  9. package/dist/classify.d.ts.map +1 -1
  10. package/dist/classify.js +13 -35
  11. package/dist/classify.js.map +1 -1
  12. package/dist/composeVp.d.ts +0 -5
  13. package/dist/composeVp.d.ts.map +1 -1
  14. package/dist/composeVp.js +4 -7
  15. package/dist/composeVp.js.map +1 -1
  16. package/dist/ephemeralExchange.d.ts +22 -6
  17. package/dist/ephemeralExchange.d.ts.map +1 -1
  18. package/dist/ephemeralExchange.js +43 -16
  19. package/dist/ephemeralExchange.js.map +1 -1
  20. package/dist/exchangeClient.d.ts +7 -4
  21. package/dist/exchangeClient.d.ts.map +1 -1
  22. package/dist/exchangeClient.js +9 -18
  23. package/dist/exchangeClient.js.map +1 -1
  24. package/dist/index.d.ts +1 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +1 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/interactionUrl.d.ts +1 -1
  29. package/dist/interactionUrl.d.ts.map +1 -1
  30. package/dist/interactionUrl.js +17 -9
  31. package/dist/interactionUrl.js.map +1 -1
  32. package/dist/matching.d.ts.map +1 -1
  33. package/dist/matching.js +3 -18
  34. package/dist/matching.js.map +1 -1
  35. package/dist/onboarding.d.ts +1 -1
  36. package/dist/onboarding.js +1 -1
  37. package/dist/onboarding.js.map +1 -1
  38. package/dist/parse.d.ts +20 -7
  39. package/dist/parse.d.ts.map +1 -1
  40. package/dist/parse.js +41 -17
  41. package/dist/parse.js.map +1 -1
  42. package/dist/processRequest.d.ts +16 -1
  43. package/dist/processRequest.d.ts.map +1 -1
  44. package/dist/processRequest.js +29 -3
  45. package/dist/processRequest.js.map +1 -1
  46. package/dist/queryPredicates.d.ts +44 -33
  47. package/dist/queryPredicates.d.ts.map +1 -1
  48. package/dist/queryPredicates.js +56 -45
  49. package/dist/queryPredicates.js.map +1 -1
  50. package/dist/types.d.ts +2 -2
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/walletInput.d.ts +22 -7
  53. package/dist/walletInput.d.ts.map +1 -1
  54. package/dist/walletInput.js +61 -14
  55. package/dist/walletInput.js.map +1 -1
  56. package/package.json +4 -3
@@ -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 spelling there.
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). Empty, the
58
- * deep-link and legacy-request branches never match -- a wallet with no
59
- * registered links has nothing to route them to
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, which is what keeps a
72
- * wallet that does not implement a grammar from silently doing the wrong thing
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":"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"}
1
+ {"version":3,"file":"walletInput.d.ts","sourceRoot":"","sources":["../src/walletInput.ts"],"names":[],"mappings":"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"}
@@ -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 { isWalletApiMessage, parseWalletApiMessage, parseWalletApiUrl } from './parse.js';
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). Empty, the
76
- * deep-link and legacy-request branches never match -- a wallet with no
77
- * registered links has nothing to route them to
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(scheme => trimmed.startsWith(scheme));
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 carried = parseWalletApiUrl({ url: trimmed });
111
- const message = carried
112
- ? parseWalletApiMessage({ messageObject: carried })
113
- : isWalletApiMessage(trimmed)
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 Error(`Unhandled wallet input of kind "${input.kind}".`);
212
+ throw new UnhandledWalletInputError({ kind: input.kind });
166
213
  }
167
214
  return handler(input);
168
215
  }
@@ -1 +1 @@
1
- {"version":3,"file":"walletInput.js","sourceRoot":"","sources":["../src/walletInput.ts"],"names":[],"mappings":"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"}
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,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,YAAY,CAAA;AAkBnB;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,OAAO,IAAI,eAAe,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,iBAAiB,CAAC,EACzB,IAAI,EACJ,MAAM,EAIP;IACC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,OAAO,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAA;AACpE,CAAC;AAqBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,EACE,eAAe,GAAG,EAAE,EACpB,WAAW,GAAG,EAAE,KACwD,EAAE;IAE5E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAE3B,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IAC5C,CAAC;IACD,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC/C,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAC7C,CAAA;IACD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;QACrC,IAAI,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aAC7C,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IACnD,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IAC7C,CAAC;IAED,2EAA2E;IAC3E,kDAAkD;IAClD,MAAM,aAAa,GACjB,iBAAiB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAC1E,MAAM,OAAO,GAAG,aAAa;QAC3B,CAAC,CAAC,qBAAqB,CAAC,EAAE,aAAa,EAAE,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IAC/D,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,CAAqB;IAElC,YAAY,EAAE,IAAI,EAAiC;QACjD,KAAK,CAAC,mCAAmC,IAAI,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAwBD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAI,EACzC,IAAI,EACJ,eAAe,EACf,WAAW,EACX,QAAQ,EAMT;IACC,0EAA0E;IAC1E,4EAA4E;IAC5E,0BAA0B;IAC1B,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAA;IACzE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACvD,KAAK,cAAc;YACjB,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3D,KAAK,gBAAgB;YACnB,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,KAAK,iBAAiB;YACpB,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9D,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACxD,KAAK,oBAAoB;YACvB,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;QAChE;YACE,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,QAAQ,CAA+B,EACpD,OAAO,EACP,KAAK,EAIN;IACC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,yBAAyB,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC"}
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.1.0",
4
+ "version": "0.3.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "pnpm run clear && tsc",
@@ -43,12 +43,12 @@
43
43
  "types": "dist/index.d.ts",
44
44
  "sideEffects": false,
45
45
  "dependencies": {
46
+ "@interop/capability-agent": "^0.1.0",
46
47
  "@interop/data-integrity-core": "^8.7.1",
47
48
  "@interop/data-integrity-proof": "^3.4.5",
48
49
  "@interop/ed25519-signature": "^7.2.1",
49
50
  "@interop/security-document-loader": "^10.1.1",
50
51
  "@interop/vc": "^11.0.8",
51
- "@interop/webkms-client": "^14.7.5",
52
52
  "@scure/base": "^2.3.0",
53
53
  "byoe-context": "^0.5.0"
54
54
  },
@@ -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",