@opendatalabs/vana-sdk 4.4.0 → 4.5.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/README.md +176 -0
- package/dist/connect/account-origin.cjs +72 -0
- package/dist/connect/account-origin.cjs.map +1 -0
- package/dist/connect/account-origin.d.ts +92 -0
- package/dist/connect/account-origin.js +47 -0
- package/dist/connect/account-origin.js.map +1 -0
- package/dist/connect/account-origin.test.d.ts +1 -0
- package/dist/connect/chrome.cjs +284 -0
- package/dist/connect/chrome.cjs.map +1 -0
- package/dist/connect/chrome.d.ts +42 -0
- package/dist/connect/chrome.js +256 -0
- package/dist/connect/chrome.js.map +1 -0
- package/dist/connect/http-transports.cjs +100 -0
- package/dist/connect/http-transports.cjs.map +1 -0
- package/dist/connect/http-transports.d.ts +77 -0
- package/dist/connect/http-transports.js +75 -0
- package/dist/connect/http-transports.js.map +1 -0
- package/dist/connect/http-transports.test.d.ts +1 -0
- package/dist/connect/launcher.cjs +232 -0
- package/dist/connect/launcher.cjs.map +1 -0
- package/dist/connect/launcher.d.ts +129 -0
- package/dist/connect/launcher.js +220 -0
- package/dist/connect/launcher.js.map +1 -0
- package/dist/connect/launcher.test.d.ts +1 -0
- package/dist/connect/protocol.cjs +259 -0
- package/dist/connect/protocol.cjs.map +1 -0
- package/dist/connect/protocol.d.ts +331 -0
- package/dist/connect/protocol.js +215 -0
- package/dist/connect/protocol.js.map +1 -0
- package/dist/connect/protocol.test.d.ts +1 -0
- package/dist/connect.cjs +55 -0
- package/dist/connect.cjs.map +1 -0
- package/dist/connect.d.ts +35 -0
- package/dist/connect.js +34 -0
- package/dist/connect.js.map +1 -0
- package/dist/direct/connect-flow-sheet.test.d.ts +1 -0
- package/dist/direct/connect-flow.cjs +211 -1
- package/dist/direct/connect-flow.cjs.map +1 -1
- package/dist/direct/connect-flow.d.ts +75 -0
- package/dist/direct/connect-flow.js +213 -1
- package/dist/direct/connect-flow.js.map +1 -1
- package/dist/direct/connect-handler.cjs +493 -0
- package/dist/direct/connect-handler.cjs.map +1 -0
- package/dist/direct/connect-handler.d.ts +246 -0
- package/dist/direct/connect-handler.js +476 -0
- package/dist/direct/connect-handler.js.map +1 -0
- package/dist/direct/connect-handler.test.d.ts +1 -0
- package/dist/direct/controller.cjs +86 -17
- package/dist/direct/controller.cjs.map +1 -1
- package/dist/direct/controller.d.ts +101 -6
- package/dist/direct/controller.js +86 -16
- package/dist/direct/controller.js.map +1 -1
- package/dist/direct/endpoints.cjs +5 -2
- package/dist/direct/endpoints.cjs.map +1 -1
- package/dist/direct/endpoints.js +5 -2
- package/dist/direct/endpoints.js.map +1 -1
- package/dist/direct/request-authorization.cjs +65 -0
- package/dist/direct/request-authorization.cjs.map +1 -0
- package/dist/direct/request-authorization.d.ts +65 -0
- package/dist/direct/request-authorization.js +39 -0
- package/dist/direct/request-authorization.js.map +1 -0
- package/dist/direct/request-authorization.test.d.ts +1 -0
- package/dist/direct/types.cjs.map +1 -1
- package/dist/direct/types.d.ts +6 -0
- package/dist/direct/types.js.map +1 -1
- package/dist/direct/use-direct-vana-connect.cjs +18 -1
- package/dist/direct/use-direct-vana-connect.cjs.map +1 -1
- package/dist/direct/use-direct-vana-connect.js +18 -1
- package/dist/direct/use-direct-vana-connect.js.map +1 -1
- package/dist/direct/use-vana-connect.cjs +84 -0
- package/dist/direct/use-vana-connect.cjs.map +1 -0
- package/dist/direct/use-vana-connect.d.ts +59 -0
- package/dist/direct/use-vana-connect.js +64 -0
- package/dist/direct/use-vana-connect.js.map +1 -0
- package/dist/direct/use-vana-connect.test.d.ts +1 -0
- package/dist/index.browser.d.ts +1 -0
- package/dist/index.browser.js +104 -0
- package/dist/index.browser.js.map +4 -4
- package/dist/index.node.cjs +112 -0
- package/dist/index.node.cjs.map +3 -3
- package/dist/index.node.d.ts +1 -0
- package/dist/index.node.js +104 -0
- package/dist/index.node.js.map +4 -4
- package/dist/protocol/fixtures/pdpp-scope-keys.json +133 -0
- package/dist/protocol/pdpp-scopes.cjs +134 -0
- package/dist/protocol/pdpp-scopes.cjs.map +1 -0
- package/dist/protocol/pdpp-scopes.d.ts +123 -0
- package/dist/protocol/pdpp-scopes.js +103 -0
- package/dist/protocol/pdpp-scopes.js.map +1 -0
- package/dist/protocol/pdpp-scopes.test.d.ts +1 -0
- package/dist/protocol/scopes.cjs +17 -0
- package/dist/protocol/scopes.cjs.map +1 -1
- package/dist/protocol/scopes.d.ts +1 -0
- package/dist/protocol/scopes.js +18 -0
- package/dist/protocol/scopes.js.map +1 -1
- package/dist/react.cjs +10 -2
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.ts +4 -1
- package/dist/react.js +11 -1
- package/dist/react.js.map +1 -1
- package/dist/server.cjs +61 -2
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.ts +16 -4
- package/dist/server.js +67 -3
- package/dist/server.js.map +1 -1
- package/package.json +11 -1
package/dist/react.cjs
CHANGED
|
@@ -18,15 +18,23 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var react_exports = {};
|
|
20
20
|
__export(react_exports, {
|
|
21
|
+
VanaConnectHttpError: () => import_http_transports.VanaConnectHttpError,
|
|
21
22
|
createDirectConnectFlow: () => import_connect_flow.createDirectConnectFlow,
|
|
22
|
-
|
|
23
|
+
createVanaConnectTransports: () => import_http_transports.createVanaConnectTransports,
|
|
24
|
+
useDirectVanaConnect: () => import_use_direct_vana_connect.useDirectVanaConnect,
|
|
25
|
+
useVanaConnect: () => import_use_vana_connect.useVanaConnect
|
|
23
26
|
});
|
|
24
27
|
module.exports = __toCommonJS(react_exports);
|
|
25
28
|
var import_use_direct_vana_connect = require("./direct/use-direct-vana-connect");
|
|
29
|
+
var import_use_vana_connect = require("./direct/use-vana-connect");
|
|
30
|
+
var import_http_transports = require("./connect/http-transports");
|
|
26
31
|
var import_connect_flow = require("./direct/connect-flow");
|
|
27
32
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
33
|
0 && (module.exports = {
|
|
34
|
+
VanaConnectHttpError,
|
|
29
35
|
createDirectConnectFlow,
|
|
30
|
-
|
|
36
|
+
createVanaConnectTransports,
|
|
37
|
+
useDirectVanaConnect,
|
|
38
|
+
useVanaConnect
|
|
31
39
|
});
|
|
32
40
|
//# sourceMappingURL=react.cjs.map
|
package/dist/react.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react.ts"],"sourcesContent":["/**\n * React entry point for the Vana SDK direct Data Portability flow.\n *\n * @remarks\n * Exposes {@link useDirectVanaConnect} (and the underlying framework-agnostic\n * connect-flow store) for browser apps. This entry point is browser-safe and\n * imports nothing Node-only. `react` is a peer dependency.\n *\n * @example\n * ```tsx\n * \"use client\";\n * import { useDirectVanaConnect } from \"@opendatalabs/vana-sdk/react\";\n *\n * export function ConnectNotesButton() {\n * const connect = useDirectVanaConnect({\n * createRequest: () => fetch(\"/api/vana/request\", { method: \"POST\" }).then((r) => r.json()),\n * getStatus: (id) => fetch(`/api/vana/status?requestId=${id}`).then((r) => r.json()),\n * readResult: (id) => fetch(`/api/vana/data?requestId=${id}`).then((r) => r.json()),\n * });\n * const { state, start } = connect;\n * return (\n * <div>\n * <button disabled={state.type !== \"idle\"} onClick={start} type=\"button\">\n * {state.type === \"idle\" ? \"Connect Apple Notes\" : \"Connecting...\"}\n * </button>\n * {state.type === \"awaiting_approval\" && (\n * // Fallback link: if the browser blocked the approval popup, the user\n * // can still open it manually instead of the flow silently hanging.\n * <a href={state.request.approvalUrl} target=\"_blank\" rel=\"noreferrer\">\n * {state.popupBlocked ? \"Popup blocked — open approval\" : \"Open approval\"}\n * </a>\n * )}\n * {state.type === \"ready_to_open\" && (\n * // Mobile deep Direct: render the HTTPS continuation as a primary tap.\n * // The SDK keeps polling in this tab; if the tab is lost, restart.\n * <a href={state.mobileContinuationUrl} target=\"_blank\" rel=\"noreferrer\">\n * Open Vana\n * </a>\n * )}\n * </div>\n * );\n * }\n * ```\n *\n * @category Direct\n * @module react\n */\n\nexport {\n useDirectVanaConnect,\n type UseDirectVanaConnectOptions,\n type UseDirectVanaConnectResult,\n} from \"./direct/use-direct-vana-connect\";\n\n// Framework-agnostic store (usable without React).\nexport {\n createDirectConnectFlow,\n type ConnectWindow,\n type DirectBrowserPlatform,\n type DirectBrowserPlatformPolicy,\n type DirectConnectFlow,\n type DirectConnectRetryOutcome,\n type DirectConnectState,\n type DirectConnectOptions,\n type DirectConnectTransports,\n} from \"./direct/connect-flow\";\n\n// Shared types useful when typing the transports.\nexport type {\n ForegroundDelivery,\n AccessRequest,\n AccessRequestStatus,\n AccessRequestStatusValue,\n ApprovedDataResult,\n} from \"./direct/types\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDA,qCAIO;
|
|
1
|
+
{"version":3,"sources":["../src/react.ts"],"sourcesContent":["/**\n * React entry point for the Vana SDK direct Data Portability flow.\n *\n * @remarks\n * Exposes {@link useDirectVanaConnect} (and the underlying framework-agnostic\n * connect-flow store) for browser apps. This entry point is browser-safe and\n * imports nothing Node-only. `react` is a peer dependency.\n *\n * @example\n * ```tsx\n * \"use client\";\n * import { useDirectVanaConnect } from \"@opendatalabs/vana-sdk/react\";\n *\n * export function ConnectNotesButton() {\n * const connect = useDirectVanaConnect({\n * createRequest: () => fetch(\"/api/vana/request\", { method: \"POST\" }).then((r) => r.json()),\n * getStatus: (id) => fetch(`/api/vana/status?requestId=${id}`).then((r) => r.json()),\n * readResult: (id) => fetch(`/api/vana/data?requestId=${id}`).then((r) => r.json()),\n * });\n * const { state, start } = connect;\n * return (\n * <div>\n * <button disabled={state.type !== \"idle\"} onClick={start} type=\"button\">\n * {state.type === \"idle\" ? \"Connect Apple Notes\" : \"Connecting...\"}\n * </button>\n * {state.type === \"awaiting_approval\" && (\n * // Fallback link: if the browser blocked the approval popup, the user\n * // can still open it manually instead of the flow silently hanging.\n * <a href={state.request.approvalUrl} target=\"_blank\" rel=\"noreferrer\">\n * {state.popupBlocked ? \"Popup blocked — open approval\" : \"Open approval\"}\n * </a>\n * )}\n * {state.type === \"ready_to_open\" && (\n * // Mobile deep Direct: render the HTTPS continuation as a primary tap.\n * // The SDK keeps polling in this tab; if the tab is lost, restart.\n * <a href={state.mobileContinuationUrl} target=\"_blank\" rel=\"noreferrer\">\n * Open Vana\n * </a>\n * )}\n * </div>\n * );\n * }\n * ```\n *\n * @category Direct\n * @module react\n */\n\nexport {\n useDirectVanaConnect,\n type UseDirectVanaConnectOptions,\n type UseDirectVanaConnectResult,\n} from \"./direct/use-direct-vana-connect\";\n\n// Zero-transport hook for a `createVanaConnectHandler` backend; presents\n// approval in Vana's in-page sheet by default.\nexport {\n useVanaConnect,\n type UseVanaConnectOptions,\n type UseVanaConnectResult,\n} from \"./direct/use-vana-connect\";\nexport {\n createVanaConnectTransports,\n VanaConnectHttpError,\n type VanaConnectConfig,\n type VanaConnectTransportOptions,\n type VanaConnectTransports,\n} from \"./connect/http-transports\";\nexport type {\n ConnectCompletion,\n ConnectEvent,\n ConnectProgressPhase,\n RequestAuthorization,\n SheetErrorCode,\n} from \"./connect\";\n\n// Framework-agnostic store (usable without React).\nexport {\n createDirectConnectFlow,\n type DirectConnectPresentation,\n type DirectConnectSheetOptions,\n type DirectConnectSheetState,\n type ConnectWindow,\n type DirectBrowserPlatform,\n type DirectBrowserPlatformPolicy,\n type DirectConnectFlow,\n type DirectConnectRetryOutcome,\n type DirectConnectState,\n type DirectConnectOptions,\n type DirectConnectTransports,\n} from \"./direct/connect-flow\";\n\n// Shared types useful when typing the transports.\nexport type {\n ForegroundDelivery,\n AccessRequest,\n AccessRequestStatus,\n AccessRequestStatusValue,\n ApprovedDataResult,\n} from \"./direct/types\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDA,qCAIO;AAIP,8BAIO;AACP,6BAMO;AAUP,0BAaO;","names":[]}
|
package/dist/react.d.ts
CHANGED
|
@@ -46,5 +46,8 @@
|
|
|
46
46
|
* @module react
|
|
47
47
|
*/
|
|
48
48
|
export { useDirectVanaConnect, type UseDirectVanaConnectOptions, type UseDirectVanaConnectResult, } from "./direct/use-direct-vana-connect.js";
|
|
49
|
-
export {
|
|
49
|
+
export { useVanaConnect, type UseVanaConnectOptions, type UseVanaConnectResult, } from "./direct/use-vana-connect.js";
|
|
50
|
+
export { createVanaConnectTransports, VanaConnectHttpError, type VanaConnectConfig, type VanaConnectTransportOptions, type VanaConnectTransports, } from "./connect/http-transports.js";
|
|
51
|
+
export type { ConnectCompletion, ConnectEvent, ConnectProgressPhase, RequestAuthorization, SheetErrorCode, } from "./connect.js";
|
|
52
|
+
export { createDirectConnectFlow, type DirectConnectPresentation, type DirectConnectSheetOptions, type DirectConnectSheetState, type ConnectWindow, type DirectBrowserPlatform, type DirectBrowserPlatformPolicy, type DirectConnectFlow, type DirectConnectRetryOutcome, type DirectConnectState, type DirectConnectOptions, type DirectConnectTransports, } from "./direct/connect-flow.js";
|
|
50
53
|
export type { ForegroundDelivery, AccessRequest, AccessRequestStatus, AccessRequestStatusValue, ApprovedDataResult, } from "./direct/types.js";
|
package/dist/react.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useDirectVanaConnect
|
|
3
3
|
} from "./direct/use-direct-vana-connect.js";
|
|
4
|
+
import {
|
|
5
|
+
useVanaConnect
|
|
6
|
+
} from "./direct/use-vana-connect.js";
|
|
7
|
+
import {
|
|
8
|
+
createVanaConnectTransports,
|
|
9
|
+
VanaConnectHttpError
|
|
10
|
+
} from "./connect/http-transports.js";
|
|
4
11
|
import {
|
|
5
12
|
createDirectConnectFlow
|
|
6
13
|
} from "./direct/connect-flow.js";
|
|
7
14
|
export {
|
|
15
|
+
VanaConnectHttpError,
|
|
8
16
|
createDirectConnectFlow,
|
|
9
|
-
|
|
17
|
+
createVanaConnectTransports,
|
|
18
|
+
useDirectVanaConnect,
|
|
19
|
+
useVanaConnect
|
|
10
20
|
};
|
|
11
21
|
//# sourceMappingURL=react.js.map
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react.ts"],"sourcesContent":["/**\n * React entry point for the Vana SDK direct Data Portability flow.\n *\n * @remarks\n * Exposes {@link useDirectVanaConnect} (and the underlying framework-agnostic\n * connect-flow store) for browser apps. This entry point is browser-safe and\n * imports nothing Node-only. `react` is a peer dependency.\n *\n * @example\n * ```tsx\n * \"use client\";\n * import { useDirectVanaConnect } from \"@opendatalabs/vana-sdk/react\";\n *\n * export function ConnectNotesButton() {\n * const connect = useDirectVanaConnect({\n * createRequest: () => fetch(\"/api/vana/request\", { method: \"POST\" }).then((r) => r.json()),\n * getStatus: (id) => fetch(`/api/vana/status?requestId=${id}`).then((r) => r.json()),\n * readResult: (id) => fetch(`/api/vana/data?requestId=${id}`).then((r) => r.json()),\n * });\n * const { state, start } = connect;\n * return (\n * <div>\n * <button disabled={state.type !== \"idle\"} onClick={start} type=\"button\">\n * {state.type === \"idle\" ? \"Connect Apple Notes\" : \"Connecting...\"}\n * </button>\n * {state.type === \"awaiting_approval\" && (\n * // Fallback link: if the browser blocked the approval popup, the user\n * // can still open it manually instead of the flow silently hanging.\n * <a href={state.request.approvalUrl} target=\"_blank\" rel=\"noreferrer\">\n * {state.popupBlocked ? \"Popup blocked — open approval\" : \"Open approval\"}\n * </a>\n * )}\n * {state.type === \"ready_to_open\" && (\n * // Mobile deep Direct: render the HTTPS continuation as a primary tap.\n * // The SDK keeps polling in this tab; if the tab is lost, restart.\n * <a href={state.mobileContinuationUrl} target=\"_blank\" rel=\"noreferrer\">\n * Open Vana\n * </a>\n * )}\n * </div>\n * );\n * }\n * ```\n *\n * @category Direct\n * @module react\n */\n\nexport {\n useDirectVanaConnect,\n type UseDirectVanaConnectOptions,\n type UseDirectVanaConnectResult,\n} from \"./direct/use-direct-vana-connect\";\n\n// Framework-agnostic store (usable without React).\nexport {\n createDirectConnectFlow,\n type ConnectWindow,\n type DirectBrowserPlatform,\n type DirectBrowserPlatformPolicy,\n type DirectConnectFlow,\n type DirectConnectRetryOutcome,\n type DirectConnectState,\n type DirectConnectOptions,\n type DirectConnectTransports,\n} from \"./direct/connect-flow\";\n\n// Shared types useful when typing the transports.\nexport type {\n ForegroundDelivery,\n AccessRequest,\n AccessRequestStatus,\n AccessRequestStatusValue,\n ApprovedDataResult,\n} from \"./direct/types\";\n"],"mappings":"AAgDA;AAAA,EACE;AAAA,OAGK;
|
|
1
|
+
{"version":3,"sources":["../src/react.ts"],"sourcesContent":["/**\n * React entry point for the Vana SDK direct Data Portability flow.\n *\n * @remarks\n * Exposes {@link useDirectVanaConnect} (and the underlying framework-agnostic\n * connect-flow store) for browser apps. This entry point is browser-safe and\n * imports nothing Node-only. `react` is a peer dependency.\n *\n * @example\n * ```tsx\n * \"use client\";\n * import { useDirectVanaConnect } from \"@opendatalabs/vana-sdk/react\";\n *\n * export function ConnectNotesButton() {\n * const connect = useDirectVanaConnect({\n * createRequest: () => fetch(\"/api/vana/request\", { method: \"POST\" }).then((r) => r.json()),\n * getStatus: (id) => fetch(`/api/vana/status?requestId=${id}`).then((r) => r.json()),\n * readResult: (id) => fetch(`/api/vana/data?requestId=${id}`).then((r) => r.json()),\n * });\n * const { state, start } = connect;\n * return (\n * <div>\n * <button disabled={state.type !== \"idle\"} onClick={start} type=\"button\">\n * {state.type === \"idle\" ? \"Connect Apple Notes\" : \"Connecting...\"}\n * </button>\n * {state.type === \"awaiting_approval\" && (\n * // Fallback link: if the browser blocked the approval popup, the user\n * // can still open it manually instead of the flow silently hanging.\n * <a href={state.request.approvalUrl} target=\"_blank\" rel=\"noreferrer\">\n * {state.popupBlocked ? \"Popup blocked — open approval\" : \"Open approval\"}\n * </a>\n * )}\n * {state.type === \"ready_to_open\" && (\n * // Mobile deep Direct: render the HTTPS continuation as a primary tap.\n * // The SDK keeps polling in this tab; if the tab is lost, restart.\n * <a href={state.mobileContinuationUrl} target=\"_blank\" rel=\"noreferrer\">\n * Open Vana\n * </a>\n * )}\n * </div>\n * );\n * }\n * ```\n *\n * @category Direct\n * @module react\n */\n\nexport {\n useDirectVanaConnect,\n type UseDirectVanaConnectOptions,\n type UseDirectVanaConnectResult,\n} from \"./direct/use-direct-vana-connect\";\n\n// Zero-transport hook for a `createVanaConnectHandler` backend; presents\n// approval in Vana's in-page sheet by default.\nexport {\n useVanaConnect,\n type UseVanaConnectOptions,\n type UseVanaConnectResult,\n} from \"./direct/use-vana-connect\";\nexport {\n createVanaConnectTransports,\n VanaConnectHttpError,\n type VanaConnectConfig,\n type VanaConnectTransportOptions,\n type VanaConnectTransports,\n} from \"./connect/http-transports\";\nexport type {\n ConnectCompletion,\n ConnectEvent,\n ConnectProgressPhase,\n RequestAuthorization,\n SheetErrorCode,\n} from \"./connect\";\n\n// Framework-agnostic store (usable without React).\nexport {\n createDirectConnectFlow,\n type DirectConnectPresentation,\n type DirectConnectSheetOptions,\n type DirectConnectSheetState,\n type ConnectWindow,\n type DirectBrowserPlatform,\n type DirectBrowserPlatformPolicy,\n type DirectConnectFlow,\n type DirectConnectRetryOutcome,\n type DirectConnectState,\n type DirectConnectOptions,\n type DirectConnectTransports,\n} from \"./direct/connect-flow\";\n\n// Shared types useful when typing the transports.\nexport type {\n ForegroundDelivery,\n AccessRequest,\n AccessRequestStatus,\n AccessRequestStatusValue,\n ApprovedDataResult,\n} from \"./direct/types\";\n"],"mappings":"AAgDA;AAAA,EACE;AAAA,OAGK;AAIP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OAIK;AAUP;AAAA,EACE;AAAA,OAYK;","names":[]}
|
package/dist/server.cjs
CHANGED
|
@@ -19,14 +19,19 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var server_exports = {};
|
|
20
20
|
__export(server_exports, {
|
|
21
21
|
AccessNotApprovedError: () => import_errors.AccessNotApprovedError,
|
|
22
|
+
CONNECT_BINDING_KEY_PURPOSE: () => import_connect_handler.CONNECT_BINDING_KEY_PURPOSE,
|
|
22
23
|
DATA_ACCESS_OP_TYPE: () => import_escrow_payment.DATA_ACCESS_OP_TYPE,
|
|
23
24
|
DEFAULT_TEST_CREDIT_BASE_URL: () => import_test_credit.DEFAULT_TEST_CREDIT_BASE_URL,
|
|
24
25
|
DEV_ENDPOINTS: () => import_endpoints.DEV_ENDPOINTS,
|
|
26
|
+
DIRECT_CONNECT_CAPABILITIES: () => import_controller.DIRECT_CONNECT_CAPABILITIES,
|
|
25
27
|
DirectConfigError: () => import_errors.DirectConfigError,
|
|
26
28
|
DirectOpType: () => import_types.DirectOpType,
|
|
27
29
|
EscrowBalanceTooLowError: () => import_errors.EscrowBalanceTooLowError,
|
|
28
30
|
GRANT_OP_TYPE: () => import_escrow_payment.GRANT_OP_TYPE,
|
|
31
|
+
InvalidPdppGrantError: () => import_pdpp_scopes.InvalidPdppGrantError,
|
|
29
32
|
InvalidScopeEntryError: () => import_scope_actions.InvalidScopeEntryError,
|
|
33
|
+
PDPP_SCOPE_NAMESPACE: () => import_pdpp_scopes.PDPP_SCOPE_NAMESPACE,
|
|
34
|
+
PDPP_SOURCE_ID_PREFIX: () => import_pdpp_scopes.PDPP_SOURCE_ID_PREFIX,
|
|
30
35
|
PRODUCTION_ENDPOINTS: () => import_endpoints.PRODUCTION_ENDPOINTS,
|
|
31
36
|
PaymentRequiredError: () => import_errors.PaymentRequiredError,
|
|
32
37
|
PersonalServerReadError: () => import_errors.PersonalServerReadError,
|
|
@@ -34,40 +39,66 @@ __export(server_exports, {
|
|
|
34
39
|
ScopeNotApprovedError: () => import_errors.ScopeNotApprovedError,
|
|
35
40
|
ScopeSchema: () => import_scopes.ScopeSchema,
|
|
36
41
|
TestCreditError: () => import_test_credit.TestCreditError,
|
|
42
|
+
VANA_ACCOUNT_ORIGINS: () => import_protocol.VANA_ACCOUNT_ORIGINS,
|
|
37
43
|
authorizeEscrowPayment: () => import_escrow_payment.authorizeEscrowPayment,
|
|
38
44
|
authorizeGrantPayment: () => import_escrow_payment.authorizeGrantPayment,
|
|
39
45
|
buildApprovalUrl: () => import_access_request_client.buildApprovalUrl,
|
|
46
|
+
buildDirectAccessRequestAuthMessage: () => import_access_request_client.buildDirectAccessRequestAuthMessage,
|
|
40
47
|
buildEscrowPaymentHeader: () => import_escrow_payment.buildEscrowPaymentHeader,
|
|
41
48
|
buildGrantPaymentHeader: () => import_escrow_payment.buildGrantPaymentHeader,
|
|
42
49
|
buildPersonalServerDataReadRequest: () => import_personal_server_read.buildPersonalServerDataReadRequest,
|
|
50
|
+
buildRequestReadAuthorizationMessage: () => import_request_authorization.buildRequestReadAuthorizationMessage,
|
|
51
|
+
connectBindingCookieName: () => import_connect_handler.connectBindingCookieName,
|
|
43
52
|
createDefaultAccessRequestClient: () => import_access_request_client.createDefaultAccessRequestClient,
|
|
44
53
|
createDefaultNonceSource: () => import_escrow_payment.createDefaultNonceSource,
|
|
45
54
|
createDirectDataController: () => import_controller.createDirectDataController,
|
|
55
|
+
createMemoryRateLimit: () => import_connect_handler.createMemoryRateLimit,
|
|
56
|
+
createVanaConnectHandler: () => import_connect_handler.createVanaConnectHandler,
|
|
46
57
|
dataPathForScope: () => import_personal_server_read.dataPathForScope,
|
|
58
|
+
defaultClientIp: () => import_connect_handler.defaultClientIp,
|
|
47
59
|
findLiveGrant: () => import_grant_union.findLiveGrant,
|
|
48
60
|
formatScopeEntry: () => import_scope_actions.formatScopeEntry,
|
|
49
61
|
getDirectEndpoints: () => import_endpoints.getDirectEndpoints,
|
|
50
62
|
grantPermissions: () => import_scope_actions.grantPermissions,
|
|
63
|
+
grantRequestScopes: () => import_pdpp_scopes.grantRequestScopes,
|
|
51
64
|
hasAction: () => import_scope_actions.hasAction,
|
|
65
|
+
isConnectCapableController: () => import_controller.isConnectCapableController,
|
|
66
|
+
isPdppScopeKey: () => import_pdpp_scopes.isPdppScopeKey,
|
|
67
|
+
isRequestId: () => import_protocol.isRequestId,
|
|
52
68
|
liveGrantScopes: () => import_grant_union.liveGrantScopes,
|
|
53
69
|
mergeWithLiveGrant: () => import_grant_union.mergeWithLiveGrant,
|
|
70
|
+
missingConnectCapabilities: () => import_controller.missingConnectCapabilities,
|
|
71
|
+
parseOriginAllowlist: () => import_account_origin.parseOriginAllowlist,
|
|
72
|
+
parsePdppScopeKey: () => import_pdpp_scopes.parsePdppScopeKey,
|
|
54
73
|
parsePersonalServerPaymentRequired: () => import_personal_server_read.parsePersonalServerPaymentRequired,
|
|
55
74
|
parseScope: () => import_scopes.parseScope,
|
|
56
75
|
parseScopeEntry: () => import_scope_actions.parseScopeEntry,
|
|
57
76
|
paymentResponseMetadataFromHeader: () => import_escrow_payment.paymentResponseMetadataFromHeader,
|
|
77
|
+
pdppGrantsToScopes: () => import_pdpp_scopes.pdppGrantsToScopes,
|
|
78
|
+
pdppScopeKey: () => import_pdpp_scopes.pdppScopeKey,
|
|
58
79
|
permissionsToScopes: () => import_scope_actions.permissionsToScopes,
|
|
80
|
+
readConnectRequest: () => import_protocol.readConnectRequest,
|
|
59
81
|
readPersonalServerData: () => import_personal_server_read.readPersonalServerData,
|
|
82
|
+
requestReadPath: () => import_request_authorization.requestReadPath,
|
|
60
83
|
requestTestCredit: () => import_test_credit.requestTestCredit,
|
|
84
|
+
resolveVanaAccountOrigin: () => import_account_origin.resolveVanaAccountOrigin,
|
|
61
85
|
scopeCoveredByGrant: () => import_scopes.scopeCoveredByGrant,
|
|
62
86
|
scopeMatchesPattern: () => import_scopes.scopeMatchesPattern,
|
|
87
|
+
signRequestReadAuthorization: () => import_request_authorization.signRequestReadAuthorization,
|
|
63
88
|
toDirectFeeBreakdown: () => import_escrow_payment.toDirectFeeBreakdown,
|
|
64
89
|
toDirectPaymentReceipt: () => import_escrow_payment.toDirectPaymentReceipt,
|
|
90
|
+
toNodeHandler: () => import_connect_handler.toNodeHandler,
|
|
65
91
|
tryGrantPermissions: () => import_scope_actions.tryGrantPermissions,
|
|
66
92
|
unionGrantScopes: () => import_grant_union.unionGrantScopes,
|
|
67
|
-
validateAccessRequestQuestions: () => import_access_request_client.validateAccessRequestQuestions
|
|
93
|
+
validateAccessRequestQuestions: () => import_access_request_client.validateAccessRequestQuestions,
|
|
94
|
+
vanaConnectCsp: () => import_protocol.vanaConnectCsp
|
|
68
95
|
});
|
|
69
96
|
module.exports = __toCommonJS(server_exports);
|
|
70
97
|
var import_controller = require("./direct/controller");
|
|
98
|
+
var import_connect_handler = require("./direct/connect-handler");
|
|
99
|
+
var import_request_authorization = require("./direct/request-authorization");
|
|
100
|
+
var import_protocol = require("./connect/protocol");
|
|
101
|
+
var import_account_origin = require("./connect/account-origin");
|
|
71
102
|
var import_access_request_client = require("./direct/access-request-client");
|
|
72
103
|
var import_grant_union = require("./direct/grant-union");
|
|
73
104
|
var import_personal_server_read = require("./direct/personal-server-read");
|
|
@@ -75,20 +106,26 @@ var import_escrow_payment = require("./direct/escrow-payment");
|
|
|
75
106
|
var import_endpoints = require("./direct/endpoints");
|
|
76
107
|
var import_scopes = require("./protocol/scopes");
|
|
77
108
|
var import_scope_actions = require("./protocol/scope-actions");
|
|
109
|
+
var import_pdpp_scopes = require("./protocol/pdpp-scopes");
|
|
78
110
|
var import_errors = require("./direct/errors");
|
|
79
111
|
var import_test_credit = require("./direct/test-credit");
|
|
80
112
|
var import_types = require("./direct/types");
|
|
81
113
|
// Annotate the CommonJS export names for ESM import in node:
|
|
82
114
|
0 && (module.exports = {
|
|
83
115
|
AccessNotApprovedError,
|
|
116
|
+
CONNECT_BINDING_KEY_PURPOSE,
|
|
84
117
|
DATA_ACCESS_OP_TYPE,
|
|
85
118
|
DEFAULT_TEST_CREDIT_BASE_URL,
|
|
86
119
|
DEV_ENDPOINTS,
|
|
120
|
+
DIRECT_CONNECT_CAPABILITIES,
|
|
87
121
|
DirectConfigError,
|
|
88
122
|
DirectOpType,
|
|
89
123
|
EscrowBalanceTooLowError,
|
|
90
124
|
GRANT_OP_TYPE,
|
|
125
|
+
InvalidPdppGrantError,
|
|
91
126
|
InvalidScopeEntryError,
|
|
127
|
+
PDPP_SCOPE_NAMESPACE,
|
|
128
|
+
PDPP_SOURCE_ID_PREFIX,
|
|
92
129
|
PRODUCTION_ENDPOINTS,
|
|
93
130
|
PaymentRequiredError,
|
|
94
131
|
PersonalServerReadError,
|
|
@@ -96,36 +133,58 @@ var import_types = require("./direct/types");
|
|
|
96
133
|
ScopeNotApprovedError,
|
|
97
134
|
ScopeSchema,
|
|
98
135
|
TestCreditError,
|
|
136
|
+
VANA_ACCOUNT_ORIGINS,
|
|
99
137
|
authorizeEscrowPayment,
|
|
100
138
|
authorizeGrantPayment,
|
|
101
139
|
buildApprovalUrl,
|
|
140
|
+
buildDirectAccessRequestAuthMessage,
|
|
102
141
|
buildEscrowPaymentHeader,
|
|
103
142
|
buildGrantPaymentHeader,
|
|
104
143
|
buildPersonalServerDataReadRequest,
|
|
144
|
+
buildRequestReadAuthorizationMessage,
|
|
145
|
+
connectBindingCookieName,
|
|
105
146
|
createDefaultAccessRequestClient,
|
|
106
147
|
createDefaultNonceSource,
|
|
107
148
|
createDirectDataController,
|
|
149
|
+
createMemoryRateLimit,
|
|
150
|
+
createVanaConnectHandler,
|
|
108
151
|
dataPathForScope,
|
|
152
|
+
defaultClientIp,
|
|
109
153
|
findLiveGrant,
|
|
110
154
|
formatScopeEntry,
|
|
111
155
|
getDirectEndpoints,
|
|
112
156
|
grantPermissions,
|
|
157
|
+
grantRequestScopes,
|
|
113
158
|
hasAction,
|
|
159
|
+
isConnectCapableController,
|
|
160
|
+
isPdppScopeKey,
|
|
161
|
+
isRequestId,
|
|
114
162
|
liveGrantScopes,
|
|
115
163
|
mergeWithLiveGrant,
|
|
164
|
+
missingConnectCapabilities,
|
|
165
|
+
parseOriginAllowlist,
|
|
166
|
+
parsePdppScopeKey,
|
|
116
167
|
parsePersonalServerPaymentRequired,
|
|
117
168
|
parseScope,
|
|
118
169
|
parseScopeEntry,
|
|
119
170
|
paymentResponseMetadataFromHeader,
|
|
171
|
+
pdppGrantsToScopes,
|
|
172
|
+
pdppScopeKey,
|
|
120
173
|
permissionsToScopes,
|
|
174
|
+
readConnectRequest,
|
|
121
175
|
readPersonalServerData,
|
|
176
|
+
requestReadPath,
|
|
122
177
|
requestTestCredit,
|
|
178
|
+
resolveVanaAccountOrigin,
|
|
123
179
|
scopeCoveredByGrant,
|
|
124
180
|
scopeMatchesPattern,
|
|
181
|
+
signRequestReadAuthorization,
|
|
125
182
|
toDirectFeeBreakdown,
|
|
126
183
|
toDirectPaymentReceipt,
|
|
184
|
+
toNodeHandler,
|
|
127
185
|
tryGrantPermissions,
|
|
128
186
|
unionGrantScopes,
|
|
129
|
-
validateAccessRequestQuestions
|
|
187
|
+
validateAccessRequestQuestions,
|
|
188
|
+
vanaConnectCsp
|
|
130
189
|
});
|
|
131
190
|
//# sourceMappingURL=server.cjs.map
|
package/dist/server.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts"],"sourcesContent":["/**\n * Server entry point for the Vana SDK direct Data Portability flow.\n *\n * @remarks\n * Exposes {@link createDirectDataController} and its supporting types/errors.\n * This is a Node/server entry point — it owns the app private key and must never\n * be imported into browser code.\n *\n * @example\n * ```typescript\n * import { createDirectDataController } from \"@opendatalabs/vana-sdk/server\";\n *\n * export const vana = createDirectDataController({\n * env: process.env.VANA_ENV === \"dev\" ? \"dev\" : \"production\",\n * appPrivateKey: process.env.VANA_APP_PRIVATE_KEY!,\n * app: { id: \"notes-lens\", name: \"Notes Lens\", homepageUrl: process.env.VANA_APP_URL! },\n * source: \"
|
|
1
|
+
{"version":3,"sources":["../src/server.ts"],"sourcesContent":["/**\n * Server entry point for the Vana SDK direct Data Portability flow.\n *\n * @remarks\n * Exposes {@link createDirectDataController} and its supporting types/errors.\n * This is a Node/server entry point — it owns the app private key and must never\n * be imported into browser code.\n *\n * @example\n * ```typescript\n * import { createDirectDataController } from \"@opendatalabs/vana-sdk/server\";\n *\n * export const vana = createDirectDataController({\n * env: process.env.VANA_ENV === \"dev\" ? \"dev\" : \"production\",\n * appPrivateKey: process.env.VANA_APP_PRIVATE_KEY!,\n * app: { id: \"notes-lens\", name: \"Notes Lens\", homepageUrl: process.env.VANA_APP_URL! },\n * source: \"chatgpt\",\n * // PDPP grants; each stream is requested as `pdpp.<source>.<stream>`.\n * grants: [\n * {\n * source_id: \"https://registry.pdpp.dev/sources/chatgpt\",\n * streams: [\"conversations\", \"messages\"],\n * },\n * ],\n * // Legacy `scopes` entries are still accepted, alone or with `grants`.\n * });\n * ```\n *\n * @category Direct\n * @module server\n */\n\nexport {\n createDirectDataController,\n isConnectCapableController,\n missingConnectCapabilities,\n DIRECT_CONNECT_CAPABILITIES,\n type ConnectCapableDirectDataController,\n type DirectConnectCapabilities,\n type DirectDataController,\n type DirectDataControllerConfig,\n type DirectEscrowConfig,\n} from \"./direct/controller\";\n\n// Embedded connect sheet: one handler for config/request/status/data, and\n// the read capability the sheet asks for.\nexport {\n createVanaConnectHandler,\n toNodeHandler,\n connectBindingCookieName,\n CONNECT_BINDING_KEY_PURPOSE,\n createMemoryRateLimit,\n defaultClientIp,\n type MemoryRateLimitOptions,\n type VanaConnectRateLimit,\n type VanaConnectRateLimitDecision,\n type VanaConnectHandler,\n type VanaConnectHandlerOptions,\n type VanaConnectCreateOptions,\n type VanaConnectErrorCode,\n type VanaConnectConfig,\n type NodeRequestLike,\n type NodeResponseLike,\n type ToNodeHandlerOptions,\n} from \"./direct/connect-handler\";\nexport {\n signRequestReadAuthorization,\n buildRequestReadAuthorizationMessage,\n requestReadPath,\n type SignRequestReadAuthorizationInput,\n} from \"./direct/request-authorization\";\nexport {\n vanaConnectCsp,\n VANA_ACCOUNT_ORIGINS,\n isRequestId,\n readConnectRequest,\n type ConnectRequest,\n type RequestAuthorization,\n type VanaConnectEnv,\n} from \"./connect/protocol\";\nexport {\n parseOriginAllowlist,\n resolveVanaAccountOrigin,\n type ResolveVanaAccountOriginInput,\n} from \"./connect/account-origin\";\n\n// Lower-level building blocks (advanced use / custom transports).\nexport {\n createDefaultAccessRequestClient,\n buildApprovalUrl,\n validateAccessRequestQuestions,\n buildDirectAccessRequestAuthMessage,\n type DefaultAccessRequestClientOptions,\n type FetchLike,\n} from \"./direct/access-request-client\";\n// Grant union: extend the owner's live grant instead of replacing it.\nexport {\n mergeWithLiveGrant,\n liveGrantScopes,\n findLiveGrant,\n unionGrantScopes,\n type GrantUnion,\n type GrantUnionGateway,\n type GrantUnionStatus,\n type MergeWithLiveGrantInput,\n type MergeWithLiveGrantResult,\n} from \"./direct/grant-union\";\nexport {\n buildPersonalServerDataReadRequest,\n readPersonalServerData,\n parsePersonalServerPaymentRequired,\n dataPathForScope,\n type PersonalServerDataReadRequest,\n type PersonalServerReadResult,\n type PersonalServerFetch,\n type PersonalServerTransportRetryOptions,\n type FetchResponseLike,\n} from \"./direct/personal-server-read\";\n// Escrow-backed payment (built on protocol/escrow).\nexport {\n authorizeEscrowPayment,\n authorizeGrantPayment,\n buildEscrowPaymentHeader,\n buildGrantPaymentHeader,\n paymentResponseMetadataFromHeader,\n toDirectPaymentReceipt,\n toDirectFeeBreakdown,\n createDefaultNonceSource,\n DATA_ACCESS_OP_TYPE,\n GRANT_OP_TYPE,\n type EscrowPaymentConfig,\n type EscrowPaymentHeaderConfig,\n type SignTypedDataFn,\n type PaymentNonceSource,\n} from \"./direct/escrow-payment\";\nexport {\n getDirectEndpoints,\n PRODUCTION_ENDPOINTS,\n DEV_ENDPOINTS,\n} from \"./direct/endpoints\";\n// Grant scope entries: the `[operation:]scope` vocabulary the controller's\n// `scopes` are written in, and the PDPP grant -> scope key mapping its\n// `grants` use, so a backend can build and read them without reaching for a\n// platform entry point.\nexport {\n ScopeSchema,\n parseScope,\n scopeMatchesPattern,\n scopeCoveredByGrant,\n type Scope,\n type ParsedScope,\n} from \"./protocol/scopes\";\nexport {\n SCOPE_ACTIONS,\n InvalidScopeEntryError,\n parseScopeEntry,\n formatScopeEntry,\n grantPermissions,\n permissionsToScopes,\n tryGrantPermissions,\n hasAction,\n type ScopeAction,\n type ParsedScopeEntry,\n type GrantPermission,\n} from \"./protocol/scope-actions\";\nexport {\n PDPP_SCOPE_NAMESPACE,\n PDPP_SOURCE_ID_PREFIX,\n InvalidPdppGrantError,\n pdppScopeKey,\n parsePdppScopeKey,\n isPdppScopeKey,\n pdppGrantsToScopes,\n grantRequestScopes,\n type PdppGrant,\n type PdppScopeKeyParts,\n} from \"./protocol/pdpp-scopes\";\n\n// Errors\nexport {\n DirectConfigError,\n AccessNotApprovedError,\n ScopeNotApprovedError,\n PersonalServerReadError,\n PaymentRequiredError,\n EscrowBalanceTooLowError,\n} from \"./direct/errors\";\nexport {\n requestTestCredit,\n TestCreditError,\n DEFAULT_TEST_CREDIT_BASE_URL,\n type TestCreditResult,\n type TestCreditOperation,\n type RequestTestCreditOptions,\n} from \"./direct/test-credit\";\n\n// Shared types\nexport type {\n DirectEnv,\n DirectNetwork,\n DirectAppConfig,\n ForegroundDelivery,\n AppIdentity,\n DirectServiceEndpoints,\n AccessRequest,\n AccessRequestGrantUnion,\n AccessRequestQuestion,\n AccessRequestStatus,\n AccessRequestStatusValue,\n ApprovedDataResult,\n MultiScopeDataResult,\n AccessRequestClient,\n DirectOpTypeValue,\n PersonalServerDataAccessPaymentOperation,\n PersonalServerGrantPaymentOperation,\n PersonalServerPaymentOperation,\n PersonalServerPaymentRequired,\n DirectPaymentReceipt,\n DirectPaymentResponseMetadata,\n DirectFeeBreakdown,\n} from \"./direct/types\";\n\n// Op-type vocabulary constant.\nexport { DirectOpType } from \"./direct/types\";\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;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;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;AAAA;AAAA;AAAA;AAgCA,wBAUO;AAIP,6BAkBO;AACP,mCAKO;AACP,sBAQO;AACP,4BAIO;AAGP,mCAOO;AAEP,yBAUO;AACP,kCAUO;AAEP,4BAeO;AACP,uBAIO;AAKP,oBAOO;AACP,2BAYO;AACP,yBAWO;AAGP,oBAOO;AACP,yBAOO;AA6BP,mBAA6B;","names":[]}
|
package/dist/server.d.ts
CHANGED
|
@@ -14,22 +14,34 @@
|
|
|
14
14
|
* env: process.env.VANA_ENV === "dev" ? "dev" : "production",
|
|
15
15
|
* appPrivateKey: process.env.VANA_APP_PRIVATE_KEY!,
|
|
16
16
|
* app: { id: "notes-lens", name: "Notes Lens", homepageUrl: process.env.VANA_APP_URL! },
|
|
17
|
-
* source: "
|
|
18
|
-
*
|
|
17
|
+
* source: "chatgpt",
|
|
18
|
+
* // PDPP grants; each stream is requested as `pdpp.<source>.<stream>`.
|
|
19
|
+
* grants: [
|
|
20
|
+
* {
|
|
21
|
+
* source_id: "https://registry.pdpp.dev/sources/chatgpt",
|
|
22
|
+
* streams: ["conversations", "messages"],
|
|
23
|
+
* },
|
|
24
|
+
* ],
|
|
25
|
+
* // Legacy `scopes` entries are still accepted, alone or with `grants`.
|
|
19
26
|
* });
|
|
20
27
|
* ```
|
|
21
28
|
*
|
|
22
29
|
* @category Direct
|
|
23
30
|
* @module server
|
|
24
31
|
*/
|
|
25
|
-
export { createDirectDataController, type DirectDataController, type DirectDataControllerConfig, type DirectEscrowConfig, } from "./direct/controller.js";
|
|
26
|
-
export {
|
|
32
|
+
export { createDirectDataController, isConnectCapableController, missingConnectCapabilities, DIRECT_CONNECT_CAPABILITIES, type ConnectCapableDirectDataController, type DirectConnectCapabilities, type DirectDataController, type DirectDataControllerConfig, type DirectEscrowConfig, } from "./direct/controller.js";
|
|
33
|
+
export { createVanaConnectHandler, toNodeHandler, connectBindingCookieName, CONNECT_BINDING_KEY_PURPOSE, createMemoryRateLimit, defaultClientIp, type MemoryRateLimitOptions, type VanaConnectRateLimit, type VanaConnectRateLimitDecision, type VanaConnectHandler, type VanaConnectHandlerOptions, type VanaConnectCreateOptions, type VanaConnectErrorCode, type VanaConnectConfig, type NodeRequestLike, type NodeResponseLike, type ToNodeHandlerOptions, } from "./direct/connect-handler.js";
|
|
34
|
+
export { signRequestReadAuthorization, buildRequestReadAuthorizationMessage, requestReadPath, type SignRequestReadAuthorizationInput, } from "./direct/request-authorization.js";
|
|
35
|
+
export { vanaConnectCsp, VANA_ACCOUNT_ORIGINS, isRequestId, readConnectRequest, type ConnectRequest, type RequestAuthorization, type VanaConnectEnv, } from "./connect/protocol.js";
|
|
36
|
+
export { parseOriginAllowlist, resolveVanaAccountOrigin, type ResolveVanaAccountOriginInput, } from "./connect/account-origin.js";
|
|
37
|
+
export { createDefaultAccessRequestClient, buildApprovalUrl, validateAccessRequestQuestions, buildDirectAccessRequestAuthMessage, type DefaultAccessRequestClientOptions, type FetchLike, } from "./direct/access-request-client.js";
|
|
27
38
|
export { mergeWithLiveGrant, liveGrantScopes, findLiveGrant, unionGrantScopes, type GrantUnion, type GrantUnionGateway, type GrantUnionStatus, type MergeWithLiveGrantInput, type MergeWithLiveGrantResult, } from "./direct/grant-union.js";
|
|
28
39
|
export { buildPersonalServerDataReadRequest, readPersonalServerData, parsePersonalServerPaymentRequired, dataPathForScope, type PersonalServerDataReadRequest, type PersonalServerReadResult, type PersonalServerFetch, type PersonalServerTransportRetryOptions, type FetchResponseLike, } from "./direct/personal-server-read.js";
|
|
29
40
|
export { authorizeEscrowPayment, authorizeGrantPayment, buildEscrowPaymentHeader, buildGrantPaymentHeader, paymentResponseMetadataFromHeader, toDirectPaymentReceipt, toDirectFeeBreakdown, createDefaultNonceSource, DATA_ACCESS_OP_TYPE, GRANT_OP_TYPE, type EscrowPaymentConfig, type EscrowPaymentHeaderConfig, type SignTypedDataFn, type PaymentNonceSource, } from "./direct/escrow-payment.js";
|
|
30
41
|
export { getDirectEndpoints, PRODUCTION_ENDPOINTS, DEV_ENDPOINTS, } from "./direct/endpoints.js";
|
|
31
42
|
export { ScopeSchema, parseScope, scopeMatchesPattern, scopeCoveredByGrant, type Scope, type ParsedScope, } from "./protocol/scopes.js";
|
|
32
43
|
export { SCOPE_ACTIONS, InvalidScopeEntryError, parseScopeEntry, formatScopeEntry, grantPermissions, permissionsToScopes, tryGrantPermissions, hasAction, type ScopeAction, type ParsedScopeEntry, type GrantPermission, } from "./protocol/scope-actions.js";
|
|
44
|
+
export { PDPP_SCOPE_NAMESPACE, PDPP_SOURCE_ID_PREFIX, InvalidPdppGrantError, pdppScopeKey, parsePdppScopeKey, isPdppScopeKey, pdppGrantsToScopes, grantRequestScopes, type PdppGrant, type PdppScopeKeyParts, } from "./protocol/pdpp-scopes.js";
|
|
33
45
|
export { DirectConfigError, AccessNotApprovedError, ScopeNotApprovedError, PersonalServerReadError, PaymentRequiredError, EscrowBalanceTooLowError, } from "./direct/errors.js";
|
|
34
46
|
export { requestTestCredit, TestCreditError, DEFAULT_TEST_CREDIT_BASE_URL, type TestCreditResult, type TestCreditOperation, type RequestTestCreditOptions, } from "./direct/test-credit.js";
|
|
35
47
|
export type { DirectEnv, DirectNetwork, DirectAppConfig, ForegroundDelivery, AppIdentity, DirectServiceEndpoints, AccessRequest, AccessRequestGrantUnion, AccessRequestQuestion, AccessRequestStatus, AccessRequestStatusValue, ApprovedDataResult, MultiScopeDataResult, AccessRequestClient, DirectOpTypeValue, PersonalServerDataAccessPaymentOperation, PersonalServerGrantPaymentOperation, PersonalServerPaymentOperation, PersonalServerPaymentRequired, DirectPaymentReceipt, DirectPaymentResponseMetadata, DirectFeeBreakdown, } from "./direct/types.js";
|
package/dist/server.js
CHANGED
|
@@ -1,10 +1,37 @@
|
|
|
1
1
|
import {
|
|
2
|
-
createDirectDataController
|
|
2
|
+
createDirectDataController,
|
|
3
|
+
isConnectCapableController,
|
|
4
|
+
missingConnectCapabilities,
|
|
5
|
+
DIRECT_CONNECT_CAPABILITIES
|
|
3
6
|
} from "./direct/controller.js";
|
|
7
|
+
import {
|
|
8
|
+
createVanaConnectHandler,
|
|
9
|
+
toNodeHandler,
|
|
10
|
+
connectBindingCookieName,
|
|
11
|
+
CONNECT_BINDING_KEY_PURPOSE,
|
|
12
|
+
createMemoryRateLimit,
|
|
13
|
+
defaultClientIp
|
|
14
|
+
} from "./direct/connect-handler.js";
|
|
15
|
+
import {
|
|
16
|
+
signRequestReadAuthorization,
|
|
17
|
+
buildRequestReadAuthorizationMessage,
|
|
18
|
+
requestReadPath
|
|
19
|
+
} from "./direct/request-authorization.js";
|
|
20
|
+
import {
|
|
21
|
+
vanaConnectCsp,
|
|
22
|
+
VANA_ACCOUNT_ORIGINS,
|
|
23
|
+
isRequestId,
|
|
24
|
+
readConnectRequest
|
|
25
|
+
} from "./connect/protocol.js";
|
|
26
|
+
import {
|
|
27
|
+
parseOriginAllowlist,
|
|
28
|
+
resolveVanaAccountOrigin
|
|
29
|
+
} from "./connect/account-origin.js";
|
|
4
30
|
import {
|
|
5
31
|
createDefaultAccessRequestClient,
|
|
6
32
|
buildApprovalUrl,
|
|
7
|
-
validateAccessRequestQuestions
|
|
33
|
+
validateAccessRequestQuestions,
|
|
34
|
+
buildDirectAccessRequestAuthMessage
|
|
8
35
|
} from "./direct/access-request-client.js";
|
|
9
36
|
import {
|
|
10
37
|
mergeWithLiveGrant,
|
|
@@ -51,6 +78,16 @@ import {
|
|
|
51
78
|
tryGrantPermissions,
|
|
52
79
|
hasAction
|
|
53
80
|
} from "./protocol/scope-actions.js";
|
|
81
|
+
import {
|
|
82
|
+
PDPP_SCOPE_NAMESPACE,
|
|
83
|
+
PDPP_SOURCE_ID_PREFIX,
|
|
84
|
+
InvalidPdppGrantError,
|
|
85
|
+
pdppScopeKey,
|
|
86
|
+
parsePdppScopeKey,
|
|
87
|
+
isPdppScopeKey,
|
|
88
|
+
pdppGrantsToScopes,
|
|
89
|
+
grantRequestScopes
|
|
90
|
+
} from "./protocol/pdpp-scopes.js";
|
|
54
91
|
import {
|
|
55
92
|
DirectConfigError,
|
|
56
93
|
AccessNotApprovedError,
|
|
@@ -67,14 +104,19 @@ import {
|
|
|
67
104
|
import { DirectOpType } from "./direct/types.js";
|
|
68
105
|
export {
|
|
69
106
|
AccessNotApprovedError,
|
|
107
|
+
CONNECT_BINDING_KEY_PURPOSE,
|
|
70
108
|
DATA_ACCESS_OP_TYPE,
|
|
71
109
|
DEFAULT_TEST_CREDIT_BASE_URL,
|
|
72
110
|
DEV_ENDPOINTS,
|
|
111
|
+
DIRECT_CONNECT_CAPABILITIES,
|
|
73
112
|
DirectConfigError,
|
|
74
113
|
DirectOpType,
|
|
75
114
|
EscrowBalanceTooLowError,
|
|
76
115
|
GRANT_OP_TYPE,
|
|
116
|
+
InvalidPdppGrantError,
|
|
77
117
|
InvalidScopeEntryError,
|
|
118
|
+
PDPP_SCOPE_NAMESPACE,
|
|
119
|
+
PDPP_SOURCE_ID_PREFIX,
|
|
78
120
|
PRODUCTION_ENDPOINTS,
|
|
79
121
|
PaymentRequiredError,
|
|
80
122
|
PersonalServerReadError,
|
|
@@ -82,36 +124,58 @@ export {
|
|
|
82
124
|
ScopeNotApprovedError,
|
|
83
125
|
ScopeSchema,
|
|
84
126
|
TestCreditError,
|
|
127
|
+
VANA_ACCOUNT_ORIGINS,
|
|
85
128
|
authorizeEscrowPayment,
|
|
86
129
|
authorizeGrantPayment,
|
|
87
130
|
buildApprovalUrl,
|
|
131
|
+
buildDirectAccessRequestAuthMessage,
|
|
88
132
|
buildEscrowPaymentHeader,
|
|
89
133
|
buildGrantPaymentHeader,
|
|
90
134
|
buildPersonalServerDataReadRequest,
|
|
135
|
+
buildRequestReadAuthorizationMessage,
|
|
136
|
+
connectBindingCookieName,
|
|
91
137
|
createDefaultAccessRequestClient,
|
|
92
138
|
createDefaultNonceSource,
|
|
93
139
|
createDirectDataController,
|
|
140
|
+
createMemoryRateLimit,
|
|
141
|
+
createVanaConnectHandler,
|
|
94
142
|
dataPathForScope,
|
|
143
|
+
defaultClientIp,
|
|
95
144
|
findLiveGrant,
|
|
96
145
|
formatScopeEntry,
|
|
97
146
|
getDirectEndpoints,
|
|
98
147
|
grantPermissions,
|
|
148
|
+
grantRequestScopes,
|
|
99
149
|
hasAction,
|
|
150
|
+
isConnectCapableController,
|
|
151
|
+
isPdppScopeKey,
|
|
152
|
+
isRequestId,
|
|
100
153
|
liveGrantScopes,
|
|
101
154
|
mergeWithLiveGrant,
|
|
155
|
+
missingConnectCapabilities,
|
|
156
|
+
parseOriginAllowlist,
|
|
157
|
+
parsePdppScopeKey,
|
|
102
158
|
parsePersonalServerPaymentRequired,
|
|
103
159
|
parseScope,
|
|
104
160
|
parseScopeEntry,
|
|
105
161
|
paymentResponseMetadataFromHeader,
|
|
162
|
+
pdppGrantsToScopes,
|
|
163
|
+
pdppScopeKey,
|
|
106
164
|
permissionsToScopes,
|
|
165
|
+
readConnectRequest,
|
|
107
166
|
readPersonalServerData,
|
|
167
|
+
requestReadPath,
|
|
108
168
|
requestTestCredit,
|
|
169
|
+
resolveVanaAccountOrigin,
|
|
109
170
|
scopeCoveredByGrant,
|
|
110
171
|
scopeMatchesPattern,
|
|
172
|
+
signRequestReadAuthorization,
|
|
111
173
|
toDirectFeeBreakdown,
|
|
112
174
|
toDirectPaymentReceipt,
|
|
175
|
+
toNodeHandler,
|
|
113
176
|
tryGrantPermissions,
|
|
114
177
|
unionGrantScopes,
|
|
115
|
-
validateAccessRequestQuestions
|
|
178
|
+
validateAccessRequestQuestions,
|
|
179
|
+
vanaConnectCsp
|
|
116
180
|
};
|
|
117
181
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts"],"sourcesContent":["/**\n * Server entry point for the Vana SDK direct Data Portability flow.\n *\n * @remarks\n * Exposes {@link createDirectDataController} and its supporting types/errors.\n * This is a Node/server entry point — it owns the app private key and must never\n * be imported into browser code.\n *\n * @example\n * ```typescript\n * import { createDirectDataController } from \"@opendatalabs/vana-sdk/server\";\n *\n * export const vana = createDirectDataController({\n * env: process.env.VANA_ENV === \"dev\" ? \"dev\" : \"production\",\n * appPrivateKey: process.env.VANA_APP_PRIVATE_KEY!,\n * app: { id: \"notes-lens\", name: \"Notes Lens\", homepageUrl: process.env.VANA_APP_URL! },\n * source: \"
|
|
1
|
+
{"version":3,"sources":["../src/server.ts"],"sourcesContent":["/**\n * Server entry point for the Vana SDK direct Data Portability flow.\n *\n * @remarks\n * Exposes {@link createDirectDataController} and its supporting types/errors.\n * This is a Node/server entry point — it owns the app private key and must never\n * be imported into browser code.\n *\n * @example\n * ```typescript\n * import { createDirectDataController } from \"@opendatalabs/vana-sdk/server\";\n *\n * export const vana = createDirectDataController({\n * env: process.env.VANA_ENV === \"dev\" ? \"dev\" : \"production\",\n * appPrivateKey: process.env.VANA_APP_PRIVATE_KEY!,\n * app: { id: \"notes-lens\", name: \"Notes Lens\", homepageUrl: process.env.VANA_APP_URL! },\n * source: \"chatgpt\",\n * // PDPP grants; each stream is requested as `pdpp.<source>.<stream>`.\n * grants: [\n * {\n * source_id: \"https://registry.pdpp.dev/sources/chatgpt\",\n * streams: [\"conversations\", \"messages\"],\n * },\n * ],\n * // Legacy `scopes` entries are still accepted, alone or with `grants`.\n * });\n * ```\n *\n * @category Direct\n * @module server\n */\n\nexport {\n createDirectDataController,\n isConnectCapableController,\n missingConnectCapabilities,\n DIRECT_CONNECT_CAPABILITIES,\n type ConnectCapableDirectDataController,\n type DirectConnectCapabilities,\n type DirectDataController,\n type DirectDataControllerConfig,\n type DirectEscrowConfig,\n} from \"./direct/controller\";\n\n// Embedded connect sheet: one handler for config/request/status/data, and\n// the read capability the sheet asks for.\nexport {\n createVanaConnectHandler,\n toNodeHandler,\n connectBindingCookieName,\n CONNECT_BINDING_KEY_PURPOSE,\n createMemoryRateLimit,\n defaultClientIp,\n type MemoryRateLimitOptions,\n type VanaConnectRateLimit,\n type VanaConnectRateLimitDecision,\n type VanaConnectHandler,\n type VanaConnectHandlerOptions,\n type VanaConnectCreateOptions,\n type VanaConnectErrorCode,\n type VanaConnectConfig,\n type NodeRequestLike,\n type NodeResponseLike,\n type ToNodeHandlerOptions,\n} from \"./direct/connect-handler\";\nexport {\n signRequestReadAuthorization,\n buildRequestReadAuthorizationMessage,\n requestReadPath,\n type SignRequestReadAuthorizationInput,\n} from \"./direct/request-authorization\";\nexport {\n vanaConnectCsp,\n VANA_ACCOUNT_ORIGINS,\n isRequestId,\n readConnectRequest,\n type ConnectRequest,\n type RequestAuthorization,\n type VanaConnectEnv,\n} from \"./connect/protocol\";\nexport {\n parseOriginAllowlist,\n resolveVanaAccountOrigin,\n type ResolveVanaAccountOriginInput,\n} from \"./connect/account-origin\";\n\n// Lower-level building blocks (advanced use / custom transports).\nexport {\n createDefaultAccessRequestClient,\n buildApprovalUrl,\n validateAccessRequestQuestions,\n buildDirectAccessRequestAuthMessage,\n type DefaultAccessRequestClientOptions,\n type FetchLike,\n} from \"./direct/access-request-client\";\n// Grant union: extend the owner's live grant instead of replacing it.\nexport {\n mergeWithLiveGrant,\n liveGrantScopes,\n findLiveGrant,\n unionGrantScopes,\n type GrantUnion,\n type GrantUnionGateway,\n type GrantUnionStatus,\n type MergeWithLiveGrantInput,\n type MergeWithLiveGrantResult,\n} from \"./direct/grant-union\";\nexport {\n buildPersonalServerDataReadRequest,\n readPersonalServerData,\n parsePersonalServerPaymentRequired,\n dataPathForScope,\n type PersonalServerDataReadRequest,\n type PersonalServerReadResult,\n type PersonalServerFetch,\n type PersonalServerTransportRetryOptions,\n type FetchResponseLike,\n} from \"./direct/personal-server-read\";\n// Escrow-backed payment (built on protocol/escrow).\nexport {\n authorizeEscrowPayment,\n authorizeGrantPayment,\n buildEscrowPaymentHeader,\n buildGrantPaymentHeader,\n paymentResponseMetadataFromHeader,\n toDirectPaymentReceipt,\n toDirectFeeBreakdown,\n createDefaultNonceSource,\n DATA_ACCESS_OP_TYPE,\n GRANT_OP_TYPE,\n type EscrowPaymentConfig,\n type EscrowPaymentHeaderConfig,\n type SignTypedDataFn,\n type PaymentNonceSource,\n} from \"./direct/escrow-payment\";\nexport {\n getDirectEndpoints,\n PRODUCTION_ENDPOINTS,\n DEV_ENDPOINTS,\n} from \"./direct/endpoints\";\n// Grant scope entries: the `[operation:]scope` vocabulary the controller's\n// `scopes` are written in, and the PDPP grant -> scope key mapping its\n// `grants` use, so a backend can build and read them without reaching for a\n// platform entry point.\nexport {\n ScopeSchema,\n parseScope,\n scopeMatchesPattern,\n scopeCoveredByGrant,\n type Scope,\n type ParsedScope,\n} from \"./protocol/scopes\";\nexport {\n SCOPE_ACTIONS,\n InvalidScopeEntryError,\n parseScopeEntry,\n formatScopeEntry,\n grantPermissions,\n permissionsToScopes,\n tryGrantPermissions,\n hasAction,\n type ScopeAction,\n type ParsedScopeEntry,\n type GrantPermission,\n} from \"./protocol/scope-actions\";\nexport {\n PDPP_SCOPE_NAMESPACE,\n PDPP_SOURCE_ID_PREFIX,\n InvalidPdppGrantError,\n pdppScopeKey,\n parsePdppScopeKey,\n isPdppScopeKey,\n pdppGrantsToScopes,\n grantRequestScopes,\n type PdppGrant,\n type PdppScopeKeyParts,\n} from \"./protocol/pdpp-scopes\";\n\n// Errors\nexport {\n DirectConfigError,\n AccessNotApprovedError,\n ScopeNotApprovedError,\n PersonalServerReadError,\n PaymentRequiredError,\n EscrowBalanceTooLowError,\n} from \"./direct/errors\";\nexport {\n requestTestCredit,\n TestCreditError,\n DEFAULT_TEST_CREDIT_BASE_URL,\n type TestCreditResult,\n type TestCreditOperation,\n type RequestTestCreditOptions,\n} from \"./direct/test-credit\";\n\n// Shared types\nexport type {\n DirectEnv,\n DirectNetwork,\n DirectAppConfig,\n ForegroundDelivery,\n AppIdentity,\n DirectServiceEndpoints,\n AccessRequest,\n AccessRequestGrantUnion,\n AccessRequestQuestion,\n AccessRequestStatus,\n AccessRequestStatusValue,\n ApprovedDataResult,\n MultiScopeDataResult,\n AccessRequestClient,\n DirectOpTypeValue,\n PersonalServerDataAccessPaymentOperation,\n PersonalServerGrantPaymentOperation,\n PersonalServerPaymentOperation,\n PersonalServerPaymentRequired,\n DirectPaymentReceipt,\n DirectPaymentResponseMetadata,\n DirectFeeBreakdown,\n} from \"./direct/types\";\n\n// Op-type vocabulary constant.\nexport { DirectOpType } from \"./direct/types\";\n"],"mappings":"AAgCA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAMK;AAIP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAYK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAMK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAMK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAKK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AA6BP,SAAS,oBAAoB;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendatalabs/vana-sdk",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"description": "A TypeScript library for interacting with Vana Network smart contracts.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -55,6 +55,15 @@
|
|
|
55
55
|
"types": "./dist/react.d.ts",
|
|
56
56
|
"import": "./dist/react.js"
|
|
57
57
|
},
|
|
58
|
+
"./connect": {
|
|
59
|
+
"types": "./dist/connect.d.ts",
|
|
60
|
+
"import": "./dist/connect.js"
|
|
61
|
+
},
|
|
62
|
+
"./connect/protocol": {
|
|
63
|
+
"types": "./dist/connect/protocol.d.ts",
|
|
64
|
+
"import": "./dist/connect/protocol.js",
|
|
65
|
+
"require": "./dist/connect/protocol.cjs"
|
|
66
|
+
},
|
|
58
67
|
"./session-relay": {
|
|
59
68
|
"browser": {
|
|
60
69
|
"types": "./dist/session-relay.d.ts",
|
|
@@ -170,6 +179,7 @@
|
|
|
170
179
|
"eslint-plugin-tsdoc": "^0.4.0",
|
|
171
180
|
"eslint-plugin-unused-imports": "^4.2.0",
|
|
172
181
|
"globals": "^16.3.0",
|
|
182
|
+
"happy-dom": "^20.9.0",
|
|
173
183
|
"prettier": "^3.5.3",
|
|
174
184
|
"react": "^19.0.0",
|
|
175
185
|
"rimraf": "^6.0.1",
|