webflow-api 3.1.0 → 3.1.2

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 (351) hide show
  1. package/.mock/definition/__package__.yml +363 -79
  2. package/.mock/definition/accessGroups.yml +1 -0
  3. package/.mock/definition/assets.yml +86 -47
  4. package/.mock/definition/collections/fields.yml +63 -46
  5. package/.mock/definition/collections/items.yml +58 -30
  6. package/.mock/definition/collections.yml +42 -7
  7. package/.mock/definition/components.yml +43 -50
  8. package/.mock/definition/ecommerce.yml +1 -0
  9. package/.mock/definition/forms.yml +114 -2
  10. package/.mock/definition/inventory.yml +2 -0
  11. package/.mock/definition/orders.yml +6 -68
  12. package/.mock/definition/pages/scripts.yml +10 -44
  13. package/.mock/definition/pages.yml +36 -41
  14. package/.mock/definition/products.yml +9 -0
  15. package/.mock/definition/scripts.yml +18 -49
  16. package/.mock/definition/sites/activityLogs.yml +10 -7
  17. package/.mock/definition/sites/plans.yml +7 -1
  18. package/.mock/definition/sites/redirects.yml +24 -1
  19. package/.mock/definition/sites/robotsTxt.yml +202 -0
  20. package/.mock/definition/sites/scripts.yml +22 -30
  21. package/.mock/definition/sites.yml +27 -30
  22. package/.mock/definition/token.yml +2 -0
  23. package/.mock/definition/users.yml +4 -0
  24. package/.mock/definition/webhooks.yml +7 -8
  25. package/.mock/fern.config.json +1 -1
  26. package/api/resources/accessGroups/client/Client.js +1 -1
  27. package/api/resources/assets/client/Client.d.ts +10 -7
  28. package/api/resources/assets/client/Client.js +18 -15
  29. package/api/resources/collections/client/Client.d.ts +21 -1
  30. package/api/resources/collections/client/Client.js +27 -5
  31. package/api/resources/collections/client/requests/CollectionsCreateRequest.d.ts +23 -1
  32. package/api/resources/collections/resources/fields/client/Client.d.ts +34 -4
  33. package/api/resources/collections/resources/fields/client/Client.js +40 -8
  34. package/api/resources/collections/resources/fields/client/requests/index.d.ts +0 -1
  35. package/api/resources/collections/resources/fields/index.d.ts +0 -1
  36. package/api/resources/collections/resources/fields/index.js +0 -1
  37. package/api/resources/collections/resources/index.d.ts +1 -2
  38. package/api/resources/collections/resources/index.js +2 -3
  39. package/api/resources/collections/resources/items/client/Client.d.ts +19 -12
  40. package/api/resources/collections/resources/items/client/Client.js +39 -28
  41. package/api/resources/collections/resources/items/client/requests/ItemsListItemsLiveRequest.d.ts +2 -2
  42. package/api/resources/collections/resources/items/client/requests/ItemsListItemsRequest.d.ts +2 -2
  43. package/api/resources/collections/resources/items/types/ItemsDeleteItemsLiveRequestItemsItem.d.ts +1 -1
  44. package/api/resources/components/client/Client.d.ts +5 -6
  45. package/api/resources/components/client/Client.js +10 -11
  46. package/api/resources/ecommerce/client/Client.js +1 -1
  47. package/api/resources/forms/client/Client.d.ts +51 -0
  48. package/api/resources/forms/client/Client.js +226 -5
  49. package/api/resources/forms/client/requests/FormsListSubmissionsBySiteRequest.d.ts +23 -0
  50. package/api/resources/forms/client/requests/index.d.ts +1 -0
  51. package/api/resources/inventory/client/Client.js +2 -2
  52. package/api/resources/orders/client/Client.js +6 -6
  53. package/api/resources/pages/client/Client.d.ts +8 -3
  54. package/api/resources/pages/client/Client.js +13 -8
  55. package/api/resources/pages/resources/scripts/client/Client.d.ts +6 -20
  56. package/api/resources/pages/resources/scripts/client/Client.js +9 -23
  57. package/api/resources/products/client/Client.js +6 -6
  58. package/api/resources/scripts/client/Client.d.ts +12 -20
  59. package/api/resources/scripts/client/Client.js +15 -23
  60. package/api/resources/sites/client/Client.d.ts +12 -3
  61. package/api/resources/sites/client/Client.js +25 -14
  62. package/api/resources/sites/resources/activityLogs/client/Client.d.ts +5 -1
  63. package/api/resources/sites/resources/activityLogs/client/Client.js +6 -2
  64. package/api/resources/sites/resources/index.d.ts +1 -0
  65. package/api/resources/sites/resources/index.js +2 -1
  66. package/api/resources/sites/resources/plans/client/Client.d.ts +2 -0
  67. package/api/resources/sites/resources/plans/client/Client.js +3 -1
  68. package/api/resources/sites/resources/redirects/client/Client.d.ts +10 -0
  69. package/api/resources/sites/resources/redirects/client/Client.js +14 -4
  70. package/api/resources/sites/resources/robotsTxt/client/Client.d.ts +124 -0
  71. package/api/resources/sites/resources/robotsTxt/client/Client.js +486 -0
  72. package/api/resources/sites/resources/robotsTxt/client/index.d.ts +1 -0
  73. package/api/resources/sites/resources/robotsTxt/client/index.js +2 -0
  74. package/api/resources/sites/resources/robotsTxt/index.d.ts +1 -0
  75. package/api/resources/{collections/resources/fields/types → sites/resources/robotsTxt}/index.js +1 -1
  76. package/api/resources/sites/resources/scripts/client/Client.d.ts +15 -13
  77. package/api/resources/sites/resources/scripts/client/Client.js +19 -17
  78. package/api/resources/token/client/Client.js +2 -2
  79. package/api/resources/users/client/Client.js +5 -5
  80. package/api/resources/users/client/requests/UsersInviteRequest.d.ts +1 -4
  81. package/api/resources/users/client/requests/UsersUpdateRequest.d.ts +1 -4
  82. package/api/resources/webhooks/client/Client.js +4 -4
  83. package/api/types/Asset.d.ts +4 -0
  84. package/api/types/AssetVariant.d.ts +3 -0
  85. package/api/types/Assets.d.ts +1 -0
  86. package/api/types/ComponentNode.d.ts +2 -2
  87. package/api/types/Conflict.d.ts +4 -0
  88. package/api/types/Dom.d.ts +2 -0
  89. package/api/types/FieldCreate.d.ts +8 -0
  90. package/api/types/FieldCreate.js +5 -0
  91. package/api/types/FieldType.d.ts +3 -1
  92. package/api/types/FieldType.js +2 -0
  93. package/api/types/ImageNode.d.ts +1 -0
  94. package/api/types/ImageNodeImage.d.ts +3 -0
  95. package/api/types/Metadata.d.ts +11 -0
  96. package/api/types/Metadata.js +5 -0
  97. package/api/types/MetadataOptionsItem.d.ts +12 -0
  98. package/api/types/MetadataOptionsItem.js +5 -0
  99. package/api/types/OAuthScope.d.ts +8 -0
  100. package/api/types/OAuthScope.js +2 -0
  101. package/api/types/OptionField.d.ts +19 -0
  102. package/api/types/OptionField.js +5 -0
  103. package/api/types/ReferenceField.d.ts +20 -0
  104. package/api/types/ReferenceField.js +5 -0
  105. package/api/types/ReferenceFieldMetadata.d.ts +10 -0
  106. package/api/types/ReferenceFieldMetadata.js +5 -0
  107. package/api/types/ReferenceFieldType.d.ts +11 -0
  108. package/api/types/ReferenceFieldType.js +10 -0
  109. package/api/types/Robots.d.ts +13 -0
  110. package/api/types/Robots.js +5 -0
  111. package/api/types/RobotsRulesItem.d.ts +11 -0
  112. package/api/types/RobotsRulesItem.js +5 -0
  113. package/api/types/SkuFieldData.d.ts +2 -0
  114. package/api/types/SkuFieldDataEcSkuBillingMethod.d.ts +3 -0
  115. package/api/types/SkuFieldDataEcSkuSubscriptionPlan.d.ts +3 -0
  116. package/api/{resources/collections/resources/fields/client/requests/FieldCreate.d.ts → types/StaticField.d.ts} +7 -12
  117. package/api/types/StaticField.js +5 -0
  118. package/api/{resources/collections/resources/fields/types/FieldCreateType.d.ts → types/StaticFieldType.d.ts} +2 -3
  119. package/{dist/api/resources/collections/resources/fields/types/FieldCreateType.js → api/types/StaticFieldType.js} +2 -3
  120. package/api/types/Text.d.ts +3 -0
  121. package/api/types/TextNode.d.ts +1 -0
  122. package/api/types/TextNodeText.d.ts +3 -0
  123. package/api/types/TriggerType.d.ts +1 -15
  124. package/api/types/WebhookList.d.ts +1 -1
  125. package/api/types/index.d.ts +12 -0
  126. package/api/types/index.js +12 -0
  127. package/dist/api/resources/accessGroups/client/Client.js +1 -1
  128. package/dist/api/resources/assets/client/Client.d.ts +10 -7
  129. package/dist/api/resources/assets/client/Client.js +18 -15
  130. package/dist/api/resources/collections/client/Client.d.ts +21 -1
  131. package/dist/api/resources/collections/client/Client.js +27 -5
  132. package/dist/api/resources/collections/client/requests/CollectionsCreateRequest.d.ts +23 -1
  133. package/dist/api/resources/collections/resources/fields/client/Client.d.ts +34 -4
  134. package/dist/api/resources/collections/resources/fields/client/Client.js +40 -8
  135. package/dist/api/resources/collections/resources/fields/client/requests/index.d.ts +0 -1
  136. package/dist/api/resources/collections/resources/fields/index.d.ts +0 -1
  137. package/dist/api/resources/collections/resources/fields/index.js +0 -1
  138. package/dist/api/resources/collections/resources/index.d.ts +1 -2
  139. package/dist/api/resources/collections/resources/index.js +2 -3
  140. package/dist/api/resources/collections/resources/items/client/Client.d.ts +19 -12
  141. package/dist/api/resources/collections/resources/items/client/Client.js +39 -28
  142. package/dist/api/resources/collections/resources/items/client/requests/ItemsListItemsLiveRequest.d.ts +2 -2
  143. package/dist/api/resources/collections/resources/items/client/requests/ItemsListItemsRequest.d.ts +2 -2
  144. package/dist/api/resources/collections/resources/items/types/ItemsDeleteItemsLiveRequestItemsItem.d.ts +1 -1
  145. package/dist/api/resources/components/client/Client.d.ts +5 -6
  146. package/dist/api/resources/components/client/Client.js +10 -11
  147. package/dist/api/resources/ecommerce/client/Client.js +1 -1
  148. package/dist/api/resources/forms/client/Client.d.ts +51 -0
  149. package/dist/api/resources/forms/client/Client.js +226 -5
  150. package/dist/api/resources/forms/client/requests/FormsListSubmissionsBySiteRequest.d.ts +23 -0
  151. package/dist/api/resources/forms/client/requests/FormsListSubmissionsBySiteRequest.js +5 -0
  152. package/dist/api/resources/forms/client/requests/index.d.ts +1 -0
  153. package/dist/api/resources/inventory/client/Client.js +2 -2
  154. package/dist/api/resources/orders/client/Client.js +6 -6
  155. package/dist/api/resources/pages/client/Client.d.ts +8 -3
  156. package/dist/api/resources/pages/client/Client.js +13 -8
  157. package/dist/api/resources/pages/resources/scripts/client/Client.d.ts +6 -20
  158. package/dist/api/resources/pages/resources/scripts/client/Client.js +9 -23
  159. package/dist/api/resources/products/client/Client.js +6 -6
  160. package/dist/api/resources/scripts/client/Client.d.ts +12 -20
  161. package/dist/api/resources/scripts/client/Client.js +15 -23
  162. package/dist/api/resources/sites/client/Client.d.ts +12 -3
  163. package/dist/api/resources/sites/client/Client.js +25 -14
  164. package/dist/api/resources/sites/resources/activityLogs/client/Client.d.ts +5 -1
  165. package/dist/api/resources/sites/resources/activityLogs/client/Client.js +6 -2
  166. package/dist/api/resources/sites/resources/index.d.ts +1 -0
  167. package/dist/api/resources/sites/resources/index.js +2 -1
  168. package/dist/api/resources/sites/resources/plans/client/Client.d.ts +2 -0
  169. package/dist/api/resources/sites/resources/plans/client/Client.js +3 -1
  170. package/dist/api/resources/sites/resources/redirects/client/Client.d.ts +10 -0
  171. package/dist/api/resources/sites/resources/redirects/client/Client.js +14 -4
  172. package/dist/api/resources/sites/resources/robotsTxt/client/Client.d.ts +124 -0
  173. package/dist/api/resources/sites/resources/robotsTxt/client/Client.js +486 -0
  174. package/dist/api/resources/sites/resources/robotsTxt/client/index.d.ts +1 -0
  175. package/dist/api/resources/sites/resources/robotsTxt/client/index.js +2 -0
  176. package/dist/api/resources/sites/resources/robotsTxt/index.d.ts +1 -0
  177. package/dist/{serialization/resources/collections/resources/fields/types → api/resources/sites/resources/robotsTxt}/index.js +1 -1
  178. package/dist/api/resources/sites/resources/scripts/client/Client.d.ts +15 -13
  179. package/dist/api/resources/sites/resources/scripts/client/Client.js +19 -17
  180. package/dist/api/resources/token/client/Client.js +2 -2
  181. package/dist/api/resources/users/client/Client.js +5 -5
  182. package/dist/api/resources/users/client/requests/UsersInviteRequest.d.ts +1 -4
  183. package/dist/api/resources/users/client/requests/UsersUpdateRequest.d.ts +1 -4
  184. package/dist/api/resources/webhooks/client/Client.js +4 -4
  185. package/dist/api/types/Asset.d.ts +4 -0
  186. package/dist/api/types/AssetVariant.d.ts +3 -0
  187. package/dist/api/types/Assets.d.ts +1 -0
  188. package/dist/api/types/ComponentNode.d.ts +2 -2
  189. package/dist/api/types/Conflict.d.ts +4 -0
  190. package/dist/api/types/Conflict.js +5 -0
  191. package/dist/api/types/Dom.d.ts +2 -0
  192. package/dist/api/types/FieldCreate.d.ts +8 -0
  193. package/dist/api/types/FieldCreate.js +5 -0
  194. package/dist/api/types/FieldType.d.ts +3 -1
  195. package/dist/api/types/FieldType.js +2 -0
  196. package/dist/api/types/ImageNode.d.ts +1 -0
  197. package/dist/api/types/ImageNodeImage.d.ts +3 -0
  198. package/dist/api/types/Metadata.d.ts +11 -0
  199. package/dist/api/types/Metadata.js +5 -0
  200. package/dist/api/types/MetadataOptionsItem.d.ts +12 -0
  201. package/dist/api/types/MetadataOptionsItem.js +5 -0
  202. package/dist/api/types/OAuthScope.d.ts +8 -0
  203. package/dist/api/types/OAuthScope.js +2 -0
  204. package/dist/api/types/OptionField.d.ts +19 -0
  205. package/dist/api/types/OptionField.js +5 -0
  206. package/dist/api/types/ReferenceField.d.ts +20 -0
  207. package/dist/api/types/ReferenceField.js +5 -0
  208. package/dist/api/types/ReferenceFieldMetadata.d.ts +10 -0
  209. package/dist/api/types/ReferenceFieldMetadata.js +5 -0
  210. package/dist/api/types/ReferenceFieldType.d.ts +11 -0
  211. package/dist/api/types/ReferenceFieldType.js +10 -0
  212. package/dist/api/types/Robots.d.ts +13 -0
  213. package/dist/api/types/Robots.js +5 -0
  214. package/dist/api/types/RobotsRulesItem.d.ts +11 -0
  215. package/dist/api/types/RobotsRulesItem.js +5 -0
  216. package/dist/api/types/SkuFieldData.d.ts +2 -0
  217. package/dist/api/types/SkuFieldDataEcSkuBillingMethod.d.ts +3 -0
  218. package/dist/api/types/SkuFieldDataEcSkuSubscriptionPlan.d.ts +3 -0
  219. package/dist/api/{resources/collections/resources/fields/client/requests/FieldCreate.d.ts → types/StaticField.d.ts} +7 -12
  220. package/dist/api/types/StaticField.js +5 -0
  221. package/dist/api/{resources/collections/resources/fields/types/FieldCreateType.d.ts → types/StaticFieldType.d.ts} +2 -3
  222. package/{api/resources/collections/resources/fields/types/FieldCreateType.js → dist/api/types/StaticFieldType.js} +2 -3
  223. package/dist/api/types/Text.d.ts +3 -0
  224. package/dist/api/types/TextNode.d.ts +1 -0
  225. package/dist/api/types/TextNodeText.d.ts +3 -0
  226. package/dist/api/types/TriggerType.d.ts +1 -15
  227. package/dist/api/types/WebhookList.d.ts +1 -1
  228. package/dist/api/types/index.d.ts +12 -0
  229. package/dist/api/types/index.js +12 -0
  230. package/dist/serialization/resources/collections/client/requests/CollectionsCreateRequest.d.ts +2 -0
  231. package/dist/serialization/resources/collections/client/requests/CollectionsCreateRequest.js +2 -0
  232. package/dist/serialization/resources/collections/resources/fields/client/requests/index.d.ts +0 -1
  233. package/dist/serialization/resources/collections/resources/fields/client/requests/index.js +1 -3
  234. package/dist/serialization/resources/collections/resources/fields/index.d.ts +0 -1
  235. package/dist/serialization/resources/collections/resources/fields/index.js +0 -1
  236. package/dist/serialization/resources/collections/resources/index.d.ts +1 -2
  237. package/dist/serialization/resources/collections/resources/index.js +2 -3
  238. package/dist/serialization/resources/collections/resources/items/types/ItemsDeleteItemsLiveRequestItemsItem.d.ts +1 -1
  239. package/dist/serialization/resources/collections/resources/items/types/ItemsDeleteItemsLiveRequestItemsItem.js +1 -1
  240. package/dist/serialization/types/Assets.d.ts +2 -0
  241. package/dist/serialization/types/Assets.js +2 -0
  242. package/dist/serialization/types/Conflict.d.ts +10 -0
  243. package/dist/serialization/types/Conflict.js +31 -0
  244. package/dist/serialization/types/Dom.d.ts +1 -0
  245. package/dist/serialization/types/Dom.js +1 -0
  246. package/dist/serialization/types/FieldCreate.d.ts +13 -0
  247. package/dist/serialization/types/FieldCreate.js +34 -0
  248. package/dist/serialization/types/FieldType.d.ts +1 -1
  249. package/dist/serialization/types/FieldType.js +2 -0
  250. package/dist/serialization/types/Metadata.d.ts +13 -0
  251. package/dist/serialization/types/Metadata.js +34 -0
  252. package/dist/serialization/types/MetadataOptionsItem.d.ts +13 -0
  253. package/dist/serialization/types/MetadataOptionsItem.js +34 -0
  254. package/dist/serialization/types/OptionField.d.ts +19 -0
  255. package/dist/serialization/types/OptionField.js +40 -0
  256. package/dist/serialization/types/ReferenceField.d.ts +20 -0
  257. package/dist/serialization/types/ReferenceField.js +41 -0
  258. package/dist/serialization/types/ReferenceFieldMetadata.d.ts +12 -0
  259. package/dist/serialization/types/ReferenceFieldMetadata.js +33 -0
  260. package/dist/serialization/types/ReferenceFieldType.d.ts +10 -0
  261. package/dist/serialization/types/ReferenceFieldType.js +31 -0
  262. package/dist/serialization/types/Robots.d.ts +14 -0
  263. package/dist/serialization/types/Robots.js +35 -0
  264. package/dist/serialization/types/RobotsRulesItem.d.ts +14 -0
  265. package/dist/serialization/types/RobotsRulesItem.js +35 -0
  266. package/dist/serialization/types/StaticField.d.ts +18 -0
  267. package/dist/serialization/{resources/collections/resources/fields/client/requests/FieldCreate.js → types/StaticField.js} +7 -5
  268. package/dist/serialization/types/StaticFieldType.d.ts +10 -0
  269. package/dist/serialization/{resources/collections/resources/fields/types/FieldCreateType.js → types/StaticFieldType.js} +3 -4
  270. package/dist/serialization/types/WebhookList.d.ts +2 -2
  271. package/dist/serialization/types/WebhookList.js +2 -2
  272. package/dist/serialization/types/index.d.ts +12 -0
  273. package/dist/serialization/types/index.js +12 -0
  274. package/dist/version.d.ts +1 -1
  275. package/dist/version.js +1 -1
  276. package/dist/wrapper/AssetsClient.d.ts +12 -0
  277. package/dist/wrapper/AssetsClient.js +16 -0
  278. package/dist/wrapper/AssetsUtilitiesClient.d.ts +49 -0
  279. package/dist/wrapper/AssetsUtilitiesClient.js +121 -0
  280. package/dist/wrapper/WebflowClient.d.ts +6 -0
  281. package/dist/wrapper/WebflowClient.js +10 -0
  282. package/dist/wrapper/WebhooksClient.d.ts +39 -0
  283. package/dist/wrapper/WebhooksClient.js +66 -0
  284. package/package.json +15 -12
  285. package/reference.md +585 -91
  286. package/serialization/resources/collections/client/requests/CollectionsCreateRequest.d.ts +2 -0
  287. package/serialization/resources/collections/client/requests/CollectionsCreateRequest.js +2 -0
  288. package/serialization/resources/collections/resources/fields/client/requests/index.d.ts +0 -1
  289. package/serialization/resources/collections/resources/fields/client/requests/index.js +1 -3
  290. package/serialization/resources/collections/resources/fields/index.d.ts +0 -1
  291. package/serialization/resources/collections/resources/fields/index.js +0 -1
  292. package/serialization/resources/collections/resources/index.d.ts +1 -2
  293. package/serialization/resources/collections/resources/index.js +2 -3
  294. package/serialization/resources/collections/resources/items/types/ItemsDeleteItemsLiveRequestItemsItem.d.ts +1 -1
  295. package/serialization/resources/collections/resources/items/types/ItemsDeleteItemsLiveRequestItemsItem.js +1 -1
  296. package/serialization/types/Assets.d.ts +2 -0
  297. package/serialization/types/Assets.js +2 -0
  298. package/serialization/types/Conflict.d.ts +10 -0
  299. package/serialization/types/Conflict.js +31 -0
  300. package/serialization/types/Dom.d.ts +1 -0
  301. package/serialization/types/Dom.js +1 -0
  302. package/serialization/types/FieldCreate.d.ts +13 -0
  303. package/serialization/types/FieldCreate.js +34 -0
  304. package/serialization/types/FieldType.d.ts +1 -1
  305. package/serialization/types/FieldType.js +2 -0
  306. package/serialization/types/Metadata.d.ts +13 -0
  307. package/serialization/types/Metadata.js +34 -0
  308. package/serialization/types/MetadataOptionsItem.d.ts +13 -0
  309. package/serialization/types/MetadataOptionsItem.js +34 -0
  310. package/serialization/types/OptionField.d.ts +19 -0
  311. package/serialization/types/OptionField.js +40 -0
  312. package/serialization/types/ReferenceField.d.ts +20 -0
  313. package/serialization/types/ReferenceField.js +41 -0
  314. package/serialization/types/ReferenceFieldMetadata.d.ts +12 -0
  315. package/serialization/types/ReferenceFieldMetadata.js +33 -0
  316. package/serialization/types/ReferenceFieldType.d.ts +10 -0
  317. package/serialization/types/ReferenceFieldType.js +31 -0
  318. package/serialization/types/Robots.d.ts +14 -0
  319. package/serialization/types/Robots.js +35 -0
  320. package/serialization/types/RobotsRulesItem.d.ts +14 -0
  321. package/serialization/types/RobotsRulesItem.js +35 -0
  322. package/serialization/types/StaticField.d.ts +18 -0
  323. package/serialization/{resources/collections/resources/fields/client/requests/FieldCreate.js → types/StaticField.js} +7 -5
  324. package/serialization/types/StaticFieldType.d.ts +10 -0
  325. package/serialization/{resources/collections/resources/fields/types/FieldCreateType.js → types/StaticFieldType.js} +3 -4
  326. package/serialization/types/WebhookList.d.ts +2 -2
  327. package/serialization/types/WebhookList.js +2 -2
  328. package/serialization/types/index.d.ts +12 -0
  329. package/serialization/types/index.js +12 -0
  330. package/version.d.ts +1 -1
  331. package/version.js +1 -1
  332. package/wrapper/AssetsClient.d.ts +12 -0
  333. package/wrapper/AssetsClient.js +16 -0
  334. package/wrapper/AssetsUtilitiesClient.d.ts +49 -0
  335. package/wrapper/AssetsUtilitiesClient.js +121 -0
  336. package/wrapper/WebflowClient.d.ts +6 -0
  337. package/wrapper/WebflowClient.js +10 -0
  338. package/wrapper/WebhooksClient.d.ts +39 -0
  339. package/wrapper/WebhooksClient.js +66 -0
  340. package/api/resources/collections/resources/fields/types/index.d.ts +0 -1
  341. package/dist/api/resources/collections/resources/fields/types/index.d.ts +0 -1
  342. package/dist/api/resources/collections/resources/fields/types/index.js +0 -17
  343. package/dist/serialization/resources/collections/resources/fields/client/requests/FieldCreate.d.ts +0 -16
  344. package/dist/serialization/resources/collections/resources/fields/types/FieldCreateType.d.ts +0 -10
  345. package/dist/serialization/resources/collections/resources/fields/types/index.d.ts +0 -1
  346. package/serialization/resources/collections/resources/fields/client/requests/FieldCreate.d.ts +0 -16
  347. package/serialization/resources/collections/resources/fields/types/FieldCreateType.d.ts +0 -10
  348. package/serialization/resources/collections/resources/fields/types/index.d.ts +0 -1
  349. package/serialization/resources/collections/resources/fields/types/index.js +0 -17
  350. /package/api/resources/{collections/resources/fields/client/requests/FieldCreate.js → forms/client/requests/FormsListSubmissionsBySiteRequest.js} +0 -0
  351. /package/{dist/api/resources/collections/resources/fields/client/requests/FieldCreate.js → api/types/Conflict.js} +0 -0
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.RobotsRulesItem = void 0;
30
+ const core = __importStar(require("../../core"));
31
+ exports.RobotsRulesItem = core.serialization.object({
32
+ userAgent: core.serialization.string(),
33
+ allows: core.serialization.list(core.serialization.string()).optional(),
34
+ disallows: core.serialization.list(core.serialization.string()).optional(),
35
+ });
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as serializers from "../index";
5
+ import * as Webflow from "../../api/index";
6
+ import * as core from "../../core";
7
+ import { StaticFieldType } from "./StaticFieldType";
8
+ export declare const StaticField: core.serialization.ObjectSchema<serializers.StaticField.Raw, Webflow.StaticField>;
9
+ export declare namespace StaticField {
10
+ interface Raw {
11
+ id?: string | null;
12
+ isEditable?: boolean | null;
13
+ isRequired?: boolean | null;
14
+ type: StaticFieldType.Raw;
15
+ displayName: string;
16
+ helpText?: string | null;
17
+ }
18
+ }
@@ -26,12 +26,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.FieldCreate = void 0;
30
- const core = __importStar(require("../../../../../../../core"));
31
- const FieldCreateType_1 = require("../../types/FieldCreateType");
32
- exports.FieldCreate = core.serialization.object({
29
+ exports.StaticField = void 0;
30
+ const core = __importStar(require("../../core"));
31
+ const StaticFieldType_1 = require("./StaticFieldType");
32
+ exports.StaticField = core.serialization.object({
33
+ id: core.serialization.string().optional(),
34
+ isEditable: core.serialization.boolean().optional(),
33
35
  isRequired: core.serialization.boolean().optional(),
34
- type: FieldCreateType_1.FieldCreateType,
36
+ type: StaticFieldType_1.StaticFieldType,
35
37
  displayName: core.serialization.string(),
36
38
  helpText: core.serialization.string().optional(),
37
39
  });
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as serializers from "../index";
5
+ import * as Webflow from "../../api/index";
6
+ import * as core from "../../core";
7
+ export declare const StaticFieldType: core.serialization.Schema<serializers.StaticFieldType.Raw, Webflow.StaticFieldType>;
8
+ export declare namespace StaticFieldType {
9
+ type Raw = "Color" | "DateTime" | "Email" | "File" | "Image" | "Link" | "MultiImage" | "Number" | "Phone" | "PlainText" | "RichText" | "Switch" | "Video";
10
+ }
@@ -26,13 +26,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.FieldCreateType = void 0;
30
- const core = __importStar(require("../../../../../../core"));
31
- exports.FieldCreateType = core.serialization.enum_([
29
+ exports.StaticFieldType = void 0;
30
+ const core = __importStar(require("../../core"));
31
+ exports.StaticFieldType = core.serialization.enum_([
32
32
  "Color",
33
33
  "DateTime",
34
34
  "Email",
35
- "ExtFileRef",
36
35
  "File",
37
36
  "Image",
38
37
  "Link",
@@ -4,12 +4,12 @@
4
4
  import * as serializers from "../index";
5
5
  import * as Webflow from "../../api/index";
6
6
  import * as core from "../../core";
7
- import { Pagination } from "./Pagination";
8
7
  import { Webhook } from "./Webhook";
8
+ import { Pagination } from "./Pagination";
9
9
  export declare const WebhookList: core.serialization.ObjectSchema<serializers.WebhookList.Raw, Webflow.WebhookList>;
10
10
  export declare namespace WebhookList {
11
11
  interface Raw {
12
- pagination?: Pagination.Raw | null;
13
12
  webhooks?: Webhook.Raw[] | null;
13
+ pagination?: Pagination.Raw | null;
14
14
  }
15
15
  }
@@ -28,9 +28,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.WebhookList = void 0;
30
30
  const core = __importStar(require("../../core"));
31
- const Pagination_1 = require("./Pagination");
32
31
  const Webhook_1 = require("./Webhook");
32
+ const Pagination_1 = require("./Pagination");
33
33
  exports.WebhookList = core.serialization.object({
34
- pagination: Pagination_1.Pagination.optional(),
35
34
  webhooks: core.serialization.list(Webhook_1.Webhook).optional(),
35
+ pagination: Pagination_1.Pagination.optional(),
36
36
  });
@@ -26,6 +26,8 @@ export * from "./Redirects";
26
26
  export * from "./SitePlanId";
27
27
  export * from "./SitePlanName";
28
28
  export * from "./SitePlan";
29
+ export * from "./RobotsRulesItem";
30
+ export * from "./Robots";
29
31
  export * from "./SiteActivityLogItemEvent";
30
32
  export * from "./SiteActivityLogItemResourceOperation";
31
33
  export * from "./SiteActivityLogItemUser";
@@ -33,6 +35,15 @@ export * from "./SiteActivityLogItem";
33
35
  export * from "./SiteActivityLogResponse";
34
36
  export * from "./CollectionListArrayItem";
35
37
  export * from "./CollectionList";
38
+ export * from "./StaticFieldType";
39
+ export * from "./StaticField";
40
+ export * from "./MetadataOptionsItem";
41
+ export * from "./Metadata";
42
+ export * from "./OptionField";
43
+ export * from "./ReferenceFieldType";
44
+ export * from "./ReferenceFieldMetadata";
45
+ export * from "./ReferenceField";
46
+ export * from "./FieldCreate";
36
47
  export * from "./FieldType";
37
48
  export * from "./Field";
38
49
  export * from "./Collection";
@@ -45,6 +56,7 @@ export * from "./CollectionItemPostSingle";
45
56
  export * from "./CollectionItemWithIdInputFieldData";
46
57
  export * from "./CollectionItemWithIdInput";
47
58
  export * from "./CollectionItemListNoPagination";
59
+ export * from "./Conflict";
48
60
  export * from "./BulkCollectionItemFieldData";
49
61
  export * from "./BulkCollectionItem";
50
62
  export * from "./CollectionItemPatchSingleFieldData";
@@ -42,6 +42,8 @@ __exportStar(require("./Redirects"), exports);
42
42
  __exportStar(require("./SitePlanId"), exports);
43
43
  __exportStar(require("./SitePlanName"), exports);
44
44
  __exportStar(require("./SitePlan"), exports);
45
+ __exportStar(require("./RobotsRulesItem"), exports);
46
+ __exportStar(require("./Robots"), exports);
45
47
  __exportStar(require("./SiteActivityLogItemEvent"), exports);
46
48
  __exportStar(require("./SiteActivityLogItemResourceOperation"), exports);
47
49
  __exportStar(require("./SiteActivityLogItemUser"), exports);
@@ -49,6 +51,15 @@ __exportStar(require("./SiteActivityLogItem"), exports);
49
51
  __exportStar(require("./SiteActivityLogResponse"), exports);
50
52
  __exportStar(require("./CollectionListArrayItem"), exports);
51
53
  __exportStar(require("./CollectionList"), exports);
54
+ __exportStar(require("./StaticFieldType"), exports);
55
+ __exportStar(require("./StaticField"), exports);
56
+ __exportStar(require("./MetadataOptionsItem"), exports);
57
+ __exportStar(require("./Metadata"), exports);
58
+ __exportStar(require("./OptionField"), exports);
59
+ __exportStar(require("./ReferenceFieldType"), exports);
60
+ __exportStar(require("./ReferenceFieldMetadata"), exports);
61
+ __exportStar(require("./ReferenceField"), exports);
62
+ __exportStar(require("./FieldCreate"), exports);
52
63
  __exportStar(require("./FieldType"), exports);
53
64
  __exportStar(require("./Field"), exports);
54
65
  __exportStar(require("./Collection"), exports);
@@ -61,6 +72,7 @@ __exportStar(require("./CollectionItemPostSingle"), exports);
61
72
  __exportStar(require("./CollectionItemWithIdInputFieldData"), exports);
62
73
  __exportStar(require("./CollectionItemWithIdInput"), exports);
63
74
  __exportStar(require("./CollectionItemListNoPagination"), exports);
75
+ __exportStar(require("./Conflict"), exports);
64
76
  __exportStar(require("./BulkCollectionItemFieldData"), exports);
65
77
  __exportStar(require("./BulkCollectionItem"), exports);
66
78
  __exportStar(require("./CollectionItemPatchSingleFieldData"), exports);
package/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "3.1.0";
1
+ export declare const SDK_VERSION = "3.1.2";
package/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "3.1.0";
4
+ exports.SDK_VERSION = "3.1.2";
@@ -0,0 +1,12 @@
1
+ import { Assets } from "../api/resources/assets/client/Client";
2
+ import { Client as Utilities } from "./AssetsUtilitiesClient";
3
+ declare module "../api/resources/assets/client/Client" {
4
+ namespace Assets {
5
+ }
6
+ }
7
+ export declare class Client extends Assets {
8
+ protected readonly _options: Assets.Options;
9
+ constructor(_options: Assets.Options);
10
+ protected _utilities: Utilities | undefined;
11
+ get utilities(): Utilities;
12
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Client = void 0;
4
+ const Client_1 = require("../api/resources/assets/client/Client");
5
+ const AssetsUtilitiesClient_1 = require("./AssetsUtilitiesClient");
6
+ class Client extends Client_1.Assets {
7
+ constructor(_options) {
8
+ super(_options);
9
+ this._options = _options;
10
+ }
11
+ get utilities() {
12
+ var _a;
13
+ return ((_a = this._utilities) !== null && _a !== void 0 ? _a : (this._utilities = new AssetsUtilitiesClient_1.Client(this._options)));
14
+ }
15
+ }
16
+ exports.Client = Client;
@@ -0,0 +1,49 @@
1
+ import * as Webflow from "../api";
2
+ import { Assets } from "../api/resources/assets/client/Client";
3
+ import * as core from "../core";
4
+ import * as environments from "../environments";
5
+ export declare namespace AssetsUtilities {
6
+ interface Options {
7
+ environment?: core.Supplier<environments.WebflowEnvironment | string>;
8
+ accessToken: core.Supplier<core.BearerToken>;
9
+ }
10
+ interface RequestOptions {
11
+ /** The maximum time to wait for a response in seconds. */
12
+ timeoutInSeconds?: number;
13
+ /** The number of times to retry the request. Defaults to 2. */
14
+ maxRetries?: number;
15
+ /** A hook to abort the request. */
16
+ abortSignal?: AbortSignal;
17
+ /** Additional headers to include in the request. */
18
+ headers?: Record<string, string>;
19
+ }
20
+ }
21
+ interface TestAssetUploadRequest {
22
+ /**
23
+ * File to upload via URL where the asset is hosted, or by ArrayBuffer
24
+ */
25
+ file: ArrayBuffer | string;
26
+ /**
27
+ * Name of the file to upload, including the extension
28
+ */
29
+ fileName: string;
30
+ /**
31
+ * Name of the parent folder to upload to
32
+ */
33
+ parentFolder?: string;
34
+ }
35
+ export declare class Client extends Assets {
36
+ protected readonly _options: AssetsUtilities.Options;
37
+ constructor(_options: AssetsUtilities.Options);
38
+ private _getBufferFromUrl;
39
+ /**
40
+ * Create the Asset metadata in Webflow, and immediately upload it to the S3 bucket on behalf of the user to simplify the 2-step process
41
+ *
42
+ * @param siteId
43
+ * @param request
44
+ * @param requestOptions
45
+ * @returns
46
+ */
47
+ createAndUpload(siteId: string, request: TestAssetUploadRequest, requestOptions?: Assets.RequestOptions): Promise<Webflow.AssetUpload>;
48
+ }
49
+ export {};
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Client = void 0;
16
+ const Client_1 = require("../api/resources/assets/client/Client");
17
+ const crypto_1 = __importDefault(require("crypto"));
18
+ const node_fetch_1 = __importDefault(require("node-fetch"));
19
+ const form_data_1 = __importDefault(require("form-data"));
20
+ // Utilities class for Assets to add custom helper methods to assist in managing Webflow Assets
21
+ class Client extends Client_1.Assets {
22
+ constructor(_options) {
23
+ super(_options);
24
+ this._options = _options;
25
+ }
26
+ _getBufferFromUrl(url) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ try {
29
+ const response = yield (0, node_fetch_1.default)(url);
30
+ if (!response.ok) {
31
+ throw new Error(`Failed to fetch asset from URL: ${url}. Status: ${response.status} ${response.statusText}`);
32
+ }
33
+ return yield response.arrayBuffer();
34
+ }
35
+ catch (error) {
36
+ throw new Error(`Error occurred while fetching asset from URL: ${url}. ${error.message}`);
37
+ }
38
+ });
39
+ }
40
+ /**
41
+ * Create the Asset metadata in Webflow, and immediately upload it to the S3 bucket on behalf of the user to simplify the 2-step process
42
+ *
43
+ * @param siteId
44
+ * @param request
45
+ * @param requestOptions
46
+ * @returns
47
+ */
48
+ createAndUpload(siteId, request, requestOptions) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ /** 1. Generate the hash */
51
+ const { file, fileName, parentFolder } = request;
52
+ let tempBuffer;
53
+ if (typeof file === 'string') {
54
+ const arrBuffer = yield this._getBufferFromUrl(file);
55
+ tempBuffer = Buffer.from(arrBuffer);
56
+ }
57
+ else if (file instanceof ArrayBuffer) {
58
+ tempBuffer = Buffer.from(file);
59
+ }
60
+ if (!Buffer.isBuffer(tempBuffer)) {
61
+ throw new Error('Invalid Buffer: Cannot create a buffer from the provided file');
62
+ }
63
+ const hash = crypto_1.default.createHash("md5").update(tempBuffer).digest("hex");
64
+ const wfUploadRequest = Object.assign({ fileName, fileHash: hash }, (parentFolder && { parentFolder }));
65
+ /** 2. Create the Asset Metadata in Webflow */
66
+ let wfUploadedAsset;
67
+ try {
68
+ wfUploadedAsset = yield this.create(siteId, wfUploadRequest, requestOptions);
69
+ if (!wfUploadedAsset || !wfUploadedAsset.uploadDetails) {
70
+ throw new Error("Failed to create Asset metadata in Webflow, no S3 headers returned");
71
+ }
72
+ }
73
+ catch (error) {
74
+ throw new Error(`Failed to create Asset metadata in Webflow: ${error.message}`);
75
+ }
76
+ /** 3. Create FormData with S3 bucket signature */
77
+ const wfUploadDetails = wfUploadedAsset.uploadDetails;
78
+ const uploadUrl = wfUploadedAsset.uploadUrl;
79
+ // Temp workaround since headers from response are being camelCased and we need them to be exact when sending to S3
80
+ const headerMappings = {
81
+ 'xAmzAlgorithm': 'X-Amz-Algorithm',
82
+ 'xAmzDate': 'X-Amz-Date',
83
+ 'xAmzCredential': 'X-Amz-Credential',
84
+ 'xAmzSignature': 'X-Amz-Signature',
85
+ 'successActionStatus': 'success_action_status',
86
+ 'contentType': 'Content-Type',
87
+ 'cacheControl': 'Cache-Control',
88
+ };
89
+ const transformedUploadHeaders = Object.keys(wfUploadDetails).reduce((acc, key) => {
90
+ const mappedKey = headerMappings[key] || key;
91
+ acc[mappedKey] = wfUploadDetails[key];
92
+ return acc;
93
+ }, {});
94
+ const formDataToUpload = new form_data_1.default();
95
+ Object.keys(transformedUploadHeaders).forEach((key) => {
96
+ formDataToUpload.append(key, transformedUploadHeaders[key]);
97
+ });
98
+ formDataToUpload.append("file", tempBuffer, {
99
+ filename: fileName,
100
+ contentType: wfUploadedAsset.contentType || "application/octet-stream",
101
+ });
102
+ /** 4. Upload to S3 */
103
+ try {
104
+ const response = yield (0, node_fetch_1.default)(uploadUrl, {
105
+ method: 'POST',
106
+ body: formDataToUpload,
107
+ headers: Object.assign({}, formDataToUpload.getHeaders()),
108
+ });
109
+ if (!response.ok) {
110
+ const errorText = yield response.text();
111
+ throw new Error(`Failed to upload to S3. Status: ${response.status}, Response: ${errorText}`);
112
+ }
113
+ }
114
+ catch (error) {
115
+ throw new Error(`Error occurred during S3 upload: ${error.message}`);
116
+ }
117
+ return wfUploadedAsset;
118
+ });
119
+ }
120
+ }
121
+ exports.Client = Client;
@@ -1,8 +1,14 @@
1
1
  import { WebflowClient as FernClient } from "../Client";
2
2
  import { OauthScope } from "../api/types/OAuthScope";
3
+ import { Client as Webhooks } from "./WebhooksClient";
4
+ import { Client as Assets } from "./AssetsClient";
3
5
  export declare class WebflowClient extends FernClient {
4
6
  protected readonly _options: FernClient.Options;
5
7
  constructor(_options: FernClient.Options);
8
+ protected _webhooks: Webhooks | undefined;
9
+ protected _assets: Assets | undefined;
10
+ get webhooks(): Webhooks;
11
+ get assets(): Assets;
6
12
  /**
7
13
  * @param clientId The OAuth client ID
8
14
  * @param state The state
@@ -41,11 +41,21 @@ const Client_1 = require("../Client");
41
41
  const core = __importStar(require("../core"));
42
42
  const errors = __importStar(require("../errors"));
43
43
  const version_1 = require("../version");
44
+ const WebhooksClient_1 = require("./WebhooksClient");
45
+ const AssetsClient_1 = require("./AssetsClient");
44
46
  class WebflowClient extends Client_1.WebflowClient {
45
47
  constructor(_options) {
46
48
  super(_options);
47
49
  this._options = _options;
48
50
  }
51
+ get webhooks() {
52
+ var _a;
53
+ return ((_a = this._webhooks) !== null && _a !== void 0 ? _a : (this._webhooks = new WebhooksClient_1.Client(this._options)));
54
+ }
55
+ get assets() {
56
+ var _a;
57
+ return ((_a = this._assets) !== null && _a !== void 0 ? _a : (this._assets = new AssetsClient_1.Client(this._options)));
58
+ }
49
59
  /**
50
60
  * @param clientId The OAuth client ID
51
61
  * @param state The state
@@ -0,0 +1,39 @@
1
+ import { Webhooks } from "../api/resources/webhooks/client/Client";
2
+ declare module "../api/resources/webhooks/client/Client" {
3
+ namespace Webhooks {
4
+ interface RequestSignatureDetails {
5
+ /** The headers of the incoming webhook request as a record-like object */
6
+ headers: Record<string, string>;
7
+ /** The body of the incoming webhook request as a string */
8
+ body: string;
9
+ /** The secret key generated when creating the webhook or the OAuth client secret */
10
+ secret: string;
11
+ }
12
+ }
13
+ }
14
+ export declare class Client extends Webhooks {
15
+ protected readonly _options: Webhooks.Options;
16
+ constructor(_options: Webhooks.Options);
17
+ /**
18
+ * Verify that the signature on the webhook message is from Webflow
19
+ * @link https://developers.webflow.com/data/docs/working-with-webhooks#validating-request-signatures
20
+ *
21
+ * @param {Webhooks.RequestSignatureDetails.headers} requestSignatureDetails - details of the incoming webhook request
22
+ * @example
23
+ * function incomingWebhookRouteHandler(req, res) {
24
+ * const headers = req.headers;
25
+ * const body = JSON.stringify(req.body);
26
+ * const secret = getWebhookSecret(WEBHOOK_ID);
27
+ * const isAuthenticated = await client.webhooks.verifySignature({ headers, body, secret });
28
+ *
29
+ * if (isAuthenticated) {
30
+ * // Process the webhook
31
+ * } else {
32
+ * // Alert the user that the webhook is not authenticated
33
+ * }
34
+ * res.sendStatus(200);
35
+ * }
36
+ *
37
+ */
38
+ verifySignature({ headers, body, secret }: Webhooks.RequestSignatureDetails): Promise<boolean>;
39
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Client = void 0;
16
+ const Client_1 = require("../api/resources/webhooks/client/Client");
17
+ const crypto_1 = __importDefault(require("crypto"));
18
+ class Client extends Client_1.Webhooks {
19
+ constructor(_options) {
20
+ super(_options);
21
+ this._options = _options;
22
+ }
23
+ /**
24
+ * Verify that the signature on the webhook message is from Webflow
25
+ * @link https://developers.webflow.com/data/docs/working-with-webhooks#validating-request-signatures
26
+ *
27
+ * @param {Webhooks.RequestSignatureDetails.headers} requestSignatureDetails - details of the incoming webhook request
28
+ * @example
29
+ * function incomingWebhookRouteHandler(req, res) {
30
+ * const headers = req.headers;
31
+ * const body = JSON.stringify(req.body);
32
+ * const secret = getWebhookSecret(WEBHOOK_ID);
33
+ * const isAuthenticated = await client.webhooks.verifySignature({ headers, body, secret });
34
+ *
35
+ * if (isAuthenticated) {
36
+ * // Process the webhook
37
+ * } else {
38
+ * // Alert the user that the webhook is not authenticated
39
+ * }
40
+ * res.sendStatus(200);
41
+ * }
42
+ *
43
+ */
44
+ verifySignature({ headers, body, secret }) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ // Creates a HMAC signature following directions from https://developers.webflow.com/data/docs/working-with-webhooks#steps-to-validate-the-request-signature
47
+ const createHmac = (signingSecret, message) => __awaiter(this, void 0, void 0, function* () {
48
+ const encoder = new TextEncoder();
49
+ // Encode the signingSecret key
50
+ // @ts-expect-error TS2339: Property 'subtle' does not exist on type 'typeof import("crypto")'.
51
+ const key = yield crypto_1.default.subtle.importKey("raw", encoder.encode(signingSecret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
52
+ // Encode the message and compute HMAC signature
53
+ // @ts-expect-error TS2339: Property 'subtle' does not exist on type 'typeof import("crypto")'.
54
+ const signature = yield crypto_1.default.subtle.sign("HMAC", key, encoder.encode(message));
55
+ // Convert signature to hex string
56
+ return Array.from(new Uint8Array(signature))
57
+ .map((b) => b.toString(16).padStart(2, "0"))
58
+ .join("");
59
+ });
60
+ const message = `${headers["x-webflow-timestamp"]}:${body}`;
61
+ const generatedSignature = yield createHmac(secret, message);
62
+ return headers["x-webflow-signature"] === generatedSignature;
63
+ });
64
+ }
65
+ }
66
+ exports.Client = Client;
@@ -1 +0,0 @@
1
- export * from "./FieldCreateType";
@@ -1 +0,0 @@
1
- export * from "./FieldCreateType";
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./FieldCreateType"), exports);
@@ -1,16 +0,0 @@
1
- /**
2
- * This file was auto-generated by Fern from our API Definition.
3
- */
4
- import * as serializers from "../../../../../../index";
5
- import * as Webflow from "../../../../../../../api/index";
6
- import * as core from "../../../../../../../core";
7
- import { FieldCreateType } from "../../types/FieldCreateType";
8
- export declare const FieldCreate: core.serialization.Schema<serializers.collections.FieldCreate.Raw, Webflow.collections.FieldCreate>;
9
- export declare namespace FieldCreate {
10
- interface Raw {
11
- isRequired?: boolean | null;
12
- type: FieldCreateType.Raw;
13
- displayName: string;
14
- helpText?: string | null;
15
- }
16
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * This file was auto-generated by Fern from our API Definition.
3
- */
4
- import * as serializers from "../../../../../index";
5
- import * as Webflow from "../../../../../../api/index";
6
- import * as core from "../../../../../../core";
7
- export declare const FieldCreateType: core.serialization.Schema<serializers.collections.FieldCreateType.Raw, Webflow.collections.FieldCreateType>;
8
- export declare namespace FieldCreateType {
9
- type Raw = "Color" | "DateTime" | "Email" | "ExtFileRef" | "File" | "Image" | "Link" | "MultiImage" | "Number" | "Phone" | "PlainText" | "RichText" | "Switch" | "Video";
10
- }
@@ -1 +0,0 @@
1
- export * from "./FieldCreateType";
@@ -1,16 +0,0 @@
1
- /**
2
- * This file was auto-generated by Fern from our API Definition.
3
- */
4
- import * as serializers from "../../../../../../index";
5
- import * as Webflow from "../../../../../../../api/index";
6
- import * as core from "../../../../../../../core";
7
- import { FieldCreateType } from "../../types/FieldCreateType";
8
- export declare const FieldCreate: core.serialization.Schema<serializers.collections.FieldCreate.Raw, Webflow.collections.FieldCreate>;
9
- export declare namespace FieldCreate {
10
- interface Raw {
11
- isRequired?: boolean | null;
12
- type: FieldCreateType.Raw;
13
- displayName: string;
14
- helpText?: string | null;
15
- }
16
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * This file was auto-generated by Fern from our API Definition.
3
- */
4
- import * as serializers from "../../../../../index";
5
- import * as Webflow from "../../../../../../api/index";
6
- import * as core from "../../../../../../core";
7
- export declare const FieldCreateType: core.serialization.Schema<serializers.collections.FieldCreateType.Raw, Webflow.collections.FieldCreateType>;
8
- export declare namespace FieldCreateType {
9
- type Raw = "Color" | "DateTime" | "Email" | "ExtFileRef" | "File" | "Image" | "Link" | "MultiImage" | "Number" | "Phone" | "PlainText" | "RichText" | "Switch" | "Video";
10
- }