@atlaskit/media-client 17.1.3 → 18.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.
- package/CHANGELOG.md +11 -0
- package/dist/cjs/client/mobile-upload.js +1 -1
- package/dist/cjs/file-streams-cache.js +2 -2
- package/dist/cjs/index.js +0 -9
- package/dist/cjs/utils/mobileUpload/servicesCache.js +2 -2
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/client/mobile-upload.js +1 -1
- package/dist/es2019/file-streams-cache.js +2 -2
- package/dist/es2019/index.js +0 -2
- package/dist/es2019/utils/mobileUpload/servicesCache.js +2 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/client/mobile-upload.js +1 -1
- package/dist/esm/file-streams-cache.js +2 -2
- package/dist/esm/index.js +0 -2
- package/dist/esm/utils/mobileUpload/servicesCache.js +2 -2
- package/dist/esm/version.json +1 -1
- package/dist/types/file-streams-cache.d.ts +2 -2
- package/dist/types/index.d.ts +0 -1
- package/dist/types/utils/mobileUpload/servicesCache.d.ts +2 -2
- package/dist/types-ts4.0/file-streams-cache.d.ts +2 -2
- package/dist/types-ts4.0/index.d.ts +0 -1
- package/dist/types-ts4.0/utils/mobileUpload/servicesCache.d.ts +2 -2
- package/package.json +5 -7
- package/report.api.md +12 -28
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @atlaskit/media-client
|
|
2
2
|
|
|
3
|
+
## 18.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [`37ff149ab87`](https://bitbucket.org/atlassian/atlassian-frontend/commits/37ff149ab87) - Remove exposing StreamsCache class
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [`153829bfcb3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/153829bfcb3) - Upgrade caching algorithm library lru-fast to lru_map.
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
3
14
|
## 17.1.3
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
@@ -52,7 +52,7 @@ var MobileUploadImpl = /*#__PURE__*/function () {
|
|
|
52
52
|
};
|
|
53
53
|
var service = (0, _mobileUpload.createMobileUploadService)((0, _mobileUpload.createMobileUploadStateMachine)(this.dataloader, initialState, collectionName));
|
|
54
54
|
var subject = (0, _mobileUpload.createMobileFileStateSubject)(service);
|
|
55
|
-
this.servicesCache.
|
|
55
|
+
this.servicesCache.set(fileId, service);
|
|
56
56
|
(0, _fileStreamsCache.getFileStreamsCache)().set(fileId, subject);
|
|
57
57
|
}
|
|
58
58
|
}, {
|
|
@@ -44,12 +44,12 @@ var StreamsCache = /*#__PURE__*/function () {
|
|
|
44
44
|
}, {
|
|
45
45
|
key: "removeAll",
|
|
46
46
|
value: function removeAll() {
|
|
47
|
-
this.streams.
|
|
47
|
+
this.streams.clear();
|
|
48
48
|
}
|
|
49
49
|
}, {
|
|
50
50
|
key: "remove",
|
|
51
51
|
value: function remove(id) {
|
|
52
|
-
this.streams.
|
|
52
|
+
this.streams.delete(id);
|
|
53
53
|
}
|
|
54
54
|
}, {
|
|
55
55
|
key: "size",
|
package/dist/cjs/index.js
CHANGED
|
@@ -75,12 +75,6 @@ Object.defineProperty(exports, "StargateClient", {
|
|
|
75
75
|
return _stargateClient.StargateClient;
|
|
76
76
|
}
|
|
77
77
|
});
|
|
78
|
-
Object.defineProperty(exports, "StreamsCache", {
|
|
79
|
-
enumerable: true,
|
|
80
|
-
get: function get() {
|
|
81
|
-
return _fileStreamsCache.StreamsCache;
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
78
|
Object.defineProperty(exports, "UploadController", {
|
|
85
79
|
enumerable: true,
|
|
86
80
|
get: function get() {
|
|
@@ -377,8 +371,6 @@ var _errors = require("./models/errors");
|
|
|
377
371
|
|
|
378
372
|
var _fileState = require("./models/file-state");
|
|
379
373
|
|
|
380
|
-
var _fileStreamsCache = require("./file-streams-cache");
|
|
381
|
-
|
|
382
374
|
var _uploader = require("./uploader");
|
|
383
375
|
|
|
384
376
|
var _request = require("./utils/request");
|
|
@@ -423,7 +415,6 @@ var _constants = require("./constants");
|
|
|
423
415
|
|
|
424
416
|
var _mediaTypeUtils = require("@atlaskit/media-common/mediaTypeUtils");
|
|
425
417
|
|
|
426
|
-
// TODO: remove access to media file stream cache https://product-fabric.atlassian.net/browse/MEX-1417
|
|
427
418
|
// TODO MEX-659 Remove these exports when all the usages from media-client are replaced with media-common.
|
|
428
419
|
|
|
429
420
|
/**
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createServicesCache = createServicesCache;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _lru_map = require("lru_map");
|
|
9
9
|
|
|
10
10
|
function createServicesCache() {
|
|
11
|
-
return new
|
|
11
|
+
return new _lru_map.LRUMap(100);
|
|
12
12
|
}
|
package/dist/cjs/version.json
CHANGED
|
@@ -34,7 +34,7 @@ export class MobileUploadImpl {
|
|
|
34
34
|
};
|
|
35
35
|
const service = createMobileUploadService(createMobileUploadStateMachine(this.dataloader, initialState, collectionName));
|
|
36
36
|
const subject = createMobileFileStateSubject(service);
|
|
37
|
-
this.servicesCache.
|
|
37
|
+
this.servicesCache.set(fileId, service);
|
|
38
38
|
getFileStreamsCache().set(fileId, subject);
|
|
39
39
|
}
|
|
40
40
|
|
package/dist/es2019/index.js
CHANGED
|
@@ -4,8 +4,6 @@ export { isPreviewableType, isMediaCollectionItemFullDetails } from './models/me
|
|
|
4
4
|
export { getArtifactUrl } from './models/artifacts';
|
|
5
5
|
export { isMediaClientError, getMediaClientErrorReason } from './models/errors';
|
|
6
6
|
export { isUploadingFileState, isProcessingFileState, isProcessedFileState, isErrorFileState, isPreviewableFileState, isFinalFileState, isImageRepresentationReady, mapMediaFileToFileState, mapMediaItemToFileState } from './models/file-state';
|
|
7
|
-
// TODO: remove access to media file stream cache https://product-fabric.atlassian.net/browse/MEX-1417
|
|
8
|
-
export { StreamsCache } from './file-streams-cache';
|
|
9
7
|
export { uploadFile } from './uploader';
|
|
10
8
|
export { request, RequestError, isRequestError, isRateLimitedError } from './utils/request';
|
|
11
9
|
export { isAbortedRequestError, mapResponseToJson, mapResponseToBlob, mapResponseToVoid, createUrl } from './utils/request/helpers';
|
package/dist/es2019/version.json
CHANGED
|
@@ -38,7 +38,7 @@ export var MobileUploadImpl = /*#__PURE__*/function () {
|
|
|
38
38
|
};
|
|
39
39
|
var service = createMobileUploadService(createMobileUploadStateMachine(this.dataloader, initialState, collectionName));
|
|
40
40
|
var subject = createMobileFileStateSubject(service);
|
|
41
|
-
this.servicesCache.
|
|
41
|
+
this.servicesCache.set(fileId, service);
|
|
42
42
|
getFileStreamsCache().set(fileId, subject);
|
|
43
43
|
}
|
|
44
44
|
}, {
|
|
@@ -34,12 +34,12 @@ export var StreamsCache = /*#__PURE__*/function () {
|
|
|
34
34
|
}, {
|
|
35
35
|
key: "removeAll",
|
|
36
36
|
value: function removeAll() {
|
|
37
|
-
this.streams.
|
|
37
|
+
this.streams.clear();
|
|
38
38
|
}
|
|
39
39
|
}, {
|
|
40
40
|
key: "remove",
|
|
41
41
|
value: function remove(id) {
|
|
42
|
-
this.streams.
|
|
42
|
+
this.streams.delete(id);
|
|
43
43
|
}
|
|
44
44
|
}, {
|
|
45
45
|
key: "size",
|
package/dist/esm/index.js
CHANGED
|
@@ -4,8 +4,6 @@ export { isPreviewableType, isMediaCollectionItemFullDetails } from './models/me
|
|
|
4
4
|
export { getArtifactUrl } from './models/artifacts';
|
|
5
5
|
export { isMediaClientError, getMediaClientErrorReason } from './models/errors';
|
|
6
6
|
export { isUploadingFileState, isProcessingFileState, isProcessedFileState, isErrorFileState, isPreviewableFileState, isFinalFileState, isImageRepresentationReady, mapMediaFileToFileState, mapMediaItemToFileState } from './models/file-state';
|
|
7
|
-
// TODO: remove access to media file stream cache https://product-fabric.atlassian.net/browse/MEX-1417
|
|
8
|
-
export { StreamsCache } from './file-streams-cache';
|
|
9
7
|
export { uploadFile } from './uploader';
|
|
10
8
|
export { request, RequestError, isRequestError, isRateLimitedError } from './utils/request';
|
|
11
9
|
export { isAbortedRequestError, mapResponseToJson, mapResponseToBlob, mapResponseToVoid, createUrl } from './utils/request/helpers';
|
package/dist/esm/version.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LRUMap } from 'lru_map';
|
|
2
2
|
import { ReplaySubject } from 'rxjs/ReplaySubject';
|
|
3
3
|
import { FileState } from './models/file-state';
|
|
4
4
|
export declare class StreamsCache<T> {
|
|
5
5
|
private readonly streams;
|
|
6
|
-
constructor(streams:
|
|
6
|
+
constructor(streams: LRUMap<string, ReplaySubject<T>>);
|
|
7
7
|
has(id: string): boolean;
|
|
8
8
|
set(id: string, stream: ReplaySubject<T>): void;
|
|
9
9
|
get(id: string): ReplaySubject<T> | undefined;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export type { MediaClientError, MediaClientErrorReason, MediaClientErrorAttribut
|
|
|
13
13
|
export { isUploadingFileState, isProcessingFileState, isProcessedFileState, isErrorFileState, isPreviewableFileState, isFinalFileState, isImageRepresentationReady, mapMediaFileToFileState, mapMediaItemToFileState, } from './models/file-state';
|
|
14
14
|
export type { FileStatus, FilePreview, PreviewOptions, GetFileOptions, UploadingFileState, ProcessingFileState, ProcessedFileState, ProcessingFailedState, ErrorFileState, NonErrorFileState, PreviewableFileState, FileState, } from './models/file-state';
|
|
15
15
|
export type { MobileUpload, MobileUploadStartEvent, MobileUploadProgressEvent, MobileUploadEndEvent, MobileUploadErrorEvent, } from './models/mobile-upload';
|
|
16
|
-
export { StreamsCache } from './file-streams-cache';
|
|
17
16
|
export { uploadFile } from './uploader';
|
|
18
17
|
export type { UploadableFile, UploadableFileUpfrontIds, UploadFileCallbacks, UploadFileResult, } from './uploader';
|
|
19
18
|
export { request, RequestError, isRequestError, isRateLimitedError, } from './utils/request';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LRUMap } from 'lru_map';
|
|
2
2
|
import { Interpreter } from 'xstate';
|
|
3
3
|
import { StateMachineContext, StateMachineEvent, StateMachineTypestate } from './stateMachine/types';
|
|
4
|
-
export declare function createServicesCache():
|
|
4
|
+
export declare function createServicesCache(): LRUMap<string, Interpreter<StateMachineContext, any, StateMachineEvent, StateMachineTypestate>>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LRUMap } from 'lru_map';
|
|
2
2
|
import { ReplaySubject } from 'rxjs/ReplaySubject';
|
|
3
3
|
import { FileState } from './models/file-state';
|
|
4
4
|
export declare class StreamsCache<T> {
|
|
5
5
|
private readonly streams;
|
|
6
|
-
constructor(streams:
|
|
6
|
+
constructor(streams: LRUMap<string, ReplaySubject<T>>);
|
|
7
7
|
has(id: string): boolean;
|
|
8
8
|
set(id: string, stream: ReplaySubject<T>): void;
|
|
9
9
|
get(id: string): ReplaySubject<T> | undefined;
|
|
@@ -13,7 +13,6 @@ export type { MediaClientError, MediaClientErrorReason, MediaClientErrorAttribut
|
|
|
13
13
|
export { isUploadingFileState, isProcessingFileState, isProcessedFileState, isErrorFileState, isPreviewableFileState, isFinalFileState, isImageRepresentationReady, mapMediaFileToFileState, mapMediaItemToFileState, } from './models/file-state';
|
|
14
14
|
export type { FileStatus, FilePreview, PreviewOptions, GetFileOptions, UploadingFileState, ProcessingFileState, ProcessedFileState, ProcessingFailedState, ErrorFileState, NonErrorFileState, PreviewableFileState, FileState, } from './models/file-state';
|
|
15
15
|
export type { MobileUpload, MobileUploadStartEvent, MobileUploadProgressEvent, MobileUploadEndEvent, MobileUploadErrorEvent, } from './models/mobile-upload';
|
|
16
|
-
export { StreamsCache } from './file-streams-cache';
|
|
17
16
|
export { uploadFile } from './uploader';
|
|
18
17
|
export type { UploadableFile, UploadableFileUpfrontIds, UploadFileCallbacks, UploadFileResult, } from './uploader';
|
|
19
18
|
export { request, RequestError, isRequestError, isRateLimitedError, } from './utils/request';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LRUMap } from 'lru_map';
|
|
2
2
|
import { Interpreter } from 'xstate';
|
|
3
3
|
import { StateMachineContext, StateMachineEvent, StateMachineTypestate } from './stateMachine/types';
|
|
4
|
-
export declare function createServicesCache():
|
|
4
|
+
export declare function createServicesCache(): LRUMap<string, Interpreter<StateMachineContext, any, StateMachineEvent, StateMachineTypestate>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "18.0.0",
|
|
4
4
|
"description": "Media API Web Client Library",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"dataloader": "^2.0.0",
|
|
41
41
|
"deep-equal": "^1.0.1",
|
|
42
42
|
"eventemitter2": "^4.1.0",
|
|
43
|
-
"
|
|
43
|
+
"lru_map": "^0.4.1",
|
|
44
44
|
"rusha": "^0.8.13",
|
|
45
45
|
"rxjs": "^5.5.0",
|
|
46
46
|
"setimmediate": "^1.0.5",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"xstate": "^4.20.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
|
-
"@atlaskit/media-core": "^
|
|
53
|
+
"@atlaskit/media-core": "^34.0.0",
|
|
54
54
|
"@emotion/react": "^11.7.1",
|
|
55
55
|
"react": "^16.8.0"
|
|
56
56
|
},
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@atlaskit/button": "^16.3.0",
|
|
59
59
|
"@atlaskit/docs": "*",
|
|
60
60
|
"@atlaskit/media-card": "^74.1.0",
|
|
61
|
-
"@atlaskit/media-core": "^
|
|
61
|
+
"@atlaskit/media-core": "^34.0.0",
|
|
62
62
|
"@atlaskit/media-test-helpers": "^30.0.0",
|
|
63
63
|
"@atlaskit/ssr": "*",
|
|
64
64
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
@@ -71,9 +71,7 @@
|
|
|
71
71
|
"react-dom": "^16.8.0",
|
|
72
72
|
"typescript": "4.5.5"
|
|
73
73
|
},
|
|
74
|
-
"resolutions": {
|
|
75
|
-
"lru-fast": "0.2.2"
|
|
76
|
-
},
|
|
74
|
+
"resolutions": {},
|
|
77
75
|
"techstack": {
|
|
78
76
|
"@atlassian/frontend": {
|
|
79
77
|
"circular-dependencies": [
|
package/report.api.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
## API Report File for "@atlaskit/media-client"
|
|
1
|
+
## API Report File for "@atlaskit/media-client".
|
|
2
2
|
|
|
3
|
-
> Do not edit this file.
|
|
3
|
+
> Do not edit this file. This report is auto-generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
[Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)
|
|
4
6
|
|
|
5
7
|
```ts
|
|
6
8
|
import { AsapBasedAuth } from '@atlaskit/media-core';
|
|
@@ -10,7 +12,6 @@ import { AuthProvider } from '@atlaskit/media-core';
|
|
|
10
12
|
import { ChunkinatorFile } from '@atlaskit/chunkinator';
|
|
11
13
|
import { ClientAltBasedAuth } from '@atlaskit/media-core';
|
|
12
14
|
import { FileStatus as FileStatus_2 } from '@atlaskit/media-common';
|
|
13
|
-
import { LRUCache } from 'lru-fast';
|
|
14
15
|
import { MediaApiConfig } from '@atlaskit/media-core';
|
|
15
16
|
import { MediaClientConfig } from '@atlaskit/media-core';
|
|
16
17
|
import { MediaFeatureFlags } from '@atlaskit/media-common';
|
|
@@ -76,9 +77,8 @@ export declare class CollectionFetcher {
|
|
|
76
77
|
): Promise<void>;
|
|
77
78
|
}
|
|
78
79
|
|
|
79
|
-
declare type CompletionObserver<
|
|
80
|
-
T
|
|
81
|
-
> = PartialObserver<T> & Required<Pick<PartialObserver<T>, 'complete'>>;
|
|
80
|
+
declare type CompletionObserver<T> = PartialObserver<T> &
|
|
81
|
+
Required<Pick<PartialObserver<T>, 'complete'>>;
|
|
82
82
|
|
|
83
83
|
export declare interface CopyDestination
|
|
84
84
|
extends MediaStoreCopyFileWithTokenParams {
|
|
@@ -147,9 +147,7 @@ export declare interface ErrorFileState {
|
|
|
147
147
|
message?: string;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
declare type ErrorObserver<T
|
|
151
|
-
T
|
|
152
|
-
> &
|
|
150
|
+
declare type ErrorObserver<T> = PartialObserver<T> &
|
|
153
151
|
Required<Pick<PartialObserver<T>, 'error'>>;
|
|
154
152
|
|
|
155
153
|
export declare type EventPayloadListener<
|
|
@@ -777,7 +775,7 @@ export declare type MediaFileProcessingStatus =
|
|
|
777
775
|
|
|
778
776
|
export declare type MediaItemType = 'file' | 'external-image';
|
|
779
777
|
|
|
780
|
-
export declare type MediaObserver<T
|
|
778
|
+
export declare type MediaObserver<T> =
|
|
781
779
|
| NextObserver<T>
|
|
782
780
|
| ErrorObserver<T>
|
|
783
781
|
| CompletionObserver<T>
|
|
@@ -1003,7 +1001,7 @@ export declare interface MediaStoreTouchFileParams {
|
|
|
1003
1001
|
readonly collection?: string;
|
|
1004
1002
|
}
|
|
1005
1003
|
|
|
1006
|
-
export declare type MediaSubscribable<T
|
|
1004
|
+
export declare type MediaSubscribable<T> = {
|
|
1007
1005
|
subscribe(observer?: MediaObserver<T>): MediaSubscription;
|
|
1008
1006
|
};
|
|
1009
1007
|
|
|
@@ -1027,7 +1025,7 @@ export declare interface MediaViewedEventPayload {
|
|
|
1027
1025
|
isUserCollection?: boolean;
|
|
1028
1026
|
}
|
|
1029
1027
|
|
|
1030
|
-
declare interface MobileUpload {
|
|
1028
|
+
export declare interface MobileUpload {
|
|
1031
1029
|
notifyUploadStart(event: MobileUploadStartEvent): void;
|
|
1032
1030
|
notifyUploadProgress(event: MobileUploadProgressEvent): void;
|
|
1033
1031
|
notifyUploadEnd(event: MobileUploadEndEvent): void;
|
|
@@ -1059,9 +1057,7 @@ export declare type MobileUploadStartEvent = {
|
|
|
1059
1057
|
createdAt?: number;
|
|
1060
1058
|
};
|
|
1061
1059
|
|
|
1062
|
-
declare type NextObserver<T
|
|
1063
|
-
T
|
|
1064
|
-
> &
|
|
1060
|
+
declare type NextObserver<T> = PartialObserver<T> &
|
|
1065
1061
|
Required<Pick<PartialObserver<T>, 'next'>>;
|
|
1066
1062
|
|
|
1067
1063
|
export declare type NonErrorFileState = Exclude<FileState, ErrorFileState>;
|
|
@@ -1070,7 +1066,7 @@ export declare const objectToQueryString: (json: {
|
|
|
1070
1066
|
[key: string]: string | number | boolean | null | undefined;
|
|
1071
1067
|
}) => string;
|
|
1072
1068
|
|
|
1073
|
-
declare type PartialObserver<T
|
|
1069
|
+
declare type PartialObserver<T> = {
|
|
1074
1070
|
next?: (value: T) => void;
|
|
1075
1071
|
error?: (err: any) => void;
|
|
1076
1072
|
complete?: () => void;
|
|
@@ -1287,18 +1283,6 @@ export declare class StargateClient {
|
|
|
1287
1283
|
isTokenExpired(token: EdgeData): boolean;
|
|
1288
1284
|
}
|
|
1289
1285
|
|
|
1290
|
-
export declare class StreamsCache<T> {
|
|
1291
|
-
private readonly streams;
|
|
1292
|
-
constructor(streams: LRUCache<string, ReplaySubject<T>>);
|
|
1293
|
-
has(id: string): boolean;
|
|
1294
|
-
set(id: string, stream: ReplaySubject<T>): void;
|
|
1295
|
-
get(id: string): ReplaySubject<T> | undefined;
|
|
1296
|
-
getOrInsert(id: string, callback: () => ReplaySubject<T>): ReplaySubject<T>;
|
|
1297
|
-
removeAll(): void;
|
|
1298
|
-
remove(id: string): void;
|
|
1299
|
-
get size(): number;
|
|
1300
|
-
}
|
|
1301
|
-
|
|
1302
1286
|
export declare type TouchedFiles = {
|
|
1303
1287
|
created: CreatedTouchedFile[];
|
|
1304
1288
|
};
|