@atlaskit/editor-synced-block-provider 6.5.2 → 6.5.3

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 (51) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/clients/jira/sourceInfo.js +63 -10
  3. package/dist/cjs/hooks/useFetchSyncBlockData.js +1 -1
  4. package/dist/cjs/providers/types.js +6 -0
  5. package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +24 -12
  6. package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +18 -15
  7. package/dist/cjs/store-manager/syncBlockBatchFetcher.js +1 -1
  8. package/dist/cjs/store-manager/syncBlockProviderFactoryManager.js +6 -4
  9. package/dist/cjs/store-manager/syncBlockStoreManager.js +2 -1
  10. package/dist/cjs/store-manager/syncBlockSubscriptionManager.js +9 -5
  11. package/dist/cjs/utils/errorHandling.js +41 -26
  12. package/dist/cjs/utils/resolveSyncBlockInstance.js +11 -10
  13. package/dist/cjs/utils/utils.js +30 -2
  14. package/dist/es2019/clients/jira/sourceInfo.js +64 -4
  15. package/dist/es2019/hooks/useFetchSyncBlockData.js +2 -2
  16. package/dist/es2019/providers/syncBlockProvider.js +4 -2
  17. package/dist/es2019/providers/types.js +7 -0
  18. package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +25 -13
  19. package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +19 -16
  20. package/dist/es2019/store-manager/syncBlockBatchFetcher.js +2 -2
  21. package/dist/es2019/store-manager/syncBlockProviderFactoryManager.js +6 -4
  22. package/dist/es2019/store-manager/syncBlockStoreManager.js +2 -1
  23. package/dist/es2019/store-manager/syncBlockSubscriptionManager.js +9 -5
  24. package/dist/es2019/utils/errorHandling.js +33 -14
  25. package/dist/es2019/utils/resolveSyncBlockInstance.js +11 -10
  26. package/dist/es2019/utils/utils.js +26 -0
  27. package/dist/esm/clients/jira/sourceInfo.js +63 -11
  28. package/dist/esm/hooks/useFetchSyncBlockData.js +2 -2
  29. package/dist/esm/providers/types.js +7 -0
  30. package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +25 -13
  31. package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +19 -16
  32. package/dist/esm/store-manager/syncBlockBatchFetcher.js +2 -2
  33. package/dist/esm/store-manager/syncBlockProviderFactoryManager.js +6 -4
  34. package/dist/esm/store-manager/syncBlockStoreManager.js +2 -1
  35. package/dist/esm/store-manager/syncBlockSubscriptionManager.js +9 -5
  36. package/dist/esm/utils/errorHandling.js +41 -26
  37. package/dist/esm/utils/resolveSyncBlockInstance.js +11 -10
  38. package/dist/esm/utils/utils.js +29 -1
  39. package/dist/types/clients/jira/sourceInfo.d.ts +20 -0
  40. package/dist/types/common/types.d.ts +2 -1
  41. package/dist/types/providers/types.d.ts +17 -0
  42. package/dist/types/utils/errorHandling.d.ts +13 -12
  43. package/dist/types/utils/utils.d.ts +3 -1
  44. package/dist/types-ts4.5/clients/jira/sourceInfo.d.ts +20 -0
  45. package/dist/types-ts4.5/common/types.d.ts +2 -1
  46. package/dist/types-ts4.5/providers/types.d.ts +17 -0
  47. package/dist/types-ts4.5/utils/errorHandling.d.ts +13 -12
  48. package/dist/types-ts4.5/utils/utils.d.ts +3 -1
  49. package/package.json +6 -3
  50. package/types/package.json +17 -0
  51. package/utils/package.json +17 -0
@@ -1,2 +1,22 @@
1
1
  import type { SyncBlockSourceInfo } from '../../providers/types';
2
+ /**
3
+ * Fetch source-info metadata for a Jira work item used by reference sync blocks.
4
+ *
5
+ * Parity notes vs the Confluence equivalent (`fetchConfluencePageInfo`):
6
+ *
7
+ * - **Archived / draft URL variants** are intentionally omitted. Confluence pages can be
8
+ * "unpublished" (draft, archived, in-trash) and need REST fallbacks plus alternate URL
9
+ * shapes. Jira work items have no equivalent lifecycle — an issue either exists in AGG
10
+ * or it does not — so a single `webUrl` is sufficient.
11
+ *
12
+ * - **`#block-{localId}` deep-link anchor** is intentionally not appended. The current
13
+ * Jira issue view does not implement scroll-to-anchor for unknown fragments, so the
14
+ * anchor would be dead weight on the URL. The dispatching code in
15
+ * `syncBlockProvider.fetchSyncBlockSourceInfo` deliberately does not pass `localId`
16
+ * here for the same reason. If/when Jira issue view supports anchor scrolling for
17
+ * sync-block local IDs, accept `localId?: string` here and append `#block-{localId}`.
18
+ *
19
+ * - **`subType` / page-type variants** are not modeled — Jira issue type is exposed via
20
+ * the separate `issueType` field returned alongside `summary` / `webUrl`.
21
+ */
2
22
  export declare const fetchJiraWorkItemInfo: (workItemAri: string, hasAccess: boolean) => Promise<SyncBlockSourceInfo | undefined>;
@@ -1,6 +1,6 @@
1
1
  import type { ADFEntity } from '@atlaskit/adf-utils/types';
2
2
  import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
3
- import type { SyncBlockInstance, SyncBlockSourceInfo } from '../providers/types';
3
+ import type { SyncBlockInstance, SyncBlockJiraIssueType, SyncBlockSourceInfo } from '../providers/types';
4
4
  import type { SYNC_BLOCK_PRODUCTS } from './consts';
5
5
  export type BlockInstanceId = string;
6
6
  export type ResourceId = string;
@@ -36,6 +36,7 @@ export interface SyncBlockData {
36
36
  createdAt?: string;
37
37
  createdBy?: string;
38
38
  deletionReason?: DeletionReason;
39
+ issueType?: SyncBlockJiraIssueType;
39
40
  isSynced?: boolean;
40
41
  /**
41
42
  * Whether the block is on the same page as the source block
@@ -27,12 +27,29 @@ export type DeleteSyncBlockResult = {
27
27
  resourceId: ResourceId;
28
28
  success: boolean;
29
29
  };
30
+ /**
31
+ * Lightweight metadata for a Jira issue's type, surfaced so consumers can render the
32
+ * correct ADS issue-type icon (Task / Bug / Story / Epic / Subtask) or fall back to the
33
+ * AGG-provided `iconUrl` for custom types. Optional throughout — Confluence references
34
+ * leave it `undefined`.
35
+ */
36
+ export type SyncBlockJiraIssueType = {
37
+ /** AGG-served icon URL (from `avatar.xsmall`) — used as the fallback when no ADS icon matches `name`. */
38
+ iconUrl?: string;
39
+ /** Display name of the issue type, e.g. `"Task"`, `"Bug"`, `"Story"`. */
40
+ name: string;
41
+ };
30
42
  export type SyncBlockSourceInfo = {
31
43
  hasAccess?: boolean;
32
44
  /**
33
45
  * Whether the source info is for a source synced block
34
46
  */
35
47
  isSource?: boolean;
48
+ /**
49
+ * Issue-type metadata for `productType === 'jira-work-item'` references. Always
50
+ * `undefined` for Confluence references.
51
+ */
52
+ issueType?: SyncBlockJiraIssueType;
36
53
  onSameDocument?: boolean;
37
54
  productType?: SyncBlockProduct;
38
55
  sourceAri: string;
@@ -1,20 +1,21 @@
1
1
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID } from '@atlaskit/editor-common/analytics';
2
2
  import type { RendererSyncBlockEventPayload, OperationalAEP, SyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
3
3
  export declare const stringifyError: (error: unknown) => string | undefined;
4
- export declare const getErrorPayload: <T extends ACTION_SUBJECT_ID>(actionSubjectId: T, error: string, resourceId?: string) => OperationalAEP<ACTION.ERROR, ACTION_SUBJECT.SYNCED_BLOCK, T, {
4
+ export declare const getErrorPayload: <T extends ACTION_SUBJECT_ID>(actionSubjectId: T, error: string, resourceId?: string, sourceProduct?: string) => OperationalAEP<ACTION.ERROR, ACTION_SUBJECT.SYNCED_BLOCK, T, {
5
5
  error: string;
6
6
  resourceId?: string;
7
+ sourceProduct?: string;
7
8
  }>;
8
- export declare const fetchErrorPayload: (error: string, resourceId?: string) => RendererSyncBlockEventPayload;
9
- export declare const getSourceInfoErrorPayload: (error: string, resourceId?: string) => RendererSyncBlockEventPayload;
10
- export declare const updateErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
11
- export declare const updateReferenceErrorPayload: (error: string, resourceId?: string) => RendererSyncBlockEventPayload;
12
- export declare const createErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
13
- export declare const deleteErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
14
- export declare const updateCacheErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
15
- export declare const fetchReferencesErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
9
+ export declare const fetchErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
10
+ export declare const getSourceInfoErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
11
+ export declare const updateErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
12
+ export declare const updateReferenceErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
13
+ export declare const createErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
14
+ export declare const deleteErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
15
+ export declare const updateCacheErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
16
+ export declare const fetchReferencesErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
16
17
  export declare const fetchSuccessPayload: (resourceId: string, blockInstanceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
17
- export declare const createSuccessPayload: (resourceId: string) => SyncBlockEventPayload;
18
+ export declare const createSuccessPayload: (resourceId: string, sourceProduct?: string) => SyncBlockEventPayload;
18
19
  export declare const createSuccessPayloadNew: (resourceId: string) => SyncBlockEventPayload;
19
- export declare const updateSuccessPayload: (resourceId: string, hasReference?: boolean) => SyncBlockEventPayload;
20
- export declare const deleteSuccessPayload: (resourceId: string) => SyncBlockEventPayload;
20
+ export declare const updateSuccessPayload: (resourceId: string, hasReference?: boolean, sourceProduct?: string) => SyncBlockEventPayload;
21
+ export declare const deleteSuccessPayload: (resourceId: string, sourceProduct?: string) => SyncBlockEventPayload;
@@ -7,7 +7,9 @@ export declare const convertSyncBlockJSONNodeToSyncBlockNode: (node: JSONNode) =
7
7
  export declare const convertPMNodeToSyncBlockNode: (node: PMNode) => SyncBlockNode | undefined;
8
8
  export declare const convertPMNodesToSyncBlockNodes: (nodes: PMNode[]) => SyncBlockNode[];
9
9
  export declare const getContentIdAndProductFromResourceId: (resourceId: string) => {
10
- sourceProduct: SyncBlockProduct;
11
10
  sourceContentId: string;
11
+ sourceProduct: SyncBlockProduct;
12
12
  };
13
+ export declare const getSourceProductFromResourceIdSafe: (resourceId?: string) => SyncBlockProduct | undefined;
14
+ export declare const productAttrIfGateOn: (resourceId?: string) => SyncBlockProduct | undefined;
13
15
  export declare const convertContentUpdatedAt: (contentUpdatedAt: number | undefined) => string | undefined;
@@ -1,2 +1,22 @@
1
1
  import type { SyncBlockSourceInfo } from '../../providers/types';
2
+ /**
3
+ * Fetch source-info metadata for a Jira work item used by reference sync blocks.
4
+ *
5
+ * Parity notes vs the Confluence equivalent (`fetchConfluencePageInfo`):
6
+ *
7
+ * - **Archived / draft URL variants** are intentionally omitted. Confluence pages can be
8
+ * "unpublished" (draft, archived, in-trash) and need REST fallbacks plus alternate URL
9
+ * shapes. Jira work items have no equivalent lifecycle — an issue either exists in AGG
10
+ * or it does not — so a single `webUrl` is sufficient.
11
+ *
12
+ * - **`#block-{localId}` deep-link anchor** is intentionally not appended. The current
13
+ * Jira issue view does not implement scroll-to-anchor for unknown fragments, so the
14
+ * anchor would be dead weight on the URL. The dispatching code in
15
+ * `syncBlockProvider.fetchSyncBlockSourceInfo` deliberately does not pass `localId`
16
+ * here for the same reason. If/when Jira issue view supports anchor scrolling for
17
+ * sync-block local IDs, accept `localId?: string` here and append `#block-{localId}`.
18
+ *
19
+ * - **`subType` / page-type variants** are not modeled — Jira issue type is exposed via
20
+ * the separate `issueType` field returned alongside `summary` / `webUrl`.
21
+ */
2
22
  export declare const fetchJiraWorkItemInfo: (workItemAri: string, hasAccess: boolean) => Promise<SyncBlockSourceInfo | undefined>;
@@ -1,6 +1,6 @@
1
1
  import type { ADFEntity } from '@atlaskit/adf-utils/types';
2
2
  import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
3
- import type { SyncBlockInstance, SyncBlockSourceInfo } from '../providers/types';
3
+ import type { SyncBlockInstance, SyncBlockJiraIssueType, SyncBlockSourceInfo } from '../providers/types';
4
4
  import type { SYNC_BLOCK_PRODUCTS } from './consts';
5
5
  export type BlockInstanceId = string;
6
6
  export type ResourceId = string;
@@ -36,6 +36,7 @@ export interface SyncBlockData {
36
36
  createdAt?: string;
37
37
  createdBy?: string;
38
38
  deletionReason?: DeletionReason;
39
+ issueType?: SyncBlockJiraIssueType;
39
40
  isSynced?: boolean;
40
41
  /**
41
42
  * Whether the block is on the same page as the source block
@@ -27,12 +27,29 @@ export type DeleteSyncBlockResult = {
27
27
  resourceId: ResourceId;
28
28
  success: boolean;
29
29
  };
30
+ /**
31
+ * Lightweight metadata for a Jira issue's type, surfaced so consumers can render the
32
+ * correct ADS issue-type icon (Task / Bug / Story / Epic / Subtask) or fall back to the
33
+ * AGG-provided `iconUrl` for custom types. Optional throughout — Confluence references
34
+ * leave it `undefined`.
35
+ */
36
+ export type SyncBlockJiraIssueType = {
37
+ /** AGG-served icon URL (from `avatar.xsmall`) — used as the fallback when no ADS icon matches `name`. */
38
+ iconUrl?: string;
39
+ /** Display name of the issue type, e.g. `"Task"`, `"Bug"`, `"Story"`. */
40
+ name: string;
41
+ };
30
42
  export type SyncBlockSourceInfo = {
31
43
  hasAccess?: boolean;
32
44
  /**
33
45
  * Whether the source info is for a source synced block
34
46
  */
35
47
  isSource?: boolean;
48
+ /**
49
+ * Issue-type metadata for `productType === 'jira-work-item'` references. Always
50
+ * `undefined` for Confluence references.
51
+ */
52
+ issueType?: SyncBlockJiraIssueType;
36
53
  onSameDocument?: boolean;
37
54
  productType?: SyncBlockProduct;
38
55
  sourceAri: string;
@@ -1,20 +1,21 @@
1
1
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID } from '@atlaskit/editor-common/analytics';
2
2
  import type { RendererSyncBlockEventPayload, OperationalAEP, SyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
3
3
  export declare const stringifyError: (error: unknown) => string | undefined;
4
- export declare const getErrorPayload: <T extends ACTION_SUBJECT_ID>(actionSubjectId: T, error: string, resourceId?: string) => OperationalAEP<ACTION.ERROR, ACTION_SUBJECT.SYNCED_BLOCK, T, {
4
+ export declare const getErrorPayload: <T extends ACTION_SUBJECT_ID>(actionSubjectId: T, error: string, resourceId?: string, sourceProduct?: string) => OperationalAEP<ACTION.ERROR, ACTION_SUBJECT.SYNCED_BLOCK, T, {
5
5
  error: string;
6
6
  resourceId?: string;
7
+ sourceProduct?: string;
7
8
  }>;
8
- export declare const fetchErrorPayload: (error: string, resourceId?: string) => RendererSyncBlockEventPayload;
9
- export declare const getSourceInfoErrorPayload: (error: string, resourceId?: string) => RendererSyncBlockEventPayload;
10
- export declare const updateErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
11
- export declare const updateReferenceErrorPayload: (error: string, resourceId?: string) => RendererSyncBlockEventPayload;
12
- export declare const createErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
13
- export declare const deleteErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
14
- export declare const updateCacheErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
15
- export declare const fetchReferencesErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
9
+ export declare const fetchErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
10
+ export declare const getSourceInfoErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
11
+ export declare const updateErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
12
+ export declare const updateReferenceErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
13
+ export declare const createErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
14
+ export declare const deleteErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
15
+ export declare const updateCacheErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
16
+ export declare const fetchReferencesErrorPayload: (error: string, resourceId?: string, sourceProduct?: string) => SyncBlockEventPayload;
16
17
  export declare const fetchSuccessPayload: (resourceId: string, blockInstanceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
17
- export declare const createSuccessPayload: (resourceId: string) => SyncBlockEventPayload;
18
+ export declare const createSuccessPayload: (resourceId: string, sourceProduct?: string) => SyncBlockEventPayload;
18
19
  export declare const createSuccessPayloadNew: (resourceId: string) => SyncBlockEventPayload;
19
- export declare const updateSuccessPayload: (resourceId: string, hasReference?: boolean) => SyncBlockEventPayload;
20
- export declare const deleteSuccessPayload: (resourceId: string) => SyncBlockEventPayload;
20
+ export declare const updateSuccessPayload: (resourceId: string, hasReference?: boolean, sourceProduct?: string) => SyncBlockEventPayload;
21
+ export declare const deleteSuccessPayload: (resourceId: string, sourceProduct?: string) => SyncBlockEventPayload;
@@ -7,7 +7,9 @@ export declare const convertSyncBlockJSONNodeToSyncBlockNode: (node: JSONNode) =
7
7
  export declare const convertPMNodeToSyncBlockNode: (node: PMNode) => SyncBlockNode | undefined;
8
8
  export declare const convertPMNodesToSyncBlockNodes: (nodes: PMNode[]) => SyncBlockNode[];
9
9
  export declare const getContentIdAndProductFromResourceId: (resourceId: string) => {
10
- sourceProduct: SyncBlockProduct;
11
10
  sourceContentId: string;
11
+ sourceProduct: SyncBlockProduct;
12
12
  };
13
+ export declare const getSourceProductFromResourceIdSafe: (resourceId?: string) => SyncBlockProduct | undefined;
14
+ export declare const productAttrIfGateOn: (resourceId?: string) => SyncBlockProduct | undefined;
13
15
  export declare const convertContentUpdatedAt: (contentUpdatedAt: number | undefined) => string | undefined;
package/package.json CHANGED
@@ -29,7 +29,7 @@
29
29
  "@atlaskit/editor-prosemirror": "^7.3.0",
30
30
  "@atlaskit/node-data-provider": "^11.0.0",
31
31
  "@atlaskit/platform-feature-flags": "^1.1.0",
32
- "@atlaskit/tmp-editor-statsig": "^79.0.0",
32
+ "@atlaskit/tmp-editor-statsig": "^80.0.0",
33
33
  "@babel/runtime": "^7.0.0",
34
34
  "@compiled/react": "^0.20.0",
35
35
  "graphql-ws": "^5.14.2",
@@ -38,7 +38,7 @@
38
38
  "uuid": "^3.1.0"
39
39
  },
40
40
  "peerDependencies": {
41
- "@atlaskit/editor-common": "^114.29.0",
41
+ "@atlaskit/editor-common": "^114.30.0",
42
42
  "react": "^18.2.0"
43
43
  },
44
44
  "devDependencies": {
@@ -81,7 +81,7 @@
81
81
  }
82
82
  },
83
83
  "name": "@atlaskit/editor-synced-block-provider",
84
- "version": "6.5.2",
84
+ "version": "6.5.3",
85
85
  "description": "Synced Block Provider for @atlaskit/editor-plugin-synced-block",
86
86
  "author": "Atlassian Pty Ltd",
87
87
  "license": "Apache-2.0",
@@ -101,6 +101,9 @@
101
101
  "platform_synced_block_patch_10": {
102
102
  "type": "boolean"
103
103
  },
104
+ "platform_synced_block_patch_11": {
105
+ "type": "boolean"
106
+ },
104
107
  "platform_synced_block_add_info_web_socket_error": {
105
108
  "type": "boolean"
106
109
  }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@atlaskit/editor-synced-block-provider/types",
3
+ "main": "../dist/cjs/providers/types.js",
4
+ "module": "../dist/esm/providers/types.js",
5
+ "module:es2019": "../dist/es2019/providers/types.js",
6
+ "sideEffects": [
7
+ "*.compiled.css"
8
+ ],
9
+ "types": "../dist/types/providers/types.d.ts",
10
+ "typesVersions": {
11
+ ">=4.5 <5.9": {
12
+ "*": [
13
+ "../dist/types-ts4.5/providers/types.d.ts"
14
+ ]
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@atlaskit/editor-synced-block-provider/utils",
3
+ "main": "../dist/cjs/utils/utils.js",
4
+ "module": "../dist/esm/utils/utils.js",
5
+ "module:es2019": "../dist/es2019/utils/utils.js",
6
+ "sideEffects": [
7
+ "*.compiled.css"
8
+ ],
9
+ "types": "../dist/types/utils/utils.d.ts",
10
+ "typesVersions": {
11
+ ">=4.5 <5.9": {
12
+ "*": [
13
+ "../dist/types-ts4.5/utils/utils.d.ts"
14
+ ]
15
+ }
16
+ }
17
+ }