@atlaskit/popup 5.1.0 → 5.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.
- package/CHANGELOG.md +18 -0
- package/compass.yml +47 -0
- package/dist/cjs/compositional/popup-content-top-layer.js +1 -3
- package/dist/cjs/popup-top-layer.js +1 -3
- package/dist/cjs/reposition-on-update.js +8 -2
- package/dist/es2019/compositional/popup-content-top-layer.js +1 -3
- package/dist/es2019/popup-top-layer.js +1 -3
- package/dist/es2019/reposition-on-update.js +8 -2
- package/dist/esm/compositional/popup-content-top-layer.js +1 -3
- package/dist/esm/popup-top-layer.js +1 -3
- package/dist/esm/reposition-on-update.js +8 -2
- package/package.json +13 -13
- package/popup.docs.tsx +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaskit/popup
|
|
2
2
|
|
|
3
|
+
## 5.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`7793dc62dd564`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7793dc62dd564) -
|
|
8
|
+
Internal refactor of upcoming top-layer usage
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
11
|
+
## 5.1.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [`662546a79c2bc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/662546a79c2bc) -
|
|
16
|
+
Guard the `update()` call in `RepositionOnUpdate` so it is only invoked when the Popper
|
|
17
|
+
render-prop `update` is a function. On Safari the Popper instance can be undefined when the layout
|
|
18
|
+
effect fires, which previously threw `TypeError: e.update is not a function` and left consumers
|
|
19
|
+
(such as the Jira status transition popup) stuck with an indefinite spinner.
|
|
20
|
+
|
|
3
21
|
## 5.1.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
package/compass.yml
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
configVersion: 1
|
|
2
|
+
id: ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:component/c5751cc6-3513-4070-9deb-af31e86aed34/80e5b53f-4a74-4009-bfc1-2c8685b672be
|
|
3
|
+
name: '@atlaskit/popup'
|
|
4
|
+
ownerId: ari:cloud:teams::team/814283d6-8695-4329-b2f8-d78b2645722f # Design System Team (ADS)
|
|
5
|
+
labels:
|
|
6
|
+
- platform-code
|
|
7
|
+
- platform-afm
|
|
8
|
+
typeId: OTHER
|
|
9
|
+
fields:
|
|
10
|
+
tier: 4
|
|
11
|
+
lifecycle: Active
|
|
12
|
+
isMonorepoProject: true
|
|
13
|
+
links:
|
|
14
|
+
- name: Root Repository
|
|
15
|
+
type: REPOSITORY
|
|
16
|
+
url: https://bitbucket.org/atlassian/atlassian-frontend-monorepo/src/master
|
|
17
|
+
- name: Slack Channel
|
|
18
|
+
type: CHAT_CHANNEL
|
|
19
|
+
url: https://atlassian.enterprise.slack.com/archives/CFJ9DU39U # #help-design-system
|
|
20
|
+
- name: Popup
|
|
21
|
+
type: REPOSITORY
|
|
22
|
+
url: https://bitbucket.org/atlassian/atlassian-frontend-monorepo/src/master/platform/packages/design-system/popup
|
|
23
|
+
customFields:
|
|
24
|
+
- name: Department
|
|
25
|
+
type: text
|
|
26
|
+
value: Eng - Design System Fundamentals
|
|
27
|
+
- name: Technical Owner
|
|
28
|
+
type: user
|
|
29
|
+
value: ari:cloud:identity::user/557058:86a9b692-7997-49cb-9984-080801b1de91 # Jared Crowe
|
|
30
|
+
- name: Reviewer Team
|
|
31
|
+
type: text
|
|
32
|
+
value: ari:cloud:teams::team/be19136e-6275-419f-be0c-fcee844b8684 # Design System Engineers
|
|
33
|
+
- name: Required Reviewers Opt In
|
|
34
|
+
type: boolean
|
|
35
|
+
value: true
|
|
36
|
+
- name: Reviewer Selection Mechanism
|
|
37
|
+
type: text
|
|
38
|
+
value: random(3)
|
|
39
|
+
- name: Required Reviewer Approvals
|
|
40
|
+
type: number
|
|
41
|
+
value: 1
|
|
42
|
+
- name: Trusted Committers
|
|
43
|
+
type: text
|
|
44
|
+
value: ari:cloud:teams::team/814283d6-8695-4329-b2f8-d78b2645722f # Design System Team (ADS)
|
|
45
|
+
- name: Trusted Reviewer Teams
|
|
46
|
+
type: text
|
|
47
|
+
value: ari:cloud:teams::team/42f4416b-e028-4daa-b2a5-afe213ac75e1 # Design System Designers
|
|
@@ -13,7 +13,6 @@ var React = _react;
|
|
|
13
13
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
14
14
|
var _runtime = require("@compiled/react/runtime");
|
|
15
15
|
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
16
|
-
var _animations = require("@atlaskit/top-layer/animations");
|
|
17
16
|
var _placementMap = require("@atlaskit/top-layer/placement-map");
|
|
18
17
|
var _popover = require("@atlaskit/top-layer/popover");
|
|
19
18
|
var _popoverSurface = require("@atlaskit/top-layer/popover-surface");
|
|
@@ -23,7 +22,6 @@ var _topLayerBridge = require("../internal/top-layer-bridge");
|
|
|
23
22
|
var _triggerRefObjectContext = require("./trigger-ref-object-context");
|
|
24
23
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
25
24
|
var overflowAutoStyles = null;
|
|
26
|
-
var animation = (0, _animations.popupMotion)();
|
|
27
25
|
|
|
28
26
|
// Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
|
|
29
27
|
var EMPTY_STYLE = {};
|
|
@@ -189,7 +187,7 @@ function PopupContentTopLayer(_ref) {
|
|
|
189
187
|
ref: popoverRef
|
|
190
188
|
}, roleProps, {
|
|
191
189
|
isOpen: isOpen,
|
|
192
|
-
animate:
|
|
190
|
+
animate: true,
|
|
193
191
|
placement: topLayerPlacement,
|
|
194
192
|
onClose: handleOnClose,
|
|
195
193
|
testId: testId && "".concat(testId, "--content")
|
|
@@ -13,7 +13,6 @@ var React = _react;
|
|
|
13
13
|
var _runtime = require("@compiled/react/runtime");
|
|
14
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
15
|
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
16
|
-
var _animations = require("@atlaskit/top-layer/animations");
|
|
17
16
|
var _getAriaForTrigger = require("@atlaskit/top-layer/get-aria-for-trigger");
|
|
18
17
|
var _placementMap = require("@atlaskit/top-layer/placement-map");
|
|
19
18
|
var _popover = require("@atlaskit/top-layer/popover");
|
|
@@ -27,7 +26,6 @@ var contentOverflowStyles = {
|
|
|
27
26
|
fitViewport: "_1reo1wug _18m91wug",
|
|
28
27
|
default: ""
|
|
29
28
|
};
|
|
30
|
-
var animation = (0, _animations.popupMotion)();
|
|
31
29
|
|
|
32
30
|
// Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
|
|
33
31
|
var EMPTY_STYLE = {};
|
|
@@ -234,7 +232,7 @@ var PopupTopLayer = exports.PopupTopLayer = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
234
232
|
}, roleProps, {
|
|
235
233
|
isOpen: isOpen,
|
|
236
234
|
onClose: handleOnClose,
|
|
237
|
-
animate:
|
|
235
|
+
animate: true,
|
|
238
236
|
placement: topLayerPlacement,
|
|
239
237
|
testId: testId && "".concat(testId, "--content")
|
|
240
238
|
}), Container ? /*#__PURE__*/React.createElement(Container, {
|
|
@@ -18,8 +18,14 @@ var RepositionOnUpdate = exports.RepositionOnUpdate = function RepositionOnUpdat
|
|
|
18
18
|
isFirstRenderRef.current = false;
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
|
-
// callback function from popper that repositions pop-up on content Update
|
|
22
|
-
update
|
|
21
|
+
// callback function from popper that repositions pop-up on content Update.
|
|
22
|
+
// Guard against `update` being undefined: on Safari the Popper instance may
|
|
23
|
+
// not be fully initialised when this layout effect fires, in which case the
|
|
24
|
+
// render-prop `update` is undefined and calling it throws
|
|
25
|
+
// `TypeError: e.update is not a function`.
|
|
26
|
+
if (typeof update === 'function') {
|
|
27
|
+
update();
|
|
28
|
+
}
|
|
23
29
|
}, [update]);
|
|
24
30
|
|
|
25
31
|
// wrapping in fragment to make TS happy (known issue with FC returning children)
|
|
@@ -5,7 +5,6 @@ import * as React from 'react';
|
|
|
5
5
|
import { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
|
|
6
6
|
import { ax, ix } from '@compiled/react/runtime';
|
|
7
7
|
import noop from '@atlaskit/ds-lib/noop';
|
|
8
|
-
import { popupMotion } from '@atlaskit/top-layer/animations';
|
|
9
8
|
import { fromLegacyPlacement } from '@atlaskit/top-layer/placement-map';
|
|
10
9
|
import { createPopoverCloseEvent, Popover } from '@atlaskit/top-layer/popover';
|
|
11
10
|
import { PopoverSurface } from '@atlaskit/top-layer/popover-surface';
|
|
@@ -14,7 +13,6 @@ import { useWidthFromAnchor } from '@atlaskit/top-layer/use-width-from-anchor';
|
|
|
14
13
|
import { useRoleProps } from '../internal/top-layer-bridge';
|
|
15
14
|
import { TriggerRefObjectContext } from './trigger-ref-object-context';
|
|
16
15
|
const overflowAutoStyles = null;
|
|
17
|
-
const animation = popupMotion();
|
|
18
16
|
|
|
19
17
|
// Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
|
|
20
18
|
const EMPTY_STYLE = {};
|
|
@@ -197,7 +195,7 @@ export function PopupContentTopLayer({
|
|
|
197
195
|
ref: popoverRef
|
|
198
196
|
}, roleProps, {
|
|
199
197
|
isOpen: isOpen,
|
|
200
|
-
animate:
|
|
198
|
+
animate: true,
|
|
201
199
|
placement: topLayerPlacement,
|
|
202
200
|
onClose: handleOnClose,
|
|
203
201
|
testId: testId && `${testId}--content`
|
|
@@ -5,7 +5,6 @@ import * as React from 'react';
|
|
|
5
5
|
import { ax, ix } from "@compiled/react/runtime";
|
|
6
6
|
import { Fragment, memo, useCallback, useEffect, useMemo, useRef } from 'react';
|
|
7
7
|
import noop from '@atlaskit/ds-lib/noop';
|
|
8
|
-
import { popupMotion } from '@atlaskit/top-layer/animations';
|
|
9
8
|
import { getAriaForTrigger } from '@atlaskit/top-layer/get-aria-for-trigger';
|
|
10
9
|
import { fromLegacyPlacement } from '@atlaskit/top-layer/placement-map';
|
|
11
10
|
import { createPopoverCloseEvent, Popover } from '@atlaskit/top-layer/popover';
|
|
@@ -18,7 +17,6 @@ const contentOverflowStyles = {
|
|
|
18
17
|
fitViewport: "_1reo1wug _18m91wug",
|
|
19
18
|
default: ""
|
|
20
19
|
};
|
|
21
|
-
const animation = popupMotion();
|
|
22
20
|
|
|
23
21
|
// Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
|
|
24
22
|
const EMPTY_STYLE = {};
|
|
@@ -244,7 +242,7 @@ export const PopupTopLayer = /*#__PURE__*/memo(function PopupTopLayer({
|
|
|
244
242
|
}, roleProps, {
|
|
245
243
|
isOpen: isOpen,
|
|
246
244
|
onClose: handleOnClose,
|
|
247
|
-
animate:
|
|
245
|
+
animate: true,
|
|
248
246
|
placement: topLayerPlacement,
|
|
249
247
|
testId: testId && `${testId}--content`
|
|
250
248
|
}), Container ? /*#__PURE__*/React.createElement(Container, {
|
|
@@ -11,8 +11,14 @@ export const RepositionOnUpdate = ({
|
|
|
11
11
|
isFirstRenderRef.current = false;
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
|
-
// callback function from popper that repositions pop-up on content Update
|
|
15
|
-
update
|
|
14
|
+
// callback function from popper that repositions pop-up on content Update.
|
|
15
|
+
// Guard against `update` being undefined: on Safari the Popper instance may
|
|
16
|
+
// not be fully initialised when this layout effect fires, in which case the
|
|
17
|
+
// render-prop `update` is undefined and calling it throws
|
|
18
|
+
// `TypeError: e.update is not a function`.
|
|
19
|
+
if (typeof update === 'function') {
|
|
20
|
+
update();
|
|
21
|
+
}
|
|
16
22
|
}, [update]);
|
|
17
23
|
|
|
18
24
|
// wrapping in fragment to make TS happy (known issue with FC returning children)
|
|
@@ -5,7 +5,6 @@ import * as React from 'react';
|
|
|
5
5
|
import { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
|
|
6
6
|
import { ax, ix } from '@compiled/react/runtime';
|
|
7
7
|
import noop from '@atlaskit/ds-lib/noop';
|
|
8
|
-
import { popupMotion } from '@atlaskit/top-layer/animations';
|
|
9
8
|
import { fromLegacyPlacement } from '@atlaskit/top-layer/placement-map';
|
|
10
9
|
import { createPopoverCloseEvent, Popover } from '@atlaskit/top-layer/popover';
|
|
11
10
|
import { PopoverSurface } from '@atlaskit/top-layer/popover-surface';
|
|
@@ -14,7 +13,6 @@ import { useWidthFromAnchor } from '@atlaskit/top-layer/use-width-from-anchor';
|
|
|
14
13
|
import { useRoleProps } from '../internal/top-layer-bridge';
|
|
15
14
|
import { TriggerRefObjectContext } from './trigger-ref-object-context';
|
|
16
15
|
var overflowAutoStyles = null;
|
|
17
|
-
var animation = popupMotion();
|
|
18
16
|
|
|
19
17
|
// Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
|
|
20
18
|
var EMPTY_STYLE = {};
|
|
@@ -180,7 +178,7 @@ export function PopupContentTopLayer(_ref) {
|
|
|
180
178
|
ref: popoverRef
|
|
181
179
|
}, roleProps, {
|
|
182
180
|
isOpen: isOpen,
|
|
183
|
-
animate:
|
|
181
|
+
animate: true,
|
|
184
182
|
placement: topLayerPlacement,
|
|
185
183
|
onClose: handleOnClose,
|
|
186
184
|
testId: testId && "".concat(testId, "--content")
|
|
@@ -5,7 +5,6 @@ import * as React from 'react';
|
|
|
5
5
|
import { ax, ix } from "@compiled/react/runtime";
|
|
6
6
|
import { Fragment, memo, useCallback, useEffect, useMemo, useRef } from 'react';
|
|
7
7
|
import noop from '@atlaskit/ds-lib/noop';
|
|
8
|
-
import { popupMotion } from '@atlaskit/top-layer/animations';
|
|
9
8
|
import { getAriaForTrigger } from '@atlaskit/top-layer/get-aria-for-trigger';
|
|
10
9
|
import { fromLegacyPlacement } from '@atlaskit/top-layer/placement-map';
|
|
11
10
|
import { createPopoverCloseEvent, Popover } from '@atlaskit/top-layer/popover';
|
|
@@ -18,7 +17,6 @@ var contentOverflowStyles = {
|
|
|
18
17
|
fitViewport: "_1reo1wug _18m91wug",
|
|
19
18
|
default: ""
|
|
20
19
|
};
|
|
21
|
-
var animation = popupMotion();
|
|
22
20
|
|
|
23
21
|
// Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
|
|
24
22
|
var EMPTY_STYLE = {};
|
|
@@ -225,7 +223,7 @@ export var PopupTopLayer = /*#__PURE__*/memo(function PopupTopLayer(_ref) {
|
|
|
225
223
|
}, roleProps, {
|
|
226
224
|
isOpen: isOpen,
|
|
227
225
|
onClose: handleOnClose,
|
|
228
|
-
animate:
|
|
226
|
+
animate: true,
|
|
229
227
|
placement: topLayerPlacement,
|
|
230
228
|
testId: testId && "".concat(testId, "--content")
|
|
231
229
|
}), Container ? /*#__PURE__*/React.createElement(Container, {
|
|
@@ -10,8 +10,14 @@ export var RepositionOnUpdate = function RepositionOnUpdate(_ref) {
|
|
|
10
10
|
isFirstRenderRef.current = false;
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
-
// callback function from popper that repositions pop-up on content Update
|
|
14
|
-
update
|
|
13
|
+
// callback function from popper that repositions pop-up on content Update.
|
|
14
|
+
// Guard against `update` being undefined: on Safari the Popper instance may
|
|
15
|
+
// not be fully initialised when this layout effect fires, in which case the
|
|
16
|
+
// render-prop `update` is undefined and calling it throws
|
|
17
|
+
// `TypeError: e.update is not a function`.
|
|
18
|
+
if (typeof update === 'function') {
|
|
19
|
+
update();
|
|
20
|
+
}
|
|
15
21
|
}, [update]);
|
|
16
22
|
|
|
17
23
|
// wrapping in fragment to make TS happy (known issue with FC returning children)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/popup",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.2",
|
|
4
4
|
"description": "A popup displays brief content in an overlay.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -34,14 +34,14 @@
|
|
|
34
34
|
"@atlaskit/css": "^1.0.0",
|
|
35
35
|
"@atlaskit/ds-lib": "^8.0.0",
|
|
36
36
|
"@atlaskit/layering": "^4.1.0",
|
|
37
|
-
"@atlaskit/motion": "^7.
|
|
37
|
+
"@atlaskit/motion": "^7.3.0",
|
|
38
38
|
"@atlaskit/platform-feature-flags": "^2.0.0",
|
|
39
|
-
"@atlaskit/popper": "^8.
|
|
39
|
+
"@atlaskit/popper": "^8.3.0",
|
|
40
40
|
"@atlaskit/portal": "^6.1.0",
|
|
41
|
-
"@atlaskit/primitives": "^20.
|
|
41
|
+
"@atlaskit/primitives": "^20.6.0",
|
|
42
42
|
"@atlaskit/react-compiler-gating": "^0.2.0",
|
|
43
|
-
"@atlaskit/tokens": "^15.
|
|
44
|
-
"@atlaskit/top-layer": "^1.
|
|
43
|
+
"@atlaskit/tokens": "^15.8.0",
|
|
44
|
+
"@atlaskit/top-layer": "^1.8.0",
|
|
45
45
|
"@babel/runtime": "^7.0.0",
|
|
46
46
|
"@compiled/react": "^0.20.0",
|
|
47
47
|
"bind-event-listener": "^3.0.0",
|
|
@@ -57,21 +57,21 @@
|
|
|
57
57
|
"@af/accessibility-testing": "workspace:^",
|
|
58
58
|
"@af/integration-testing": "workspace:^",
|
|
59
59
|
"@af/visual-regression": "workspace:^",
|
|
60
|
-
"@atlaskit/button": "^24.
|
|
60
|
+
"@atlaskit/button": "^24.3.0",
|
|
61
61
|
"@atlaskit/code": "^18.2.0",
|
|
62
|
-
"@atlaskit/docs": "^12.
|
|
62
|
+
"@atlaskit/docs": "^12.1.0",
|
|
63
63
|
"@atlaskit/form": "^16.1.0",
|
|
64
|
-
"@atlaskit/heading": "^6.
|
|
65
|
-
"@atlaskit/icon": "^
|
|
66
|
-
"@atlaskit/link": "^4.
|
|
64
|
+
"@atlaskit/heading": "^6.2.0",
|
|
65
|
+
"@atlaskit/icon": "^37.0.0",
|
|
66
|
+
"@atlaskit/link": "^4.3.0",
|
|
67
67
|
"@atlaskit/modal-dialog": "^16.1.0",
|
|
68
68
|
"@atlaskit/section-message": "^9.2.0",
|
|
69
69
|
"@atlaskit/textfield": "^9.1.0",
|
|
70
70
|
"@atlaskit/toggle": "^17.1.0",
|
|
71
|
-
"@atlassian/feature-flags-test-utils": "^1.
|
|
71
|
+
"@atlassian/feature-flags-test-utils": "^1.2.0",
|
|
72
72
|
"@atlassian/ssr-tests": "workspace:^",
|
|
73
73
|
"@atlassian/structured-docs-types": "workspace:^",
|
|
74
|
-
"@atlassian/testing-library": "^0.
|
|
74
|
+
"@atlassian/testing-library": "^0.11.0",
|
|
75
75
|
"@testing-library/react": "^16.3.0",
|
|
76
76
|
"@testing-library/user-event": "^14.4.3",
|
|
77
77
|
"ast-types": "^0.13.3",
|
package/popup.docs.tsx
CHANGED
|
@@ -8,10 +8,13 @@ const documentation: StructuredContentSource = {
|
|
|
8
8
|
name: 'Popup',
|
|
9
9
|
description: 'A component for displaying popup content relative to a trigger element.',
|
|
10
10
|
status: 'general-availability',
|
|
11
|
+
designSource: {
|
|
12
|
+
figmaUrl: 'https://go.atlassian.com/figma-library-ads-82088-103357',
|
|
13
|
+
},
|
|
11
14
|
import: {
|
|
12
15
|
name: 'Popup',
|
|
13
|
-
package: '@atlaskit/popup',
|
|
14
|
-
type: '
|
|
16
|
+
package: '@atlaskit/popup/popup',
|
|
17
|
+
type: 'named',
|
|
15
18
|
packagePath: path.resolve(__dirname),
|
|
16
19
|
packageJson: require('./package.json'),
|
|
17
20
|
},
|