@hubspot/app-connect-sdk 1.0.0-alpha.2 → 1.0.0-alpha.21

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 (731) hide show
  1. package/.turbo/turbo-format$colon$check.log +1 -1
  2. package/.turbo/turbo-test.log +101 -57
  3. package/.turbo/turbo-tsdown.log +474 -469
  4. package/build/tsconfig.browser.tsbuildinfo +1 -1
  5. package/build/tsconfig.server.tsbuildinfo +1 -1
  6. package/dist/browser/{HubSpotAppConnect-BW45gyDs.js → HubSpotAppConnect-721kYr9d.js} +17 -23
  7. package/dist/browser/HubSpotAppConnect-721kYr9d.js.map +1 -0
  8. package/dist/browser/{create-vctOhpX9.js → create-DxEyGG-k.js} +336 -100
  9. package/dist/browser/create-DxEyGG-k.js.map +1 -0
  10. package/dist/browser/index.d.ts +2 -2
  11. package/dist/browser/index.js +1 -1
  12. package/dist/browser/react/lovable.d.ts +9 -2
  13. package/dist/browser/react/lovable.js +7 -4
  14. package/dist/browser/react/lovable.js.map +1 -1
  15. package/dist/browser/react.d.ts +2 -3
  16. package/dist/browser/react.js +1 -1
  17. package/dist/browser/{types-rTQw6A54.d.ts → types-C3wed8dU.d.ts} +52 -7
  18. package/dist/server/api-client-core/apis/account/account-info-types.generated.d.ts +73 -85
  19. package/dist/server/api-client-core/apis/account/account-info.generated.d.ts +3 -3
  20. package/dist/server/api-client-core/apis/account/account-info.generated.js +4 -3
  21. package/dist/server/api-client-core/apis/account/account-info.generated.js.map +1 -1
  22. package/dist/server/api-client-core/apis/account/audit-logs-types.generated.d.ts +203 -215
  23. package/dist/server/api-client-core/apis/account/audit-logs.generated.d.ts +3 -3
  24. package/dist/server/api-client-core/apis/account/audit-logs.generated.js +4 -3
  25. package/dist/server/api-client-core/apis/account/audit-logs.generated.js.map +1 -1
  26. package/dist/server/api-client-core/apis/auth/oauth-types.generated.d.ts +78 -90
  27. package/dist/server/api-client-core/apis/auth/oauth.generated.d.ts +1 -1
  28. package/dist/server/api-client-core/apis/auth/oauth.generated.js +3 -2
  29. package/dist/server/api-client-core/apis/auth/oauth.generated.js.map +1 -1
  30. package/dist/server/api-client-core/apis/automation/actions-types.generated.d.ts +779 -794
  31. package/dist/server/api-client-core/apis/automation/actions.generated.d.ts +6 -3
  32. package/dist/server/api-client-core/apis/automation/actions.generated.js +101 -102
  33. package/dist/server/api-client-core/apis/automation/actions.generated.js.map +1 -1
  34. package/dist/server/api-client-core/apis/automation/sequences-types.generated.d.ts +370 -382
  35. package/dist/server/api-client-core/apis/automation/sequences.generated.d.ts +1 -1
  36. package/dist/server/api-client-core/apis/automation/sequences.generated.js +3 -2
  37. package/dist/server/api-client-core/apis/automation/sequences.generated.js.map +1 -1
  38. package/dist/server/api-client-core/apis/business-units-types.generated.d.ts +43 -55
  39. package/dist/server/api-client-core/apis/business-units.generated.d.ts +3 -3
  40. package/dist/server/api-client-core/apis/business-units.generated.js +4 -3
  41. package/dist/server/api-client-core/apis/business-units.generated.js.map +1 -1
  42. package/dist/server/api-client-core/apis/cms/authors-types.generated.d.ts +420 -445
  43. package/dist/server/api-client-core/apis/cms/authors.generated.d.ts +4 -3
  44. package/dist/server/api-client-core/apis/cms/authors.generated.js +155 -158
  45. package/dist/server/api-client-core/apis/cms/authors.generated.js.map +1 -1
  46. package/dist/server/api-client-core/apis/cms/blog-settings-types.generated.d.ts +270 -295
  47. package/dist/server/api-client-core/apis/cms/blog-settings.generated.d.ts +4 -3
  48. package/dist/server/api-client-core/apis/cms/blog-settings.generated.js +35 -38
  49. package/dist/server/api-client-core/apis/cms/blog-settings.generated.js.map +1 -1
  50. package/dist/server/api-client-core/apis/cms/cms-content-audit-types.generated.d.ts +107 -131
  51. package/dist/server/api-client-core/apis/cms/cms-content-audit.generated.d.ts +3 -3
  52. package/dist/server/api-client-core/apis/cms/cms-content-audit.generated.js +6 -5
  53. package/dist/server/api-client-core/apis/cms/cms-content-audit.generated.js.map +1 -1
  54. package/dist/server/api-client-core/apis/cms/domains-types.generated.d.ts +155 -167
  55. package/dist/server/api-client-core/apis/cms/domains.generated.d.ts +2 -2
  56. package/dist/server/api-client-core/apis/cms/domains.generated.js +3 -2
  57. package/dist/server/api-client-core/apis/cms/domains.generated.js.map +1 -1
  58. package/dist/server/api-client-core/apis/cms/hubdb-types.generated.d.ts +876 -889
  59. package/dist/server/api-client-core/apis/cms/hubdb.generated.d.ts +4 -3
  60. package/dist/server/api-client-core/apis/cms/hubdb.generated.js +184 -185
  61. package/dist/server/api-client-core/apis/cms/hubdb.generated.js.map +1 -1
  62. package/dist/server/api-client-core/apis/cms/media-bridge-types.generated.d.ts +1550 -1575
  63. package/dist/server/api-client-core/apis/cms/media-bridge.generated.d.ts +4 -3
  64. package/dist/server/api-client-core/apis/cms/media-bridge.generated.js +161 -164
  65. package/dist/server/api-client-core/apis/cms/media-bridge.generated.js.map +1 -1
  66. package/dist/server/api-client-core/apis/cms/pages-types.generated.d.ts +1583 -1547
  67. package/dist/server/api-client-core/apis/cms/pages.generated.d.ts +15 -3
  68. package/dist/server/api-client-core/apis/cms/pages.generated.js +335 -326
  69. package/dist/server/api-client-core/apis/cms/pages.generated.js.map +1 -1
  70. package/dist/server/api-client-core/apis/cms/posts-types.generated.d.ts +900 -904
  71. package/dist/server/api-client-core/apis/cms/posts.generated.d.ts +7 -3
  72. package/dist/server/api-client-core/apis/cms/posts.generated.js +197 -196
  73. package/dist/server/api-client-core/apis/cms/posts.generated.js.map +1 -1
  74. package/dist/server/api-client-core/apis/cms/site-search-types.generated.d.ts +162 -174
  75. package/dist/server/api-client-core/apis/cms/site-search.generated.d.ts +3 -3
  76. package/dist/server/api-client-core/apis/cms/site-search.generated.js +4 -3
  77. package/dist/server/api-client-core/apis/cms/site-search.generated.js.map +1 -1
  78. package/dist/server/api-client-core/apis/cms/source-code-types.generated.d.ts +148 -172
  79. package/dist/server/api-client-core/apis/cms/source-code.generated.d.ts +3 -3
  80. package/dist/server/api-client-core/apis/cms/source-code.generated.js +40 -43
  81. package/dist/server/api-client-core/apis/cms/source-code.generated.js.map +1 -1
  82. package/dist/server/api-client-core/apis/cms/tags-types.generated.d.ts +406 -420
  83. package/dist/server/api-client-core/apis/cms/tags.generated.d.ts +5 -3
  84. package/dist/server/api-client-core/apis/cms/tags.generated.js +157 -158
  85. package/dist/server/api-client-core/apis/cms/tags.generated.js.map +1 -1
  86. package/dist/server/api-client-core/apis/cms/url-mappings-types.generated.d.ts +127 -139
  87. package/dist/server/api-client-core/apis/cms/url-mappings.generated.d.ts +3 -3
  88. package/dist/server/api-client-core/apis/cms/url-mappings.generated.js +4 -3
  89. package/dist/server/api-client-core/apis/cms/url-mappings.generated.js.map +1 -1
  90. package/dist/server/api-client-core/apis/cms/url-redirects-types.generated.d.ts +170 -182
  91. package/dist/server/api-client-core/apis/cms/url-redirects.generated.d.ts +3 -3
  92. package/dist/server/api-client-core/apis/cms/url-redirects.generated.js +4 -3
  93. package/dist/server/api-client-core/apis/cms/url-redirects.generated.js.map +1 -1
  94. package/dist/server/api-client-core/apis/communication-preferences/subscriptions-types.generated.d.ts +728 -742
  95. package/dist/server/api-client-core/apis/communication-preferences/subscriptions.generated.d.ts +5 -3
  96. package/dist/server/api-client-core/apis/communication-preferences/subscriptions.generated.js +66 -69
  97. package/dist/server/api-client-core/apis/communication-preferences/subscriptions.generated.js.map +1 -1
  98. package/dist/server/api-client-core/apis/conversations/custom-channels-types.generated.d.ts +445 -471
  99. package/dist/server/api-client-core/apis/conversations/custom-channels.generated.d.ts +5 -3
  100. package/dist/server/api-client-core/apis/conversations/custom-channels.generated.js +70 -73
  101. package/dist/server/api-client-core/apis/conversations/custom-channels.generated.js.map +1 -1
  102. package/dist/server/api-client-core/apis/conversations/visitor-identification-types.generated.d.ts +28 -40
  103. package/dist/server/api-client-core/apis/conversations/visitor-identification.generated.d.ts +3 -3
  104. package/dist/server/api-client-core/apis/conversations/visitor-identification.generated.js +3 -2
  105. package/dist/server/api-client-core/apis/conversations/visitor-identification.generated.js.map +1 -1
  106. package/dist/server/api-client-core/apis/conversations-types.generated.d.ts +768 -781
  107. package/dist/server/api-client-core/apis/conversations.generated.d.ts +4 -3
  108. package/dist/server/api-client-core/apis/conversations.generated.js +101 -102
  109. package/dist/server/api-client-core/apis/conversations.generated.js.map +1 -1
  110. package/dist/server/api-client-core/apis/crm/app-uninstalls-types.generated.d.ts +8 -19
  111. package/dist/server/api-client-core/apis/crm/app-uninstalls.generated.d.ts +3 -3
  112. package/dist/server/api-client-core/apis/crm/app-uninstalls.generated.js +3 -2
  113. package/dist/server/api-client-core/apis/crm/app-uninstalls.generated.js.map +1 -1
  114. package/dist/server/api-client-core/apis/crm/appointments-types.generated.d.ts +887 -891
  115. package/dist/server/api-client-core/apis/crm/appointments.generated.d.ts +7 -3
  116. package/dist/server/api-client-core/apis/crm/appointments.generated.js +105 -106
  117. package/dist/server/api-client-core/apis/crm/appointments.generated.js.map +1 -1
  118. package/dist/server/api-client-core/apis/crm/associations-schema-types.generated.d.ts +247 -260
  119. package/dist/server/api-client-core/apis/crm/associations-schema.generated.d.ts +4 -3
  120. package/dist/server/api-client-core/apis/crm/associations-schema.generated.js +48 -49
  121. package/dist/server/api-client-core/apis/crm/associations-schema.generated.js.map +1 -1
  122. package/dist/server/api-client-core/apis/crm/associations-types.generated.d.ts +576 -590
  123. package/dist/server/api-client-core/apis/crm/associations.generated.d.ts +5 -3
  124. package/dist/server/api-client-core/apis/crm/associations.generated.js +71 -72
  125. package/dist/server/api-client-core/apis/crm/associations.generated.js.map +1 -1
  126. package/dist/server/api-client-core/apis/crm/calling-extensions-types.generated.d.ts +355 -379
  127. package/dist/server/api-client-core/apis/crm/calling-extensions.generated.d.ts +3 -3
  128. package/dist/server/api-client-core/apis/crm/calling-extensions.generated.js +34 -37
  129. package/dist/server/api-client-core/apis/crm/calling-extensions.generated.js.map +1 -1
  130. package/dist/server/api-client-core/apis/crm/calls-types.generated.d.ts +755 -769
  131. package/dist/server/api-client-core/apis/crm/calls.generated.d.ts +5 -3
  132. package/dist/server/api-client-core/apis/crm/calls.generated.js +58 -57
  133. package/dist/server/api-client-core/apis/crm/calls.generated.js.map +1 -1
  134. package/dist/server/api-client-core/apis/crm/carts-types.generated.d.ts +755 -769
  135. package/dist/server/api-client-core/apis/crm/carts.generated.d.ts +5 -3
  136. package/dist/server/api-client-core/apis/crm/carts.generated.js +58 -57
  137. package/dist/server/api-client-core/apis/crm/carts.generated.js.map +1 -1
  138. package/dist/server/api-client-core/apis/crm/commerce-payments-types.generated.d.ts +755 -769
  139. package/dist/server/api-client-core/apis/crm/commerce-payments.generated.d.ts +5 -3
  140. package/dist/server/api-client-core/apis/crm/commerce-payments.generated.js +58 -57
  141. package/dist/server/api-client-core/apis/crm/commerce-payments.generated.js.map +1 -1
  142. package/dist/server/api-client-core/apis/crm/commerce-subscriptions-types.generated.d.ts +752 -766
  143. package/dist/server/api-client-core/apis/crm/commerce-subscriptions.generated.d.ts +5 -3
  144. package/dist/server/api-client-core/apis/crm/commerce-subscriptions.generated.js +58 -57
  145. package/dist/server/api-client-core/apis/crm/commerce-subscriptions.generated.js.map +1 -1
  146. package/dist/server/api-client-core/apis/crm/communications-types.generated.d.ts +755 -769
  147. package/dist/server/api-client-core/apis/crm/communications.generated.d.ts +5 -3
  148. package/dist/server/api-client-core/apis/crm/communications.generated.js +58 -57
  149. package/dist/server/api-client-core/apis/crm/communications.generated.js.map +1 -1
  150. package/dist/server/api-client-core/apis/crm/companies-types.generated.d.ts +769 -795
  151. package/dist/server/api-client-core/apis/crm/companies.generated.d.ts +5 -3
  152. package/dist/server/api-client-core/apis/crm/companies.generated.js +59 -58
  153. package/dist/server/api-client-core/apis/crm/companies.generated.js.map +1 -1
  154. package/dist/server/api-client-core/apis/crm/contacts-types.generated.d.ts +786 -812
  155. package/dist/server/api-client-core/apis/crm/contacts.generated.d.ts +5 -3
  156. package/dist/server/api-client-core/apis/crm/contacts.generated.js +60 -61
  157. package/dist/server/api-client-core/apis/crm/contacts.generated.js.map +1 -1
  158. package/dist/server/api-client-core/apis/crm/contracts-types.generated.d.ts +796 -777
  159. package/dist/server/api-client-core/apis/crm/contracts.generated.d.ts +8 -3
  160. package/dist/server/api-client-core/apis/crm/contracts.generated.js +60 -57
  161. package/dist/server/api-client-core/apis/crm/contracts.generated.js.map +1 -1
  162. package/dist/server/api-client-core/apis/crm/courses-types.generated.d.ts +758 -772
  163. package/dist/server/api-client-core/apis/crm/courses.generated.d.ts +5 -3
  164. package/dist/server/api-client-core/apis/crm/courses.generated.js +58 -57
  165. package/dist/server/api-client-core/apis/crm/courses.generated.js.map +1 -1
  166. package/dist/server/api-client-core/apis/crm/crm-owners-types.generated.d.ts +103 -115
  167. package/dist/server/api-client-core/apis/crm/crm-owners.generated.d.ts +3 -3
  168. package/dist/server/api-client-core/apis/crm/crm-owners.generated.js +4 -3
  169. package/dist/server/api-client-core/apis/crm/crm-owners.generated.js.map +1 -1
  170. package/dist/server/api-client-core/apis/crm/custom-objects-types.generated.d.ts +833 -848
  171. package/dist/server/api-client-core/apis/crm/custom-objects.generated.d.ts +6 -3
  172. package/dist/server/api-client-core/apis/crm/custom-objects.generated.js +91 -90
  173. package/dist/server/api-client-core/apis/crm/custom-objects.generated.js.map +1 -1
  174. package/dist/server/api-client-core/apis/crm/deal-splits-types.generated.d.ts +158 -170
  175. package/dist/server/api-client-core/apis/crm/deal-splits.generated.d.ts +3 -3
  176. package/dist/server/api-client-core/apis/crm/deal-splits.generated.js +4 -3
  177. package/dist/server/api-client-core/apis/crm/deal-splits.generated.js.map +1 -1
  178. package/dist/server/api-client-core/apis/crm/deals-types.generated.d.ts +771 -785
  179. package/dist/server/api-client-core/apis/crm/deals.generated.d.ts +5 -3
  180. package/dist/server/api-client-core/apis/crm/deals.generated.js +59 -58
  181. package/dist/server/api-client-core/apis/crm/deals.generated.js.map +1 -1
  182. package/dist/server/api-client-core/apis/crm/discounts-types.generated.d.ts +754 -768
  183. package/dist/server/api-client-core/apis/crm/discounts.generated.d.ts +5 -3
  184. package/dist/server/api-client-core/apis/crm/discounts.generated.js +58 -57
  185. package/dist/server/api-client-core/apis/crm/discounts.generated.js.map +1 -1
  186. package/dist/server/api-client-core/apis/crm/emails-types.generated.d.ts +755 -769
  187. package/dist/server/api-client-core/apis/crm/emails.generated.d.ts +5 -3
  188. package/dist/server/api-client-core/apis/crm/emails.generated.js +58 -57
  189. package/dist/server/api-client-core/apis/crm/emails.generated.js.map +1 -1
  190. package/dist/server/api-client-core/apis/crm/exports-types.generated.d.ts +227 -251
  191. package/dist/server/api-client-core/apis/crm/exports.generated.d.ts +2 -2
  192. package/dist/server/api-client-core/apis/crm/exports.generated.js +4 -5
  193. package/dist/server/api-client-core/apis/crm/exports.generated.js.map +1 -1
  194. package/dist/server/api-client-core/apis/crm/feedback-submissions-types.generated.d.ts +551 -565
  195. package/dist/server/api-client-core/apis/crm/feedback-submissions.generated.d.ts +5 -3
  196. package/dist/server/api-client-core/apis/crm/feedback-submissions.generated.js +45 -46
  197. package/dist/server/api-client-core/apis/crm/feedback-submissions.generated.js.map +1 -1
  198. package/dist/server/api-client-core/apis/crm/fees-types.generated.d.ts +755 -769
  199. package/dist/server/api-client-core/apis/crm/fees.generated.d.ts +5 -3
  200. package/dist/server/api-client-core/apis/crm/fees.generated.js +58 -57
  201. package/dist/server/api-client-core/apis/crm/fees.generated.js.map +1 -1
  202. package/dist/server/api-client-core/apis/crm/goal-targets-types.generated.d.ts +755 -769
  203. package/dist/server/api-client-core/apis/crm/goal-targets.generated.d.ts +5 -3
  204. package/dist/server/api-client-core/apis/crm/goal-targets.generated.js +58 -57
  205. package/dist/server/api-client-core/apis/crm/goal-targets.generated.js.map +1 -1
  206. package/dist/server/api-client-core/apis/crm/imports-types.generated.d.ts +305 -329
  207. package/dist/server/api-client-core/apis/crm/imports.generated.d.ts +2 -2
  208. package/dist/server/api-client-core/apis/crm/imports.generated.js +20 -23
  209. package/dist/server/api-client-core/apis/crm/imports.generated.js.map +1 -1
  210. package/dist/server/api-client-core/apis/crm/invoices-types.generated.d.ts +755 -769
  211. package/dist/server/api-client-core/apis/crm/invoices.generated.d.ts +5 -3
  212. package/dist/server/api-client-core/apis/crm/invoices.generated.js +58 -57
  213. package/dist/server/api-client-core/apis/crm/invoices.generated.js.map +1 -1
  214. package/dist/server/api-client-core/apis/crm/leads-types.generated.d.ts +755 -769
  215. package/dist/server/api-client-core/apis/crm/leads.generated.d.ts +5 -3
  216. package/dist/server/api-client-core/apis/crm/leads.generated.js +58 -57
  217. package/dist/server/api-client-core/apis/crm/leads.generated.js.map +1 -1
  218. package/dist/server/api-client-core/apis/crm/limits-tracking-types.generated.d.ts +251 -263
  219. package/dist/server/api-client-core/apis/crm/limits-tracking.generated.d.ts +3 -3
  220. package/dist/server/api-client-core/apis/crm/limits-tracking.generated.js +4 -3
  221. package/dist/server/api-client-core/apis/crm/limits-tracking.generated.js.map +1 -1
  222. package/dist/server/api-client-core/apis/crm/line-items-types.generated.d.ts +755 -769
  223. package/dist/server/api-client-core/apis/crm/line-items.generated.d.ts +5 -3
  224. package/dist/server/api-client-core/apis/crm/line-items.generated.js +58 -57
  225. package/dist/server/api-client-core/apis/crm/line-items.generated.js.map +1 -1
  226. package/dist/server/api-client-core/apis/crm/listings-types.generated.d.ts +758 -772
  227. package/dist/server/api-client-core/apis/crm/listings.generated.d.ts +5 -3
  228. package/dist/server/api-client-core/apis/crm/listings.generated.js +58 -57
  229. package/dist/server/api-client-core/apis/crm/listings.generated.js.map +1 -1
  230. package/dist/server/api-client-core/apis/crm/lists-types.generated.d.ts +2075 -2111
  231. package/dist/server/api-client-core/apis/crm/lists.generated.d.ts +2 -2
  232. package/dist/server/api-client-core/apis/crm/lists.generated.js +97 -98
  233. package/dist/server/api-client-core/apis/crm/lists.generated.js.map +1 -1
  234. package/dist/server/api-client-core/apis/crm/meetings-types.generated.d.ts +755 -769
  235. package/dist/server/api-client-core/apis/crm/meetings.generated.d.ts +5 -3
  236. package/dist/server/api-client-core/apis/crm/meetings.generated.js +58 -57
  237. package/dist/server/api-client-core/apis/crm/meetings.generated.js.map +1 -1
  238. package/dist/server/api-client-core/apis/crm/notes-types.generated.d.ts +755 -769
  239. package/dist/server/api-client-core/apis/crm/notes.generated.d.ts +5 -3
  240. package/dist/server/api-client-core/apis/crm/notes.generated.js +58 -57
  241. package/dist/server/api-client-core/apis/crm/notes.generated.js.map +1 -1
  242. package/dist/server/api-client-core/apis/crm/object-library-types.generated.d.ts +24 -36
  243. package/dist/server/api-client-core/apis/crm/object-library.generated.d.ts +3 -3
  244. package/dist/server/api-client-core/apis/crm/object-library.generated.js +4 -3
  245. package/dist/server/api-client-core/apis/crm/object-library.generated.js.map +1 -1
  246. package/dist/server/api-client-core/apis/crm/objects-types.generated.d.ts +620 -645
  247. package/dist/server/api-client-core/apis/crm/objects.generated.d.ts +4 -3
  248. package/dist/server/api-client-core/apis/crm/objects.generated.js +66 -67
  249. package/dist/server/api-client-core/apis/crm/objects.generated.js.map +1 -1
  250. package/dist/server/api-client-core/apis/crm/orders-types.generated.d.ts +747 -761
  251. package/dist/server/api-client-core/apis/crm/orders.generated.d.ts +5 -3
  252. package/dist/server/api-client-core/apis/crm/orders.generated.js +58 -57
  253. package/dist/server/api-client-core/apis/crm/orders.generated.js.map +1 -1
  254. package/dist/server/api-client-core/apis/crm/partner-clients-types.generated.d.ts +646 -660
  255. package/dist/server/api-client-core/apis/crm/partner-clients.generated.d.ts +5 -3
  256. package/dist/server/api-client-core/apis/crm/partner-clients.generated.js +63 -62
  257. package/dist/server/api-client-core/apis/crm/partner-clients.generated.js.map +1 -1
  258. package/dist/server/api-client-core/apis/crm/partner-services-types.generated.d.ts +646 -660
  259. package/dist/server/api-client-core/apis/crm/partner-services.generated.d.ts +5 -3
  260. package/dist/server/api-client-core/apis/crm/partner-services.generated.js +63 -62
  261. package/dist/server/api-client-core/apis/crm/partner-services.generated.js.map +1 -1
  262. package/dist/server/api-client-core/apis/crm/pipelines-types.generated.d.ts +320 -332
  263. package/dist/server/api-client-core/apis/crm/pipelines.generated.d.ts +2 -2
  264. package/dist/server/api-client-core/apis/crm/pipelines.generated.js +3 -2
  265. package/dist/server/api-client-core/apis/crm/pipelines.generated.js.map +1 -1
  266. package/dist/server/api-client-core/apis/crm/postal-mail-types.generated.d.ts +744 -758
  267. package/dist/server/api-client-core/apis/crm/postal-mail.generated.d.ts +5 -3
  268. package/dist/server/api-client-core/apis/crm/postal-mail.generated.js +58 -57
  269. package/dist/server/api-client-core/apis/crm/postal-mail.generated.js.map +1 -1
  270. package/dist/server/api-client-core/apis/crm/products-types.generated.d.ts +747 -761
  271. package/dist/server/api-client-core/apis/crm/products.generated.d.ts +5 -3
  272. package/dist/server/api-client-core/apis/crm/products.generated.js +58 -57
  273. package/dist/server/api-client-core/apis/crm/products.generated.js.map +1 -1
  274. package/dist/server/api-client-core/apis/crm/projects-types.generated.d.ts +761 -787
  275. package/dist/server/api-client-core/apis/crm/projects.generated.d.ts +5 -3
  276. package/dist/server/api-client-core/apis/crm/projects.generated.js +59 -58
  277. package/dist/server/api-client-core/apis/crm/projects.generated.js.map +1 -1
  278. package/dist/server/api-client-core/apis/crm/properties-types.generated.d.ts +526 -528
  279. package/dist/server/api-client-core/apis/crm/properties.generated.d.ts +5 -3
  280. package/dist/server/api-client-core/apis/crm/properties.generated.js +79 -78
  281. package/dist/server/api-client-core/apis/crm/properties.generated.js.map +1 -1
  282. package/dist/server/api-client-core/apis/crm/property-validations-types.generated.d.ts +71 -83
  283. package/dist/server/api-client-core/apis/crm/property-validations.generated.d.ts +3 -3
  284. package/dist/server/api-client-core/apis/crm/property-validations.generated.js +4 -3
  285. package/dist/server/api-client-core/apis/crm/property-validations.generated.js.map +1 -1
  286. package/dist/server/api-client-core/apis/crm/public-app-crm-cards-types.generated.d.ts +409 -433
  287. package/dist/server/api-client-core/apis/crm/public-app-crm-cards.generated.d.ts +3 -3
  288. package/dist/server/api-client-core/apis/crm/public-app-crm-cards.generated.js +24 -25
  289. package/dist/server/api-client-core/apis/crm/public-app-crm-cards.generated.js.map +1 -1
  290. package/dist/server/api-client-core/apis/crm/public-app-feature-flags-types.generated.d.ts +156 -169
  291. package/dist/server/api-client-core/apis/crm/public-app-feature-flags.generated.d.ts +4 -3
  292. package/dist/server/api-client-core/apis/crm/public-app-feature-flags.generated.js +55 -56
  293. package/dist/server/api-client-core/apis/crm/public-app-feature-flags.generated.js.map +1 -1
  294. package/dist/server/api-client-core/apis/crm/quotes-types.generated.d.ts +747 -761
  295. package/dist/server/api-client-core/apis/crm/quotes.generated.d.ts +5 -3
  296. package/dist/server/api-client-core/apis/crm/quotes.generated.js +58 -57
  297. package/dist/server/api-client-core/apis/crm/quotes.generated.js.map +1 -1
  298. package/dist/server/api-client-core/apis/crm/schemas-types.generated.d.ts +575 -600
  299. package/dist/server/api-client-core/apis/crm/schemas.generated.d.ts +4 -3
  300. package/dist/server/api-client-core/apis/crm/schemas.generated.js +33 -34
  301. package/dist/server/api-client-core/apis/crm/schemas.generated.js.map +1 -1
  302. package/dist/server/api-client-core/apis/crm/services-types.generated.d.ts +750 -764
  303. package/dist/server/api-client-core/apis/crm/services.generated.d.ts +5 -3
  304. package/dist/server/api-client-core/apis/crm/services.generated.js +58 -57
  305. package/dist/server/api-client-core/apis/crm/services.generated.js.map +1 -1
  306. package/dist/server/api-client-core/apis/crm/tasks-types.generated.d.ts +747 -761
  307. package/dist/server/api-client-core/apis/crm/tasks.generated.d.ts +5 -3
  308. package/dist/server/api-client-core/apis/crm/tasks.generated.js +58 -57
  309. package/dist/server/api-client-core/apis/crm/tasks.generated.js.map +1 -1
  310. package/dist/server/api-client-core/apis/crm/taxes-types.generated.d.ts +747 -761
  311. package/dist/server/api-client-core/apis/crm/taxes.generated.d.ts +5 -3
  312. package/dist/server/api-client-core/apis/crm/taxes.generated.js +58 -57
  313. package/dist/server/api-client-core/apis/crm/taxes.generated.js.map +1 -1
  314. package/dist/server/api-client-core/apis/crm/tickets-types.generated.d.ts +764 -790
  315. package/dist/server/api-client-core/apis/crm/tickets.generated.d.ts +5 -3
  316. package/dist/server/api-client-core/apis/crm/tickets.generated.js +59 -58
  317. package/dist/server/api-client-core/apis/crm/tickets.generated.js.map +1 -1
  318. package/dist/server/api-client-core/apis/crm/timeline-types.generated.d.ts +136 -149
  319. package/dist/server/api-client-core/apis/crm/timeline.generated.d.ts +4 -3
  320. package/dist/server/api-client-core/apis/crm/timeline.generated.js +5 -6
  321. package/dist/server/api-client-core/apis/crm/timeline.generated.js.map +1 -1
  322. package/dist/server/api-client-core/apis/crm/transcriptions-types.generated.d.ts +104 -117
  323. package/dist/server/api-client-core/apis/crm/transcriptions.generated.d.ts +4 -3
  324. package/dist/server/api-client-core/apis/crm/transcriptions.generated.js +7 -10
  325. package/dist/server/api-client-core/apis/crm/transcriptions.generated.js.map +1 -1
  326. package/dist/server/api-client-core/apis/crm/users-types.generated.d.ts +747 -761
  327. package/dist/server/api-client-core/apis/crm/users.generated.d.ts +5 -3
  328. package/dist/server/api-client-core/apis/crm/users.generated.js +58 -57
  329. package/dist/server/api-client-core/apis/crm/users.generated.js.map +1 -1
  330. package/dist/server/api-client-core/apis/crm/video-conferencing-extension-types.generated.d.ts +28 -40
  331. package/dist/server/api-client-core/apis/crm/video-conferencing-extension.generated.d.ts +3 -3
  332. package/dist/server/api-client-core/apis/crm/video-conferencing-extension.generated.js +4 -3
  333. package/dist/server/api-client-core/apis/crm/video-conferencing-extension.generated.js.map +1 -1
  334. package/dist/server/api-client-core/apis/events/manage-event-definitions-types.generated.d.ts +909 -945
  335. package/dist/server/api-client-core/apis/events/manage-event-definitions.generated.d.ts +3 -3
  336. package/dist/server/api-client-core/apis/events/manage-event-definitions.generated.js +29 -30
  337. package/dist/server/api-client-core/apis/events/manage-event-definitions.generated.js.map +1 -1
  338. package/dist/server/api-client-core/apis/events/send-event-completions-types.generated.d.ts +49 -62
  339. package/dist/server/api-client-core/apis/events/send-event-completions.generated.d.ts +4 -3
  340. package/dist/server/api-client-core/apis/events/send-event-completions.generated.js +4 -5
  341. package/dist/server/api-client-core/apis/events/send-event-completions.generated.js.map +1 -1
  342. package/dist/server/api-client-core/apis/events-types.generated.d.ts +99 -111
  343. package/dist/server/api-client-core/apis/events.generated.d.ts +3 -3
  344. package/dist/server/api-client-core/apis/events.generated.js +4 -3
  345. package/dist/server/api-client-core/apis/events.generated.js.map +1 -1
  346. package/dist/server/api-client-core/apis/files-types.generated.d.ts +636 -649
  347. package/dist/server/api-client-core/apis/files.generated.d.ts +4 -3
  348. package/dist/server/api-client-core/apis/files.generated.js +112 -113
  349. package/dist/server/api-client-core/apis/files.generated.js.map +1 -1
  350. package/dist/server/api-client-core/apis/marketing/campaigns-public-api-types.generated.d.ts +799 -816
  351. package/dist/server/api-client-core/apis/marketing/campaigns-public-api.generated.d.ts +8 -3
  352. package/dist/server/api-client-core/apis/marketing/campaigns-public-api.generated.js +126 -127
  353. package/dist/server/api-client-core/apis/marketing/campaigns-public-api.generated.js.map +1 -1
  354. package/dist/server/api-client-core/apis/marketing/marketing-emails-types.generated.d.ts +745 -769
  355. package/dist/server/api-client-core/apis/marketing/marketing-emails.generated.d.ts +3 -3
  356. package/dist/server/api-client-core/apis/marketing/marketing-emails.generated.js +100 -103
  357. package/dist/server/api-client-core/apis/marketing/marketing-emails.generated.js.map +1 -1
  358. package/dist/server/api-client-core/apis/marketing/marketing-events-types.generated.d.ts +1504 -1546
  359. package/dist/server/api-client-core/apis/marketing/marketing-events.generated.d.ts +9 -3
  360. package/dist/server/api-client-core/apis/marketing/marketing-events.generated.js +162 -167
  361. package/dist/server/api-client-core/apis/marketing/marketing-events.generated.js.map +1 -1
  362. package/dist/server/api-client-core/apis/marketing/single-send-types.generated.d.ts +91 -103
  363. package/dist/server/api-client-core/apis/marketing/single-send.generated.d.ts +3 -3
  364. package/dist/server/api-client-core/apis/marketing/single-send.generated.js +3 -2
  365. package/dist/server/api-client-core/apis/marketing/single-send.generated.js.map +1 -1
  366. package/dist/server/api-client-core/apis/marketing/transactional-single-send-types.generated.d.ts +187 -200
  367. package/dist/server/api-client-core/apis/marketing/transactional-single-send.generated.d.ts +4 -3
  368. package/dist/server/api-client-core/apis/marketing/transactional-single-send.generated.js +14 -15
  369. package/dist/server/api-client-core/apis/marketing/transactional-single-send.generated.js.map +1 -1
  370. package/dist/server/api-client-core/apis/meta/origins-types.generated.d.ts +41 -53
  371. package/dist/server/api-client-core/apis/meta/origins.generated.d.ts +3 -3
  372. package/dist/server/api-client-core/apis/meta/origins.generated.js +4 -3
  373. package/dist/server/api-client-core/apis/meta/origins.generated.js.map +1 -1
  374. package/dist/server/api-client-core/apis/scheduler/meetings-types.generated.d.ts +850 -863
  375. package/dist/server/api-client-core/apis/scheduler/meetings.generated.d.ts +4 -3
  376. package/dist/server/api-client-core/apis/scheduler/meetings.generated.js +28 -29
  377. package/dist/server/api-client-core/apis/scheduler/meetings.generated.js.map +1 -1
  378. package/dist/server/api-client-core/apis/settings/multicurrency-types.generated.d.ts +281 -296
  379. package/dist/server/api-client-core/apis/settings/multicurrency.generated.d.ts +6 -3
  380. package/dist/server/api-client-core/apis/settings/multicurrency.generated.js +32 -33
  381. package/dist/server/api-client-core/apis/settings/multicurrency.generated.js.map +1 -1
  382. package/dist/server/api-client-core/apis/settings/tax-rates-types.generated.d.ts +71 -83
  383. package/dist/server/api-client-core/apis/settings/tax-rates.generated.d.ts +3 -3
  384. package/dist/server/api-client-core/apis/settings/tax-rates.generated.js +4 -3
  385. package/dist/server/api-client-core/apis/settings/tax-rates.generated.js.map +1 -1
  386. package/dist/server/api-client-core/apis/settings/user-provisioning-types.generated.d.ts +202 -250
  387. package/dist/server/api-client-core/apis/settings/user-provisioning.generated.d.ts +3 -3
  388. package/dist/server/api-client-core/apis/settings/user-provisioning.generated.js +23 -26
  389. package/dist/server/api-client-core/apis/settings/user-provisioning.generated.js.map +1 -1
  390. package/dist/server/api-client-core/apis/webhooks-journal-types.generated.d.ts +490 -526
  391. package/dist/server/api-client-core/apis/webhooks-journal.generated.d.ts +3 -3
  392. package/dist/server/api-client-core/apis/webhooks-journal.generated.js +65 -70
  393. package/dist/server/api-client-core/apis/webhooks-journal.generated.js.map +1 -1
  394. package/dist/server/api-client-core/apis/webhooks-types.generated.d.ts +816 -852
  395. package/dist/server/api-client-core/apis/webhooks.generated.d.ts +3 -3
  396. package/dist/server/api-client-core/apis/webhooks.generated.js +93 -98
  397. package/dist/server/api-client-core/apis/webhooks.generated.js.map +1 -1
  398. package/dist/server/api-client-core/binary-data.js.map +1 -1
  399. package/dist/server/api-client-core/client.js +5 -1
  400. package/dist/server/api-client-core/client.js.map +1 -1
  401. package/dist/server/api-client-core/codegen-helpers/file-op-wrappers.js.map +1 -1
  402. package/dist/server/api-client-core/errors.js.map +1 -1
  403. package/dist/server/api-client-core/op.js.map +1 -1
  404. package/dist/server/api-client-core/pagination.d.ts +2 -2
  405. package/dist/server/api-client-core/pagination.js +2 -2
  406. package/dist/server/api-client-core/pagination.js.map +1 -1
  407. package/dist/server/api-client-core/plugins/fetch-transport.js +33 -9
  408. package/dist/server/api-client-core/plugins/fetch-transport.js.map +1 -1
  409. package/dist/server/api-client-core/types.d.ts +1 -1
  410. package/dist/server/api-client.d.ts +184 -184
  411. package/dist/server/api-client.js +89 -89
  412. package/dist/server/constants.js +33 -6
  413. package/dist/server/constants.js.map +1 -1
  414. package/dist/server/deno/start.js.map +1 -1
  415. package/dist/server/hono/hono-request-handler.js +32 -23
  416. package/dist/server/hono/hono-request-handler.js.map +1 -1
  417. package/dist/server/hono/hubspot-connect-routes/auth-complete.js +158 -0
  418. package/dist/server/hono/hubspot-connect-routes/auth-complete.js.map +1 -0
  419. package/dist/server/hono/hubspot-connect-routes/auth-init-session.js +25 -12
  420. package/dist/server/hono/hubspot-connect-routes/auth-init-session.js.map +1 -1
  421. package/dist/server/hono/hubspot-connect-routes/auth-logout.js +32 -9
  422. package/dist/server/hono/hubspot-connect-routes/auth-logout.js.map +1 -1
  423. package/dist/server/hono/hubspot-connect-routes/auth-refresh.js +32 -18
  424. package/dist/server/hono/hubspot-connect-routes/auth-refresh.js.map +1 -1
  425. package/dist/server/hono/hubspot-connect-routes/cimd-client-metadata-types.js.map +1 -1
  426. package/dist/server/hono/hubspot-connect-routes/cimd-public-routes.js +4 -1
  427. package/dist/server/hono/hubspot-connect-routes/cimd-public-routes.js.map +1 -1
  428. package/dist/server/hono/hubspot-connect-routes/fetch-hubspot-client-metadata.js.map +1 -1
  429. package/dist/server/hono/hubspot-connect-routes/hubspot-connect-routes.js +4 -2
  430. package/dist/server/hono/hubspot-connect-routes/hubspot-connect-routes.js.map +1 -1
  431. package/dist/server/hono/hubspot-connect-routes/load-hubspot-connect-routes-env.js +5 -5
  432. package/dist/server/hono/hubspot-connect-routes/load-hubspot-connect-routes-env.js.map +1 -1
  433. package/dist/server/hono/hubspot-connect-routes/oauth-client.js.map +1 -1
  434. package/dist/server/hono/hubspot-connect-routes/utils.js +53 -6
  435. package/dist/server/hono/hubspot-connect-routes/utils.js.map +1 -1
  436. package/dist/server/hono/hubspot-connect-routes/whoami.js +51 -0
  437. package/dist/server/hono/hubspot-connect-routes/whoami.js.map +1 -0
  438. package/dist/server/hono/types.d.ts +9 -10
  439. package/dist/server/hono/utils/cookie-utils.js +2 -1
  440. package/dist/server/hono/utils/cookie-utils.js.map +1 -1
  441. package/dist/server/hono/utils/cors-middleware.js +85 -0
  442. package/dist/server/hono/utils/cors-middleware.js.map +1 -0
  443. package/dist/server/import-app-keys.js.map +1 -1
  444. package/dist/server/lovable/create-app-function-start.d.ts +1 -1
  445. package/dist/server/lovable/create-app-function-start.js +4 -6
  446. package/dist/server/lovable/create-app-function-start.js.map +1 -1
  447. package/dist/server/lovable/hubspot-connect/index.js.map +1 -1
  448. package/dist/server/lovable/hubspot-connect/run-hubspot-connect-lovable-server.js +14 -15
  449. package/dist/server/lovable/hubspot-connect/run-hubspot-connect-lovable-server.js.map +1 -1
  450. package/dist/server/sanitize-request.js +14 -11
  451. package/dist/server/sanitize-request.js.map +1 -1
  452. package/dist/server/secure-start-core.js +4 -5
  453. package/dist/server/secure-start-core.js.map +1 -1
  454. package/dist/server/shared/constants.js +22 -9
  455. package/dist/server/shared/constants.js.map +1 -1
  456. package/dist/server/shared/encoding/base64.js.map +1 -1
  457. package/dist/server/shared/encoding/sha256.js.map +1 -1
  458. package/dist/server/shared/logger.js.map +1 -1
  459. package/dist/server/types.d.ts +1 -35
  460. package/dist/server/utils/cookie-utils.js.map +1 -1
  461. package/dist/server/utils/dpop-utils.js.map +1 -1
  462. package/dist/server/utils/env-utils.js +60 -7
  463. package/dist/server/utils/env-utils.js.map +1 -1
  464. package/dist/server/utils/hubspot-dpop-auth-headers.js +38 -0
  465. package/dist/server/utils/hubspot-dpop-auth-headers.js.map +1 -0
  466. package/dist/server/utils/jwk-utils.js.map +1 -1
  467. package/dist/server/utils/jwt-utils.js.map +1 -1
  468. package/package.json +15 -21
  469. package/src/browser/app-connect-controller/README.md +5 -2
  470. package/src/browser/app-connect-controller/connect-start.test.ts +157 -0
  471. package/src/browser/app-connect-controller/connect-start.ts +18 -3
  472. package/src/browser/app-connect-controller/constants.ts +6 -4
  473. package/src/browser/app-connect-controller/create.ts +8 -2
  474. package/src/browser/app-connect-controller/disconnect.ts +5 -7
  475. package/src/browser/app-connect-controller/init.test.ts +275 -0
  476. package/src/browser/app-connect-controller/init.ts +44 -19
  477. package/src/browser/app-connect-controller/oauth-complete.test.ts +110 -0
  478. package/src/browser/app-connect-controller/oauth-complete.ts +53 -0
  479. package/src/browser/app-connect-controller/oauth-popup.test.ts +239 -0
  480. package/src/browser/app-connect-controller/oauth-popup.ts +160 -0
  481. package/src/browser/app-connect-controller/types.ts +3 -0
  482. package/src/browser/app-connect-controller/utils/iframe-utils.ts +12 -0
  483. package/src/browser/app-connect-controller/utils/resolve-oauth-connect-mode.test.ts +35 -0
  484. package/src/browser/app-connect-controller/utils/resolve-oauth-connect-mode.ts +21 -0
  485. package/src/browser/app-connect-controller/utils/session-utils.test.ts +73 -22
  486. package/src/browser/app-connect-controller/utils/session-utils.ts +74 -33
  487. package/src/browser/app-connect-controller/view-state.test.ts +1 -0
  488. package/src/browser/app-connect-controller/view-state.ts +1 -0
  489. package/src/browser/index.ts +1 -0
  490. package/src/browser/react/components/AppConnectHeader/AppConnectHeader.tsx +21 -34
  491. package/src/browser/react/components/ConnectButton/ConnectButton.tsx +1 -1
  492. package/src/browser/react/lovable/LovableHubSpotAppConnect.tsx +12 -2
  493. package/src/browser/types.ts +30 -5
  494. package/src/server/api-client-core/__tests__/errors.test.ts +309 -0
  495. package/src/server/api-client-core/__tests__/operation-headers.test.ts +251 -0
  496. package/src/server/api-client-core/apis/account/account-info-types.generated.ts +74 -88
  497. package/src/server/api-client-core/apis/account/account-info.generated.ts +2 -4
  498. package/src/server/api-client-core/apis/account/audit-logs-types.generated.ts +346 -360
  499. package/src/server/api-client-core/apis/account/audit-logs.generated.ts +2 -4
  500. package/src/server/api-client-core/apis/auth/oauth-types.generated.ts +81 -99
  501. package/src/server/api-client-core/apis/auth/oauth.generated.ts +1 -3
  502. package/src/server/api-client-core/apis/automation/actions-types.generated.ts +1162 -1188
  503. package/src/server/api-client-core/apis/automation/actions.generated.ts +10 -12
  504. package/src/server/api-client-core/apis/automation/sequences-types.generated.ts +379 -393
  505. package/src/server/api-client-core/apis/automation/sequences.generated.ts +1 -3
  506. package/src/server/api-client-core/apis/business-units-types.generated.ts +43 -59
  507. package/src/server/api-client-core/apis/business-units.generated.ts +9 -10
  508. package/src/server/api-client-core/apis/cms/authors-types.generated.ts +3823 -3853
  509. package/src/server/api-client-core/apis/cms/authors.generated.ts +31 -37
  510. package/src/server/api-client-core/apis/cms/blog-settings-types.generated.ts +3667 -3696
  511. package/src/server/api-client-core/apis/cms/blog-settings.generated.ts +46 -51
  512. package/src/server/api-client-core/apis/cms/cms-content-audit-types.generated.ts +138 -163
  513. package/src/server/api-client-core/apis/cms/cms-content-audit.generated.ts +2 -10
  514. package/src/server/api-client-core/apis/cms/domains-types.generated.ts +153 -167
  515. package/src/server/api-client-core/apis/cms/domains.generated.ts +2 -4
  516. package/src/server/api-client-core/apis/cms/hubdb-types.generated.ts +1013 -1063
  517. package/src/server/api-client-core/apis/cms/hubdb.generated.ts +3 -5
  518. package/src/server/api-client-core/apis/cms/media-bridge-types.generated.ts +8623 -8657
  519. package/src/server/api-client-core/apis/cms/media-bridge.generated.ts +16 -22
  520. package/src/server/api-client-core/apis/cms/pages-types.generated.ts +5259 -5272
  521. package/src/server/api-client-core/apis/cms/pages.generated.ts +262 -226
  522. package/src/server/api-client-core/apis/cms/posts-types.generated.ts +4420 -4438
  523. package/src/server/api-client-core/apis/cms/posts.generated.ts +108 -106
  524. package/src/server/api-client-core/apis/cms/site-search-types.generated.ts +1867 -1881
  525. package/src/server/api-client-core/apis/cms/site-search.generated.ts +2 -4
  526. package/src/server/api-client-core/apis/cms/source-code-types.generated.ts +144 -177
  527. package/src/server/api-client-core/apis/cms/source-code.generated.ts +15 -23
  528. package/src/server/api-client-core/apis/cms/tags-types.generated.ts +3820 -3845
  529. package/src/server/api-client-core/apis/cms/tags.generated.ts +80 -82
  530. package/src/server/api-client-core/apis/cms/url-mappings-types.generated.ts +188 -202
  531. package/src/server/api-client-core/apis/cms/url-mappings.generated.ts +2 -4
  532. package/src/server/api-client-core/apis/cms/url-redirects-types.generated.ts +182 -196
  533. package/src/server/api-client-core/apis/cms/url-redirects.generated.ts +2 -4
  534. package/src/server/api-client-core/apis/communication-preferences/subscriptions-types.generated.ts +810 -828
  535. package/src/server/api-client-core/apis/communication-preferences/subscriptions.generated.ts +66 -63
  536. package/src/server/api-client-core/apis/conversations/custom-channels-types.generated.ts +564 -601
  537. package/src/server/api-client-core/apis/conversations/custom-channels.generated.ts +90 -86
  538. package/src/server/api-client-core/apis/conversations/visitor-identification-types.generated.ts +31 -44
  539. package/src/server/api-client-core/apis/conversations/visitor-identification.generated.ts +6 -8
  540. package/src/server/api-client-core/apis/conversations-types.generated.ts +955 -991
  541. package/src/server/api-client-core/apis/conversations.generated.ts +6 -5
  542. package/src/server/api-client-core/apis/crm/app-uninstalls-types.generated.ts +7 -19
  543. package/src/server/api-client-core/apis/crm/app-uninstalls.generated.ts +2 -4
  544. package/src/server/api-client-core/apis/crm/appointments-types.generated.ts +965 -969
  545. package/src/server/api-client-core/apis/crm/appointments.generated.ts +143 -137
  546. package/src/server/api-client-core/apis/crm/associations-schema-types.generated.ts +292 -322
  547. package/src/server/api-client-core/apis/crm/associations-schema.generated.ts +17 -19
  548. package/src/server/api-client-core/apis/crm/associations-types.generated.ts +657 -675
  549. package/src/server/api-client-core/apis/crm/associations.generated.ts +70 -70
  550. package/src/server/api-client-core/apis/crm/calling-extensions-types.generated.ts +417 -441
  551. package/src/server/api-client-core/apis/crm/calling-extensions.generated.ts +62 -69
  552. package/src/server/api-client-core/apis/crm/calls-types.generated.ts +839 -856
  553. package/src/server/api-client-core/apis/crm/calls.generated.ts +42 -44
  554. package/src/server/api-client-core/apis/crm/carts-types.generated.ts +839 -856
  555. package/src/server/api-client-core/apis/crm/carts.generated.ts +42 -44
  556. package/src/server/api-client-core/apis/crm/commerce-payments-types.generated.ts +847 -856
  557. package/src/server/api-client-core/apis/crm/commerce-payments.generated.ts +73 -73
  558. package/src/server/api-client-core/apis/crm/commerce-subscriptions-types.generated.ts +844 -853
  559. package/src/server/api-client-core/apis/crm/commerce-subscriptions.generated.ts +50 -51
  560. package/src/server/api-client-core/apis/crm/communications-types.generated.ts +846 -856
  561. package/src/server/api-client-core/apis/crm/communications.generated.ts +73 -73
  562. package/src/server/api-client-core/apis/crm/companies-types.generated.ts +859 -885
  563. package/src/server/api-client-core/apis/crm/companies.generated.ts +44 -50
  564. package/src/server/api-client-core/apis/crm/contacts-types.generated.ts +875 -907
  565. package/src/server/api-client-core/apis/crm/contacts.generated.ts +46 -52
  566. package/src/server/api-client-core/apis/crm/contracts-types.generated.ts +894 -862
  567. package/src/server/api-client-core/apis/crm/contracts.generated.ts +66 -56
  568. package/src/server/api-client-core/apis/crm/courses-types.generated.ts +842 -859
  569. package/src/server/api-client-core/apis/crm/courses.generated.ts +42 -44
  570. package/src/server/api-client-core/apis/crm/crm-owners-types.generated.ts +102 -115
  571. package/src/server/api-client-core/apis/crm/crm-owners.generated.ts +2 -4
  572. package/src/server/api-client-core/apis/crm/custom-objects-types.generated.ts +900 -915
  573. package/src/server/api-client-core/apis/crm/custom-objects.generated.ts +128 -126
  574. package/src/server/api-client-core/apis/crm/deal-splits-types.generated.ts +157 -170
  575. package/src/server/api-client-core/apis/crm/deal-splits.generated.ts +2 -4
  576. package/src/server/api-client-core/apis/crm/deals-types.generated.ts +858 -875
  577. package/src/server/api-client-core/apis/crm/deals.generated.ts +42 -44
  578. package/src/server/api-client-core/apis/crm/discounts-types.generated.ts +842 -855
  579. package/src/server/api-client-core/apis/crm/discounts.generated.ts +42 -44
  580. package/src/server/api-client-core/apis/crm/emails-types.generated.ts +839 -856
  581. package/src/server/api-client-core/apis/crm/emails.generated.ts +42 -44
  582. package/src/server/api-client-core/apis/crm/exports-types.generated.ts +284 -314
  583. package/src/server/api-client-core/apis/crm/exports.generated.ts +6 -11
  584. package/src/server/api-client-core/apis/crm/feedback-submissions-types.generated.ts +607 -622
  585. package/src/server/api-client-core/apis/crm/feedback-submissions.generated.ts +84 -80
  586. package/src/server/api-client-core/apis/crm/fees-types.generated.ts +839 -856
  587. package/src/server/api-client-core/apis/crm/fees.generated.ts +42 -44
  588. package/src/server/api-client-core/apis/crm/goal-targets-types.generated.ts +845 -856
  589. package/src/server/api-client-core/apis/crm/goal-targets.generated.ts +50 -51
  590. package/src/server/api-client-core/apis/crm/imports-types.generated.ts +663 -692
  591. package/src/server/api-client-core/apis/crm/imports.generated.ts +2 -7
  592. package/src/server/api-client-core/apis/crm/invoices-types.generated.ts +839 -856
  593. package/src/server/api-client-core/apis/crm/invoices.generated.ts +42 -44
  594. package/src/server/api-client-core/apis/crm/leads-types.generated.ts +839 -856
  595. package/src/server/api-client-core/apis/crm/leads.generated.ts +42 -44
  596. package/src/server/api-client-core/apis/crm/limits-tracking-types.generated.ts +263 -275
  597. package/src/server/api-client-core/apis/crm/limits-tracking.generated.ts +2 -4
  598. package/src/server/api-client-core/apis/crm/line-items-types.generated.ts +843 -856
  599. package/src/server/api-client-core/apis/crm/line-items.generated.ts +42 -44
  600. package/src/server/api-client-core/apis/crm/listings-types.generated.ts +842 -859
  601. package/src/server/api-client-core/apis/crm/listings.generated.ts +42 -44
  602. package/src/server/api-client-core/apis/crm/lists-types.generated.ts +2794 -2845
  603. package/src/server/api-client-core/apis/crm/lists.generated.ts +8 -20
  604. package/src/server/api-client-core/apis/crm/meetings-types.generated.ts +839 -856
  605. package/src/server/api-client-core/apis/crm/meetings.generated.ts +42 -44
  606. package/src/server/api-client-core/apis/crm/notes-types.generated.ts +839 -856
  607. package/src/server/api-client-core/apis/crm/notes.generated.ts +42 -44
  608. package/src/server/api-client-core/apis/crm/object-library-types.generated.ts +26 -39
  609. package/src/server/api-client-core/apis/crm/object-library.generated.ts +2 -4
  610. package/src/server/api-client-core/apis/crm/objects-types.generated.ts +688 -716
  611. package/src/server/api-client-core/apis/crm/objects.generated.ts +79 -83
  612. package/src/server/api-client-core/apis/crm/orders-types.generated.ts +829 -846
  613. package/src/server/api-client-core/apis/crm/orders.generated.ts +45 -47
  614. package/src/server/api-client-core/apis/crm/partner-clients-types.generated.ts +721 -735
  615. package/src/server/api-client-core/apis/crm/partner-clients.generated.ts +60 -60
  616. package/src/server/api-client-core/apis/crm/partner-services-types.generated.ts +720 -734
  617. package/src/server/api-client-core/apis/crm/partner-services.generated.ts +60 -60
  618. package/src/server/api-client-core/apis/crm/pipelines-types.generated.ts +366 -388
  619. package/src/server/api-client-core/apis/crm/pipelines.generated.ts +2 -4
  620. package/src/server/api-client-core/apis/crm/postal-mail-types.generated.ts +830 -843
  621. package/src/server/api-client-core/apis/crm/postal-mail.generated.ts +45 -47
  622. package/src/server/api-client-core/apis/crm/products-types.generated.ts +829 -846
  623. package/src/server/api-client-core/apis/crm/products.generated.ts +45 -47
  624. package/src/server/api-client-core/apis/crm/projects-types.generated.ts +845 -875
  625. package/src/server/api-client-core/apis/crm/projects.generated.ts +47 -53
  626. package/src/server/api-client-core/apis/crm/properties-types.generated.ts +623 -626
  627. package/src/server/api-client-core/apis/crm/properties.generated.ts +33 -28
  628. package/src/server/api-client-core/apis/crm/property-validations-types.generated.ts +160 -174
  629. package/src/server/api-client-core/apis/crm/property-validations.generated.ts +2 -6
  630. package/src/server/api-client-core/apis/crm/public-app-crm-cards-types.generated.ts +467 -494
  631. package/src/server/api-client-core/apis/crm/public-app-crm-cards.generated.ts +7 -15
  632. package/src/server/api-client-core/apis/crm/public-app-feature-flags-types.generated.ts +166 -177
  633. package/src/server/api-client-core/apis/crm/public-app-feature-flags.generated.ts +6 -8
  634. package/src/server/api-client-core/apis/crm/quotes-types.generated.ts +829 -846
  635. package/src/server/api-client-core/apis/crm/quotes.generated.ts +45 -47
  636. package/src/server/api-client-core/apis/crm/schemas-types.generated.ts +613 -640
  637. package/src/server/api-client-core/apis/crm/schemas.generated.ts +8 -14
  638. package/src/server/api-client-core/apis/crm/services-types.generated.ts +832 -849
  639. package/src/server/api-client-core/apis/crm/services.generated.ts +45 -47
  640. package/src/server/api-client-core/apis/crm/tasks-types.generated.ts +829 -846
  641. package/src/server/api-client-core/apis/crm/tasks.generated.ts +45 -47
  642. package/src/server/api-client-core/apis/crm/taxes-types.generated.ts +829 -846
  643. package/src/server/api-client-core/apis/crm/taxes.generated.ts +45 -47
  644. package/src/server/api-client-core/apis/crm/tickets-types.generated.ts +848 -878
  645. package/src/server/api-client-core/apis/crm/tickets.generated.ts +47 -53
  646. package/src/server/api-client-core/apis/crm/timeline-types.generated.ts +144 -161
  647. package/src/server/api-client-core/apis/crm/timeline.generated.ts +6 -8
  648. package/src/server/api-client-core/apis/crm/transcriptions-types.generated.ts +149 -164
  649. package/src/server/api-client-core/apis/crm/transcriptions.generated.ts +22 -22
  650. package/src/server/api-client-core/apis/crm/users-types.generated.ts +829 -846
  651. package/src/server/api-client-core/apis/crm/users.generated.ts +45 -47
  652. package/src/server/api-client-core/apis/crm/video-conferencing-extension-types.generated.ts +29 -42
  653. package/src/server/api-client-core/apis/crm/video-conferencing-extension.generated.ts +17 -19
  654. package/src/server/api-client-core/apis/events/manage-event-definitions-types.generated.ts +1509 -1558
  655. package/src/server/api-client-core/apis/events/manage-event-definitions.generated.ts +55 -65
  656. package/src/server/api-client-core/apis/events/send-event-completions-types.generated.ts +51 -68
  657. package/src/server/api-client-core/apis/events/send-event-completions.generated.ts +10 -10
  658. package/src/server/api-client-core/apis/events-types.generated.ts +97 -110
  659. package/src/server/api-client-core/apis/events.generated.ts +2 -4
  660. package/src/server/api-client-core/apis/files-types.generated.ts +727 -757
  661. package/src/server/api-client-core/apis/files.generated.ts +3 -5
  662. package/src/server/api-client-core/apis/marketing/campaigns-public-api-types.generated.ts +1221 -1234
  663. package/src/server/api-client-core/apis/marketing/campaigns-public-api.generated.ts +45 -47
  664. package/src/server/api-client-core/apis/marketing/marketing-emails-types.generated.ts +3704 -3733
  665. package/src/server/api-client-core/apis/marketing/marketing-emails.generated.ts +44 -52
  666. package/src/server/api-client-core/apis/marketing/marketing-events-types.generated.ts +1787 -1848
  667. package/src/server/api-client-core/apis/marketing/marketing-events.generated.ts +236 -241
  668. package/src/server/api-client-core/apis/marketing/single-send-types.generated.ts +142 -155
  669. package/src/server/api-client-core/apis/marketing/single-send.generated.ts +2 -6
  670. package/src/server/api-client-core/apis/marketing/transactional-single-send-types.generated.ts +253 -269
  671. package/src/server/api-client-core/apis/marketing/transactional-single-send.generated.ts +32 -31
  672. package/src/server/api-client-core/apis/meta/origins-types.generated.ts +40 -56
  673. package/src/server/api-client-core/apis/meta/origins.generated.ts +2 -4
  674. package/src/server/api-client-core/apis/scheduler/meetings-types.generated.ts +1001 -1014
  675. package/src/server/api-client-core/apis/scheduler/meetings.generated.ts +6 -8
  676. package/src/server/api-client-core/apis/settings/multicurrency-types.generated.ts +1906 -1912
  677. package/src/server/api-client-core/apis/settings/multicurrency.generated.ts +64 -63
  678. package/src/server/api-client-core/apis/settings/tax-rates-types.generated.ts +71 -85
  679. package/src/server/api-client-core/apis/settings/tax-rates.generated.ts +2 -4
  680. package/src/server/api-client-core/apis/settings/user-provisioning-types.generated.ts +207 -257
  681. package/src/server/api-client-core/apis/settings/user-provisioning.generated.ts +8 -24
  682. package/src/server/api-client-core/apis/webhooks-journal-types.generated.ts +740 -771
  683. package/src/server/api-client-core/apis/webhooks-journal.generated.ts +47 -59
  684. package/src/server/api-client-core/apis/webhooks-types.generated.ts +1194 -1228
  685. package/src/server/api-client-core/apis/webhooks.generated.ts +52 -64
  686. package/src/server/api-client-core/client.ts +5 -1
  687. package/src/server/api-client-core/pagination.ts +2 -2
  688. package/src/server/api-client-core/plugins/fetch-transport.ts +70 -12
  689. package/src/server/api-client-core/types.ts +1 -1
  690. package/src/server/constants.ts +29 -4
  691. package/src/server/hono/hono-request-handler.ts +68 -27
  692. package/src/server/hono/hubspot-connect-routes/auth-complete.test.ts +394 -0
  693. package/src/server/hono/hubspot-connect-routes/{auth-callback.ts → auth-complete.ts} +81 -30
  694. package/src/server/hono/hubspot-connect-routes/auth-init-session.test.ts +114 -30
  695. package/src/server/hono/hubspot-connect-routes/auth-init-session.ts +35 -10
  696. package/src/server/hono/hubspot-connect-routes/auth-logout.test.ts +13 -0
  697. package/src/server/hono/hubspot-connect-routes/auth-logout.ts +39 -10
  698. package/src/server/hono/hubspot-connect-routes/auth-refresh.test.ts +6 -0
  699. package/src/server/hono/hubspot-connect-routes/auth-refresh.ts +24 -9
  700. package/src/server/hono/hubspot-connect-routes/cimd-public-routes.test.ts +7 -6
  701. package/src/server/hono/hubspot-connect-routes/cimd-public-routes.ts +5 -1
  702. package/src/server/hono/hubspot-connect-routes/hubspot-connect-routes.ts +11 -3
  703. package/src/server/hono/hubspot-connect-routes/load-hubspot-connect-routes-env.test.ts +17 -24
  704. package/src/server/hono/hubspot-connect-routes/load-hubspot-connect-routes-env.ts +8 -8
  705. package/src/server/hono/hubspot-connect-routes/utils.test.ts +16 -46
  706. package/src/server/hono/hubspot-connect-routes/utils.ts +61 -5
  707. package/src/server/hono/hubspot-connect-routes/whoami.ts +74 -0
  708. package/src/server/hono/types.ts +11 -10
  709. package/src/server/hono/utils/cookie-utils.ts +27 -2
  710. package/src/server/hono/utils/cors-middleware.test.ts +80 -0
  711. package/src/server/hono/utils/cors-middleware.ts +95 -0
  712. package/src/server/lovable/create-app-function-start.ts +4 -7
  713. package/src/server/lovable/hubspot-connect/run-hubspot-connect-lovable-server.ts +21 -16
  714. package/src/server/sanitize-request.ts +15 -12
  715. package/src/server/secure-start-core.ts +7 -6
  716. package/src/server/types.ts +2 -38
  717. package/src/server/utils/env-utils.test.ts +140 -12
  718. package/src/server/utils/env-utils.ts +80 -6
  719. package/src/server/utils/hubspot-dpop-auth-headers.test.ts +43 -0
  720. package/src/server/utils/hubspot-dpop-auth-headers.ts +48 -0
  721. package/src/shared/constants.ts +40 -3
  722. package/src/shared/wire-types.ts +49 -0
  723. package/dist/browser/HubSpotAppConnect-BW45gyDs.js.map +0 -1
  724. package/dist/browser/create-vctOhpX9.js.map +0 -1
  725. package/dist/server/hono/hubspot-connect-routes/auth-callback.js +0 -125
  726. package/dist/server/hono/hubspot-connect-routes/auth-callback.js.map +0 -1
  727. package/dist/server/proxy.js +0 -68
  728. package/dist/server/proxy.js.map +0 -1
  729. package/src/server/hono/hubspot-connect-routes/auth-callback.test.ts +0 -225
  730. package/src/server/proxy.test.ts +0 -80
  731. package/src/server/proxy.ts +0 -116
@@ -1,5 +1,9 @@
1
1
  import { afterEach, describe, expect, it, vi } from 'vitest';
2
2
 
3
+ import {
4
+ getHubSpotAuthorizationEndpoint,
5
+ getHubSpotOAuthApiOrigin,
6
+ } from '../../utils/env-utils.ts';
3
7
  import { loadHubSpotConnectRoutesEnv } from './load-hubspot-connect-routes-env.ts';
4
8
 
5
9
  const HUBSPOT_AUTHORIZATION_ENDPOINT_EXAMPLE =
@@ -19,29 +23,16 @@ describe('loadHubSpotConnectRoutesEnv', () => {
19
23
  vi.unstubAllEnvs();
20
24
  });
21
25
 
22
- it('throws when HUBSPOT_AUTHORIZATION_ENDPOINT is missing', () => {
23
- vi.stubEnv('HUBSPOT_OAUTH_API_ORIGIN', HUBSPOT_OAUTH_API_ORIGIN_EXAMPLE);
26
+ it('uses production URL defaults when OAuth endpoint vars are unset', () => {
24
27
  vi.stubEnv('HUBSPOT_CIMD_ENABLED', 'false');
25
28
  vi.stubEnv('HUBSPOT_DPOP_ENABLED', 'false');
26
- vi.stubEnv('HUBSPOT_CLIENT_ID', 'cid');
27
- vi.stubEnv('HUBSPOT_CLIENT_SECRET', 'sec');
28
- expect(() => loadHubSpotConnectRoutesEnv()).toThrow(
29
- 'Missing required environment variable: HUBSPOT_AUTHORIZATION_ENDPOINT'
30
- );
31
- });
32
-
33
- it('throws when HUBSPOT_OAUTH_API_ORIGIN is missing', () => {
34
- vi.stubEnv(
35
- 'HUBSPOT_AUTHORIZATION_ENDPOINT',
36
- HUBSPOT_AUTHORIZATION_ENDPOINT_EXAMPLE
37
- );
38
- vi.stubEnv('HUBSPOT_CIMD_ENABLED', 'false');
39
- vi.stubEnv('HUBSPOT_DPOP_ENABLED', 'false');
40
- vi.stubEnv('HUBSPOT_CLIENT_ID', 'cid');
41
- vi.stubEnv('HUBSPOT_CLIENT_SECRET', 'sec');
42
- expect(() => loadHubSpotConnectRoutesEnv()).toThrow(
43
- 'Missing required environment variable: HUBSPOT_OAUTH_API_ORIGIN'
29
+ vi.stubEnv('HUBSPOT_CLIENT_ID', 'my-id');
30
+ vi.stubEnv('HUBSPOT_CLIENT_SECRET', 'my-secret');
31
+ const env = loadHubSpotConnectRoutesEnv();
32
+ expect(env.hubspotAuthorizationEndpoint).toBe(
33
+ getHubSpotAuthorizationEndpoint()
44
34
  );
35
+ expect(env.hubspotOAuthApiOrigin).toBe(getHubSpotOAuthApiOrigin());
45
36
  });
46
37
 
47
38
  it('throws when CIMD is disabled and HUBSPOT_CLIENT_ID is missing', () => {
@@ -120,12 +111,14 @@ describe('loadHubSpotConnectRoutesEnv', () => {
120
111
  expect(loadHubSpotConnectRoutesEnv().isAppPrivateKeyRequired).toBe(true);
121
112
  });
122
113
 
123
- it('sets isAppPrivateKeyRequired true when both are enabled by default', () => {
114
+ it('sets CIMD and DPoP disabled when both flags are unset', () => {
124
115
  stubHubSpotOAuthEndpoints();
116
+ vi.stubEnv('HUBSPOT_CLIENT_ID', 'id');
117
+ vi.stubEnv('HUBSPOT_CLIENT_SECRET', 'sec');
125
118
  const env = loadHubSpotConnectRoutesEnv();
126
- expect(env.isCimdEnabled).toBe(true);
127
- expect(env.isDpopEnabled).toBe(true);
128
- expect(env.isAppPrivateKeyRequired).toBe(true);
119
+ expect(env.isCimdEnabled).toBe(false);
120
+ expect(env.isDpopEnabled).toBe(false);
121
+ expect(env.isAppPrivateKeyRequired).toBe(false);
129
122
  });
130
123
 
131
124
  it('normalizes HUBSPOT_OAUTH_API_ORIGIN to an origin URL', () => {
@@ -1,7 +1,10 @@
1
1
  import {
2
+ getHubSpotAuthorizationEndpoint,
3
+ getHubSpotOAuthApiOrigin,
2
4
  isHubspotCimdEnabled,
3
5
  isHubspotDpopEnabled,
4
- requireEnv,
6
+ requireHubSpotClientId,
7
+ requireHubSpotClientSecret,
5
8
  } from '../../utils/env-utils.ts';
6
9
 
7
10
  /**
@@ -36,11 +39,8 @@ export interface HubSpotConnectRoutesEnvClientSecret {
36
39
  * {@link registerHubSpotConnectRoutes}.
37
40
  */
38
41
  export function loadHubSpotConnectRoutesEnv(): HubSpotConnectRoutesEnv {
39
- const hubspotAuthorizationEndpoint = requireEnv(
40
- 'HUBSPOT_AUTHORIZATION_ENDPOINT'
41
- );
42
- const hubspotOAuthApiOrigin = new URL(requireEnv('HUBSPOT_OAUTH_API_ORIGIN'))
43
- .origin;
42
+ const hubspotAuthorizationEndpoint = getHubSpotAuthorizationEndpoint();
43
+ const hubspotOAuthApiOrigin = getHubSpotOAuthApiOrigin();
44
44
  const isCimdEnabled = isHubspotCimdEnabled();
45
45
  const isDpopEnabled = isHubspotDpopEnabled();
46
46
  const isAppPrivateKeyRequired = isCimdEnabled || isDpopEnabled;
@@ -61,7 +61,7 @@ export function loadHubSpotConnectRoutesEnv(): HubSpotConnectRoutesEnv {
61
61
  isCimdEnabled: false,
62
62
  isDpopEnabled,
63
63
  isAppPrivateKeyRequired,
64
- hubspotClientId: requireEnv('HUBSPOT_CLIENT_ID'),
65
- hubspotClientSecret: requireEnv('HUBSPOT_CLIENT_SECRET'),
64
+ hubspotClientId: requireHubSpotClientId(),
65
+ hubspotClientSecret: requireHubSpotClientSecret(),
66
66
  };
67
67
  }
@@ -1,5 +1,6 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
 
3
+ import { OAUTH_CALLBACK_PATH } from '../../../shared/constants.ts';
3
4
  import {
4
5
  buildCimdClientIdUrlFromRequest,
5
6
  buildHubSpotAppJwksUrlFromRequest,
@@ -7,6 +8,9 @@ import {
7
8
  getRequestHostForHubspotConnect,
8
9
  } from './utils.ts';
9
10
 
11
+ const APP_ORIGIN = 'https://third-party-app.test:5173';
12
+ const APP_ORIGIN_QUERY = `app_origin=${encodeURIComponent(APP_ORIGIN)}`;
13
+
10
14
  describe('buildCimdClientIdUrlFromRequest', () => {
11
15
  it('builds client id URL under base path', () => {
12
16
  expect(
@@ -14,9 +18,10 @@ describe('buildCimdClientIdUrlFromRequest', () => {
14
18
  requestUrl:
15
19
  'https://third-party-app.test:5173/functions/v1/hubspot-connect/auth/init-session',
16
20
  basePath: '/functions/v1/hubspot-connect',
21
+ appOrigin: APP_ORIGIN,
17
22
  })
18
23
  ).toBe(
19
- 'https://third-party-app.test:5173/functions/v1/hubspot-connect/client.json'
24
+ `https://third-party-app.test:5173/functions/v1/hubspot-connect/client.json?${APP_ORIGIN_QUERY}`
20
25
  );
21
26
  });
22
27
 
@@ -28,9 +33,10 @@ describe('buildCimdClientIdUrlFromRequest', () => {
28
33
  basePath: '/functions/v1/hubspot-connect',
29
34
  xForwardedProto: 'https',
30
35
  xForwardedHost: 'third-party-app.test:5173',
36
+ appOrigin: APP_ORIGIN,
31
37
  })
32
38
  ).toBe(
33
- 'https://third-party-app.test:5173/functions/v1/hubspot-connect/client.json'
39
+ `https://third-party-app.test:5173/functions/v1/hubspot-connect/client.json?${APP_ORIGIN_QUERY}`
34
40
  );
35
41
  });
36
42
  });
@@ -42,6 +48,7 @@ describe('buildHubSpotAppJwksUrlFromRequest', () => {
42
48
  requestUrl:
43
49
  'https://third-party-app.test:5173/functions/v1/hubspot-connect/auth/init-session',
44
50
  basePath: '/functions/v1/hubspot-connect',
51
+ appOrigin: APP_ORIGIN,
45
52
  })
46
53
  ).toBe(
47
54
  'https://third-party-app.test:5173/functions/v1/hubspot-connect/jwks.json'
@@ -50,64 +57,27 @@ describe('buildHubSpotAppJwksUrlFromRequest', () => {
50
57
  });
51
58
 
52
59
  describe('buildOAuthRedirectUriFromRequest', () => {
53
- it('builds callback URL from origin and base path', () => {
60
+ it('builds callback URL from app origin and frontend callback path', () => {
54
61
  expect(
55
62
  buildOAuthRedirectUriFromRequest({
56
63
  requestUrl:
57
64
  'https://third-party-app.test:5173/functions/v1/hubspot-connect/auth/init-session',
58
65
  basePath: '/functions/v1/hubspot-connect',
66
+ appOrigin: APP_ORIGIN,
59
67
  })
60
- ).toBe(
61
- 'https://third-party-app.test:5173/functions/v1/hubspot-connect/auth/callback'
62
- );
68
+ ).toBe(`${APP_ORIGIN}${OAUTH_CALLBACK_PATH}`);
63
69
  });
64
70
 
65
- it('strips a trailing slash from basePath', () => {
71
+ it('ignores basePath and forwarded headers for redirect URI', () => {
66
72
  expect(
67
73
  buildOAuthRedirectUriFromRequest({
68
74
  requestUrl: 'https://example.com/x',
69
75
  basePath: '/functions/v1/hubspot-connect/',
70
- })
71
- ).toBe('https://example.com/functions/v1/hubspot-connect/auth/callback');
72
- });
73
-
74
- it('uses X-Forwarded-Proto and X-Forwarded-Host when present', () => {
75
- expect(
76
- buildOAuthRedirectUriFromRequest({
77
- requestUrl:
78
- 'http://127.0.0.1:5175/functions/v1/hubspot-connect/auth/init-session',
79
- basePath: '/functions/v1/hubspot-connect',
80
- xForwardedProto: 'https',
81
- xForwardedHost: 'third-party-app.test:5173',
82
- })
83
- ).toBe(
84
- 'https://third-party-app.test:5173/functions/v1/hubspot-connect/auth/callback'
85
- );
86
- });
87
-
88
- it('uses X-Forwarded-Proto with Host header when X-Forwarded-Host is absent', () => {
89
- expect(
90
- buildOAuthRedirectUriFromRequest({
91
- requestUrl:
92
- 'http://127.0.0.1:5175/functions/v1/hubspot-connect/auth/init-session',
93
- basePath: '/functions/v1/hubspot-connect',
94
- xForwardedProto: 'https',
95
- requestHostHeader: 'third-party-app.test:5173',
96
- })
97
- ).toBe(
98
- 'https://third-party-app.test:5173/functions/v1/hubspot-connect/auth/callback'
99
- );
100
- });
101
-
102
- it('uses X-Forwarded-Proto with request URL host when forwarded host and Host are absent', () => {
103
- expect(
104
- buildOAuthRedirectUriFromRequest({
105
- requestUrl:
106
- 'http://127.0.0.1:5175/functions/v1/hubspot-connect/auth/init-session',
107
- basePath: '/functions/v1/hubspot-connect',
108
76
  xForwardedProto: 'https',
77
+ xForwardedHost: 'other.example.com',
78
+ appOrigin: APP_ORIGIN,
109
79
  })
110
- ).toBe('https://127.0.0.1:5175/functions/v1/hubspot-connect/auth/callback');
80
+ ).toBe(`${APP_ORIGIN}${OAUTH_CALLBACK_PATH}`);
111
81
  });
112
82
  });
113
83
 
@@ -1,3 +1,4 @@
1
+ import { OAUTH_CALLBACK_PATH } from '../../../shared/constants.ts';
1
2
  import { serializeCookie } from '../utils/cookie-utils.ts';
2
3
 
3
4
  export function clearTempCookie(name: string): string {
@@ -5,11 +6,66 @@ export function clearTempCookie(name: string): string {
5
6
  name,
6
7
  value: '',
7
8
  path: '/',
8
- sameSite: 'Lax',
9
+ sameSite: 'None',
9
10
  maxAge: 0,
11
+ partitioned: true,
10
12
  });
11
13
  }
12
14
 
15
+ /**
16
+ * Parses the request `Origin` header into the canonical origin
17
+ * string (`URL.origin`) or returns `null` when the header is
18
+ * missing, malformed, or carries a scheme/host the SDK does not
19
+ * accept.
20
+ *
21
+ * Accepted shapes:
22
+ *
23
+ * - `https://<host>` for production deployments.
24
+ * - `http://localhost[:<port>]` and `http://127.0.0.1[:<port>]`
25
+ * for local development; browsers exempt these from the `Secure`
26
+ * cookie restriction.
27
+ *
28
+ * Rejects values with a path/query/hash component (the request
29
+ * `Origin` header is by spec a bare origin, so anything else
30
+ * indicates a malformed or hostile request).
31
+ */
32
+ export function parseAppOriginHeader(
33
+ originHeader: string | undefined
34
+ ): string | null {
35
+ if (!originHeader) return null;
36
+ let parsed: URL;
37
+ try {
38
+ parsed = new URL(originHeader);
39
+ } catch {
40
+ return null;
41
+ }
42
+ if (parsed.pathname !== '/' && parsed.pathname !== '') return null;
43
+ if (parsed.search !== '' || parsed.hash !== '') return null;
44
+ if (parsed.protocol === 'https:') return parsed.origin;
45
+ if (
46
+ parsed.protocol === 'http:' &&
47
+ (parsed.hostname === 'localhost' || parsed.hostname === '127.0.0.1')
48
+ ) {
49
+ return parsed.origin;
50
+ }
51
+ return null;
52
+ }
53
+
54
+ /**
55
+ * OAuth `redirect_uri` for the cross-origin app shape: the OAuth
56
+ * callback lands on the **frontend** origin (not the SDK's edge
57
+ * function host), so all cookies set by `init-session` and read by
58
+ * `auth/complete` live in the same `(frontend, edge)` CHIPS
59
+ * partition.
60
+ *
61
+ * Used by `auth/init-session` (when building `authorization_url`)
62
+ * and `auth/complete` (which must rebuild the same value to satisfy
63
+ * the OAuth token endpoint's `redirect_uri` check).
64
+ */
65
+ export function buildFrontendOAuthRedirectUri(appOrigin: string): string {
66
+ return `${appOrigin}${OAUTH_CALLBACK_PATH}`;
67
+ }
68
+
13
69
  export function isSafeReturnPath(rawPath: string): boolean {
14
70
  if (!rawPath.startsWith('/')) return false;
15
71
  if (rawPath.includes('\0')) return false;
@@ -70,6 +126,7 @@ export interface BuildOAuthRedirectUriFromRequestOptions {
70
126
  xForwardedHost?: string | undefined;
71
127
  /** `Host` when `X-Forwarded-Host` is absent but `X-Forwarded-Proto` is set. */
72
128
  requestHostHeader?: string | undefined;
129
+ appOrigin: string;
73
130
  }
74
131
 
75
132
  function normalizeHubSpotConnectBasePath(basePath: string): string {
@@ -106,9 +163,8 @@ export function buildHubSpotConnectRequestOrigin(
106
163
  export function buildOAuthRedirectUriFromRequest(
107
164
  options: BuildOAuthRedirectUriFromRequestOptions
108
165
  ): string {
109
- const trimmed = normalizeHubSpotConnectBasePath(options.basePath);
110
- const origin = buildHubSpotConnectRequestOrigin(options);
111
- return `${origin}${trimmed}/auth/callback`;
166
+ const { appOrigin } = options;
167
+ return `${appOrigin}${OAUTH_CALLBACK_PATH}`;
112
168
  }
113
169
 
114
170
  /**
@@ -119,7 +175,7 @@ export function buildCimdClientIdUrlFromRequest(
119
175
  ): string {
120
176
  const trimmed = normalizeHubSpotConnectBasePath(options.basePath);
121
177
  const origin = buildHubSpotConnectRequestOrigin(options);
122
- return `${origin}${trimmed}/client.json`;
178
+ return `${origin}${trimmed}/client.json?app_origin=${encodeURIComponent(options.appOrigin)}`;
123
179
  }
124
180
 
125
181
  /**
@@ -0,0 +1,74 @@
1
+ import type { AuthCompleteWhoami } from '../../../shared/wire-types.ts';
2
+ import {
3
+ account,
4
+ authOauth,
5
+ createHubSpotClient,
6
+ settingsUsers,
7
+ } from '../../api-client-core/index.ts';
8
+ import { fetchTransportPlugin } from '../../api-client-core/plugins/fetch-transport.ts';
9
+ import { getHubSpotApiOrigin } from '../../utils/env-utils.ts';
10
+ import type { HubSpotConnectRoutesEnv } from './load-hubspot-connect-routes-env.ts';
11
+
12
+ export async function fetchWhoami(
13
+ accessToken: string,
14
+ hubspotConnectEnv: HubSpotConnectRoutesEnv
15
+ ): Promise<AuthCompleteWhoami> {
16
+ const apiClient = createHubSpotClient({
17
+ plugins: [
18
+ fetchTransportPlugin({
19
+ getEndpoint: getHubSpotApiOrigin,
20
+ getAccessToken: () => accessToken,
21
+ }),
22
+ ],
23
+ });
24
+
25
+ const introspectInput = hubspotConnectEnv.isCimdEnabled
26
+ ? { token: accessToken }
27
+ : {
28
+ client_id: hubspotConnectEnv.hubspotClientId,
29
+ client_secret: hubspotConnectEnv.hubspotClientSecret,
30
+ token: accessToken,
31
+ };
32
+
33
+ // Introspect and account.get are independent — run in parallel.
34
+ // settingsUsers.get requires user_id from introspect, so it runs after.
35
+ const [introspectResult, hubResult] = await Promise.allSettled([
36
+ apiClient.send(authOauth.introspectToken(introspectInput)),
37
+ apiClient.send(account.get()),
38
+ ]);
39
+
40
+ const whoami: AuthCompleteWhoami = {
41
+ hub: {},
42
+ user: {},
43
+ };
44
+
45
+ if (hubResult.status === 'fulfilled') {
46
+ const portal = hubResult.value;
47
+ whoami.hub.id = portal.portalId;
48
+ whoami.hub.uiDomain = portal.uiDomain;
49
+ }
50
+
51
+ if (
52
+ introspectResult.status === 'fulfilled' &&
53
+ introspectResult.value.token_use === 'access_token'
54
+ ) {
55
+ whoami.hub.domain = introspectResult.value.hub_domain;
56
+
57
+ const userId = String(introspectResult.value.user_id);
58
+ const userResult = await apiClient
59
+ .send(settingsUsers.get({ userId, idProperty: 'USER_ID' }))
60
+ .then(
61
+ (u) => ({ ok: true as const, value: u }),
62
+ () => ({ ok: false as const })
63
+ );
64
+ if (userResult.ok) {
65
+ const u = userResult.value;
66
+ whoami.user.id = u.id;
67
+ whoami.user.email = u.email;
68
+ whoami.user.firstName = u.firstName;
69
+ whoami.user.lastName = u.lastName;
70
+ }
71
+ }
72
+
73
+ return whoami;
74
+ }
@@ -1,24 +1,25 @@
1
1
  import type { HubSpotClient } from '../api-client-core/types.ts';
2
- import type { HubSpotProxy } from '../types.ts';
3
2
 
4
- export interface AppConnectHonoBindings {
3
+ export interface AppConnectRequestContext {
5
4
  /**
6
- * Authenticated proxy that issues DPoP-bound calls to HubSpot's
7
- * API on behalf of the browser session that made the inbound
8
- * request. `authenticated: false` when the session cookies are
9
- * absent or invalid.
5
+ * HubSpot API client.
10
6
  */
11
- hubSpotProxy: HubSpotProxy;
7
+ client: HubSpotClient;
8
+
12
9
  /**
13
- * Authenticated HubSpot API client.
10
+ * Whether the browser session is authenticated.
14
11
  */
15
- hubSpotClient: HubSpotClient;
12
+ authenticated: boolean;
13
+ }
14
+
15
+ export interface AppConnectHonoBindings {
16
+ hubSpot: AppConnectRequestContext;
16
17
  }
17
18
 
18
19
  /**
19
20
  * Hono environment shape used by handlers running inside a hubspot-
20
21
  * connect request handler. Exposes the per-request
21
- * {@link HubSpotProxy} as `c.env.hubSpotProxy`.
22
+ * {@link AppConnectRequestContext} as `c.env.hubSpot`.
22
23
  */
23
24
  export interface AppConnectHonoEnv {
24
25
  Bindings: AppConnectHonoBindings;
@@ -20,14 +20,37 @@ export interface SerializeCookieOptions {
20
20
  value: string;
21
21
  /** `__Host-` prefix requires `Path=/` and is recommended for session cookies. */
22
22
  path: string;
23
- /** Defaults to `Strict`. Use `Lax` for short-lived OAuth temp cookies. */
24
- sameSite?: 'Strict' | 'Lax';
23
+ /**
24
+ * Defaults to `Strict`.
25
+ *
26
+ * - `Strict`: only sent on same-site requests. Default for self-hosted
27
+ * same-origin deployments.
28
+ * - `Lax`: also sent on top-level cross-site GET navigations. Use for
29
+ * short-lived OAuth temp cookies that need to survive a redirect.
30
+ * - `None`: sent on all cross-site requests; **requires `Secure=true`
31
+ * and is typically combined with `Partitioned=true`** for the
32
+ * cross-origin Lovable / Supabase deployment shape.
33
+ */
34
+ sameSite?: 'Strict' | 'Lax' | 'None';
25
35
  /** Lifetime in seconds. `0` deletes the cookie. */
26
36
  maxAge: number;
27
37
  /** Defaults to `true`; only set `false` for tests or non-HTTPS dev hosts. */
28
38
  secure?: boolean;
29
39
  /** Defaults to `true`. */
30
40
  httpOnly?: boolean;
41
+ /**
42
+ * When `true`, appends the `Partitioned` attribute (CHIPS — Cookies
43
+ * Having Independent Partitioned State). The browser then keys the
44
+ * cookie by `(top-level site, cookie host)` instead of by cookie
45
+ * host alone, which is required for the cross-origin SDK shape
46
+ * where the React app and the SDK's edge functions live on
47
+ * different sites and third-party cookies are blocked.
48
+ *
49
+ * Defaults to `false`. Browsers ignore `Partitioned` on cookies
50
+ * without `Secure=true` and reject it on cookies without
51
+ * `SameSite=None`.
52
+ */
53
+ partitioned?: boolean;
31
54
  }
32
55
 
33
56
  /**
@@ -44,6 +67,7 @@ export function serializeCookie(options: SerializeCookieOptions): string {
44
67
  maxAge,
45
68
  secure = true,
46
69
  httpOnly = true,
70
+ partitioned = false,
47
71
  } = options;
48
72
  const parts: string[] = [`${name}=${value}`];
49
73
  if (httpOnly) parts.push('HttpOnly');
@@ -51,5 +75,6 @@ export function serializeCookie(options: SerializeCookieOptions): string {
51
75
  parts.push(`SameSite=${sameSite}`);
52
76
  parts.push(`Path=${path}`);
53
77
  parts.push(`Max-Age=${maxAge}`);
78
+ if (partitioned) parts.push('Partitioned');
54
79
  return parts.join('; ');
55
80
  }
@@ -0,0 +1,80 @@
1
+ import { Hono } from 'hono';
2
+ import { describe, expect, it } from 'vitest';
3
+
4
+ import { HUBSPOT_APP_ORIGIN_COOKIE_NAME } from '../../constants.ts';
5
+ import { corsMiddleware } from './cors-middleware.ts';
6
+
7
+ const APP_ORIGIN = 'https://app.example.com';
8
+ const PINNED_ORIGIN = 'https://pinned.example.com';
9
+
10
+ function buildApp(): Hono {
11
+ const app = new Hono();
12
+ app.use('*', corsMiddleware());
13
+ app.get('/echo', (c) => c.json({ ok: true }));
14
+ app.post('/echo', (c) => c.json({ ok: true }));
15
+ return app;
16
+ }
17
+
18
+ describe('corsMiddleware', () => {
19
+ it('answers OPTIONS preflight with 204 + credentialed CORS headers', async () => {
20
+ const app = buildApp();
21
+ const res = await app.request('http://localhost/echo', {
22
+ method: 'OPTIONS',
23
+ headers: { Origin: APP_ORIGIN },
24
+ });
25
+
26
+ expect(res.status).toBe(204);
27
+ expect(res.headers.get('Access-Control-Allow-Origin')).toBe(APP_ORIGIN);
28
+ expect(res.headers.get('Access-Control-Allow-Credentials')).toBe('true');
29
+ expect(res.headers.get('Access-Control-Allow-Methods')).toContain('GET');
30
+ expect(res.headers.get('Access-Control-Allow-Methods')).toContain('POST');
31
+ expect(res.headers.get('Access-Control-Allow-Methods')).toContain('DELETE');
32
+ expect(res.headers.get('Access-Control-Allow-Methods')).toContain(
33
+ 'OPTIONS'
34
+ );
35
+ expect(res.headers.get('Access-Control-Allow-Headers')).toContain(
36
+ 'authorization'
37
+ );
38
+ expect(res.headers.get('Access-Control-Allow-Headers')).toContain('apikey');
39
+ expect(res.headers.get('Access-Control-Max-Age')).toBe('600');
40
+ expect(res.headers.get('Vary')).toContain('Origin');
41
+ });
42
+
43
+ it('echoes the request Origin when no pinned origin cookie is present', async () => {
44
+ const app = buildApp();
45
+ const res = await app.request('http://localhost/echo', {
46
+ method: 'GET',
47
+ headers: { Origin: APP_ORIGIN },
48
+ });
49
+
50
+ expect(res.status).toBe(200);
51
+ expect(res.headers.get('Access-Control-Allow-Origin')).toBe(APP_ORIGIN);
52
+ expect(res.headers.get('Access-Control-Allow-Credentials')).toBe('true');
53
+ expect(res.headers.get('Vary')).toContain('Origin');
54
+ expect(res.headers.get('Vary')).toContain('Cookie');
55
+ });
56
+
57
+ it('prefers the pinned `__Host-hs_app_origin` cookie over the Origin header', async () => {
58
+ const app = buildApp();
59
+ const res = await app.request('http://localhost/echo', {
60
+ method: 'GET',
61
+ headers: {
62
+ Origin: APP_ORIGIN,
63
+ Cookie: `${HUBSPOT_APP_ORIGIN_COOKIE_NAME}=${PINNED_ORIGIN}`,
64
+ },
65
+ });
66
+
67
+ expect(res.status).toBe(200);
68
+ expect(res.headers.get('Access-Control-Allow-Origin')).toBe(PINNED_ORIGIN);
69
+ expect(res.headers.get('Access-Control-Allow-Credentials')).toBe('true');
70
+ });
71
+
72
+ it('omits CORS headers when the request has no Origin (server-to-server / curl)', async () => {
73
+ const app = buildApp();
74
+ const res = await app.request('http://localhost/echo', { method: 'GET' });
75
+
76
+ expect(res.status).toBe(200);
77
+ expect(res.headers.get('Access-Control-Allow-Origin')).toBeNull();
78
+ expect(res.headers.get('Access-Control-Allow-Credentials')).toBeNull();
79
+ });
80
+ });
@@ -0,0 +1,95 @@
1
+ import type { Context, MiddlewareHandler } from 'hono';
2
+
3
+ import { HUBSPOT_APP_ORIGIN_COOKIE_NAME } from '../../constants.ts';
4
+ import { parseCookies } from '../../utils/cookie-utils.ts';
5
+
6
+ /**
7
+ * Comma-separated list of request headers the SDK accepts on
8
+ * cross-site fetches. Mirrors the Supabase Edge Functions defaults
9
+ * the Lovable AI agent emits today, plus `content-type` for the
10
+ * `auth/complete` POST body and `accept` so JSON content negotiation
11
+ * works.
12
+ */
13
+ const ALLOWED_HEADERS = [
14
+ 'authorization',
15
+ 'x-client-info',
16
+ 'apikey',
17
+ 'content-type',
18
+ 'accept',
19
+ 'x-supabase-client-platform',
20
+ 'x-supabase-client-platform-version',
21
+ 'x-supabase-client-runtime',
22
+ 'x-supabase-client-runtime-version',
23
+ ].join(', ');
24
+
25
+ const ALLOWED_METHODS = 'GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS';
26
+
27
+ const PREFLIGHT_MAX_AGE_SECONDS = '600';
28
+
29
+ /**
30
+ * Reads the persisted app-origin cookie from the request, falling
31
+ * back to the literal `Origin` request header. The cookie is the
32
+ * authoritative pin once `auth/init-session` has run; on the very
33
+ * first init-session call (no cookie yet) we just echo whatever
34
+ * `Origin` the caller sent — the actual access decision is enforced
35
+ * by cookie-based authentication on every other route, not by CORS.
36
+ */
37
+ function resolveAllowedOrigin(c: Context): string | null {
38
+ const cookies = parseCookies(c.req.header('Cookie'));
39
+ const pinned = cookies[HUBSPOT_APP_ORIGIN_COOKIE_NAME];
40
+ if (pinned) return pinned;
41
+ return c.req.header('Origin') ?? null;
42
+ }
43
+
44
+ function setSharedCorsHeaders(c: Context, allowOrigin: string): void {
45
+ c.res.headers.set('Access-Control-Allow-Origin', allowOrigin);
46
+ c.res.headers.set('Access-Control-Allow-Credentials', 'true');
47
+ // `Origin` so caches differentiate per-caller responses; `Cookie`
48
+ // because the allowed origin is derived from the persisted
49
+ // `__Host-hs_app_origin` cookie.
50
+ c.res.headers.set('Vary', 'Origin, Cookie');
51
+ }
52
+
53
+ /**
54
+ * Hono middleware that emits credentialed CORS response headers for
55
+ * the cross-origin Lovable / Supabase deployment shape.
56
+ *
57
+ * - On `OPTIONS` preflight: short-circuits with a 204 carrying
58
+ * `Access-Control-Allow-*` headers. The browser will then send the
59
+ * real request with cookies attached.
60
+ * - On every other method: echoes the pinned `__Host-hs_app_origin`
61
+ * cookie value (or, before init-session has run, the request
62
+ * `Origin` header) as `Access-Control-Allow-Origin`, with
63
+ * `Access-Control-Allow-Credentials: true`. The wildcard `*` is
64
+ * forbidden by browsers when credentials are included, so the
65
+ * middleware always echoes a concrete origin.
66
+ *
67
+ * Skips header emission entirely when the request has no `Origin`
68
+ * (server-to-server calls, curl, etc.) so non-browser callers are
69
+ * left untouched.
70
+ */
71
+ export function corsMiddleware(): MiddlewareHandler {
72
+ return async (c, next) => {
73
+ const allowOrigin = resolveAllowedOrigin(c);
74
+
75
+ if (c.req.method === 'OPTIONS') {
76
+ const headers = new Headers();
77
+ if (allowOrigin) {
78
+ headers.set('Access-Control-Allow-Origin', allowOrigin);
79
+ headers.set('Access-Control-Allow-Credentials', 'true');
80
+ headers.set('Vary', 'Origin, Cookie');
81
+ }
82
+ headers.set('Access-Control-Allow-Methods', ALLOWED_METHODS);
83
+ headers.set('Access-Control-Allow-Headers', ALLOWED_HEADERS);
84
+ headers.set('Access-Control-Max-Age', PREFLIGHT_MAX_AGE_SECONDS);
85
+ return new Response(null, { status: 204, headers });
86
+ }
87
+
88
+ await next();
89
+
90
+ if (allowOrigin) {
91
+ setSharedCorsHeaders(c, allowOrigin);
92
+ }
93
+ return;
94
+ };
95
+ }