@financial-times/n-myft-ui 24.0.2 → 25.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -79,6 +79,9 @@ jobs:
79
79
  command: .circleci/shared-helpers/helper-generate-build-state-artifacts
80
80
  when: always
81
81
  - *cache_npm_cache
82
+ - run:
83
+ name: Compile JSX templates
84
+ command: npm run build-package
82
85
  - store_artifacts:
83
86
  path: build-state
84
87
  destination: build-state
package/README.md CHANGED
@@ -38,3 +38,54 @@ make demo
38
38
  ```
39
39
 
40
40
  View the demo on `localhost:5005`
41
+
42
+
43
+ ## Migration Guide
44
+
45
+ ### Upgrading from v25
46
+
47
+ V24 introduces some major changes to n-myft-ui components. Some of the components have been moved from handlebars to jsx.
48
+
49
+ These components include:
50
+ - csrf-token
51
+ - follow-button
52
+ - save-for-later
53
+ - pin-button
54
+ - concept-list
55
+ - collections
56
+
57
+ A consumer of any of these components needs to render them directly as `jsx` components in a parent `jsx` component or use the `renderReactComponent` helper function provided by `@financial-times/dotcom-server-handlebars` in a consuming handlebars template/partial.
58
+
59
+ #### Example rendering in a jsx component
60
+ ```jsx
61
+ import { SaveForLater } from '@financial-times/n-myft-ui';
62
+
63
+ export default function Consumer() {
64
+ return (
65
+ <SaveForLater contentId={contentId} saveButtonWithIcon={true} flags={{myFtApiWrite:myFtApiWrite}}/>
66
+ )
67
+ }
68
+ ```
69
+
70
+ More examples of rendering these components can be found [here](https://github.com/Financial-Times/n-myft-ui/blob/main/demos/templates/demo.jsx) with component props passed in [here](https://github.com/Financial-Times/n-myft-ui/blob/dfbf06d10f78756871cfe8d2aeb863ce4bcca1e1/demos/app.js#L54).
71
+
72
+
73
+ #### Example rendering in a handlebars partial
74
+ To render a jsx component in a handlebars partial, consumers need to add the `helpers` provided by `@financial-times/dotcom-server-handlebars` to the PageKitHandlebars config in `express app engine` [see example](https://github.com/Financial-Times/n-myft-ui/blob/dfbf06d10f78756871cfe8d2aeb863ce4bcca1e1/demos/app.js#L41).
75
+
76
+ ```hbs
77
+ <div>
78
+ <h2 class="demo-section__title">
79
+ Follow button
80
+ </h2>
81
+
82
+ {{#followButton}}
83
+ {{{renderReactComponent localPath="node_modules/@financial-times/n-myft-ui/components/follow-button/follow-button" flags=flags variant="standard" conceptId="0000-0000-0000-0000" name="Follow Item" directType="http://www.ft.com/ontology/product/Brand"}}}
84
+ {{/followButton}}
85
+ </div>
86
+ ```
87
+
88
+ More examples of rendering jsx in handlebars partials can be found [here](https://github.com/Financial-Times/n-myft-ui/blob/main/demos/templates/demo.html)
89
+
90
+
91
+ NB: This branch is the development branch for v25 and all bug fixes for breaking changes related to `jsx` go here.
@@ -34,6 +34,8 @@
34
34
  "babel-plugin-transform-runtime": "^6.9.0",
35
35
  "babel-preset-env": "^1.7.0",
36
36
  "babel-preset-es2015": "^6.6.0",
37
+ "babel-preset-react": "^6.24.1",
38
+ "babel-preset-stage-2": "^6.24.1",
37
39
  "babel-runtime": "^6.9.2",
38
40
  "bower": "^1.8.8",
39
41
  "bower-resolve-webpack-plugin": "^1.0.5",
@@ -6320,6 +6322,17 @@
6320
6322
  "jsesc": "bin/jsesc"
6321
6323
  }
6322
6324
  },
6325
+ "node_modules/babel-helper-bindify-decorators": {
6326
+ "version": "6.24.1",
6327
+ "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
6328
+ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
6329
+ "dev": true,
6330
+ "dependencies": {
6331
+ "babel-runtime": "^6.22.0",
6332
+ "babel-traverse": "^6.24.1",
6333
+ "babel-types": "^6.24.1"
6334
+ }
6335
+ },
6323
6336
  "node_modules/babel-helper-builder-binary-assignment-operator-visitor": {
6324
6337
  "version": "6.24.1",
6325
6338
  "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
@@ -6331,6 +6344,17 @@
6331
6344
  "babel-types": "^6.24.1"
6332
6345
  }
6333
6346
  },
6347
+ "node_modules/babel-helper-builder-react-jsx": {
6348
+ "version": "6.26.0",
6349
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
6350
+ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
6351
+ "dev": true,
6352
+ "dependencies": {
6353
+ "babel-runtime": "^6.26.0",
6354
+ "babel-types": "^6.26.0",
6355
+ "esutils": "^2.0.2"
6356
+ }
6357
+ },
6334
6358
  "node_modules/babel-helper-call-delegate": {
6335
6359
  "version": "6.24.1",
6336
6360
  "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
@@ -6366,6 +6390,18 @@
6366
6390
  "babel-types": "^6.24.1"
6367
6391
  }
6368
6392
  },
6393
+ "node_modules/babel-helper-explode-class": {
6394
+ "version": "6.24.1",
6395
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
6396
+ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
6397
+ "dev": true,
6398
+ "dependencies": {
6399
+ "babel-helper-bindify-decorators": "^6.24.1",
6400
+ "babel-runtime": "^6.22.0",
6401
+ "babel-traverse": "^6.24.1",
6402
+ "babel-types": "^6.24.1"
6403
+ }
6404
+ },
6369
6405
  "node_modules/babel-helper-function-name": {
6370
6406
  "version": "6.24.1",
6371
6407
  "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
@@ -6688,18 +6724,71 @@
6688
6724
  "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
6689
6725
  "dev": true
6690
6726
  },
6727
+ "node_modules/babel-plugin-syntax-async-generators": {
6728
+ "version": "6.13.0",
6729
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
6730
+ "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
6731
+ "dev": true
6732
+ },
6733
+ "node_modules/babel-plugin-syntax-class-properties": {
6734
+ "version": "6.13.0",
6735
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
6736
+ "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
6737
+ "dev": true
6738
+ },
6739
+ "node_modules/babel-plugin-syntax-decorators": {
6740
+ "version": "6.13.0",
6741
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
6742
+ "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
6743
+ "dev": true
6744
+ },
6745
+ "node_modules/babel-plugin-syntax-dynamic-import": {
6746
+ "version": "6.18.0",
6747
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
6748
+ "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
6749
+ "dev": true
6750
+ },
6691
6751
  "node_modules/babel-plugin-syntax-exponentiation-operator": {
6692
6752
  "version": "6.13.0",
6693
6753
  "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
6694
6754
  "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
6695
6755
  "dev": true
6696
6756
  },
6757
+ "node_modules/babel-plugin-syntax-flow": {
6758
+ "version": "6.18.0",
6759
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
6760
+ "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=",
6761
+ "dev": true
6762
+ },
6763
+ "node_modules/babel-plugin-syntax-jsx": {
6764
+ "version": "6.18.0",
6765
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
6766
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
6767
+ "dev": true
6768
+ },
6769
+ "node_modules/babel-plugin-syntax-object-rest-spread": {
6770
+ "version": "6.13.0",
6771
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
6772
+ "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
6773
+ "dev": true
6774
+ },
6697
6775
  "node_modules/babel-plugin-syntax-trailing-function-commas": {
6698
6776
  "version": "6.22.0",
6699
6777
  "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
6700
6778
  "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
6701
6779
  "dev": true
6702
6780
  },
6781
+ "node_modules/babel-plugin-transform-async-generator-functions": {
6782
+ "version": "6.24.1",
6783
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
6784
+ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
6785
+ "dev": true,
6786
+ "dependencies": {
6787
+ "babel-helper-remap-async-to-generator": "^6.24.1",
6788
+ "babel-plugin-syntax-async-generators": "^6.5.0",
6789
+ "babel-runtime": "^6.22.0"
6790
+ }
6791
+ },
6703
6792
  "node_modules/babel-plugin-transform-async-to-generator": {
6704
6793
  "version": "6.24.1",
6705
6794
  "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
@@ -6711,6 +6800,31 @@
6711
6800
  "babel-runtime": "^6.22.0"
6712
6801
  }
6713
6802
  },
6803
+ "node_modules/babel-plugin-transform-class-properties": {
6804
+ "version": "6.24.1",
6805
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
6806
+ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
6807
+ "dev": true,
6808
+ "dependencies": {
6809
+ "babel-helper-function-name": "^6.24.1",
6810
+ "babel-plugin-syntax-class-properties": "^6.8.0",
6811
+ "babel-runtime": "^6.22.0",
6812
+ "babel-template": "^6.24.1"
6813
+ }
6814
+ },
6815
+ "node_modules/babel-plugin-transform-decorators": {
6816
+ "version": "6.24.1",
6817
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
6818
+ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
6819
+ "dev": true,
6820
+ "dependencies": {
6821
+ "babel-helper-explode-class": "^6.24.1",
6822
+ "babel-plugin-syntax-decorators": "^6.13.0",
6823
+ "babel-runtime": "^6.22.0",
6824
+ "babel-template": "^6.24.1",
6825
+ "babel-types": "^6.24.1"
6826
+ }
6827
+ },
6714
6828
  "node_modules/babel-plugin-transform-es2015-arrow-functions": {
6715
6829
  "version": "6.22.0",
6716
6830
  "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
@@ -6994,6 +7108,66 @@
6994
7108
  "babel-runtime": "^6.22.0"
6995
7109
  }
6996
7110
  },
7111
+ "node_modules/babel-plugin-transform-flow-strip-types": {
7112
+ "version": "6.22.0",
7113
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
7114
+ "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
7115
+ "dev": true,
7116
+ "dependencies": {
7117
+ "babel-plugin-syntax-flow": "^6.18.0",
7118
+ "babel-runtime": "^6.22.0"
7119
+ }
7120
+ },
7121
+ "node_modules/babel-plugin-transform-object-rest-spread": {
7122
+ "version": "6.26.0",
7123
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
7124
+ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
7125
+ "dev": true,
7126
+ "dependencies": {
7127
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
7128
+ "babel-runtime": "^6.26.0"
7129
+ }
7130
+ },
7131
+ "node_modules/babel-plugin-transform-react-display-name": {
7132
+ "version": "6.25.0",
7133
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
7134
+ "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
7135
+ "dev": true,
7136
+ "dependencies": {
7137
+ "babel-runtime": "^6.22.0"
7138
+ }
7139
+ },
7140
+ "node_modules/babel-plugin-transform-react-jsx": {
7141
+ "version": "6.24.1",
7142
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
7143
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
7144
+ "dev": true,
7145
+ "dependencies": {
7146
+ "babel-helper-builder-react-jsx": "^6.24.1",
7147
+ "babel-plugin-syntax-jsx": "^6.8.0",
7148
+ "babel-runtime": "^6.22.0"
7149
+ }
7150
+ },
7151
+ "node_modules/babel-plugin-transform-react-jsx-self": {
7152
+ "version": "6.22.0",
7153
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
7154
+ "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
7155
+ "dev": true,
7156
+ "dependencies": {
7157
+ "babel-plugin-syntax-jsx": "^6.8.0",
7158
+ "babel-runtime": "^6.22.0"
7159
+ }
7160
+ },
7161
+ "node_modules/babel-plugin-transform-react-jsx-source": {
7162
+ "version": "6.22.0",
7163
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
7164
+ "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
7165
+ "dev": true,
7166
+ "dependencies": {
7167
+ "babel-plugin-syntax-jsx": "^6.8.0",
7168
+ "babel-runtime": "^6.22.0"
7169
+ }
7170
+ },
6997
7171
  "node_modules/babel-plugin-transform-regenerator": {
6998
7172
  "version": "6.26.0",
6999
7173
  "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
@@ -7155,6 +7329,15 @@
7155
7329
  "babel-plugin-transform-regenerator": "^6.24.1"
7156
7330
  }
7157
7331
  },
7332
+ "node_modules/babel-preset-flow": {
7333
+ "version": "6.23.0",
7334
+ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
7335
+ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
7336
+ "dev": true,
7337
+ "dependencies": {
7338
+ "babel-plugin-transform-flow-strip-types": "^6.22.0"
7339
+ }
7340
+ },
7158
7341
  "node_modules/babel-preset-jest": {
7159
7342
  "version": "27.4.0",
7160
7343
  "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz",
@@ -7171,6 +7354,45 @@
7171
7354
  "@babel/core": "^7.0.0"
7172
7355
  }
7173
7356
  },
7357
+ "node_modules/babel-preset-react": {
7358
+ "version": "6.24.1",
7359
+ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
7360
+ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
7361
+ "dev": true,
7362
+ "dependencies": {
7363
+ "babel-plugin-syntax-jsx": "^6.3.13",
7364
+ "babel-plugin-transform-react-display-name": "^6.23.0",
7365
+ "babel-plugin-transform-react-jsx": "^6.24.1",
7366
+ "babel-plugin-transform-react-jsx-self": "^6.22.0",
7367
+ "babel-plugin-transform-react-jsx-source": "^6.22.0",
7368
+ "babel-preset-flow": "^6.23.0"
7369
+ }
7370
+ },
7371
+ "node_modules/babel-preset-stage-2": {
7372
+ "version": "6.24.1",
7373
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
7374
+ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
7375
+ "dev": true,
7376
+ "dependencies": {
7377
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
7378
+ "babel-plugin-transform-class-properties": "^6.24.1",
7379
+ "babel-plugin-transform-decorators": "^6.24.1",
7380
+ "babel-preset-stage-3": "^6.24.1"
7381
+ }
7382
+ },
7383
+ "node_modules/babel-preset-stage-3": {
7384
+ "version": "6.24.1",
7385
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
7386
+ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
7387
+ "dev": true,
7388
+ "dependencies": {
7389
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
7390
+ "babel-plugin-transform-async-generator-functions": "^6.24.1",
7391
+ "babel-plugin-transform-async-to-generator": "^6.24.1",
7392
+ "babel-plugin-transform-exponentiation-operator": "^6.24.1",
7393
+ "babel-plugin-transform-object-rest-spread": "^6.22.0"
7394
+ }
7395
+ },
7174
7396
  "node_modules/babel-register": {
7175
7397
  "version": "6.26.0",
7176
7398
  "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
@@ -35391,6 +35613,17 @@
35391
35613
  }
35392
35614
  }
35393
35615
  },
35616
+ "babel-helper-bindify-decorators": {
35617
+ "version": "6.24.1",
35618
+ "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
35619
+ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
35620
+ "dev": true,
35621
+ "requires": {
35622
+ "babel-runtime": "^6.22.0",
35623
+ "babel-traverse": "^6.24.1",
35624
+ "babel-types": "^6.24.1"
35625
+ }
35626
+ },
35394
35627
  "babel-helper-builder-binary-assignment-operator-visitor": {
35395
35628
  "version": "6.24.1",
35396
35629
  "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
@@ -35402,6 +35635,17 @@
35402
35635
  "babel-types": "^6.24.1"
35403
35636
  }
35404
35637
  },
35638
+ "babel-helper-builder-react-jsx": {
35639
+ "version": "6.26.0",
35640
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
35641
+ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
35642
+ "dev": true,
35643
+ "requires": {
35644
+ "babel-runtime": "^6.26.0",
35645
+ "babel-types": "^6.26.0",
35646
+ "esutils": "^2.0.2"
35647
+ }
35648
+ },
35405
35649
  "babel-helper-call-delegate": {
35406
35650
  "version": "6.24.1",
35407
35651
  "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
@@ -35437,6 +35681,18 @@
35437
35681
  "babel-types": "^6.24.1"
35438
35682
  }
35439
35683
  },
35684
+ "babel-helper-explode-class": {
35685
+ "version": "6.24.1",
35686
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
35687
+ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
35688
+ "dev": true,
35689
+ "requires": {
35690
+ "babel-helper-bindify-decorators": "^6.24.1",
35691
+ "babel-runtime": "^6.22.0",
35692
+ "babel-traverse": "^6.24.1",
35693
+ "babel-types": "^6.24.1"
35694
+ }
35695
+ },
35440
35696
  "babel-helper-function-name": {
35441
35697
  "version": "6.24.1",
35442
35698
  "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
@@ -35709,18 +35965,71 @@
35709
35965
  "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
35710
35966
  "dev": true
35711
35967
  },
35968
+ "babel-plugin-syntax-async-generators": {
35969
+ "version": "6.13.0",
35970
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
35971
+ "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
35972
+ "dev": true
35973
+ },
35974
+ "babel-plugin-syntax-class-properties": {
35975
+ "version": "6.13.0",
35976
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
35977
+ "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
35978
+ "dev": true
35979
+ },
35980
+ "babel-plugin-syntax-decorators": {
35981
+ "version": "6.13.0",
35982
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
35983
+ "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
35984
+ "dev": true
35985
+ },
35986
+ "babel-plugin-syntax-dynamic-import": {
35987
+ "version": "6.18.0",
35988
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
35989
+ "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
35990
+ "dev": true
35991
+ },
35712
35992
  "babel-plugin-syntax-exponentiation-operator": {
35713
35993
  "version": "6.13.0",
35714
35994
  "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
35715
35995
  "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
35716
35996
  "dev": true
35717
35997
  },
35998
+ "babel-plugin-syntax-flow": {
35999
+ "version": "6.18.0",
36000
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
36001
+ "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=",
36002
+ "dev": true
36003
+ },
36004
+ "babel-plugin-syntax-jsx": {
36005
+ "version": "6.18.0",
36006
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
36007
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
36008
+ "dev": true
36009
+ },
36010
+ "babel-plugin-syntax-object-rest-spread": {
36011
+ "version": "6.13.0",
36012
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
36013
+ "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
36014
+ "dev": true
36015
+ },
35718
36016
  "babel-plugin-syntax-trailing-function-commas": {
35719
36017
  "version": "6.22.0",
35720
36018
  "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
35721
36019
  "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
35722
36020
  "dev": true
35723
36021
  },
36022
+ "babel-plugin-transform-async-generator-functions": {
36023
+ "version": "6.24.1",
36024
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
36025
+ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
36026
+ "dev": true,
36027
+ "requires": {
36028
+ "babel-helper-remap-async-to-generator": "^6.24.1",
36029
+ "babel-plugin-syntax-async-generators": "^6.5.0",
36030
+ "babel-runtime": "^6.22.0"
36031
+ }
36032
+ },
35724
36033
  "babel-plugin-transform-async-to-generator": {
35725
36034
  "version": "6.24.1",
35726
36035
  "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
@@ -35732,6 +36041,31 @@
35732
36041
  "babel-runtime": "^6.22.0"
35733
36042
  }
35734
36043
  },
36044
+ "babel-plugin-transform-class-properties": {
36045
+ "version": "6.24.1",
36046
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
36047
+ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
36048
+ "dev": true,
36049
+ "requires": {
36050
+ "babel-helper-function-name": "^6.24.1",
36051
+ "babel-plugin-syntax-class-properties": "^6.8.0",
36052
+ "babel-runtime": "^6.22.0",
36053
+ "babel-template": "^6.24.1"
36054
+ }
36055
+ },
36056
+ "babel-plugin-transform-decorators": {
36057
+ "version": "6.24.1",
36058
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
36059
+ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
36060
+ "dev": true,
36061
+ "requires": {
36062
+ "babel-helper-explode-class": "^6.24.1",
36063
+ "babel-plugin-syntax-decorators": "^6.13.0",
36064
+ "babel-runtime": "^6.22.0",
36065
+ "babel-template": "^6.24.1",
36066
+ "babel-types": "^6.24.1"
36067
+ }
36068
+ },
35735
36069
  "babel-plugin-transform-es2015-arrow-functions": {
35736
36070
  "version": "6.22.0",
35737
36071
  "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
@@ -36011,6 +36345,66 @@
36011
36345
  "babel-runtime": "^6.22.0"
36012
36346
  }
36013
36347
  },
36348
+ "babel-plugin-transform-flow-strip-types": {
36349
+ "version": "6.22.0",
36350
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
36351
+ "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
36352
+ "dev": true,
36353
+ "requires": {
36354
+ "babel-plugin-syntax-flow": "^6.18.0",
36355
+ "babel-runtime": "^6.22.0"
36356
+ }
36357
+ },
36358
+ "babel-plugin-transform-object-rest-spread": {
36359
+ "version": "6.26.0",
36360
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
36361
+ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
36362
+ "dev": true,
36363
+ "requires": {
36364
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
36365
+ "babel-runtime": "^6.26.0"
36366
+ }
36367
+ },
36368
+ "babel-plugin-transform-react-display-name": {
36369
+ "version": "6.25.0",
36370
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
36371
+ "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
36372
+ "dev": true,
36373
+ "requires": {
36374
+ "babel-runtime": "^6.22.0"
36375
+ }
36376
+ },
36377
+ "babel-plugin-transform-react-jsx": {
36378
+ "version": "6.24.1",
36379
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
36380
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
36381
+ "dev": true,
36382
+ "requires": {
36383
+ "babel-helper-builder-react-jsx": "^6.24.1",
36384
+ "babel-plugin-syntax-jsx": "^6.8.0",
36385
+ "babel-runtime": "^6.22.0"
36386
+ }
36387
+ },
36388
+ "babel-plugin-transform-react-jsx-self": {
36389
+ "version": "6.22.0",
36390
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
36391
+ "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
36392
+ "dev": true,
36393
+ "requires": {
36394
+ "babel-plugin-syntax-jsx": "^6.8.0",
36395
+ "babel-runtime": "^6.22.0"
36396
+ }
36397
+ },
36398
+ "babel-plugin-transform-react-jsx-source": {
36399
+ "version": "6.22.0",
36400
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
36401
+ "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
36402
+ "dev": true,
36403
+ "requires": {
36404
+ "babel-plugin-syntax-jsx": "^6.8.0",
36405
+ "babel-runtime": "^6.22.0"
36406
+ }
36407
+ },
36014
36408
  "babel-plugin-transform-regenerator": {
36015
36409
  "version": "6.26.0",
36016
36410
  "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
@@ -36166,6 +36560,15 @@
36166
36560
  "babel-plugin-transform-regenerator": "^6.24.1"
36167
36561
  }
36168
36562
  },
36563
+ "babel-preset-flow": {
36564
+ "version": "6.23.0",
36565
+ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
36566
+ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
36567
+ "dev": true,
36568
+ "requires": {
36569
+ "babel-plugin-transform-flow-strip-types": "^6.22.0"
36570
+ }
36571
+ },
36169
36572
  "babel-preset-jest": {
36170
36573
  "version": "27.4.0",
36171
36574
  "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz",
@@ -36176,6 +36579,45 @@
36176
36579
  "babel-preset-current-node-syntax": "^1.0.0"
36177
36580
  }
36178
36581
  },
36582
+ "babel-preset-react": {
36583
+ "version": "6.24.1",
36584
+ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
36585
+ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
36586
+ "dev": true,
36587
+ "requires": {
36588
+ "babel-plugin-syntax-jsx": "^6.3.13",
36589
+ "babel-plugin-transform-react-display-name": "^6.23.0",
36590
+ "babel-plugin-transform-react-jsx": "^6.24.1",
36591
+ "babel-plugin-transform-react-jsx-self": "^6.22.0",
36592
+ "babel-plugin-transform-react-jsx-source": "^6.22.0",
36593
+ "babel-preset-flow": "^6.23.0"
36594
+ }
36595
+ },
36596
+ "babel-preset-stage-2": {
36597
+ "version": "6.24.1",
36598
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
36599
+ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
36600
+ "dev": true,
36601
+ "requires": {
36602
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
36603
+ "babel-plugin-transform-class-properties": "^6.24.1",
36604
+ "babel-plugin-transform-decorators": "^6.24.1",
36605
+ "babel-preset-stage-3": "^6.24.1"
36606
+ }
36607
+ },
36608
+ "babel-preset-stage-3": {
36609
+ "version": "6.24.1",
36610
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
36611
+ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
36612
+ "dev": true,
36613
+ "requires": {
36614
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
36615
+ "babel-plugin-transform-async-generator-functions": "^6.24.1",
36616
+ "babel-plugin-transform-async-to-generator": "^6.24.1",
36617
+ "babel-plugin-transform-exponentiation-operator": "^6.24.1",
36618
+ "babel-plugin-transform-object-rest-spread": "^6.22.0"
36619
+ }
36620
+ },
36179
36621
  "babel-register": {
36180
36622
  "version": "6.26.0",
36181
36623
  "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",