mppx 0.5.1 → 0.5.3

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 (89) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/Credential.d.ts +12 -0
  3. package/dist/Credential.d.ts.map +1 -1
  4. package/dist/Credential.js +22 -4
  5. package/dist/Credential.js.map +1 -1
  6. package/dist/Method.d.ts +4 -0
  7. package/dist/Method.d.ts.map +1 -1
  8. package/dist/Method.js +2 -1
  9. package/dist/Method.js.map +1 -1
  10. package/dist/proxy/Proxy.d.ts.map +1 -1
  11. package/dist/proxy/Proxy.js +52 -8
  12. package/dist/proxy/Proxy.js.map +1 -1
  13. package/dist/proxy/internal/Route.d.ts.map +1 -1
  14. package/dist/proxy/internal/Route.js +7 -3
  15. package/dist/proxy/internal/Route.js.map +1 -1
  16. package/dist/server/Mppx.d.ts.map +1 -1
  17. package/dist/server/Mppx.js +90 -71
  18. package/dist/server/Mppx.js.map +1 -1
  19. package/dist/server/Transport.d.ts +5 -1
  20. package/dist/server/Transport.d.ts.map +1 -1
  21. package/dist/server/Transport.js +52 -7
  22. package/dist/server/Transport.js.map +1 -1
  23. package/dist/server/internal/html/config.d.ts +7 -0
  24. package/dist/server/internal/html/config.d.ts.map +1 -0
  25. package/dist/server/internal/html/config.js +3 -0
  26. package/dist/server/internal/html/config.js.map +1 -0
  27. package/dist/server/internal/html/serviceWorker.gen.d.ts +2 -0
  28. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +1 -0
  29. package/dist/server/internal/html/serviceWorker.gen.js +3 -0
  30. package/dist/server/internal/html/serviceWorker.gen.js.map +1 -0
  31. package/dist/stripe/server/Charge.d.ts +5 -0
  32. package/dist/stripe/server/Charge.d.ts.map +1 -1
  33. package/dist/stripe/server/Charge.js +14 -6
  34. package/dist/stripe/server/Charge.js.map +1 -1
  35. package/dist/stripe/server/internal/html.gen.d.ts +2 -0
  36. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -0
  37. package/dist/stripe/server/internal/html.gen.js +3 -0
  38. package/dist/stripe/server/internal/html.gen.js.map +1 -0
  39. package/dist/tempo/server/Charge.d.ts +2 -0
  40. package/dist/tempo/server/Charge.d.ts.map +1 -1
  41. package/dist/tempo/server/Charge.js +15 -9
  42. package/dist/tempo/server/Charge.js.map +1 -1
  43. package/dist/tempo/server/Session.d.ts.map +1 -1
  44. package/dist/tempo/server/Session.js +3 -2
  45. package/dist/tempo/server/Session.js.map +1 -1
  46. package/dist/tempo/server/internal/html.gen.d.ts +2 -0
  47. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -0
  48. package/dist/tempo/server/internal/html.gen.js +3 -0
  49. package/dist/tempo/server/internal/html.gen.js.map +1 -0
  50. package/dist/tempo/server/internal/transport.d.ts +1 -1
  51. package/dist/tempo/server/internal/transport.d.ts.map +1 -1
  52. package/dist/tempo/server/internal/transport.js +45 -58
  53. package/dist/tempo/server/internal/transport.js.map +1 -1
  54. package/package.json +2 -2
  55. package/src/Credential.ts +28 -4
  56. package/src/Method.ts +6 -1
  57. package/src/env.d.ts +1 -0
  58. package/src/mcp-sdk/server/Transport.test.ts +6 -0
  59. package/src/proxy/Proxy.test.ts +188 -1
  60. package/src/proxy/Proxy.ts +58 -9
  61. package/src/proxy/internal/Route.test.ts +9 -0
  62. package/src/proxy/internal/Route.ts +5 -2
  63. package/src/server/Mppx.test.ts +171 -18
  64. package/src/server/Mppx.ts +120 -79
  65. package/src/server/Transport.test.ts +16 -2
  66. package/src/server/Transport.ts +61 -7
  67. package/src/server/internal/html/config.ts +8 -0
  68. package/src/server/internal/html/serviceWorker.client.ts +28 -0
  69. package/src/server/internal/html/serviceWorker.gen.ts +2 -0
  70. package/src/server/internal/html/serviceWorker.ts +27 -0
  71. package/src/server/internal/html/tsconfig.worker.client.json +8 -0
  72. package/src/server/internal/html/tsconfig.worker.json +8 -0
  73. package/src/stripe/server/Charge.ts +19 -5
  74. package/src/stripe/server/internal/html/main.ts +106 -0
  75. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +21 -0
  76. package/src/stripe/server/internal/html/package.json +9 -0
  77. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +7 -0
  78. package/src/stripe/server/internal/html/tsconfig.json +8 -0
  79. package/src/stripe/server/internal/html.gen.ts +2 -0
  80. package/src/tempo/server/Charge.ts +20 -8
  81. package/src/tempo/server/Session.ts +3 -2
  82. package/src/tempo/server/internal/html/main.ts +71 -0
  83. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +21 -0
  84. package/src/tempo/server/internal/html/package.json +10 -0
  85. package/src/tempo/server/internal/html/tsconfig.json +8 -0
  86. package/src/tempo/server/internal/html.gen.ts +2 -0
  87. package/src/tempo/server/internal/transport.test.ts +37 -31
  88. package/src/tempo/server/internal/transport.ts +44 -58
  89. package/src/tsconfig.json +1 -1
@@ -0,0 +1,71 @@
1
+ import { local, Provider } from 'accounts'
2
+ import { Json } from 'ox'
3
+ import { createClient, custom, http } from 'viem'
4
+ import { tempoModerato, tempoLocalnet } from 'viem/chains'
5
+
6
+ import type * as Challenge from '../../../../Challenge.js'
7
+ import { tempo } from '../../../../client/index.js'
8
+ import * as Html from '../../../../server/internal/html/config.js'
9
+ import { submitCredential } from '../../../../server/internal/html/serviceWorker.client.js'
10
+ import type * as Methods from '../../../Methods.js'
11
+
12
+ const data = Json.parse(document.getElementById(Html.dataId)!.textContent) as {
13
+ challenge: Challenge.FromMethods<[typeof Methods.charge]>
14
+ }
15
+
16
+ const root = document.getElementById('root')!
17
+
18
+ const h2 = document.createElement('h2')
19
+ h2.textContent = 'tempo'
20
+ root.appendChild(h2)
21
+
22
+ const provider = Provider.create({
23
+ // Dead code eliminated from production bundle (including top-level imports)
24
+ ...(import.meta.env.MODE === 'test'
25
+ ? {
26
+ adapter: local({
27
+ async loadAccounts() {
28
+ const { generatePrivateKey } = await import('viem/accounts')
29
+ const { Account, Actions } = await import('viem/tempo')
30
+ const privateKey = generatePrivateKey()
31
+ const account = Account.fromSecp256k1(privateKey)
32
+ const client = createClient({
33
+ chain: [tempoModerato, tempoLocalnet].find(
34
+ (x) => x.id === data.challenge.request.methodDetails?.chainId,
35
+ ),
36
+ transport: http(),
37
+ })
38
+ await Actions.faucet.fundSync(client, { account })
39
+ return {
40
+ accounts: [account],
41
+ }
42
+ },
43
+ }),
44
+ }
45
+ : {}),
46
+ testnet:
47
+ data.challenge.request.methodDetails?.chainId === tempoModerato.id ||
48
+ data.challenge.request.methodDetails?.chainId === tempoLocalnet.id,
49
+ })
50
+
51
+ const button = document.createElement('button')
52
+ button.textContent = 'Continue with Tempo'
53
+ button.onclick = async () => {
54
+ try {
55
+ button.disabled = true
56
+
57
+ const chain = [...(provider?.chains ?? []), tempoModerato, tempoLocalnet].find(
58
+ (x) => x.id === data.challenge.request.methodDetails?.chainId,
59
+ )
60
+ const client = createClient({ chain, transport: custom(provider) })
61
+ const result = await provider.request({ method: 'wallet_connect' })
62
+ const account = result.accounts[0]?.address
63
+ const method = tempo({ account, getClient: () => client })[0]
64
+
65
+ const credential = await method.createCredential({ challenge: data.challenge, context: {} })
66
+ await submitCredential(credential)
67
+ } finally {
68
+ button.disabled = false
69
+ }
70
+ }
71
+ root.appendChild(button)
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/runner/work/mppx/mppx/src/node_modules:/home/runner/work/mppx/mppx/node_modules:/home/runner/work/mppx/node_modules:/home/runner/work/node_modules:/home/runner/node_modules:/home/node_modules:/node_modules:/home/runner/work/mppx/mppx/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/runner/work/mppx/mppx/src/node_modules:/home/runner/work/mppx/mppx/node_modules:/home/runner/work/mppx/node_modules:/home/runner/work/node_modules:/home/runner/node_modules:/home/node_modules:/node_modules:/home/runner/work/mppx/mppx/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../mppx/src/bin.ts" "$@"
19
+ else
20
+ exec node "$basedir/../mppx/src/bin.ts" "$@"
21
+ fi
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "@mppx/tempo-html",
3
+ "private": true,
4
+ "type": "module",
5
+ "dependencies": {
6
+ "accounts": "https://pkg.pr.new/tempoxyz/accounts@c339a21",
7
+ "mppx": "workspace:*",
8
+ "viem": "2.47.5"
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../../../../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "lib": ["es2022", "dom"],
5
+ "types": []
6
+ },
7
+ "include": ["./**/*.ts", "../../../../env.d.ts"]
8
+ }