@duffel/components 2.7.20 → 3.0.1-canary

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 (326) hide show
  1. package/.circleci/config.yml +67 -0
  2. package/.eslintrc.js +34 -0
  3. package/.github/renovate.json +16 -0
  4. package/.github/workflows/autoapprove.yml +18 -0
  5. package/.github/workflows/release.yml +86 -0
  6. package/.husky/post-commit +4 -0
  7. package/.husky/pre-commit +4 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierignore +2 -0
  10. package/.storybook/Storyshots.test.js +3 -0
  11. package/.storybook/__snapshots__/Storyshots.test.js.snap +48133 -0
  12. package/.storybook/main.ts +33 -0
  13. package/.storybook/preview.tsx +28 -0
  14. package/.tool-versions +1 -0
  15. package/CONTRIBUTING.md +131 -0
  16. package/README.md +4 -21
  17. package/__mocks__/styleMock.js +6 -0
  18. package/babel.config.js +20 -0
  19. package/commitlint.config.js +4 -0
  20. package/config/esbuild.base.config.js +14 -0
  21. package/config/esbuild.cdn.config.js +50 -0
  22. package/config/esbuild.dev.config.js +45 -0
  23. package/config/esbuild.react.config.js +42 -0
  24. package/jest.config.ts +14 -0
  25. package/package.json +123 -192
  26. package/react-dist/components/AnimatedLoaderEllipsis.d.ts +2 -0
  27. package/react-dist/components/Button.d.ts +23 -0
  28. package/react-dist/components/Card.d.ts +14 -0
  29. package/react-dist/components/Counter.d.ts +10 -0
  30. package/react-dist/components/DuffelAncillaries.d.ts +3 -0
  31. package/react-dist/components/DuffelAncillariesCustomElement.d.ts +13 -0
  32. package/react-dist/components/ErrorBoundary.d.ts +13 -0
  33. package/react-dist/components/FetchOfferErrorState.d.ts +5 -0
  34. package/react-dist/components/Icon.d.ts +44 -0
  35. package/react-dist/components/IconButton.d.ts +16 -0
  36. package/react-dist/components/Modal.d.ts +11 -0
  37. package/react-dist/components/NonIdealState.d.ts +4 -0
  38. package/react-dist/components/Stamp.d.ts +7 -0
  39. package/react-dist/components/Tabs.d.ts +16 -0
  40. package/react-dist/components/bags/BaggageSelectionCard.d.ts +11 -0
  41. package/react-dist/components/bags/BaggageSelectionController.d.ts +13 -0
  42. package/react-dist/components/bags/BaggageSelectionModal.d.ts +11 -0
  43. package/react-dist/components/bags/BaggageSelectionModalBody.d.ts +11 -0
  44. package/react-dist/components/bags/BaggageSelectionModalBodyPassenger.d.ts +13 -0
  45. package/react-dist/components/bags/BaggageSelectionModalFooter.d.ts +14 -0
  46. package/react-dist/components/bags/BaggageSelectionModalHeader.d.ts +9 -0
  47. package/react-dist/components/bags/IncludedBaggageBanner.d.ts +7 -0
  48. package/react-dist/components/cancel_for_any_reason/CfarSelectionCard.d.ts +10 -0
  49. package/react-dist/components/cancel_for_any_reason/CfarSelectionModal.d.ts +11 -0
  50. package/react-dist/components/cancel_for_any_reason/CfarSelectionModalBody.d.ts +7 -0
  51. package/react-dist/components/cancel_for_any_reason/CfarSelectionModalBodyListItem.d.ts +4 -0
  52. package/react-dist/components/cancel_for_any_reason/CfarSelectionModalFooter.d.ts +11 -0
  53. package/react-dist/components/cancel_for_any_reason/CfarSelectionModalHeader.d.ts +2 -0
  54. package/react-dist/components/seats/Amenity.d.ts +6 -0
  55. package/react-dist/components/seats/DeckSelect.d.ts +15 -0
  56. package/react-dist/components/seats/Element.d.ts +15 -0
  57. package/react-dist/components/seats/EmptyElement.d.ts +2 -0
  58. package/react-dist/components/seats/ExitElement.d.ts +6 -0
  59. package/react-dist/components/seats/Legend.d.ts +12 -0
  60. package/react-dist/components/seats/Row.d.ts +13 -0
  61. package/react-dist/components/seats/RowSection.d.ts +17 -0
  62. package/react-dist/components/seats/SeatElement.d.ts +13 -0
  63. package/react-dist/components/seats/SeatInfo.d.ts +7 -0
  64. package/react-dist/components/seats/SeatMap.d.ts +12 -0
  65. package/react-dist/components/seats/SeatMapUnavailable.d.ts +2 -0
  66. package/react-dist/components/seats/SeatSelectionCard.d.ts +13 -0
  67. package/react-dist/components/seats/SeatSelectionModal.d.ts +13 -0
  68. package/react-dist/components/seats/SeatSelectionModalBody.d.ts +4 -0
  69. package/react-dist/components/seats/SeatSelectionModalFooter.d.ts +16 -0
  70. package/react-dist/components/seats/SeatSelectionModalHeader.d.ts +10 -0
  71. package/react-dist/components/seats/SeatUnavailable.d.ts +5 -0
  72. package/react-dist/index.d.ts +8 -0
  73. package/react-dist/index.js +2 -0
  74. package/react-dist/index.js.map +7 -0
  75. package/react-dist/lib/captureErrorInSentry.d.ts +1 -0
  76. package/react-dist/lib/compileCreateOrderPayload.d.ts +14 -0
  77. package/react-dist/lib/createPriceFormatters.d.ts +12 -0
  78. package/react-dist/lib/fetchFromDuffelAPI.d.ts +1 -0
  79. package/react-dist/lib/fetchFromFixtures.d.ts +4 -0
  80. package/react-dist/lib/formatAvailableServices.d.ts +12 -0
  81. package/react-dist/lib/formatDate.d.ts +2 -0
  82. package/react-dist/lib/formatSeatMaps.d.ts +4 -0
  83. package/react-dist/lib/getBaggageServiceDescription.d.ts +2 -0
  84. package/react-dist/lib/getCabinsForSegmentAndDeck.d.ts +2 -0
  85. package/react-dist/lib/getCurrencyForSeatMaps.d.ts +10 -0
  86. package/react-dist/lib/getCurrencyForServices.d.ts +11 -0
  87. package/react-dist/lib/getFirstSeatElementMatchingCriteria.d.ts +3 -0
  88. package/react-dist/lib/getPassengerBySegmentList.d.ts +6 -0
  89. package/react-dist/lib/getPassengerInitials.d.ts +1 -0
  90. package/react-dist/lib/getPassengerMapById.d.ts +3 -0
  91. package/react-dist/lib/getPassengerName.d.ts +3 -0
  92. package/react-dist/lib/getRowNumber.d.ts +2 -0
  93. package/react-dist/lib/getSegmentList.d.ts +2 -0
  94. package/react-dist/lib/getServicePriceMapById.d.ts +3 -0
  95. package/react-dist/lib/getSymbols.d.ts +2 -0
  96. package/react-dist/lib/getTotalAmountForServices.d.ts +6 -0
  97. package/react-dist/lib/getTotalQuantity.d.ts +2 -0
  98. package/react-dist/lib/hasService.d.ts +2 -0
  99. package/react-dist/lib/hasServiceOfSameMetadataTypeAlreadyBeenSelected.d.ts +3 -0
  100. package/react-dist/lib/hasWings.d.ts +2 -0
  101. package/react-dist/lib/isBaggageService.d.ts +2 -0
  102. package/react-dist/lib/isCancelForAnyReasonService.d.ts +2 -0
  103. package/react-dist/lib/isFixtureOfferId.d.ts +2 -0
  104. package/react-dist/lib/isPayloadComplete.d.ts +2 -0
  105. package/react-dist/lib/isSeatElement.d.ts +2 -0
  106. package/react-dist/lib/logging.d.ts +53 -0
  107. package/react-dist/lib/moneyStringFormatter.d.ts +8 -0
  108. package/react-dist/lib/offerIsExpired.d.ts +2 -0
  109. package/react-dist/lib/retrieveOffer.d.ts +2 -0
  110. package/react-dist/lib/retrieveOfferFromDuffelAPI.d.ts +1 -0
  111. package/react-dist/lib/retrieveSeatMaps.d.ts +2 -0
  112. package/react-dist/lib/retrieveSeatMapsFromDuffelAPI.d.ts +1 -0
  113. package/react-dist/lib/setBodyScrollability.d.ts +1 -0
  114. package/react-dist/lib/validateProps.d.ts +7 -0
  115. package/react-dist/lib/withPlural.d.ts +1 -0
  116. package/react-dist/types/Aircraft.d.ts +14 -0
  117. package/react-dist/types/Airline.d.ts +14 -0
  118. package/react-dist/types/Airport.d.ts +44 -0
  119. package/react-dist/types/City.d.ts +18 -0
  120. package/react-dist/types/CreateOrderPayload.d.ts +72 -0
  121. package/react-dist/types/CurrencyConversion.d.ts +10 -0
  122. package/react-dist/types/DuffelAncillariesProps.d.ts +70 -0
  123. package/react-dist/types/Offer.d.ts +711 -0
  124. package/react-dist/types/Order.d.ts +8 -0
  125. package/react-dist/types/Place.d.ts +8 -0
  126. package/react-dist/types/SeatMap.d.ts +190 -0
  127. package/react-dist/types/index.d.ts +11 -0
  128. package/scripts/generate-fixture.ts +195 -0
  129. package/scripts/upload-to-cdn.sh +39 -0
  130. package/scripts.tsconfig.json +11 -0
  131. package/src/components/AnimatedLoaderEllipsis.tsx +5 -0
  132. package/src/components/Button.tsx +62 -0
  133. package/src/components/Card.tsx +126 -0
  134. package/src/components/Counter.tsx +40 -0
  135. package/src/components/DuffelAncillaries.tsx +346 -0
  136. package/src/components/DuffelAncillariesCustomElement.tsx +124 -0
  137. package/src/components/ErrorBoundary.tsx +54 -0
  138. package/src/components/FetchOfferErrorState.tsx +35 -0
  139. package/src/components/Icon.tsx +151 -0
  140. package/src/components/IconButton.tsx +42 -0
  141. package/src/components/Modal.tsx +36 -0
  142. package/src/components/NonIdealState.tsx +28 -0
  143. package/src/components/Stamp.tsx +29 -0
  144. package/src/components/Tabs.tsx +36 -0
  145. package/src/components/bags/BaggageSelectionCard.tsx +96 -0
  146. package/src/components/bags/BaggageSelectionController.tsx +88 -0
  147. package/src/components/bags/BaggageSelectionModal.tsx +81 -0
  148. package/src/components/bags/BaggageSelectionModalBody.tsx +60 -0
  149. package/src/components/bags/BaggageSelectionModalBodyPassenger.tsx +122 -0
  150. package/src/components/bags/BaggageSelectionModalFooter.tsx +81 -0
  151. package/src/components/bags/BaggageSelectionModalHeader.tsx +76 -0
  152. package/src/components/bags/IncludedBaggageBanner.tsx +51 -0
  153. package/src/components/cancel_for_any_reason/CfarSelectionCard.tsx +90 -0
  154. package/src/components/cancel_for_any_reason/CfarSelectionModal.tsx +63 -0
  155. package/src/components/cancel_for_any_reason/CfarSelectionModalBody.tsx +56 -0
  156. package/src/components/cancel_for_any_reason/CfarSelectionModalBodyListItem.tsx +11 -0
  157. package/src/components/cancel_for_any_reason/CfarSelectionModalFooter.tsx +74 -0
  158. package/src/components/cancel_for_any_reason/CfarSelectionModalHeader.tsx +9 -0
  159. package/src/components/seats/Amenity.tsx +21 -0
  160. package/src/components/seats/DeckSelect.tsx +27 -0
  161. package/src/components/seats/Element.tsx +52 -0
  162. package/src/components/seats/EmptyElement.tsx +5 -0
  163. package/src/components/seats/ExitElement.tsx +17 -0
  164. package/src/components/seats/Legend.tsx +60 -0
  165. package/src/components/seats/Row.tsx +47 -0
  166. package/src/components/seats/RowSection.tsx +75 -0
  167. package/src/components/seats/SeatElement.tsx +120 -0
  168. package/src/components/seats/SeatInfo.tsx +32 -0
  169. package/src/components/seats/SeatMap.tsx +81 -0
  170. package/src/components/seats/SeatMapUnavailable.tsx +21 -0
  171. package/src/components/seats/SeatSelectionCard.tsx +103 -0
  172. package/src/components/seats/SeatSelectionModal.tsx +142 -0
  173. package/src/components/seats/SeatSelectionModalBody.tsx +13 -0
  174. package/src/components/seats/SeatSelectionModalFooter.tsx +82 -0
  175. package/src/components/seats/SeatSelectionModalHeader.tsx +87 -0
  176. package/src/components/seats/SeatUnavailable.tsx +14 -0
  177. package/src/examples/client-side/index.html +57 -0
  178. package/src/examples/full-stack/index.html +48 -0
  179. package/src/examples/full-stack/server.mjs +157 -0
  180. package/src/examples/just-typescript/README.md +37 -0
  181. package/src/examples/just-typescript/package.json +16 -0
  182. package/src/examples/just-typescript/src/index.html +23 -0
  183. package/src/examples/just-typescript/src/index.ts +35 -0
  184. package/src/examples/just-typescript/yarn.lock +154 -0
  185. package/src/examples/react-app/README.md +37 -0
  186. package/src/examples/react-app/package.json +20 -0
  187. package/src/examples/react-app/src/index.html +19 -0
  188. package/src/examples/react-app/src/index.tsx +43 -0
  189. package/src/examples/react-app/yarn.lock +219 -0
  190. package/src/fixtures/offers/off_0000AUde3KwTztSRK1cznH.json +497 -0
  191. package/src/fixtures/offers/off_0000AVx4lUFFKW8PsPeQeQ.json +307 -0
  192. package/src/fixtures/offers/off_1.json +497 -0
  193. package/src/fixtures/passengers/mock_passengers.ts +26 -0
  194. package/src/fixtures/seat-maps/off_0000AUde3KwTztSRK1cznH.json +6852 -0
  195. package/src/fixtures/seat-maps/off_0000AVx4lUFFKW8PsPeQeQ.json +1 -0
  196. package/src/fixtures/seat-maps/off_1.json +6852 -0
  197. package/src/index.ts +8 -0
  198. package/src/lib/captureErrorInSentry.ts +60 -0
  199. package/src/lib/compileCreateOrderPayload.ts +63 -0
  200. package/src/lib/createPriceFormatters.ts +73 -0
  201. package/src/lib/fetchFromDuffelAPI.ts +24 -0
  202. package/src/lib/fetchFromFixtures.ts +18 -0
  203. package/src/lib/formatAvailableServices.ts +91 -0
  204. package/src/lib/formatDate.ts +21 -0
  205. package/src/lib/formatSeatMaps.ts +81 -0
  206. package/src/lib/getBaggageServiceDescription.ts +44 -0
  207. package/src/lib/getCabinsForSegmentAndDeck.ts +4 -0
  208. package/src/lib/getCurrencyForSeatMaps.ts +22 -0
  209. package/src/lib/getCurrencyForServices.ts +24 -0
  210. package/src/lib/getFirstSeatElementMatchingCriteria.ts +22 -0
  211. package/src/lib/getPassengerBySegmentList.ts +10 -0
  212. package/src/lib/getPassengerInitials.ts +6 -0
  213. package/src/lib/getPassengerMapById.ts +17 -0
  214. package/src/lib/getPassengerName.ts +37 -0
  215. package/src/lib/getRowNumber.ts +16 -0
  216. package/src/lib/getSegmentList.ts +7 -0
  217. package/src/lib/getServicePriceMapById.ts +20 -0
  218. package/src/lib/getSymbols.ts +22 -0
  219. package/src/lib/getTotalAmountForServices.ts +72 -0
  220. package/src/lib/getTotalQuantity.ts +5 -0
  221. package/src/lib/hasService.ts +24 -0
  222. package/src/lib/hasServiceOfSameMetadataTypeAlreadyBeenSelected.ts +35 -0
  223. package/src/lib/hasWings.ts +8 -0
  224. package/src/lib/isBaggageService.ts +8 -0
  225. package/src/lib/isCancelForAnyReasonService.ts +9 -0
  226. package/src/lib/isFixtureOfferId.ts +4 -0
  227. package/src/lib/isPayloadComplete.ts +11 -0
  228. package/src/lib/isSeatElement.ts +10 -0
  229. package/src/lib/logging.ts +100 -0
  230. package/src/lib/moneyStringFormatter.ts +34 -0
  231. package/src/lib/offerIsExpired.ts +5 -0
  232. package/src/lib/retrieveOffer.ts +49 -0
  233. package/src/lib/retrieveOfferFromDuffelAPI.ts +13 -0
  234. package/src/lib/retrieveSeatMaps.ts +50 -0
  235. package/src/lib/retrieveSeatMapsFromDuffelAPI.ts +13 -0
  236. package/src/lib/setBodyScrollability.ts +7 -0
  237. package/src/lib/validateProps.ts +37 -0
  238. package/src/lib/withPlural.ts +8 -0
  239. package/src/stories/BaggageSelectionModalHeader.stories.tsx +21 -0
  240. package/src/stories/Button.stories.tsx +60 -0
  241. package/src/stories/DuffelAncillaries.stories.tsx +126 -0
  242. package/src/stories/Icon.stories.tsx +34 -0
  243. package/src/stories/IconButton.stories.tsx +25 -0
  244. package/src/styles/colors.css +22 -0
  245. package/src/styles/components/Amenity.css +23 -0
  246. package/src/styles/components/BaggageDisplay.css +25 -0
  247. package/src/styles/components/Button.css +161 -0
  248. package/src/styles/components/Card.css +52 -0
  249. package/src/styles/components/CfarSelectionModal.css +34 -0
  250. package/src/styles/components/Counter.css +18 -0
  251. package/src/styles/components/IconButton.css +63 -0
  252. package/src/styles/components/Legend.css +58 -0
  253. package/src/styles/components/Loader.css +37 -0
  254. package/src/styles/components/LoadingState.css +81 -0
  255. package/src/styles/components/Modal.css +83 -0
  256. package/src/styles/components/PassengerSelect.css +93 -0
  257. package/src/styles/components/PassengersLayout.css +90 -0
  258. package/src/styles/components/Row.css +70 -0
  259. package/src/styles/components/Seat.css +57 -0
  260. package/src/styles/components/SeatInfo.css +61 -0
  261. package/src/styles/components/SeatMap.css +24 -0
  262. package/src/styles/components/SeatSelect.css +92 -0
  263. package/src/styles/components/Segment.css +17 -0
  264. package/src/styles/components/SelectionSegment.css +10 -0
  265. package/src/styles/components/Summary.css +70 -0
  266. package/src/styles/components/Tabs.css +49 -0
  267. package/src/styles/flex.css +5 -0
  268. package/src/styles/font-families.css +47 -0
  269. package/src/styles/global.css +50 -0
  270. package/src/styles/margin.css +3 -0
  271. package/src/styles/spacing.css +18 -0
  272. package/src/styles/transitions.css +3 -0
  273. package/src/styles/typography.css +13 -0
  274. package/src/tests/components/DuffelAncillaries.test.tsx +342 -0
  275. package/src/tests/lib/createPriceFormatters.test.tsx +152 -0
  276. package/src/tests/lib/formatAvailableServices.test.tsx +79 -0
  277. package/src/tests/lib/formatSeatMaps.test.tsx +49 -0
  278. package/src/tests/lib/getCurrencyForServices.test.tsx +44 -0
  279. package/src/tests/lib/hasServiceOfSameMetadataTypeAlreadyBeenSelected.test.ts +86 -0
  280. package/src/tests/lib/logging.test.tsx +32 -0
  281. package/src/tests/lib/moneyStringFormatter.test.tsx +12 -0
  282. package/src/tests/lib/validateProps.test.tsx +57 -0
  283. package/src/types/Aircraft.ts +16 -0
  284. package/src/types/Airline.ts +16 -0
  285. package/src/types/Airport.ts +54 -0
  286. package/src/types/City.ts +21 -0
  287. package/src/types/CreateOrderPayload.ts +99 -0
  288. package/src/types/CurrencyConversion.ts +10 -0
  289. package/src/types/DuffelAncillariesProps.ts +108 -0
  290. package/src/types/Offer.ts +851 -0
  291. package/src/types/Order.ts +6 -0
  292. package/src/types/Place.ts +6 -0
  293. package/src/types/SeatMap.ts +231 -0
  294. package/src/types/index.ts +11 -0
  295. package/tsconfig.json +52 -0
  296. package/LICENSE +0 -21
  297. package/dist/AdditionalBaggage.esm.js +0 -1
  298. package/dist/AdditionalBaggage.js +0 -1
  299. package/dist/AdditionalBaggage.min.css +0 -408
  300. package/dist/AdditionalBaggage.umd.min.js +0 -2
  301. package/dist/AdditionalBaggage.umd.min.js.LICENSE.txt +0 -60
  302. package/dist/AdditionalBaggageSelection.esm.js +0 -1
  303. package/dist/AdditionalBaggageSelection.js +0 -1
  304. package/dist/AdditionalBaggageSelection.min.css +0 -744
  305. package/dist/AdditionalBaggageSelection.umd.min.js +0 -2
  306. package/dist/AdditionalBaggageSelection.umd.min.js.LICENSE.txt +0 -93
  307. package/dist/CardPayment.esm.js +0 -2
  308. package/dist/CardPayment.esm.js.LICENSE.txt +0 -6
  309. package/dist/CardPayment.js +0 -2
  310. package/dist/CardPayment.js.LICENSE.txt +0 -6
  311. package/dist/CardPayment.min.css +0 -233
  312. package/dist/CardPayment.umd.min.js +0 -2
  313. package/dist/CardPayment.umd.min.js.LICENSE.txt +0 -61
  314. package/dist/SeatSelection.esm.js +0 -1
  315. package/dist/SeatSelection.js +0 -1
  316. package/dist/SeatSelection.min.css +0 -1127
  317. package/dist/SeatSelection.umd.min.js +0 -2
  318. package/dist/SeatSelection.umd.min.js.LICENSE.txt +0 -60
  319. package/dist/duffel-components.d.ts +0 -1614
  320. package/dist/duffel-components.esm.js +0 -2
  321. package/dist/duffel-components.esm.js.LICENSE.txt +0 -6
  322. package/dist/duffel-components.js +0 -2
  323. package/dist/duffel-components.js.LICENSE.txt +0 -6
  324. package/dist/duffel-components.min.css +0 -1280
  325. package/dist/duffel-components.umd.min.js +0 -2
  326. package/dist/duffel-components.umd.min.js.LICENSE.txt +0 -102
@@ -0,0 +1,67 @@
1
+ ---
2
+ version: 2.1
3
+
4
+ # Note: You can validate your config file using the Circle CLI:
5
+ # https://support.circleci.com/hc/en-us/articles/360006735753-Validating-your-CircleCI-Configuration
6
+
7
+ aliases:
8
+ - &working_directory ~/duffel_app
9
+ - &cache_directory ~/.cache/yarn
10
+
11
+ executors:
12
+ node-executor:
13
+ working_directory: *working_directory
14
+ docker:
15
+ - image: cimg/node:lts
16
+
17
+ commands:
18
+ save_deps_cache:
19
+ description: Save Yarn Package Cache
20
+ steps:
21
+ - save_cache:
22
+ name: Save Yarn Package Cache
23
+ key: v${CACHE_VERSION}-yarn-packages-{{ checksum "yarn.lock" }}
24
+ paths:
25
+ - *cache_directory
26
+
27
+ restore_deps_cache:
28
+ description: Restore Yarn Package Cache
29
+ steps:
30
+ - restore_cache:
31
+ key: v${CACHE_VERSION}-yarn-packages-{{ checksum "yarn.lock" }}
32
+ paths:
33
+ - *cache_directory
34
+
35
+ setup:
36
+ description: Set up common system expectations
37
+ steps:
38
+ - checkout
39
+ - restore_deps_cache
40
+ - run: yarn install --frozen-lockfile --cache-folder ~/.cache/yarn
41
+ - save_deps_cache
42
+
43
+ jobs:
44
+ lint:
45
+ executor: node-executor
46
+ steps:
47
+ - setup
48
+ - run: yarn check-types
49
+ - run: yarn lint
50
+ - run: yarn prettier-check
51
+ build-storybook:
52
+ executor: node-executor
53
+ steps:
54
+ - setup
55
+ - run: yarn build-storybook
56
+ test:
57
+ executor: node-executor
58
+ steps:
59
+ - setup
60
+ - run: yarn test
61
+
62
+ workflows:
63
+ build_and_test:
64
+ jobs:
65
+ - lint
66
+ - test
67
+ - build-storybook
package/.eslintrc.js ADDED
@@ -0,0 +1,34 @@
1
+ module.exports = {
2
+ settings: {
3
+ react: {
4
+ version: "detect",
5
+ },
6
+ },
7
+ env: {
8
+ browser: true,
9
+ node: true,
10
+ jest: true,
11
+ },
12
+ ignorePatterns: ["**/dist/**", "react-dist/**", "__generated__**"],
13
+ parser: "@typescript-eslint/parser",
14
+ extends: [
15
+ "eslint:recommended",
16
+ "plugin:@typescript-eslint/eslint-recommended",
17
+ "plugin:@typescript-eslint/recommended",
18
+ "plugin:jsx-a11y/recommended",
19
+ "plugin:react/recommended",
20
+ "plugin:react-hooks/recommended",
21
+ "prettier",
22
+ "plugin:storybook/recommended",
23
+ ],
24
+ overrides: [],
25
+ plugins: ["@typescript-eslint", "jsx-a11y", "import"],
26
+ rules: {
27
+ "@typescript-eslint/no-explicit-any": 0,
28
+ "@typescript-eslint/no-non-null-assertion": 0,
29
+ "react/display-name": 0,
30
+ "react/react-in-jsx-scope": 0,
31
+ "react/prop-types": 0,
32
+ "react-hooks/exhaustive-deps": 0,
33
+ },
34
+ };
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:base",
5
+ "schedule:earlyMondays",
6
+ ":combinePatchMinorReleases"
7
+ ],
8
+ "labels": ["dependencies"],
9
+ "enabledManagers": ["github-actions", "npm"],
10
+ "packageRules": [
11
+ {
12
+ "matchPackagePrefixes": ["@types", "eslint", "jest", "prettier"],
13
+ "automerge": true
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,18 @@
1
+ # Our automated release process (see release.yml) creates PRs
2
+ # to bump the version in package.json.
3
+ #
4
+ # This workflow automatically approves these PRs so they can
5
+ # be merged without human intervention.
6
+
7
+ name: Auto approve bump version PR
8
+
9
+ on: pull_request_target
10
+
11
+ jobs:
12
+ auto-approve:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: hmarr/auto-approve-action@v2
16
+ if: github.actor == 'duffel-bot'
17
+ with:
18
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
@@ -0,0 +1,86 @@
1
+ name: Release to npm
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ jobs:
7
+ Release:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - name: Checkout
11
+ uses: actions/checkout@v2
12
+ with:
13
+ fetch-depth: 0
14
+
15
+ - name: Setup Node.js
16
+ uses: actions/setup-node@v1
17
+ with:
18
+ node-version: "18.x"
19
+
20
+ - name: Get yarn cache directory path
21
+ id: yarn-cache-dir-path
22
+ run: echo "::set-output name=dir::$(yarn cache dir)"
23
+
24
+ - uses: actions/cache@v2
25
+ id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
26
+ with:
27
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
28
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
29
+ restore-keys: |
30
+ ${{ runner.os }}-yarn-
31
+
32
+ - name: Install dependencies
33
+ run: yarn install --frozen-lock-file --prefer-offline
34
+
35
+ - name: Get version from package.json before release step
36
+ id: initversion
37
+ run: echo "::set-output name=version::$(npm run get-version --silent)"
38
+
39
+ - name: Release to NPM
40
+ id: release
41
+ env:
42
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
44
+ GIT_AUTHOR_NAME: duffel-bot
45
+ GIT_AUTHOR_EMAIL: duffel-bot-read-write@duffel.com
46
+ GIT_COMMITTER_NAME: duffel-bot
47
+ GIT_COMMITTER_EMAIL: duffel-bot-read-write@duffel.com
48
+ run: yarn release
49
+
50
+ - name: Get version from package.json after release step
51
+ id: extractver
52
+ run: echo "::set-output name=extractver::$(npm run get-version --silent)"
53
+
54
+ - name: Check if package versions are different
55
+ run: |
56
+ echo "Init Version - ${{ steps.initversion.outputs.version }}"
57
+ echo "extract version - ${{ steps.extractver.outputs.extractver }}"
58
+ echo "extract version - ${{ steps.initversion.outputs.version != steps.extractver.outputs.extractver }}"
59
+
60
+ - name: Create Pull Request with updated package files
61
+ id: cpr
62
+ if: steps.initversion.outputs.version != steps.extractver.outputs.extractver
63
+ uses: peter-evans/create-pull-request@v3.10.0
64
+ with:
65
+ token: ${{ secrets.PAT }}
66
+ commit-message: "chore(release): ${{ steps.extractver.outputs.extractver }}"
67
+ committer: duffel-bot <duffel-bot-read-write@duffel.com>
68
+ author: duffel-bot <duffel-bot-read-write@duffel.com>
69
+ title: "chore(release): ${{ steps.extractver.outputs.extractver }}"
70
+ body: "Version bump in package.json for release [${{ steps.extractver.outputs.extractver }}](https://github.com/${{github.repository}}/releases/tag/v${{ steps.extractver.outputs.extractver }})"
71
+ branch: version-bump/${{ steps.extractver.outputs.extractver }}
72
+ labels: |
73
+ automated pr
74
+
75
+ - name: Check outputs
76
+ run: |
77
+ echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
78
+ echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
79
+
80
+ - name: Enable Pull Request Automerge
81
+ if: steps.cpr.outputs.pull-request-operation == 'created'
82
+ uses: peter-evans/enable-pull-request-automerge@v1
83
+ with:
84
+ token: ${{ secrets.PAT }}
85
+ pull-request-number: ${{ steps.cpr.outputs.pull-request-number }}
86
+ merge-method: squash
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname "$0")/_/husky.sh"
3
+
4
+ yarn post-commit-check
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+ . "$(dirname "$0")/_/husky.sh"
3
+
4
+ yarn pre-commit-check
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ lts/hydrogen
@@ -0,0 +1,2 @@
1
+ dist
2
+ __generated__*
@@ -0,0 +1,3 @@
1
+ import initStoryshots from "@storybook/addon-storyshots";
2
+
3
+ initStoryshots();