@clawpay-hedera/sdk 0.1.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 (102) hide show
  1. package/README.md +294 -0
  2. package/dist/cli/index.d.ts +3 -0
  3. package/dist/cli/index.d.ts.map +1 -0
  4. package/dist/cli/index.js +137 -0
  5. package/dist/cli/index.js.map +1 -0
  6. package/dist/client/hedera-payment.d.ts +25 -0
  7. package/dist/client/hedera-payment.d.ts.map +1 -0
  8. package/dist/client/hedera-payment.js +68 -0
  9. package/dist/client/hedera-payment.js.map +1 -0
  10. package/dist/client/with-x402-client.d.ts +27 -0
  11. package/dist/client/with-x402-client.d.ts.map +1 -0
  12. package/dist/client/with-x402-client.js +136 -0
  13. package/dist/client/with-x402-client.js.map +1 -0
  14. package/dist/client.d.ts +2 -0
  15. package/dist/client.d.ts.map +1 -0
  16. package/dist/client.js +2 -0
  17. package/dist/client.js.map +1 -0
  18. package/dist/handler/proxy/hooks/analytics-hook.d.ts +299 -0
  19. package/dist/handler/proxy/hooks/analytics-hook.d.ts.map +1 -0
  20. package/dist/handler/proxy/hooks/analytics-hook.js +133 -0
  21. package/dist/handler/proxy/hooks/analytics-hook.js.map +1 -0
  22. package/dist/handler/proxy/hooks/auth-headers-hook.d.ts +20 -0
  23. package/dist/handler/proxy/hooks/auth-headers-hook.d.ts.map +1 -0
  24. package/dist/handler/proxy/hooks/auth-headers-hook.js +34 -0
  25. package/dist/handler/proxy/hooks/auth-headers-hook.js.map +1 -0
  26. package/dist/handler/proxy/hooks/hcs-audit-hook.d.ts +133 -0
  27. package/dist/handler/proxy/hooks/hcs-audit-hook.d.ts.map +1 -0
  28. package/dist/handler/proxy/hooks/hcs-audit-hook.js +138 -0
  29. package/dist/handler/proxy/hooks/hcs-audit-hook.js.map +1 -0
  30. package/dist/handler/proxy/hooks/logging-hook.d.ts +100 -0
  31. package/dist/handler/proxy/hooks/logging-hook.d.ts.map +1 -0
  32. package/dist/handler/proxy/hooks/logging-hook.js +14 -0
  33. package/dist/handler/proxy/hooks/logging-hook.js.map +1 -0
  34. package/dist/handler/proxy/hooks/x402-hook.d.ts +246 -0
  35. package/dist/handler/proxy/hooks/x402-hook.d.ts.map +1 -0
  36. package/dist/handler/proxy/hooks/x402-hook.js +219 -0
  37. package/dist/handler/proxy/hooks/x402-hook.js.map +1 -0
  38. package/dist/handler/proxy/hooks.d.ts +12111 -0
  39. package/dist/handler/proxy/hooks.d.ts.map +1 -0
  40. package/dist/handler/proxy/hooks.js +142 -0
  41. package/dist/handler/proxy/hooks.js.map +1 -0
  42. package/dist/handler/proxy/index.d.ts +3 -0
  43. package/dist/handler/proxy/index.d.ts.map +1 -0
  44. package/dist/handler/proxy/index.js +489 -0
  45. package/dist/handler/proxy/index.js.map +1 -0
  46. package/dist/handler/server/index.d.ts +25 -0
  47. package/dist/handler/server/index.d.ts.map +1 -0
  48. package/dist/handler/server/index.js +38 -0
  49. package/dist/handler/server/index.js.map +1 -0
  50. package/dist/handler/server/platform-detection.d.ts +32 -0
  51. package/dist/handler/server/platform-detection.d.ts.map +1 -0
  52. package/dist/handler/server/platform-detection.js +441 -0
  53. package/dist/handler/server/platform-detection.js.map +1 -0
  54. package/dist/handler/server/plugins/with-x402.d.ts +21 -0
  55. package/dist/handler/server/plugins/with-x402.d.ts.map +1 -0
  56. package/dist/handler/server/plugins/with-x402.js +290 -0
  57. package/dist/handler/server/plugins/with-x402.js.map +1 -0
  58. package/dist/handler/server/templates/x402-server.d.ts +16 -0
  59. package/dist/handler/server/templates/x402-server.d.ts.map +1 -0
  60. package/dist/handler/server/templates/x402-server.js +13 -0
  61. package/dist/handler/server/templates/x402-server.js.map +1 -0
  62. package/dist/handler/shared/hedera-price.d.ts +26 -0
  63. package/dist/handler/shared/hedera-price.d.ts.map +1 -0
  64. package/dist/handler/shared/hedera-price.js +54 -0
  65. package/dist/handler/shared/hedera-price.js.map +1 -0
  66. package/dist/handler.d.ts +14 -0
  67. package/dist/handler.d.ts.map +1 -0
  68. package/dist/handler.js +12 -0
  69. package/dist/handler.js.map +1 -0
  70. package/dist/index.d.ts +7 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +5 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/networks/hedera.d.ts +52 -0
  75. package/dist/networks/hedera.d.ts.map +1 -0
  76. package/dist/networks/hedera.js +61 -0
  77. package/dist/networks/hedera.js.map +1 -0
  78. package/dist/server/stdio/index.d.ts +2 -0
  79. package/dist/server/stdio/index.d.ts.map +1 -0
  80. package/dist/server/stdio/index.js +91 -0
  81. package/dist/server/stdio/index.js.map +1 -0
  82. package/dist/server/stdio/proxy-server.d.ts +9 -0
  83. package/dist/server/stdio/proxy-server.d.ts.map +1 -0
  84. package/dist/server/stdio/proxy-server.js +53 -0
  85. package/dist/server/stdio/proxy-server.js.map +1 -0
  86. package/dist/server/stdio/start-stdio-server.d.ts +28 -0
  87. package/dist/server/stdio/start-stdio-server.d.ts.map +1 -0
  88. package/dist/server/stdio/start-stdio-server.js +84 -0
  89. package/dist/server/stdio/start-stdio-server.js.map +1 -0
  90. package/dist/server.d.ts +6 -0
  91. package/dist/server.d.ts.map +1 -0
  92. package/dist/server.js +4 -0
  93. package/dist/server.js.map +1 -0
  94. package/dist/utils/signer.d.ts +4 -0
  95. package/dist/utils/signer.d.ts.map +1 -0
  96. package/dist/utils/signer.js +58 -0
  97. package/dist/utils/signer.js.map +1 -0
  98. package/dist/utils.d.ts +2 -0
  99. package/dist/utils.d.ts.map +1 -0
  100. package/dist/utils.js +2 -0
  101. package/dist/utils.js.map +1 -0
  102. package/package.json +86 -0
@@ -0,0 +1,441 @@
1
+ function detectRuntime() {
2
+ // Check for Edge Runtime first
3
+ if (typeof globalThis !== 'undefined') {
4
+ const edgeRuntime = globalThis.EdgeRuntime;
5
+ if (typeof edgeRuntime === 'string') {
6
+ return {
7
+ name: 'Edge',
8
+ version: edgeRuntime,
9
+ isEdge: true
10
+ };
11
+ }
12
+ }
13
+ // Check for specific runtimes
14
+ if (typeof process !== 'undefined' && process.versions) {
15
+ // Deno check
16
+ const denoGlobal = globalThis.Deno;
17
+ if (denoGlobal) {
18
+ return {
19
+ name: 'Deno',
20
+ version: denoGlobal.version?.deno,
21
+ isEdge: false
22
+ };
23
+ }
24
+ // Bun check
25
+ const versions = process.versions;
26
+ if ('bun' in versions && versions.bun) {
27
+ return {
28
+ name: 'Bun',
29
+ version: versions.bun,
30
+ isEdge: false
31
+ };
32
+ }
33
+ // Node.js check
34
+ if (versions.node) {
35
+ return {
36
+ name: 'Node.js',
37
+ version: versions.node,
38
+ isEdge: false
39
+ };
40
+ }
41
+ }
42
+ // Fallback: check for other edge indicators
43
+ const hasWebStreams = typeof ReadableStream !== 'undefined' &&
44
+ typeof WritableStream !== 'undefined';
45
+ const hasServiceWorkerGlobals = typeof Request !== 'undefined' &&
46
+ typeof Response !== 'undefined' &&
47
+ typeof fetch !== 'undefined';
48
+ if (hasWebStreams && hasServiceWorkerGlobals && typeof process === 'undefined') {
49
+ return {
50
+ name: 'Edge',
51
+ isEdge: true
52
+ };
53
+ }
54
+ return {
55
+ name: 'Unknown',
56
+ isEdge: false
57
+ };
58
+ }
59
+ const SIGNATURES = [
60
+ // Vercel - highest priority for Vercel-specific detection
61
+ {
62
+ platform: 'Vercel',
63
+ signatureVars: ['VERCEL', 'VERCEL_ENV', 'VERCEL_URL', 'VERCEL_REGION', 'VERCEL_BRANCH_URL', 'VERCEL_PROJECT_PRODUCTION_URL'],
64
+ url: (env) => {
65
+ // Check if running on Vercel
66
+ const isVercel = env.VERCEL === "1";
67
+ if (!isVercel) {
68
+ return undefined;
69
+ }
70
+ // Vercel environment
71
+ const vercelEnv = env.VERCEL_ENV;
72
+ // For preview deployments, use the branch URL if available
73
+ if (vercelEnv === "preview") {
74
+ const branchUrl = env.VERCEL_BRANCH_URL;
75
+ if (branchUrl) {
76
+ return `https://${branchUrl}`;
77
+ }
78
+ // Fallback to the general deployment URL
79
+ return env.VERCEL_URL ? `https://${env.VERCEL_URL}` : undefined;
80
+ }
81
+ // For production, use the production URL if available
82
+ if (vercelEnv === "production") {
83
+ const productionUrl = env.VERCEL_PROJECT_PRODUCTION_URL;
84
+ if (productionUrl) {
85
+ return `https://${productionUrl}`;
86
+ }
87
+ // Fallback to the general deployment URL
88
+ return env.VERCEL_URL ? `https://${env.VERCEL_URL}` : undefined;
89
+ }
90
+ // Default fallback for other environments
91
+ return env.VERCEL_URL ? `https://${env.VERCEL_URL}` : undefined;
92
+ },
93
+ priority: 100
94
+ },
95
+ // Edge Runtime - detect if running in edge environment
96
+ {
97
+ platform: 'Edge Runtime',
98
+ signatureVars: [],
99
+ detect: () => {
100
+ const runtime = detectRuntime();
101
+ return runtime.isEdge && runtime.name === 'Edge';
102
+ },
103
+ url: () => undefined,
104
+ priority: 95
105
+ },
106
+ // Netlify
107
+ {
108
+ platform: 'Netlify',
109
+ signatureVars: ['NETLIFY', 'NETLIFY_ENV', 'DEPLOY_URL', 'URL', 'SITE_NAME'],
110
+ url: (env) => env.NETLIFY_URL ?? env.DEPLOY_URL ?? env.URL,
111
+ priority: 90
112
+ },
113
+ // Cloudflare
114
+ {
115
+ platform: 'Cloudflare Pages',
116
+ signatureVars: ['CF_PAGES', 'CF_PAGES_URL', 'CF_PAGES_BRANCH'],
117
+ url: (env) => env.CF_PAGES_URL,
118
+ priority: 90
119
+ },
120
+ {
121
+ platform: 'Cloudflare Workers',
122
+ signatureVars: ['CF_WORKER', 'CLOUDFLARE_WORKER'],
123
+ detect: (env) => {
124
+ // Additional heuristics for Workers
125
+ return Boolean(env.CF_WORKER || env.CLOUDFLARE_WORKER ||
126
+ (typeof navigator !== 'undefined' && navigator.userAgent?.includes('Cloudflare-Workers')));
127
+ },
128
+ url: () => undefined,
129
+ priority: 85
130
+ },
131
+ // Deno Deploy
132
+ {
133
+ platform: 'Deno Deploy',
134
+ signatureVars: ['DENO_DEPLOYMENT_ID', 'DENO_REGION'],
135
+ detect: () => {
136
+ const runtime = detectRuntime();
137
+ return runtime.name === 'Deno' && Boolean(process.env.DENO_DEPLOYMENT_ID);
138
+ },
139
+ url: () => undefined,
140
+ priority: 85
141
+ },
142
+ // Supabase Edge Functions
143
+ {
144
+ platform: 'Supabase Edge Functions',
145
+ signatureVars: ['SUPABASE_URL', 'SUPABASE_ANON_KEY', 'SUPABASE_SERVICE_ROLE_KEY'],
146
+ detect: (env) => Boolean(env.SUPABASE_URL && (env.SUPABASE_ANON_KEY || env.SUPABASE_SERVICE_ROLE_KEY)),
147
+ url: (env) => env.SUPABASE_URL,
148
+ priority: 80
149
+ },
150
+ // AWS
151
+ {
152
+ platform: 'AWS Lambda',
153
+ signatureVars: ['AWS_LAMBDA_FUNCTION_NAME', 'AWS_EXECUTION_ENV', 'LAMBDA_TASK_ROOT'],
154
+ url: () => undefined,
155
+ priority: 80
156
+ },
157
+ {
158
+ platform: 'AWS Amplify',
159
+ signatureVars: ['AWS_APP_ID', 'AWS_BRANCH', 'AWS_CLONE_URL'],
160
+ url: (env) => env.AWS_CLONE_URL,
161
+ priority: 75
162
+ },
163
+ {
164
+ platform: 'AWS Elastic Beanstalk',
165
+ signatureVars: ['EB_ENVIRONMENT_NAME'],
166
+ url: () => undefined,
167
+ priority: 70
168
+ },
169
+ // Railway
170
+ {
171
+ platform: 'Railway',
172
+ signatureVars: ['RAILWAY_ENVIRONMENT', 'RAILWAY_PUBLIC_DOMAIN', 'RAILWAY_PROJECT_ID'],
173
+ url: (env) => env.RAILWAY_PUBLIC_DOMAIN ? `https://${env.RAILWAY_PUBLIC_DOMAIN}` : undefined,
174
+ priority: 75
175
+ },
176
+ // Render
177
+ {
178
+ platform: 'Render',
179
+ signatureVars: ['RENDER', 'RENDER_EXTERNAL_URL', 'RENDER_SERVICE_ID'],
180
+ url: (env) => env.RENDER_EXTERNAL_URL,
181
+ priority: 75
182
+ },
183
+ // Heroku
184
+ {
185
+ platform: 'Heroku',
186
+ signatureVars: ['HEROKU_APP_NAME', 'DYNO', 'HEROKU_DYNO_ID'],
187
+ url: (env) => env.HEROKU_APP_NAME ? `https://${env.HEROKU_APP_NAME}.herokuapp.com` : undefined,
188
+ priority: 75
189
+ },
190
+ // Fly.io
191
+ {
192
+ platform: 'Fly.io',
193
+ signatureVars: ['FLY_APP_NAME', 'FLY_REGION'],
194
+ url: (env) => env.FLY_APP_NAME ? `https://${env.FLY_APP_NAME}.fly.dev` : undefined,
195
+ priority: 75
196
+ },
197
+ // DigitalOcean
198
+ {
199
+ platform: 'DigitalOcean App',
200
+ signatureVars: ['DO_APP_NAME', 'DO_DEPLOYMENT_ID', 'DIGITALOCEAN_APP_NAME'],
201
+ url: () => undefined,
202
+ priority: 70
203
+ },
204
+ // GitHub/GitLab Pages
205
+ {
206
+ platform: 'GitHub Pages',
207
+ signatureVars: ['GITHUB_PAGES', 'GITHUB_REPOSITORY'],
208
+ detect: (env) => Boolean(env.GITHUB_PAGES || (env.GITHUB_REPOSITORY && env.GITHUB_ACTIONS)),
209
+ url: (env) => {
210
+ if (env.GITHUB_REPOSITORY) {
211
+ const [owner, repo] = env.GITHUB_REPOSITORY.split('/');
212
+ return `https://${owner}.github.io/${repo}`;
213
+ }
214
+ return undefined;
215
+ },
216
+ priority: 60
217
+ },
218
+ {
219
+ platform: 'GitLab Pages',
220
+ signatureVars: ['GITLAB_CI', 'CI_PAGES_URL'],
221
+ detect: (env) => Boolean(env.GITLAB_CI && env.CI_PAGES_URL),
222
+ url: (env) => env.CI_PAGES_URL,
223
+ priority: 60
224
+ },
225
+ // Azure
226
+ {
227
+ platform: 'Azure Functions',
228
+ signatureVars: ['FUNCTIONS_WORKER_RUNTIME', 'WEBSITE_SITE_NAME', 'AZURE_FUNCTIONS_ENVIRONMENT'],
229
+ url: (env) => env.WEBSITE_SITE_NAME ? `https://${env.WEBSITE_SITE_NAME}.azurewebsites.net` : undefined,
230
+ priority: 70
231
+ },
232
+ // GCP
233
+ {
234
+ platform: 'GCP Cloud Functions',
235
+ signatureVars: ['FUNCTION_SIGNATURE_TYPE', 'K_SERVICE', 'FUNCTION_TARGET', 'GCP_PROJECT'],
236
+ url: () => undefined,
237
+ priority: 70
238
+ },
239
+ {
240
+ platform: 'GCP Cloud Run',
241
+ signatureVars: ['K_REVISION', 'CLOUD_RUN_JOB', 'K_CONFIGURATION'],
242
+ url: () => undefined,
243
+ priority: 70
244
+ },
245
+ // Kubernetes
246
+ {
247
+ platform: 'Kubernetes',
248
+ signatureVars: ['KUBERNETES_SERVICE_HOST', 'KUBERNETES_PORT', 'KUBERNETES_PORT_443_TCP'],
249
+ url: () => undefined,
250
+ priority: 50
251
+ },
252
+ // Bun.sh (if it becomes a hosting platform)
253
+ {
254
+ platform: 'Bun.sh',
255
+ signatureVars: ['BUN_ENV', 'BUN_DEPLOYMENT_ID'],
256
+ detect: () => {
257
+ const runtime = detectRuntime();
258
+ return runtime.name === 'Bun' && Boolean(process.env.BUN_DEPLOYMENT_ID);
259
+ },
260
+ url: () => undefined,
261
+ priority: 75
262
+ },
263
+ ].sort((a, b) => (b.priority || 0) - (a.priority || 0));
264
+ async function tryReadCgroup() {
265
+ if (typeof process === 'undefined' || !process.versions?.node)
266
+ return null;
267
+ try {
268
+ // Lazy import avoids breaking non‑Node runtimes like Workers / Deno
269
+ const mod = await import('node:fs/promises');
270
+ return await mod.readFile('/proc/1/cgroup', 'utf8');
271
+ }
272
+ catch {
273
+ return null;
274
+ }
275
+ }
276
+ function hasFetch() {
277
+ return typeof fetch === 'function';
278
+ }
279
+ function isEdgeRuntime() {
280
+ const runtime = detectRuntime();
281
+ return runtime.isEdge;
282
+ }
283
+ // Enhanced container detection
284
+ async function detectContainer() {
285
+ const cgroup = await tryReadCgroup();
286
+ if (cgroup) {
287
+ // More comprehensive container detection
288
+ return /docker|kubepods|containerd|lxc|garden|podman/.test(cgroup);
289
+ }
290
+ // Additional container indicators
291
+ if (typeof process !== 'undefined') {
292
+ return Boolean(process.env.DOCKER_CONTAINER ||
293
+ process.env.KUBERNETES_SERVICE_HOST ||
294
+ process.env.container ||
295
+ process.env.CONTAINER_NAME);
296
+ }
297
+ return false;
298
+ }
299
+ // Cache for platform detection to avoid repeated expensive operations
300
+ const detectionCache = new Map();
301
+ const cacheTimeout = 60000; // 1 minute
302
+ let lastCacheTime = 0;
303
+ export async function detectPlatform(env = process.env) {
304
+ // Check cache first
305
+ const cacheKey = JSON.stringify(env);
306
+ const now = Date.now();
307
+ if (detectionCache.has(cacheKey) && (now - lastCacheTime) < cacheTimeout) {
308
+ return detectionCache.get(cacheKey);
309
+ }
310
+ let detectedPlatform = 'Unknown';
311
+ // 1. Signature-based detection (ordered by priority)
312
+ for (const sig of SIGNATURES) {
313
+ // Check environment variables
314
+ const hasEnvVar = sig.signatureVars.some((v) => v in env);
315
+ // Check custom detection logic
316
+ const hasCustomDetection = sig.detect ? sig.detect(env) : false;
317
+ if (hasEnvVar || hasCustomDetection) {
318
+ detectedPlatform = sig.platform;
319
+ break;
320
+ }
321
+ }
322
+ // 2. Container runtime heuristics (if not already detected)
323
+ if (detectedPlatform === 'Unknown') {
324
+ const isContainer = await detectContainer();
325
+ if (isContainer) {
326
+ detectedPlatform = 'Docker';
327
+ }
328
+ }
329
+ // 3. Cloud VM detection via metadata API (skip if no fetch or already detected)
330
+ if (detectedPlatform === 'Unknown' && hasFetch()) {
331
+ try {
332
+ const controller = new AbortController();
333
+ setTimeout(() => controller.abort(), 500); // Increased timeout slightly
334
+ const res = await fetch('http://169.254.169.254/latest/meta-data/', {
335
+ signal: controller.signal
336
+ });
337
+ if (res.ok) {
338
+ detectedPlatform = 'Bare‑metal';
339
+ }
340
+ }
341
+ catch {
342
+ // Ignore failures - this is just a heuristic
343
+ }
344
+ }
345
+ // Cache the result
346
+ detectionCache.set(cacheKey, detectedPlatform);
347
+ lastCacheTime = now;
348
+ return detectedPlatform;
349
+ }
350
+ export function generatePotentialUrls(env = process.env) {
351
+ const urls = new Set();
352
+ const defaultPort = 3000;
353
+ // Get URLs from platform signatures
354
+ for (const sig of SIGNATURES) {
355
+ const url = sig.url(env, defaultPort);
356
+ if (url)
357
+ urls.add(url);
358
+ }
359
+ // Additional URL sources
360
+ const additionalUrls = [
361
+ env.PUBLIC_URL,
362
+ env.SITE_URL,
363
+ env.BASE_URL,
364
+ env.APP_URL,
365
+ env.FRONTEND_URL
366
+ ].filter(Boolean);
367
+ additionalUrls.forEach(url => urls.add(url));
368
+ // Platform-specific URL generation
369
+ if (env.FLY_APP_NAME)
370
+ urls.add(`https://${env.FLY_APP_NAME}.fly.dev`);
371
+ if (env.RAILWAY_PUBLIC_DOMAIN)
372
+ urls.add(`https://${env.RAILWAY_PUBLIC_DOMAIN}`);
373
+ if (env.RENDER_EXTERNAL_URL)
374
+ urls.add(env.RENDER_EXTERNAL_URL);
375
+ // Fallback URLs
376
+ if (urls.size === 0) {
377
+ urls.add(`http://localhost:${defaultPort}`);
378
+ urls.add(`http://127.0.0.1:${defaultPort}`);
379
+ }
380
+ return [...urls];
381
+ }
382
+ export async function gatherPlatformInfo(env = process.env) {
383
+ const [platform, isContainer, runtime] = await Promise.all([
384
+ detectPlatform(env),
385
+ detectContainer(),
386
+ Promise.resolve(detectRuntime())
387
+ ]);
388
+ const urls = generatePotentialUrls(env);
389
+ const isEdge = isEdgeRuntime();
390
+ const match = SIGNATURES.find((s) => s.platform === platform);
391
+ const signatureEnv = {};
392
+ if (match) {
393
+ for (const key of match.signatureVars) {
394
+ if (env[key]) {
395
+ signatureEnv[key] = env[key];
396
+ }
397
+ }
398
+ }
399
+ // Detect if running on cloud VM (simplified heuristic)
400
+ const isCloudVM = platform === 'Bare‑metal' || Boolean(env.AWS_INSTANCE_METADATA_DISABLED === 'false' ||
401
+ env.GOOGLE_CLOUD_PROJECT ||
402
+ env.AZURE_SUBSCRIPTION_ID);
403
+ return {
404
+ platform,
405
+ runtime,
406
+ signatureEnv,
407
+ urls,
408
+ isEdgeRuntime: isEdge,
409
+ isContainer,
410
+ isCloudVM
411
+ };
412
+ }
413
+ /**
414
+ * Check if the current environment is a specific platform
415
+ */
416
+ export async function isPlatform(targetPlatform, env) {
417
+ const platform = await detectPlatform(env);
418
+ return platform === targetPlatform;
419
+ }
420
+ /**
421
+ * Get a summary of the current runtime environment
422
+ */
423
+ export function getRuntimeSummary() {
424
+ const runtime = detectRuntime();
425
+ const parts = [runtime.name];
426
+ if (runtime.version) {
427
+ parts.push(`v${runtime.version}`);
428
+ }
429
+ if (runtime.isEdge) {
430
+ parts.push('(Edge)');
431
+ }
432
+ return parts.join(' ');
433
+ }
434
+ /**
435
+ * Clear the platform detection cache (useful for testing)
436
+ */
437
+ export function clearDetectionCache() {
438
+ detectionCache.clear();
439
+ lastCacheTime = 0;
440
+ }
441
+ //# sourceMappingURL=platform-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-detection.js","sourceRoot":"","sources":["../../../src/handler/server/platform-detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { McpServer, RegisteredTool, ToolCallback } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
3
+ import type { ZodRawShape } from "zod";
4
+ import type { FacilitatorConfig, Network, Price } from "x402/types";
5
+ import { type HCSAuditConfig } from "../../proxy/hooks/hcs-audit-hook.js";
6
+ export type RecipientWithTestnet = {
7
+ address: string;
8
+ isTestnet?: boolean;
9
+ };
10
+ export type X402Config = {
11
+ recipient: Partial<Record<Network, string>> | Partial<Record<"evm", RecipientWithTestnet>>;
12
+ facilitator: FacilitatorConfig;
13
+ version?: number;
14
+ /** Enable HCS audit trail — logs every successful payment to Hedera Consensus Service */
15
+ hcsAudit?: HCSAuditConfig;
16
+ };
17
+ export interface X402AugmentedServer {
18
+ paidTool<Args extends ZodRawShape>(name: string, description: string, price: Price, paramsSchema: Args, annotations: ToolAnnotations, cb: ToolCallback<Args>): RegisteredTool;
19
+ }
20
+ export declare function withX402<S extends McpServer>(server: S, cfg: X402Config): S & X402AugmentedServer;
21
+ //# sourceMappingURL=with-x402.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-x402.d.ts","sourceRoot":"","sources":["../../../../src/handler/server/plugins/with-x402.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,EACR,iBAAiB,EACjB,OAAO,EAGP,KAAK,EACR,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAQxF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EACL,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACjD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,SAAS,WAAW,EAC/B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,IAAI,EAClB,WAAW,EAAE,eAAe,EAC5B,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,GACrB,cAAc,CAAC;CACnB;AAQD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC1C,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,UAAU,GACd,CAAC,GAAG,mBAAmB,CAiUzB"}