@cumulus/cmrjs 9.7.1 → 10.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/cmr-utils.d.ts +49 -12
- package/cmr-utils.d.ts.map +1 -1
- package/cmr-utils.js +153 -57
- package/cmr-utils.js.map +1 -1
- package/index.d.ts +16 -49
- package/index.js +5 -1
- package/index.js.map +1 -1
- package/package.json +9 -8
- package/src/cmr-utils.js +204 -59
- package/src/index.js +8 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/utils.d.ts +5 -9
- package/utils.d.ts.map +1 -1
package/cmr-utils.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add ETags to file objects as some downstream functions expect this structure.
|
|
3
|
+
*
|
|
4
|
+
* @param {Object} granule - input granule object
|
|
5
|
+
* @param {Object} etags - map of s3URIs and ETags
|
|
6
|
+
* @returns {Object} - updated granule object
|
|
7
|
+
*/
|
|
8
|
+
export function addEtagsToFileObjects(granule: Object, etags: Object): Object;
|
|
1
9
|
export function constructCmrConceptLink(conceptId: any, extension: any): string;
|
|
2
10
|
/**
|
|
3
11
|
* Construct online access url for a given file and a url type.
|
|
@@ -70,13 +78,15 @@ export function generateFileUrl({ file, distEndpoint, urlType, distributionBucke
|
|
|
70
78
|
* `files` property
|
|
71
79
|
* @param {Array<Object>} granule.files - array of files for a granule
|
|
72
80
|
* @param {string} granule.granuleId - granule ID
|
|
81
|
+
* @param {Function} filterFunc - function to determine if the given file object is a
|
|
82
|
+
CMR file; defaults to `isCMRFile`
|
|
73
83
|
* @returns {Array<Object>} an array of CMR file objects, each with properties
|
|
74
|
-
* `granuleId`, `
|
|
84
|
+
* `granuleId`, `bucket`, `key`, and possibly `etag` (if present on input)
|
|
75
85
|
*/
|
|
76
86
|
export function granuleToCmrFileObject({ granuleId, files }: {
|
|
77
87
|
files: Array<Object>;
|
|
78
88
|
granuleId: string;
|
|
79
|
-
}): Array<Object>;
|
|
89
|
+
}, filterFunc?: Function): Array<Object>;
|
|
80
90
|
/**
|
|
81
91
|
* Helper to build an CMR settings object, used to initialize CMR.
|
|
82
92
|
*
|
|
@@ -109,10 +119,11 @@ export function getFilename(file: any): any;
|
|
|
109
119
|
* Extract temporal information from granule object
|
|
110
120
|
*
|
|
111
121
|
* @param {Object} granule - granule object
|
|
112
|
-
* @returns {Object} - temporal information (beginningDateTime,
|
|
113
|
-
* lastUpdateDateTime) of the granule if
|
|
122
|
+
* @returns {Promise<Object>} - temporal information (beginningDateTime,
|
|
123
|
+
* endingDateTime, productionDateTime, lastUpdateDateTime) of the granule if
|
|
124
|
+
* available.
|
|
114
125
|
*/
|
|
115
|
-
export function getGranuleTemporalInfo(granule: Object): Object
|
|
126
|
+
export function getGranuleTemporalInfo(granule: Object): Promise<Object>;
|
|
116
127
|
/**
|
|
117
128
|
* Call CMR to get the all matching Collections information with a compound query call.
|
|
118
129
|
*
|
|
@@ -121,6 +132,7 @@ export function getGranuleTemporalInfo(granule: Object): Object;
|
|
|
121
132
|
* containing the found collections
|
|
122
133
|
*/
|
|
123
134
|
export function getCollectionsByShortNameAndVersion(results: Array<Object>): Promise<Object>;
|
|
135
|
+
export function getS3UrlOfFile(file: any): any;
|
|
124
136
|
/**
|
|
125
137
|
* Call CMR to get a list of bucket/paths that a user has access to
|
|
126
138
|
*
|
|
@@ -133,10 +145,12 @@ export function getUserAccessibleBuckets(edlUser: string, cmrProvider?: string):
|
|
|
133
145
|
* Reduce granule object array to CMR files array
|
|
134
146
|
*
|
|
135
147
|
* @param {Array<Object>} granules - granule objects array
|
|
148
|
+
* @param {Function} filterFunc - function to determine if the given file object is a
|
|
149
|
+
CMR file; defaults to `isCMRFile`
|
|
136
150
|
*
|
|
137
|
-
* @returns {Array<Object>} - CMR file object array: {
|
|
151
|
+
* @returns {Array<Object>} - CMR file object array: { etag, bucket, key, granuleId }
|
|
138
152
|
*/
|
|
139
|
-
export function granulesToCmrFileObjects(granules: Array<Object
|
|
153
|
+
export function granulesToCmrFileObjects(granules: Array<Object>, filterFunc?: Function): Array<Object>;
|
|
140
154
|
/**
|
|
141
155
|
* Returns True if this object can be determined to be a cmrMetadata object.
|
|
142
156
|
*
|
|
@@ -145,9 +159,25 @@ export function granulesToCmrFileObjects(granules: Array<Object>): Array<Object>
|
|
|
145
159
|
*/
|
|
146
160
|
export function isCMRFile(fileobject: Object): boolean;
|
|
147
161
|
export function isCMRFilename(filename: any): any;
|
|
148
|
-
export function
|
|
149
|
-
export function
|
|
150
|
-
|
|
162
|
+
export function isCMRISOFilename(filename: any): any;
|
|
163
|
+
export function isECHO10Filename(filename: any): any;
|
|
164
|
+
/**
|
|
165
|
+
* Returns True if this object can be determined to be an ISO file object.
|
|
166
|
+
*
|
|
167
|
+
* @param {Object} fileobject
|
|
168
|
+
* @returns {boolean} true if object references an ISO file metadata.
|
|
169
|
+
*/
|
|
170
|
+
export function isISOFile(fileobject: Object): boolean;
|
|
171
|
+
export function isISOFilename(filename: any): any;
|
|
172
|
+
export function isUMMGFilename(filename: any): any;
|
|
173
|
+
/**
|
|
174
|
+
* Maps etag values from the specified granules' files.
|
|
175
|
+
*
|
|
176
|
+
* @param {Object[]} files - array of file objects with `bucket`, `key` and
|
|
177
|
+
* `etag` properties
|
|
178
|
+
* @returns {Object} mapping of file S3 URIs to etags
|
|
179
|
+
*/
|
|
180
|
+
export function mapFileEtags(files: Object[]): Object;
|
|
151
181
|
/**
|
|
152
182
|
* Returns CMR metadata object from a CMR ECHO-10 XML file or CMR UMMG JSON
|
|
153
183
|
* file in S3.
|
|
@@ -158,8 +188,8 @@ export function isUMMGFile(filename: any): any;
|
|
|
158
188
|
* @returns {Promise<Object>} metadata object from the file
|
|
159
189
|
* @throws {Error} if the specified filename does not represent an ECHO-10 XML
|
|
160
190
|
* file or a UMMG file
|
|
161
|
-
* @see
|
|
162
|
-
* @see
|
|
191
|
+
* @see isECHO10Filename
|
|
192
|
+
* @see isUMMGFilename
|
|
163
193
|
*/
|
|
164
194
|
export function metadataObjectFromCMRFile(cmrFilename: string, etag?: string | undefined): Promise<Object>;
|
|
165
195
|
/**
|
|
@@ -213,6 +243,13 @@ export function reconcileCMRMetadata({ granuleId, updatedFiles, distEndpoint, pu
|
|
|
213
243
|
cmrGranuleUrlType: string;
|
|
214
244
|
distributionBucketMap: any;
|
|
215
245
|
}): Promise<void | Object>;
|
|
246
|
+
/**
|
|
247
|
+
* Remove ETags to match output schema
|
|
248
|
+
*
|
|
249
|
+
* @param {Object} granule - output granule object
|
|
250
|
+
* @returns {undefined}
|
|
251
|
+
*/
|
|
252
|
+
export function removeEtagsFromFileObjects(granule: Object): undefined;
|
|
216
253
|
/**
|
|
217
254
|
* Modifies cmr metadata file with file's URLs updated to their new locations.
|
|
218
255
|
*
|
package/cmr-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmr-utils.d.ts","sourceRoot":"","sources":["src/cmr-utils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cmr-utils.d.ts","sourceRoot":"","sources":["src/cmr-utils.js"],"names":[],"mappings":"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"}
|
package/cmr-utils.js
CHANGED
|
@@ -9,17 +9,18 @@ const js2xmlParser = require('js2xmlparser');
|
|
|
9
9
|
const path = require('path');
|
|
10
10
|
const urljoin = require('url-join');
|
|
11
11
|
const xml2js = require('xml2js');
|
|
12
|
+
const omit = require('lodash/omit');
|
|
12
13
|
const { buildS3Uri, parseS3Uri, promiseS3Upload, s3GetObjectTagging, s3TagSetToQueryString, waitForObject, } = require('@cumulus/aws-client/S3');
|
|
13
14
|
const { s3 } = require('@cumulus/aws-client/services');
|
|
14
15
|
const { getSecretString } = require('@cumulus/aws-client/SecretsManager');
|
|
15
16
|
const launchpad = require('@cumulus/launchpad-auth');
|
|
16
|
-
const
|
|
17
|
-
const omit = require('lodash/omit');
|
|
17
|
+
const Logger = require('@cumulus/logger');
|
|
18
18
|
const errors = require('@cumulus/errors');
|
|
19
19
|
const { CMR, getSearchUrl, ummVersion } = require('@cumulus/cmr-client');
|
|
20
20
|
const { constructDistributionUrl } = require('@cumulus/distribution-utils');
|
|
21
21
|
const { getBucketAccessUrl } = require('@cumulus/cmr-client/getUrl');
|
|
22
22
|
const { xmlParseOptions, ummVersionToMetadataFormat, } = require('./utils');
|
|
23
|
+
const log = new Logger({ sender: '@cumulus/cmrjs/src/cmr-utils' });
|
|
23
24
|
function getS3KeyOfFile(file) {
|
|
24
25
|
if (file.filename)
|
|
25
26
|
return parseS3Uri(file.filename).Key;
|
|
@@ -58,12 +59,13 @@ function getFileDescription(file, urlType = 'distribution') {
|
|
|
58
59
|
const filename = getFilename(file);
|
|
59
60
|
return filename ? `Download ${filename}` : 'File to download';
|
|
60
61
|
}
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
||
|
|
62
|
+
const isECHO10Filename = (filename) => filename.endsWith('cmr.xml');
|
|
63
|
+
const isUMMGFilename = (filename) => filename.endsWith('cmr.json');
|
|
64
|
+
const isISOFilename = (filename) => filename.endsWith('.iso.xml');
|
|
65
|
+
const isCMRISOFilename = (filename) => filename.endsWith('cmr_iso.xml');
|
|
66
|
+
const isCMRFilename = (filename) => isECHO10Filename(filename)
|
|
67
|
+
|| isUMMGFilename(filename)
|
|
68
|
+
|| isCMRISOFilename(filename);
|
|
67
69
|
const constructCmrConceptLink = (conceptId, extension) => `${getSearchUrl()}concepts/${conceptId}.${extension}`;
|
|
68
70
|
/**
|
|
69
71
|
* Returns True if this object can be determined to be a cmrMetadata object.
|
|
@@ -75,6 +77,16 @@ function isCMRFile(fileobject) {
|
|
|
75
77
|
const cmrfilename = fileobject.key || fileobject.name || fileobject.filename || '';
|
|
76
78
|
return isCMRFilename(cmrfilename);
|
|
77
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Returns True if this object can be determined to be an ISO file object.
|
|
82
|
+
*
|
|
83
|
+
* @param {Object} fileobject
|
|
84
|
+
* @returns {boolean} true if object references an ISO file metadata.
|
|
85
|
+
*/
|
|
86
|
+
function isISOFile(fileobject) {
|
|
87
|
+
const filename = fileobject.key || fileobject.name || fileobject.filename || '';
|
|
88
|
+
return isISOFilename(filename) || isCMRISOFilename(filename);
|
|
89
|
+
}
|
|
78
90
|
/**
|
|
79
91
|
* Extracts CMR file objects from the specified granule object.
|
|
80
92
|
*
|
|
@@ -82,29 +94,36 @@ function isCMRFile(fileobject) {
|
|
|
82
94
|
* `files` property
|
|
83
95
|
* @param {Array<Object>} granule.files - array of files for a granule
|
|
84
96
|
* @param {string} granule.granuleId - granule ID
|
|
97
|
+
* @param {Function} filterFunc - function to determine if the given file object is a
|
|
98
|
+
CMR file; defaults to `isCMRFile`
|
|
85
99
|
* @returns {Array<Object>} an array of CMR file objects, each with properties
|
|
86
|
-
* `granuleId`, `
|
|
100
|
+
* `granuleId`, `bucket`, `key`, and possibly `etag` (if present on input)
|
|
87
101
|
*/
|
|
88
|
-
function granuleToCmrFileObject({ granuleId, files = [] }) {
|
|
102
|
+
function granuleToCmrFileObject({ granuleId, files = [] }, filterFunc = isCMRFile) {
|
|
89
103
|
return files
|
|
90
|
-
.filter(
|
|
91
|
-
.map((file) =>
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
104
|
+
.filter(filterFunc)
|
|
105
|
+
.map((file) => {
|
|
106
|
+
const { Bucket, Key } = parseS3Uri(getS3UrlOfFile(file));
|
|
107
|
+
return {
|
|
108
|
+
// Include etag only if file has one
|
|
109
|
+
...pick(file, 'etag'),
|
|
110
|
+
bucket: Bucket,
|
|
111
|
+
key: Key,
|
|
112
|
+
granuleId,
|
|
113
|
+
};
|
|
114
|
+
});
|
|
98
115
|
}
|
|
99
116
|
/**
|
|
100
117
|
* Reduce granule object array to CMR files array
|
|
101
118
|
*
|
|
102
119
|
* @param {Array<Object>} granules - granule objects array
|
|
120
|
+
* @param {Function} filterFunc - function to determine if the given file object is a
|
|
121
|
+
CMR file; defaults to `isCMRFile`
|
|
103
122
|
*
|
|
104
|
-
* @returns {Array<Object>} - CMR file object array: {
|
|
123
|
+
* @returns {Array<Object>} - CMR file object array: { etag, bucket, key, granuleId }
|
|
105
124
|
*/
|
|
106
|
-
function granulesToCmrFileObjects(granules) {
|
|
107
|
-
return granules.flatMap(granuleToCmrFileObject);
|
|
125
|
+
function granulesToCmrFileObjects(granules, filterFunc = isCMRFile) {
|
|
126
|
+
return granules.flatMap((granule) => granuleToCmrFileObject(granule, filterFunc));
|
|
108
127
|
}
|
|
109
128
|
/**
|
|
110
129
|
* Posts CMR XML files from S3 to CMR.
|
|
@@ -183,11 +202,12 @@ async function publishUMMGJSON2CMR(cmrFile, cmrClient, revisionId) {
|
|
|
183
202
|
*/
|
|
184
203
|
async function publish2CMR(cmrPublishObject, creds, cmrRevisionId) {
|
|
185
204
|
const cmrClient = new CMR(creds);
|
|
205
|
+
const cmrFileName = getFilename(cmrPublishObject);
|
|
186
206
|
// choose xml or json and do the things.
|
|
187
|
-
if (
|
|
207
|
+
if (isECHO10Filename(cmrFileName)) {
|
|
188
208
|
return await publishECHO10XML2CMR(cmrPublishObject, cmrClient, cmrRevisionId);
|
|
189
209
|
}
|
|
190
|
-
if (
|
|
210
|
+
if (isUMMGFilename(cmrFileName)) {
|
|
191
211
|
return await publishUMMGJSON2CMR(cmrPublishObject, cmrClient, cmrRevisionId);
|
|
192
212
|
}
|
|
193
213
|
throw new Error(`invalid cmrPublishObject passed to publis2CMR ${JSON.stringify(cmrPublishObject)}`);
|
|
@@ -262,14 +282,14 @@ const metadataObjectFromCMRXMLFile = (cmrFilename, etag) => getXMLMetadataAsStri
|
|
|
262
282
|
* @returns {Promise<Object>} metadata object from the file
|
|
263
283
|
* @throws {Error} if the specified filename does not represent an ECHO-10 XML
|
|
264
284
|
* file or a UMMG file
|
|
265
|
-
* @see
|
|
266
|
-
* @see
|
|
285
|
+
* @see isECHO10Filename
|
|
286
|
+
* @see isUMMGFilename
|
|
267
287
|
*/
|
|
268
288
|
function metadataObjectFromCMRFile(cmrFilename, etag) {
|
|
269
|
-
if (
|
|
289
|
+
if (isECHO10Filename(cmrFilename) || isISOFilename(cmrFilename)) {
|
|
270
290
|
return metadataObjectFromCMRXMLFile(cmrFilename, etag);
|
|
271
291
|
}
|
|
272
|
-
if (
|
|
292
|
+
if (isUMMGFilename(cmrFilename)) {
|
|
273
293
|
return metadataObjectFromCMRJSONFile(cmrFilename, etag);
|
|
274
294
|
}
|
|
275
295
|
throw new Error(`Cannot retrieve metadata: invalid CMR filename: ${cmrFilename}`);
|
|
@@ -313,6 +333,49 @@ function mapCNMTypeToCMRType(type, urlType = 'distribution', useDirectS3Type = f
|
|
|
313
333
|
}
|
|
314
334
|
return mappedType;
|
|
315
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* Add ETags to file objects as some downstream functions expect this structure.
|
|
338
|
+
*
|
|
339
|
+
* @param {Object} granule - input granule object
|
|
340
|
+
* @param {Object} etags - map of s3URIs and ETags
|
|
341
|
+
* @returns {Object} - updated granule object
|
|
342
|
+
*/
|
|
343
|
+
function addEtagsToFileObjects(granule, etags) {
|
|
344
|
+
granule.files.forEach((incomingFile) => {
|
|
345
|
+
const file = incomingFile;
|
|
346
|
+
const fileURI = getS3UrlOfFile(file);
|
|
347
|
+
if (etags[fileURI])
|
|
348
|
+
file.etag = etags[fileURI];
|
|
349
|
+
});
|
|
350
|
+
return granule;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Remove ETags to match output schema
|
|
354
|
+
*
|
|
355
|
+
* @param {Object} granule - output granule object
|
|
356
|
+
* @returns {undefined}
|
|
357
|
+
*/
|
|
358
|
+
function removeEtagsFromFileObjects(granule) {
|
|
359
|
+
granule.files.forEach((incomingFile) => {
|
|
360
|
+
const file = incomingFile;
|
|
361
|
+
delete file.etag;
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Maps etag values from the specified granules' files.
|
|
366
|
+
*
|
|
367
|
+
* @param {Object[]} files - array of file objects with `bucket`, `key` and
|
|
368
|
+
* `etag` properties
|
|
369
|
+
* @returns {Object} mapping of file S3 URIs to etags
|
|
370
|
+
*/
|
|
371
|
+
function mapFileEtags(files) {
|
|
372
|
+
return files.reduce((filesMap, file) => {
|
|
373
|
+
const { bucket, key, etag } = file;
|
|
374
|
+
const s3Uri = getS3UrlOfFile({ bucket, key });
|
|
375
|
+
filesMap[s3Uri] = etag; // eslint-disable-line no-param-reassign
|
|
376
|
+
return filesMap;
|
|
377
|
+
}, {});
|
|
378
|
+
}
|
|
316
379
|
/**
|
|
317
380
|
* generate a url for a given file and a url type.
|
|
318
381
|
*
|
|
@@ -364,7 +427,7 @@ function constructOnlineAccessUrl({ file, distEndpoint, bucketTypes, urlType = '
|
|
|
364
427
|
URL: fileUrl,
|
|
365
428
|
URLDescription: fileDescription,
|
|
366
429
|
Description: fileDescription,
|
|
367
|
-
Type: mapCNMTypeToCMRType(file.type, urlType, useDirectS3Type),
|
|
430
|
+
Type: mapCNMTypeToCMRType(file.type, urlType, useDirectS3Type), // used by ECHO10/UMMG
|
|
368
431
|
};
|
|
369
432
|
}
|
|
370
433
|
}
|
|
@@ -594,6 +657,7 @@ async function getCmrSettings(cmrConfig = {}) {
|
|
|
594
657
|
const cmrCredentials = {
|
|
595
658
|
provider: cmrConfig.provider || process.env.cmr_provider,
|
|
596
659
|
clientId: cmrConfig.clientId || process.env.cmr_client_id,
|
|
660
|
+
oauthProvider,
|
|
597
661
|
};
|
|
598
662
|
if (oauthProvider === 'launchpad') {
|
|
599
663
|
const launchpadPassphraseSecretName = cmrConfig.passphraseSecretName
|
|
@@ -741,10 +805,10 @@ async function updateCMRMetadata({ granuleId, cmrFile, files, distEndpoint, publ
|
|
|
741
805
|
};
|
|
742
806
|
let metadataObject;
|
|
743
807
|
let etag;
|
|
744
|
-
if (
|
|
808
|
+
if (isECHO10Filename(filename)) {
|
|
745
809
|
({ metadataObject, etag } = await updateEcho10XMLMetadata(params));
|
|
746
810
|
}
|
|
747
|
-
else if (
|
|
811
|
+
else if (isUMMGFilename(filename)) {
|
|
748
812
|
({ metadataObject, etag } = await updateUMMGMetadata(params));
|
|
749
813
|
}
|
|
750
814
|
else {
|
|
@@ -851,57 +915,84 @@ async function getUserAccessibleBuckets(edlUser, cmrProvider = process.env.cmr_p
|
|
|
851
915
|
* Extract temporal information from granule object
|
|
852
916
|
*
|
|
853
917
|
* @param {Object} granule - granule object
|
|
854
|
-
* @returns {Object} - temporal information (beginningDateTime,
|
|
855
|
-
* lastUpdateDateTime) of the granule if
|
|
918
|
+
* @returns {Promise<Object>} - temporal information (beginningDateTime,
|
|
919
|
+
* endingDateTime, productionDateTime, lastUpdateDateTime) of the granule if
|
|
920
|
+
* available.
|
|
856
921
|
*/
|
|
857
922
|
async function getGranuleTemporalInfo(granule) {
|
|
858
923
|
const cmrFile = granuleToCmrFileObject(granule);
|
|
859
924
|
if (cmrFile.length === 0)
|
|
860
925
|
return {};
|
|
861
|
-
const cmrFilename = cmrFile[0]
|
|
862
|
-
if (
|
|
926
|
+
const cmrFilename = getS3UrlOfFile(cmrFile[0]);
|
|
927
|
+
if (isCMRISOFilename(cmrFilename)) {
|
|
863
928
|
const metadata = await metadataObjectFromCMRXMLFile(cmrFilename);
|
|
864
|
-
const metadataMI = metadata
|
|
929
|
+
const metadataMI = get(metadata, 'gmd:DS_Series.gmd:composedOf.gmd:DS_DataSet.gmd:has.gmi:MI_Metadata');
|
|
865
930
|
// Get beginning and ending date time from beginPosition and endPosition
|
|
866
931
|
const identificationInfo = metadataMI['gmd:identificationInfo'];
|
|
867
932
|
const dataIdentification = identificationInfo.find((dataIdObject) => Object.keys(dataIdObject).filter((key) => Object.keys(dataIdObject[key]).includes('gmd:extent')));
|
|
868
|
-
const temporalInfo = dataIdentification
|
|
869
|
-
|
|
870
|
-
|
|
933
|
+
const temporalInfo = get(dataIdentification, 'gmd:MD_DataIdentification.gmd:extent.gmd:EX_Extent.gmd:temporalElement.gmd:EX_TemporalExtent.gmd:extent.gml:TimePeriod');
|
|
934
|
+
let beginningDateTime = get(temporalInfo, 'gml:beginPosition');
|
|
935
|
+
let endingDateTime = get(temporalInfo, 'gml:endPosition');
|
|
936
|
+
if (!beginningDateTime) {
|
|
937
|
+
const singleDateTime = get(dataIdentification, 'gmd:MD_DataIdentification.gmd:extent.gmd:EX_Extent.gmd:temporalElement.gmd:EX_TemporalExtent.gmd:extent.gml:TimeInstant.gml:timePosition');
|
|
938
|
+
beginningDateTime = singleDateTime;
|
|
939
|
+
endingDateTime = singleDateTime;
|
|
940
|
+
}
|
|
871
941
|
// Get production date time from LE_ProcessStep
|
|
872
|
-
const productionDateTime = metadataMI
|
|
942
|
+
const productionDateTime = get(metadataMI, 'gmd:dataQualityInfo.gmd:DQ_DataQuality.gmd:lineage.gmd:LI_Lineage.gmd:processStep.gmi:LE_ProcessStep.gmd:dateTime.gco:DateTime');
|
|
873
943
|
// Get last update date time from CI_Citation with UpdateTime
|
|
874
|
-
const citation = identificationInfo.find((dataIdObject) => dataIdObject
|
|
875
|
-
const lastUpdateDateTime = citation
|
|
876
|
-
return {
|
|
944
|
+
const citation = identificationInfo.find((dataIdObject) => get(dataIdObject, 'gmd:MD_DataIdentification.gmd:citation.gmd:CI_Citation.gmd:title.gco:CharacterString') === 'UpdateTime');
|
|
945
|
+
const lastUpdateDateTime = get(citation, 'gmd:MD_DataIdentification.gmd:citation.gmd:CI_Citation.gmd:date.gmd:CI_Date.gmd:date.gco:DateTime');
|
|
946
|
+
return {
|
|
947
|
+
beginningDateTime,
|
|
948
|
+
endingDateTime,
|
|
949
|
+
productionDateTime,
|
|
950
|
+
lastUpdateDateTime,
|
|
951
|
+
};
|
|
877
952
|
}
|
|
878
|
-
if (
|
|
953
|
+
if (isECHO10Filename(cmrFilename)) {
|
|
879
954
|
const metadata = await metadataObjectFromCMRXMLFile(cmrFilename);
|
|
880
|
-
|
|
881
|
-
|
|
955
|
+
let beginningDateTime = get(metadata.Granule, 'Temporal.RangeDateTime.BeginningDateTime');
|
|
956
|
+
let endingDateTime = get(metadata.Granule, 'Temporal.RangeDateTime.EndingDateTime');
|
|
957
|
+
if (!beginningDateTime) {
|
|
958
|
+
const singleDateTime = get(metadata.Granule, 'Temporal.SingleDateTime');
|
|
959
|
+
beginningDateTime = singleDateTime;
|
|
960
|
+
endingDateTime = singleDateTime;
|
|
961
|
+
}
|
|
882
962
|
const productionDateTime = get(metadata.Granule, 'DataGranule.ProductionDateTime');
|
|
883
963
|
const lastUpdateDateTime = metadata.Granule.LastUpdate || metadata.Granule.InsertTime;
|
|
884
964
|
return {
|
|
885
|
-
beginningDateTime,
|
|
965
|
+
beginningDateTime,
|
|
966
|
+
endingDateTime,
|
|
967
|
+
productionDateTime,
|
|
968
|
+
lastUpdateDateTime,
|
|
886
969
|
};
|
|
887
970
|
}
|
|
888
|
-
if (
|
|
971
|
+
if (isUMMGFilename(cmrFilename)) {
|
|
889
972
|
const metadata = await metadataObjectFromCMRJSONFile(cmrFilename);
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
973
|
+
let beginningDateTime = get(metadata, 'TemporalExtent.RangeDateTime.BeginningDateTime');
|
|
974
|
+
let endingDateTime = get(metadata, 'TemporalExtent.RangeDateTime.EndingDateTime');
|
|
975
|
+
if (!beginningDateTime) {
|
|
976
|
+
const singleDateTime = get(metadata, 'TemporalExtent.SingleDateTime');
|
|
977
|
+
beginningDateTime = singleDateTime;
|
|
978
|
+
endingDateTime = singleDateTime;
|
|
896
979
|
}
|
|
897
|
-
const
|
|
980
|
+
const productionDateTime = get(metadata, 'DataGranule.ProductionDateTime');
|
|
981
|
+
const lastUpdateDateTime = (metadata.ProviderDates.find((d) => d.Type === 'Update')
|
|
982
|
+
|| metadata.ProviderDates.find((d) => d.Type === 'Insert')
|
|
983
|
+
|| metadata.ProviderDates.find((d) => d.Type === 'Create')
|
|
984
|
+
|| {}).Date;
|
|
898
985
|
return {
|
|
899
|
-
beginningDateTime,
|
|
986
|
+
beginningDateTime,
|
|
987
|
+
endingDateTime,
|
|
988
|
+
productionDateTime,
|
|
989
|
+
lastUpdateDateTime,
|
|
900
990
|
};
|
|
901
991
|
}
|
|
902
992
|
return {};
|
|
903
993
|
}
|
|
904
994
|
module.exports = {
|
|
995
|
+
addEtagsToFileObjects,
|
|
905
996
|
constructCmrConceptLink,
|
|
906
997
|
constructOnlineAccessUrl,
|
|
907
998
|
constructOnlineAccessUrls,
|
|
@@ -913,16 +1004,21 @@ module.exports = {
|
|
|
913
1004
|
getFilename,
|
|
914
1005
|
getGranuleTemporalInfo,
|
|
915
1006
|
getCollectionsByShortNameAndVersion,
|
|
1007
|
+
getS3UrlOfFile,
|
|
916
1008
|
getUserAccessibleBuckets,
|
|
917
1009
|
granulesToCmrFileObjects,
|
|
918
1010
|
isCMRFile,
|
|
919
1011
|
isCMRFilename,
|
|
920
|
-
|
|
1012
|
+
isCMRISOFilename,
|
|
1013
|
+
isECHO10Filename,
|
|
921
1014
|
isISOFile,
|
|
922
|
-
|
|
1015
|
+
isISOFilename,
|
|
1016
|
+
isUMMGFilename,
|
|
1017
|
+
mapFileEtags,
|
|
923
1018
|
metadataObjectFromCMRFile,
|
|
924
1019
|
publish2CMR,
|
|
925
1020
|
reconcileCMRMetadata,
|
|
1021
|
+
removeEtagsFromFileObjects,
|
|
926
1022
|
updateCMRMetadata,
|
|
927
1023
|
uploadEcho10CMRFile,
|
|
928
1024
|
uploadUMMGJSONCMRFile,
|
package/cmr-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmr-utils.js","sourceRoot":"","sources":["src/cmr-utils.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmr-utils.js","sourceRoot":"","sources":["src/cmr-utils.js"],"names":[],"mappings":"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"}
|