@ndla/safelink 4.1.0 → 4.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/README.md +1 -1
- package/es/SafeLink.js +3 -4
- package/lib/SafeLink.js +3 -4
- package/package.json +3 -4
package/README.md
CHANGED
package/es/SafeLink.js
CHANGED
|
@@ -20,15 +20,14 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
20
20
|
import React, { forwardRef, useContext } from 'react';
|
|
21
21
|
import { Link } from 'react-router-dom';
|
|
22
22
|
import { Launch } from '@ndla/icons/common';
|
|
23
|
-
import isString from 'lodash/isString';
|
|
24
23
|
import MissingRouterContext from './MissingRouterContext';
|
|
25
24
|
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
26
25
|
import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
27
26
|
var isExternalLink = function isExternalLink(to) {
|
|
28
|
-
return to &&
|
|
27
|
+
return to && typeof to === 'string' && (to.startsWith('https://') || to.startsWith('http://'));
|
|
29
28
|
};
|
|
30
29
|
export var isOldNdlaLink = function isOldNdlaLink(to) {
|
|
31
|
-
return to &&
|
|
30
|
+
return to && typeof to === 'string' && to.match(/(.*)\/?node\/(\d+).*/) !== null;
|
|
32
31
|
};
|
|
33
32
|
var LaunchIcon = /*#__PURE__*/_styled(Launch, {
|
|
34
33
|
target: "e2rl38a0",
|
|
@@ -39,7 +38,7 @@ var LaunchIcon = /*#__PURE__*/_styled(Launch, {
|
|
|
39
38
|
} : {
|
|
40
39
|
name: "142nq9z",
|
|
41
40
|
styles: "margin-left:6px;height:auto;width:auto;margin-top:1px",
|
|
42
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
41
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIEhUTUxBdHRyaWJ1dGVzLCBNdXRhYmxlUmVmT2JqZWN0LCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgTWlzc2luZ1JvdXRlckNvbnRleHQgZnJvbSAnLi9NaXNzaW5nUm91dGVyQ29udGV4dCc7XG5cbmNvbnN0IGlzRXh0ZXJuYWxMaW5rID0gKHRvPzogTGlua1Byb3BzWyd0byddKSA9PlxuICB0byAmJiB0eXBlb2YgdG8gPT09ICdzdHJpbmcnICYmICh0by5zdGFydHNXaXRoKCdodHRwczovLycpIHx8IHRvLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSk7XG5cbmV4cG9ydCBjb25zdCBpc09sZE5kbGFMaW5rID0gKHRvPzogTGlua1Byb3BzWyd0byddKSA9PlxuICB0byAmJiB0eXBlb2YgdG8gPT09ICdzdHJpbmcnICYmIHRvLm1hdGNoKC8oLiopXFwvP25vZGVcXC8oXFxkKykuKi8pICE9PSBudWxsO1xuXG5jb25zdCBMYXVuY2hJY29uID0gc3R5bGVkKExhdW5jaClgXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDFweDtcbmA7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNob3dOZXdXaW5kb3dJY29uPzogYm9vbGVhbjtcbiAgcmVmPzogTXV0YWJsZVJlZk9iamVjdDxIVE1MQW5jaG9yRWxlbWVudCB8IG51bGw+O1xuICBhc0FuY2hvcj86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTYWZlTGlua1Byb3BzID0gUHJvcHMgJiBMaW5rUHJvcHMgJiBIVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD47XG5cbi8vIEZhbGxiYWNrIHRvIG5vcm1hbCBsaW5rIGlmIGFwcCBpcyBtaXNzaW5nIFJvdXRlckNvbnRleHQsIGxpbmsgaXMgZXh0ZXJuYWwgb3IgaXMgb2xkIG5kbGEgbGlua1xuXG5jb25zdCBTYWZlTGluayA9IGZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIFNhZmVMaW5rUHJvcHM+KFxuICAoeyB0bywgcmVwbGFjZSwgZGlzYWJsZWQsIGNoaWxkcmVuLCBzaG93TmV3V2luZG93SWNvbiwgdGFiSW5kZXgsIGFzQW5jaG9yLCAuLi5yZXN0IH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IGlzTWlzc2luZ1JvdXRlckNvbnRleHQgPSB1c2VDb250ZXh0KE1pc3NpbmdSb3V0ZXJDb250ZXh0KTtcblxuICAgIGlmIChpc01pc3NpbmdSb3V0ZXJDb250ZXh0IHx8IGlzRXh0ZXJuYWxMaW5rKHRvKSB8fCBpc09sZE5kbGFMaW5rKHRvKSB8fCBhc0FuY2hvciB8fCBkaXNhYmxlZCkge1xuICAgICAgY29uc3QgaHJlZiA9IHR5cGVvZiB0byA9PT0gJ3N0cmluZycgPyB0byA6ICcjJztcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxhXG4gICAgICAgICAgaHJlZj17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBocmVmfVxuICAgICAgICAgIHJvbGU9e2Rpc2FibGVkID8gJ2xpbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICB7c2hvd05ld1dpbmRvd0ljb24gJiYgPExhdW5jaEljb24gc3R5bGU9e3sgdmVydGljYWxBbGlnbjogJ3RleHQtdG9wJyB9fSAvPn1cbiAgICAgICAgPC9hPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgLy8gUlI2IGxpbmsgaW1tZWRpYXRlbHkgZmFpbHMgaWYgdG8gaXMgc29tZWhvdyB1bmRlZmluZWQsIHNvIHdlIHByb3ZpZGUgYW4gZW1wdHkgZmFsbGJhY2sgdG8gcmVjb3Zlci5cbiAgICAgIDxMaW5rIHJlZj17cmVmfSB0YWJJbmRleD17dGFiSW5kZXggPz8gMH0gdG89e3RvID8/ICcnfSByZXBsYWNlPXtyZXBsYWNlfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge3Nob3dOZXdXaW5kb3dJY29uICYmIDxMYXVuY2hJY29uIHN0eWxlPXt7IHZlcnRpY2FsQWxpZ246ICd0ZXh0LXRvcCcgfX0gLz59XG4gICAgICA8L0xpbms+XG4gICAgKTtcbiAgfSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmVMaW5rO1xuIl19 */",
|
|
43
42
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
44
43
|
});
|
|
45
44
|
// Fallback to normal link if app is missing RouterContext, link is external or is old ndla link
|
package/lib/SafeLink.js
CHANGED
|
@@ -9,7 +9,6 @@ var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _reactRouterDom = require("react-router-dom");
|
|
11
11
|
var _common = require("@ndla/icons/common");
|
|
12
|
-
var _isString = _interopRequireDefault(require("lodash/isString"));
|
|
13
12
|
var _MissingRouterContext = _interopRequireDefault(require("./MissingRouterContext"));
|
|
14
13
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
15
14
|
var _excluded = ["to", "replace", "disabled", "children", "showNewWindowIcon", "tabIndex", "asAnchor"];
|
|
@@ -31,10 +30,10 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
31
30
|
*
|
|
32
31
|
*/
|
|
33
32
|
var isExternalLink = function isExternalLink(to) {
|
|
34
|
-
return to &&
|
|
33
|
+
return to && typeof to === 'string' && (to.startsWith('https://') || to.startsWith('http://'));
|
|
35
34
|
};
|
|
36
35
|
var isOldNdlaLink = function isOldNdlaLink(to) {
|
|
37
|
-
return to &&
|
|
36
|
+
return to && typeof to === 'string' && to.match(/(.*)\/?node\/(\d+).*/) !== null;
|
|
38
37
|
};
|
|
39
38
|
exports.isOldNdlaLink = isOldNdlaLink;
|
|
40
39
|
var LaunchIcon = /*#__PURE__*/(0, _base["default"])(_common.Launch, {
|
|
@@ -46,7 +45,7 @@ var LaunchIcon = /*#__PURE__*/(0, _base["default"])(_common.Launch, {
|
|
|
46
45
|
} : {
|
|
47
46
|
name: "142nq9z",
|
|
48
47
|
styles: "margin-left:6px;height:auto;width:auto;margin-top:1px",
|
|
49
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
48
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIEhUTUxBdHRyaWJ1dGVzLCBNdXRhYmxlUmVmT2JqZWN0LCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgTWlzc2luZ1JvdXRlckNvbnRleHQgZnJvbSAnLi9NaXNzaW5nUm91dGVyQ29udGV4dCc7XG5cbmNvbnN0IGlzRXh0ZXJuYWxMaW5rID0gKHRvPzogTGlua1Byb3BzWyd0byddKSA9PlxuICB0byAmJiB0eXBlb2YgdG8gPT09ICdzdHJpbmcnICYmICh0by5zdGFydHNXaXRoKCdodHRwczovLycpIHx8IHRvLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSk7XG5cbmV4cG9ydCBjb25zdCBpc09sZE5kbGFMaW5rID0gKHRvPzogTGlua1Byb3BzWyd0byddKSA9PlxuICB0byAmJiB0eXBlb2YgdG8gPT09ICdzdHJpbmcnICYmIHRvLm1hdGNoKC8oLiopXFwvP25vZGVcXC8oXFxkKykuKi8pICE9PSBudWxsO1xuXG5jb25zdCBMYXVuY2hJY29uID0gc3R5bGVkKExhdW5jaClgXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDFweDtcbmA7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNob3dOZXdXaW5kb3dJY29uPzogYm9vbGVhbjtcbiAgcmVmPzogTXV0YWJsZVJlZk9iamVjdDxIVE1MQW5jaG9yRWxlbWVudCB8IG51bGw+O1xuICBhc0FuY2hvcj86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTYWZlTGlua1Byb3BzID0gUHJvcHMgJiBMaW5rUHJvcHMgJiBIVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD47XG5cbi8vIEZhbGxiYWNrIHRvIG5vcm1hbCBsaW5rIGlmIGFwcCBpcyBtaXNzaW5nIFJvdXRlckNvbnRleHQsIGxpbmsgaXMgZXh0ZXJuYWwgb3IgaXMgb2xkIG5kbGEgbGlua1xuXG5jb25zdCBTYWZlTGluayA9IGZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIFNhZmVMaW5rUHJvcHM+KFxuICAoeyB0bywgcmVwbGFjZSwgZGlzYWJsZWQsIGNoaWxkcmVuLCBzaG93TmV3V2luZG93SWNvbiwgdGFiSW5kZXgsIGFzQW5jaG9yLCAuLi5yZXN0IH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IGlzTWlzc2luZ1JvdXRlckNvbnRleHQgPSB1c2VDb250ZXh0KE1pc3NpbmdSb3V0ZXJDb250ZXh0KTtcblxuICAgIGlmIChpc01pc3NpbmdSb3V0ZXJDb250ZXh0IHx8IGlzRXh0ZXJuYWxMaW5rKHRvKSB8fCBpc09sZE5kbGFMaW5rKHRvKSB8fCBhc0FuY2hvciB8fCBkaXNhYmxlZCkge1xuICAgICAgY29uc3QgaHJlZiA9IHR5cGVvZiB0byA9PT0gJ3N0cmluZycgPyB0byA6ICcjJztcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxhXG4gICAgICAgICAgaHJlZj17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBocmVmfVxuICAgICAgICAgIHJvbGU9e2Rpc2FibGVkID8gJ2xpbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICB7c2hvd05ld1dpbmRvd0ljb24gJiYgPExhdW5jaEljb24gc3R5bGU9e3sgdmVydGljYWxBbGlnbjogJ3RleHQtdG9wJyB9fSAvPn1cbiAgICAgICAgPC9hPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgLy8gUlI2IGxpbmsgaW1tZWRpYXRlbHkgZmFpbHMgaWYgdG8gaXMgc29tZWhvdyB1bmRlZmluZWQsIHNvIHdlIHByb3ZpZGUgYW4gZW1wdHkgZmFsbGJhY2sgdG8gcmVjb3Zlci5cbiAgICAgIDxMaW5rIHJlZj17cmVmfSB0YWJJbmRleD17dGFiSW5kZXggPz8gMH0gdG89e3RvID8/ICcnfSByZXBsYWNlPXtyZXBsYWNlfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge3Nob3dOZXdXaW5kb3dJY29uICYmIDxMYXVuY2hJY29uIHN0eWxlPXt7IHZlcnRpY2FsQWxpZ246ICd0ZXh0LXRvcCcgfX0gLz59XG4gICAgICA8L0xpbms+XG4gICAgKTtcbiAgfSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmVMaW5rO1xuIl19 */",
|
|
50
49
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
51
50
|
});
|
|
52
51
|
// Fallback to normal link if app is missing RouterContext, link is external or is old ndla link
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/safelink",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.2",
|
|
4
4
|
"description": "SafeLink component for NDLA",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -26,18 +26,17 @@
|
|
|
26
26
|
"es"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@ndla/button": "^10.1.
|
|
29
|
+
"@ndla/button": "^10.1.2",
|
|
30
30
|
"@ndla/icons": "^2.3.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@emotion/react": "^11.10.4",
|
|
34
34
|
"@emotion/styled": "^11.10.4",
|
|
35
|
-
"lodash": "^4.17.20",
|
|
36
35
|
"react": "16.13.1 || ^17.0.0",
|
|
37
36
|
"react-router-dom": "^6.3.0"
|
|
38
37
|
},
|
|
39
38
|
"publishConfig": {
|
|
40
39
|
"access": "public"
|
|
41
40
|
},
|
|
42
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "e5a5fe7892ddafb32b82798589fce56016772ce0"
|
|
43
42
|
}
|