eoapi-cdk 8.2.3 → 8.3.1
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/.jsii +130 -66
- package/lib/bastion-host/index.js +1 -1
- package/lib/database/index.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/ingestor-api/index.js +1 -1
- package/lib/stac-api/index.js +1 -1
- package/lib/stac-browser/index.js +1 -1
- package/lib/{stac-item-loader → stac-loader}/index.d.ts +83 -57
- package/lib/stac-loader/index.js +284 -0
- package/lib/{stac-item-loader → stac-loader}/runtime/Dockerfile +3 -3
- package/lib/{stac-item-loader → stac-loader}/runtime/pyproject.toml +2 -2
- package/lib/{stac-item-loader/runtime/src/stac_item_loader → stac-loader/runtime/src/stac_loader}/handler.py +54 -26
- package/lib/stactools-item-generator/index.d.ts +2 -2
- package/lib/stactools-item-generator/index.js +3 -3
- package/lib/tipg-api/index.js +1 -1
- package/lib/titiler-pgstac-api/index.js +1 -1
- package/package.json +1 -1
- package/pyproject.toml +4 -4
- package/uv.lock +5 -5
- package/lib/stac-item-loader/index.js +0 -255
- /package/lib/{stac-item-loader/runtime/src/stac_item_loader → stac-loader/runtime/src/stac_loader}/__init__.py +0 -0
|
@@ -179,5 +179,5 @@ class StacIngestor extends constructs_1.Construct {
|
|
|
179
179
|
}
|
|
180
180
|
exports.StacIngestor = StacIngestor;
|
|
181
181
|
_a = JSII_RTTI_SYMBOL_1;
|
|
182
|
-
StacIngestor[_a] = { fqn: "eoapi-cdk.StacIngestor", version: "8.
|
|
182
|
+
StacIngestor[_a] = { fqn: "eoapi-cdk.StacIngestor", version: "8.3.1" };
|
|
183
183
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQWFxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsb0NBQTZFO0FBRTdFLE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBSXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUvQixNQUFNLEdBQUcsR0FBMkI7WUFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztZQUNwQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQzVCLHdCQUF3QixFQUFFLEdBQUc7WUFDN0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3ZCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTztZQUM5QyxHQUFHLEtBQUssQ0FBQyxNQUFNO1NBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkscUJBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3RELFdBQVcsRUFDVCxtSUFBbUk7WUFDckksU0FBUyxFQUFFLElBQUkscUJBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUMzRCxlQUFlLEVBQUU7Z0JBQ2YscUJBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQ3hDLDBDQUEwQyxDQUMzQztnQkFDRCxxQkFBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDeEMsOENBQThDLENBQy9DO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixHQUFHO1lBQ0gsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDNUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2hCLGVBQWUsRUFBRSxLQUFLLENBQUMsbUJBQW1CO1lBQzFDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsd0JBQXdCO1lBQ3JELGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUNuQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDcEIsT0FBTztZQUNQLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixxQkFBcUIsRUFBRSxLQUFLLENBQUMsd0JBQXdCO1lBQ3JELE1BQU0sRUFBRSxLQUFLLENBQUMsU0FBUztZQUN2Qix5QkFBeUIsRUFBRSxLQUFLLENBQUMseUJBQXlCO1NBQzNELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLENBQUM7WUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsUUFBUSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRztZQUNoQixlQUFlLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtZQUMxQyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLDZCQUE2QjtZQUMxRCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQ3hCLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztZQUMzQixXQUFXLEVBQUUsd0NBQXdDO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksMEJBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3pELFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLDBCQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUN6RSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSwwQkFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDNUQsV0FBVyxFQUFFLDBCQUFRLENBQUMsV0FBVyxDQUFDLGVBQWU7WUFDakQsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztZQUNwQyxNQUFNLEVBQUUsMEJBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUztTQUMxQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsdUJBQXVCLENBQUM7WUFDNUIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsMEJBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ3JFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLDBCQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtTQUNyRSxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxjQUFjLENBQUMsS0FXdEI7UUFDQyxNQUFNLE9BQU8sR0FBRyxJQUFJLHdCQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDdkQsV0FBVztZQUNYLE9BQU8sRUFBRSx3QkFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ25DLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsVUFBVSxFQUFFLElBQUk7WUFDaEIsWUFBWSxFQUFFLHNCQUFRLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDN0MsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLEVBQUUsd0JBQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRTtnQkFDM0MsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsU0FBUyxFQUFFO29CQUNULGNBQWMsRUFBRSxNQUFNO29CQUN0QixjQUFjLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSw4QkFBc0I7aUJBQzlEO2FBQ0YsQ0FBQztZQUNGLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsR0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUNqQyxXQUFXLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ3RFLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVztZQUN0QixpRUFBaUU7WUFDakUsR0FBRyxLQUFLLENBQUMscUJBQXFCO1NBQy9CLENBQUMsQ0FBQztRQUVILGtDQUFrQztRQUNsQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsQyxpQ0FBaUM7UUFFakMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUNyQyxxQkFBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQ2xCLHNDQUFzQyxDQUN2QyxDQUFDO1FBQ0osQ0FBQztRQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQVNyQjtRQUNDLE1BQU0sT0FBTyxHQUFHLElBQUksd0JBQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUN6RCxXQUFXO1lBQ1gsT0FBTyxFQUFFLHdCQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsc0JBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUTtZQUM3QyxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzlCLElBQUksRUFBRSx3QkFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFO2dCQUMzQyxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixTQUFTLEVBQUU7b0JBQ1QsY0FBYyxFQUFFLE1BQU07b0JBQ3RCLGNBQWMsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLDhCQUFzQjtpQkFDOUQ7YUFDRixDQUFDO1lBQ0YsR0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUNqQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDdEUsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3RCLGlFQUFpRTtZQUNqRSxHQUFHLEtBQUssQ0FBQyxxQkFBcUI7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsa0NBQWtDO1FBQ2xDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLGlDQUFpQztRQUNqQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixLQUFLLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FDbEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQ3JDLHFCQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFDbEIsc0NBQXNDLENBQ3ZDLENBQUM7UUFDSixDQUFDO1FBRUQsNENBQTRDO1FBQzVDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBDLGdEQUFnRDtRQUNoRCxPQUFPLENBQUMsY0FBYyxDQUNwQixJQUFJLHNDQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUN4QyxrQ0FBa0M7WUFDbEMsU0FBUyxFQUFFLElBQUk7WUFDZixpQ0FBaUM7WUFDakMsaUJBQWlCLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLDBCQUEwQjtZQUMxQixnQkFBZ0IsRUFBRSx3QkFBTSxDQUFDLGdCQUFnQixDQUFDLFlBQVk7WUFDdEQsYUFBYSxFQUFFLENBQUM7U0FDakIsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FNeEI7UUFDQyxPQUFPLElBQUksNEJBQVUsQ0FBQyxhQUFhLENBQ2pDLElBQUksRUFDSixHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsZUFBZSxFQUMxQztZQUNFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixLQUFLLEVBQUUsSUFBSTtZQUVYLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3pDLGtCQUFrQixFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFFcEQscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHFCQUFxQjtZQUNsRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFFcEIsVUFBVSxFQUFFLEtBQUssQ0FBQyx5QkFBeUI7Z0JBQ3pDLENBQUMsQ0FBQztvQkFDRSxVQUFVLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixDQUFDLFVBQVU7b0JBQ3RELFdBQVcsRUFBRSxLQUFLLENBQUMseUJBQXlCLENBQUMsV0FBVztpQkFDekQ7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FJNUI7UUFDQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNwRCxPQUFPLElBQUkscUJBQUcsQ0FBQyxlQUFlLENBQzVCLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUMzQztZQUNFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixhQUFhLEVBQUUsSUFBSSxrQkFBa0IsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ3JELFdBQVcsRUFBRSxLQUFLLENBQUMsS0FBSztTQUN6QixDQUNGLENBQUM7SUFDSixDQUFDOztBQTVQSCxvQ0E2UEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3NfYXBpZ2F0ZXdheSBhcyBhcGlnYXRld2F5LFxuICBhd3NfZHluYW1vZGIgYXMgZHluYW1vZGIsXG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfaWFtIGFzIGlhbSxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIGF3c19sb2dzLFxuICBhd3NfbGFtYmRhX2V2ZW50X3NvdXJjZXMgYXMgZXZlbnRzLFxuICBhd3Nfc2VjcmV0c21hbmFnZXIgYXMgc2VjcmV0c21hbmFnZXIsXG4gIGF3c19zc20gYXMgc3NtLFxuICBEdXJhdGlvbixcbiAgUmVtb3ZhbFBvbGljeSxcbiAgU3RhY2ssXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEN1c3RvbUxhbWJkYUZ1bmN0aW9uUHJvcHMsIERFRkFVTFRfUEdTVEFDX1ZFUlNJT04gfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGNsYXNzIFN0YWNJbmdlc3RvciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHRhYmxlOiBkeW5hbW9kYi5UYWJsZTtcbiAgcHVibGljIGhhbmRsZXJSb2xlOiBpYW0uUm9sZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhY0luZ2VzdG9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy50YWJsZSA9IHRoaXMuYnVpbGRUYWJsZSgpO1xuXG4gICAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgRFlOQU1PREJfVEFCTEU6IHRoaXMudGFibGUudGFibGVOYW1lLFxuICAgICAgUk9PVF9QQVRIOiBgLyR7cHJvcHMuc3RhZ2V9YCxcbiAgICAgIE5PX1BZREFOVElDX1NTTV9TRVRUSU5HUzogXCIxXCIsXG4gICAgICBTVEFDX1VSTDogcHJvcHMuc3RhY1VybCxcbiAgICAgIERBVEFfQUNDRVNTX1JPTEU6IHByb3BzLmRhdGFBY2Nlc3NSb2xlLnJvbGVBcm4sXG4gICAgICAuLi5wcm9wcy5hcGlFbnYsXG4gICAgfTtcblxuICAgIHRoaXMuaGFuZGxlclJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgXCJleGVjdXRpb24tcm9sZVwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSb2xlIHVzZWQgYnkgU1RBQyBJbmdlc3Rvci4gTWFudWFsbHkgZGVmaW5lZCBzbyB0aGF0IHdlIGNhbiBjaG9vc2UgYSBuYW1lIHRoYXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBkYXRhIGFjY2VzcyByb2xlcyB0cnVzdCBwb2xpY3lcIixcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwibGFtYmRhLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgIFwic2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZVwiXG4gICAgICAgICksXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICBcInNlcnZpY2Utcm9sZS9BV1NMYW1iZGFWUENBY2Nlc3NFeGVjdXRpb25Sb2xlXCJcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5idWlsZEFwaUxhbWJkYSh7XG4gICAgICB0YWJsZTogdGhpcy50YWJsZSxcbiAgICAgIGVudixcbiAgICAgIGRhdGFBY2Nlc3NSb2xlOiBwcm9wcy5kYXRhQWNjZXNzUm9sZSxcbiAgICAgIHN0YWdlOiBwcm9wcy5zdGFnZSxcbiAgICAgIGRiU2VjcmV0OiBwcm9wcy5zdGFjRGJTZWNyZXQsXG4gICAgICBkYlZwYzogcHJvcHMudnBjLFxuICAgICAgZGJTZWN1cml0eUdyb3VwOiBwcm9wcy5zdGFjRGJTZWN1cml0eUdyb3VwLFxuICAgICAgc3VibmV0U2VsZWN0aW9uOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBsYW1iZGFGdW5jdGlvbk9wdGlvbnM6IHByb3BzLmFwaUxhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgICAgIHBnc3RhY1ZlcnNpb246IHByb3BzLnBnc3RhY1ZlcnNpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1aWxkQXBpRW5kcG9pbnQoe1xuICAgICAgaGFuZGxlcixcbiAgICAgIHN0YWdlOiBwcm9wcy5zdGFnZSxcbiAgICAgIGVuZHBvaW50Q29uZmlndXJhdGlvbjogcHJvcHMuYXBpRW5kcG9pbnRDb25maWd1cmF0aW9uLFxuICAgICAgcG9saWN5OiBwcm9wcy5hcGlQb2xpY3ksXG4gICAgICBpbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zOiBwcm9wcy5pbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5idWlsZEluZ2VzdG9yKHtcbiAgICAgIHRhYmxlOiB0aGlzLnRhYmxlLFxuICAgICAgZW52OiBlbnYsXG4gICAgICBkYlNlY3JldDogcHJvcHMuc3RhY0RiU2VjcmV0LFxuICAgICAgZGJWcGM6IHByb3BzLnZwYyxcbiAgICAgIGRiU2VjdXJpdHlHcm91cDogcHJvcHMuc3RhY0RiU2VjdXJpdHlHcm91cCxcbiAgICAgIHN1Ym5ldFNlbGVjdGlvbjogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgbGFtYmRhRnVuY3Rpb25PcHRpb25zOiBwcm9wcy5pbmdlc3RvckxhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgICAgIHBnc3RhY1ZlcnNpb246IHByb3BzLnBnc3RhY1ZlcnNpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyU3NtUGFyYW1ldGVyKHtcbiAgICAgIG5hbWU6IFwiZHluYW1vZGJfdGFibGVcIixcbiAgICAgIHZhbHVlOiB0aGlzLnRhYmxlLnRhYmxlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk5hbWUgb2YgdGFibGUgdXNlZCB0byBzdG9yZSBpbmdlc3Rpb25zXCIsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVGFibGUoKTogZHluYW1vZGIuVGFibGUge1xuICAgIGNvbnN0IHRhYmxlID0gbmV3IGR5bmFtb2RiLlRhYmxlKHRoaXMsIFwiaW5nZXN0aW9ucy10YWJsZVwiLCB7XG4gICAgICBwYXJ0aXRpb25LZXk6IHsgbmFtZTogXCJjcmVhdGVkX2J5XCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICBzb3J0S2V5OiB7IG5hbWU6IFwiaWRcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICAgIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBzdHJlYW06IGR5bmFtb2RiLlN0cmVhbVZpZXdUeXBlLk5FV19JTUFHRSxcbiAgICB9KTtcblxuICAgIHRhYmxlLmFkZEdsb2JhbFNlY29uZGFyeUluZGV4KHtcbiAgICAgIGluZGV4TmFtZTogXCJzdGF0dXNcIixcbiAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBcInN0YXR1c1wiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgc29ydEtleTogeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0YWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBcGlMYW1iZGEocHJvcHM6IHtcbiAgICB0YWJsZTogZHluYW1vZGIuSVRhYmxlO1xuICAgIGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBkYXRhQWNjZXNzUm9sZTogaWFtLklSb2xlO1xuICAgIHN0YWdlOiBzdHJpbmc7XG4gICAgZGJTZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG4gICAgZGJWcGM6IHVuZGVmaW5lZCB8IGVjMi5JVnBjO1xuICAgIGRiU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICAgIHN1Ym5ldFNlbGVjdGlvbjogdW5kZWZpbmVkIHwgZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgICBsYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xuICAgIHBnc3RhY1ZlcnNpb24/OiBzdHJpbmc7XG4gIH0pOiBsYW1iZGEuRnVuY3Rpb24ge1xuICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiYXBpLWhhbmRsZXJcIiwge1xuICAgICAgLy8gZGVmYXVsdHNcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzExLFxuICAgICAgaGFuZGxlcjogXCJzcmMuaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAyMDQ4LFxuICAgICAgbG9nUmV0ZW50aW9uOiBhd3NfbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tRG9ja2VyQnVpbGQoX19kaXJuYW1lLCB7XG4gICAgICAgIGZpbGU6IFwicnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICAgIFBZVEhPTl9WRVJTSU9OOiBcIjMuMTFcIixcbiAgICAgICAgICBQR1NUQUNfVkVSU0lPTjogcHJvcHMucGdzdGFjVmVyc2lvbiB8fCBERUZBVUxUX1BHU1RBQ19WRVJTSU9OLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogdHJ1ZSxcbiAgICAgIHZwYzogcHJvcHMuZGJWcGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBlbnZpcm9ubWVudDogeyBEQl9TRUNSRVRfQVJOOiBwcm9wcy5kYlNlY3JldC5zZWNyZXRBcm4sIC4uLnByb3BzLmVudiB9LFxuICAgICAgcm9sZTogdGhpcy5oYW5kbGVyUm9sZSxcbiAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdHMgd2l0aCB1c2VyLXByb3ZpZGVkIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzXG4gICAgICAuLi5wcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBBbGxvdyBoYW5kbGVyIHRvIHJlYWQgREIgc2VjcmV0XG4gICAgcHJvcHMuZGJTZWNyZXQuZ3JhbnRSZWFkKGhhbmRsZXIpO1xuXG4gICAgLy8gQWxsb3cgaGFuZGxlciB0byBjb25uZWN0IHRvIERCXG5cbiAgICBpZiAocHJvcHMuZGJWcGMpIHtcbiAgICAgIHByb3BzLmRiU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShcbiAgICAgICAgaGFuZGxlci5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwc1swXSxcbiAgICAgICAgZWMyLlBvcnQudGNwKDU0MzIpLFxuICAgICAgICBcIkFsbG93IGNvbm5lY3Rpb25zIGZyb20gU1RBQyBJbmdlc3RvclwiXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3BzLnRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShoYW5kbGVyKTtcblxuICAgIHJldHVybiBoYW5kbGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEluZ2VzdG9yKHByb3BzOiB7XG4gICAgdGFibGU6IGR5bmFtb2RiLklUYWJsZTtcbiAgICBlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgZGJTZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG4gICAgZGJWcGM6IHVuZGVmaW5lZCB8IGVjMi5JVnBjO1xuICAgIGRiU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICAgIHN1Ym5ldFNlbGVjdGlvbjogdW5kZWZpbmVkIHwgZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgICBsYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xuICAgIHBnc3RhY1ZlcnNpb24/OiBzdHJpbmc7XG4gIH0pOiBsYW1iZGEuRnVuY3Rpb24ge1xuICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwic3RhYy1pbmdlc3RvclwiLCB7XG4gICAgICAvLyBkZWZhdWx0c1xuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTEsXG4gICAgICBoYW5kbGVyOiBcInNyYy5pbmdlc3Rvci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAyMDQ4LFxuICAgICAgbG9nUmV0ZW50aW9uOiBhd3NfbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxODApLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbURvY2tlckJ1aWxkKF9fZGlybmFtZSwge1xuICAgICAgICBmaWxlOiBcInJ1bnRpbWUvRG9ja2VyZmlsZVwiLFxuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBQWVRIT05fVkVSU0lPTjogXCIzLjExXCIsXG4gICAgICAgICAgUEdTVEFDX1ZFUlNJT046IHByb3BzLnBnc3RhY1ZlcnNpb24gfHwgREVGQVVMVF9QR1NUQUNfVkVSU0lPTixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgdnBjOiBwcm9wcy5kYlZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIGFsbG93UHVibGljU3VibmV0OiB0cnVlLFxuICAgICAgZW52aXJvbm1lbnQ6IHsgREJfU0VDUkVUX0FSTjogcHJvcHMuZGJTZWNyZXQuc2VjcmV0QXJuLCAuLi5wcm9wcy5lbnYgfSxcbiAgICAgIHJvbGU6IHRoaXMuaGFuZGxlclJvbGUsXG4gICAgICAvLyBvdmVyd3JpdGVzIGRlZmF1bHRzIHdpdGggdXNlci1wcm92aWRlZCBjb25maWd1cmFibGUgcHJvcGVydGllc1xuICAgICAgLi4ucHJvcHMubGFtYmRhRnVuY3Rpb25PcHRpb25zLFxuICAgIH0pO1xuXG4gICAgLy8gQWxsb3cgaGFuZGxlciB0byByZWFkIERCIHNlY3JldFxuICAgIHByb3BzLmRiU2VjcmV0LmdyYW50UmVhZChoYW5kbGVyKTtcblxuICAgIC8vIEFsbG93IGhhbmRsZXIgdG8gY29ubmVjdCB0byBEQlxuICAgIGlmIChwcm9wcy5kYlZwYykge1xuICAgICAgcHJvcHMuZGJTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgICBoYW5kbGVyLmNvbm5lY3Rpb25zLnNlY3VyaXR5R3JvdXBzWzBdLFxuICAgICAgICBlYzIuUG9ydC50Y3AoNTQzMiksXG4gICAgICAgIFwiQWxsb3cgY29ubmVjdGlvbnMgZnJvbSBTVEFDIEluZ2VzdG9yXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaGFuZGxlciB0byB3cml0ZSByZXN1bHRzIGJhY2sgdG8gREJcbiAgICBwcm9wcy50YWJsZS5ncmFudFdyaXRlRGF0YShoYW5kbGVyKTtcblxuICAgIC8vIFRyaWdnZXIgaGFuZGxlciBmcm9tIHdyaXRlcyB0byBEeW5hbW9EQiB0YWJsZVxuICAgIGhhbmRsZXIuYWRkRXZlbnRTb3VyY2UoXG4gICAgICBuZXcgZXZlbnRzLkR5bmFtb0V2ZW50U291cmNlKHByb3BzLnRhYmxlLCB7XG4gICAgICAgIC8vIFJlYWQgd2hlbiBiYXRjaGVzIHJlYWNoIHNpemUuLi5cbiAgICAgICAgYmF0Y2hTaXplOiAxMDAwLFxuICAgICAgICAvLyAuLi4gb3Igd2hlbiB3aW5kb3cgaXMgcmVhY2hlZC5cbiAgICAgICAgbWF4QmF0Y2hpbmdXaW5kb3c6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgICAvLyBSZWFkIG9sZGVzdCBkYXRhIGZpcnN0LlxuICAgICAgICBzdGFydGluZ1Bvc2l0aW9uOiBsYW1iZGEuU3RhcnRpbmdQb3NpdGlvbi5UUklNX0hPUklaT04sXG4gICAgICAgIHJldHJ5QXR0ZW1wdHM6IDEsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gaGFuZGxlcjtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBcGlFbmRwb2ludChwcm9wczoge1xuICAgIGhhbmRsZXI6IGxhbWJkYS5JRnVuY3Rpb247XG4gICAgc3RhZ2U6IHN0cmluZztcbiAgICBwb2xpY3k/OiBpYW0uUG9saWN5RG9jdW1lbnQ7XG4gICAgZW5kcG9pbnRDb25maWd1cmF0aW9uPzogYXBpZ2F0ZXdheS5FbmRwb2ludENvbmZpZ3VyYXRpb247XG4gICAgaW5nZXN0b3JEb21haW5OYW1lT3B0aW9ucz86IGFwaWdhdGV3YXkuRG9tYWluTmFtZU9wdGlvbnM7XG4gIH0pOiBhcGlnYXRld2F5LkxhbWJkYVJlc3RBcGkge1xuICAgIHJldHVybiBuZXcgYXBpZ2F0ZXdheS5MYW1iZGFSZXN0QXBpKFxuICAgICAgdGhpcyxcbiAgICAgIGAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0taW5nZXN0b3ItYXBpYCxcbiAgICAgIHtcbiAgICAgICAgaGFuZGxlcjogcHJvcHMuaGFuZGxlcixcbiAgICAgICAgcHJveHk6IHRydWUsXG5cbiAgICAgICAgY2xvdWRXYXRjaFJvbGU6IHRydWUsXG4gICAgICAgIGRlcGxveU9wdGlvbnM6IHsgc3RhZ2VOYW1lOiBwcm9wcy5zdGFnZSB9LFxuICAgICAgICBlbmRwb2ludEV4cG9ydE5hbWU6IGAke1N0YWNrLm9mKHRoaXMpfS1pbmdlc3Rvci1hcGlgLFxuXG4gICAgICAgIGVuZHBvaW50Q29uZmlndXJhdGlvbjogcHJvcHMuZW5kcG9pbnRDb25maWd1cmF0aW9uLFxuICAgICAgICBwb2xpY3k6IHByb3BzLnBvbGljeSxcblxuICAgICAgICBkb21haW5OYW1lOiBwcm9wcy5pbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmluZ2VzdG9yRG9tYWluTmFtZU9wdGlvbnMuZG9tYWluTmFtZSxcbiAgICAgICAgICAgICAgY2VydGlmaWNhdGU6IHByb3BzLmluZ2VzdG9yRG9tYWluTmFtZU9wdGlvbnMuY2VydGlmaWNhdGUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJTc21QYXJhbWV0ZXIocHJvcHM6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB9KTogc3NtLklTdHJpbmdQYXJhbWV0ZXIge1xuICAgIGNvbnN0IHBhcmFtZXRlck5hbWVzcGFjZSA9IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZTtcbiAgICByZXR1cm4gbmV3IHNzbS5TdHJpbmdQYXJhbWV0ZXIoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMubmFtZS5yZXBsYWNlKFwiX1wiLCBcIi1cIil9LXBhcmFtZXRlcmAsXG4gICAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgcGFyYW1ldGVyTmFtZTogYC8ke3BhcmFtZXRlck5hbWVzcGFjZX0vJHtwcm9wcy5uYW1lfWAsXG4gICAgICAgIHN0cmluZ1ZhbHVlOiBwcm9wcy52YWx1ZSxcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY0luZ2VzdG9yUHJvcHMge1xuICAvKipcbiAgICogQVJOIG9mIEFXUyBSb2xlIHVzZWQgdG8gdmFsaWRhdGUgYWNjZXNzIHRvIFMzIGRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFBY2Nlc3NSb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFVSTCBvZiBTVEFDIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY1VybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGFnZSBvZiBkZXBsb3ltZW50IChlLmcuIGBkZXZgLCBgcHJvZGApXG4gICAqL1xuICByZWFkb25seSBzdGFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWNyZXQgY29udGFpbmluZyBwZ1NUQUMgREIgY29ubmVjdGlvbiBpbmZvcm1hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY0RiU2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBWUEMgcnVubmluZyBwZ1NUQUMgREJcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBHcm91cCB1c2VkIGJ5IHBnU1RBQyBEQlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY0RiU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuXG4gIC8qKlxuICAgKiBTdWJuZXQgaW50byB3aGljaCB0aGUgbGFtYmRhIHNob3VsZCBiZSBkZXBsb3llZCBpZiB1c2luZyBhIFZQQ1xuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0U2VsZWN0aW9uPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGJlIHNlbnQgdG8gTGFtYmRhLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQVBJIEVuZHBvaW50IENvbmZpZ3VyYXRpb24sIHVzZWZ1bCBmb3IgY3JlYXRpbmcgcHJpdmF0ZSBBUElzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpRW5kcG9pbnRDb25maWd1cmF0aW9uPzogYXBpZ2F0ZXdheS5FbmRwb2ludENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIEFQSSBQb2xpY3kgRG9jdW1lbnQsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgcHJpdmF0ZSBBUElzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpUG9saWN5PzogaWFtLlBvbGljeURvY3VtZW50O1xuXG4gIC8qKlxuICAgKiBDdXN0b20gRG9tYWluIE5hbWUgT3B0aW9ucyBmb3IgSW5nZXN0b3IgQVBJXG4gICAqL1xuICByZWFkb25seSBpbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zPzogYXBpZ2F0ZXdheS5Eb21haW5OYW1lT3B0aW9ucztcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBzZXR0aW5ncyBhcmUgZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpTGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBzZXR0aW5ncyBhcmUgZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW5nZXN0b3JMYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xuXG4gIC8qKlxuICAgKiBwZ3N0YWMgdmVyc2lvbiAtIG11c3QgbWF0Y2ggdGhlIHZlcnNpb24gaW5zdGFsbGVkIG9uIHRoZSBwZ3N0YWMgZGF0YWJhc2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IHNldHRpbmdzIGFyZSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IHBnc3RhY1ZlcnNpb24/OiBzdHJpbmc7XG59XG4iXX0=
|
package/lib/stac-api/index.js
CHANGED
|
@@ -92,5 +92,5 @@ class PgStacApiLambda extends constructs_1.Construct {
|
|
|
92
92
|
}
|
|
93
93
|
exports.PgStacApiLambda = PgStacApiLambda;
|
|
94
94
|
_a = JSII_RTTI_SYMBOL_1;
|
|
95
|
-
PgStacApiLambda[_a] = { fqn: "eoapi-cdk.PgStacApiLambda", version: "8.
|
|
95
|
+
PgStacApiLambda[_a] = { fqn: "eoapi-cdk.PgStacApiLambda", version: "8.3.1" };
|
|
96
96
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVdxQjtBQUNyQiwyQ0FBdUM7QUFFdkMsNkJBQTZCO0FBRWhCLFFBQUEsVUFBVSxHQUFHO0lBQ3hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixTQUFTLEVBQUUsV0FBVztJQUN0QixVQUFVLEVBQUUsWUFBWTtJQUN4QixpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMsV0FBVyxFQUFFLGFBQWE7SUFDMUIsZ0JBQWdCLEVBQUUsbUJBQW1CO0NBQzdCLENBQUM7QUFJWDs7R0FFRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsS0FBYTtJQUNyQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFZLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBYSxlQUFnQixTQUFRLHNCQUFTO0lBSTVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGlCQUFpQixHQUFvQjtZQUN6QyxrQkFBVSxDQUFDLEtBQUs7WUFDaEIsa0JBQVUsQ0FBQyxJQUFJO1lBQ2Ysa0JBQVUsQ0FBQyxNQUFNO1lBQ2pCLGtCQUFVLENBQUMsTUFBTTtZQUNqQixrQkFBVSxDQUFDLFNBQVM7WUFDcEIsa0JBQVUsQ0FBQyxVQUFVO1lBQ3JCLGtCQUFVLENBQUMsaUJBQWlCO1NBQzdCLENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVCLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxH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eEIsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUNyQyxVQUFVLEVBQUUsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLE1BQU07WUFDN0MsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBbkdILDBDQW9HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFN0YWNrLFxuICBhd3NfYXBpZ2F0ZXdheXYyIGFzIGFwaWdhdGV3YXl2MixcbiAgYXdzX2FwaWdhdGV3YXl2Ml9pbnRlZ3JhdGlvbnMgYXMgYXBpZ2F0ZXdheXYyX2ludGVncmF0aW9ucyxcbiAgYXdzX2VjMiBhcyBlYzIsXG4gIGF3c19yZHMgYXMgcmRzLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX3NlY3JldHNtYW5hZ2VyIGFzIHNlY3JldHNtYW5hZ2VyLFxuICBDZm5PdXRwdXQsXG4gIER1cmF0aW9uLFxuICBhd3NfbG9ncyxcbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcyB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgY29uc3QgRVhURU5TSU9OUyA9IHtcbiAgUVVFUlk6IFwicXVlcnlcIixcbiAgU09SVDogXCJzb3J0XCIsXG4gIEZJRUxEUzogXCJmaWVsZHNcIixcbiAgRklMVEVSOiBcImZpbHRlclwiLFxuICBGUkVFX1RFWFQ6IFwiZnJlZV90ZXh0XCIsXG4gIFBBR0lOQVRJT046IFwicGFnaW5hdGlvblwiLFxuICBDT0xMRUNUSU9OX1NFQVJDSDogXCJjb2xsZWN0aW9uX3NlYXJjaFwiLFxuICBUUkFOU0FDVElPTjogXCJ0cmFuc2FjdGlvblwiLFxuICBCVUxLX1RSQU5TQUNUSU9OOiBcImJ1bGtfdHJhbnNhY3Rpb25zXCIsXG59IGFzIGNvbnN0O1xuXG50eXBlIEV4dGVuc2lvblR5cGUgPSAodHlwZW9mIEVYVEVOU0lPTlMpW2tleW9mIHR5cGVvZiBFWFRFTlNJT05TXTtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgaWYgYSBnaXZlbiBzdHJpbmcgaXMgYSB2YWxpZCBTVEFDIGV4dGVuc2lvblxuICovXG5mdW5jdGlvbiBpc1ZhbGlkRXh0ZW5zaW9uKHZhbHVlOiBzdHJpbmcpOiB2YWx1ZSBpcyBFeHRlbnNpb25UeXBlIHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoRVhURU5TSU9OUykuaW5jbHVkZXModmFsdWUgYXMgYW55KTtcbn1cblxuZXhwb3J0IGNsYXNzIFBnU3RhY0FwaUxhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuICBwdWJsaWMgc3RhY0FwaUxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBnU3RhY0FwaUxhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGRlZmF1bHRFeHRlbnNpb25zOiBFeHRlbnNpb25UeXBlW10gPSBbXG4gICAgICBFWFRFTlNJT05TLlFVRVJZLFxuICAgICAgRVhURU5TSU9OUy5TT1JULFxuICAgICAgRVhURU5TSU9OUy5GSUVMRFMsXG4gICAgICBFWFRFTlNJT05TLkZJTFRFUixcbiAgICAgIEVYVEVOU0lPTlMuRlJFRV9URVhULFxuICAgICAgRVhURU5TSU9OUy5QQUdJTkFUSU9OLFxuICAgICAgRVhURU5TSU9OUy5DT0xMRUNUSU9OX1NFQVJDSCxcbiAgICBdO1xuXG4gICAgaWYgKHByb3BzLmVuYWJsZWRFeHRlbnNpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IGV4dCBvZiBwcm9wcy5lbmFibGVkRXh0ZW5zaW9ucykge1xuICAgICAgICBpZiAoIWlzVmFsaWRFeHRlbnNpb24oZXh0KSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbnZhbGlkIGV4dGVuc2lvbjogXCIke2V4dH1cIi4gTXVzdCBiZSBvbmUgb2Y6ICR7T2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgRVhURU5TSU9OU1xuICAgICAgICAgICAgKS5qb2luKFwiLCBcIil9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlbmFibGVkRXh0ZW5zaW9ucyA9IHByb3BzLmVuYWJsZWRFeHRlbnNpb25zIHx8IGRlZmF1bHRFeHRlbnNpb25zO1xuXG4gICAgdGhpcy5zdGFjQXBpTGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwibGFtYmRhXCIsIHtcbiAgICAgIC8vIGRlZmF1bHRzXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMSxcbiAgICAgIGhhbmRsZXI6IFwiaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiA4MTkyLFxuICAgICAgbG9nUmV0ZW50aW9uOiBhd3NfbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tRG9ja2VyQnVpbGQocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiKSwge1xuICAgICAgICBmaWxlOiBcInN0YWMtYXBpL3J1bnRpbWUvRG9ja2VyZmlsZVwiLFxuICAgICAgICBidWlsZEFyZ3M6IHsgUFlUSE9OX1ZFUlNJT046IFwiMy4xMVwiIH0sXG4gICAgICB9KSxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgdnBjU3VibmV0czogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgYWxsb3dQdWJsaWNTdWJuZXQ6IHRydWUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBQR1NUQUNfU0VDUkVUX0FSTjogcHJvcHMuZGJTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgICBEQl9NSU5fQ09OTl9TSVpFOiBcIjBcIixcbiAgICAgICAgREJfTUFYX0NPTk5fU0laRTogXCIxXCIsXG4gICAgICAgIEVOQUJMRURfRVhURU5TSU9OUzogZW5hYmxlZEV4dGVuc2lvbnMuam9pbihcIixcIiksXG4gICAgICAgIC4uLnByb3BzLmFwaUVudixcbiAgICAgIH0sXG4gICAgICAvLyBvdmVyd3JpdGVzIGRlZmF1bHRzIHdpdGggdXNlci1wcm92aWRlZCBjb25maWd1cmFibGUgcHJvcGVydGllc1xuICAgICAgLi4ucHJvcHMubGFtYmRhRnVuY3Rpb25PcHRpb25zLFxuICAgIH0pO1xuXG4gICAgcHJvcHMuZGJTZWNyZXQuZ3JhbnRSZWFkKHRoaXMuc3RhY0FwaUxhbWJkYUZ1bmN0aW9uKTtcblxuICAgIGlmIChwcm9wcy52cGMpIHtcbiAgICAgIHRoaXMuc3RhY0FwaUxhbWJkYUZ1bmN0aW9uLmNvbm5lY3Rpb25zLmFsbG93VG8oXG4gICAgICAgIHByb3BzLmRiLFxuICAgICAgICBlYzIuUG9ydC50Y3AoNTQzMiksXG4gICAgICAgIFwiYWxsb3cgY29ubmVjdGlvbnMgZnJvbSBzdGFjLWZhc3RhcGktcGdzdGFjXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhY0FwaSA9IG5ldyBhcGlnYXRld2F5djIuSHR0cEFwaShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LXN0YWMtYXBpYCxcbiAgICAgIHtcbiAgICAgICAgZGVmYXVsdERvbWFpbk1hcHBpbmc6IHByb3BzLnN0YWNBcGlEb21haW5OYW1lXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGRvbWFpbk5hbWU6IHByb3BzLnN0YWNBcGlEb21haW5OYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBkZWZhdWx0SW50ZWdyYXRpb246IG5ldyBhcGlnYXRld2F5djJfaW50ZWdyYXRpb25zLkh0dHBMYW1iZGFJbnRlZ3JhdGlvbihcbiAgICAgICAgICBcImludGVncmF0aW9uXCIsXG4gICAgICAgICAgdGhpcy5zdGFjQXBpTGFtYmRhRnVuY3Rpb24sXG4gICAgICAgICAgcHJvcHMuc3RhY0FwaURvbWFpbk5hbWVcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlck1hcHBpbmc6XG4gICAgICAgICAgICAgICAgICBuZXcgYXBpZ2F0ZXdheXYyLlBhcmFtZXRlck1hcHBpbmcoKS5vdmVyd3JpdGVIZWFkZXIoXG4gICAgICAgICAgICAgICAgICAgIFwiaG9zdFwiLFxuICAgICAgICAgICAgICAgICAgICBhcGlnYXRld2F5djIuTWFwcGluZ1ZhbHVlLmN1c3RvbShcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5zdGFjQXBpRG9tYWluTmFtZS5uYW1lXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICksXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMudXJsID0gc3RhY0FwaS51cmwhO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcInN0YWMtYXBpLW91dHB1dFwiLCB7XG4gICAgICBleHBvcnROYW1lOiBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LXVybGAsXG4gICAgICB2YWx1ZTogdGhpcy51cmwsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZ1N0YWNBcGlMYW1iZGFQcm9wcyB7XG4gIC8qKlxuICAgKiBWUEMgaW50byB3aGljaCB0aGUgbGFtYmRhIHNob3VsZCBiZSBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBSRFMgSW5zdGFuY2Ugd2l0aCBpbnN0YWxsZWQgcGdTVEFDIG9yIHBnYm91bmNlciBzZXJ2ZXIuXG4gICAqL1xuICByZWFkb25seSBkYjogcmRzLklEYXRhYmFzZUluc3RhbmNlIHwgZWMyLklJbnN0YW5jZTtcblxuICAvKipcbiAgICogU3VibmV0IGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBTZWNyZXQgY29udGFpbmluZyBjb25uZWN0aW9uIGluZm9ybWF0aW9uIGZvciBwZ1NUQUMgZGF0YWJhc2UuXG4gICAqL1xuICByZWFkb25seSBkYlNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldDtcblxuICAvKipcbiAgICogQ3VzdG9taXplZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2VuZCB0byBmYXN0YXBpLXBnc3RhYyBydW50aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQ3VzdG9tIERvbWFpbiBOYW1lIE9wdGlvbnMgZm9yIFNUQUMgQVBJLFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY0FwaURvbWFpbk5hbWU/OiBhcGlnYXRld2F5djIuSURvbWFpbk5hbWU7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgU1RBQyBBUEkgZXh0ZW5zaW9ucyB0byBlbmFibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcXVlcnksIHNvcnQsIGZpZWxkcywgZmlsdGVyLCBmcmVlX3RleHQsIHBhZ25pYXRpb24sIGNvbGxlY3Rpb25fc2VhcmNoXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkRXh0ZW5zaW9ucz86IEV4dGVuc2lvblR5cGVbXTtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbn1cbiJdfQ==
|
|
@@ -91,5 +91,5 @@ class StacBrowser extends constructs_1.Construct {
|
|
|
91
91
|
}
|
|
92
92
|
exports.StacBrowser = StacBrowser;
|
|
93
93
|
_a = JSII_RTTI_SYMBOL_1;
|
|
94
|
-
StacBrowser[_a] = { fqn: "eoapi-cdk.StacBrowser", version: "8.
|
|
94
|
+
StacBrowser[_a] = { fqn: "eoapi-cdk.StacBrowser", version: "8.3.1" };
|
|
95
95
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFxRjtBQUNyRiw2Q0FBdUQ7QUFDdkQsaURBQWdGO0FBRWhGLDJDQUF1QztBQUN2QyxpREFBeUM7QUFDekMseUJBQXlCO0FBRXpCLE1BQU0sdUJBQXVCLEdBQUcsZ0JBQWdCLENBQUM7QUFFakQsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFLdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxjQUFjLElBQUksdUJBQXVCLENBQUMsQ0FBQztRQUV4RixpRkFBaUY7UUFDakYsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0JBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFDeEMsYUFBYSxFQUFFLG9CQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTztnQkFDN0MsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztnQkFDcEMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjthQUNuRCxDQUFDLENBQUE7UUFDTixDQUFDO1FBRUQsOEpBQThKO1FBQzlKLElBQUksS0FBSyxDQUFDLHlCQUF5QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMs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LENBQUMsQ0FBQztZQUN6SCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsS0FBSyxDQUFDLGNBQWMsT0FBTyxjQUFjLFlBQVksQ0FBQyxDQUFBO1lBQ3pGLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLGNBQWMsWUFBWSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxLQUFLLENBQUMsY0FBYyxTQUFTLGNBQWMsRUFBRSxDQUFDLENBQUE7UUFDMUYsSUFBQSx3QkFBUSxFQUFDLGlDQUFpQyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUUzRixPQUFPLHFCQUFxQixDQUFBO0lBRWhDLENBQUM7O0FBcEdMLGtDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrLCBhd3NfczMgYXMgczMsIGF3c19zM19kZXBsb3ltZW50IGFzIHMzX2RlcGxveW1lbnR9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIFNlcnZpY2VQcmluY2lwYWwsIEVmZmVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5cbmNvbnN0IERFRkFVTFRfQ0xPTkVfRElSRUNUT1JZID0gJy4vc3RhYy1icm93c2VyJztcblxuZXhwb3J0IGNsYXNzIFN0YWNCcm93c2VyIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAgIHB1YmxpYyBidWNrZXQ6IHMzLklCdWNrZXQ7XG4gICAgcHVibGljIGJ1Y2tldERlcGxveW1lbnQ6IHMzX2RlcGxveW1lbnQuQnVja2V0RGVwbG95bWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFjQnJvd3NlclByb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgY29uc3QgYnVpbGRQYXRoID0gdGhpcy5idWlsZEFwcChwcm9wcywgcHJvcHMuY2xvbmVEaXJlY3RvcnkgfHwgREVGQVVMVF9DTE9ORV9ESVJFQ1RPUlkpO1xuXG4gICAgICAgIC8vIGltcG9ydCBhIGJ1Y2tldCBmcm9tIHByb3BzLmJ1Y2tldEFybiBpZiBkZWZpbmVkLCBvdGhlcndpc2UgY3JlYXRlIGEgbmV3IGJ1Y2tldFxuICAgICAgICBpZiAocHJvcHMuYnVja2V0QXJuKSB7XG4gICAgICAgICAgICB0aGlzLmJ1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0QXJuKHRoaXMsICdCdWNrZXQnLCBwcm9wcy5idWNrZXRBcm4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnLCB7XG4gICAgICAgICAgICAgICAgYWNjZXNzQ29udHJvbDogczMuQnVja2V0QWNjZXNzQ29udHJvbC5QUklWQVRFLFxuICAgICAgICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgICAgICAgICB3ZWJzaXRlSW5kZXhEb2N1bWVudDogcHJvcHMud2Vic2l0ZUluZGV4RG9jdW1lbnRcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuIGlzIGRlZmluZWQgYW5kIHByb3BzLmJ1Y2tldEFybiBpcyBub3QgZGVmaW5lZCwgYWRkIGEgYnVja2V0IHBvbGljeSB0byBhbGxvdyByZWFkIGFjY2VzcyBmcm9tIHRoZSBjbG91ZGZyb250IGRpc3RyaWJ1dGlvblxuICAgICAgICBpZiAocHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvbkFybiAmJiAhcHJvcHMuYnVja2V0QXJuKSB7XG4gICAgICAgICAgICB0aGlzLmJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2lkOiAnQWxsb3dDbG91ZEZyb250U2VydmljZVByaW5jaXBhbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbScpXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlczogW3RoaXMuYnVja2V0LmFybkZvck9iamVjdHMoJyonKV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1N0cmluZ0VxdWFscyc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F3czpTb3VyY2VBcm4nOiBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgdGhlIGNvbXBpbGVkIGNvZGUgdG8gdGhlIGJ1Y2tldCBhcyBhIGJ1Y2tldCBkZXBsb3ltZW50XG4gICAgICAgIHRoaXMuYnVja2V0RGVwbG95bWVudCA9IG5ldyBzM19kZXBsb3ltZW50LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0J1Y2tldERlcGxveW1lbnQnLCB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICAgICAgICBzb3VyY2VzOiBbczNfZGVwbG95bWVudC5Tb3VyY2UuYXNzZXQoYnVpbGRQYXRoKV1cbiAgICAgICAgICB9KTtcblxuICAgICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiYnVja2V0LW5hbWVcIiwge1xuICAgICAgICBleHBvcnROYW1lOiBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LWJ1Y2tldC1uYW1lYCxcbiAgICAgICAgdmFsdWU6IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEFwcChwcm9wczogU3RhY0Jyb3dzZXJQcm9wcywgY2xvbmVEaXJlY3Rvcnk6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICAgICAgLy8gRGVmaW5lIHdoZXJlIHRvIGNsb25lIGFuZCBidWlsZFxuICAgICAgICBjb25zdCBnaXRodWJSZXBvVXJsID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9yYWRpYW50ZWFydGgvc3RhYy1icm93c2VyLmdpdCc7XG5cblxuICAgICAgICAvLyBNYXliZSB0aGUgcmVwbyBhbHJlYWR5IGV4aXN0cyBpbiBjbG9uZURpcmVjdG9yeS4gVHJ5IGNoZWNraW5nIG91dCB0aGUgZGVzaXJlZCB2ZXJzaW9uIGFuZCBpZiBpdCBmYWlscywgZGVsZXRlIGFuZCByZWNsb25lLlxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYENoZWNraW5nIGlmIGEgdmFsaWQgY2xvbmVkIHJlcG8gZXhpc3RzIHdpdGggdmVyc2lvbiAke3Byb3BzLmdpdGh1YlJlcG9UYWd9Li4uYClcbiAgICAgICAgICAgIGV4ZWNTeW5jKGBnaXQgY2hlY2tvdXQgdGFncy8ke3Byb3BzLmdpdGh1YlJlcG9UYWd9YCwgeyBjd2Q6IGNsb25lRGlyZWN0b3J5IH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuXG4gICAgICAgICAgICAvLyBpZiBkaXJlY3RvcnkgZXhpc3RzLCByYWlzZSBhbiBlcnJvclxuICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoY2xvbmVEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEaXJlY3RvcnkgJHtjbG9uZURpcmVjdG9yeX0gYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGNsb25lIG9mICR7Z2l0aHViUmVwb1VybH0uIFBsZWFzZSBkZWxldGUgdGhpcyBkaXJlY3Rvcnkgb3Igc3BlY2lmeSBhIGRpZmZlcmVudCBjbG9uZURpcmVjdG9yeS5gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZWxzZSwgd2UgY2xvbmUgYW5kIGNoZWNrIG91dCB0aGUgdmVyc2lvbi5cblxuICAgICAgICAgICAgLy8gQ2xvbmUgdGhlIHJlcG9cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDbG9uaW5nICR7Z2l0aHViUmVwb1VybH0gaW50byAke2Nsb25lRGlyZWN0b3J5fS4uLmApXG4gICAgICAgICAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0aHViUmVwb1VybH0gJHtjbG9uZURpcmVjdG9yeX1gKTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgb3V0IHRoZSBkZXNpcmVkIHZlcnNpb25cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDaGVja2luZyBvdXQgdmVyc2lvbiAke3Byb3BzLmdpdGh1YlJlcG9UYWd9Li4uYClcbiAgICAgICAgICAgIGV4ZWNTeW5jKGBnaXQgY2hlY2tvdXQgdGFncy8ke3Byb3BzLmdpdGh1YlJlcG9UYWd9YCwgeyBjd2Q6IGNsb25lRGlyZWN0b3J5IH0pO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICBjb25zb2xlLmxvZyhgSW5zdGFsbGluZyBkZXBlbmRlbmNpZXNgKVxuICAgICAgICBleGVjU3luYygnbnBtIGluc3RhbGwnLCB7IGN3ZDogY2xvbmVEaXJlY3RvcnkgfSk7XG5cbiAgICAgICAgLy8gSWYgYSBjb25maWcgZmlsZSBpcyBwcm92aWRlZCwgY29weSBpdCB0byB0aGUgc3RhYy1icm93c2VyIGRpcmVjdG9yeSBhdCBcImNvbmZpZy5qc1wiLCByZXBsYWNlcyB0aGUgZGVmYXVsdCBjb25maWcuanMuXG4gICAgICAgIGlmIChwcm9wcy5jb25maWdGaWxlUGF0aCkge1xuICAgICAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgZmlsZSBleGlzdHMgYXQgdGhpcyBsb2NhdGlvbi4gaWYgbm90LCByYWlzZSBhbiBlcnJvciBhbmQgcHJpbnQgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwcm9wcy5jb25maWdGaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZpZyBmaWxlICR7cHJvcHMuY29uZmlnRmlsZVBhdGh9IGRvZXMgbm90IGV4aXN0LiBDdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGlzICR7cHJvY2Vzcy5jd2QoKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDb3B5aW5nIGNvbmZpZyBmaWxlICR7cHJvcHMuY29uZmlnRmlsZVBhdGh9IHRvICR7Y2xvbmVEaXJlY3Rvcnl9L2NvbmZpZy5qc2ApXG4gICAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMocHJvcHMuY29uZmlnRmlsZVBhdGgsIGAke2Nsb25lRGlyZWN0b3J5fS9jb25maWcuanNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJ1aWxkIHRoZSBhcHAgd2l0aCBjYXRhbG9nVXJsXG4gICAgICAgIGNvbnNvbGUubG9nKGBCdWlsZGluZyBhcHAgd2l0aCBjYXRhbG9nVXJsPSR7cHJvcHMuc3RhY0NhdGFsb2dVcmx9IGludG8gJHtjbG9uZURpcmVjdG9yeX1gKVxuICAgICAgICBleGVjU3luYyhgbnBtIHJ1biBidWlsZCAtLSAtLWNhdGFsb2dVcmw9JHtwcm9wcy5zdGFjQ2F0YWxvZ1VybH1gLCB7IGN3ZDogY2xvbmVEaXJlY3RvcnkgfSk7XG5cbiAgICAgICAgcmV0dXJuICcuL3N0YWMtYnJvd3Nlci9kaXN0J1xuXG4gICAgfVxuXG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFjQnJvd3NlclByb3BzIHtcblxuICAgIC8qKlxuICAgICAqIEJ1Y2tldCBBUk4uIElmIHNwZWNpZmllZCwgdGhlIGlkZW50aXR5IHVzZWQgdG8gZGVwbG95IHRoZSBzdGFjayBtdXN0IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBhIGRlcGxveW1lbnQgZm9yIHRoaXMgYnVja2V0LlxuICAgICAqIEluIGFkZGl0aW9uLCBpZiBzcGVjaWZpZWQsIGBjbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuYCBpcyBpZ25vcmVkIHNpbmNlIHRoZSBwb2xpY3kgb2YgYW4gaW1wb3J0ZWQgcmVzb3VyY2UgY2FuJ3QgYmUgbW9kaWZpZWQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIE5vIGJ1Y2tldCBBUk4uIEEgbmV3IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAgICovXG5cbiAgICByZWFkb25seSBidWNrZXRBcm4/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTVEFDIGNhdGFsb2cgVVJMLiBPdmVycmlkZXMgdGhlIGNhdGFsb2cgVVJMIGluIHRoZSBzdGFjLWJyb3dzZXIgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBzdGFjQ2F0YWxvZ1VybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUGF0aCB0byBjb25maWcgZmlsZSBmb3IgdGhlIFNUQUMgYnJvd3Nlci4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaW4gdGhlIFNUQUMgYnJvd3NlclxuICAgICAqIHJlcG9zaXRvcnkgaXMgdXNlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBjb25maWdGaWxlUGF0aD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRhZyBvZiB0aGUgcmFkaWFudCBlYXJ0aCBzdGFjLWJyb3dzZXIgcmVwbyB0byB1c2UgdG8gYnVpbGQgdGhlIGFwcC5cbiAgICAgKi9cbiAgICByZWFkb25seSBnaXRodWJSZXBvVGFnOiBzdHJpbmc7XG5cblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uIHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgYnVja2V0IHBvbGljeSB3aXRoIHJlYWQgYWNjZXNzLlxuICAgICAqIElmIGBidWNrZXRBcm5gIGlzIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBzaW5jZSB0aGUgcG9saWN5IG9mIGFuIGltcG9ydGVkIGJ1Y2tldCBjYW4ndCBiZSBtb2RpZmllZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm8gY2xvdWRmcm9udCBkaXN0cmlidXRpb24gQVJOLiBUaGUgYnVja2V0IHBvbGljeSB3aWxsIG5vdCBiZSBtb2RpZmllZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBjbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGluZGV4IGRvY3VtZW50IChlLmcuIFwiaW5kZXguaHRtbFwiKSBmb3IgdGhlIHdlYnNpdGUuIEVuYWJsZXMgc3RhdGljIHdlYnNpdGVcbiAgICAgKiBob3N0aW5nIGZvciB0aGlzIGJ1Y2tldC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm8gaW5kZXggZG9jdW1lbnQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgd2Vic2l0ZUluZGV4RG9jdW1lbnQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhdGlvbiBpbiB0aGUgZmlsZXN5c3RlbSB3aGVyZSB0byBjb21waWxlIHRoZSBicm93c2VyIGNvZGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIERFRkFVTFRfQ0xPTkVfRElSRUNUT1JZXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2xvbmVEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbn1cbiJdfQ==
|
|
@@ -3,30 +3,30 @@ import { Construct } from "constructs";
|
|
|
3
3
|
import { PgStacDatabase } from "../database";
|
|
4
4
|
import { CustomLambdaFunctionProps } from "../utils";
|
|
5
5
|
/**
|
|
6
|
-
* Configuration properties for the
|
|
6
|
+
* Configuration properties for the StacLoader construct.
|
|
7
7
|
*
|
|
8
|
-
* The
|
|
9
|
-
* that loads STAC items into a pgstac database. This construct creates
|
|
10
|
-
* the infrastructure for receiving STAC
|
|
8
|
+
* The StacLoader is part of a two-phase serverless STAC ingestion pipeline
|
|
9
|
+
* that loads STAC collections and items into a pgstac database. This construct creates
|
|
10
|
+
* the infrastructure for receiving STAC objects from multiple sources:
|
|
11
11
|
* 1. SNS messages containing STAC metadata (direct ingestion)
|
|
12
|
-
* 2. S3 event notifications for STAC
|
|
12
|
+
* 2. S3 event notifications for STAC objects uploaded to S3 buckets
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
* Objects from both sources are batched and inserted into PostgreSQL with the pgstac extension.
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
|
-
* const loader = new
|
|
17
|
+
* const loader = new StacLoader(this, 'StacLoader', {
|
|
18
18
|
* pgstacDb: database,
|
|
19
19
|
* batchSize: 1000,
|
|
20
20
|
* maxBatchingWindowMinutes: 1,
|
|
21
21
|
* lambdaTimeoutSeconds: 300
|
|
22
22
|
* });
|
|
23
23
|
*/
|
|
24
|
-
export interface
|
|
24
|
+
export interface StacLoaderProps {
|
|
25
25
|
/**
|
|
26
|
-
* The PgSTAC database instance to load
|
|
26
|
+
* The PgSTAC database instance to load data into.
|
|
27
27
|
*
|
|
28
28
|
* This database must have the pgstac extension installed and be properly
|
|
29
|
-
* configured with collections before
|
|
29
|
+
* configured with collections before objects can be loaded. The loader will
|
|
30
30
|
* use AWS Secrets Manager to securely access database credentials.
|
|
31
31
|
*/
|
|
32
32
|
readonly pgstacDb: PgStacDatabase;
|
|
@@ -52,7 +52,7 @@ export interface StacItemLoaderProps {
|
|
|
52
52
|
* The timeout for the item load lambda in seconds.
|
|
53
53
|
*
|
|
54
54
|
* This should accommodate the time needed to process up to `batchSize`
|
|
55
|
-
*
|
|
55
|
+
* objects and perform database insertions. The SQS visibility timeout
|
|
56
56
|
* will be set to this value plus 10 seconds.
|
|
57
57
|
*
|
|
58
58
|
* @default 300
|
|
@@ -62,7 +62,7 @@ export interface StacItemLoaderProps {
|
|
|
62
62
|
* Memory size for the lambda function in MB.
|
|
63
63
|
*
|
|
64
64
|
* Higher memory allocation may improve performance when processing
|
|
65
|
-
* large batches of STAC
|
|
65
|
+
* large batches of STAC objects, especially for memory-intensive
|
|
66
66
|
* database operations.
|
|
67
67
|
*
|
|
68
68
|
* @default 1024
|
|
@@ -71,7 +71,7 @@ export interface StacItemLoaderProps {
|
|
|
71
71
|
/**
|
|
72
72
|
* SQS batch size for lambda event source.
|
|
73
73
|
*
|
|
74
|
-
* This determines the maximum number of STAC
|
|
74
|
+
* This determines the maximum number of STAC objects that will be
|
|
75
75
|
* processed together in a single lambda invocation. Larger batch
|
|
76
76
|
* sizes improve database insertion efficiency but require more
|
|
77
77
|
* memory and longer processing time.
|
|
@@ -88,19 +88,19 @@ export interface StacItemLoaderProps {
|
|
|
88
88
|
* Maximum batching window in minutes.
|
|
89
89
|
*
|
|
90
90
|
* Even if the batch size isn't reached, the lambda will be triggered
|
|
91
|
-
* after this time period to ensure timely processing of
|
|
92
|
-
* This prevents
|
|
91
|
+
* after this time period to ensure timely processing of objects.
|
|
92
|
+
* This prevents objects from waiting indefinitely in low-volume scenarios.
|
|
93
93
|
*
|
|
94
94
|
* **Important**: This timeout works in conjunction with batchSize - SQS
|
|
95
95
|
* will trigger the Lambda when EITHER the batch size is reached OR this
|
|
96
|
-
* time window expires, ensuring
|
|
96
|
+
* time window expires, ensuring objects are processed in a timely manner
|
|
97
97
|
* regardless of volume.
|
|
98
98
|
*
|
|
99
99
|
* @default 1
|
|
100
100
|
*/
|
|
101
101
|
readonly maxBatchingWindowMinutes?: number;
|
|
102
102
|
/**
|
|
103
|
-
* Maximum concurrent executions for the
|
|
103
|
+
* Maximum concurrent executions for the StacLoader Lambda function
|
|
104
104
|
*
|
|
105
105
|
* This limit will be applied to the Lambda function and will control how
|
|
106
106
|
* many concurrent batches will be released from the SQS queue.
|
|
@@ -129,35 +129,35 @@ export interface StacItemLoaderProps {
|
|
|
129
129
|
readonly lambdaFunctionOptions?: CustomLambdaFunctionProps;
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
|
-
* AWS CDK Construct for STAC
|
|
132
|
+
* AWS CDK Construct for STAC Object Loading Infrastructure
|
|
133
133
|
*
|
|
134
|
-
* The
|
|
135
|
-
* STAC (SpatioTemporal Asset Catalog)
|
|
134
|
+
* The StacLoader creates a serverless, event-driven system for loading
|
|
135
|
+
* STAC (SpatioTemporal Asset Catalog) objects into a PostgreSQL database with
|
|
136
136
|
* the pgstac extension. This construct supports multiple ingestion pathways
|
|
137
|
-
* for flexible STAC
|
|
137
|
+
* for flexible STAC object loading.
|
|
138
138
|
*
|
|
139
139
|
* ## Architecture Overview
|
|
140
140
|
*
|
|
141
141
|
* This construct creates the following AWS resources:
|
|
142
|
-
* - **SNS Topic**: Entry point for STAC
|
|
142
|
+
* - **SNS Topic**: Entry point for STAC objects and S3 event notifications
|
|
143
143
|
* - **SQS Queue**: Buffers and batches messages before processing (60-second visibility timeout)
|
|
144
144
|
* - **Dead Letter Queue**: Captures failed loading attempts after 5 retries
|
|
145
|
-
* - **Lambda Function**: Python function that processes batches and inserts
|
|
145
|
+
* - **Lambda Function**: Python function that processes batches and inserts objects into pgstac
|
|
146
146
|
*
|
|
147
147
|
* ## Data Flow
|
|
148
148
|
*
|
|
149
149
|
* The loader supports two primary data ingestion patterns:
|
|
150
150
|
*
|
|
151
|
-
* ### Direct STAC
|
|
152
|
-
* 1. STAC
|
|
153
|
-
* 2. The SQS queue collects messages and batches them (up to {batchSize}
|
|
154
|
-
* 3. The Lambda function receives batches, validates
|
|
151
|
+
* ### Direct STAC Object Publishing
|
|
152
|
+
* 1. STAC objects (JSON) are published directly to the SNS topic in message bodies
|
|
153
|
+
* 2. The SQS queue collects messages and batches them (up to {batchSize} objects or 1 minute window)
|
|
154
|
+
* 3. The Lambda function receives batches, validates objects, and inserts into pgstac
|
|
155
155
|
*
|
|
156
156
|
* ### S3 Event-Driven Loading
|
|
157
157
|
* 1. An S3 bucket is configured to send notifications to the SNS topic when json files are created
|
|
158
|
-
* 2. STAC
|
|
159
|
-
* 3. S3 event notifications are sent to the SNS topic when
|
|
160
|
-
* 4. The Lambda function receives S3 events in the SQS message batch, fetches
|
|
158
|
+
* 2. STAC objects are uploaded to S3 buckets as JSON/GeoJSON files
|
|
159
|
+
* 3. S3 event notifications are sent to the SNS topic when objects are uploaded
|
|
160
|
+
* 4. The Lambda function receives S3 events in the SQS message batch, fetches objects from S3, and loads into pgstac
|
|
161
161
|
*
|
|
162
162
|
* ## Batching Behavior
|
|
163
163
|
*
|
|
@@ -168,7 +168,7 @@ export interface StacItemLoaderProps {
|
|
|
168
168
|
* triggers after `maxBatchingWindow` minutes (default: 1 minute)
|
|
169
169
|
* - **Trigger Condition**: Lambda executes when EITHER condition is met first
|
|
170
170
|
* - **Concurrency**: Limited to `maxConcurrency` concurrent executions to prevent database overload
|
|
171
|
-
* - **Partial Failures**: Uses `reportBatchItemFailures` to retry only failed
|
|
171
|
+
* - **Partial Failures**: Uses `reportBatchItemFailures` to retry only failed objects
|
|
172
172
|
*
|
|
173
173
|
* This approach balances throughput (larger batches = fewer database connections)
|
|
174
174
|
* with latency (time-based triggers prevent indefinite waiting).
|
|
@@ -177,13 +177,13 @@ export interface StacItemLoaderProps {
|
|
|
177
177
|
*
|
|
178
178
|
* Failed messages are sent to the dead letter queue after 5 processing attempts.
|
|
179
179
|
* **Important**: This construct provides NO automated handling of dead letter queue
|
|
180
|
-
* messages - monitoring, inspection, and reprocessing of failed
|
|
180
|
+
* messages - monitoring, inspection, and reprocessing of failed objects is the
|
|
181
181
|
* responsibility of the implementing application.
|
|
182
182
|
*
|
|
183
183
|
* Consider implementing:
|
|
184
184
|
* - CloudWatch alarms on dead letter queue depth
|
|
185
185
|
* - Manual or automated reprocessing workflows
|
|
186
|
-
* - Logging and alerting for failed
|
|
186
|
+
* - Logging and alerting for failed objects
|
|
187
187
|
* - Regular cleanup of old dead letter messages (14-day retention)
|
|
188
188
|
*
|
|
189
189
|
* ## Operational Characteristics
|
|
@@ -197,7 +197,7 @@ export interface StacItemLoaderProps {
|
|
|
197
197
|
* ## Prerequisites
|
|
198
198
|
*
|
|
199
199
|
* Before using this construct, ensure:
|
|
200
|
-
* - The pgstac database has collections loaded (
|
|
200
|
+
* - The pgstac database has collections loaded (objects require existing collection IDs)
|
|
201
201
|
* - Database credentials are stored in AWS Secrets Manager
|
|
202
202
|
* - The pgstac extension is properly installed and configured
|
|
203
203
|
*
|
|
@@ -209,26 +209,39 @@ export interface StacItemLoaderProps {
|
|
|
209
209
|
* pgstacVersion: '0.9.5'
|
|
210
210
|
* });
|
|
211
211
|
*
|
|
212
|
-
* // Create
|
|
213
|
-
* const loader = new
|
|
212
|
+
* // Create Object loader
|
|
213
|
+
* const loader = new StacLoader(this, 'StacLoader', {
|
|
214
214
|
* pgstacDb: database,
|
|
215
|
-
* batchSize: 1000, // Process up to 1000
|
|
215
|
+
* batchSize: 1000, // Process up to 1000 objects per batch
|
|
216
216
|
* maxBatchingWindowMinutes: 1, // Wait max 1 minute to fill batch
|
|
217
217
|
* lambdaTimeoutSeconds: 300 // Allow up to 300 seconds for database operations
|
|
218
218
|
* });
|
|
219
219
|
*
|
|
220
|
-
* // The topic ARN can be used by other services to publish
|
|
220
|
+
* // The topic ARN can be used by other services to publish objects
|
|
221
221
|
* new CfnOutput(this, 'LoaderTopicArn', {
|
|
222
222
|
* value: loader.topic.topicArn
|
|
223
223
|
* });
|
|
224
224
|
* ```
|
|
225
225
|
*
|
|
226
|
-
* ## Direct
|
|
226
|
+
* ## Direct Object Publishing
|
|
227
227
|
*
|
|
228
|
-
* External services can publish STAC
|
|
228
|
+
* External services can publish STAC objects directly to the topic:
|
|
229
229
|
*
|
|
230
230
|
* ```bash
|
|
231
|
-
* aws sns publish --topic-arn $
|
|
231
|
+
* aws sns publish --topic-arn $STAC_LOAD_TOPIC --message '{
|
|
232
|
+
* "id": "example-collection",
|
|
233
|
+
* "type": "Collection",
|
|
234
|
+
* "title": "Example Collection",
|
|
235
|
+
* "description": "An example collection",
|
|
236
|
+
* "license": "proprietary",
|
|
237
|
+
* "extent": {
|
|
238
|
+
* "spatial": {"bbox": [[-180, -90, 180, 90]]},
|
|
239
|
+
* "temporal": {"interval": [[null, null]]},
|
|
240
|
+
* },
|
|
241
|
+
* "stac_version": "1.1.0",
|
|
242
|
+
* }'
|
|
243
|
+
*
|
|
244
|
+
* aws sns publish --topic-arn $STAC_LOAD_TOPIC --message '{
|
|
232
245
|
* "type": "Feature",
|
|
233
246
|
* "stac_version": "1.0.0",
|
|
234
247
|
* "id": "example-item",
|
|
@@ -236,12 +249,14 @@ export interface StacItemLoaderProps {
|
|
|
236
249
|
* "geometry": {"type": "Polygon", "coordinates": [...]},
|
|
237
250
|
* "collection": "example-collection"
|
|
238
251
|
* }'
|
|
252
|
+
*
|
|
253
|
+
*
|
|
239
254
|
* ```
|
|
240
255
|
*
|
|
241
256
|
* ## S3 Event Configuration
|
|
242
257
|
*
|
|
243
258
|
* To enable S3 event-driven loading, configure S3 bucket notifications to send
|
|
244
|
-
* events to the SNS topic when STAC
|
|
259
|
+
* events to the SNS topic when STAC objects (.json or .geojson files) are uploaded:
|
|
245
260
|
*
|
|
246
261
|
* ```typescript
|
|
247
262
|
* // Configure S3 bucket to send notifications to the loader topic
|
|
@@ -258,16 +273,16 @@ export interface StacItemLoaderProps {
|
|
|
258
273
|
* );
|
|
259
274
|
* ```
|
|
260
275
|
*
|
|
261
|
-
* When STAC
|
|
276
|
+
* When STAC objects are uploaded to the configured S3 bucket, the loader will:
|
|
262
277
|
* 1. Receive S3 event notifications via SNS
|
|
263
|
-
* 2. Fetch the STAC
|
|
264
|
-
* 3. Validate and load the
|
|
278
|
+
* 2. Fetch the STAC JSON from S3
|
|
279
|
+
* 3. Validate and load the objects into the pgstac database
|
|
265
280
|
*
|
|
266
281
|
* ## Monitoring and Troubleshooting
|
|
267
282
|
*
|
|
268
283
|
* - Monitor Lambda logs: `/aws/lambda/{FunctionName}`
|
|
269
|
-
* - **Dead Letter Queue**: Check for failed
|
|
270
|
-
* - Use batch
|
|
284
|
+
* - **Dead Letter Queue**: Check for failed objects - **no automated handling provided**
|
|
285
|
+
* - Use batch objects failure reporting for partial batch processing
|
|
271
286
|
* - CloudWatch metrics available for queue depth and Lambda performance
|
|
272
287
|
*
|
|
273
288
|
* ### Dead Letter Queue Management
|
|
@@ -289,13 +304,13 @@ export interface StacItemLoaderProps {
|
|
|
289
304
|
* ```
|
|
290
305
|
*
|
|
291
306
|
*/
|
|
292
|
-
export declare class
|
|
307
|
+
export declare class StacLoader extends Construct {
|
|
293
308
|
/**
|
|
294
|
-
* The SNS topic that receives STAC
|
|
309
|
+
* The SNS topic that receives STAC objects and S3 event notifications for loading.
|
|
295
310
|
*
|
|
296
311
|
* This topic serves as the entry point for two types of events:
|
|
297
|
-
* 1. Direct STAC
|
|
298
|
-
* 2. S3 event notifications when STAC
|
|
312
|
+
* 1. Direct STAC JSON documents published by external services
|
|
313
|
+
* 2. S3 event notifications when STAC objects are uploaded to configured buckets
|
|
299
314
|
*
|
|
300
315
|
* The topic fans out to the SQS queue for batched processing.
|
|
301
316
|
*/
|
|
@@ -303,14 +318,14 @@ export declare class StacItemLoader extends Construct {
|
|
|
303
318
|
/**
|
|
304
319
|
* The SQS queue that buffers messages before processing.
|
|
305
320
|
*
|
|
306
|
-
* This queue collects both direct STAC
|
|
321
|
+
* This queue collects both direct STAC objects from SNS and S3 event
|
|
307
322
|
* notifications, batching them for efficient database operations.
|
|
308
323
|
* Configured with a visibility timeout that accommodates Lambda
|
|
309
324
|
* processing time plus buffer.
|
|
310
325
|
*/
|
|
311
326
|
readonly queue: sqs.Queue;
|
|
312
327
|
/**
|
|
313
|
-
* Dead letter queue for failed
|
|
328
|
+
* Dead letter queue for failed objects loading attempts.
|
|
314
329
|
*
|
|
315
330
|
* Messages that fail processing after 5 attempts are sent here
|
|
316
331
|
* for inspection and potential replay. Retains messages for 14 days
|
|
@@ -326,16 +341,27 @@ export declare class StacItemLoader extends Construct {
|
|
|
326
341
|
*/
|
|
327
342
|
readonly deadLetterQueue: sqs.Queue;
|
|
328
343
|
/**
|
|
329
|
-
* The Lambda function that loads STAC
|
|
344
|
+
* The Lambda function that loads STAC objects into the pgstac database.
|
|
330
345
|
*
|
|
331
346
|
* This Python function receives batches of messages from SQS and processes
|
|
332
347
|
* them based on their type:
|
|
333
|
-
* - Direct STAC
|
|
334
|
-
* - S3 events: Fetches STAC
|
|
348
|
+
* - Direct STAC objects: Validates and loads directly into pgstac
|
|
349
|
+
* - S3 events: Fetches STAC JSON from S3, validates, and loads into pgstac
|
|
335
350
|
*
|
|
336
351
|
* The function connects to PostgreSQL using credentials from Secrets Manager
|
|
337
352
|
* and uses pypgstac for efficient database operations.
|
|
338
353
|
*/
|
|
339
354
|
readonly lambdaFunction: lambda.Function;
|
|
340
|
-
constructor(scope: Construct, id: string, props:
|
|
355
|
+
constructor(scope: Construct, id: string, props: StacLoaderProps);
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* @deprecated Use StacLoader instead. StacItemLoader will be removed in a future version.
|
|
359
|
+
*/
|
|
360
|
+
export declare class StacItemLoader extends StacLoader {
|
|
361
|
+
constructor(scope: Construct, id: string, props: StacLoaderProps);
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* @deprecated Use StacLoaderProps instead. StacItemLoaderProps will be removed in a future version.
|
|
365
|
+
*/
|
|
366
|
+
export interface StacItemLoaderProps extends StacLoaderProps {
|
|
341
367
|
}
|