@atlaskit/smart-card 18.0.20 → 19.0.0

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 (152) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/cjs/client/index.js +6 -379
  3. package/dist/cjs/extractors/embed/index.js +2 -2
  4. package/dist/cjs/extractors/hover/extractMetadata.js +31 -0
  5. package/dist/cjs/index.js +7 -13
  6. package/dist/cjs/state/actions/constants.js +1 -13
  7. package/dist/cjs/state/actions/index.js +20 -22
  8. package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +2 -2
  9. package/dist/cjs/state/config/index.js +2 -2
  10. package/dist/cjs/state/helpers.js +1 -9
  11. package/dist/cjs/state/hooks/usePrefetch.js +2 -2
  12. package/dist/cjs/state/index.js +4 -4
  13. package/dist/cjs/state/renderers/index.js +2 -2
  14. package/dist/cjs/state/store/index.js +5 -5
  15. package/dist/cjs/utils/flexible.js +1 -1
  16. package/dist/cjs/utils/mocks.js +2 -2
  17. package/dist/cjs/utils/test-utils.js +2 -2
  18. package/dist/cjs/version.json +1 -1
  19. package/dist/cjs/view/HoverCard/index.js +11 -2
  20. package/dist/cjs/view/HoverCard/utils.js +36 -0
  21. package/dist/es2019/client/index.js +1 -214
  22. package/dist/es2019/extractors/embed/index.js +1 -1
  23. package/dist/es2019/extractors/hover/extractMetadata.js +18 -0
  24. package/dist/es2019/index.js +4 -4
  25. package/dist/es2019/state/actions/constants.js +0 -6
  26. package/dist/es2019/state/actions/index.js +4 -4
  27. package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +1 -1
  28. package/dist/es2019/state/config/index.js +1 -1
  29. package/dist/es2019/state/helpers.js +0 -5
  30. package/dist/es2019/state/hooks/usePrefetch.js +1 -1
  31. package/dist/es2019/state/index.js +1 -1
  32. package/dist/es2019/state/renderers/index.js +1 -1
  33. package/dist/es2019/state/store/index.js +2 -2
  34. package/dist/es2019/utils/flexible.js +1 -1
  35. package/dist/es2019/utils/mocks.js +1 -1
  36. package/dist/es2019/utils/test-utils.js +1 -1
  37. package/dist/es2019/version.json +1 -1
  38. package/dist/es2019/view/HoverCard/index.js +27 -18
  39. package/dist/es2019/view/HoverCard/utils.js +27 -0
  40. package/dist/esm/client/index.js +1 -360
  41. package/dist/esm/extractors/embed/index.js +1 -1
  42. package/dist/esm/extractors/hover/extractMetadata.js +22 -0
  43. package/dist/esm/index.js +4 -4
  44. package/dist/esm/state/actions/constants.js +0 -6
  45. package/dist/esm/state/actions/index.js +4 -4
  46. package/dist/esm/state/analytics/useSmartLinkAnalytics.js +1 -1
  47. package/dist/esm/state/config/index.js +1 -1
  48. package/dist/esm/state/helpers.js +0 -5
  49. package/dist/esm/state/hooks/usePrefetch.js +1 -1
  50. package/dist/esm/state/index.js +1 -1
  51. package/dist/esm/state/renderers/index.js +1 -1
  52. package/dist/esm/state/store/index.js +2 -2
  53. package/dist/esm/utils/flexible.js +1 -1
  54. package/dist/esm/utils/mocks.js +1 -1
  55. package/dist/esm/utils/test-utils.js +1 -1
  56. package/dist/esm/version.json +1 -1
  57. package/dist/esm/view/HoverCard/index.js +10 -3
  58. package/dist/esm/view/HoverCard/utils.js +27 -0
  59. package/dist/types/__tests_external__/page-objects/BaseCard.d.ts +1 -2
  60. package/dist/types/client/index.d.ts +1 -18
  61. package/dist/types/extractors/block/index.d.ts +1 -1
  62. package/dist/types/extractors/common/title-prefix/extractTitlePrefix.d.ts +1 -1
  63. package/dist/types/extractors/flexible/icon/extract-icon-renderer.d.ts +1 -1
  64. package/dist/types/extractors/flexible/icon/index.d.ts +1 -1
  65. package/dist/types/extractors/flexible/index.d.ts +1 -1
  66. package/dist/types/extractors/hover/extractMetadata.d.ts +3 -0
  67. package/dist/types/extractors/inline/index.d.ts +1 -1
  68. package/dist/types/index.d.ts +6 -6
  69. package/dist/types/model/invoke-opts.d.ts +1 -14
  70. package/dist/types/state/actions/constants.d.ts +0 -6
  71. package/dist/types/state/actions/types.d.ts +2 -13
  72. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +1 -2
  73. package/dist/types/state/config/index.d.ts +1 -1
  74. package/dist/types/state/helpers.d.ts +1 -3
  75. package/dist/types/state/hooks/useSmartLink.d.ts +6 -6
  76. package/dist/types/state/index.d.ts +3 -3
  77. package/dist/types/state/reducers/types.d.ts +1 -1
  78. package/dist/types/state/renderers/index.d.ts +1 -1
  79. package/dist/types/state/store/index.d.ts +2 -2
  80. package/dist/types/state/types.d.ts +1 -1
  81. package/dist/types/types.d.ts +2 -2
  82. package/dist/types/utils/analytics/analytics.d.ts +1 -1
  83. package/dist/types/utils/analytics/index.d.ts +1 -2
  84. package/dist/types/utils/performance.d.ts +1 -1
  85. package/dist/types/view/BlockCard/types.d.ts +1 -1
  86. package/dist/types/view/Card/types.d.ts +2 -3
  87. package/dist/types/view/FlexibleCard/types.d.ts +2 -2
  88. package/dist/types/view/FlexibleCard/utils.d.ts +1 -1
  89. package/dist/types/view/HoverCard/types.d.ts +5 -0
  90. package/dist/types/view/HoverCard/utils.d.ts +2 -0
  91. package/dist/types/view/InlineCard/types.d.ts +1 -1
  92. package/package.json +3 -9
  93. package/dist/cjs/client/api.js +0 -119
  94. package/dist/cjs/client/errors.js +0 -55
  95. package/dist/cjs/client/types/index.js +0 -5
  96. package/dist/cjs/client/types/requests.js +0 -5
  97. package/dist/cjs/client/types/responses.js +0 -31
  98. package/dist/cjs/client/utils/environments.js +0 -47
  99. package/dist/cjs/providers/editor/index.js +0 -283
  100. package/dist/cjs/providers/editor/transformer.js +0 -90
  101. package/dist/cjs/providers/editor/types.js +0 -5
  102. package/dist/cjs/state/actions/helpers.js +0 -18
  103. package/dist/cjs/state/context/index.js +0 -34
  104. package/dist/cjs/state/context/provider.js +0 -74
  105. package/dist/cjs/state/context/types.js +0 -5
  106. package/dist/cjs/state/reducers/index.js +0 -89
  107. package/dist/cjs/state/store/types.js +0 -5
  108. package/dist/es2019/client/api.js +0 -38
  109. package/dist/es2019/client/errors.js +0 -19
  110. package/dist/es2019/client/types/index.js +0 -1
  111. package/dist/es2019/client/types/requests.js +0 -1
  112. package/dist/es2019/client/types/responses.js +0 -19
  113. package/dist/es2019/client/utils/environments.js +0 -33
  114. package/dist/es2019/providers/editor/index.js +0 -82
  115. package/dist/es2019/providers/editor/transformer.js +0 -57
  116. package/dist/es2019/providers/editor/types.js +0 -1
  117. package/dist/es2019/state/actions/helpers.js +0 -8
  118. package/dist/es2019/state/context/index.js +0 -14
  119. package/dist/es2019/state/context/provider.js +0 -51
  120. package/dist/es2019/state/context/types.js +0 -1
  121. package/dist/es2019/state/reducers/index.js +0 -74
  122. package/dist/es2019/state/store/types.js +0 -1
  123. package/dist/esm/client/api.js +0 -98
  124. package/dist/esm/client/errors.js +0 -40
  125. package/dist/esm/client/types/index.js +0 -1
  126. package/dist/esm/client/types/requests.js +0 -1
  127. package/dist/esm/client/types/responses.js +0 -19
  128. package/dist/esm/client/utils/environments.js +0 -33
  129. package/dist/esm/providers/editor/index.js +0 -257
  130. package/dist/esm/providers/editor/transformer.js +0 -79
  131. package/dist/esm/providers/editor/types.js +0 -1
  132. package/dist/esm/state/actions/helpers.js +0 -9
  133. package/dist/esm/state/context/index.js +0 -14
  134. package/dist/esm/state/context/provider.js +0 -50
  135. package/dist/esm/state/context/types.js +0 -1
  136. package/dist/esm/state/reducers/index.js +0 -69
  137. package/dist/esm/state/store/types.js +0 -1
  138. package/dist/types/client/api.d.ts +0 -5
  139. package/dist/types/client/errors.d.ts +0 -9
  140. package/dist/types/client/types/index.d.ts +0 -13
  141. package/dist/types/client/types/requests.d.ts +0 -9
  142. package/dist/types/client/types/responses.d.ts +0 -19
  143. package/dist/types/client/utils/environments.d.ts +0 -12
  144. package/dist/types/providers/editor/index.d.ts +0 -22
  145. package/dist/types/providers/editor/transformer.d.ts +0 -8
  146. package/dist/types/providers/editor/types.d.ts +0 -19
  147. package/dist/types/state/actions/helpers.d.ts +0 -2
  148. package/dist/types/state/context/index.d.ts +0 -8
  149. package/dist/types/state/context/provider.d.ts +0 -5
  150. package/dist/types/state/context/types.d.ts +0 -39
  151. package/dist/types/state/reducers/index.d.ts +0 -4
  152. package/dist/types/state/store/types.d.ts +0 -18
@@ -1,50 +0,0 @@
1
- import React from 'react';
2
- import { useContext, useMemo } from 'react';
3
- import { createStore } from 'redux';
4
- import { cardReducer } from '../reducers';
5
- import { SmartCardContext } from '.';
6
- import CardClient from '../../client';
7
- import { extractPreview } from '../../extractors/common/preview';
8
- import { getUrl } from '../helpers';
9
- export function SmartCardProvider(_ref) {
10
- var storeOptions = _ref.storeOptions,
11
- customClient = _ref.client,
12
- customAuthFlow = _ref.authFlow,
13
- children = _ref.children,
14
- renderers = _ref.renderers;
15
- var parentContext = useContext(SmartCardContext);
16
- var providerValue = useMemo(function () {
17
- var _ref2 = storeOptions || {
18
- initialState: {}
19
- },
20
- initialState = _ref2.initialState;
21
-
22
- var client = customClient || new CardClient();
23
- var store = createStore(cardReducer, initialState);
24
- var authFlow = customAuthFlow || 'oauth2';
25
-
26
- var getPreview = function getPreview(url, platform) {
27
- var cardState = getUrl(store, url);
28
- return cardState.details ? extractPreview(cardState.details.data, platform) : undefined;
29
- };
30
-
31
- return {
32
- renderers: renderers,
33
- store: store,
34
- prefetchStore: {},
35
- connections: {
36
- client: client
37
- },
38
- config: {
39
- authFlow: authFlow
40
- },
41
- extractors: {
42
- getPreview: getPreview
43
- }
44
- };
45
- }, [customClient, customAuthFlow, storeOptions, renderers]);
46
- return /*#__PURE__*/React.createElement(SmartCardContext.Provider, {
47
- value: parentContext || providerValue
48
- }, children);
49
- }
50
- export default SmartCardProvider;
@@ -1 +0,0 @@
1
- export {};
@@ -1,69 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
- var _cardReducerMap;
4
-
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
-
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
-
9
- import * as actions from '../actions/constants';
10
- import { getStatus } from '../helpers';
11
- var cardReducerMap = (_cardReducerMap = {}, _defineProperty(_cardReducerMap, actions.ACTION_PENDING, function (_state, _ref) {
12
- var type = _ref.type;
13
- return {
14
- status: type
15
- };
16
- }), _defineProperty(_cardReducerMap, actions.ACTION_RESOLVING, function (state, _ref2) {
17
- var type = _ref2.type;
18
- return _objectSpread(_objectSpread({}, state), {}, {
19
- status: type
20
- });
21
- }), _defineProperty(_cardReducerMap, actions.ACTION_RESOLVED, function (state, _ref3) {
22
- var type = _ref3.type,
23
- payload = _ref3.payload;
24
- var nextDetails = payload;
25
-
26
- var nextState = _objectSpread({}, state);
27
-
28
- if (nextDetails) {
29
- nextState.status = getStatus(nextDetails);
30
- nextState.details = nextDetails;
31
- } else {
32
- // Keep the pre-existing data in the store. If there
33
- // is no data, the UI should handle this gracefully.
34
- nextState.status = type;
35
- }
36
-
37
- return nextState;
38
- }), _defineProperty(_cardReducerMap, actions.ACTION_ERROR, function (state, _ref4) {
39
- var type = _ref4.type,
40
- error = _ref4.error;
41
- return _objectSpread(_objectSpread({}, state), {}, {
42
- status: type,
43
- error: error
44
- });
45
- }), _defineProperty(_cardReducerMap, actions.ACTION_ERROR_FALLBACK, function (state, _ref5) {
46
- var type = _ref5.type,
47
- error = _ref5.error;
48
- return _objectSpread(_objectSpread({}, state), {}, {
49
- status: type,
50
- error: error
51
- });
52
- }), _cardReducerMap);
53
- export var cardReducer = function cardReducer(state, action) {
54
- if (cardReducerMap[action.type]) {
55
- var cardState = state[action.url]; // Card may have reached the same state on account of multiple of the same
56
- // URL being present in an editor session. E.g. page with N links to one resource.
57
-
58
- var hasSameStatus = cardState && cardState.status === action.type;
59
-
60
- if (hasSameStatus) {
61
- return state;
62
- } else {
63
- var nextState = cardReducerMap[action.type](cardState, action);
64
- return _objectSpread(_objectSpread({}, state), {}, _defineProperty({}, action.url, nextState));
65
- }
66
- }
67
-
68
- return state;
69
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import { JsonLd } from 'json-ld-types';
2
- export declare class NetworkError extends Error {
3
- constructor(error: any);
4
- }
5
- export declare function request<T = JsonLd.Response>(method: string, url: string, data?: any, headers?: HeadersInit): Promise<T>;
@@ -1,9 +0,0 @@
1
- import { ErrorType } from './types/responses';
2
- export declare type APIErrorKind = 'fatal' | 'auth' | 'error' | 'fallback';
3
- export declare class APIError extends Error {
4
- readonly kind: APIErrorKind;
5
- readonly hostname: string;
6
- readonly message: string;
7
- readonly type?: ErrorType | undefined;
8
- constructor(kind: APIErrorKind, hostname: string, message: string, type?: ErrorType | undefined);
9
- }
@@ -1,13 +0,0 @@
1
- import { JsonLd } from 'json-ld-types';
2
- import Environments from '../utils/environments';
3
- import { InvokePayload, ServerActionOpts } from '../../model/invoke-opts';
4
- export interface CardClient {
5
- fetchData(url: string): Promise<JsonLd.Response>;
6
- prefetchData(url: string): Promise<JsonLd.Response | undefined>;
7
- postData(data: InvokePayload<ServerActionOpts>): Promise<JsonLd.Response>;
8
- }
9
- export declare type ClientEnvironment = {
10
- baseUrl: string;
11
- resolverUrl: string;
12
- };
13
- export declare type EnvironmentsKeys = keyof typeof Environments;
@@ -1,9 +0,0 @@
1
- import { ServerActionOpts } from '../../model/invoke-opts';
2
- export interface ResolveRequest {
3
- resourceUrl: string;
4
- context?: string;
5
- }
6
- export interface BatchResolveRequest {
7
- resourceUrls: ResolveRequest[];
8
- }
9
- export declare type InvokeRequest = ServerActionOpts;
@@ -1,19 +0,0 @@
1
- import { JsonLd } from 'json-ld-types';
2
- export declare type BatchResponse = Array<SuccessResponse | ErrorResponse>;
3
- export declare type SuccessResponse = {
4
- status: number;
5
- body: JsonLd.Response;
6
- };
7
- export interface ErrorResponse {
8
- status: number;
9
- error: ErrorResponseBody;
10
- }
11
- export interface ErrorResponseBody {
12
- type: ServerErrorType;
13
- message: string;
14
- status: number;
15
- }
16
- export declare type ServerErrorType = 'ResolveBadRequestError' | 'ResolveAuthError' | 'ResolveUnsupportedError' | 'ResolveFailedError' | 'ResolveTimeoutError' | 'InternalServerError';
17
- export declare type ErrorType = ServerErrorType | 'UnexpectedError';
18
- export declare const isSuccessfulResponse: (response?: SuccessResponse | ErrorResponse | undefined) => response is SuccessResponse;
19
- export declare const isErrorResponse: (response: SuccessResponse | ErrorResponse) => response is ErrorResponse;
@@ -1,12 +0,0 @@
1
- export declare const BaseUrls: {
2
- dev: string;
3
- development: string;
4
- stg: string;
5
- staging: string;
6
- prd: string;
7
- prod: string;
8
- production: string;
9
- };
10
- export declare const getBaseUrl: (envKey?: "dev" | "development" | "stg" | "staging" | "prd" | "prod" | "production" | undefined) => string;
11
- export declare const getResolverUrl: (envKey?: "dev" | "development" | "stg" | "staging" | "prd" | "prod" | "production" | undefined) => string;
12
- export default BaseUrls;
@@ -1,22 +0,0 @@
1
- import 'setimmediate';
2
- import { CardAdf } from '@atlaskit/linking-common';
3
- import { CardProvider } from './types';
4
- import { CardAppearance } from '../../view/Card';
5
- import { EnvironmentsKeys } from '../../client/types';
6
- export declare class EditorCardProvider implements CardProvider {
7
- private baseUrl;
8
- private resolverUrl;
9
- private patterns?;
10
- private requestHeaders;
11
- private transformer;
12
- private patternLoader;
13
- constructor(envKey?: EnvironmentsKeys);
14
- private batchPatterns;
15
- private check;
16
- private fetchPatterns;
17
- findPattern(url: string): Promise<boolean>;
18
- resolve(url: string, appearance: CardAppearance): Promise<CardAdf>;
19
- }
20
- export declare const editorCardProvider: EditorCardProvider;
21
- export type { CardProvider, ORSCheckResponse } from './types';
22
- export type { CardAdf, InlineCardAdf, BlockCardAdf, EmbedCardAdf, } from '@atlaskit/linking-common';
@@ -1,8 +0,0 @@
1
- import { CardAdf } from '@atlaskit/linking-common';
2
- import { CardAppearance } from '../../view/Card';
3
- export declare class Transformer {
4
- private buildInlineAdf;
5
- private buildBlockAdf;
6
- private buildEmbedAdf;
7
- toAdf(url: string, appearance: CardAppearance): CardAdf;
8
- }
@@ -1,19 +0,0 @@
1
- import { CardAppearance } from '../../view/Card';
2
- export interface CardProvider {
3
- resolve(url: string, appearance: CardAppearance): Promise<any>;
4
- }
5
- export declare type ORSCheckResponse = {
6
- isSupported: boolean;
7
- };
8
- declare type ProviderPattern = {
9
- source: string;
10
- flags: string;
11
- };
12
- declare type Provider = {
13
- key: string;
14
- patterns: ProviderPattern[];
15
- };
16
- export declare type ORSProvidersResponse = {
17
- providers: Provider[];
18
- };
19
- export {};
@@ -1,2 +0,0 @@
1
- import { CardBaseActionCreator } from './types';
2
- export declare const cardAction: CardBaseActionCreator;
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- import { CardContext } from './types';
3
- import { SmartCardProvider, ProviderProps } from './provider';
4
- export declare const SmartCardContext: import("react").Context<CardContext | undefined>;
5
- export declare function useSmartLinkContext(): CardContext;
6
- export { SmartCardProvider };
7
- export type { ProviderProps, CardContext };
8
- export default SmartCardContext;
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- import { CardProviderProps } from './types';
3
- export declare function SmartCardProvider({ storeOptions, client: customClient, authFlow: customAuthFlow, children, renderers, }: CardProviderProps): JSX.Element;
4
- export type { CardProviderProps as ProviderProps };
5
- export default SmartCardProvider;
@@ -1,39 +0,0 @@
1
- /// <reference types="react" />
2
- import { Store } from 'redux';
3
- import { LinkPreview } from '@atlaskit/linking-common';
4
- import { CardStore, CardConnections } from '../store/types';
5
- import { CardPlatform, CardAppearance } from '../../view/Card';
6
- import CardClient from '../../client';
7
- export interface CardAuthFlowOpts {
8
- authFlow?: 'oauth2' | 'disabled';
9
- }
10
- export interface CardContext {
11
- store: Store<CardStore>;
12
- prefetchStore: Record<string, boolean>;
13
- connections: CardConnections;
14
- config: CardProviderCacheOpts & CardAuthFlowOpts;
15
- extractors: {
16
- getPreview: (url: string, platform?: CardPlatform) => LinkPreview | undefined;
17
- };
18
- renderers?: CardProviderRenderers;
19
- }
20
- /** @deprecated Feature removed (EDM-2205) */
21
- export interface CardProviderCacheOpts {
22
- maxAge?: number;
23
- maxLoadingDelay?: number;
24
- }
25
- export interface CardProviderStoreOpts {
26
- initialState: CardStore;
27
- }
28
- export interface CardProviderRenderers {
29
- adf?: (adf: string) => React.ReactNode;
30
- emoji?: (emoji?: string, parentComponent?: CardAppearance) => React.ReactNode;
31
- }
32
- export declare type CardProviderProps = {
33
- client?: CardClient;
34
- /** @deprecated Feature removed (EDM-2205) */
35
- cacheOptions?: CardProviderCacheOpts;
36
- storeOptions?: CardProviderStoreOpts;
37
- children: React.ReactNode;
38
- renderers?: CardProviderRenderers;
39
- } & CardAuthFlowOpts;
@@ -1,4 +0,0 @@
1
- import { JsonLd } from 'json-ld-types';
2
- import { CardReducer } from './types';
3
- import { CardStore } from '../types';
4
- export declare const cardReducer: CardReducer<CardStore, JsonLd.Response>;
@@ -1,18 +0,0 @@
1
- import { JsonLd } from 'json-ld-types';
2
- import { CardClient } from '../../client/types';
3
- import { APIError } from '../../client/errors';
4
- import { CardActionType } from '../actions/types';
5
- export declare type CardType = CardActionType | 'unauthorized' | 'forbidden' | 'errored' | 'not_found';
6
- export interface CardStore {
7
- [key: string]: CardState;
8
- }
9
- export interface CardState {
10
- status: CardType;
11
- details?: JsonLd.Response;
12
- /** @deprecated Feature removed (EDM-2205) */
13
- lastUpdatedAt?: number;
14
- error?: APIError;
15
- }
16
- export interface CardConnections {
17
- client: CardClient;
18
- }