@chipi-stack/nextjs 13.12.0 → 14.0.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/LICENSE +21 -0
- package/dist/cjs/ChipiClientProvider.js.map +1 -1
- package/dist/cjs/app-router/client/ChipiProvider.js +8 -9
- package/dist/cjs/app-router/client/ChipiProvider.js.map +1 -1
- package/dist/cjs/app-router/server/ChipiProvider.js.map +1 -1
- package/dist/cjs/client/ChipiProvider.d.ts +1 -1
- package/dist/cjs/client/ChipiProvider.js +1 -4
- package/dist/cjs/client/ChipiProvider.js.map +1 -1
- package/dist/cjs/client-boundary/ChipiProvider.js +2 -13
- package/dist/cjs/client-boundary/ChipiProvider.js.map +1 -1
- package/dist/cjs/components.client.js.map +1 -1
- package/dist/cjs/components.server.js.map +1 -1
- package/dist/cjs/hooks.d.ts +1 -1
- package/dist/cjs/hooks.js +4 -2
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/server/createChipiServer.js +16 -0
- package/dist/cjs/server/createChipiServer.js.map +1 -1
- package/dist/cjs/server/index.js.map +1 -1
- package/dist/cjs/test/setup.js.map +1 -1
- package/dist/client/ChipiProvider.d.mts +1 -1
- package/dist/esm/ChipiClientProvider.js.map +1 -1
- package/dist/esm/app-router/client/ChipiProvider.js +8 -9
- package/dist/esm/app-router/client/ChipiProvider.js.map +1 -1
- package/dist/esm/app-router/server/ChipiProvider.js.map +1 -1
- package/dist/esm/client/ChipiProvider.js +1 -4
- package/dist/esm/client/ChipiProvider.js.map +1 -1
- package/dist/esm/client-boundary/ChipiProvider.js +2 -13
- package/dist/esm/client-boundary/ChipiProvider.js.map +1 -1
- package/dist/esm/components.client.js.map +1 -1
- package/dist/esm/components.server.js.map +1 -1
- package/dist/esm/hooks.js +3 -1
- package/dist/esm/hooks.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server/createChipiServer.js +16 -0
- package/dist/esm/server/createChipiServer.js.map +1 -1
- package/dist/esm/server/index.js +1 -5
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/test/setup.js.map +1 -1
- package/dist/hooks.d.mts +1 -1
- package/dist/index.d.mts +1 -1
- package/package.json +6 -6
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2026 Chipi Pay
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ChipiClientProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider } from \"@chipi-stack/chipi-react\";\nimport type { ChipiSDKConfig } from \"@chipi-stack/types\";\n\ninterface ChipiClientProviderProps {\n children: React.ReactNode;\n apiPublicKey: string;\n alphaUrl?: string
|
|
1
|
+
{"version":3,"sources":["../../src/ChipiClientProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider } from \"@chipi-stack/chipi-react\";\nimport type { ChipiSDKConfig } from \"@chipi-stack/types\";\n\ninterface ChipiClientProviderProps {\n children: React.ReactNode;\n apiPublicKey: string;\n alphaUrl?: string;\n}\n\n/**\n * Pure client component that handles all React hook imports\n * This component is marked with 'use client' to avoid server-side issues\n */\nexport function ChipiClientProvider({\n children,\n apiPublicKey,\n alphaUrl,\n}: ChipiClientProviderProps) {\n // Create config\n const config = React.useMemo(\n (): ChipiSDKConfig => ({\n apiPublicKey,\n alphaUrl,\n }),\n [apiPublicKey, alphaUrl]\n );\n\n return <ChipiProvider config={config}>{children}</ChipiProvider>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BS;AA5BT,mBAAkB;AAClB,yBAA8B;AAavB,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,GAA6B;AAE3B,QAAM,SAAS,aAAAA,QAAM;AAAA,IACnB,OAAuB;AAAA,MACrB;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,cAAc,QAAQ;AAAA,EACzB;AAEA,SAAO,4CAAC,oCAAc,QAAiB,UAAS;AAClD;","names":["React"]}
|
|
@@ -55,16 +55,15 @@ const createDefaultQueryClient = () => new import_react_query.QueryClient({
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
|
-
function ChipiProvider({
|
|
59
|
-
children,
|
|
60
|
-
apiPublicKey,
|
|
61
|
-
alphaUrl
|
|
62
|
-
}) {
|
|
58
|
+
function ChipiProvider({ children, apiPublicKey, alphaUrl }) {
|
|
63
59
|
const queryClient = import_react.default.useMemo(() => createDefaultQueryClient(), []);
|
|
64
|
-
const config = import_react.default.useMemo(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
const config = import_react.default.useMemo(
|
|
61
|
+
() => ({
|
|
62
|
+
apiPublicKey,
|
|
63
|
+
alphaUrl
|
|
64
|
+
}),
|
|
65
|
+
[apiPublicKey, alphaUrl]
|
|
66
|
+
);
|
|
68
67
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_query.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_chipi_react.ChipiProvider, { config, children }) });
|
|
69
68
|
}
|
|
70
69
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/app-router/client/ChipiProvider.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../src/app-router/client/ChipiProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { ChipiProvider as ReactChipiProvider } from \"@chipi-stack/chipi-react\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n apiPublicKey: string;\n alphaUrl?: string;\n}\n\n// Default QueryClient configuration for Next.js\nconst createDefaultQueryClient = () =>\n new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 60 * 1000, // 1 minute\n gcTime: 10 * 60 * 1000, // 10 minutes (formerly cacheTime)\n retry: (failureCount, error: any) => {\n // Don't retry on 4xx errors\n if (error?.status >= 400 && error?.status < 500) {\n return false;\n }\n return failureCount < 3;\n },\n },\n mutations: {\n retry: false,\n },\n },\n });\n\n/**\n * Client-side Chipi Provider for Next.js App Router\n *\n * This is the client component version that handles client-side functionality.\n * It wraps children with QueryClient and the React Chipi provider.\n *\n * Since this component is marked with 'use client', it's safe to import\n * from @chipi-stack/chipi-react directly as it will never run on the server.\n */\nexport function ChipiProvider({ children, apiPublicKey, alphaUrl }: ChipiProviderProps) {\n // Create QueryClient\n const queryClient = React.useMemo(() => createDefaultQueryClient(), []);\n\n // Create config\n const config = React.useMemo(\n () => ({\n apiPublicKey,\n alphaUrl,\n }),\n [apiPublicKey, alphaUrl]\n );\n\n return (\n <QueryClientProvider client={queryClient}>\n <ReactChipiProvider config={config}>{children}</ReactChipiProvider>\n </QueryClientProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAyDM;AAvDN,mBAAkB;AAClB,yBAAiD;AACjD,yBAAoD;AASpD,MAAM,2BAA2B,MAC/B,IAAI,+BAAY;AAAA,EACd,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,WAAW,KAAK;AAAA;AAAA,MAChB,QAAQ,KAAK,KAAK;AAAA;AAAA,MAClB,OAAO,CAAC,cAAc,UAAe;AAEnC,YAAI,OAAO,UAAU,OAAO,OAAO,SAAS,KAAK;AAC/C,iBAAO;AAAA,QACT;AACA,eAAO,eAAe;AAAA,MACxB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAWI,SAAS,cAAc,EAAE,UAAU,cAAc,SAAS,GAAuB;AAEtF,QAAM,cAAc,aAAAA,QAAM,QAAQ,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAGtE,QAAM,SAAS,aAAAA,QAAM;AAAA,IACnB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,cAAc,QAAQ;AAAA,EACzB;AAEA,SACE,4CAAC,0CAAoB,QAAQ,aAC3B,sDAAC,mBAAAC,eAAA,EAAmB,QAAiB,UAAS,GAChD;AAEJ;","names":["React","ReactChipiProvider"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/app-router/server/ChipiProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { createChipiServer } from \"../../server/createChipiServer\";\nimport { ChipiProvider as ChipiClientProvider } from \"../client/ChipiProvider\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Server-side Chipi Provider for Next.js App Router\n *\n * This is the server component version that runs during SSR.\n * It initializes the server SDK and passes configuration to the client provider.\n */\nexport async function ChipiProvider({ children }: ChipiProviderProps) {\n // Read environment variables on the server\n const apiPublicKey = process.env.NEXT_PUBLIC_CHIPI_API_KEY;\n const apiSecretKey = process.env.CHIPI_SECRET_KEY;\n const alphaUrl = process.env.NEXT_PUBLIC_ALPHA_URL
|
|
1
|
+
{"version":3,"sources":["../../../../src/app-router/server/ChipiProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { createChipiServer } from \"../../server/createChipiServer\";\nimport { ChipiProvider as ChipiClientProvider } from \"../client/ChipiProvider\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Server-side Chipi Provider for Next.js App Router\n *\n * This is the server component version that runs during SSR.\n * It initializes the server SDK and passes configuration to the client provider.\n */\nexport async function ChipiProvider({ children }: ChipiProviderProps) {\n // Read environment variables on the server\n const apiPublicKey = process.env.NEXT_PUBLIC_CHIPI_API_KEY;\n const apiSecretKey = process.env.CHIPI_SECRET_KEY;\n const alphaUrl = process.env.NEXT_PUBLIC_ALPHA_URL;\n\n // Validate required environment variables\n if (!apiPublicKey) {\n throw new Error(\n \" NEXT_PUBLIC_CHIPI_API_KEY environment variable. Please add it to your .env file.\"\n );\n }\n\n if (!apiSecretKey) {\n throw new Error(\n \"Missing CHIPI_SECRET_KEY environment variable. Server-side features will not work properly.\"\n );\n }\n\n // Initialize server SDK (this runs on server only)\n createChipiServer({\n apiSecretKey,\n apiPublicKey,\n alphaUrl,\n // debug: environment === \"development\",\n });\n\n // Return the client provider which will hydrate on the client\n // Note: This works because ChipiClientProvider is marked with 'use client'\n return (\n <ChipiClientProvider apiPublicKey={apiPublicKey} alphaUrl={alphaUrl}>\n {children}\n </ChipiClientProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4CI;AA3CJ,+BAAkC;AAClC,2BAAqD;AAYrD,eAAsB,cAAc,EAAE,SAAS,GAAuB;AAEpE,QAAM,eAAe,QAAQ,IAAI;AACjC,QAAM,eAAe,QAAQ,IAAI;AACjC,QAAM,WAAW,QAAQ,IAAI;AAG7B,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAGA,kDAAkB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,CAAC;AAID,SACE,4CAAC,qBAAAA,eAAA,EAAoB,cAA4B,UAC9C,UACH;AAEJ;","names":["ChipiClientProvider"]}
|
|
@@ -39,6 +39,6 @@ interface ChipiProviderProps {
|
|
|
39
39
|
* }
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
declare function ChipiProvider({ children, config: userConfig
|
|
42
|
+
declare function ChipiProvider({ children, config: userConfig }: ChipiProviderProps): react_jsx_runtime.JSX.Element;
|
|
43
43
|
|
|
44
44
|
export { ChipiProvider, type ChipiProviderProps };
|
|
@@ -35,10 +35,7 @@ module.exports = __toCommonJS(ChipiProvider_exports);
|
|
|
35
35
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
36
|
var import_react = __toESM(require("react"));
|
|
37
37
|
var import_chipi_react = require("@chipi-stack/chipi-react");
|
|
38
|
-
function ChipiProvider({
|
|
39
|
-
children,
|
|
40
|
-
config: userConfig
|
|
41
|
-
}) {
|
|
38
|
+
function ChipiProvider({ children, config: userConfig }) {
|
|
42
39
|
const config = import_react.default.useMemo(() => {
|
|
43
40
|
const envConfig = {
|
|
44
41
|
apiPublicKey: process.env.NEXT_PUBLIC_CHIPI_API_KEY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/client/ChipiProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider as BaseChipiProvider } from \"@chipi-stack/chipi-react\";\nimport type { ChipiSDKConfig } from \"@chipi-stack/types\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n /**\n * Configuration for the Chipi SDK\n */\n config?: Partial<ChipiSDKConfig>;\n}\n\n/**\n * Client-side Chipi Provider for Next.js applications\n *\n * This provider wraps the base ChipiProvider and provides Next.js-specific\n * optimizations like automatic environment variable configuration.\n *\n * Note: For most use cases, use the main ChipiProvider from '@chipi-stack/nextjs'\n * instead of this client-only provider.\n *\n * @example\n * ```tsx\n * // Advanced usage - client-only provider\n * 'use client';\n *\n * import { ChipiProvider } from '@chipi-stack/nextjs/client';\n *\n * export function ClientProviders({ children }: { children: React.ReactNode }) {\n * return (\n * <ChipiProvider\n * config={{\n * apiPublicKey: process.env.NEXT_PUBLIC_CHIPI_API_KEY!,\n * environment: 'production'\n * }}\n * >\n * {children}\n * </ChipiProvider>\n * );\n * }\n * ```\n */\nexport function ChipiProvider({
|
|
1
|
+
{"version":3,"sources":["../../../src/client/ChipiProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider as BaseChipiProvider } from \"@chipi-stack/chipi-react\";\nimport type { ChipiSDKConfig } from \"@chipi-stack/types\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n /**\n * Configuration for the Chipi SDK\n */\n config?: Partial<ChipiSDKConfig>;\n}\n\n/**\n * Client-side Chipi Provider for Next.js applications\n *\n * This provider wraps the base ChipiProvider and provides Next.js-specific\n * optimizations like automatic environment variable configuration.\n *\n * Note: For most use cases, use the main ChipiProvider from '@chipi-stack/nextjs'\n * instead of this client-only provider.\n *\n * @example\n * ```tsx\n * // Advanced usage - client-only provider\n * 'use client';\n *\n * import { ChipiProvider } from '@chipi-stack/nextjs/client';\n *\n * export function ClientProviders({ children }: { children: React.ReactNode }) {\n * return (\n * <ChipiProvider\n * config={{\n * apiPublicKey: process.env.NEXT_PUBLIC_CHIPI_API_KEY!,\n * environment: 'production'\n * }}\n * >\n * {children}\n * </ChipiProvider>\n * );\n * }\n * ```\n */\nexport function ChipiProvider({ children, config: userConfig }: ChipiProviderProps) {\n // Automatically get configuration from environment variables\n // Siento que esta madre no se usa\n const config = React.useMemo(() => {\n const envConfig: ChipiSDKConfig = {\n apiPublicKey: process.env.NEXT_PUBLIC_CHIPI_API_KEY!,\n alphaUrl: process.env.NEXT_PUBLIC_ALPHA_URL,\n };\n\n // Merge with user-provided config\n return { ...envConfig, ...userConfig };\n }, [userConfig]);\n // Validate required configuration\n if (!config.apiPublicKey) {\n throw new Error(\n \"Missing NEXT_PUBLIC_CHIPI_API_KEY environment variable. Please add it to your .env.local file.\"\n );\n }\n\n return <BaseChipiProvider config={config}>{children}</BaseChipiProvider>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA+DS;AA7DT,mBAAkB;AAClB,yBAAmD;AAyC5C,SAAS,cAAc,EAAE,UAAU,QAAQ,WAAW,GAAuB;AAGlF,QAAM,SAAS,aAAAA,QAAM,QAAQ,MAAM;AACjC,UAAM,YAA4B;AAAA,MAChC,cAAc,QAAQ,IAAI;AAAA,MAC1B,UAAU,QAAQ,IAAI;AAAA,IACxB;AAGA,WAAO,EAAE,GAAG,WAAW,GAAG,WAAW;AAAA,EACvC,GAAG,CAAC,UAAU,CAAC;AAEf,MAAI,CAAC,OAAO,cAAc;AACxB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,4CAAC,mBAAAC,eAAA,EAAkB,QAAiB,UAAS;AACtD;","names":["React","BaseChipiProvider"]}
|
|
@@ -24,25 +24,14 @@ __export(ChipiProvider_exports, {
|
|
|
24
24
|
module.exports = __toCommonJS(ChipiProvider_exports);
|
|
25
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
26
|
var import_ChipiProvider = require("../app-router/client/ChipiProvider");
|
|
27
|
-
function ChipiProvider({
|
|
28
|
-
children,
|
|
29
|
-
apiPublicKey,
|
|
30
|
-
alphaUrl
|
|
31
|
-
}) {
|
|
27
|
+
function ChipiProvider({ children, apiPublicKey, alphaUrl }) {
|
|
32
28
|
const finalApiPublicKey = apiPublicKey || process.env.NEXT_PUBLIC_CHIPI_API_KEY;
|
|
33
29
|
if (!finalApiPublicKey) {
|
|
34
30
|
throw new Error(
|
|
35
31
|
"Missing NEXT_PUBLIC_CHIPI_API_KEY environment variable or apiPublicKey prop. Please provide one."
|
|
36
32
|
);
|
|
37
33
|
}
|
|
38
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
39
|
-
import_ChipiProvider.ChipiProvider,
|
|
40
|
-
{
|
|
41
|
-
apiPublicKey: finalApiPublicKey,
|
|
42
|
-
alphaUrl,
|
|
43
|
-
children
|
|
44
|
-
}
|
|
45
|
-
);
|
|
34
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ChipiProvider.ChipiProvider, { apiPublicKey: finalApiPublicKey, alphaUrl, children });
|
|
46
35
|
}
|
|
47
36
|
// Annotate the CommonJS export names for ESM import in node:
|
|
48
37
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/client-boundary/ChipiProvider.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../src/client-boundary/ChipiProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider as ClientChipiProvider } from \"../app-router/client/ChipiProvider\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n apiPublicKey?: string;\n alphaUrl?: string;\n}\n\n/**\n * This is a compatibility layer that provides a client-only ChipiProvider.\n * This is used when the conditional export resolves to the client boundary.\n */\nexport function ChipiProvider({ children, apiPublicKey, alphaUrl }: ChipiProviderProps) {\n // For client-only usage, allow apiPublicKey to be passed as prop\n // or read from environment\n const finalApiPublicKey = apiPublicKey || process.env.NEXT_PUBLIC_CHIPI_API_KEY;\n\n if (!finalApiPublicKey) {\n throw new Error(\n \"Missing NEXT_PUBLIC_CHIPI_API_KEY environment variable or apiPublicKey prop. Please provide one.\"\n );\n }\n\n return (\n <ClientChipiProvider apiPublicKey={finalApiPublicKey} alphaUrl={alphaUrl}>\n {children}\n </ClientChipiProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BI;AAxBJ,2BAAqD;AAY9C,SAAS,cAAc,EAAE,UAAU,cAAc,SAAS,GAAuB;AAGtF,QAAM,oBAAoB,gBAAgB,QAAQ,IAAI;AAEtD,MAAI,CAAC,mBAAmB;AACtB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SACE,4CAAC,qBAAAA,eAAA,EAAoB,cAAc,mBAAmB,UACnD,UACH;AAEJ;","names":["ClientChipiProvider"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components.client.ts"],"sourcesContent":["import { ChipiProvider } from
|
|
1
|
+
{"version":3,"sources":["../../src/components.client.ts"],"sourcesContent":["import { ChipiProvider } from \"./app-router/client/ChipiProvider\";\n\nexport { ChipiProvider };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components.server.ts"],"sourcesContent":["import { ChipiProvider } from
|
|
1
|
+
{"version":3,"sources":["../../src/components.server.ts"],"sourcesContent":["import { ChipiProvider } from \"./app-router/server/ChipiProvider\";\n\nexport { ChipiProvider };\n\nexport type ServerComponentsServerModuleTypes = {\n ChipiProvider: typeof ChipiProvider;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;","names":[]}
|
package/dist/cjs/hooks.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiContext, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer } from '@chipi-stack/chipi-react';
|
|
1
|
+
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiContext, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer, useUpdateWalletEncryption } from '@chipi-stack/chipi-react';
|
package/dist/cjs/hooks.js
CHANGED
|
@@ -38,7 +38,8 @@ __export(hooks_exports, {
|
|
|
38
38
|
usePurchaseSku: () => import_chipi_react.usePurchaseSku,
|
|
39
39
|
useRecordSendTransaction: () => import_chipi_react.useRecordSendTransaction,
|
|
40
40
|
useRevokeSessionKey: () => import_chipi_react.useRevokeSessionKey,
|
|
41
|
-
useTransfer: () => import_chipi_react.useTransfer
|
|
41
|
+
useTransfer: () => import_chipi_react.useTransfer,
|
|
42
|
+
useUpdateWalletEncryption: () => import_chipi_react.useUpdateWalletEncryption
|
|
42
43
|
});
|
|
43
44
|
module.exports = __toCommonJS(hooks_exports);
|
|
44
45
|
var import_chipi_react = require("@chipi-stack/chipi-react");
|
|
@@ -63,6 +64,7 @@ var import_chipi_react = require("@chipi-stack/chipi-react");
|
|
|
63
64
|
usePurchaseSku,
|
|
64
65
|
useRecordSendTransaction,
|
|
65
66
|
useRevokeSessionKey,
|
|
66
|
-
useTransfer
|
|
67
|
+
useTransfer,
|
|
68
|
+
useUpdateWalletEncryption
|
|
67
69
|
});
|
|
68
70
|
//# sourceMappingURL=hooks.js.map
|
package/dist/cjs/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks.ts"],"sourcesContent":["\"use client\";\n\n// Client-side hooks for Next.js Chipi SDK\n// These are re-exported from @chipi-stack/chipi-react for convenience\n// This file is marked as 'use client' to ensure it only runs on the client\n\nexport {\n // Context hook\n useChipiContext,\n\n // Wallet hooks\n useCreateWallet,\n useGetWallet,\n useChipiWallet,\n useMigrateWalletToPasskey,\n\n // Transaction hooks\n useApprove,\n useTransfer,\n useGetTransactionList,\n\n // SKU hooks\n useGetSkuList,\n useGetSku,\n usePurchaseSku,\n useCallAnyContract,\n\n // Record send transaction hook\n useRecordSendTransaction,\n\n // Token balance hook\n useGetTokenBalance,\n\n // Session hooks (CHIPI wallets only)\n useCreateSessionKey,\n useAddSessionKeyToContract,\n useRevokeSessionKey,\n useGetSessionData,\n useExecuteWithSession,\n\n // Unified session hook\n useChipiSession,\n} from \"@chipi-stack/chipi-react\";\n\n// Re-export hook types for convenience\nexport type {\n UseChipiWalletConfig,\n UseChipiWalletReturn,\n ChipiWalletData,\n UseChipiSessionConfig,\n UseChipiSessionReturn,\n SessionState,\n SessionWallet,\n} from \"@chipi-stack/chipi-react\";\n\n// Note: Passkey hooks (usePasskeySetup, usePasskeyAuth, usePasskeyStatus)\n// are available by importing from \"@chipi-stack/chipi-passkey/hooks\" directly\n// We don't re-export them here to avoid module resolution issues.\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks.ts"],"sourcesContent":["\"use client\";\n\n// Client-side hooks for Next.js Chipi SDK\n// These are re-exported from @chipi-stack/chipi-react for convenience\n// This file is marked as 'use client' to ensure it only runs on the client\n\nexport {\n // Context hook\n useChipiContext,\n\n // Wallet hooks\n useCreateWallet,\n useGetWallet,\n useChipiWallet,\n useMigrateWalletToPasskey,\n useUpdateWalletEncryption,\n\n // Transaction hooks\n useApprove,\n useTransfer,\n useGetTransactionList,\n\n // SKU hooks\n useGetSkuList,\n useGetSku,\n usePurchaseSku,\n useCallAnyContract,\n\n // Record send transaction hook\n useRecordSendTransaction,\n\n // Token balance hook\n useGetTokenBalance,\n\n // Session hooks (CHIPI wallets only)\n useCreateSessionKey,\n useAddSessionKeyToContract,\n useRevokeSessionKey,\n useGetSessionData,\n useExecuteWithSession,\n\n // Unified session hook\n useChipiSession,\n} from \"@chipi-stack/chipi-react\";\n\n// Re-export hook types for convenience\nexport type {\n UseChipiWalletConfig,\n UseChipiWalletReturn,\n ChipiWalletData,\n UseChipiSessionConfig,\n UseChipiSessionReturn,\n SessionState,\n SessionWallet,\n} from \"@chipi-stack/chipi-react\";\n\n// Note: Passkey hooks (usePasskeySetup, usePasskeyAuth, usePasskeyStatus)\n// are available by importing from \"@chipi-stack/chipi-passkey/hooks\" directly\n// We don't re-export them here to avoid module resolution issues.\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAqCO;","names":[]}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ServerComponentsServerModuleTypes } from './components.server.js';
|
|
2
2
|
export { ChipiProvider as ChipiClientProvider } from './app-router/client/ChipiProvider.js';
|
|
3
|
-
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiContext, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer } from '@chipi-stack/chipi-react';
|
|
3
|
+
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiContext, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer, useUpdateWalletEncryption } from '@chipi-stack/chipi-react';
|
|
4
4
|
export { CreateWalletPasskeyResult, PasskeyStatus, UsePasskeyAuthResult, UsePasskeySetupResult, UsePasskeyStatusResult, WalletCredentialMetadata, createWalletPasskey, getStoredCredential, getWalletEncryptKey, hasWalletPasskey, isWebAuthnPRFSupported, isWebAuthnSupported, removeStoredCredential, verifyWalletPasskey } from '@chipi-stack/chipi-passkey';
|
|
5
5
|
export * from '@chipi-stack/types';
|
|
6
6
|
export { Chain, ChainToken } from '@chipi-stack/types';
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["/**\n * Main exports for @chipi-stack/nextjs\n *\n * Client-side components and hooks are exported from this main entry point.\n * Server-side utilities are exported from '@chipi-stack/nextjs/server'.\n */\n\n/**\n * Conditionally export ChipiProvider that exhibits different behavior\n * when used in /app vs /pages router.\n * We define the runtime and type values explicitly,\n * because TS will not recognize the subpath import unless the HOST\n * application sets moduleResolution to 'NodeNext'.\n */\n// @ts-
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["/**\n * Main exports for @chipi-stack/nextjs\n *\n * Client-side components and hooks are exported from this main entry point.\n * Server-side utilities are exported from '@chipi-stack/nextjs/server'.\n */\n\n/**\n * Conditionally export ChipiProvider that exhibits different behavior\n * when used in /app vs /pages router.\n * We define the runtime and type values explicitly,\n * because TS will not recognize the subpath import unless the HOST\n * application sets moduleResolution to 'NodeNext'.\n */\n// @ts-expect-error — subpath import not resolved without NodeNext moduleResolution\nimport * as ComponentsModule from \"#components\";\n\nimport type { ServerComponentsServerModuleTypes } from \"./components.server\";\n\nexport const ChipiProvider =\n ComponentsModule.ChipiProvider as ServerComponentsServerModuleTypes[\"ChipiProvider\"];\n\n// Individual providers (for advanced use cases)\nexport { ChipiProvider as ChipiClientProvider } from \"./app-router/client/ChipiProvider\";\n\n// Client-side hooks - these are safe to import because they're marked 'use client'\nexport * from \"./hooks\";\n\n// Re-export passkey utilities (non-hook exports only)\nexport {\n createWalletPasskey,\n getWalletEncryptKey,\n hasWalletPasskey,\n isWebAuthnSupported,\n isWebAuthnPRFSupported,\n verifyWalletPasskey,\n getStoredCredential,\n removeStoredCredential,\n type CreateWalletPasskeyResult,\n type WalletCredentialMetadata,\n type UsePasskeySetupResult,\n type UsePasskeyAuthResult,\n type UsePasskeyStatusResult,\n type PasskeyStatus,\n} from \"@chipi-stack/chipi-passkey\";\n\n// Re-export types\nexport type * from \"@chipi-stack/types\";\n\n// Re-export enums and constants (these need to be exported as values, not just types)\nexport { Chain, ChainToken } from \"@chipi-stack/types\";\n\nexport * from \"./server\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA,uBAAkC;AAQlC,2BAAqD;AAGrD,0BAAc,oBA1Bd;AA6BA,2BAeO;AAMP,mBAAkC;AAElC,0BAAc,qBApDd;AAmBO,MAAM,gBACX,iBAAiB;","names":[]}
|
|
@@ -25,6 +25,15 @@ __export(createChipiServer_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(createChipiServer_exports);
|
|
26
26
|
var import_backend = require("@chipi-stack/backend");
|
|
27
27
|
let serverInstance = null;
|
|
28
|
+
let serverConfigKey = null;
|
|
29
|
+
function configToKey(config) {
|
|
30
|
+
return JSON.stringify({
|
|
31
|
+
apiPublicKey: config.apiPublicKey,
|
|
32
|
+
apiSecretKey: config.apiSecretKey,
|
|
33
|
+
alphaUrl: config.alphaUrl ?? "",
|
|
34
|
+
nodeUrl: config.nodeUrl ?? ""
|
|
35
|
+
});
|
|
36
|
+
}
|
|
28
37
|
function createChipiServer(config) {
|
|
29
38
|
if (!config.apiPublicKey) {
|
|
30
39
|
throw new Error("Missing apiPublicKey in config");
|
|
@@ -32,8 +41,14 @@ function createChipiServer(config) {
|
|
|
32
41
|
if (!config.apiSecretKey) {
|
|
33
42
|
throw new Error("Missing apiSecretKey in config");
|
|
34
43
|
}
|
|
44
|
+
const key = configToKey(config);
|
|
35
45
|
if (!serverInstance) {
|
|
36
46
|
serverInstance = new import_backend.ChipiServerSDK(config);
|
|
47
|
+
serverConfigKey = key;
|
|
48
|
+
} else if (serverConfigKey !== key) {
|
|
49
|
+
throw new Error(
|
|
50
|
+
"createChipiServer() was called with a different config than the existing singleton. Call resetChipiServer() first if you need to reconfigure."
|
|
51
|
+
);
|
|
37
52
|
}
|
|
38
53
|
return serverInstance;
|
|
39
54
|
}
|
|
@@ -47,6 +62,7 @@ function getChipiServer() {
|
|
|
47
62
|
}
|
|
48
63
|
function resetChipiServer() {
|
|
49
64
|
serverInstance = null;
|
|
65
|
+
serverConfigKey = null;
|
|
50
66
|
}
|
|
51
67
|
// Annotate the CommonJS export names for ESM import in node:
|
|
52
68
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/createChipiServer.ts"],"sourcesContent":["import { ChipiServerSDK, ChipiServerSDKConfig } from \"@chipi-stack/backend\";\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(
|
|
1
|
+
{"version":3,"sources":["../../../src/server/createChipiServer.ts"],"sourcesContent":["import { ChipiServerSDK, ChipiServerSDKConfig } from \"@chipi-stack/backend\";\n\n/**\n * Global server instance\n */\nlet serverInstance: ChipiServerSDK | null = null;\nlet serverConfigKey: string | null = null;\n\n/**\n * Derive a stable key from config for conflict detection\n */\nfunction configToKey(config: ChipiServerSDKConfig): string {\n return JSON.stringify({\n apiPublicKey: config.apiPublicKey,\n apiSecretKey: config.apiSecretKey,\n alphaUrl: config.alphaUrl ?? \"\",\n nodeUrl: config.nodeUrl ?? \"\",\n });\n}\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: ChipiServerSDKConfig): ChipiServerSDK {\n // Validate required fields\n if (!config.apiPublicKey) {\n throw new Error(\"Missing apiPublicKey in config\");\n }\n\n if (!config.apiSecretKey) {\n throw new Error(\"Missing apiSecretKey in config\");\n }\n\n const key = configToKey(config);\n\n // In production, use singleton pattern\n if (!serverInstance) {\n serverInstance = new ChipiServerSDK(config);\n serverConfigKey = key;\n } else if (serverConfigKey !== key) {\n throw new Error(\n \"createChipiServer() was called with a different config than the existing singleton. \" +\n \"Call resetChipiServer() first if you need to reconfigure.\"\n );\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 serverConfigKey = null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAqD;AAKrD,IAAI,iBAAwC;AAC5C,IAAI,kBAAiC;AAKrC,SAAS,YAAY,QAAsC;AACzD,SAAO,KAAK,UAAU;AAAA,IACpB,cAAc,OAAO;AAAA,IACrB,cAAc,OAAO;AAAA,IACrB,UAAU,OAAO,YAAY;AAAA,IAC7B,SAAS,OAAO,WAAW;AAAA,EAC7B,CAAC;AACH;AAOO,SAAS,kBAAkB,QAA8C;AAE9E,MAAI,CAAC,OAAO,cAAc;AACxB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,MAAI,CAAC,OAAO,cAAc;AACxB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,QAAM,MAAM,YAAY,MAAM;AAG9B,MAAI,CAAC,gBAAgB;AACnB,qBAAiB,IAAI,8BAAe,MAAM;AAC1C,sBAAkB;AAAA,EACpB,WAAW,oBAAoB,KAAK;AAClC,UAAM,IAAI;AAAA,MACR;AAAA,IAEF;AAAA,EACF;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;AACjB,oBAAkB;AACpB;","names":[]}
|
|
@@ -1 +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 {
|
|
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"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,+BAAoE;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/test/setup.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../src/test/setup.ts"],"sourcesContent":["import \"@testing-library/jest-dom\";\n"],"mappings":";AAAA,sBAAO;","names":[]}
|
|
@@ -39,6 +39,6 @@ interface ChipiProviderProps {
|
|
|
39
39
|
* }
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
declare function ChipiProvider({ children, config: userConfig
|
|
42
|
+
declare function ChipiProvider({ children, config: userConfig }: ChipiProviderProps): react_jsx_runtime.JSX.Element;
|
|
43
43
|
|
|
44
44
|
export { ChipiProvider, type ChipiProviderProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ChipiClientProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider } from \"@chipi-stack/chipi-react\";\nimport type { ChipiSDKConfig } from \"@chipi-stack/types\";\n\ninterface ChipiClientProviderProps {\n children: React.ReactNode;\n apiPublicKey: string;\n alphaUrl?: string
|
|
1
|
+
{"version":3,"sources":["../../src/ChipiClientProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider } from \"@chipi-stack/chipi-react\";\nimport type { ChipiSDKConfig } from \"@chipi-stack/types\";\n\ninterface ChipiClientProviderProps {\n children: React.ReactNode;\n apiPublicKey: string;\n alphaUrl?: string;\n}\n\n/**\n * Pure client component that handles all React hook imports\n * This component is marked with 'use client' to avoid server-side issues\n */\nexport function ChipiClientProvider({\n children,\n apiPublicKey,\n alphaUrl,\n}: ChipiClientProviderProps) {\n // Create config\n const config = React.useMemo(\n (): ChipiSDKConfig => ({\n apiPublicKey,\n alphaUrl,\n }),\n [apiPublicKey, alphaUrl]\n );\n\n return <ChipiProvider config={config}>{children}</ChipiProvider>;\n}\n"],"mappings":";AA8BS;AA5BT,OAAO,WAAW;AAClB,SAAS,qBAAqB;AAavB,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,GAA6B;AAE3B,QAAM,SAAS,MAAM;AAAA,IACnB,OAAuB;AAAA,MACrB;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,cAAc,QAAQ;AAAA,EACzB;AAEA,SAAO,oBAAC,iBAAc,QAAiB,UAAS;AAClD;","names":[]}
|
|
@@ -22,16 +22,15 @@ const createDefaultQueryClient = () => new QueryClient({
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
function ChipiProvider({
|
|
26
|
-
children,
|
|
27
|
-
apiPublicKey,
|
|
28
|
-
alphaUrl
|
|
29
|
-
}) {
|
|
25
|
+
function ChipiProvider({ children, apiPublicKey, alphaUrl }) {
|
|
30
26
|
const queryClient = React.useMemo(() => createDefaultQueryClient(), []);
|
|
31
|
-
const config = React.useMemo(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
const config = React.useMemo(
|
|
28
|
+
() => ({
|
|
29
|
+
apiPublicKey,
|
|
30
|
+
alphaUrl
|
|
31
|
+
}),
|
|
32
|
+
[apiPublicKey, alphaUrl]
|
|
33
|
+
);
|
|
35
34
|
return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx(ReactChipiProvider, { config, children }) });
|
|
36
35
|
}
|
|
37
36
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/app-router/client/ChipiProvider.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../src/app-router/client/ChipiProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { ChipiProvider as ReactChipiProvider } from \"@chipi-stack/chipi-react\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n apiPublicKey: string;\n alphaUrl?: string;\n}\n\n// Default QueryClient configuration for Next.js\nconst createDefaultQueryClient = () =>\n new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 60 * 1000, // 1 minute\n gcTime: 10 * 60 * 1000, // 10 minutes (formerly cacheTime)\n retry: (failureCount, error: any) => {\n // Don't retry on 4xx errors\n if (error?.status >= 400 && error?.status < 500) {\n return false;\n }\n return failureCount < 3;\n },\n },\n mutations: {\n retry: false,\n },\n },\n });\n\n/**\n * Client-side Chipi Provider for Next.js App Router\n *\n * This is the client component version that handles client-side functionality.\n * It wraps children with QueryClient and the React Chipi provider.\n *\n * Since this component is marked with 'use client', it's safe to import\n * from @chipi-stack/chipi-react directly as it will never run on the server.\n */\nexport function ChipiProvider({ children, apiPublicKey, alphaUrl }: ChipiProviderProps) {\n // Create QueryClient\n const queryClient = React.useMemo(() => createDefaultQueryClient(), []);\n\n // Create config\n const config = React.useMemo(\n () => ({\n apiPublicKey,\n alphaUrl,\n }),\n [apiPublicKey, alphaUrl]\n );\n\n return (\n <QueryClientProvider client={queryClient}>\n <ReactChipiProvider config={config}>{children}</ReactChipiProvider>\n </QueryClientProvider>\n );\n}\n"],"mappings":";AAyDM;AAvDN,OAAO,WAAW;AAClB,SAAS,aAAa,2BAA2B;AACjD,SAAS,iBAAiB,0BAA0B;AASpD,MAAM,2BAA2B,MAC/B,IAAI,YAAY;AAAA,EACd,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,WAAW,KAAK;AAAA;AAAA,MAChB,QAAQ,KAAK,KAAK;AAAA;AAAA,MAClB,OAAO,CAAC,cAAc,UAAe;AAEnC,YAAI,OAAO,UAAU,OAAO,OAAO,SAAS,KAAK;AAC/C,iBAAO;AAAA,QACT;AACA,eAAO,eAAe;AAAA,MACxB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAWI,SAAS,cAAc,EAAE,UAAU,cAAc,SAAS,GAAuB;AAEtF,QAAM,cAAc,MAAM,QAAQ,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAGtE,QAAM,SAAS,MAAM;AAAA,IACnB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,cAAc,QAAQ;AAAA,EACzB;AAEA,SACE,oBAAC,uBAAoB,QAAQ,aAC3B,8BAAC,sBAAmB,QAAiB,UAAS,GAChD;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/app-router/server/ChipiProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { createChipiServer } from \"../../server/createChipiServer\";\nimport { ChipiProvider as ChipiClientProvider } from \"../client/ChipiProvider\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Server-side Chipi Provider for Next.js App Router\n *\n * This is the server component version that runs during SSR.\n * It initializes the server SDK and passes configuration to the client provider.\n */\nexport async function ChipiProvider({ children }: ChipiProviderProps) {\n // Read environment variables on the server\n const apiPublicKey = process.env.NEXT_PUBLIC_CHIPI_API_KEY;\n const apiSecretKey = process.env.CHIPI_SECRET_KEY;\n const alphaUrl = process.env.NEXT_PUBLIC_ALPHA_URL
|
|
1
|
+
{"version":3,"sources":["../../../../src/app-router/server/ChipiProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { createChipiServer } from \"../../server/createChipiServer\";\nimport { ChipiProvider as ChipiClientProvider } from \"../client/ChipiProvider\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Server-side Chipi Provider for Next.js App Router\n *\n * This is the server component version that runs during SSR.\n * It initializes the server SDK and passes configuration to the client provider.\n */\nexport async function ChipiProvider({ children }: ChipiProviderProps) {\n // Read environment variables on the server\n const apiPublicKey = process.env.NEXT_PUBLIC_CHIPI_API_KEY;\n const apiSecretKey = process.env.CHIPI_SECRET_KEY;\n const alphaUrl = process.env.NEXT_PUBLIC_ALPHA_URL;\n\n // Validate required environment variables\n if (!apiPublicKey) {\n throw new Error(\n \" NEXT_PUBLIC_CHIPI_API_KEY environment variable. Please add it to your .env file.\"\n );\n }\n\n if (!apiSecretKey) {\n throw new Error(\n \"Missing CHIPI_SECRET_KEY environment variable. Server-side features will not work properly.\"\n );\n }\n\n // Initialize server SDK (this runs on server only)\n createChipiServer({\n apiSecretKey,\n apiPublicKey,\n alphaUrl,\n // debug: environment === \"development\",\n });\n\n // Return the client provider which will hydrate on the client\n // Note: This works because ChipiClientProvider is marked with 'use client'\n return (\n <ChipiClientProvider apiPublicKey={apiPublicKey} alphaUrl={alphaUrl}>\n {children}\n </ChipiClientProvider>\n );\n}\n"],"mappings":"AA4CI;AA3CJ,SAAS,yBAAyB;AAClC,SAAS,iBAAiB,2BAA2B;AAYrD,eAAsB,cAAc,EAAE,SAAS,GAAuB;AAEpE,QAAM,eAAe,QAAQ,IAAI;AACjC,QAAM,eAAe,QAAQ,IAAI;AACjC,QAAM,WAAW,QAAQ,IAAI;AAG7B,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAGA,oBAAkB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,CAAC;AAID,SACE,oBAAC,uBAAoB,cAA4B,UAC9C,UACH;AAEJ;","names":[]}
|
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { ChipiProvider as BaseChipiProvider } from "@chipi-stack/chipi-react";
|
|
5
|
-
function ChipiProvider({
|
|
6
|
-
children,
|
|
7
|
-
config: userConfig
|
|
8
|
-
}) {
|
|
5
|
+
function ChipiProvider({ children, config: userConfig }) {
|
|
9
6
|
const config = React.useMemo(() => {
|
|
10
7
|
const envConfig = {
|
|
11
8
|
apiPublicKey: process.env.NEXT_PUBLIC_CHIPI_API_KEY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/client/ChipiProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider as BaseChipiProvider } from \"@chipi-stack/chipi-react\";\nimport type { ChipiSDKConfig } from \"@chipi-stack/types\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n /**\n * Configuration for the Chipi SDK\n */\n config?: Partial<ChipiSDKConfig>;\n}\n\n/**\n * Client-side Chipi Provider for Next.js applications\n *\n * This provider wraps the base ChipiProvider and provides Next.js-specific\n * optimizations like automatic environment variable configuration.\n *\n * Note: For most use cases, use the main ChipiProvider from '@chipi-stack/nextjs'\n * instead of this client-only provider.\n *\n * @example\n * ```tsx\n * // Advanced usage - client-only provider\n * 'use client';\n *\n * import { ChipiProvider } from '@chipi-stack/nextjs/client';\n *\n * export function ClientProviders({ children }: { children: React.ReactNode }) {\n * return (\n * <ChipiProvider\n * config={{\n * apiPublicKey: process.env.NEXT_PUBLIC_CHIPI_API_KEY!,\n * environment: 'production'\n * }}\n * >\n * {children}\n * </ChipiProvider>\n * );\n * }\n * ```\n */\nexport function ChipiProvider({
|
|
1
|
+
{"version":3,"sources":["../../../src/client/ChipiProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider as BaseChipiProvider } from \"@chipi-stack/chipi-react\";\nimport type { ChipiSDKConfig } from \"@chipi-stack/types\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n /**\n * Configuration for the Chipi SDK\n */\n config?: Partial<ChipiSDKConfig>;\n}\n\n/**\n * Client-side Chipi Provider for Next.js applications\n *\n * This provider wraps the base ChipiProvider and provides Next.js-specific\n * optimizations like automatic environment variable configuration.\n *\n * Note: For most use cases, use the main ChipiProvider from '@chipi-stack/nextjs'\n * instead of this client-only provider.\n *\n * @example\n * ```tsx\n * // Advanced usage - client-only provider\n * 'use client';\n *\n * import { ChipiProvider } from '@chipi-stack/nextjs/client';\n *\n * export function ClientProviders({ children }: { children: React.ReactNode }) {\n * return (\n * <ChipiProvider\n * config={{\n * apiPublicKey: process.env.NEXT_PUBLIC_CHIPI_API_KEY!,\n * environment: 'production'\n * }}\n * >\n * {children}\n * </ChipiProvider>\n * );\n * }\n * ```\n */\nexport function ChipiProvider({ children, config: userConfig }: ChipiProviderProps) {\n // Automatically get configuration from environment variables\n // Siento que esta madre no se usa\n const config = React.useMemo(() => {\n const envConfig: ChipiSDKConfig = {\n apiPublicKey: process.env.NEXT_PUBLIC_CHIPI_API_KEY!,\n alphaUrl: process.env.NEXT_PUBLIC_ALPHA_URL,\n };\n\n // Merge with user-provided config\n return { ...envConfig, ...userConfig };\n }, [userConfig]);\n // Validate required configuration\n if (!config.apiPublicKey) {\n throw new Error(\n \"Missing NEXT_PUBLIC_CHIPI_API_KEY environment variable. Please add it to your .env.local file.\"\n );\n }\n\n return <BaseChipiProvider config={config}>{children}</BaseChipiProvider>;\n}\n"],"mappings":";AA+DS;AA7DT,OAAO,WAAW;AAClB,SAAS,iBAAiB,yBAAyB;AAyC5C,SAAS,cAAc,EAAE,UAAU,QAAQ,WAAW,GAAuB;AAGlF,QAAM,SAAS,MAAM,QAAQ,MAAM;AACjC,UAAM,YAA4B;AAAA,MAChC,cAAc,QAAQ,IAAI;AAAA,MAC1B,UAAU,QAAQ,IAAI;AAAA,IACxB;AAGA,WAAO,EAAE,GAAG,WAAW,GAAG,WAAW;AAAA,EACvC,GAAG,CAAC,UAAU,CAAC;AAEf,MAAI,CAAC,OAAO,cAAc;AACxB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,oBAAC,qBAAkB,QAAiB,UAAS;AACtD;","names":[]}
|
|
@@ -1,25 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { ChipiProvider as ClientChipiProvider } from "../app-router/client/ChipiProvider";
|
|
4
|
-
function ChipiProvider({
|
|
5
|
-
children,
|
|
6
|
-
apiPublicKey,
|
|
7
|
-
alphaUrl
|
|
8
|
-
}) {
|
|
4
|
+
function ChipiProvider({ children, apiPublicKey, alphaUrl }) {
|
|
9
5
|
const finalApiPublicKey = apiPublicKey || process.env.NEXT_PUBLIC_CHIPI_API_KEY;
|
|
10
6
|
if (!finalApiPublicKey) {
|
|
11
7
|
throw new Error(
|
|
12
8
|
"Missing NEXT_PUBLIC_CHIPI_API_KEY environment variable or apiPublicKey prop. Please provide one."
|
|
13
9
|
);
|
|
14
10
|
}
|
|
15
|
-
return /* @__PURE__ */ jsx(
|
|
16
|
-
ClientChipiProvider,
|
|
17
|
-
{
|
|
18
|
-
apiPublicKey: finalApiPublicKey,
|
|
19
|
-
alphaUrl,
|
|
20
|
-
children
|
|
21
|
-
}
|
|
22
|
-
);
|
|
11
|
+
return /* @__PURE__ */ jsx(ClientChipiProvider, { apiPublicKey: finalApiPublicKey, alphaUrl, children });
|
|
23
12
|
}
|
|
24
13
|
export {
|
|
25
14
|
ChipiProvider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/client-boundary/ChipiProvider.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../src/client-boundary/ChipiProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { ChipiProvider as ClientChipiProvider } from \"../app-router/client/ChipiProvider\";\n\nexport interface ChipiProviderProps {\n children: React.ReactNode;\n apiPublicKey?: string;\n alphaUrl?: string;\n}\n\n/**\n * This is a compatibility layer that provides a client-only ChipiProvider.\n * This is used when the conditional export resolves to the client boundary.\n */\nexport function ChipiProvider({ children, apiPublicKey, alphaUrl }: ChipiProviderProps) {\n // For client-only usage, allow apiPublicKey to be passed as prop\n // or read from environment\n const finalApiPublicKey = apiPublicKey || process.env.NEXT_PUBLIC_CHIPI_API_KEY;\n\n if (!finalApiPublicKey) {\n throw new Error(\n \"Missing NEXT_PUBLIC_CHIPI_API_KEY environment variable or apiPublicKey prop. Please provide one.\"\n );\n }\n\n return (\n <ClientChipiProvider apiPublicKey={finalApiPublicKey} alphaUrl={alphaUrl}>\n {children}\n </ClientChipiProvider>\n );\n}\n"],"mappings":";AA2BI;AAxBJ,SAAS,iBAAiB,2BAA2B;AAY9C,SAAS,cAAc,EAAE,UAAU,cAAc,SAAS,GAAuB;AAGtF,QAAM,oBAAoB,gBAAgB,QAAQ,IAAI;AAEtD,MAAI,CAAC,mBAAmB;AACtB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SACE,oBAAC,uBAAoB,cAAc,mBAAmB,UACnD,UACH;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components.client.ts"],"sourcesContent":["import { ChipiProvider } from
|
|
1
|
+
{"version":3,"sources":["../../src/components.client.ts"],"sourcesContent":["import { ChipiProvider } from \"./app-router/client/ChipiProvider\";\n\nexport { ChipiProvider };\n"],"mappings":"AAAA,SAAS,qBAAqB;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components.server.ts"],"sourcesContent":["import { ChipiProvider } from
|
|
1
|
+
{"version":3,"sources":["../../src/components.server.ts"],"sourcesContent":["import { ChipiProvider } from \"./app-router/server/ChipiProvider\";\n\nexport { ChipiProvider };\n\nexport type ServerComponentsServerModuleTypes = {\n ChipiProvider: typeof ChipiProvider;\n};\n"],"mappings":"AAAA,SAAS,qBAAqB;","names":[]}
|
package/dist/esm/hooks.js
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
useGetWallet,
|
|
6
6
|
useChipiWallet,
|
|
7
7
|
useMigrateWalletToPasskey,
|
|
8
|
+
useUpdateWalletEncryption,
|
|
8
9
|
useApprove,
|
|
9
10
|
useTransfer,
|
|
10
11
|
useGetTransactionList,
|
|
@@ -41,6 +42,7 @@ export {
|
|
|
41
42
|
usePurchaseSku,
|
|
42
43
|
useRecordSendTransaction,
|
|
43
44
|
useRevokeSessionKey,
|
|
44
|
-
useTransfer
|
|
45
|
+
useTransfer,
|
|
46
|
+
useUpdateWalletEncryption
|
|
45
47
|
};
|
|
46
48
|
//# sourceMappingURL=hooks.js.map
|
package/dist/esm/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks.ts"],"sourcesContent":["\"use client\";\n\n// Client-side hooks for Next.js Chipi SDK\n// These are re-exported from @chipi-stack/chipi-react for convenience\n// This file is marked as 'use client' to ensure it only runs on the client\n\nexport {\n // Context hook\n useChipiContext,\n\n // Wallet hooks\n useCreateWallet,\n useGetWallet,\n useChipiWallet,\n useMigrateWalletToPasskey,\n\n // Transaction hooks\n useApprove,\n useTransfer,\n useGetTransactionList,\n\n // SKU hooks\n useGetSkuList,\n useGetSku,\n usePurchaseSku,\n useCallAnyContract,\n\n // Record send transaction hook\n useRecordSendTransaction,\n\n // Token balance hook\n useGetTokenBalance,\n\n // Session hooks (CHIPI wallets only)\n useCreateSessionKey,\n useAddSessionKeyToContract,\n useRevokeSessionKey,\n useGetSessionData,\n useExecuteWithSession,\n\n // Unified session hook\n useChipiSession,\n} from \"@chipi-stack/chipi-react\";\n\n// Re-export hook types for convenience\nexport type {\n UseChipiWalletConfig,\n UseChipiWalletReturn,\n ChipiWalletData,\n UseChipiSessionConfig,\n UseChipiSessionReturn,\n SessionState,\n SessionWallet,\n} from \"@chipi-stack/chipi-react\";\n\n// Note: Passkey hooks (usePasskeySetup, usePasskeyAuth, usePasskeyStatus)\n// are available by importing from \"@chipi-stack/chipi-passkey/hooks\" directly\n// We don't re-export them here to avoid module resolution issues.\n"],"mappings":";AAMA;AAAA,EAEE;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EAGA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,OACK;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks.ts"],"sourcesContent":["\"use client\";\n\n// Client-side hooks for Next.js Chipi SDK\n// These are re-exported from @chipi-stack/chipi-react for convenience\n// This file is marked as 'use client' to ensure it only runs on the client\n\nexport {\n // Context hook\n useChipiContext,\n\n // Wallet hooks\n useCreateWallet,\n useGetWallet,\n useChipiWallet,\n useMigrateWalletToPasskey,\n useUpdateWalletEncryption,\n\n // Transaction hooks\n useApprove,\n useTransfer,\n useGetTransactionList,\n\n // SKU hooks\n useGetSkuList,\n useGetSku,\n usePurchaseSku,\n useCallAnyContract,\n\n // Record send transaction hook\n useRecordSendTransaction,\n\n // Token balance hook\n useGetTokenBalance,\n\n // Session hooks (CHIPI wallets only)\n useCreateSessionKey,\n useAddSessionKeyToContract,\n useRevokeSessionKey,\n useGetSessionData,\n useExecuteWithSession,\n\n // Unified session hook\n useChipiSession,\n} from \"@chipi-stack/chipi-react\";\n\n// Re-export hook types for convenience\nexport type {\n UseChipiWalletConfig,\n UseChipiWalletReturn,\n ChipiWalletData,\n UseChipiSessionConfig,\n UseChipiSessionReturn,\n SessionState,\n SessionWallet,\n} from \"@chipi-stack/chipi-react\";\n\n// Note: Passkey hooks (usePasskeySetup, usePasskeyAuth, usePasskeyStatus)\n// are available by importing from \"@chipi-stack/chipi-passkey/hooks\" directly\n// We don't re-export them here to avoid module resolution issues.\n"],"mappings":";AAMA;AAAA,EAEE;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EAGA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,OACK;","names":[]}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["/**\n * Main exports for @chipi-stack/nextjs\n *\n * Client-side components and hooks are exported from this main entry point.\n * Server-side utilities are exported from '@chipi-stack/nextjs/server'.\n */\n\n/**\n * Conditionally export ChipiProvider that exhibits different behavior\n * when used in /app vs /pages router.\n * We define the runtime and type values explicitly,\n * because TS will not recognize the subpath import unless the HOST\n * application sets moduleResolution to 'NodeNext'.\n */\n// @ts-
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["/**\n * Main exports for @chipi-stack/nextjs\n *\n * Client-side components and hooks are exported from this main entry point.\n * Server-side utilities are exported from '@chipi-stack/nextjs/server'.\n */\n\n/**\n * Conditionally export ChipiProvider that exhibits different behavior\n * when used in /app vs /pages router.\n * We define the runtime and type values explicitly,\n * because TS will not recognize the subpath import unless the HOST\n * application sets moduleResolution to 'NodeNext'.\n */\n// @ts-expect-error — subpath import not resolved without NodeNext moduleResolution\nimport * as ComponentsModule from \"#components\";\n\nimport type { ServerComponentsServerModuleTypes } from \"./components.server\";\n\nexport const ChipiProvider =\n ComponentsModule.ChipiProvider as ServerComponentsServerModuleTypes[\"ChipiProvider\"];\n\n// Individual providers (for advanced use cases)\nexport { ChipiProvider as ChipiClientProvider } from \"./app-router/client/ChipiProvider\";\n\n// Client-side hooks - these are safe to import because they're marked 'use client'\nexport * from \"./hooks\";\n\n// Re-export passkey utilities (non-hook exports only)\nexport {\n createWalletPasskey,\n getWalletEncryptKey,\n hasWalletPasskey,\n isWebAuthnSupported,\n isWebAuthnPRFSupported,\n verifyWalletPasskey,\n getStoredCredential,\n removeStoredCredential,\n type CreateWalletPasskeyResult,\n type WalletCredentialMetadata,\n type UsePasskeySetupResult,\n type UsePasskeyAuthResult,\n type UsePasskeyStatusResult,\n type PasskeyStatus,\n} from \"@chipi-stack/chipi-passkey\";\n\n// Re-export types\nexport type * from \"@chipi-stack/types\";\n\n// Re-export enums and constants (these need to be exported as values, not just types)\nexport { Chain, ChainToken } from \"@chipi-stack/types\";\n\nexport * from \"./server\";\n"],"mappings":"AAeA,YAAY,sBAAsB;AAI3B,MAAM,gBACX,iBAAiB;AAGnB,SAA0B,iBAAjBA,sBAA4C;AAGrD,cAAc;AAGd;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAOK;AAMP,SAAS,OAAO,kBAAkB;AAElC,cAAc;","names":["ChipiProvider"]}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { ChipiServerSDK } from "@chipi-stack/backend";
|
|
2
2
|
let serverInstance = null;
|
|
3
|
+
let serverConfigKey = null;
|
|
4
|
+
function configToKey(config) {
|
|
5
|
+
return JSON.stringify({
|
|
6
|
+
apiPublicKey: config.apiPublicKey,
|
|
7
|
+
apiSecretKey: config.apiSecretKey,
|
|
8
|
+
alphaUrl: config.alphaUrl ?? "",
|
|
9
|
+
nodeUrl: config.nodeUrl ?? ""
|
|
10
|
+
});
|
|
11
|
+
}
|
|
3
12
|
function createChipiServer(config) {
|
|
4
13
|
if (!config.apiPublicKey) {
|
|
5
14
|
throw new Error("Missing apiPublicKey in config");
|
|
@@ -7,8 +16,14 @@ function createChipiServer(config) {
|
|
|
7
16
|
if (!config.apiSecretKey) {
|
|
8
17
|
throw new Error("Missing apiSecretKey in config");
|
|
9
18
|
}
|
|
19
|
+
const key = configToKey(config);
|
|
10
20
|
if (!serverInstance) {
|
|
11
21
|
serverInstance = new ChipiServerSDK(config);
|
|
22
|
+
serverConfigKey = key;
|
|
23
|
+
} else if (serverConfigKey !== key) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
"createChipiServer() was called with a different config than the existing singleton. Call resetChipiServer() first if you need to reconfigure."
|
|
26
|
+
);
|
|
12
27
|
}
|
|
13
28
|
return serverInstance;
|
|
14
29
|
}
|
|
@@ -22,6 +37,7 @@ function getChipiServer() {
|
|
|
22
37
|
}
|
|
23
38
|
function resetChipiServer() {
|
|
24
39
|
serverInstance = null;
|
|
40
|
+
serverConfigKey = null;
|
|
25
41
|
}
|
|
26
42
|
export {
|
|
27
43
|
createChipiServer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/createChipiServer.ts"],"sourcesContent":["import { ChipiServerSDK, ChipiServerSDKConfig } from \"@chipi-stack/backend\";\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(
|
|
1
|
+
{"version":3,"sources":["../../../src/server/createChipiServer.ts"],"sourcesContent":["import { ChipiServerSDK, ChipiServerSDKConfig } from \"@chipi-stack/backend\";\n\n/**\n * Global server instance\n */\nlet serverInstance: ChipiServerSDK | null = null;\nlet serverConfigKey: string | null = null;\n\n/**\n * Derive a stable key from config for conflict detection\n */\nfunction configToKey(config: ChipiServerSDKConfig): string {\n return JSON.stringify({\n apiPublicKey: config.apiPublicKey,\n apiSecretKey: config.apiSecretKey,\n alphaUrl: config.alphaUrl ?? \"\",\n nodeUrl: config.nodeUrl ?? \"\",\n });\n}\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: ChipiServerSDKConfig): ChipiServerSDK {\n // Validate required fields\n if (!config.apiPublicKey) {\n throw new Error(\"Missing apiPublicKey in config\");\n }\n\n if (!config.apiSecretKey) {\n throw new Error(\"Missing apiSecretKey in config\");\n }\n\n const key = configToKey(config);\n\n // In production, use singleton pattern\n if (!serverInstance) {\n serverInstance = new ChipiServerSDK(config);\n serverConfigKey = key;\n } else if (serverConfigKey !== key) {\n throw new Error(\n \"createChipiServer() was called with a different config than the existing singleton. \" +\n \"Call resetChipiServer() first if you need to reconfigure.\"\n );\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 serverConfigKey = null;\n}\n"],"mappings":"AAAA,SAAS,sBAA4C;AAKrD,IAAI,iBAAwC;AAC5C,IAAI,kBAAiC;AAKrC,SAAS,YAAY,QAAsC;AACzD,SAAO,KAAK,UAAU;AAAA,IACpB,cAAc,OAAO;AAAA,IACrB,cAAc,OAAO;AAAA,IACrB,UAAU,OAAO,YAAY;AAAA,IAC7B,SAAS,OAAO,WAAW;AAAA,EAC7B,CAAC;AACH;AAOO,SAAS,kBAAkB,QAA8C;AAE9E,MAAI,CAAC,OAAO,cAAc;AACxB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,MAAI,CAAC,OAAO,cAAc;AACxB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,QAAM,MAAM,YAAY,MAAM;AAG9B,MAAI,CAAC,gBAAgB;AACnB,qBAAiB,IAAI,eAAe,MAAM;AAC1C,sBAAkB;AAAA,EACpB,WAAW,oBAAoB,KAAK;AAClC,UAAM,IAAI;AAAA,MACR;AAAA,IAEF;AAAA,EACF;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;AACjB,oBAAkB;AACpB;","names":[]}
|
package/dist/esm/server/index.js
CHANGED
|
@@ -1 +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 {
|
|
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"],"mappings":"AAgBA,SAAS,mBAAmB,gBAAgB,wBAAwB;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/test/setup.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../src/test/setup.ts"],"sourcesContent":["import \"@testing-library/jest-dom\";\n"],"mappings":"AAAA,OAAO;","names":[]}
|
package/dist/hooks.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiContext, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer } from '@chipi-stack/chipi-react';
|
|
1
|
+
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiContext, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer, useUpdateWalletEncryption } from '@chipi-stack/chipi-react';
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ServerComponentsServerModuleTypes } from './components.server.mjs';
|
|
2
2
|
export { ChipiProvider as ChipiClientProvider } from './app-router/client/ChipiProvider.mjs';
|
|
3
|
-
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiContext, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer } from '@chipi-stack/chipi-react';
|
|
3
|
+
export { ChipiWalletData, SessionState, SessionWallet, UseChipiSessionConfig, UseChipiSessionReturn, UseChipiWalletConfig, UseChipiWalletReturn, useAddSessionKeyToContract, useApprove, useCallAnyContract, useChipiContext, useChipiSession, useChipiWallet, useCreateSessionKey, useCreateWallet, useExecuteWithSession, useGetSessionData, useGetSku, useGetSkuList, useGetTokenBalance, useGetTransactionList, useGetWallet, useMigrateWalletToPasskey, usePurchaseSku, useRecordSendTransaction, useRevokeSessionKey, useTransfer, useUpdateWalletEncryption } from '@chipi-stack/chipi-react';
|
|
4
4
|
export { CreateWalletPasskeyResult, PasskeyStatus, UsePasskeyAuthResult, UsePasskeySetupResult, UsePasskeyStatusResult, WalletCredentialMetadata, createWalletPasskey, getStoredCredential, getWalletEncryptKey, hasWalletPasskey, isWebAuthnPRFSupported, isWebAuthnSupported, removeStoredCredential, verifyWalletPasskey } from '@chipi-stack/chipi-passkey';
|
|
5
5
|
export * from '@chipi-stack/types';
|
|
6
6
|
export { Chain, ChainToken } from '@chipi-stack/types';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chipi-stack/nextjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "14.0.0",
|
|
4
4
|
"description": "Chipi SDK for Next.js applications with server-side support",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chipi",
|
|
@@ -74,11 +74,11 @@
|
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@tanstack/react-query": "^5.85.0",
|
|
77
|
-
"@chipi-stack/
|
|
78
|
-
"@chipi-stack/chipi-
|
|
79
|
-
"@chipi-stack/
|
|
80
|
-
"@chipi-stack/shared": "^
|
|
81
|
-
"@chipi-stack/types": "^
|
|
77
|
+
"@chipi-stack/backend": "^14.0.0",
|
|
78
|
+
"@chipi-stack/chipi-passkey": "^2.0.0",
|
|
79
|
+
"@chipi-stack/chipi-react": "^14.0.0",
|
|
80
|
+
"@chipi-stack/shared": "^14.0.0",
|
|
81
|
+
"@chipi-stack/types": "^14.0.0"
|
|
82
82
|
},
|
|
83
83
|
"peerDependencies": {
|
|
84
84
|
"next": ">=13.0.0",
|