@chipi-stack/nextjs 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 (92) hide show
  1. package/README.md +159 -0
  2. package/dist/ChipiClientProvider.d.mts +15 -0
  3. package/dist/app-router/client/ChipiProvider.d.mts +20 -0
  4. package/dist/app-router/server/ChipiProvider.d.mts +15 -0
  5. package/dist/cjs/ChipiClientProvider.d.ts +15 -0
  6. package/dist/cjs/ChipiClientProvider.js +38 -0
  7. package/dist/cjs/ChipiClientProvider.js.map +1 -0
  8. package/dist/cjs/app-router/client/ChipiProvider.d.ts +20 -0
  9. package/dist/cjs/app-router/client/ChipiProvider.js +79 -0
  10. package/dist/cjs/app-router/client/ChipiProvider.js.map +1 -0
  11. package/dist/cjs/app-router/server/ChipiProvider.d.ts +15 -0
  12. package/dist/cjs/app-router/server/ChipiProvider.js +58 -0
  13. package/dist/cjs/app-router/server/ChipiProvider.js.map +1 -0
  14. package/dist/cjs/client/ChipiClientWrapper.d.ts +15 -0
  15. package/dist/cjs/client/ChipiClientWrapper.js +79 -0
  16. package/dist/cjs/client/ChipiClientWrapper.js.map +1 -0
  17. package/dist/cjs/client/ChipiProvider.d.ts +50 -0
  18. package/dist/cjs/client/ChipiProvider.js +90 -0
  19. package/dist/cjs/client/ChipiProvider.js.map +1 -0
  20. package/dist/cjs/client/index.d.ts +6 -0
  21. package/dist/cjs/client/index.js +32 -0
  22. package/dist/cjs/client/index.js.map +1 -0
  23. package/dist/cjs/client-boundary/ChipiProvider.d.ts +15 -0
  24. package/dist/cjs/client-boundary/ChipiProvider.js +51 -0
  25. package/dist/cjs/client-boundary/ChipiProvider.js.map +1 -0
  26. package/dist/cjs/components.client.d.ts +3 -0
  27. package/dist/cjs/components.client.js +29 -0
  28. package/dist/cjs/components.client.js.map +1 -0
  29. package/dist/cjs/components.server.d.ts +9 -0
  30. package/dist/cjs/components.server.js +29 -0
  31. package/dist/cjs/components.server.js.map +1 -0
  32. package/dist/cjs/hooks.d.ts +1 -0
  33. package/dist/cjs/hooks.js +52 -0
  34. package/dist/cjs/hooks.js.map +1 -0
  35. package/dist/cjs/index.d.ts +18 -0
  36. package/dist/cjs/index.js +46 -0
  37. package/dist/cjs/index.js.map +1 -0
  38. package/dist/cjs/server/ChipiServerSDK.d.ts +58 -0
  39. package/dist/cjs/server/ChipiServerSDK.js +123 -0
  40. package/dist/cjs/server/ChipiServerSDK.js.map +1 -0
  41. package/dist/cjs/server/createChipiServer.d.ts +22 -0
  42. package/dist/cjs/server/createChipiServer.js +60 -0
  43. package/dist/cjs/server/createChipiServer.js.map +1 -0
  44. package/dist/cjs/server/index.d.ts +5 -0
  45. package/dist/cjs/server/index.js +36 -0
  46. package/dist/cjs/server/index.js.map +1 -0
  47. package/dist/cjs/server/types.d.ts +18 -0
  48. package/dist/cjs/server/types.js +17 -0
  49. package/dist/cjs/server/types.js.map +1 -0
  50. package/dist/client/ChipiClientWrapper.d.mts +15 -0
  51. package/dist/client/ChipiProvider.d.mts +50 -0
  52. package/dist/client/index.d.mts +6 -0
  53. package/dist/client-boundary/ChipiProvider.d.mts +15 -0
  54. package/dist/components.client.d.mts +3 -0
  55. package/dist/components.server.d.mts +9 -0
  56. package/dist/esm/ChipiClientProvider.js +14 -0
  57. package/dist/esm/ChipiClientProvider.js.map +1 -0
  58. package/dist/esm/app-router/client/ChipiProvider.js +45 -0
  59. package/dist/esm/app-router/client/ChipiProvider.js.map +1 -0
  60. package/dist/esm/app-router/server/ChipiProvider.js +34 -0
  61. package/dist/esm/app-router/server/ChipiProvider.js.map +1 -0
  62. package/dist/esm/client/ChipiClientWrapper.js +45 -0
  63. package/dist/esm/client/ChipiClientWrapper.js.map +1 -0
  64. package/dist/esm/client/ChipiProvider.js +56 -0
  65. package/dist/esm/client/ChipiProvider.js.map +1 -0
  66. package/dist/esm/client/index.js +7 -0
  67. package/dist/esm/client/index.js.map +1 -0
  68. package/dist/esm/client-boundary/ChipiProvider.js +27 -0
  69. package/dist/esm/client-boundary/ChipiProvider.js.map +1 -0
  70. package/dist/esm/components.client.js +5 -0
  71. package/dist/esm/components.client.js.map +1 -0
  72. package/dist/esm/components.server.js +5 -0
  73. package/dist/esm/components.server.js.map +1 -0
  74. package/dist/esm/hooks.js +30 -0
  75. package/dist/esm/hooks.js.map +1 -0
  76. package/dist/esm/index.js +9 -0
  77. package/dist/esm/index.js.map +1 -0
  78. package/dist/esm/server/ChipiServerSDK.js +99 -0
  79. package/dist/esm/server/ChipiServerSDK.js.map +1 -0
  80. package/dist/esm/server/createChipiServer.js +34 -0
  81. package/dist/esm/server/createChipiServer.js.map +1 -0
  82. package/dist/esm/server/index.js +9 -0
  83. package/dist/esm/server/index.js.map +1 -0
  84. package/dist/esm/server/types.js +1 -0
  85. package/dist/esm/server/types.js.map +1 -0
  86. package/dist/hooks.d.mts +1 -0
  87. package/dist/index.d.mts +18 -0
  88. package/dist/server/ChipiServerSDK.d.mts +58 -0
  89. package/dist/server/createChipiServer.d.mts +22 -0
  90. package/dist/server/index.d.mts +5 -0
  91. package/dist/server/types.d.mts +18 -0
  92. package/package.json +102 -0
@@ -0,0 +1,99 @@
1
+ import { ChipiSDK } from "@chipi-stack/backend";
2
+ import { ChipiAuthError } from "@chipi-stack/shared";
3
+ class ChipiServerSDK extends ChipiSDK {
4
+ constructor(config) {
5
+ super(config);
6
+ if (!config.secretKey) {
7
+ throw new ChipiAuthError("Secret key is required for server-side operations");
8
+ }
9
+ if (!config.secretKey.startsWith("sk_")) {
10
+ throw new ChipiAuthError('Invalid secret key format. Secret key should start with "sk_"');
11
+ }
12
+ this.secretKey = config.secretKey;
13
+ this.debug = config.debug || false;
14
+ if (this.debug) {
15
+ console.log("[ChipiServerSDK] Initialized with secret key");
16
+ }
17
+ }
18
+ /**
19
+ * Get the secret key for server-side operations
20
+ * WARNING: Never expose this to the client
21
+ */
22
+ getSecretKey() {
23
+ return this.secretKey;
24
+ }
25
+ /**
26
+ * Verify API key ownership using secret key
27
+ */
28
+ async verifyApiKey(publicKey) {
29
+ try {
30
+ return publicKey.startsWith("pk_") && this.secretKey.startsWith("sk_");
31
+ } catch (error) {
32
+ if (this.debug) {
33
+ console.error("[ChipiServerSDK] API key verification failed:", error);
34
+ }
35
+ return false;
36
+ }
37
+ }
38
+ /**
39
+ * Server-side wallet creation with enhanced security
40
+ */
41
+ async createServerWallet(params) {
42
+ if (this.debug) {
43
+ console.log("[ChipiServerSDK] Creating server wallet for user:", params.userId);
44
+ }
45
+ return this.createWallet({
46
+ encryptKey: params.encryptKey,
47
+ bearerToken: ""
48
+ // Server-side operations might not need bearer token
49
+ });
50
+ }
51
+ /**
52
+ * Server-side transaction execution with enhanced logging
53
+ */
54
+ async executeServerTransaction(params) {
55
+ if (this.debug) {
56
+ console.log("[ChipiServerSDK] Executing server transaction:", {
57
+ userId: params.userId,
58
+ callsCount: params.calls.length,
59
+ reason: params.reason
60
+ });
61
+ }
62
+ return this.executeTransaction({
63
+ encryptKey: params.encryptKey,
64
+ wallet: params.wallet,
65
+ calls: params.calls,
66
+ bearerToken: ""
67
+ // Server-side operations might not need bearer token
68
+ });
69
+ }
70
+ /**
71
+ * Server-side SKU purchase with enhanced tracking
72
+ */
73
+ async purchaseSkuForUser(params) {
74
+ if (this.debug) {
75
+ console.log("[ChipiServerSDK] Processing SKU purchase:", {
76
+ userId: params.userId,
77
+ skuId: params.skuId,
78
+ amount: params.mxnAmount
79
+ });
80
+ }
81
+ const result = await this.skus.purchaseSku({
82
+ skuId: params.skuId,
83
+ walletAddress: params.walletAddress,
84
+ chain: params.chain,
85
+ chainToken: params.chainToken,
86
+ mxnAmount: params.mxnAmount,
87
+ reference: params.reference,
88
+ transactionHash: params.transactionHash
89
+ });
90
+ if (this.debug) {
91
+ console.log("[ChipiServerSDK] SKU purchase completed:", result.transaction.id);
92
+ }
93
+ return result;
94
+ }
95
+ }
96
+ export {
97
+ ChipiServerSDK
98
+ };
99
+ //# sourceMappingURL=ChipiServerSDK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/ChipiServerSDK.ts"],"sourcesContent":["import { ChipiSDK } from '@chipi-stack/backend';\nimport { ChipiAuthError } from '@chipi-stack/shared';\nimport type { ChipiServerConfig } from './types';\n\n/**\n * Server-side Chipi SDK with enhanced capabilities\n * Includes secret key for server-side operations\n */\nexport class ChipiServerSDK extends ChipiSDK {\n private secretKey: string;\n private debug: boolean;\n\n constructor(config: ChipiServerConfig) {\n super(config);\n \n if (!config.secretKey) {\n throw new ChipiAuthError('Secret key is required for server-side operations');\n }\n \n if (!config.secretKey.startsWith('sk_')) {\n throw new ChipiAuthError('Invalid secret key format. Secret key should start with \"sk_\"');\n }\n \n this.secretKey = config.secretKey;\n this.debug = config.debug || false;\n \n if (this.debug) {\n console.log('[ChipiServerSDK] Initialized with secret key');\n }\n }\n\n /**\n * Get the secret key for server-side operations\n * WARNING: Never expose this to the client\n */\n getSecretKey(): string {\n return this.secretKey;\n }\n\n /**\n * Verify API key ownership using secret key\n */\n async verifyApiKey(publicKey: string): Promise<boolean> {\n try {\n // This would make a server-side API call to verify the key pair\n // For now, basic validation\n return publicKey.startsWith('pk_') && this.secretKey.startsWith('sk_');\n } catch (error) {\n if (this.debug) {\n console.error('[ChipiServerSDK] API key verification failed:', error);\n }\n return false;\n }\n }\n\n /**\n * Server-side wallet creation with enhanced security\n */\n async createServerWallet(params: {\n userId: string;\n encryptKey: string;\n }) {\n if (this.debug) {\n console.log('[ChipiServerSDK] Creating server wallet for user:', params.userId);\n }\n\n // Server-side wallet creation logic would go here\n // This could include additional security checks, logging, etc.\n \n return this.createWallet({\n encryptKey: params.encryptKey,\n bearerToken: '', // Server-side operations might not need bearer token\n });\n }\n\n /**\n * Server-side transaction execution with enhanced logging\n */\n async executeServerTransaction(params: {\n userId: string;\n encryptKey: string;\n wallet: any;\n calls: any[];\n reason?: string;\n }) {\n if (this.debug) {\n console.log('[ChipiServerSDK] Executing server transaction:', {\n userId: params.userId,\n callsCount: params.calls.length,\n reason: params.reason,\n });\n }\n\n // Additional server-side validation could go here\n \n return this.executeTransaction({\n encryptKey: params.encryptKey,\n wallet: params.wallet,\n calls: params.calls,\n bearerToken: '', // Server-side operations might not need bearer token\n });\n }\n\n /**\n * Server-side SKU purchase with enhanced tracking\n */\n async purchaseSkuForUser(params: {\n userId: string;\n skuId: string;\n walletAddress: string;\n chain: any;\n chainToken: any;\n mxnAmount: number;\n reference: string;\n transactionHash: string;\n metadata?: Record<string, any>;\n }) {\n if (this.debug) {\n console.log('[ChipiServerSDK] Processing SKU purchase:', {\n userId: params.userId,\n skuId: params.skuId,\n amount: params.mxnAmount,\n });\n }\n\n // Additional server-side logic for purchase tracking\n const result = await this.skus.purchaseSku({\n skuId: params.skuId,\n walletAddress: params.walletAddress,\n chain: params.chain,\n chainToken: params.chainToken,\n mxnAmount: params.mxnAmount,\n reference: params.reference,\n transactionHash: params.transactionHash,\n });\n\n // Could add server-side logging, analytics, etc.\n if (this.debug) {\n console.log('[ChipiServerSDK] SKU purchase completed:', result.transaction.id);\n }\n\n return result;\n }\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAOxB,MAAM,uBAAuB,SAAS;AAAA,EAI3C,YAAY,QAA2B;AACrC,UAAM,MAAM;AAEZ,QAAI,CAAC,OAAO,WAAW;AACrB,YAAM,IAAI,eAAe,mDAAmD;AAAA,IAC9E;AAEA,QAAI,CAAC,OAAO,UAAU,WAAW,KAAK,GAAG;AACvC,YAAM,IAAI,eAAe,+DAA+D;AAAA,IAC1F;AAEA,SAAK,YAAY,OAAO;AACxB,SAAK,QAAQ,OAAO,SAAS;AAE7B,QAAI,KAAK,OAAO;AACd,cAAQ,IAAI,8CAA8C;AAAA,IAC5D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAuB;AACrB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,aAAa,WAAqC;AACtD,QAAI;AAGF,aAAO,UAAU,WAAW,KAAK,KAAK,KAAK,UAAU,WAAW,KAAK;AAAA,IACvE,SAAS,OAAO;AACd,UAAI,KAAK,OAAO;AACd,gBAAQ,MAAM,iDAAiD,KAAK;AAAA,MACtE;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAmB,QAGtB;AACD,QAAI,KAAK,OAAO;AACd,cAAQ,IAAI,qDAAqD,OAAO,MAAM;AAAA,IAChF;AAKA,WAAO,KAAK,aAAa;AAAA,MACvB,YAAY,OAAO;AAAA,MACnB,aAAa;AAAA;AAAA,IACf,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,yBAAyB,QAM5B;AACD,QAAI,KAAK,OAAO;AACd,cAAQ,IAAI,kDAAkD;AAAA,QAC5D,QAAQ,OAAO;AAAA,QACf,YAAY,OAAO,MAAM;AAAA,QACzB,QAAQ,OAAO;AAAA,MACjB,CAAC;AAAA,IACH;AAIA,WAAO,KAAK,mBAAmB;AAAA,MAC7B,YAAY,OAAO;AAAA,MACnB,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,aAAa;AAAA;AAAA,IACf,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAmB,QAUtB;AACD,QAAI,KAAK,OAAO;AACd,cAAQ,IAAI,6CAA6C;AAAA,QACvD,QAAQ,OAAO;AAAA,QACf,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MACjB,CAAC;AAAA,IACH;AAGA,UAAM,SAAS,MAAM,KAAK,KAAK,YAAY;AAAA,MACzC,OAAO,OAAO;AAAA,MACd,eAAe,OAAO;AAAA,MACtB,OAAO,OAAO;AAAA,MACd,YAAY,OAAO;AAAA,MACnB,WAAW,OAAO;AAAA,MAClB,WAAW,OAAO;AAAA,MAClB,iBAAiB,OAAO;AAAA,IAC1B,CAAC;AAGD,QAAI,KAAK,OAAO;AACd,cAAQ,IAAI,4CAA4C,OAAO,YAAY,EAAE;AAAA,IAC/E;AAEA,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,34 @@
1
+ import { ChipiServerSDK } from "./ChipiServerSDK";
2
+ let serverInstance = null;
3
+ function createChipiServer(config) {
4
+ if (!config.apiPublicKey) {
5
+ throw new Error("Missing apiPublicKey in config");
6
+ }
7
+ if (!config.secretKey) {
8
+ throw new Error("Missing secretKey in config");
9
+ }
10
+ if (config.environment === "development") {
11
+ return new ChipiServerSDK(config);
12
+ }
13
+ if (!serverInstance) {
14
+ serverInstance = new ChipiServerSDK(config);
15
+ }
16
+ return serverInstance;
17
+ }
18
+ function getChipiServer() {
19
+ if (!serverInstance) {
20
+ throw new Error(
21
+ "Chipi server instance not found. Make sure to call createChipiServer() first."
22
+ );
23
+ }
24
+ return serverInstance;
25
+ }
26
+ function resetChipiServer() {
27
+ serverInstance = null;
28
+ }
29
+ export {
30
+ createChipiServer,
31
+ getChipiServer,
32
+ resetChipiServer
33
+ };
34
+ //# sourceMappingURL=createChipiServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/createChipiServer.ts"],"sourcesContent":["import { ChipiServerSDK } from './ChipiServerSDK';\nimport type { ChipiServerConfig } from './types';\n\n/**\n * Global server instance\n */\nlet serverInstance: ChipiServerSDK | null = null;\n\n/**\n * Create or get the Chipi server instance\n * This ensures a singleton pattern for server-side operations\n * Uses only the passed config (no environment variable fallbacks)\n */\nexport function createChipiServer(config: ChipiServerConfig): ChipiServerSDK {\n // Validate required fields\n if (!config.apiPublicKey) {\n throw new Error('Missing apiPublicKey in config');\n }\n \n if (!config.secretKey) {\n throw new Error('Missing secretKey in config');\n }\n\n // In development, always create a new instance to support hot reloading\n if (config.environment === 'development') {\n return new ChipiServerSDK(config);\n }\n \n // In production, use singleton pattern\n if (!serverInstance) {\n serverInstance = new ChipiServerSDK(config);\n }\n \n return serverInstance;\n}\n\n/**\n * Get the current server instance\n * Throws an error if no instance has been created\n */\nexport function getChipiServer(): ChipiServerSDK {\n if (!serverInstance) {\n throw new Error(\n 'Chipi server instance not found. Make sure to call createChipiServer() first.'\n );\n }\n \n return serverInstance;\n}\n\n/**\n * Reset the server instance (useful for testing)\n */\nexport function resetChipiServer(): void {\n serverInstance = null;\n}\n"],"mappings":"AAAA,SAAS,sBAAsB;AAM/B,IAAI,iBAAwC;AAOrC,SAAS,kBAAkB,QAA2C;AAE3E,MAAI,CAAC,OAAO,cAAc;AACxB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,MAAI,CAAC,OAAO,WAAW;AACrB,UAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AAGA,MAAI,OAAO,gBAAgB,eAAe;AACxC,WAAO,IAAI,eAAe,MAAM;AAAA,EAClC;AAGA,MAAI,CAAC,gBAAgB;AACnB,qBAAiB,IAAI,eAAe,MAAM;AAAA,EAC5C;AAEA,SAAO;AACT;AAMO,SAAS,iBAAiC;AAC/C,MAAI,CAAC,gBAAgB;AACnB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAKO,SAAS,mBAAyB;AACvC,mBAAiB;AACnB;","names":[]}
@@ -0,0 +1,9 @@
1
+ import { createChipiServer, getChipiServer, resetChipiServer } from "./createChipiServer";
2
+ import { ChipiServerSDK } from "./ChipiServerSDK";
3
+ export {
4
+ ChipiServerSDK,
5
+ createChipiServer,
6
+ getChipiServer,
7
+ resetChipiServer
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/index.ts"],"sourcesContent":["/**\n * Server-side utilities for @chipi-stack/nextjs/server\n * \n * Import server utilities from '@chipi-stack/nextjs/server' to avoid mixing client/server code.\n * \n * @example\n * ```ts\n * // In your API routes or Server Components\n * import { createChipiServer, getChipiServer } from '@chipi-stack/nextjs/server';\n * \n * const chipiServer = getChipiServer();\n * const wallets = await chipiServer.getWallets();\n * ```\n */\n\n// Server SDK management\nexport { createChipiServer, getChipiServer, resetChipiServer } from './createChipiServer';\n\n// Server SDK class\nexport { ChipiServerSDK } from './ChipiServerSDK';\n\n// Types\nexport type { ChipiServerConfig } from './types';\n"],"mappings":"AAgBA,SAAS,mBAAmB,gBAAgB,wBAAwB;AAGpE,SAAS,sBAAsB;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ export { useApprove, useCallAnyContract, useChipiContext, useCreateWallet, useExecuteTransaction, usePurchaseSku, useSkuTransactions, useSkus, useStakeVesuUsdc, useTransfer, useWallets, useWithdrawVesuUsdc } from '@chipi-stack/chipi-react';
@@ -0,0 +1,18 @@
1
+ import { ServerComponentsServerModuleTypes } from './components.server.mjs';
2
+ export { ChipiProvider as ChipiClientProvider } from './app-router/client/ChipiProvider.mjs';
3
+ export { useApprove, useCallAnyContract, useChipiContext, useCreateWallet, useExecuteTransaction, usePurchaseSku, useSkuTransactions, useSkus, useStakeVesuUsdc, useTransfer, useWallets, useWithdrawVesuUsdc } from '@chipi-stack/chipi-react';
4
+ export * from '@chipi-stack/types';
5
+ import './app-router/server/ChipiProvider.mjs';
6
+ import 'react/jsx-runtime';
7
+ import 'react';
8
+
9
+ /**
10
+ * Main exports for @chipi-stack/nextjs
11
+ *
12
+ * Client-side components and hooks are exported from this main entry point.
13
+ * Server-side utilities are exported from '@chipi-stack/nextjs/server'.
14
+ */
15
+
16
+ declare const ChipiProvider: ServerComponentsServerModuleTypes["ChipiProvider"];
17
+
18
+ export { ChipiProvider };
@@ -0,0 +1,58 @@
1
+ import * as _chipi_stack_types from '@chipi-stack/types';
2
+ import { ChipiSDK } from '@chipi-stack/backend';
3
+ import { ChipiServerConfig } from './types.mjs';
4
+
5
+ /**
6
+ * Server-side Chipi SDK with enhanced capabilities
7
+ * Includes secret key for server-side operations
8
+ */
9
+ declare class ChipiServerSDK extends ChipiSDK {
10
+ private secretKey;
11
+ private debug;
12
+ constructor(config: ChipiServerConfig);
13
+ /**
14
+ * Get the secret key for server-side operations
15
+ * WARNING: Never expose this to the client
16
+ */
17
+ getSecretKey(): string;
18
+ /**
19
+ * Verify API key ownership using secret key
20
+ */
21
+ verifyApiKey(publicKey: string): Promise<boolean>;
22
+ /**
23
+ * Server-side wallet creation with enhanced security
24
+ */
25
+ createServerWallet(params: {
26
+ userId: string;
27
+ encryptKey: string;
28
+ }): Promise<_chipi_stack_types.CreateWalletResponse>;
29
+ /**
30
+ * Server-side transaction execution with enhanced logging
31
+ */
32
+ executeServerTransaction(params: {
33
+ userId: string;
34
+ encryptKey: string;
35
+ wallet: any;
36
+ calls: any[];
37
+ reason?: string;
38
+ }): Promise<string>;
39
+ /**
40
+ * Server-side SKU purchase with enhanced tracking
41
+ */
42
+ purchaseSkuForUser(params: {
43
+ userId: string;
44
+ skuId: string;
45
+ walletAddress: string;
46
+ chain: any;
47
+ chainToken: any;
48
+ mxnAmount: number;
49
+ reference: string;
50
+ transactionHash: string;
51
+ metadata?: Record<string, any>;
52
+ }): Promise<{
53
+ sku: _chipi_stack_types.Sku;
54
+ transaction: _chipi_stack_types.SkuTransaction;
55
+ }>;
56
+ }
57
+
58
+ export { ChipiServerSDK };
@@ -0,0 +1,22 @@
1
+ import { ChipiServerSDK } from './ChipiServerSDK.mjs';
2
+ import { ChipiServerConfig } from './types.mjs';
3
+ import '@chipi-stack/types';
4
+ import '@chipi-stack/backend';
5
+
6
+ /**
7
+ * Create or get the Chipi server instance
8
+ * This ensures a singleton pattern for server-side operations
9
+ * Uses only the passed config (no environment variable fallbacks)
10
+ */
11
+ declare function createChipiServer(config: ChipiServerConfig): ChipiServerSDK;
12
+ /**
13
+ * Get the current server instance
14
+ * Throws an error if no instance has been created
15
+ */
16
+ declare function getChipiServer(): ChipiServerSDK;
17
+ /**
18
+ * Reset the server instance (useful for testing)
19
+ */
20
+ declare function resetChipiServer(): void;
21
+
22
+ export { createChipiServer, getChipiServer, resetChipiServer };
@@ -0,0 +1,5 @@
1
+ export { createChipiServer, getChipiServer, resetChipiServer } from './createChipiServer.mjs';
2
+ export { ChipiServerSDK } from './ChipiServerSDK.mjs';
3
+ export { ChipiServerConfig } from './types.mjs';
4
+ import '@chipi-stack/types';
5
+ import '@chipi-stack/backend';
@@ -0,0 +1,18 @@
1
+ import { ChipiSDKConfig } from '@chipi-stack/types';
2
+
3
+ /**
4
+ * Configuration for Chipi Server SDK
5
+ */
6
+ interface ChipiServerConfig extends ChipiSDKConfig {
7
+ /**
8
+ * Secret key for server-side operations
9
+ * Should be kept secure and never exposed to the client
10
+ */
11
+ secretKey: string;
12
+ /**
13
+ * Whether to enable debug logging
14
+ */
15
+ debug?: boolean;
16
+ }
17
+
18
+ export type { ChipiServerConfig };
package/package.json ADDED
@@ -0,0 +1,102 @@
1
+ {
2
+ "name": "@chipi-stack/nextjs",
3
+ "version": "0.1.0",
4
+ "description": "Chipi SDK for Next.js applications with server-side support",
5
+ "keywords": [
6
+ "chipi",
7
+ "nextjs",
8
+ "react",
9
+ "blockchain",
10
+ "starknet",
11
+ "server-side",
12
+ "ssr"
13
+ ],
14
+ "homepage": "https://github.com/chipi-pay/chipi-sdk",
15
+ "bugs": {
16
+ "url": "https://github.com/chipi-pay/chipi-sdk/issues"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/chipi-pay/chipi-sdk.git",
21
+ "directory": "sdks/nextjs"
22
+ },
23
+ "license": "MIT",
24
+ "author": "Chipi Pay",
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.mts",
28
+ "import": "./dist/esm/index.js",
29
+ "require": "./dist/cjs/index.js"
30
+ },
31
+ "./server": {
32
+ "types": "./dist/server/index.d.mts",
33
+ "import": "./dist/esm/server/index.js",
34
+ "require": "./dist/cjs/server/index.js"
35
+ },
36
+ "./client": {
37
+ "types": "./dist/client/index.d.mts",
38
+ "import": "./dist/esm/client/index.js",
39
+ "require": "./dist/cjs/client/index.js"
40
+ },
41
+ "./hooks": {
42
+ "types": "./dist/hooks.d.mts",
43
+ "import": "./dist/esm/hooks.js",
44
+ "require": "./dist/cjs/hooks.js"
45
+ },
46
+ "./package.json": "./package.json"
47
+ },
48
+ "imports": {
49
+ "#components": {
50
+ "types": "./dist/components.server.d.mts",
51
+ "import": "./dist/esm/components.server.js",
52
+ "require": "./dist/cjs/components.server.js"
53
+ }
54
+ },
55
+ "main": "./dist/cjs/index.js",
56
+ "module": "./dist/esm/index.js",
57
+ "types": "./dist/index.d.mts",
58
+ "files": [
59
+ "dist"
60
+ ],
61
+ "scripts": {
62
+ "build": "tsup",
63
+ "clean": "rimraf ./dist",
64
+ "dev": "tsup --watch",
65
+ "dev:publish": "pnpm dev --env.publish",
66
+ "format": "prettier --write src/**/*.{ts,tsx}",
67
+ "format:check": "prettier --check src/**/*.{ts,tsx}",
68
+ "lint": "eslint src",
69
+ "typecheck": "tsc --noEmit"
70
+ },
71
+ "devDependencies": {
72
+ "@types/node": "^22.15.15",
73
+ "@types/react": "^18.3.0",
74
+ "@types/react-dom": "^18.3.0",
75
+ "eslint": "^9.33.0",
76
+ "next": "^14.0.0",
77
+ "prettier": "^3.0.0",
78
+ "react": "^18.3.0",
79
+ "react-dom": "^18.3.0",
80
+ "rimraf": "^5.0.0",
81
+ "tsup": "^8.3.6",
82
+ "typescript": "^5.7.3"
83
+ },
84
+ "dependencies": {
85
+ "@chipi-stack/backend": "workspace:^",
86
+ "@chipi-stack/chipi-react": "workspace:^",
87
+ "@chipi-stack/shared": "workspace:^",
88
+ "@chipi-stack/types": "workspace:^",
89
+ "@tanstack/react-query": "^5.85.0"
90
+ },
91
+ "peerDependencies": {
92
+ "next": ">=13.0.0",
93
+ "react": ">=16.8.0",
94
+ "react-dom": ">=16.8.0"
95
+ },
96
+ "engines": {
97
+ "node": ">=18.17.0"
98
+ },
99
+ "publishConfig": {
100
+ "access": "public"
101
+ }
102
+ }