@cumulus/cmrjs 20.1.1 → 20.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/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":"AAAA,YAAY,CAAC;AAEb,WAAW;AAEX,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAClC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACpC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAClC,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACpC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACpC,MAAM,EACJ,UAAU,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,uBAAuB,GACxB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACtC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AACvD,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;AAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACrD,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC1C,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACzE,MAAM,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAC5E,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACrE,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAC1E,MAAM,EACJ,eAAe,EACf,0BAA0B,GAC3B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACvB,4BAA4B;AAC5B;;;;GAIG;AACH,2BAA2B;AAC3B,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAC;AAEnE,MAAM,eAAe,GAAG,eAAe,CAAC;AAExC;;;;;;;;GAQG;AAEH,SAAS,cAAc,CAAC,IAAI;IAC1B,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;IACxD,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACxC,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC;IAC9B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,cAAc,CAAC,IAAI;IAC1B,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACxC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,WAAW,CAAC,IAAI;IACvB,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACxC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAChC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc;IACxD,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,iEAAiE,CAAC;KAC1E;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAChE,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpE,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAClE,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACxE,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;OACzD,cAAc,CAAC,QAAQ,CAAC;OACxB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAEhC,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,YAAY,EAAE,YAAY,SAAS,IAAI,SAAS,EAAE,CAAC;AAEhH;;;;;GAKG;AACH,SAAS,SAAS,CAAC,UAAU;IAC3B,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;IACnF,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,UAAU;IAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;IAChF,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,UAAU,GAAG,SAAS;IAC/E,OAAO,KAAK;SACT,MAAM,CAAC,UAAU,CAAC;SAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,OAAO;YACL,oCAAoC;YACpC,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;YACrB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG;YACR,SAAS;SACV,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,wBAAwB,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS;IAChE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU;IAChE,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,SAAS,GAAG,aAAa,OAAO,CAAC,SAAS,2BAA2B,SAAS,EAAE,CAAC;IAErF,IAAI,UAAU;QAAE,SAAS,IAAI,iBAAiB,UAAU,EAAE,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEpB,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC;QACjC,SAAS;QACT,cAAc,EAAE,QAAQ;QACxB,IAAI,EAAE,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC;KACnD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU;IAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;IACnD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAEpC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,0BAA0B,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,SAAS,GAAG,kBAAkB,SAAS,2BAA2B,SAAS,EAAE,CAAC;IAElF,IAAI,UAAU;QAAE,SAAS,IAAI,iBAAiB,UAAU,EAAE,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEpB,OAAO;QACL,SAAS;QACT,QAAQ;QACR,SAAS;QACT,cAAc;QACd,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,aAAa;IACzD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAClD,wCAAwC;IACxC,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;QACjC,OAAO,oBAAoB,CAAC,gBAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;KACzE;IACD,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE;QAC/B,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;KACxE;IACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;AACvG,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAAC,SAAS,EAAE,KAAK;IAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAAC,QAAQ,EAAE,IAAI;IAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,IAAI;QACjB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;QAChC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAEpB,OAAO,MAAM,aAAa,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,sBAAsB,CAAC,WAAW,EAAE,IAAI;IACrD,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,gCAAgC,CAAC,CAAC;KACxE;IACD,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACzD,OAAO,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAC,GAAG;IAC/B,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,6BAA6B,CAAC,WAAW,EAAE,IAAI;IAC5D,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,4BAA4B,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CACzD,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,SAAS,yBAAyB,CAAC,WAAW,EAAE,IAAI;IAClD,IAAI,gBAAgB,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE;QAC/D,OAAO,4BAA4B,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KACxD;IACD,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE;QAC/B,OAAO,6BAA6B,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KACzD;IACD,MAAM,IAAI,KAAK,CACb,mDAAmD,WAAW,EAAE,CACjE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,UAAU;IACxC,OAAO;QACL,GAAG,EAAE,UAAU;QACf,cAAc,EAAE,uFAAuF;QACvG,WAAW,EAAE,uFAAuF;QACpG,IAAI,EAAE,0BAA0B;KACjC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,EAAE,eAAe,GAAG,KAAK;IAClF,MAAM,OAAO,GAAG;QACd,SAAS,EAAE,0BAA0B;QACrC,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,2BAA2B;QACnC,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,mBAAmB;QAC7B,EAAE,EAAE,mBAAmB;KACxB,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC;IAE/C,gFAAgF;IAChF,4FAA4F;IAC5F,IAAI,OAAO,KAAK,IAAI,IAAI,UAAU,KAAK,UAAU,IAAI,eAAe,EAAE;QACpE,OAAO,4BAA4B,CAAC;KACrC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,OAAO,EAAE,KAAK;IAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC;QAC1B,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,OAAO;IACzC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAK;IACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;QACrC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,wCAAwC;QAChE,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,eAAe,CAAC,EACvB,IAAI,EACJ,YAAY,EACZ,OAAO,GAAG,cAAc,EACxB,qBAAqB,GACtB;IACC,IAAI,OAAO,KAAK,cAAc,EAAE;QAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;KAC5F;IAED,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB;;uEAE+D;QAC/D,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1C;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AAEH;;;;;;;;;;;GAWG;AACH,SAAS,wBAAwB,CAAC,EAChC,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,OAAO,GAAG,cAAc,EACxB,qBAAqB,EACrB,eAAe,GAAG,KAAK,GACxB;IACC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC/C,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACxF,IAAI,OAAO,EAAE;YACX,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO;gBACL,GAAG,EAAE,OAAO;gBACZ,cAAc,EAAE,eAAe;gBAC/B,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,sBAAsB;aACvF,CAAC;SACH;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,yBAAyB,CAAC,EACjC,KAAK,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,GAAG,MAAM,EAC1B,qBAAqB,EACrB,eAAe,GAAG,KAAK,GACxB;IACC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,wBAAwB,iBAAiB,+CAA+C,CAAC,CAAC;KAC3G;IAED,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE;QACjF,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YACxD,MAAM,GAAG,GAAG,wBAAwB,CAAC;gBACnC,IAAI;gBACJ,YAAY;gBACZ,WAAW;gBACX,OAAO,EAAE,cAAc;gBACvB,qBAAqB;gBACrB,eAAe;aAChB,CAAC,CAAC;YACH,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC3B;QACD,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YAC9C,MAAM,GAAG,GAAG,wBAAwB,CAAC;gBACnC,IAAI;gBACJ,YAAY;gBACZ,WAAW;gBACX,OAAO,EAAE,IAAI;gBACb,qBAAqB;gBACrB,eAAe;aAChB,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjB;QACD,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,GAAG,MAAM,EAC1B,qBAAqB,EACrB,eAAe,GAAG,KAAK,GACxB;IACC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACxD,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,yBAAyB,CAAC;QAC9C,KAAK;QACL,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,qBAAqB;QACrB,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC9D,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,KAAK,EAAE,WAAW;IAClD,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE5C,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;YAClD,OAAO,GAAG,CAAC;SACZ;QAED,OAAO;YACL,GAAG,GAAG;YACN,EAAE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE;SAC9B,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,KAAK;IAC3B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE;IACrD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;WACrD,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACxD,CAAC;IAEF,MAAM,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACrD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CACrC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAC7D,CAAC;QACF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,sDAAsD;YACtD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;YACpF,OAAO;gBACL,GAAG,GAAG;gBACN,GAAG,eAAe,CAAC,CAAC,CAAC;gBACrB,GAAG,eAAe;aACnB,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,0BAA0B,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,qBAAqB,CAAC,cAAc,EAAE,OAAO;IAC1D,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,eAAe,CAAC;QACrB,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;YACpC,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,kBAAkB;SAChC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,cAAc;IAC3C,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACrC,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,4DAA4D;IAC5D,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,uBAAuB,EAAE;QAC3G,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB,CAAC,EAChC,cAAc,EACd,KAAK,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,GAAG,MAAM,EAC1B,qBAAqB,GACtB;IACC,MAAM,qBAAqB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,oBAAoB,CAAC;QACnC,KAAK;QACL,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,qBAAqB;QACrB,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,GAAG,CAAC,qBAAqB,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACjE,GAAG,CAAC,qBAAqB,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IACtD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,kBAAkB,CAAC,EAChC,OAAO,EACP,KAAK,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,GAAG,MAAM,EAC1B,qBAAqB,GACtB;IACC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,MAAM,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;QACrD,cAAc;QACd,KAAK;QACL,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,qBAAqB;KACtB,CAAC,CAAC;IACH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,qBAAqB,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IACnF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;EAeE;AACF,KAAK,UAAU,cAAc,CAAC,SAAS,GAAG,EAAE;IAC1C,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAEhF,MAAM,cAAc,GAAG;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QACxD,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QACzD,aAAa;KACd,CAAC;IAEF,IAAI,aAAa,KAAK,WAAW,EAAE;QACjC,MAAM,6BAA6B,GAAG,SAAS,CAAC,oBAAoB;eAC/D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,eAAe,CACtC,6BAA6B,CAC9B,CAAC;QAEF,MAAM,MAAM,GAAG;YACb,UAAU;YACV,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;YAC/C,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;SACxE,CAAC;QAEF,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO;YACL,GAAG,cAAc;YACjB,KAAK;SACN,CAAC;KACH;IAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB;WAClD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,kBAAkB,CACnB,CAAC;IAEF,OAAO;QACL,GAAG,cAAc;QACjB,QAAQ;QACR,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAO;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,IAAI,GAAG,KAAK,kBAAkB,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;SACzD;aAAM,IAAI,GAAG,KAAK,iBAAiB,EAAE;YACpC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SAChC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAAC,GAAG,EAAE,OAAO;IAC7C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,eAAe,CAAC;QACrB,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC;YAC5B,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,iBAAiB;SAC/B;KACF,CAAC,CAAC;AACL,CAAC;AACD;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB,CAAC,OAAO,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EACpF,QAAQ,EAAE,kBAAkB;IAC5B,IAAI,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAChG,OAAO,SAAS,CAAC,eAAe,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,6BAA6B,CAAC,EACrC,cAAc,EACd,KAAK,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,GAAG,MAAM,EAC1B,qBAAqB,GACtB;IACC,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC;IAC/C,MAAM,cAAc,GAAG,EAAE,GAAG,eAAe,EAAE,CAAC;IAE9C,MAAM,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAC5D,kCAAkC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,0BAA0B,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAC9D,gCAAgC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,4BAA4B,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAChE,6CAA6C,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,yBAAyB,CAAC;QACxC,KAAK;QACL,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,qBAAqB;KACtB,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,OAAO,EAAE,0BAA0B,EACxF,WAAW,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACtF,MAAM,sBAAsB,GAAG,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,EACvF,WAAW,EAAE,CAAC,UAAU,EAAE,4BAA4B,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACpF,MAAM,sBAAsB,GAAG,wBAAwB,CAAC,OAAO,EAAE,4BAA4B,EAC3F,WAAW,EAAE,CAAC,2BAA2B,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,mDAAmD;IACnD,GAAG,CAAC,cAAc,EAAE,kCAAkC,EAAE,sBAAsB,CAAC,CAAC;IAChF,GAAG,CAAC,cAAc,EAAE,gCAAgC,EAAE,qBAAqB,CAAC,CAAC;IAC7E,GAAG,CAAC,cAAc,EAAE,6CAA6C,EAAE,sBAAsB,CAAC,CAAC;IAE3F,OAAO;QACL,GAAG,cAAc;QACjB,OAAO,EAAE,cAAc;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,uBAAuB,CAAC,EACrC,OAAO,EACP,KAAK,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,GAAG,MAAM,EAC1B,qBAAqB,GACtB;IACC,mCAAmC;IACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,MAAM,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;QAC1D,cAAc;QACd,KAAK;QACL,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,qBAAqB;KACtB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,iBAAiB,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,KAAK,EACL,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,GAAG,MAAM,EAC1B,qBAAqB,GACtB;IACC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEzC,GAAG,CAAC,KAAK,CAAC,qCAAqC,SAAS,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAE1F,MAAM,cAAc,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG;QACb,OAAO;QACP,KAAK;QACL,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,qBAAqB;KACtB,CAAC;IAEF,IAAI,cAAc,CAAC;IACnB,IAAI,IAAI,CAAC;IAET,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE;QAC9B,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;KACpE;SAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;QACnC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/D;SAAM;QACL,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;KAC3E;IAED,IAAI,SAAS,EAAE;QACb,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG;YACvB,QAAQ;YACR,cAAc;YACd,SAAS;SACV,CAAC;QAEF,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;KACzE;IAED,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,oBAAoB,CAAC,EAClC,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,GAAG,MAAM,EAC1B,qBAAqB,GACtB;IACC,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACtD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,OAAO,MAAM,iBAAiB,CAAC;YAC7B,SAAS;YACT,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAC5B,KAAK,EAAE,YAAY;YACnB,YAAY;YACZ,SAAS;YACT,iBAAiB;YACjB,qBAAqB;YACrB,WAAW;SACZ,CAAC,CAAC;KACJ;IACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;KACrD;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,aAAa,CAAC,OAAO;IAC5B,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CACxC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAChE,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,mCAAmC,CAAC,OAAO;IACxD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEhF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAC7B,GAAG,YAAY,EAAE,kBAAkB,EACnC;QACE,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,GAAG,OAAO;SACX;KACF,CACF,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY;IACrF,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,sBAAsB,CAAC,OAAO;IAC3C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI;QACF,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;KAC3C;IAAC,OAAO,KAAK,EAAE;QACd,GAAG,CAAC,KAAK,CAAC,2DAA2D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;KACnH;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7D,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QACpD,GAAG,CAAC,IAAI,CAAC,kDAAkD,WAAW,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,CAAC;KACX;IAED,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;QACjC,MAAM,QAAQ,GAAG,MAAM,4BAA4B,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,GAAG,CACpB,QAAQ,EACR,qEAAqE,CACtE,CAAC;QAEF,wEAAwE;QACxE,MAAM,kBAAkB,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAClE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACvC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,GAAG,CACtB,kBAAkB,EAClB,wHAAwH,CACzH,CAAC;QACF,IAAI,iBAAiB,GAAG,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QAC/D,IAAI,cAAc,GAAG,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAE1D,IAAI,CAAC,iBAAiB,EAAE;YACtB,MAAM,cAAc,GAAG,GAAG,CACxB,kBAAkB,EAClB,0IAA0I,CAC3I,CAAC;YACF,iBAAiB,GAAG,cAAc,CAAC;YACnC,cAAc,GAAG,cAAc,CAAC;SACjC;QAED,+CAA+C;QAC/C,MAAM,kBAAkB,GAAG,GAAG,CAC5B,UAAU,EACV,gIAAgI,CACjI,CAAC;QAEF,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CACtC,CAAC,YAAY,EAAE,EAAE,CACf,GAAG,CACD,YAAY,EACZ,sFAAsF,CACvF,KAAK,YAAY,CACrB,CAAC;QACF,MAAM,kBAAkB,GAAG,GAAG,CAC5B,QAAQ,EACR,mGAAmG,CACpG,CAAC;QAEF,OAAO;YACL,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,kBAAkB;SACnB,CAAC;KACH;IACD,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;QACjC,MAAM,QAAQ,GAAG,MAAM,4BAA4B,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,iBAAiB,GAAG,GAAG,CACzB,QAAQ,CAAC,OAAO,EAChB,0CAA0C,CAC3C,CAAC;QACF,IAAI,cAAc,GAAG,GAAG,CACtB,QAAQ,CAAC,OAAO,EAChB,uCAAuC,CACxC,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE;YACtB,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;YACxE,iBAAiB,GAAG,cAAc,CAAC;YACnC,cAAc,GAAG,cAAc,CAAC;SACjC;QACD,MAAM,kBAAkB,GAAG,GAAG,CAC5B,QAAQ,CAAC,OAAO,EAChB,gCAAgC,CACjC,CAAC;QACF,MAAM,kBAAkB,GACpB,QAAQ,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;QAC/D,OAAO;YACL,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,kBAAkB;SACnB,CAAC;KACH;IACD,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE;QAC/B,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,WAAW,CAAC,CAAC;QAClE,IAAI,iBAAiB,GAAG,GAAG,CACzB,QAAQ,EACR,gDAAgD,CACjD,CAAC;QACF,IAAI,cAAc,GAAG,GAAG,CACtB,QAAQ,EACR,6CAA6C,CAC9C,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE;YACtB,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;YACtE,iBAAiB,GAAG,cAAc,CAAC;YACnC,cAAc,GAAG,cAAc,CAAC;SACjC;QACD,MAAM,kBAAkB,GAAG,GAAG,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC;QAC3E,MAAM,kBAAkB,GAAG,CACzB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;eACpD,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;eACvD,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;eACvD,EAAE,CACN,CAAC,IAAI,CAAC;QAEP,OAAO;YACL,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,kBAAkB;SACnB,CAAC;KACH;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,CAC1B,SAAS,EACT,UAAU,EACV,EAAE;IACF,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;QAC1B,MAAM,IAAI,MAAM,CAAC,eAAe,CAC9B,+BAA+B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,yBAAyB,CACtF,CAAC;KACH;IACD,aAAa,CAAC,OAAO,CAAC,UAAU,GAAG;QACjC,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,SAAS,EAAE,UAAU,CAAC,OAAO;KAC9B,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,CACxB,SAAS,EACT,UAAU,EACV,EAAE;IACF,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,GAAG,CAAC,aAAa,EAAE,qBAAqB,EAAE;QACxC,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,OAAO,EAAE,UAAU,CAAC,OAAO;KAC5B,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,CACzB,SAAS,EACT,WAAW,EACX,EAAE;IACF,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE;QAC/B,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC;QAChE,MAAM,iBAAiB,GAAG,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAC;QACjE,IAAI,CAAC,CAAC,cAAc,IAAI,iBAAiB,CAAC,EAAE;YAC1C,MAAM,IAAI,MAAM,CAAC,eAAe,CAC9B,yDAAyD;gBACzD,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,CACpD,CAAC;SACH;QACD,OAAO,qBAAqB,CAC1B,cAAc,EACd,iBAAiB,CAClB,CAAC;KACH;IACD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;IAChE,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;IACnE,IAAI,CAAC,CAAC,cAAc,IAAI,iBAAiB,CAAC,EAAE;QAC1C,MAAM,IAAI,MAAM,CAAC,eAAe,CAC9B,2DAA2D;YAC3D,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CACpD,CAAC;KACH;IACD,OAAO,qBAAqB,CAC1B,cAAc,EACd,iBAAiB,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG;IACf,qBAAqB;IACrB,uBAAuB;IACvB,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,eAAe;IACf,sBAAsB;IACtB,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,sBAAsB;IACtB,mCAAmC;IACnC,cAAc;IACd,wBAAwB;IACxB,wBAAwB;IACxB,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,aAAa;IACb,cAAc;IACd,YAAY;IACZ,yBAAyB;IACzB,WAAW;IACX,oBAAoB;IACpB,0BAA0B;IAC1B,aAAa;IACb,iBAAiB;IACjB,6BAA6B;IAC7B,wBAAwB;IACxB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,qBAAqB;CACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cumulus/cmrjs",
3
- "version": "20.1.1",
3
+ "version": "20.1.2",
4
4
  "description": "A node SDK for CMR",
5
5
  "engines": {
6
6
  "node": ">=20.12.2"
@@ -36,13 +36,14 @@
36
36
  "author": "Cumulus Authors",
37
37
  "license": "Apache-2.0",
38
38
  "dependencies": {
39
- "@cumulus/aws-client": "20.1.1",
40
- "@cumulus/cmr-client": "20.1.1",
41
- "@cumulus/common": "20.1.1",
42
- "@cumulus/distribution-utils": "20.1.1",
43
- "@cumulus/errors": "20.1.1",
44
- "@cumulus/launchpad-auth": "20.1.1",
45
- "@cumulus/logger": "20.1.1",
39
+ "@cumulus/aws-client": "20.1.2",
40
+ "@cumulus/cmr-client": "20.1.2",
41
+ "@cumulus/common": "20.1.2",
42
+ "@cumulus/distribution-utils": "20.1.2",
43
+ "@cumulus/errors": "20.1.2",
44
+ "@cumulus/launchpad-auth": "20.1.2",
45
+ "@cumulus/logger": "20.1.2",
46
+ "@cumulus/message": "20.1.2",
46
47
  "got": "^11.8.1",
47
48
  "js2xmlparser": "^4.0.0",
48
49
  "lodash": "^4.17.21",
@@ -51,7 +52,7 @@
51
52
  "xml2js": "0.5.0"
52
53
  },
53
54
  "devDependencies": {
54
- "@cumulus/types": "19.1.0"
55
+ "@cumulus/types": "20.1.2"
55
56
  },
56
- "gitHead": "dde772911627dd96b944a8eca65fdff388848ec6"
57
+ "gitHead": "051ef1428ac21105fd55370d15e26009f4b49f57"
57
58
  }
package/src/cmr-utils.js CHANGED
@@ -1,9 +1,12 @@
1
1
  'use strict';
2
2
 
3
+ //@ts-check
4
+
3
5
  const got = require('got');
4
6
  const get = require('lodash/get');
5
7
  const pick = require('lodash/pick');
6
8
  const set = require('lodash/set');
9
+ const cloneDeep = require('lodash/cloneDeep');
7
10
  const { promisify } = require('util');
8
11
  const js2xmlParser = require('js2xmlparser');
9
12
  const path = require('path');
@@ -28,13 +31,22 @@ const errors = require('@cumulus/errors');
28
31
  const { CMR, getSearchUrl, ummVersion } = require('@cumulus/cmr-client');
29
32
  const { constructDistributionUrl } = require('@cumulus/distribution-utils');
30
33
  const { getBucketAccessUrl } = require('@cumulus/cmr-client/getUrl');
34
+ const { constructCollectionId } = require('@cumulus/message/Collections');
31
35
  const {
32
36
  xmlParseOptions,
33
37
  ummVersionToMetadataFormat,
34
38
  } = require('./utils');
35
-
39
+ /* eslint-disable max-len */
40
+ /**
41
+ * @typedef {import('@cumulus/cmr-client/CMR').CMRConstructorParams} CMRConstructorParams
42
+ * @typedef {import('@cumulus/distribution-utils/dist/types').DistributionBucketMap} DistributionBucketMap
43
+ * @typedef {import('@cumulus/types').ApiFile} ApiFile
44
+ */
45
+ /* eslint-enable max-len */
36
46
  const log = new Logger({ sender: '@cumulus/cmrjs/src/cmr-utils' });
37
47
 
48
+ const s3CredsEndpoint = 's3credentials';
49
+
38
50
  /**
39
51
  * @typedef {{
40
52
  * provider: string,
@@ -228,18 +240,16 @@ async function publishUMMGJSON2CMR(cmrFile, cmrClient, revisionId) {
228
240
  * @param {string} cmrRevisionId - Optional CMR Revision ID
229
241
  * if not provided, CMR username and password are used to get a cmr token
230
242
  */
231
- async function publish2CMR(cmrPublishObject, creds, cmrRevisionId) {
243
+ function publish2CMR(cmrPublishObject, creds, cmrRevisionId) {
232
244
  const cmrClient = new CMR(creds);
233
245
  const cmrFileName = getFilename(cmrPublishObject);
234
-
235
246
  // choose xml or json and do the things.
236
247
  if (isECHO10Filename(cmrFileName)) {
237
- return await publishECHO10XML2CMR(cmrPublishObject, cmrClient, cmrRevisionId);
248
+ return publishECHO10XML2CMR(cmrPublishObject, cmrClient, cmrRevisionId);
238
249
  }
239
250
  if (isUMMGFilename(cmrFileName)) {
240
- return await publishUMMGJSON2CMR(cmrPublishObject, cmrClient, cmrRevisionId);
251
+ return publishUMMGJSON2CMR(cmrPublishObject, cmrClient, cmrRevisionId);
241
252
  }
242
-
243
253
  throw new Error(`invalid cmrPublishObject passed to publis2CMR ${JSON.stringify(cmrPublishObject)}`);
244
254
  }
245
255
 
@@ -480,10 +490,9 @@ function generateFileUrl({
480
490
  /**
481
491
  * Construct online access url for a given file and a url type.
482
492
  *
483
- * @param {Object} params - input parameters
484
493
  * @param {Object} params.file - file object
485
494
  * @param {string} params.distEndpoint - distribution endpoint from config
486
- * @param {Object} params.bucketTypes - map of bucket name to bucket type
495
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket name to bucket type
487
496
  * @param {Object} params.urlType - url type, distribution or s3
488
497
  * @param {distributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path mapping
489
498
  * for all distribution bucketss
@@ -518,10 +527,9 @@ function constructOnlineAccessUrl({
518
527
  /**
519
528
  * Construct a list of online access urls grouped by link type.
520
529
  *
521
- * @param {Object} params - input parameters
522
530
  * @param {Array<Object>} params.files - array of file objects
523
531
  * @param {string} params.distEndpoint - distribution endpoint from config
524
- * @param {Object} params.bucketTypes - map of bucket name to bucket type
532
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket name to bucket type
525
533
  * @param {string} params.cmrGranuleUrlType - cmrGranuleUrlType from config
526
534
  * @param {distributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path mapping
527
535
  * for all distribution bucketss
@@ -576,10 +584,9 @@ function constructOnlineAccessUrls({
576
584
  * @param {Object} params - input parameters
577
585
  * @param {Array<Object>} params.files - array of file objects
578
586
  * @param {string} params.distEndpoint - distribution endpoint from config
579
- * @param {Object} params.bucketTypes - map of bucket names to bucket types
580
- * @param {string} params.s3CredsEndpoint - Optional endpoint for acquiring temporary s3 creds
587
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket names to bucket types
581
588
  * @param {string} params.cmrGranuleUrlType - cmrGranuleUrlType from config
582
- * @param {Object} params.distributionBucketMap - Object with bucket:tea-path
589
+ * @param {DistributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path
583
590
  * mapping for all distribution buckets
584
591
  * @param {boolean} params.useDirectS3Type - indicate if direct s3 access type is used
585
592
  * @returns {Promise<[{URL: string, string, Description: string, Type: string}]>}
@@ -589,7 +596,6 @@ function constructRelatedUrls({
589
596
  files,
590
597
  distEndpoint,
591
598
  bucketTypes,
592
- s3CredsEndpoint = 's3credentials',
593
599
  cmrGranuleUrlType = 'both',
594
600
  distributionBucketMap,
595
601
  useDirectS3Type = false,
@@ -612,7 +618,7 @@ function constructRelatedUrls({
612
618
  /**
613
619
  * Create a list of URL objects that should not appear under onlineAccess in the CMR metadata.
614
620
  * @param {Array<Object>} files - array of updated file objects
615
- * @param {Object} bucketTypes - map of buckets name to bucket types
621
+ * @param {{ [key: string]: string }} bucketTypes - map of buckets name to bucket types
616
622
  * @returns {Array<Object>} array of files to be omitted in cmr's OnlineAccessURLs
617
623
  */
618
624
  function onlineAccessURLsToRemove(files, bucketTypes) {
@@ -720,6 +726,44 @@ function shouldUseDirectS3Type(metadataObject) {
720
726
  return false;
721
727
  }
722
728
 
729
+ /**
730
+ * Update the UMMG cmr metadata object to have corrected urls
731
+ *
732
+ * @param {Object} params.metadataObject - ummg cmr metadata object
733
+ * @param {Array<ApiFile>} params.files - files with which to update the cmr metadata
734
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket names to bucket types
735
+ * @param {string} params.cmrGranuleUrlType
736
+ * @param {DistributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path
737
+ * mapping for all distribution buckets
738
+ * @returns {Object}
739
+ */
740
+ function updateUMMGMetadataObject({
741
+ metadataObject,
742
+ files,
743
+ distEndpoint,
744
+ bucketTypes,
745
+ cmrGranuleUrlType = 'both',
746
+ distributionBucketMap,
747
+ }) {
748
+ const updatedMetadataObject = cloneDeep(metadataObject);
749
+ const useDirectS3Type = shouldUseDirectS3Type(updatedMetadataObject);
750
+
751
+ const newURLs = constructRelatedUrls({
752
+ files,
753
+ distEndpoint,
754
+ bucketTypes,
755
+ cmrGranuleUrlType,
756
+ distributionBucketMap,
757
+ useDirectS3Type,
758
+ });
759
+
760
+ const removedURLs = onlineAccessURLsToRemove(files, bucketTypes);
761
+ const originalURLs = get(updatedMetadataObject, 'RelatedUrls', []);
762
+ const mergedURLs = mergeURLs(originalURLs, newURLs, removedURLs);
763
+ set(updatedMetadataObject, 'RelatedUrls', mergedURLs);
764
+ return updatedMetadataObject;
765
+ }
766
+
723
767
  /**
724
768
  * After files are moved, create new online access URLs and then update the S3
725
769
  * UMMG cmr.json file with this information.
@@ -728,9 +772,9 @@ function shouldUseDirectS3Type(metadataObject) {
728
772
  * @param {Object} params.cmrFile - cmr.json file whose contents will be updated.
729
773
  * @param {Array<Object>} params.files - array of moved file objects.
730
774
  * @param {string} params.distEndpoint - distribution endpoint form config.
731
- * @param {Object} params.bucketTypes - map of bucket names to bucket types
775
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket names to bucket types
732
776
  * @param {string} params.cmrGranuleUrlType - cmrGranuleUrlType from config
733
- * @param {Object} params.distributionBucketMap - Object with bucket:tea-path
777
+ * @param {DistributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path
734
778
  * mapping for all distribution buckets
735
779
  * @returns {Promise<{ metadataObject: Object, etag: string}>} an object
736
780
  * containing a `metadataObject` (the updated UMMG metadata object) and the
@@ -746,41 +790,31 @@ async function updateUMMGMetadata({
746
790
  }) {
747
791
  const filename = getS3UrlOfFile(cmrFile);
748
792
  const metadataObject = await metadataObjectFromCMRJSONFile(filename);
749
- const useDirectS3Type = shouldUseDirectS3Type(metadataObject);
750
-
751
- const newURLs = constructRelatedUrls({
793
+ const updatedMetadataObject = updateUMMGMetadataObject({
794
+ metadataObject,
752
795
  files,
753
796
  distEndpoint,
754
797
  bucketTypes,
755
798
  cmrGranuleUrlType,
756
799
  distributionBucketMap,
757
- useDirectS3Type,
758
800
  });
759
-
760
- const removedURLs = onlineAccessURLsToRemove(files, bucketTypes);
761
- const originalURLs = get(metadataObject, 'RelatedUrls', []);
762
- const mergedURLs = mergeURLs(originalURLs, newURLs, removedURLs);
763
- set(metadataObject, 'RelatedUrls', mergedURLs);
764
-
765
- const { ETag: etag } = await uploadUMMGJSONCMRFile(metadataObject, cmrFile);
766
- return { metadataObject, etag };
801
+ const { ETag: etag } = await uploadUMMGJSONCMRFile(updatedMetadataObject, cmrFile);
802
+ return { metadataObject: updatedMetadataObject, etag };
767
803
  }
768
804
 
769
805
  /**
770
806
  * Helper to build an CMR settings object, used to initialize CMR.
771
807
  *
772
808
  * @param {Object} cmrConfig - CMR configuration object
773
- * @param {string} [cmrConfig.oauthProvider] - Oauth provider: launchpad or earthdata
774
- * @param {string} [cmrConfig.provider] - the CMR provider
775
- * @param {string} [cmrConfig.clientId] - Client id for CMR requests
776
- * @param {string} [cmrConfig.passphraseSecretName] - Launchpad passphrase secret name
777
- * @param {string} [cmrConfig.api] - Launchpad api
778
- * @param {string} [cmrConfig.certificate] - Launchpad certificate
779
- * @param {string} [cmrConfig.username] - EDL username
780
- * @param {string} [cmrConfig.passwordSecretName] - CMR password secret name
781
- * @returns {Promise<import('@cumulus/cmr-client/CMR').CMRConstructorParams>}
782
- * object to
783
- * create CMR instance - contains the
809
+ * @param {string} cmrConfig.oauthProvider - Oauth provider: launchpad or earthdata
810
+ * @param {string} cmrConfig.provider - the CMR provider
811
+ * @param {string} cmrConfig.clientId - Client id for CMR requests
812
+ * @param {string} cmrConfig.passphraseSecretName - Launchpad passphrase secret name
813
+ * @param {string} cmrConfig.api - Launchpad api
814
+ * @param {string} cmrConfig.certificate - Launchpad certificate
815
+ * @param {string} cmrConfig.username - EDL username
816
+ * @param {string} cmrConfig.passwordSecretName - CMR password secret name
817
+ * @returns {Promise<CMRConstructorParams>} object to create CMR instance - contains the
784
818
  * provider, clientId, and either launchpad token or EDL username and
785
819
  * password
786
820
  */
@@ -879,31 +913,24 @@ function buildMergedEchoURLObject(URLlist = [], originalURLlist = [], removedURL
879
913
  }
880
914
 
881
915
  /**
882
- * After files are moved, creates new online access URLs and then updates
883
- * the S3 ECHO10 CMR XML file with this information.
916
+ * Update the Echo10 cmr metadata object to have corrected urls
884
917
  *
885
- * @param {Object} params - parameter object
886
- * @param {Object} params.cmrFile - cmr xml file object to be updated
887
- * @param {Array<Object>} params.files - array of file objects
888
- * @param {string} params.distEndpoint - distribution endpoint from config
889
- * @param {Object} params.bucketTypes - map of bucket names to bucket types
890
- * @param {Object} params.distributionBucketMap - Object with bucket:tea-path
918
+ * @param {Object} params.metadataObject - xml cmr metadata object
919
+ * @param {Array<Object>} params.files - files with which to update the cmr metadata
920
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket names to bucket types
921
+ * @param {string} params.cmrGranuleUrlType
922
+ * @param {DistributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path
891
923
  * mapping for all distribution buckets
892
- * @returns {Promise<{ metadataObject: Object, etag: string}>} an object
893
- * containing a `metadataObject` and the `etag` of the uploaded CMR file
924
+ * @returns {Object}
894
925
  */
895
- async function updateEcho10XMLMetadata({
896
- cmrFile,
926
+ function updateEcho10XMLMetadataObject({
927
+ metadataObject,
897
928
  files,
898
929
  distEndpoint,
899
930
  bucketTypes,
900
- s3CredsEndpoint = 's3credentials',
901
931
  cmrGranuleUrlType = 'both',
902
932
  distributionBucketMap,
903
933
  }) {
904
- // add/replace the OnlineAccessUrls
905
- const filename = getS3UrlOfFile(cmrFile);
906
- const metadataObject = await metadataObjectFromCMRXMLFile(filename);
907
934
  const metadataGranule = metadataObject.Granule;
908
935
  const updatedGranule = { ...metadataGranule };
909
936
 
@@ -923,23 +950,60 @@ async function updateEcho10XMLMetadata({
923
950
  distributionBucketMap,
924
951
  });
925
952
  newURLs.push(getS3CredentialsObject(urljoin(distEndpoint, s3CredsEndpoint)));
926
-
927
953
  const mergedOnlineResources = buildMergedEchoURLObject(newURLs, originalOnlineResourceURLs,
928
954
  removedURLs, ['EXTENDED METADATA', 'VIEW RELATED INFORMATION'], ['URLDescription']);
929
955
  const mergedOnlineAccessURLs = buildMergedEchoURLObject(newURLs, originalOnlineAccessURLs,
930
956
  removedURLs, ['GET DATA', 'GET DATA VIA DIRECT ACCESS'], ['Type', 'Description']);
931
957
  const mergedAssociatedBrowse = buildMergedEchoURLObject(newURLs, originalAssociatedBrowseURLs,
932
958
  removedURLs, ['GET RELATED VISUALIZATION'], ['URLDescription', 'Type']);
933
-
934
959
  // Update the Granule with the updated/merged lists
935
960
  set(updatedGranule, 'OnlineAccessURLs.OnlineAccessURL', mergedOnlineAccessURLs);
936
961
  set(updatedGranule, 'OnlineResources.OnlineResource', mergedOnlineResources);
937
962
  set(updatedGranule, 'AssociatedBrowseImageUrls.ProviderBrowseUrl', mergedAssociatedBrowse);
938
963
 
939
- metadataObject.Granule = updatedGranule;
940
- const xml = generateEcho10XMLString(updatedGranule);
964
+ return {
965
+ ...metadataObject,
966
+ Granule: updatedGranule,
967
+ };
968
+ }
969
+
970
+ /**
971
+ * After files are moved, creates new online access URLs and then updates
972
+ * the S3 ECHO10 CMR XML file with this information.
973
+ *
974
+ * @param {Object} params - parameter object
975
+ * @param {Object} params.cmrFile - cmr xml file object to be updated
976
+ * @param {Array<Object>} params.files - array of file objects
977
+ * @param {string} params.distEndpoint - distribution endpoint from config
978
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket names to bucket types
979
+ * @param {DistributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path
980
+ * mapping for all distribution buckets
981
+ * @returns {Promise<{ metadataObject: Object, etag: string}>} an object
982
+ * containing a `metadataObject` and the `etag` of the uploaded CMR file
983
+ */
984
+ async function updateEcho10XMLMetadata({
985
+ cmrFile,
986
+ files,
987
+ distEndpoint,
988
+ bucketTypes,
989
+ cmrGranuleUrlType = 'both',
990
+ distributionBucketMap,
991
+ }) {
992
+ // add/replace the OnlineAccessUrls
993
+ const filename = getS3UrlOfFile(cmrFile);
994
+ const metadataObject = await metadataObjectFromCMRXMLFile(filename);
995
+
996
+ const updatedMetadataObject = updateEcho10XMLMetadataObject({
997
+ metadataObject,
998
+ files,
999
+ distEndpoint,
1000
+ bucketTypes,
1001
+ cmrGranuleUrlType,
1002
+ distributionBucketMap,
1003
+ });
1004
+ const xml = generateEcho10XMLString(updatedMetadataObject.Granule);
941
1005
  const { ETag: etag } = await uploadEcho10CMRFile(xml, cmrFile);
942
- return { metadataObject, etag };
1006
+ return { metadataObject: updatedMetadataObject, etag };
943
1007
  }
944
1008
 
945
1009
  /**
@@ -948,12 +1012,12 @@ async function updateEcho10XMLMetadata({
948
1012
  * @param {Object} params - parameter object
949
1013
  * @param {string} params.granuleId - granuleId
950
1014
  * @param {Object} params.cmrFile - cmr xml file to be updated
951
- * @param {Array<Object>} params.files - array of file objects
1015
+ * @param {Array<ApiFile>} params.files - array of file objects
952
1016
  * @param {string} params.distEndpoint - distribution enpoint from config
953
1017
  * @param {boolean} params.published - indicate if publish is needed
954
- * @param {Object} params.bucketTypes - map of bucket names to bucket types
1018
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket names to bucket types
955
1019
  * @param {string} params.cmrGranuleUrlType - type of granule CMR url
956
- * @param {Object} params.distributionBucketMap - Object with bucket:tea-path
1020
+ * @param {DistributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path
957
1021
  * mapping for all distribution buckets
958
1022
  * @returns {Promise<Object>} CMR file object with the `etag` of the newly
959
1023
  * updated metadata file
@@ -1016,7 +1080,7 @@ async function updateCMRMetadata({
1016
1080
  * @param {string} params.distEndpoint - distribution endpoint URL
1017
1081
  * @param {boolean} params.published - boolean true if the data should be published to
1018
1082
  * the CMR service.
1019
- * @param {Object} params.bucketTypes - map of bucket names to bucket types
1083
+ * @param {{ [key: string]: string }} params.bucketTypes - map of bucket names to bucket types
1020
1084
  * @param {string} params.cmrGranuleUrlType - type of granule CMR url
1021
1085
  * @param {distributionBucketMap} params.distributionBucketMap - Object with bucket:tea-path mapping
1022
1086
  * for all distribution buckets
@@ -1253,6 +1317,87 @@ async function getGranuleTemporalInfo(granule) {
1253
1317
  return {};
1254
1318
  }
1255
1319
 
1320
+ /**
1321
+ * Update collection in an ECHO10 cmr metadata object
1322
+ *
1323
+ * @param {object} cmrObject - CMR metadata object
1324
+ * @param {{ name: string, version: string }} collection - collection name and version to update to
1325
+ * @returns {object}
1326
+ */
1327
+ const setECHO10Collection = (
1328
+ cmrObject,
1329
+ collection
1330
+ ) => {
1331
+ const cmrObjectCopy = cloneDeep(cmrObject);
1332
+ if (!cmrObjectCopy.Granule) {
1333
+ throw new errors.ValidationError(
1334
+ `invalid ECHO10 cmr metadata ${JSON.stringify(cmrObjectCopy)}, must have granule tag`
1335
+ );
1336
+ }
1337
+ cmrObjectCopy.Granule.Collection = {
1338
+ ShortName: collection.name,
1339
+ VersionId: collection.version,
1340
+ };
1341
+ return cmrObjectCopy;
1342
+ };
1343
+
1344
+ /**
1345
+ * Update collection in an UMMG cmr metadata object
1346
+ *
1347
+ * @param {object} cmrObject - CMR metadata object
1348
+ * @param {{ name: string, version: string }} collection - collection name and version to update to
1349
+ * @returns {object}
1350
+ */
1351
+ const setUMMGCollection = (
1352
+ cmrObject,
1353
+ collection
1354
+ ) => {
1355
+ const cmrObjectCopy = cloneDeep(cmrObject);
1356
+ set(cmrObjectCopy, 'CollectionReference', {
1357
+ ShortName: collection.name,
1358
+ Version: collection.version,
1359
+ });
1360
+ return cmrObjectCopy;
1361
+ };
1362
+
1363
+ /**
1364
+ * Get collectionId from cmr metadata
1365
+ * @param {object} cmrObject - cmr metadata object
1366
+ * @param {string} cmrFileName - used to know how to parse this object
1367
+ * @returns {string}
1368
+ */
1369
+ const getCMRCollectionId = (
1370
+ cmrObject,
1371
+ cmrFileName
1372
+ ) => {
1373
+ if (isUMMGFilename(cmrFileName)) {
1374
+ const collectionName = cmrObject.CollectionReference?.ShortName;
1375
+ const collectionVersion = cmrObject.CollectionReference?.Version;
1376
+ if (!(collectionName && collectionVersion)) {
1377
+ throw new errors.ValidationError(
1378
+ 'UMMG metadata file has invalid collection configuration' +
1379
+ ` ${JSON.stringify(cmrObject.CollectionReference)}`
1380
+ );
1381
+ }
1382
+ return constructCollectionId(
1383
+ collectionName,
1384
+ collectionVersion
1385
+ );
1386
+ }
1387
+ const collectionName = cmrObject.Granule?.Collection?.ShortName;
1388
+ const collectionVersion = cmrObject.Granule?.Collection?.VersionId;
1389
+ if (!(collectionName && collectionVersion)) {
1390
+ throw new errors.ValidationError(
1391
+ 'ECHO10 metadata file has invalid collection configuration' +
1392
+ ` ${JSON.stringify(cmrObject.Granule?.Collection)}`
1393
+ );
1394
+ }
1395
+ return constructCollectionId(
1396
+ collectionName,
1397
+ collectionVersion
1398
+ );
1399
+ };
1400
+
1256
1401
  module.exports = {
1257
1402
  addEtagsToFileObjects,
1258
1403
  constructCmrConceptLink,
@@ -1262,6 +1407,7 @@ module.exports = {
1262
1407
  generateFileUrl,
1263
1408
  granuleToCmrFileObject,
1264
1409
  getCmrSettings,
1410
+ getCMRCollectionId,
1265
1411
  getFileDescription,
1266
1412
  getFilename,
1267
1413
  getGranuleTemporalInfo,
@@ -1283,6 +1429,10 @@ module.exports = {
1283
1429
  removeEtagsFromFileObjects,
1284
1430
  removeFromCMR,
1285
1431
  updateCMRMetadata,
1432
+ updateEcho10XMLMetadataObject,
1433
+ updateUMMGMetadataObject,
1434
+ setECHO10Collection,
1435
+ setUMMGCollection,
1286
1436
  uploadEcho10CMRFile,
1287
1437
  uploadUMMGJSONCMRFile,
1288
1438
  };