@stokr/components-library 2.3.21 → 2.3.22-beta.1

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.
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _BlogPost = require("./BlogPost.styles");
10
+ var _Text = _interopRequireDefault(require("../Text/Text.styles"));
11
+ var _breakdown = _interopRequireDefault(require("../breakdown"));
12
+ var _excluded = ["layout", "category", "title", "description", "image", "date", "link", "CTAText"];
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
+ var BlogPost = function BlogPost(_ref) {
18
+ var _ref$layout = _ref.layout,
19
+ layout = _ref$layout === void 0 ? 'image-left' : _ref$layout,
20
+ category = _ref.category,
21
+ title = _ref.title,
22
+ description = _ref.description,
23
+ image = _ref.image,
24
+ date = _ref.date,
25
+ link = _ref.link,
26
+ _ref$CTAText = _ref.CTAText,
27
+ CTAText = _ref$CTAText === void 0 ? 'Read full' : _ref$CTAText,
28
+ props = _objectWithoutProperties(_ref, _excluded);
29
+ return /*#__PURE__*/_react.default.createElement(_BlogPost.Container, _extends({
30
+ layout: layout
31
+ }, props), /*#__PURE__*/_react.default.createElement(_BlogPost.ImageWrapper, {
32
+ layout: layout
33
+ }, /*#__PURE__*/_react.default.createElement(_BlogPost.Image, {
34
+ src: image,
35
+ alt: title
36
+ })), /*#__PURE__*/_react.default.createElement(_BlogPost.Content, {
37
+ layout: layout
38
+ }, /*#__PURE__*/_react.default.createElement(_BlogPost.Category, null, category), /*#__PURE__*/_react.default.createElement(_Text.default, null, /*#__PURE__*/_react.default.createElement("h3", null, title), description && /*#__PURE__*/_react.default.createElement("p", null, description)), date && /*#__PURE__*/_react.default.createElement(_breakdown.default, null, date), /*#__PURE__*/_react.default.createElement(_BlogPost.StyledButton, {
39
+ transparent: true,
40
+ onClick: function onClick() {
41
+ return window.location.href = link;
42
+ }
43
+ }, CTAText)));
44
+ };
45
+ BlogPost.propTypes = {
46
+ layout: _propTypes.default.oneOf(['image-left', 'image-right', 'image-cover', 'image-fullscreen']),
47
+ category: _propTypes.default.string.isRequired,
48
+ title: _propTypes.default.string.isRequired,
49
+ description: _propTypes.default.string,
50
+ image: _propTypes.default.string.isRequired,
51
+ date: _propTypes.default.string,
52
+ link: _propTypes.default.string.isRequired
53
+ };
54
+ var _default = BlogPost;
55
+ exports.default = _default;
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.ImageRight = exports.ImageLeft = exports.ImageCover = exports.GridExample = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _BlogPost = _interopRequireDefault(require("./BlogPost"));
10
+ var _global = _interopRequireDefault(require("../../styles/global"));
11
+ var _rwd = _interopRequireDefault(require("../../styles/rwd"));
12
+ var _templateObject, _templateObject2;
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
15
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
16
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
17
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
22
+ var _default = {
23
+ title: 'Components Library/BlogPost',
24
+ component: _BlogPost.default,
25
+ argTypes: {
26
+ layout: {
27
+ control: 'select',
28
+ options: ['image-left', 'image-right', 'image-cover'],
29
+ defaultValue: 'image-left'
30
+ },
31
+ category: {
32
+ control: 'text'
33
+ },
34
+ title: {
35
+ control: 'text'
36
+ },
37
+ description: {
38
+ control: 'text'
39
+ },
40
+ image: {
41
+ control: 'text'
42
+ },
43
+ date: {
44
+ control: 'text'
45
+ },
46
+ link: {
47
+ control: 'text'
48
+ }
49
+ }
50
+ };
51
+ exports.default = _default;
52
+ var Template = function Template(args) {
53
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_global.default, null), /*#__PURE__*/_react.default.createElement("div", {
54
+ style: {
55
+ maxWidth: '1200px',
56
+ margin: '0 auto',
57
+ padding: '20px'
58
+ }
59
+ }, /*#__PURE__*/_react.default.createElement(_BlogPost.default, args)));
60
+ };
61
+ var ImageLeft = Template.bind({});
62
+ exports.ImageLeft = ImageLeft;
63
+ ImageLeft.args = {
64
+ layout: 'image-left',
65
+ category: 'BITCOIN MINING',
66
+ title: 'Bitcoin Mining: A Series - Part 1: The Ups, Downs and Rebounds',
67
+ description: "It's the moment you have all been waiting for! Trading for the BMN token is now fully live and active on the Bitfinex Securities Exchange.",
68
+ image: 'https://res.cloudinary.com/stokr/image/upload/v1574418924/1_hoz9ve.jpg',
69
+ date: '01 MAR 2022',
70
+ link: '/blog/bitcoin-mining-series-part-1'
71
+ };
72
+
73
+ //https://res.cloudinary.com/stokr/image/upload/v1694077746/cld-sample-2.jpg
74
+ //https://res.cloudinary.com/stokr/image/upload/v1713792627/STOKE_POST/stos-an-alternative-way-of-fundraising-for-business_xqx6zu.jpg
75
+
76
+ var ImageRight = Template.bind({});
77
+ exports.ImageRight = ImageRight;
78
+ ImageRight.args = _objectSpread(_objectSpread({}, ImageLeft.args), {}, {
79
+ layout: 'image-right'
80
+ });
81
+ var ImageCover = Template.bind({});
82
+ exports.ImageCover = ImageCover;
83
+ ImageCover.args = _objectSpread(_objectSpread({}, ImageLeft.args), {}, {
84
+ layout: 'image-cover'
85
+ });
86
+ var GridLayout = _styledComponents.default.div.withConfig({
87
+ displayName: "BlogPoststories__GridLayout",
88
+ componentId: "sc-1hqbvxb-0"
89
+ })(["display:grid;grid-template-columns:1fr;gap:4rem;", ";", ";"], _rwd.default.Mobile(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n gap: 6rem;\n "]))), _rwd.default.Medium(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n gap: 10rem 4rem;\n grid-template-columns: repeat(2, 1fr);\n "]))));
90
+ var LAYOUTS = [['image-cover', 'image-right', 'image-left', 'image-cover', 'image-cover', 'image-right', 'image-fullscreen'], ['image-cover', 'image-left', 'image-right', 'image-cover', 'image-cover', 'image-left', 'image-fullscreen']];
91
+ var getLayoutPattern = function getLayoutPattern(index) {
92
+ return LAYOUTS[Math.floor(index / 7) % 2][index % 7];
93
+ };
94
+
95
+ // Sample blog posts data
96
+ var samplePosts = [{
97
+ layout: 'image-cover',
98
+ category: 'BITCOIN MINING',
99
+ title: 'Bitcoin Mining: A Series - Part 1',
100
+ description: "It's the moment you have all been waiting for! Trading for the BMN token is now fully live.",
101
+ image: 'https://res.cloudinary.com/stokr/image/upload/v1574418924/1_hoz9ve.jpg',
102
+ date: '01 MAR 2022',
103
+ link: '/blog/post-1'
104
+ }, {
105
+ layout: 'image-left',
106
+ category: 'BITCOIN MINING',
107
+ title: 'BMN Now Open for Trade',
108
+ description: 'Trading for the BMN token is now fully live and active on the Bitfinex Securities Exchange.',
109
+ image: 'https://res.cloudinary.com/stokr/image/upload/v1694077746/cld-sample-2.jpg',
110
+ date: '02 MAR 2022',
111
+ link: '/blog/post-2'
112
+ }, {
113
+ layout: 'image-right',
114
+ category: 'BITCOIN MINING',
115
+ title: 'The Ups, Downs and Rebounds',
116
+ description: 'Learn about the journey of Bitcoin mining and its various phases.',
117
+ image: 'https://res.cloudinary.com/stokr/image/upload/v1713792627/STOKE_POST/stos-an-alternative-way-of-fundraising-for-business_xqx6zu.jpg',
118
+ date: '03 MAR 2022',
119
+ link: '/blog/post-3'
120
+ }, {
121
+ layout: 'image-cover',
122
+ category: 'BITCOIN MINING',
123
+ title: 'Future of Mining',
124
+ description: 'Exploring what lies ahead for Bitcoin mining technology.',
125
+ image: 'https://res.cloudinary.com/stokr/image/upload/v1574418924/1_hoz9ve.jpg',
126
+ date: '04 MAR 2022',
127
+ link: '/blog/post-4'
128
+ }, {
129
+ layout: 'image-left',
130
+ category: 'BITCOIN MINING',
131
+ title: 'BMN Now Open for Trade',
132
+ description: 'Trading for the BMN token is now fully live and active on the Bitfinex Securities Exchange.',
133
+ image: 'https://res.cloudinary.com/stokr/image/upload/v1694077746/cld-sample-2.jpg',
134
+ date: '02 MAR 2022',
135
+ link: '/blog/post-2'
136
+ }, {
137
+ layout: 'image-right',
138
+ category: 'BITCOIN MINING',
139
+ title: 'The Ups, Downs and Rebounds',
140
+ description: 'Learn about the journey of Bitcoin mining and its various phases.',
141
+ image: 'https://res.cloudinary.com/stokr/image/upload/v1713792627/STOKE_POST/stos-an-alternative-way-of-fundraising-for-business_xqx6zu.jpg',
142
+ date: '03 MAR 2022',
143
+ link: '/blog/post-3'
144
+ }, {
145
+ layout: 'image-cover',
146
+ category: 'BITCOIN MINING',
147
+ title: 'Bitcoin Mining: A Series - Part 1',
148
+ description: "It's the moment you have all been waiting for! Trading for the BMN token is now fully live.",
149
+ image: 'https://res.cloudinary.com/stokr/image/upload/v1574418924/1_hoz9ve.jpg',
150
+ date: '01 MAR 2022',
151
+ link: '/blog/post-1'
152
+ }];
153
+ var GridExample = function GridExample(args) {
154
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_global.default, null), /*#__PURE__*/_react.default.createElement("div", {
155
+ style: {
156
+ maxWidth: '1700px',
157
+ margin: '0 auto'
158
+ }
159
+ }, /*#__PURE__*/_react.default.createElement(GridLayout, null, samplePosts.map(function (post, index) {
160
+ return /*#__PURE__*/_react.default.createElement(_BlogPost.default, _extends({
161
+ key: index
162
+ }, post, {
163
+ layout: getLayoutPattern(index)
164
+ }));
165
+ }))));
166
+ };
167
+ exports.GridExample = GridExample;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Title = exports.StyledButton = exports.ImageWrapper = exports.Image = exports.Description = exports.Date = exports.Content = exports.Container = exports.Category = void 0;
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ var _Button = _interopRequireDefault(require("../Button/Button.styles"));
10
+ var _breakdown = _interopRequireDefault(require("../breakdown"));
11
+ var _rwd = _interopRequireDefault(require("../../styles/rwd"));
12
+ var _theme = _interopRequireDefault(require("../../styles/theme"));
13
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
18
+ var Container = _styledComponents.default.div.withConfig({
19
+ displayName: "BlogPoststyles__Container",
20
+ componentId: "sc-16n0gty-0"
21
+ })(["position:relative;display:flex;flex-direction:", ";background:", ";height:100%;min-height:300px;max-height:500px;", ""], function (_ref) {
22
+ var layout = _ref.layout;
23
+ return layout === 'image-right' ? 'column-reverse' : 'column';
24
+ }, _theme.default.cWhite, _rwd.default.Medium(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\n flex-direction: ", ";\n\n ", "\n "])), function (_ref2) {
25
+ var layout = _ref2.layout;
26
+ return layout === 'image-cover' || layout === 'image-fullscreen' ? 'column' : layout === 'image-right' ? 'row-reverse' : 'row';
27
+ }, function (_ref3) {
28
+ var layout = _ref3.layout;
29
+ return layout === 'image-fullscreen' && (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n grid-column: 1 / -1;\n "])));
30
+ }));
31
+ exports.Container = Container;
32
+ var ImageWrapper = _styledComponents.default.div.withConfig({
33
+ displayName: "BlogPoststyles__ImageWrapper",
34
+ componentId: "sc-16n0gty-1"
35
+ })(["position:relative;flex:", ";overflow:hidden;", ""], function (_ref4) {
36
+ var layout = _ref4.layout;
37
+ return layout === 'image-cover' || layout === 'image-fullscreen' ? '1' : '0 0 50%';
38
+ }, function (_ref5) {
39
+ var layout = _ref5.layout;
40
+ return (layout === 'image-cover' || layout === 'image-fullscreen') && (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n transition: background 0.3s ease;\n }\n "])));
41
+ });
42
+ exports.ImageWrapper = ImageWrapper;
43
+ var Image = _styledComponents.default.img.withConfig({
44
+ displayName: "BlogPoststyles__Image",
45
+ componentId: "sc-16n0gty-2"
46
+ })(["width:100%;height:100%;object-fit:cover;"]);
47
+ exports.Image = Image;
48
+ var Content = _styledComponents.default.div.withConfig({
49
+ displayName: "BlogPoststyles__Content",
50
+ componentId: "sc-16n0gty-3"
51
+ })(["flex:", ";padding:", ";display:flex;flex-direction:column;gap:12px;position:", ";", " ", ""], function (_ref6) {
52
+ var layout = _ref6.layout;
53
+ return layout === 'image-cover' || layout === 'image-fullscreen' ? '0' : '1';
54
+ }, function (_ref7) {
55
+ var layout = _ref7.layout;
56
+ return layout === 'image-cover' || layout === 'image-fullscreen' ? '32px' : '32px 0';
57
+ }, function (_ref8) {
58
+ var layout = _ref8.layout;
59
+ return layout === 'image-cover' || layout === 'image-fullscreen' ? 'absolute' : 'relative';
60
+ }, function (_ref9) {
61
+ var layout = _ref9.layout;
62
+ return (layout === 'image-cover' || layout === 'image-fullscreen') && (0, _styledComponents.css)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n bottom: 0;\n left: 0;\n right: 0;\n color: ", ";\n "])), _theme.default.cWhite);
63
+ }, _rwd.default.Medium(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n\n gap:24px;\n padding: 32px; \n "]))));
64
+ exports.Content = Content;
65
+ var Category = (0, _styledComponents.default)(_breakdown.default).withConfig({
66
+ displayName: "BlogPoststyles__Category",
67
+ componentId: "sc-16n0gty-4"
68
+ })(["font-weight:500 !important;", ""], _rwd.default.Mobile(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n\n //margin-bottom: 24px;\n "]))));
69
+ exports.Category = Category;
70
+ var Title = _styledComponents.default.h2.withConfig({
71
+ displayName: "BlogPoststyles__Title",
72
+ componentId: "sc-16n0gty-5"
73
+ })(["font-size:24px;margin:0 0 16px;font-weight:700;"]);
74
+ exports.Title = Title;
75
+ var Description = _styledComponents.default.p.withConfig({
76
+ displayName: "BlogPoststyles__Description",
77
+ componentId: "sc-16n0gty-6"
78
+ })(["font-size:16px;line-height:1.5;margin:0;"]);
79
+ exports.Description = Description;
80
+ var Date = _styledComponents.default.div.withConfig({
81
+ displayName: "BlogPoststyles__Date",
82
+ componentId: "sc-16n0gty-7"
83
+ })(["font-size:14px;margin-top:16px;opacity:0.7;"]);
84
+ exports.Date = Date;
85
+ var StyledButton = (0, _styledComponents.default)(_Button.default).withConfig({
86
+ displayName: "BlogPoststyles__StyledButton",
87
+ componentId: "sc-16n0gty-8"
88
+ })(["position:absolute;bottom:32px;right:32px;opacity:0;transition:opacity 0.3s ease;", ":hover &{opacity:1;}"], Container);
89
+ exports.StyledButton = StyledButton;
package/dist/index.js CHANGED
@@ -1322,4 +1322,15 @@ Object.keys(_logo).forEach(function (key) {
1322
1322
  return _logo[key];
1323
1323
  }
1324
1324
  });
1325
+ });
1326
+ var _BlogPost = require("./components/BlogPost/BlogPost");
1327
+ Object.keys(_BlogPost).forEach(function (key) {
1328
+ if (key === "default" || key === "__esModule") return;
1329
+ if (key in exports && exports[key] === _BlogPost[key]) return;
1330
+ Object.defineProperty(exports, key, {
1331
+ enumerable: true,
1332
+ get: function get() {
1333
+ return _BlogPost[key];
1334
+ }
1335
+ });
1325
1336
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stokr/components-library",
3
- "version": "2.3.21",
3
+ "version": "2.3.22-beta.1",
4
4
  "description": "STOKR - Components Library",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",