@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.
Files changed (106) hide show
  1. package/README.md +176 -0
  2. package/dist/connect/account-origin.cjs +72 -0
  3. package/dist/connect/account-origin.cjs.map +1 -0
  4. package/dist/connect/account-origin.d.ts +92 -0
  5. package/dist/connect/account-origin.js +47 -0
  6. package/dist/connect/account-origin.js.map +1 -0
  7. package/dist/connect/account-origin.test.d.ts +1 -0
  8. package/dist/connect/chrome.cjs +284 -0
  9. package/dist/connect/chrome.cjs.map +1 -0
  10. package/dist/connect/chrome.d.ts +42 -0
  11. package/dist/connect/chrome.js +256 -0
  12. package/dist/connect/chrome.js.map +1 -0
  13. package/dist/connect/http-transports.cjs +100 -0
  14. package/dist/connect/http-transports.cjs.map +1 -0
  15. package/dist/connect/http-transports.d.ts +77 -0
  16. package/dist/connect/http-transports.js +75 -0
  17. package/dist/connect/http-transports.js.map +1 -0
  18. package/dist/connect/http-transports.test.d.ts +1 -0
  19. package/dist/connect/launcher.cjs +232 -0
  20. package/dist/connect/launcher.cjs.map +1 -0
  21. package/dist/connect/launcher.d.ts +129 -0
  22. package/dist/connect/launcher.js +220 -0
  23. package/dist/connect/launcher.js.map +1 -0
  24. package/dist/connect/launcher.test.d.ts +1 -0
  25. package/dist/connect/protocol.cjs +259 -0
  26. package/dist/connect/protocol.cjs.map +1 -0
  27. package/dist/connect/protocol.d.ts +331 -0
  28. package/dist/connect/protocol.js +215 -0
  29. package/dist/connect/protocol.js.map +1 -0
  30. package/dist/connect/protocol.test.d.ts +1 -0
  31. package/dist/connect.cjs +55 -0
  32. package/dist/connect.cjs.map +1 -0
  33. package/dist/connect.d.ts +35 -0
  34. package/dist/connect.js +34 -0
  35. package/dist/connect.js.map +1 -0
  36. package/dist/direct/connect-flow-sheet.test.d.ts +1 -0
  37. package/dist/direct/connect-flow.cjs +211 -1
  38. package/dist/direct/connect-flow.cjs.map +1 -1
  39. package/dist/direct/connect-flow.d.ts +75 -0
  40. package/dist/direct/connect-flow.js +213 -1
  41. package/dist/direct/connect-flow.js.map +1 -1
  42. package/dist/direct/connect-handler.cjs +493 -0
  43. package/dist/direct/connect-handler.cjs.map +1 -0
  44. package/dist/direct/connect-handler.d.ts +246 -0
  45. package/dist/direct/connect-handler.js +476 -0
  46. package/dist/direct/connect-handler.js.map +1 -0
  47. package/dist/direct/connect-handler.test.d.ts +1 -0
  48. package/dist/direct/controller.cjs +86 -17
  49. package/dist/direct/controller.cjs.map +1 -1
  50. package/dist/direct/controller.d.ts +101 -6
  51. package/dist/direct/controller.js +86 -16
  52. package/dist/direct/controller.js.map +1 -1
  53. package/dist/direct/endpoints.cjs +5 -2
  54. package/dist/direct/endpoints.cjs.map +1 -1
  55. package/dist/direct/endpoints.js +5 -2
  56. package/dist/direct/endpoints.js.map +1 -1
  57. package/dist/direct/request-authorization.cjs +65 -0
  58. package/dist/direct/request-authorization.cjs.map +1 -0
  59. package/dist/direct/request-authorization.d.ts +65 -0
  60. package/dist/direct/request-authorization.js +39 -0
  61. package/dist/direct/request-authorization.js.map +1 -0
  62. package/dist/direct/request-authorization.test.d.ts +1 -0
  63. package/dist/direct/types.cjs.map +1 -1
  64. package/dist/direct/types.d.ts +6 -0
  65. package/dist/direct/types.js.map +1 -1
  66. package/dist/direct/use-direct-vana-connect.cjs +18 -1
  67. package/dist/direct/use-direct-vana-connect.cjs.map +1 -1
  68. package/dist/direct/use-direct-vana-connect.js +18 -1
  69. package/dist/direct/use-direct-vana-connect.js.map +1 -1
  70. package/dist/direct/use-vana-connect.cjs +84 -0
  71. package/dist/direct/use-vana-connect.cjs.map +1 -0
  72. package/dist/direct/use-vana-connect.d.ts +59 -0
  73. package/dist/direct/use-vana-connect.js +64 -0
  74. package/dist/direct/use-vana-connect.js.map +1 -0
  75. package/dist/direct/use-vana-connect.test.d.ts +1 -0
  76. package/dist/index.browser.d.ts +1 -0
  77. package/dist/index.browser.js +104 -0
  78. package/dist/index.browser.js.map +4 -4
  79. package/dist/index.node.cjs +112 -0
  80. package/dist/index.node.cjs.map +3 -3
  81. package/dist/index.node.d.ts +1 -0
  82. package/dist/index.node.js +104 -0
  83. package/dist/index.node.js.map +4 -4
  84. package/dist/protocol/fixtures/pdpp-scope-keys.json +133 -0
  85. package/dist/protocol/pdpp-scopes.cjs +134 -0
  86. package/dist/protocol/pdpp-scopes.cjs.map +1 -0
  87. package/dist/protocol/pdpp-scopes.d.ts +123 -0
  88. package/dist/protocol/pdpp-scopes.js +103 -0
  89. package/dist/protocol/pdpp-scopes.js.map +1 -0
  90. package/dist/protocol/pdpp-scopes.test.d.ts +1 -0
  91. package/dist/protocol/scopes.cjs +17 -0
  92. package/dist/protocol/scopes.cjs.map +1 -1
  93. package/dist/protocol/scopes.d.ts +1 -0
  94. package/dist/protocol/scopes.js +18 -0
  95. package/dist/protocol/scopes.js.map +1 -1
  96. package/dist/react.cjs +10 -2
  97. package/dist/react.cjs.map +1 -1
  98. package/dist/react.d.ts +4 -1
  99. package/dist/react.js +11 -1
  100. package/dist/react.js.map +1 -1
  101. package/dist/server.cjs +61 -2
  102. package/dist/server.cjs.map +1 -1
  103. package/dist/server.d.ts +16 -4
  104. package/dist/server.js +67 -3
  105. package/dist/server.js.map +1 -1
  106. 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
- useDirectVanaConnect: () => import_use_direct_vana_connect.useDirectVanaConnect
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
- useDirectVanaConnect
36
+ createVanaConnectTransports,
37
+ useDirectVanaConnect,
38
+ useVanaConnect
31
39
  });
32
40
  //# sourceMappingURL=react.cjs.map
@@ -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;AAGP,0BAUO;","names":[]}
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 { createDirectConnectFlow, type ConnectWindow, type DirectBrowserPlatform, type DirectBrowserPlatformPolicy, type DirectConnectFlow, type DirectConnectRetryOutcome, type DirectConnectState, type DirectConnectOptions, type DirectConnectTransports, } from "./direct/connect-flow.js";
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
- useDirectVanaConnect
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;AAGP;AAAA,EACE;AAAA,OASK;","names":[]}
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
@@ -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: \"icloud_notes\",\n * scopes: [\"icloud_notes.notes\"],\n * });\n * ```\n *\n * @category Direct\n * @module server\n */\n\nexport {\n createDirectDataController,\n type DirectDataController,\n type DirectDataControllerConfig,\n type DirectEscrowConfig,\n} from \"./direct/controller\";\n\n// Lower-level building blocks (advanced use / custom transports).\nexport {\n createDefaultAccessRequestClient,\n buildApprovalUrl,\n validateAccessRequestQuestions,\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, so a backend can build and read them without\n// reaching for a 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\";\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;AAyBA,wBAKO;AAGP,mCAMO;AAEP,yBAUO;AACP,kCAUO;AAEP,4BAeO;AACP,uBAIO;AAIP,oBAOO;AACP,2BAYO;AAGP,oBAOO;AACP,yBAOO;AA6BP,mBAA6B;","names":[]}
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: "icloud_notes",
18
- * scopes: ["icloud_notes.notes"],
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 { createDefaultAccessRequestClient, buildApprovalUrl, validateAccessRequestQuestions, type DefaultAccessRequestClientOptions, type FetchLike, } from "./direct/access-request-client.js";
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
@@ -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: \"icloud_notes\",\n * scopes: [\"icloud_notes.notes\"],\n * });\n * ```\n *\n * @category Direct\n * @module server\n */\n\nexport {\n createDirectDataController,\n type DirectDataController,\n type DirectDataControllerConfig,\n type DirectEscrowConfig,\n} from \"./direct/controller\";\n\n// Lower-level building blocks (advanced use / custom transports).\nexport {\n createDefaultAccessRequestClient,\n buildApprovalUrl,\n validateAccessRequestQuestions,\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, so a backend can build and read them without\n// reaching for a 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\";\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":"AAyBA;AAAA,EACE;AAAA,OAIK;AAGP;AAAA,EACE;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;AAIP;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;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":[]}
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.4.0",
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",