cdk8s-cli 2.122.0 → 2.124.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,6 +20,7 @@ class Command {
20
20
  .example('cdk8s import jenkins.io_jenkins_crd.yaml', 'Imports constructs for the Jenkins custom resource definition from a file')
21
21
  .example('cdk8s import mattermost:=mattermost_crd.yaml', 'Imports constructs for the mattermost cluster custom resource definition using a custom module name')
22
22
  .example('cdk8s import github:crossplane/crossplane@0.14.0', 'Imports constructs for a GitHub repo using doc.crds.dev')
23
+ .example('cdk8s import helm:https://charts.bitnami.com/bitnami/mysql@9.10.10', 'Imports the specified version of helm chart')
23
24
  .option('save', { type: 'boolean', required: false, default: true, desc: "Dont save the import URL in the 'imports' section of the cdk8s.yaml configuration file.", alias: 's' })
24
25
  .option('output', { default: DEFAULT_OUTDIR, type: 'string', desc: 'Output directory', alias: 'o' })
25
26
  .option('exclude', { type: 'array', desc: 'Do not import types that match these regular expressions. They will be represented as the "any" type (only for "k8s")' })
@@ -39,4 +40,4 @@ class Command {
39
40
  }
40
41
  }
41
42
  module.exports = new Command();
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL2ltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHlDQUEwRDtBQUMxRCxvREFBdUQ7QUFDdkQsMENBQXVEO0FBQ3ZELHFDQUEwQztBQUUxQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHVCQUFjLEdBQUUsQ0FBQztBQUVoQyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7QUFDakMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUV6RCxNQUFNLE9BQU87SUFBYjtRQUNrQixZQUFPLEdBQUcsZUFBZSxDQUFDO1FBQzFCLGFBQVEsR0FBRywyREFBMkQsQ0FBQztRQUN2RSxZQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhDLFlBQU8sR0FBRyxDQUFDLElBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUk7YUFDakQsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnTEFBZ0wsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDclAsT0FBTyxDQUFDLGtCQUFrQixFQUFFLGlFQUFpRSx5QkFBbUIsRUFBRSxDQUFDO2FBQ25ILE9BQU8sQ0FBQyxvQ0FBb0MsRUFBRSwwREFBMEQsQ0FBQzthQUN6RyxPQUFPLENBQUMseUJBQXlCLEVBQUUsa0RBQWtELENBQUM7YUFDdEYsT0FBTyxDQUFDLDBDQUEwQyxFQUFFLDJFQUEyRSxDQUFDO2FBQ2hJLE9BQU8sQ0FBQyw4Q0FBOEMsRUFBRSxxR0FBcUcsQ0FBQzthQUM5SixPQUFPLENBQUMsa0RBQWtELEVBQUUseURBQXlELENBQUM7YUFFdEgsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSx5RkFBeUYsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFDaEwsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ25HLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSx1SEFBdUgsRUFBRSxDQUFDO2FBQ25LLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSwrS0FBK0ssRUFBRSxDQUFDO2FBQ2pPLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLDZCQUE2QixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFjMUosQ0FBQztJQVpRLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBUztRQUM1QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzNFLE1BQU0sT0FBTyxHQUFhLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RSxNQUFNLEtBQUssR0FBaUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQVksQ0FBQyxDQUFDO1FBRW5GLE1BQU0sSUFBQSx5QkFBYyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUM3QixlQUFlO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCB7IHJlYWRDb25maWdTeW5jLCBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IGltcG9ydERpc3BhdGNoIH0gZnJvbSAnLi4vLi4vaW1wb3J0L2Rpc3BhdGNoJztcbmltcG9ydCB7IERFRkFVTFRfQVBJX1ZFUlNJT04gfSBmcm9tICcuLi8uLi9pbXBvcnQvazhzJztcbmltcG9ydCB7IHBhcnNlSW1wb3J0cyB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG5jb25zdCBjb25maWcgPSByZWFkQ29uZmlnU3luYygpO1xuXG5jb25zdCBERUZBVUxUX09VVERJUiA9ICdpbXBvcnRzJztcbmNvbnN0IExBTkdVQUdFUyA9IFsndHlwZXNjcmlwdCcsICdweXRob24nLCAnamF2YScsICdnbyddO1xuXG5jbGFzcyBDb21tYW5kIGltcGxlbWVudHMgeWFyZ3MuQ29tbWFuZE1vZHVsZSB7XG4gIHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gJ2ltcG9ydCBbU1BFQ10nO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpYmUgPSAnSW1wb3J0cyBBUEkgb2JqZWN0cyB0byB5b3VyIGFwcCBieSBnZW5lcmF0aW5nIGNvbnN0cnVjdHMuJztcbiAgcHVibGljIHJlYWRvbmx5IGFsaWFzZXMgPSBbJ2dlbicsICdpbXBvcnQnLCAnZ2VuZXJhdGUnXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRlciA9IChhcmdzOiB5YXJncy5Bcmd2KSA9PiBhcmdzXG4gICAgLnBvc2l0aW9uYWwoJ1NQRUMnLCB7IGRlZmF1bHQ6IGNvbmZpZz8uaW1wb3J0cywgZGVzYzogJ2ltcG9ydCBzcGVjIHdpdGggdGhlIHN5bnRheCBbTkFNRTo9XVNQRUMgd2hlcmUgTkFNRSBpcyBhbiBvcHRpb25hbCBtb2R1bGUgbmFtZSBhbmQgc3VwcG9ydGVkIFNQRUMgYXJlOiBrOHMsIGNyZC55YW1sLCBodHRwczovL2RvbWFpbi9jcmQueWFtbCwgZ2l0aHViOmFjY291bnQvcmVwb1tAVkVSU0lPTl0pLicsIGFycmF5OiB0cnVlIH0pXG4gICAgLmV4YW1wbGUoJ2NkazhzIGltcG9ydCBrOHMnLCBgSW1wb3J0cyBLdWJlcm5ldGVzIEFQSSBvYmplY3RzIHRvIGltcG9ydHMvazhzLnRzLiBEZWZhdWx0cyB0byAke0RFRkFVTFRfQVBJX1ZFUlNJT059YClcbiAgICAuZXhhbXBsZSgnY2RrOHMgaW1wb3J0IGs4cyAtLW5vLWNsYXNzLXByZWZpeCcsICdJbXBvcnRzIEt1YmVybmV0ZXMgQVBJIG9iamVjdHMgd2l0aG91dCB0aGUgXCJLdWJlXCIgcHJlZml4JylcbiAgICAuZXhhbXBsZSgnY2RrOHMgaW1wb3J0IGs4c0AxLjEzLjAnLCAnSW1wb3J0cyBhIHNwZWNpZmljIHZlcnNpb24gb2YgdGhlIEt1YmVybmV0ZXMgQVBJJylcbiAgICAuZXhhbXBsZSgnY2RrOHMgaW1wb3J0IGplbmtpbnMuaW9famVua2luc19jcmQueWFtbCcsICdJbXBvcnRzIGNvbnN0cnVjdHMgZm9yIHRoZSBKZW5raW5zIGN1c3RvbSByZXNvdXJjZSBkZWZpbml0aW9uIGZyb20gYSBmaWxlJylcbiAgICAuZXhhbXBsZSgnY2RrOHMgaW1wb3J0IG1hdHRlcm1vc3Q6PW1hdHRlcm1vc3RfY3JkLnlhbWwnLCAnSW1wb3J0cyBjb25zdHJ1Y3RzIGZvciB0aGUgbWF0dGVybW9zdCBjbHVzdGVyIGN1c3RvbSByZXNvdXJjZSBkZWZpbml0aW9uIHVzaW5nIGEgY3VzdG9tIG1vZHVsZSBuYW1lJylcbiAgICAuZXhhbXBsZSgnY2RrOHMgaW1wb3J0IGdpdGh1Yjpjcm9zc3BsYW5lL2Nyb3NzcGxhbmVAMC4xNC4wJywgJ0ltcG9ydHMgY29uc3RydWN0cyBmb3IgYSBHaXRIdWIgcmVwbyB1c2luZyBkb2MuY3Jkcy5kZXYnKVxuXG4gICAgLm9wdGlvbignc2F2ZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCByZXF1aXJlZDogZmFsc2UsIGRlZmF1bHQ6IHRydWUsIGRlc2M6IFwiRG9udCBzYXZlIHRoZSBpbXBvcnQgVVJMIGluIHRoZSAnaW1wb3J0cycgc2VjdGlvbiBvZiB0aGUgY2RrOHMueWFtbCBjb25maWd1cmF0aW9uIGZpbGUuXCIsIGFsaWFzOiAncycgfSlcbiAgICAub3B0aW9uKCdvdXRwdXQnLCB7IGRlZmF1bHQ6IERFRkFVTFRfT1VURElSLCB0eXBlOiAnc3RyaW5nJywgZGVzYzogJ091dHB1dCBkaXJlY3RvcnknLCBhbGlhczogJ28nIH0pXG4gICAgLm9wdGlvbignZXhjbHVkZScsIHsgdHlwZTogJ2FycmF5JywgZGVzYzogJ0RvIG5vdCBpbXBvcnQgdHlwZXMgdGhhdCBtYXRjaCB0aGVzZSByZWd1bGFyIGV4cHJlc3Npb25zLiBUaGV5IHdpbGwgYmUgcmVwcmVzZW50ZWQgYXMgdGhlIFwiYW55XCIgdHlwZSAob25seSBmb3IgXCJrOHNcIiknIH0pXG4gICAgLm9wdGlvbignY2xhc3MtcHJlZml4JywgeyB0eXBlOiAnc3RyaW5nJywgZGVzYzogJ0EgcHJlZml4IHRvIGFkZCB0byBhbGwgZ2VuZXJhdGVkIGNsYXNzIG5hbWVzLiBCeSBkZWZhdWx0LCB0aGlzIGlzIFwiS3ViZVwiIGZvciBcIms4c1wiIGltcG9ydHMgYW5kIGRpc2FibGVkIGZvciBDUkQgaW1wb3J0cy4gVXNlIC0tbm8tY2xhc3MtcHJlZml4IHRvIGRpc2FibGUuIE11c3QgYmUgUGFzY2FsQ2FzZScgfSlcbiAgICAub3B0aW9uKCdsYW5ndWFnZScsIHsgZGVmYXVsdDogY29uZmlnPy5sYW5ndWFnZSwgZGVtYW5kOiB0cnVlLCB0eXBlOiAnc3RyaW5nJywgZGVzYzogJ091dHB1dCBwcm9ncmFtbWluZyBsYW5ndWFnZScsIGFsaWFzOiAnbCcsIGNob2ljZXM6IExBTkdVQUdFUyB9KTtcblxuICBwdWJsaWMgYXN5bmMgaGFuZGxlcihhcmd2OiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWVQcmVmaXggPSBhcmd2LmNsYXNzUHJlZml4ID09PSBmYWxzZSA/ICcnIDogYXJndi5jbGFzc1ByZWZpeDtcbiAgICBjb25zdCBpbXBvcnRzOiBzdHJpbmdbXSA9IEFycmF5LmlzQXJyYXkoYXJndi5zcGVjKSA/IGFyZ3Yuc3BlYyA6IFthcmd2LnNwZWNdO1xuICAgIGNvbnN0IHNwZWNzOiBJbXBvcnRTcGVjW10gPSBpbXBvcnRzLmZpbHRlcihzcGVjID0+IHNwZWMgIT0gbnVsbCkubWFwKHBhcnNlSW1wb3J0cyk7XG5cbiAgICBhd2FpdCBpbXBvcnREaXNwYXRjaChzcGVjcywgYXJndiwge1xuICAgICAgb3V0ZGlyOiBhcmd2Lm91dHB1dCxcbiAgICAgIHRhcmdldExhbmd1YWdlOiBhcmd2Lmxhbmd1YWdlLFxuICAgICAgY2xhc3NOYW1lUHJlZml4LFxuICAgICAgc2F2ZTogYXJndi5zYXZlLFxuICAgIH0pO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IENvbW1hbmQoKTtcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL2ltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHlDQUEwRDtBQUMxRCxvREFBdUQ7QUFDdkQsMENBQXVEO0FBQ3ZELHFDQUEwQztBQUUxQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHVCQUFjLEdBQUUsQ0FBQztBQUVoQyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7QUFDakMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUV6RCxNQUFNLE9BQU87SUFBYjtRQUNrQixZQUFPLEdBQUcsZUFBZSxDQUFDO1FBQzFCLGFBQVEsR0FBRywyREFBMkQsQ0FBQztRQUN2RSxZQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhDLFlBQU8sR0FBRyxDQUFDLElBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUk7YUFDakQsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnTEFBZ0wsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDclAsT0FBTyxDQUFDLGtCQUFrQixFQUFFLGlFQUFpRSx5QkFBbUIsRUFBRSxDQUFDO2FBQ25ILE9BQU8sQ0FBQyxvQ0FBb0MsRUFBRSwwREFBMEQsQ0FBQzthQUN6RyxPQUFPLENBQUMseUJBQXlCLEVBQUUsa0RBQWtELENBQUM7YUFDdEYsT0FBTyxDQUFDLDBDQUEwQyxFQUFFLDJFQUEyRSxDQUFDO2FBQ2hJLE9BQU8sQ0FBQyw4Q0FBOEMsRUFBRSxxR0FBcUcsQ0FBQzthQUM5SixPQUFPLENBQUMsa0RBQWtELEVBQUUseURBQXlELENBQUM7YUFDdEgsT0FBTyxDQUFDLG9FQUFvRSxFQUFFLDZDQUE2QyxDQUFDO2FBRTVILE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUseUZBQXlGLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ2hMLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQzthQUNuRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsdUhBQXVILEVBQUUsQ0FBQzthQUNuSyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsK0tBQStLLEVBQUUsQ0FBQzthQUNqTyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBYzFKLENBQUM7SUFaUSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQVM7UUFDNUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMzRSxNQUFNLE9BQU8sR0FBYSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQWlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLG1CQUFZLENBQUMsQ0FBQztRQUVuRixNQUFNLElBQUEseUJBQWMsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDN0IsZUFBZTtZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgeyByZWFkQ29uZmlnU3luYywgSW1wb3J0U3BlYyB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBpbXBvcnREaXNwYXRjaCB9IGZyb20gJy4uLy4uL2ltcG9ydC9kaXNwYXRjaCc7XG5pbXBvcnQgeyBERUZBVUxUX0FQSV9WRVJTSU9OIH0gZnJvbSAnLi4vLi4vaW1wb3J0L2s4cyc7XG5pbXBvcnQgeyBwYXJzZUltcG9ydHMgfSBmcm9tICcuLi8uLi91dGlsJztcblxuY29uc3QgY29uZmlnID0gcmVhZENvbmZpZ1N5bmMoKTtcblxuY29uc3QgREVGQVVMVF9PVVRESVIgPSAnaW1wb3J0cyc7XG5jb25zdCBMQU5HVUFHRVMgPSBbJ3R5cGVzY3JpcHQnLCAncHl0aG9uJywgJ2phdmEnLCAnZ28nXTtcblxuY2xhc3MgQ29tbWFuZCBpbXBsZW1lbnRzIHlhcmdzLkNvbW1hbmRNb2R1bGUge1xuICBwdWJsaWMgcmVhZG9ubHkgY29tbWFuZCA9ICdpbXBvcnQgW1NQRUNdJztcbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaWJlID0gJ0ltcG9ydHMgQVBJIG9iamVjdHMgdG8geW91ciBhcHAgYnkgZ2VuZXJhdGluZyBjb25zdHJ1Y3RzLic7XG4gIHB1YmxpYyByZWFkb25seSBhbGlhc2VzID0gWydnZW4nLCAnaW1wb3J0JywgJ2dlbmVyYXRlJ107XG5cbiAgcHVibGljIHJlYWRvbmx5IGJ1aWxkZXIgPSAoYXJnczogeWFyZ3MuQXJndikgPT4gYXJnc1xuICAgIC5wb3NpdGlvbmFsKCdTUEVDJywgeyBkZWZhdWx0OiBjb25maWc/LmltcG9ydHMsIGRlc2M6ICdpbXBvcnQgc3BlYyB3aXRoIHRoZSBzeW50YXggW05BTUU6PV1TUEVDIHdoZXJlIE5BTUUgaXMgYW4gb3B0aW9uYWwgbW9kdWxlIG5hbWUgYW5kIHN1cHBvcnRlZCBTUEVDIGFyZTogazhzLCBjcmQueWFtbCwgaHR0cHM6Ly9kb21haW4vY3JkLnlhbWwsIGdpdGh1YjphY2NvdW50L3JlcG9bQFZFUlNJT05dKS4nLCBhcnJheTogdHJ1ZSB9KVxuICAgIC5leGFtcGxlKCdjZGs4cyBpbXBvcnQgazhzJywgYEltcG9ydHMgS3ViZXJuZXRlcyBBUEkgb2JqZWN0cyB0byBpbXBvcnRzL2s4cy50cy4gRGVmYXVsdHMgdG8gJHtERUZBVUxUX0FQSV9WRVJTSU9OfWApXG4gICAgLmV4YW1wbGUoJ2NkazhzIGltcG9ydCBrOHMgLS1uby1jbGFzcy1wcmVmaXgnLCAnSW1wb3J0cyBLdWJlcm5ldGVzIEFQSSBvYmplY3RzIHdpdGhvdXQgdGhlIFwiS3ViZVwiIHByZWZpeCcpXG4gICAgLmV4YW1wbGUoJ2NkazhzIGltcG9ydCBrOHNAMS4xMy4wJywgJ0ltcG9ydHMgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRoZSBLdWJlcm5ldGVzIEFQSScpXG4gICAgLmV4YW1wbGUoJ2NkazhzIGltcG9ydCBqZW5raW5zLmlvX2plbmtpbnNfY3JkLnlhbWwnLCAnSW1wb3J0cyBjb25zdHJ1Y3RzIGZvciB0aGUgSmVua2lucyBjdXN0b20gcmVzb3VyY2UgZGVmaW5pdGlvbiBmcm9tIGEgZmlsZScpXG4gICAgLmV4YW1wbGUoJ2NkazhzIGltcG9ydCBtYXR0ZXJtb3N0Oj1tYXR0ZXJtb3N0X2NyZC55YW1sJywgJ0ltcG9ydHMgY29uc3RydWN0cyBmb3IgdGhlIG1hdHRlcm1vc3QgY2x1c3RlciBjdXN0b20gcmVzb3VyY2UgZGVmaW5pdGlvbiB1c2luZyBhIGN1c3RvbSBtb2R1bGUgbmFtZScpXG4gICAgLmV4YW1wbGUoJ2NkazhzIGltcG9ydCBnaXRodWI6Y3Jvc3NwbGFuZS9jcm9zc3BsYW5lQDAuMTQuMCcsICdJbXBvcnRzIGNvbnN0cnVjdHMgZm9yIGEgR2l0SHViIHJlcG8gdXNpbmcgZG9jLmNyZHMuZGV2JylcbiAgICAuZXhhbXBsZSgnY2RrOHMgaW1wb3J0IGhlbG06aHR0cHM6Ly9jaGFydHMuYml0bmFtaS5jb20vYml0bmFtaS9teXNxbEA5LjEwLjEwJywgJ0ltcG9ydHMgdGhlIHNwZWNpZmllZCB2ZXJzaW9uIG9mIGhlbG0gY2hhcnQnKVxuXG4gICAgLm9wdGlvbignc2F2ZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCByZXF1aXJlZDogZmFsc2UsIGRlZmF1bHQ6IHRydWUsIGRlc2M6IFwiRG9udCBzYXZlIHRoZSBpbXBvcnQgVVJMIGluIHRoZSAnaW1wb3J0cycgc2VjdGlvbiBvZiB0aGUgY2RrOHMueWFtbCBjb25maWd1cmF0aW9uIGZpbGUuXCIsIGFsaWFzOiAncycgfSlcbiAgICAub3B0aW9uKCdvdXRwdXQnLCB7IGRlZmF1bHQ6IERFRkFVTFRfT1VURElSLCB0eXBlOiAnc3RyaW5nJywgZGVzYzogJ091dHB1dCBkaXJlY3RvcnknLCBhbGlhczogJ28nIH0pXG4gICAgLm9wdGlvbignZXhjbHVkZScsIHsgdHlwZTogJ2FycmF5JywgZGVzYzogJ0RvIG5vdCBpbXBvcnQgdHlwZXMgdGhhdCBtYXRjaCB0aGVzZSByZWd1bGFyIGV4cHJlc3Npb25zLiBUaGV5IHdpbGwgYmUgcmVwcmVzZW50ZWQgYXMgdGhlIFwiYW55XCIgdHlwZSAob25seSBmb3IgXCJrOHNcIiknIH0pXG4gICAgLm9wdGlvbignY2xhc3MtcHJlZml4JywgeyB0eXBlOiAnc3RyaW5nJywgZGVzYzogJ0EgcHJlZml4IHRvIGFkZCB0byBhbGwgZ2VuZXJhdGVkIGNsYXNzIG5hbWVzLiBCeSBkZWZhdWx0LCB0aGlzIGlzIFwiS3ViZVwiIGZvciBcIms4c1wiIGltcG9ydHMgYW5kIGRpc2FibGVkIGZvciBDUkQgaW1wb3J0cy4gVXNlIC0tbm8tY2xhc3MtcHJlZml4IHRvIGRpc2FibGUuIE11c3QgYmUgUGFzY2FsQ2FzZScgfSlcbiAgICAub3B0aW9uKCdsYW5ndWFnZScsIHsgZGVmYXVsdDogY29uZmlnPy5sYW5ndWFnZSwgZGVtYW5kOiB0cnVlLCB0eXBlOiAnc3RyaW5nJywgZGVzYzogJ091dHB1dCBwcm9ncmFtbWluZyBsYW5ndWFnZScsIGFsaWFzOiAnbCcsIGNob2ljZXM6IExBTkdVQUdFUyB9KTtcblxuICBwdWJsaWMgYXN5bmMgaGFuZGxlcihhcmd2OiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWVQcmVmaXggPSBhcmd2LmNsYXNzUHJlZml4ID09PSBmYWxzZSA/ICcnIDogYXJndi5jbGFzc1ByZWZpeDtcbiAgICBjb25zdCBpbXBvcnRzOiBzdHJpbmdbXSA9IEFycmF5LmlzQXJyYXkoYXJndi5zcGVjKSA/IGFyZ3Yuc3BlYyA6IFthcmd2LnNwZWNdO1xuICAgIGNvbnN0IHNwZWNzOiBJbXBvcnRTcGVjW10gPSBpbXBvcnRzLmZpbHRlcihzcGVjID0+IHNwZWMgIT0gbnVsbCkubWFwKHBhcnNlSW1wb3J0cyk7XG5cbiAgICBhd2FpdCBpbXBvcnREaXNwYXRjaChzcGVjcywgYXJndiwge1xuICAgICAgb3V0ZGlyOiBhcmd2Lm91dHB1dCxcbiAgICAgIHRhcmdldExhbmd1YWdlOiBhcmd2Lmxhbmd1YWdlLFxuICAgICAgY2xhc3NOYW1lUHJlZml4LFxuICAgICAgc2F2ZTogYXJndi5zYXZlLFxuICAgIH0pO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IENvbW1hbmQoKTtcbiJdfQ==
@@ -25,3 +25,38 @@ export declare function getTypeName(custom: boolean, kind: string, version: stri
25
25
  export declare function getConstructTypeName(def: ApiObjectDefinition): string;
26
26
  export declare function getPropsTypeName(def: ApiObjectDefinition): string;
27
27
  export declare function generateConstruct(typegen: TypeGenerator, def: ApiObjectDefinition): void;
28
+ /**
29
+ * Emit imports for generated helm construct
30
+ * @param code CodeMaker istance
31
+ */
32
+ export declare function emitHelmHeader(code: CodeMaker): void;
33
+ /**
34
+ * Helm Object Definition
35
+ */
36
+ export interface HelmObjectDefinition {
37
+ /**
38
+ * `values.schema.json` for the helm chart
39
+ */
40
+ readonly schema: JSONSchema4 | undefined;
41
+ /**
42
+ * Chart name
43
+ */
44
+ readonly chartName: string;
45
+ /**
46
+ * Chart url
47
+ */
48
+ readonly chartUrl: string;
49
+ /**
50
+ * Chart version
51
+ */
52
+ readonly chartVersion: string;
53
+ /**
54
+ * Chart dependencies
55
+ */
56
+ readonly chartDependencies: string[];
57
+ /**
58
+ * Fully qualified name for the construct
59
+ */
60
+ readonly fqn?: string;
61
+ }
62
+ export declare function generateHelmConstruct(typegen: TypeGenerator, def: HelmObjectDefinition): void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateConstruct = exports.getPropsTypeName = exports.getConstructTypeName = exports.getTypeName = exports.emitHeader = void 0;
3
+ exports.generateHelmConstruct = exports.emitHelmHeader = exports.generateConstruct = exports.getPropsTypeName = exports.getConstructTypeName = exports.getTypeName = exports.emitHeader = void 0;
4
4
  const codemaker_1 = require("codemaker");
5
5
  const json2jsii_1 = require("json2jsii");
6
6
  const MANIFEST_STATIC_METHOD = 'manifest';
@@ -53,7 +53,7 @@ function generateConstruct(typegen, def) {
53
53
  // `propsTypeName` could also be "any" if we can't parse the schema for some reason
54
54
  const propsTypeName = emitPropsStruct();
55
55
  const groupPrefix = def.group ? `${def.group}/` : '';
56
- const hasRequired = (schema === null || schema === void 0 ? void 0 : schema.required) && Array.isArray(schema.required) && schema.required.length > 0;
56
+ const hasRequired = hasRequiredProps(schema);
57
57
  const defaultProps = hasRequired ? '' : ' = {}';
58
58
  emitConstruct();
59
59
  function emitPropsStruct() {
@@ -158,4 +158,140 @@ function generateConstruct(typegen, def) {
158
158
  });
159
159
  }
160
160
  exports.generateConstruct = generateConstruct;
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvY29kZWdlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBb0Q7QUFJcEQseUNBQTBDO0FBRTFDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQStCekI7Ozs7O0dBS0c7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBZSxFQUFFLE1BQWU7SUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ25DLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0tBQ3hGO1NBQU07UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7S0FDckU7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2QsQ0FBQztBQVRELGdDQVNDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLE1BQWUsRUFBRSxJQUFZLEVBQUUsT0FBZTtJQUN4RSxzRUFBc0U7SUFDdEUsdUZBQXVGO0lBQ3ZGLDJFQUEyRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSx3QkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQU5ELGtDQU1DO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBd0I7O0lBQzNELE1BQU0sTUFBTSxHQUFHLE1BQUEsR0FBRyxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQUEs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LElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxhQUFhLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsYUFBYSxhQUFhLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBNUlELDhDQTRJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciwgdG9QYXNjYWxDYXNlIH0gZnJvbSAnY29kZW1ha2VyJztcbi8vIHdlIGp1c3QgbmVlZCB0aGUgdHlwZXMgZnJvbSBqc29uLXNjaGVtYVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgSlNPTlNjaGVtYTQgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBUeXBlR2VuZXJhdG9yIH0gZnJvbSAnanNvbjJqc2lpJztcblxuY29uc3QgTUFOSUZFU1RfU1RBVElDX01FVEhPRCA9ICdtYW5pZmVzdCc7XG5jb25zdCBHVktfU1RBVElDID0gJ0dWSyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpT2JqZWN0RGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICByZWFkb25seSBncm91cDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNDtcblxuICAvKipcbiAgICogSXMgdGhpcyBpcyBhIGN1c3RvbSByZXNvdXJjZSAoaW1wb3J0ZWQgZnJvbSBhIENSRCkgb3IgYSBjb3JlIEFQSSBvYmplY3Q/XG4gICAqL1xuICByZWFkb25seSBjdXN0b206IGJvb2xlYW47XG5cbiAgLypcbiAgICogSW5kaWNhdGVzIGlmIGEgcHJlZml4IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0IGNsYXNzIG5hbWUuIEZvclxuICAgKiBleGFtcGxlLCBmb3IgbmF0aXZlIGs4cyBhcGkgb2JqZWN0cywgd2UgYWRkIGBLdWJlYCBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLypcbiAgICogSW5kaWNhdGVzIGlmIGEgc3VmZml4IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0IGNsYXNzIG5hbWUuIEZvclxuICAgKiBleGFtcGxlLCBmb3IgbXVsdGktdmVyc2lvbmVkIGNyZHMsIHdlIGFkZCB0aGUgdmVyc2lvbiBhcyB0aGUgc3VmZml4LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSBzdWZmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW1pdHMgdGhlIGhlYWRlciBmb3IgYSBnZW5lcmF0ZWQgaW1wb3J0cyBmaWxlLlxuICpcbiAqIEBwYXJhbSBjdXN0b20gLSB3aGV0aGVyIHRoZSBoZWFkZXIgaXMgYmVpbmcgZW1pdHRlZCBmb3IgYSBjdXN0b20gcmVzb3VyY2VcbiAqIChpbXBvcnRlZCBmcm9tIGEgQ1JEKSBvciBhIGNvcmUgQVBJIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdEhlYWRlcihjb2RlOiBDb2RlTWFrZXIsIGN1c3RvbTogYm9vbGVhbikge1xuICBjb2RlLmxpbmUoJy8vIGdlbmVyYXRlZCBieSBjZGs4cycpO1xuICBpZiAoY3VzdG9tKSB7XG4gICAgY29kZS5saW5lKCdpbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSBcXCdjZGs4c1xcJzsnKTtcbiAgfSBlbHNlIHtcbiAgICBjb2RlLmxpbmUoJ2ltcG9ydCB7IEFwaU9iamVjdCwgR3JvdXBWZXJzaW9uS2luZCB9IGZyb20gXFwnY2RrOHNcXCc7Jyk7XG4gIH1cbiAgY29kZS5saW5lKCdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7Jyk7XG4gIGNvZGUubGluZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZU5hbWUoY3VzdG9tOiBib29sZWFuLCBraW5kOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICAvLyBhZGQgYW4gQVBJIHZlcnNpb24gcG9zdGZpeCBvbmx5IGlmIHRoaXMgaXMgY29yZSBBUEkgKGBpbXBvcnQgazhzYCkuXG4gIC8vIFRPRE8gPSB3aGF0IGFib3V0IHRoZSByZXN0IG9mIHRoZSBuYW1lc3BhY2U/IHRoZSBzYW1lIHJlc291cmNlIGNhbiBleGlzdCBpbiBtdWx0aXBsZVxuICAvLyBhcGkgZ3JvdXBzIChJbmdyZXNzIGZvciBleGFtcGxlIGV4aXN0cyBpbiAnZXh0ZW5zaW9ucycgYW5kICduZXR3b3JraW5nJylcbiAgY29uc3QgcG9zdGZpeCA9IChjdXN0b20gfHwgdmVyc2lvbiA9PT0gJ3YxJykgPyAnJyA6IHRvUGFzY2FsQ2FzZSh2ZXJzaW9uKTtcbiAgcmV0dXJuIGAke2tpbmR9JHtwb3N0Zml4fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWY6IEFwaU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3QgcHJlZml4ID0gZGVmLnByZWZpeCA/PyAnJztcbiAgY29uc3Qgc3VmZml4ID0gZGVmLnN1ZmZpeCA/PyAnJztcbiAgcmV0dXJuIFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUoYCR7cHJlZml4fSR7Z2V0VHlwZU5hbWUoZGVmLmN1c3RvbSwgZGVmLmtpbmQsIGRlZi52ZXJzaW9uKX0ke3N1ZmZpeH1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BzVHlwZU5hbWUoZGVmOiBBcGlPYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IGNvbnN0cnVjdE5hbWUgPSBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWYpO1xuICByZXR1cm4gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHtjb25zdHJ1Y3ROYW1lfVByb3BzYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUNvbnN0cnVjdCh0eXBlZ2VuOiBUeXBlR2VuZXJhdG9yLCBkZWY6IEFwaU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3QgY29uc3RydWN0TmFtZSA9IGdldENvbnN0cnVjdFR5cGVOYW1lKGRlZik7XG5cbiAgaWYgKGRlZi5jdXN0b20pIHtcbiAgICB0eXBlZ2VuLmVtaXRDdXN0b21UeXBlKCdBcGlPYmplY3RNZXRhZGF0YScsICgpID0+IHt9KTtcbiAgfVxuXG4gIHR5cGVnZW4uZW1pdEN1c3RvbVR5cGUoY29uc3RydWN0TmFtZSwgY29kZSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gZGVmLnNjaGVtYTtcblxuICAgIC8vIGBwcm9wc1R5cGVOYW1lYCBjb3VsZCBhbHNvIGJlIFwiYW55XCIgaWYgd2UgY2FuJ3QgcGFyc2UgdGhlIHNjaGVtYSBmb3Igc29tZSByZWFzb25cbiAgICBjb25zdCBwcm9wc1R5cGVOYW1lID0gZW1pdFByb3BzU3RydWN0KCk7XG4gICAgY29uc3QgZ3JvdXBQcmVmaXggPSBkZWYuZ3JvdXAgPyBgJHtkZWYuZ3JvdXB9L2AgOiAnJztcbiAgICBjb25zdCBoYXNSZXF1aXJlZCA9IHNjaGVtYT8ucmVxdWlyZWQgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEucmVxdWlyZWQpICYmIHNjaGVtYS5yZXF1aXJlZC5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGRlZmF1bHRQcm9wcyA9IGhhc1JlcXVpcmVkID8gJycgOiAnID0ge30nO1xuICAgIGVtaXRDb25zdHJ1Y3QoKTtcblxuICAgIGZ1bmN0aW9uIGVtaXRQcm9wc1N0cnVjdCgpIHtcbiAgICAgIGNvbnN0IHByb3BzU2NoZW1hID0gY3JlYXRlUHJvcHNTdHJ1Y3RTY2hlbWEoKTtcbiAgICAgIGNvbnN0IHByb3BzU3RydWN0TmFtZSA9IGdldFByb3BzVHlwZU5hbWUoZGVmKTtcbiAgICAgIHJldHVybiB0eXBlZ2VuLmVtaXRUeXBlKHByb3BzU3RydWN0TmFtZSwgcHJvcHNTY2hlbWEsIGRlZi5mcW4pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVByb3BzU3RydWN0U2NoZW1hKCkge1xuICAgICAgY29uc3QgY29weTogSlNPTlNjaGVtYTQgPSB7IC4uLmRlZi5zY2hlbWEgfHwge30gfTtcbiAgICAgIGNvbnN0IHByb3BzID0gY29weS5wcm9wZXJ0aWVzID0gY29weS5wcm9wZXJ0aWVzIHx8IHt9O1xuICAgICAgZGVsZXRlIHByb3BzLmFwaVZlcnNpb247XG4gICAgICBkZWxldGUgcHJvcHMua2luZDtcbiAgICAgIGRlbGV0ZSBwcm9wcy5zdGF0dXM7XG4gICAgICBkZWxldGUgY29weVsneC1rdWJlcm5ldGVzLWdyb3VwLXZlcnNpb24ta2luZCddO1xuXG4gICAgICBjb3B5LnJlcXVpcmVkID0gY29weS5yZXF1aXJlZCB8fCBbXTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29weS5yZXF1aXJlZCkpIHtcbiAgICAgICAgY29weS5yZXF1aXJlZCA9IGNvcHkucmVxdWlyZWQuZmlsdGVyKHggPT4geCAhPT0gJ2FwaVZlcnNpb24nICYmIHggIT09ICdraW5kJyAmJiB4ICE9PSAnc3RhdHVzJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkZWYuY3VzdG9tKSB7XG4gICAgICAgIC8vIGFkZCBcIm1ldGFkYXRhXCIgZmllbGQgZm9yIGFsbCBDUkRzLCBvdmVycmlkaW5nIGFueSBleGlzdGluZyB0eXBpbmdzXG4gICAgICAgIGNvcHkucHJvcGVydGllcy5tZXRhZGF0YSA9IHsgJHJlZjogJyMvZGVmaW5pdGlvbnMvQXBpT2JqZWN0TWV0YWRhdGEnIH07XG4gICAgICB9XG5cbiAgICAgIC8vIHJlb3JkZXIgdG9wLWxldmVsIGtleXMgc28gdGhhdCB3ZSBoYXZlIFwibWV0YWRhdGFcIiBmaXJzdCBhbmQgdGhlbiBhbGwgdGhlIHJlc3RcbiAgICAgIC8vIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3IgaW4gdGhlIEFwaU9iamVjdCdzIHRvSnNvbiBmdW5jdGlvbiAoaHR0cHM6Ly9naXRodWIuY29tL2NkazhzLXRlYW0vY2RrOHMtY29yZS9ibG9iLzU4ZmI4YzA4ODJkZGQ5NWE5YjlkZWRiNDEwN2UxMmY2MDE0NDNjZjQvc3JjL2FwaS1vYmplY3QudHMjTDE4NSlcbiAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgICBmb3IgKGNvbnN0IGsgb2YgWydtZXRhZGF0YScsIC4uLk9iamVjdC5rZXlzKGNvcHkucHJvcGVydGllcyldKSB7XG4gICAgICAgIGlmIChrIGluIGNvcHkucHJvcGVydGllcykge1xuICAgICAgICAgIHJlc3VsdFtrXSA9IGNvcHkucHJvcGVydGllc1trXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb3B5LnByb3BlcnRpZXMgPSByZXN1bHQ7XG4gICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0Q29uc3RydWN0KCkge1xuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZShgICogJHtkZWYuc2NoZW1hPy5kZXNjcmlwdGlvbiA/PyAnJ31gKTtcbiAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgIGNvZGUubGluZShgICogQHNjaGVtYSAke2RlZi5mcW59YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBjbGFzcyAke2NvbnN0cnVjdE5hbWV9IGV4dGVuZHMgQXBpT2JqZWN0YCk7XG5cbiAgICAgIGVtaXRHVksoKTtcblxuICAgICAgY29kZS5saW5lKCcnKTtcblxuICAgICAgZW1pdE1hbmlmZXN0RmFjdG9yeSgpO1xuXG4gICAgICBjb2RlLmxpbmUoJycpO1xuXG4gICAgICBlbWl0SW5pdGlhbGl6ZXIoKTtcblxuICAgICAgY29kZS5saW5lKCcnKTtcblxuICAgICAgZW1pdFRvSnNvbigpO1xuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0R1ZLKCkge1xuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZShgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCIke2RlZi5mcW59XCJgKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLm9wZW5CbG9jayhgcHVibGljIHN0YXRpYyByZWFkb25seSAke0dWS19TVEFUSUN9OiBHcm91cFZlcnNpb25LaW5kID1gKTtcbiAgICAgIGNvZGUubGluZShgYXBpVmVyc2lvbjogJyR7Z3JvdXBQcmVmaXh9JHtkZWYudmVyc2lvbn0nLGApO1xuICAgICAgY29kZS5saW5lKGBraW5kOiAnJHtkZWYua2luZH0nLGApO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdEluaXRpYWxpemVyKCkge1xuXG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBEZWZpbmVzIGEgXCIke2RlZi5mcW59XCIgQVBJIG9iamVjdGApO1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIG9iamVjdCcpO1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gaWQgYSBzY29wZS1sb2NhbCBuYW1lIGZvciB0aGUgb2JqZWN0Jyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wcycpO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcblxuICAgICAgY29kZS5vcGVuQmxvY2soYHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHtwcm9wc1R5cGVOYW1lfSR7ZGVmYXVsdFByb3BzfSlgKTtcblxuICAgICAgY29kZS5vcGVuKCdzdXBlcihzY29wZSwgaWQsIHsnKTtcbiAgICAgIGNvZGUubGluZShgLi4uJHtjb25zdHJ1Y3ROYW1lfS4ke0dWS19TVEFUSUN9LGApO1xuICAgICAgY29kZS5saW5lKCcuLi5wcm9wcywnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30pOycpO1xuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0TWFuaWZlc3RGYWN0b3J5KCkge1xuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZShgICogUmVuZGVycyBhIEt1YmVybmV0ZXMgbWFuaWZlc3QgZm9yIFwiJHtkZWYuZnFufVwiLmApO1xuICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgY29kZS5saW5lKCcgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGlubGluZSByZXNvdXJjZSBtYW5pZmVzdHMgaW5zaWRlIG90aGVyIG9iamVjdHMgKGUuZy4gYXMgdGVtcGxhdGVzKS4nKTtcbiAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhgcHVibGljIHN0YXRpYyAke01BTklGRVNUX1NUQVRJQ19NRVRIT0R9KHByb3BzOiAke3Byb3BzVHlwZU5hbWV9JHtkZWZhdWx0UHJvcHN9KTogYW55YCk7XG4gICAgICBjb2RlLm9wZW4oJ3JldHVybiB7Jyk7XG4gICAgICBjb2RlLmxpbmUoYC4uLiR7Y29uc3RydWN0TmFtZX0uJHtHVktfU1RBVElDfSxgKTtcbiAgICAgIGNvZGUubGluZShgLi4udG9Kc29uXyR7cHJvcHNUeXBlTmFtZX0ocHJvcHMpLGApO1xuICAgICAgY29kZS5jbG9zZSgnfTsnKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRUb0pzb24oKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKCcgKiBSZW5kZXJzIHRoZSBvYmplY3QgdG8gS3ViZXJuZXRlcyBKU09OLicpO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKCdwdWJsaWMgdG9Kc29uKCk6IGFueScpO1xuICAgICAgY29kZS5saW5lKCdjb25zdCByZXNvbHZlZCA9IHN1cGVyLnRvSnNvbigpOycpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgICBjb2RlLm9wZW4oJ3JldHVybiB7Jyk7XG4gICAgICBjb2RlLmxpbmUoYC4uLiR7Y29uc3RydWN0TmFtZX0uJHtHVktfU1RBVElDfSxgKTtcbiAgICAgIGNvZGUubGluZShgLi4udG9Kc29uXyR7cHJvcHNUeXBlTmFtZX0ocmVzb2x2ZWQpLGApO1xuICAgICAgY29kZS5jbG9zZSgnfTsnKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
161
+ /**
162
+ * Emit imports for generated helm construct
163
+ * @param code CodeMaker istance
164
+ */
165
+ function emitHelmHeader(code) {
166
+ code.line('// generated by cdk8s');
167
+ code.line('import { Helm, HelmProps } from \'cdk8s\';');
168
+ code.line('import { Construct } from \'constructs\';');
169
+ code.line();
170
+ }
171
+ exports.emitHelmHeader = emitHelmHeader;
172
+ function generateHelmConstruct(typegen, def) {
173
+ const noSpecialChars = def.chartName.replace(/([^\w ]|_)/g, '');
174
+ const chartName = json2jsii_1.TypeGenerator.normalizeTypeName(noSpecialChars);
175
+ const schema = def.schema;
176
+ const repoUrl = def.chartUrl;
177
+ const chartVersion = def.chartVersion;
178
+ // Create custom type
179
+ typegen.emitCustomType(chartName, code => {
180
+ const valuesInterface = `${chartName}Values`;
181
+ if (schema !== undefined) {
182
+ // Creating values interface
183
+ emitValuesInterface();
184
+ function emitValuesInterface() {
185
+ const copyOfSchema = schema ? addAdditionalValuesToProps(schema) : undefined;
186
+ if (copyOfSchema && copyOfSchema.properties) {
187
+ // Sub charts or dependencies
188
+ for (const dependency of def.chartDependencies) {
189
+ copyOfSchema.properties[dependency] = { type: 'object', additionalProperties: { type: 'object' } };
190
+ }
191
+ copyOfSchema.properties.global = { type: 'object', additionalProperties: { type: 'object' } };
192
+ copyOfSchema.properties.additionalValues = {
193
+ type: 'object',
194
+ description: 'Values that are not available in values.schema.json will not be code generated. You can add such values to this property.',
195
+ additionalProperties: { type: 'object' },
196
+ };
197
+ }
198
+ typegen.emitType(valuesInterface, copyOfSchema, def.fqn);
199
+ }
200
+ function addAdditionalValuesToProps(schma) {
201
+ const tempSchema = schma;
202
+ if (!tempSchema.properties) {
203
+ return tempSchema;
204
+ }
205
+ Object.values(tempSchema.properties).forEach((prop) => {
206
+ if (prop.type !== 'object') {
207
+ return;
208
+ }
209
+ if (prop.properties) {
210
+ prop.properties.additionalValues = {
211
+ type: 'object',
212
+ description: 'Values that are not available in values.schema.json will not be code generated. You can add such values to this property.',
213
+ additionalProperties: { type: 'object' },
214
+ };
215
+ addAdditionalValuesToProps(prop);
216
+ }
217
+ });
218
+ return tempSchema;
219
+ }
220
+ }
221
+ // Creating construct properties
222
+ emitPropsInterface();
223
+ code.line();
224
+ // Creating construct for helm chart
225
+ emitConstruct();
226
+ function emitPropsInterface() {
227
+ code.openBlock(`export interface ${chartName}Props`);
228
+ code.line('readonly namespace?: string;');
229
+ code.line('readonly releaseName?: string;');
230
+ code.line('readonly helmExecutable?: string;');
231
+ code.line('readonly helmFlags?: string[];');
232
+ if (schema === undefined) {
233
+ code.line('readonly values?: { [key: string]: any };');
234
+ }
235
+ else {
236
+ const doValuesHaveReqProps = hasRequiredProps(schema) ? '' : '?';
237
+ code.line(`readonly values${doValuesHaveReqProps}: ${valuesInterface};`);
238
+ }
239
+ code.closeBlock();
240
+ }
241
+ function emitConstruct() {
242
+ code.openBlock(`export class ${chartName} extends Construct`);
243
+ emitInitializer();
244
+ code.line();
245
+ emitAdditionalValuesFlattenFunc();
246
+ code.closeBlock();
247
+ }
248
+ function emitInitializer() {
249
+ const propsDefinition = schema && hasRequiredProps(schema) ? `${chartName}Props` : `${chartName}Props = {}`;
250
+ code.openBlock(`public constructor(scope: Construct, id: string, props: ${propsDefinition})`);
251
+ code.line('super(scope, id)');
252
+ code.line('let updatedProps = {};');
253
+ code.line();
254
+ code.openBlock('if (props.values)');
255
+ code.line('const { additionalValues, ...valuesWithoutAdditionalValues } = props.values;');
256
+ code.open('updatedProps = {');
257
+ code.line('...props,');
258
+ code.open('values: {');
259
+ code.line('...this.flattenAdditionalValues(valuesWithoutAdditionalValues),');
260
+ code.line('...additionalValues,');
261
+ code.close('}');
262
+ code.close('};');
263
+ code.closeBlock();
264
+ code.line();
265
+ code.open('const finalProps: HelmProps = {');
266
+ code.line(`chart: \'${def.chartName}\',`);
267
+ code.line(`repo: \'${repoUrl}\',`);
268
+ code.line(`version: \'${chartVersion}\',`);
269
+ code.line('...(Object.keys(updatedProps).length !== 0 ? updatedProps : props),');
270
+ code.close('};');
271
+ code.line();
272
+ code.line('new Helm(scope, \'Helm\', finalProps)');
273
+ code.closeBlock();
274
+ }
275
+ function emitAdditionalValuesFlattenFunc() {
276
+ code.openBlock('private flattenAdditionalValues(props: { [key: string]: any }): { [key: string]: any }');
277
+ code.open('for (let prop in props) {');
278
+ code.open('if (typeof(props[prop]) === \'object\' && prop !== \'additionalValues\') {');
279
+ code.line('props[prop] = this.flattenAdditionalValues(props[prop]);');
280
+ code.close('}');
281
+ code.close('}');
282
+ code.line();
283
+ code.line('const { additionalValues, ...valuesWithoutAdditionalValues } = props;');
284
+ code.line();
285
+ code.open('return {');
286
+ code.line('...valuesWithoutAdditionalValues,');
287
+ code.line('...additionalValues,');
288
+ code.close('};');
289
+ code.closeBlock();
290
+ }
291
+ });
292
+ }
293
+ exports.generateHelmConstruct = generateHelmConstruct;
294
+ function hasRequiredProps(schema) {
295
+ return (schema === null || schema === void 0 ? void 0 : schema.required) && Array.isArray(schema.required) && schema.required.length > 0;
296
+ }
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvY29kZWdlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBb0Q7QUFJcEQseUNBQTBDO0FBRTFDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQStCekI7Ozs7O0dBS0c7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBZSxFQUFFLE1BQWU7SUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ25DLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0tBQ3hGO1NBQU07UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7S0FDckU7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2QsQ0FBQztBQVRELGdDQVNDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLE1BQWUsRUFBRSxJQUFZLEVBQUUsT0FBZTtJQUN4RSxzRUFBc0U7SUFDdEUsdUZBQXVGO0lBQ3ZGLDJFQUEyRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSx3QkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQU5ELGtDQU1DO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBd0I7O0lBQzNELE1BQU0sTUFBTSxHQUFHLE1BQUEsR0FBRyxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQUEs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SSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBdEpELHNEQXNKQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsTUFBbUI7SUFDM0MsT0FBTyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxRQUFRLEtBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlTWFrZXIsIHRvUGFzY2FsQ2FzZSB9IGZyb20gJ2NvZGVtYWtlcic7XG4vLyB3ZSBqdXN0IG5lZWQgdGhlIHR5cGVzIGZyb20ganNvbi1zY2hlbWFcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5cbmNvbnN0IE1BTklGRVNUX1NUQVRJQ19NRVRIT0QgPSAnbWFuaWZlc3QnO1xuY29uc3QgR1ZLX1NUQVRJQyA9ICdHVksnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9iamVjdERlZmluaXRpb24ge1xuICByZWFkb25seSBmcW46IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjaGVtYTogSlNPTlNjaGVtYTQ7XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgaXMgYSBjdXN0b20gcmVzb3VyY2UgKGltcG9ydGVkIGZyb20gYSBDUkQpIG9yIGEgY29yZSBBUEkgb2JqZWN0P1xuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tOiBib29sZWFuO1xuXG4gIC8qXG4gICAqIEluZGljYXRlcyBpZiBhIHByZWZpeCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNvbnN0cnVjdCBjbGFzcyBuYW1lLiBGb3JcbiAgICogZXhhbXBsZSwgZm9yIG5hdGl2ZSBrOHMgYXBpIG9iamVjdHMsIHdlIGFkZCBgS3ViZWAgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qXG4gICAqIEluZGljYXRlcyBpZiBhIHN1ZmZpeCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNvbnN0cnVjdCBjbGFzcyBuYW1lLiBGb3JcbiAgICogZXhhbXBsZSwgZm9yIG11bHRpLXZlcnNpb25lZCBjcmRzLCB3ZSBhZGQgdGhlIHZlcnNpb24gYXMgdGhlIHN1ZmZpeC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJcIlxuICAgKi9cbiAgcmVhZG9ubHkgc3VmZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVtaXRzIHRoZSBoZWFkZXIgZm9yIGEgZ2VuZXJhdGVkIGltcG9ydHMgZmlsZS5cbiAqXG4gKiBAcGFyYW0gY3VzdG9tIC0gd2hldGhlciB0aGUgaGVhZGVyIGlzIGJlaW5nIGVtaXR0ZWQgZm9yIGEgY3VzdG9tIHJlc291cmNlXG4gKiAoaW1wb3J0ZWQgZnJvbSBhIENSRCkgb3IgYSBjb3JlIEFQSSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRIZWFkZXIoY29kZTogQ29kZU1ha2VyLCBjdXN0b206IGJvb2xlYW4pIHtcbiAgY29kZS5saW5lKCcvLyBnZW5lcmF0ZWQgYnkgY2RrOHMnKTtcbiAgaWYgKGN1c3RvbSkge1xuICAgIGNvZGUubGluZSgnaW1wb3J0IHsgQXBpT2JqZWN0LCBBcGlPYmplY3RNZXRhZGF0YSwgR3JvdXBWZXJzaW9uS2luZCB9IGZyb20gXFwnY2RrOHNcXCc7Jyk7XG4gIH0gZWxzZSB7XG4gICAgY29kZS5saW5lKCdpbXBvcnQgeyBBcGlPYmplY3QsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tIFxcJ2NkazhzXFwnOycpO1xuICB9XG4gIGNvZGUubGluZSgnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycpO1xuICBjb2RlLmxpbmUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVOYW1lKGN1c3RvbTogYm9vbGVhbiwga2luZDogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgLy8gYWRkIGFuIEFQSSB2ZXJzaW9uIHBvc3RmaXggb25seSBpZiB0aGlzIGlzIGNvcmUgQVBJIChgaW1wb3J0IGs4c2ApLlxuICAvLyBUT0RPID0gd2hhdCBhYm91dCB0aGUgcmVzdCBvZiB0aGUgbmFtZXNwYWNlPyB0aGUgc2FtZSByZXNvdXJjZSBjYW4gZXhpc3QgaW4gbXVsdGlwbGVcbiAgLy8gYXBpIGdyb3VwcyAoSW5ncmVzcyBmb3IgZXhhbXBsZSBleGlzdHMgaW4gJ2V4dGVuc2lvbnMnIGFuZCAnbmV0d29ya2luZycpXG4gIGNvbnN0IHBvc3RmaXggPSAoY3VzdG9tIHx8IHZlcnNpb24gPT09ICd2MScpID8gJycgOiB0b1Bhc2NhbENhc2UodmVyc2lvbik7XG4gIHJldHVybiBgJHtraW5kfSR7cG9zdGZpeH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uc3RydWN0VHlwZU5hbWUoZGVmOiBBcGlPYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IHByZWZpeCA9IGRlZi5wcmVmaXggPz8gJyc7XG4gIGNvbnN0IHN1ZmZpeCA9IGRlZi5zdWZmaXggPz8gJyc7XG4gIHJldHVybiBUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKGAke3ByZWZpeH0ke2dldFR5cGVOYW1lKGRlZi5jdXN0b20sIGRlZi5raW5kLCBkZWYudmVyc2lvbil9JHtzdWZmaXh9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wc1R5cGVOYW1lKGRlZjogQXBpT2JqZWN0RGVmaW5pdGlvbikge1xuICBjb25zdCBjb25zdHJ1Y3ROYW1lID0gZ2V0Q29uc3RydWN0VHlwZU5hbWUoZGVmKTtcbiAgcmV0dXJuIFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUoYCR7Y29uc3RydWN0TmFtZX1Qcm9wc2ApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVDb25zdHJ1Y3QodHlwZWdlbjogVHlwZUdlbmVyYXRvciwgZGVmOiBBcGlPYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IGNvbnN0cnVjdE5hbWUgPSBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWYpO1xuXG4gIGlmIChkZWYuY3VzdG9tKSB7XG4gICAgdHlwZWdlbi5lbWl0Q3VzdG9tVHlwZSgnQXBpT2JqZWN0TWV0YWRhdGEnLCAoKSA9PiB7fSk7XG4gIH1cblxuICB0eXBlZ2VuLmVtaXRDdXN0b21UeXBlKGNvbnN0cnVjdE5hbWUsIGNvZGUgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IGRlZi5zY2hlbWE7XG5cbiAgICAvLyBgcHJvcHNUeXBlTmFtZWAgY291bGQgYWxzbyBiZSBcImFueVwiIGlmIHdlIGNhbid0IHBhcnNlIHRoZSBzY2hlbWEgZm9yIHNvbWUgcmVhc29uXG4gICAgY29uc3QgcHJvcHNUeXBlTmFtZSA9IGVtaXRQcm9wc1N0cnVjdCgpO1xuICAgIGNvbnN0IGdyb3VwUHJlZml4ID0gZGVmLmdyb3VwID8gYCR7ZGVmLmdyb3VwfS9gIDogJyc7XG4gICAgY29uc3QgaGFzUmVxdWlyZWQgPSBoYXNSZXF1aXJlZFByb3BzKHNjaGVtYSk7XG4gICAgY29uc3QgZGVmYXVsdFByb3BzID0gaGFzUmVxdWlyZWQgPyAnJyA6ICcgPSB7fSc7XG4gICAgZW1pdENvbnN0cnVjdCgpO1xuXG4gICAgZnVuY3Rpb24gZW1pdFByb3BzU3RydWN0KCkge1xuICAgICAgY29uc3QgcHJvcHNTY2hlbWEgPSBjcmVhdGVQcm9wc1N0cnVjdFNjaGVtYSgpO1xuICAgICAgY29uc3QgcHJvcHNTdHJ1Y3ROYW1lID0gZ2V0UHJvcHNUeXBlTmFtZShkZWYpO1xuICAgICAgcmV0dXJuIHR5cGVnZW4uZW1pdFR5cGUocHJvcHNTdHJ1Y3ROYW1lLCBwcm9wc1NjaGVtYSwgZGVmLmZxbik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlUHJvcHNTdHJ1Y3RTY2hlbWEoKSB7XG4gICAgICBjb25zdCBjb3B5OiBKU09OU2NoZW1hNCA9IHsgLi4uZGVmLnNjaGVtYSB8fCB7fSB9O1xuICAgICAgY29uc3QgcHJvcHMgPSBjb3B5LnByb3BlcnRpZXMgPSBjb3B5LnByb3BlcnRpZXMgfHwge307XG4gICAgICBkZWxldGUgcHJvcHMuYXBpVmVyc2lvbjtcbiAgICAgIGRlbGV0ZSBwcm9wcy5raW5kO1xuICAgICAgZGVsZXRlIHByb3BzLnN0YXR1cztcbiAgICAgIGRlbGV0ZSBjb3B5Wyd4LWt1YmVybmV0ZXMtZ3JvdXAtdmVyc2lvbi1raW5kJ107XG5cbiAgICAgIGNvcHkucmVxdWlyZWQgPSBjb3B5LnJlcXVpcmVkIHx8IFtdO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb3B5LnJlcXVpcmVkKSkge1xuICAgICAgICBjb3B5LnJlcXVpcmVkID0gY29weS5yZXF1aXJlZC5maWx0ZXIoeCA9PiB4ICE9PSAnYXBpVmVyc2lvbicgJiYgeCAhPT0gJ2tpbmQnICYmIHggIT09ICdzdGF0dXMnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlZi5jdXN0b20pIHtcbiAgICAgICAgLy8gYWRkIFwibWV0YWRhdGFcIiBmaWVsZCBmb3IgYWxsIENSRHMsIG92ZXJyaWRpbmcgYW55IGV4aXN0aW5nIHR5cGluZ3NcbiAgICAgICAgY29weS5wcm9wZXJ0aWVzLm1ldGFkYXRhID0geyAkcmVmOiAnIy9kZWZpbml0aW9ucy9BcGlPYmplY3RNZXRhZGF0YScgfTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVvcmRlciB0b3AtbGV2ZWwga2V5cyBzbyB0aGF0IHdlIGhhdmUgXCJtZXRhZGF0YVwiIGZpcnN0IGFuZCB0aGVuIGFsbCB0aGUgcmVzdFxuICAgICAgLy8gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBpbiB0aGUgQXBpT2JqZWN0J3MgdG9Kc29uIGZ1bmN0aW9uIChodHRwczovL2dpdGh1Yi5jb20vY2RrOHMtdGVhbS9jZGs4cy1jb3JlL2Jsb2IvNThmYjhjMDg4MmRkZDk1YTliOWRlZGI0MTA3ZTEyZjYwMTQ0M2NmNC9zcmMvYXBpLW9iamVjdC50cyNMMTg1KVxuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICAgIGZvciAoY29uc3QgayBvZiBbJ21ldGFkYXRhJywgLi4uT2JqZWN0LmtleXMoY29weS5wcm9wZXJ0aWVzKV0pIHtcbiAgICAgICAgaWYgKGsgaW4gY29weS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgcmVzdWx0W2tdID0gY29weS5wcm9wZXJ0aWVzW2tdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvcHkucHJvcGVydGllcyA9IHJlc3VsdDtcbiAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRDb25zdHJ1Y3QoKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiAke2RlZi5zY2hlbWE/LmRlc2NyaXB0aW9uID8/ICcnfWApO1xuICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBAc2NoZW1hICR7ZGVmLmZxbn1gKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGNsYXNzICR7Y29uc3RydWN0TmFtZX0gZXh0ZW5kcyBBcGlPYmplY3RgKTtcblxuICAgICAgZW1pdEdWSygpO1xuXG4gICAgICBjb2RlLmxpbmUoJycpO1xuXG4gICAgICBlbWl0TWFuaWZlc3RGYWN0b3J5KCk7XG5cbiAgICAgIGNvZGUubGluZSgnJyk7XG5cbiAgICAgIGVtaXRJbml0aWFsaXplcigpO1xuXG4gICAgICBjb2RlLmxpbmUoJycpO1xuXG4gICAgICBlbWl0VG9Kc29uKCk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRHVksoKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBSZXR1cm5zIHRoZSBhcGlWZXJzaW9uIGFuZCBraW5kIGZvciBcIiR7ZGVmLmZxbn1cImApO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgc3RhdGljIHJlYWRvbmx5ICR7R1ZLX1NUQVRJQ306IEdyb3VwVmVyc2lvbktpbmQgPWApO1xuICAgICAgY29kZS5saW5lKGBhcGlWZXJzaW9uOiAnJHtncm91cFByZWZpeH0ke2RlZi52ZXJzaW9ufScsYCk7XG4gICAgICBjb2RlLmxpbmUoYGtpbmQ6ICcke2RlZi5raW5kfScsYCk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0SW5pdGlhbGl6ZXIoKSB7XG5cbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIERlZmluZXMgYSBcIiR7ZGVmLmZxbn1cIiBBUEkgb2JqZWN0YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0Jyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3QnKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3Byb3BzVHlwZU5hbWV9JHtkZWZhdWx0UHJvcHN9KWApO1xuXG4gICAgICBjb2RlLm9wZW4oJ3N1cGVyKHNjb3BlLCBpZCwgeycpO1xuICAgICAgY29kZS5saW5lKGAuLi4ke2NvbnN0cnVjdE5hbWV9LiR7R1ZLX1NUQVRJQ30sYCk7XG4gICAgICBjb2RlLmxpbmUoJy4uLnByb3BzLCcpO1xuICAgICAgY29kZS5jbG9zZSgnfSk7Jyk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRNYW5pZmVzdEZhY3RvcnkoKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBSZW5kZXJzIGEgS3ViZXJuZXRlcyBtYW5pZmVzdCBmb3IgXCIke2RlZi5mcW59XCIuYCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLicpO1xuICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHMnKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgc3RhdGljICR7TUFOSUZFU1RfU1RBVElDX01FVEhPRH0ocHJvcHM6ICR7cHJvcHNUeXBlTmFtZX0ke2RlZmF1bHRQcm9wc30pOiBhbnlgKTtcbiAgICAgIGNvZGUub3BlbigncmV0dXJuIHsnKTtcbiAgICAgIGNvZGUubGluZShgLi4uJHtjb25zdHJ1Y3ROYW1lfS4ke0dWS19TVEFUSUN9LGApO1xuICAgICAgY29kZS5saW5lKGAuLi50b0pzb25fJHtwcm9wc1R5cGVOYW1lfShwcm9wcyksYCk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdFRvSnNvbigpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5vcGVuQmxvY2soJ3B1YmxpYyB0b0pzb24oKTogYW55Jyk7XG4gICAgICBjb2RlLmxpbmUoJ2NvbnN0IHJlc29sdmVkID0gc3VwZXIudG9Kc29uKCk7Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbigncmV0dXJuIHsnKTtcbiAgICAgIGNvZGUubGluZShgLi4uJHtjb25zdHJ1Y3ROYW1lfS4ke0dWS19TVEFUSUN9LGApO1xuICAgICAgY29kZS5saW5lKGAuLi50b0pzb25fJHtwcm9wc1R5cGVOYW1lfShyZXNvbHZlZCksYCk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBFbWl0IGltcG9ydHMgZm9yIGdlbmVyYXRlZCBoZWxtIGNvbnN0cnVjdFxuICogQHBhcmFtIGNvZGUgQ29kZU1ha2VyIGlzdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRIZWxtSGVhZGVyKGNvZGU6IENvZGVNYWtlcikge1xuICBjb2RlLmxpbmUoJy8vIGdlbmVyYXRlZCBieSBjZGs4cycpO1xuICBjb2RlLmxpbmUoJ2ltcG9ydCB7IEhlbG0sIEhlbG1Qcm9wcyB9IGZyb20gXFwnY2RrOHNcXCc7Jyk7XG4gIGNvZGUubGluZSgnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycpO1xuICBjb2RlLmxpbmUoKTtcbn1cblxuLyoqXG4gKiBIZWxtIE9iamVjdCBEZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbU9iamVjdERlZmluaXRpb24ge1xuICAvKipcbiAgICogYHZhbHVlcy5zY2hlbWEuanNvbmAgZm9yIHRoZSBoZWxtIGNoYXJ0XG4gICAqL1xuICByZWFkb25seSBzY2hlbWE6IEpTT05TY2hlbWE0IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQ2hhcnQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhcnROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDaGFydCB1cmxcbiAgICovXG4gIHJlYWRvbmx5IGNoYXJ0VXJsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDaGFydCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBjaGFydFZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXJ0IGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcmVhZG9ubHkgY2hhcnREZXBlbmRlbmNpZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogRnVsbHkgcXVhbGlmaWVkIG5hbWUgZm9yIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IGZxbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCh0eXBlZ2VuOiBUeXBlR2VuZXJhdG9yLCBkZWY6IEhlbG1PYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IG5vU3BlY2lhbENoYXJzID0gZGVmLmNoYXJ0TmFtZS5yZXBsYWNlKC8oW15cXHcgXXxfKS9nLCAnJyk7XG4gIGNvbnN0IGNoYXJ0TmFtZSA9IFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUobm9TcGVjaWFsQ2hhcnMpO1xuICBjb25zdCBzY2hlbWEgPSBkZWYuc2NoZW1hO1xuICBjb25zdCByZXBvVXJsID0gZGVmLmNoYXJ0VXJsO1xuICBjb25zdCBjaGFydFZlcnNpb24gPSBkZWYuY2hhcnRWZXJzaW9uO1xuXG4gIC8vIENyZWF0ZSBjdXN0b20gdHlwZVxuICB0eXBlZ2VuLmVtaXRDdXN0b21UeXBlKGNoYXJ0TmFtZSwgY29kZSA9PiB7XG5cbiAgICBjb25zdCB2YWx1ZXNJbnRlcmZhY2UgPSBgJHtjaGFydE5hbWV9VmFsdWVzYDtcbiAgICBpZiAoc2NoZW1hICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIENyZWF0aW5nIHZhbHVlcyBpbnRlcmZhY2VcbiAgICAgIGVtaXRWYWx1ZXNJbnRlcmZhY2UoKTtcblxuICAgICAgZnVuY3Rpb24gZW1pdFZhbHVlc0ludGVyZmFjZSgpIHtcblxuICAgICAgICBjb25zdCBjb3B5T2ZTY2hlbWEgPSBzY2hlbWEgPyBhZGRBZGRpdGlvbmFsVmFsdWVzVG9Qcm9wcyhzY2hlbWEpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChjb3B5T2ZTY2hlbWEgJiYgY29weU9mU2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAvLyBTdWIgY2hhcnRzIG9yIGRlcGVuZGVuY2llc1xuICAgICAgICAgIGZvciAoY29uc3QgZGVwZW5kZW5jeSBvZiBkZWYuY2hhcnREZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIGNvcHlPZlNjaGVtYS5wcm9wZXJ0aWVzW2RlcGVuZGVuY3ldID0geyB0eXBlOiAnb2JqZWN0JywgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvcHlPZlNjaGVtYS5wcm9wZXJ0aWVzLmdsb2JhbCA9IHsgdHlwZTogJ29iamVjdCcsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7IHR5cGU6ICdvYmplY3QnIH0gfTtcbiAgICAgICAgICBjb3B5T2ZTY2hlbWEucHJvcGVydGllcy5hZGRpdGlvbmFsVmFsdWVzID0ge1xuICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ZhbHVlcyB0aGF0IGFyZSBub3QgYXZhaWxhYmxlIGluIHZhbHVlcy5zY2hlbWEuanNvbiB3aWxsIG5vdCBiZSBjb2RlIGdlbmVyYXRlZC4gWW91IGNhbiBhZGQgc3VjaCB2YWx1ZXMgdG8gdGhpcyBwcm9wZXJ0eS4nLFxuICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdHlwZWdlbi5lbWl0VHlwZSh2YWx1ZXNJbnRlcmZhY2UsIGNvcHlPZlNjaGVtYSwgZGVmLmZxbik7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGFkZEFkZGl0aW9uYWxWYWx1ZXNUb1Byb3BzKHNjaG1hOiBKU09OU2NoZW1hNCk6IEpTT05TY2hlbWE0IHtcbiAgICAgICAgY29uc3QgdGVtcFNjaGVtYSA9IHNjaG1hO1xuXG4gICAgICAgIGlmICghdGVtcFNjaGVtYS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRlbXBTY2hlbWE7XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3QudmFsdWVzKHRlbXBTY2hlbWEucHJvcGVydGllcykuZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgICAgICAgIGlmIChwcm9wLnR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHByb3AucHJvcGVydGllcykge1xuICAgICAgICAgICAgcHJvcC5wcm9wZXJ0aWVzLmFkZGl0aW9uYWxWYWx1ZXMgPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ZhbHVlcyB0aGF0IGFyZSBub3QgYXZhaWxhYmxlIGluIHZhbHVlcy5zY2hlbWEuanNvbiB3aWxsIG5vdCBiZSBjb2RlIGdlbmVyYXRlZC4gWW91IGNhbiBhZGQgc3VjaCB2YWx1ZXMgdG8gdGhpcyBwcm9wZXJ0eS4nLFxuICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyB0eXBlOiAnb2JqZWN0JyB9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYWRkQWRkaXRpb25hbFZhbHVlc1RvUHJvcHMocHJvcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGVtcFNjaGVtYTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDcmVhdGluZyBjb25zdHJ1Y3QgcHJvcGVydGllc1xuICAgIGVtaXRQcm9wc0ludGVyZmFjZSgpO1xuXG4gICAgY29kZS5saW5lKCk7XG5cbiAgICAvLyBDcmVhdGluZyBjb25zdHJ1Y3QgZm9yIGhlbG0gY2hhcnRcbiAgICBlbWl0Q29uc3RydWN0KCk7XG5cbiAgICBmdW5jdGlvbiBlbWl0UHJvcHNJbnRlcmZhY2UoKSB7XG4gICAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGludGVyZmFjZSAke2NoYXJ0TmFtZX1Qcm9wc2ApO1xuXG4gICAgICBjb2RlLmxpbmUoJ3JlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZzsnKTtcbiAgICAgIGNvZGUubGluZSgncmVhZG9ubHkgcmVsZWFzZU5hbWU/OiBzdHJpbmc7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3JlYWRvbmx5IGhlbG1FeGVjdXRhYmxlPzogc3RyaW5nOycpO1xuICAgICAgY29kZS5saW5lKCdyZWFkb25seSBoZWxtRmxhZ3M/OiBzdHJpbmdbXTsnKTtcblxuICAgICAgaWYgKHNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvZGUubGluZSgncmVhZG9ubHkgdmFsdWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTsnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRvVmFsdWVzSGF2ZVJlcVByb3BzID0gaGFzUmVxdWlyZWRQcm9wcyhzY2hlbWEpID8gJycgOiAnPyc7XG4gICAgICAgIGNvZGUubGluZShgcmVhZG9ubHkgdmFsdWVzJHtkb1ZhbHVlc0hhdmVSZXFQcm9wc306ICR7dmFsdWVzSW50ZXJmYWNlfTtgKTtcbiAgICAgIH1cblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdENvbnN0cnVjdCgpIHtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgY2xhc3MgJHtjaGFydE5hbWV9IGV4dGVuZHMgQ29uc3RydWN0YCk7XG5cbiAgICAgIGVtaXRJbml0aWFsaXplcigpO1xuXG4gICAgICBjb2RlLmxpbmUoKTtcblxuICAgICAgZW1pdEFkZGl0aW9uYWxWYWx1ZXNGbGF0dGVuRnVuYygpO1xuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0SW5pdGlhbGl6ZXIoKSB7XG4gICAgICBjb25zdCBwcm9wc0RlZmluaXRpb24gPSBzY2hlbWEgJiYgaGFzUmVxdWlyZWRQcm9wcyhzY2hlbWEpID8gYCR7Y2hhcnROYW1lfVByb3BzYCA6IGAke2NoYXJ0TmFtZX1Qcm9wcyA9IHt9YDtcblxuICAgICAgY29kZS5vcGVuQmxvY2soYHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHtwcm9wc0RlZmluaXRpb259KWApO1xuICAgICAgY29kZS5saW5lKCdzdXBlcihzY29wZSwgaWQpJyk7XG5cbiAgICAgIGNvZGUubGluZSgnbGV0IHVwZGF0ZWRQcm9wcyA9IHt9OycpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgICBjb2RlLm9wZW5CbG9jaygnaWYgKHByb3BzLnZhbHVlcyknKTtcbiAgICAgIGNvZGUubGluZSgnY29uc3QgeyBhZGRpdGlvbmFsVmFsdWVzLCAuLi52YWx1ZXNXaXRob3V0QWRkaXRpb25hbFZhbHVlcyB9ID0gcHJvcHMudmFsdWVzOycpO1xuICAgICAgY29kZS5vcGVuKCd1cGRhdGVkUHJvcHMgPSB7Jyk7XG4gICAgICBjb2RlLmxpbmUoJy4uLnByb3BzLCcpO1xuICAgICAgY29kZS5vcGVuKCd2YWx1ZXM6IHsnKTtcbiAgICAgIGNvZGUubGluZSgnLi4udGhpcy5mbGF0dGVuQWRkaXRpb25hbFZhbHVlcyh2YWx1ZXNXaXRob3V0QWRkaXRpb25hbFZhbHVlcyksJyk7XG4gICAgICBjb2RlLmxpbmUoJy4uLmFkZGl0aW9uYWxWYWx1ZXMsJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9Jyk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgICBjb2RlLmxpbmUoKTtcblxuICAgICAgY29kZS5vcGVuKCdjb25zdCBmaW5hbFByb3BzOiBIZWxtUHJvcHMgPSB7Jyk7XG4gICAgICBjb2RlLmxpbmUoYGNoYXJ0OiBcXCcke2RlZi5jaGFydE5hbWV9XFwnLGApO1xuICAgICAgY29kZS5saW5lKGByZXBvOiBcXCcke3JlcG9Vcmx9XFwnLGApO1xuICAgICAgY29kZS5saW5lKGB2ZXJzaW9uOiBcXCcke2NoYXJ0VmVyc2lvbn1cXCcsYCk7XG4gICAgICBjb2RlLmxpbmUoJy4uLihPYmplY3Qua2V5cyh1cGRhdGVkUHJvcHMpLmxlbmd0aCAhPT0gMCA/IHVwZGF0ZWRQcm9wcyA6IHByb3BzKSwnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG5cbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5saW5lKCduZXcgSGVsbShzY29wZSwgXFwnSGVsbVxcJywgZmluYWxQcm9wcyknKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRBZGRpdGlvbmFsVmFsdWVzRmxhdHRlbkZ1bmMoKSB7XG4gICAgICBjb2RlLm9wZW5CbG9jaygncHJpdmF0ZSBmbGF0dGVuQWRkaXRpb25hbFZhbHVlcyhwcm9wczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0nKTtcbiAgICAgIGNvZGUub3BlbignZm9yIChsZXQgcHJvcCBpbiBwcm9wcykgeycpO1xuICAgICAgY29kZS5vcGVuKCdpZiAodHlwZW9mKHByb3BzW3Byb3BdKSA9PT0gXFwnb2JqZWN0XFwnICYmIHByb3AgIT09IFxcJ2FkZGl0aW9uYWxWYWx1ZXNcXCcpIHsnKTtcbiAgICAgIGNvZGUubGluZSgncHJvcHNbcHJvcF0gPSB0aGlzLmZsYXR0ZW5BZGRpdGlvbmFsVmFsdWVzKHByb3BzW3Byb3BdKTsnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30nKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30nKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5saW5lKCdjb25zdCB7IGFkZGl0aW9uYWxWYWx1ZXMsIC4uLnZhbHVlc1dpdGhvdXRBZGRpdGlvbmFsVmFsdWVzIH0gPSBwcm9wczsnKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5vcGVuKCdyZXR1cm4geycpO1xuICAgICAgY29kZS5saW5lKCcuLi52YWx1ZXNXaXRob3V0QWRkaXRpb25hbFZhbHVlcywnKTtcbiAgICAgIGNvZGUubGluZSgnLi4uYWRkaXRpb25hbFZhbHVlcywnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBoYXNSZXF1aXJlZFByb3BzKHNjaGVtYTogSlNPTlNjaGVtYTQpOmJvb2xlYW4gfCB1bmRlZmluZWQge1xuICByZXR1cm4gc2NoZW1hPy5yZXF1aXJlZCAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5yZXF1aXJlZCkgJiYgc2NoZW1hLnJlcXVpcmVkLmxlbmd0aCA+IDA7XG59Il19
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.matchImporter = exports.importDispatch = void 0;
4
4
  const crd_1 = require("./crd");
5
5
  const crds_dev_1 = require("./crds-dev");
6
+ const helm_1 = require("./helm");
6
7
  const k8s_1 = require("./k8s");
7
8
  const config_1 = require("../config");
8
9
  const util_1 = require("../util");
@@ -31,6 +32,10 @@ async function matchImporter(importSpec, argv) {
31
32
  if (k8s) {
32
33
  return new k8s_1.ImportKubernetesApi(k8s);
33
34
  }
35
+ const prefix = importSpec.source.split(':')[0];
36
+ if (prefix === 'helm') {
37
+ return helm_1.ImportHelm.fromSpec(importSpec);
38
+ }
34
39
  // now check if its a crds.dev import
35
40
  const crdsDevUrl = (0, crds_dev_1.matchCrdsDevUrl)(importSpec.source);
36
41
  if (crdsDevUrl) {
@@ -40,4 +45,4 @@ async function matchImporter(importSpec, argv) {
40
45
  return crd_1.ImportCustomResourceDefinition.fromSpec(importSpec);
41
46
  }
42
47
  exports.matchImporter = matchImporter;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2Rpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUF1RDtBQUN2RCx5Q0FBNkM7QUFDN0MsK0JBQTRDO0FBQzVDLHNDQUEwRDtBQUMxRCxrQ0FBdUM7QUFFaEMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUFxQixFQUFFLElBQVMsRUFBRSxPQUFzQjs7SUFDM0YsS0FBSyxNQUFNLFVBQVUsSUFBSSxPQUFPLEVBQUU7UUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1lBQzdDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksTUFBQSxPQUFPLENBQUMsSUFBSSxtQ0FBSSxJQUFJLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxtQkFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNuSSxNQUFNLElBQUEsMEJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7S0FDRjtBQUNILENBQUM7QUFwQkQsd0NBb0JDO0FBRU0sS0FBSyxVQUFVLGFBQWEsQ0FBQyxVQUFzQixFQUFFLElBQVM7SUFFbkUscUNBQXFDO0lBQ3JDLE1BQU0sR0FBRyxHQUFHLE1BQU0seUJBQW1CLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxJQUFJLEdBQUcsRUFBRTtRQUNQLE9BQU8sSUFBSSx5QkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNyQztJQUVELHFDQUFxQztJQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFBLDBCQUFlLEVBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELElBQUksVUFBVSxFQUFFO1FBQ2QsT0FBTyxvQ0FBOEIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7S0FDdkg7SUFFRCwwQkFBMEI7SUFDMUIsT0FBTyxvQ0FBOEIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQWhCRCxzQ0FnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbXBvcnRCYXNlLCBJbXBvcnRPcHRpb25zIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4vY3JkJztcbmltcG9ydCB7IG1hdGNoQ3Jkc0RldlVybCB9IGZyb20gJy4vY3Jkcy1kZXYnO1xuaW1wb3J0IHsgSW1wb3J0S3ViZXJuZXRlc0FwaSB9IGZyb20gJy4vazhzJztcbmltcG9ydCB7IEltcG9ydFNwZWMsIGFkZEltcG9ydFRvQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IFBSRUZJWF9ERUxJTSB9IGZyb20gJy4uL3V0aWwnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW1wb3J0RGlzcGF0Y2goaW1wb3J0czogSW1wb3J0U3BlY1tdLCBhcmd2OiBhbnksIG9wdGlvbnM6IEltcG9ydE9wdGlvbnMpIHtcbiAgZm9yIChjb25zdCBpbXBvcnRTcGVjIG9mIGltcG9ydHMpIHtcbiAgICBjb25zdCBpbXBvcnRlciA9IGF3YWl0IG1hdGNoSW1wb3J0ZXIoaW1wb3J0U3BlYywgYXJndik7XG5cbiAgICBpZiAoIWltcG9ydGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuYWJsZSB0byBkZXRlcm1pbmUgaW1wb3J0IHR5cGUgZm9yIFwiJHtpbXBvcnRTcGVjfVwiYCk7XG4gICAgfVxuXG4gICAgY29uc29sZS5lcnJvcignSW1wb3J0aW5nIHJlc291cmNlcywgdGhpcyBtYXkgdGFrZSBhIGZldyBtb21lbnRzLi4uJyk7XG5cbiAgICBhd2FpdCBpbXBvcnRlci5pbXBvcnQoe1xuICAgICAgbW9kdWxlTmFtZVByZWZpeDogaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4LFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLnNhdmUgPz8gdHJ1ZSkge1xuICAgICAgY29uc3Qgc3BlYyA9IGltcG9ydFNwZWMubW9kdWxlTmFtZVByZWZpeCA/IGAke2ltcG9ydFNwZWMubW9kdWxlTmFtZVByZWZpeH0ke1BSRUZJWF9ERUxJTX0ke2ltcG9ydFNwZWMuc291cmNlfWAgOiBpbXBvcnRTcGVjLnNvdXJjZTtcbiAgICAgIGF3YWl0IGFkZEltcG9ydFRvQ29uZmlnKHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWF0Y2hJbXBvcnRlcihpbXBvcnRTcGVjOiBJbXBvcnRTcGVjLCBhcmd2OiBhbnkpOiBQcm9taXNlPEltcG9ydEJhc2U+IHtcblxuICAvLyBmaXJzdCBjaGVjayBpZiBpdHMgYSBgazhzQGAgaW1wb3J0XG4gIGNvbnN0IGs4cyA9IGF3YWl0IEltcG9ydEt1YmVybmV0ZXNBcGkubWF0Y2goaW1wb3J0U3BlYywgYXJndik7XG4gIGlmIChrOHMpIHtcbiAgICByZXR1cm4gbmV3IEltcG9ydEt1YmVybmV0ZXNBcGkoazhzKTtcbiAgfVxuXG4gIC8vIG5vdyBjaGVjayBpZiBpdHMgYSBjcmRzLmRldiBpbXBvcnRcbiAgY29uc3QgY3Jkc0RldlVybCA9IG1hdGNoQ3Jkc0RldlVybChpbXBvcnRTcGVjLnNvdXJjZSk7XG4gIGlmIChjcmRzRGV2VXJsKSB7XG4gICAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyh7IHNvdXJjZTogY3Jkc0RldlVybCwgbW9kdWxlTmFtZVByZWZpeDogaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4IH0pO1xuICB9XG5cbiAgLy8gZGVmYXVsdCB0byBhIG5vcm1hbCBDUkRcbiAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbn0iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2Rpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUF1RDtBQUN2RCx5Q0FBNkM7QUFDN0MsaUNBQW9DO0FBQ3BDLCtCQUE0QztBQUM1QyxzQ0FBMEQ7QUFDMUQsa0NBQXVDO0FBRWhDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBcUIsRUFBRSxJQUFTLEVBQUUsT0FBc0I7O0lBQzNGLEtBQUssTUFBTSxVQUFVLElBQUksT0FBTyxFQUFFO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLE1BQU0sYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUN4RTtRQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUVyRSxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDcEIsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjtZQUM3QyxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksSUFBSSxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsbUJBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbkksTUFBTSxJQUFBLDBCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0tBQ0Y7QUFDSCxDQUFDO0FBcEJELHdDQW9CQztBQUVNLEtBQUssVUFBVSxhQUFhLENBQUMsVUFBc0IsRUFBRSxJQUFTO0lBRW5FLHFDQUFxQztJQUNyQyxNQUFNLEdBQUcsR0FBRyxNQUFNLHlCQUFtQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsSUFBSSxHQUFHLEVBQUU7UUFDUCxPQUFPLElBQUkseUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckM7SUFFRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7UUFDckIsT0FBTyxpQkFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUN4QztJQUVELHFDQUFxQztJQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFBLDBCQUFlLEVBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELElBQUksVUFBVSxFQUFFO1FBQ2QsT0FBTyxvQ0FBOEIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7S0FDdkg7SUFFRCwwQkFBMEI7SUFDMUIsT0FBTyxvQ0FBOEIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQXRCRCxzQ0FzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbXBvcnRCYXNlLCBJbXBvcnRPcHRpb25zIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4vY3JkJztcbmltcG9ydCB7IG1hdGNoQ3Jkc0RldlVybCB9IGZyb20gJy4vY3Jkcy1kZXYnO1xuaW1wb3J0IHsgSW1wb3J0SGVsbSB9IGZyb20gJy4vaGVsbSc7XG5pbXBvcnQgeyBJbXBvcnRLdWJlcm5ldGVzQXBpIH0gZnJvbSAnLi9rOHMnO1xuaW1wb3J0IHsgSW1wb3J0U3BlYywgYWRkSW1wb3J0VG9Db25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgUFJFRklYX0RFTElNIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnREaXNwYXRjaChpbXBvcnRzOiBJbXBvcnRTcGVjW10sIGFyZ3Y6IGFueSwgb3B0aW9uczogSW1wb3J0T3B0aW9ucykge1xuICBmb3IgKGNvbnN0IGltcG9ydFNwZWMgb2YgaW1wb3J0cykge1xuICAgIGNvbnN0IGltcG9ydGVyID0gYXdhaXQgbWF0Y2hJbXBvcnRlcihpbXBvcnRTcGVjLCBhcmd2KTtcblxuICAgIGlmICghaW1wb3J0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5hYmxlIHRvIGRldGVybWluZSBpbXBvcnQgdHlwZSBmb3IgXCIke2ltcG9ydFNwZWN9XCJgKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmVycm9yKCdJbXBvcnRpbmcgcmVzb3VyY2VzLCB0aGlzIG1heSB0YWtlIGEgZmV3IG1vbWVudHMuLi4nKTtcblxuICAgIGF3YWl0IGltcG9ydGVyLmltcG9ydCh7XG4gICAgICBtb2R1bGVOYW1lUHJlZml4OiBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXgsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc2F2ZSA/PyB0cnVlKSB7XG4gICAgICBjb25zdCBzcGVjID0gaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4ID8gYCR7aW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4fSR7UFJFRklYX0RFTElNfSR7aW1wb3J0U3BlYy5zb3VyY2V9YCA6IGltcG9ydFNwZWMuc291cmNlO1xuICAgICAgYXdhaXQgYWRkSW1wb3J0VG9Db25maWcoc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXRjaEltcG9ydGVyKGltcG9ydFNwZWM6IEltcG9ydFNwZWMsIGFyZ3Y6IGFueSk6IFByb21pc2U8SW1wb3J0QmFzZT4ge1xuXG4gIC8vIGZpcnN0IGNoZWNrIGlmIGl0cyBhIGBrOHNAYCBpbXBvcnRcbiAgY29uc3QgazhzID0gYXdhaXQgSW1wb3J0S3ViZXJuZXRlc0FwaS5tYXRjaChpbXBvcnRTcGVjLCBhcmd2KTtcbiAgaWYgKGs4cykge1xuICAgIHJldHVybiBuZXcgSW1wb3J0S3ViZXJuZXRlc0FwaShrOHMpO1xuICB9XG5cbiAgY29uc3QgcHJlZml4ID0gaW1wb3J0U3BlYy5zb3VyY2Uuc3BsaXQoJzonKVswXTtcblxuICBpZiAocHJlZml4ID09PSAnaGVsbScpIHtcbiAgICByZXR1cm4gSW1wb3J0SGVsbS5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbiAgfVxuXG4gIC8vIG5vdyBjaGVjayBpZiBpdHMgYSBjcmRzLmRldiBpbXBvcnRcbiAgY29uc3QgY3Jkc0RldlVybCA9IG1hdGNoQ3Jkc0RldlVybChpbXBvcnRTcGVjLnNvdXJjZSk7XG4gIGlmIChjcmRzRGV2VXJsKSB7XG4gICAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyh7IHNvdXJjZTogY3Jkc0RldlVybCwgbW9kdWxlTmFtZVByZWZpeDogaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4IH0pO1xuICB9XG5cbiAgLy8gZGVmYXVsdCB0byBhIG5vcm1hbCBDUkRcbiAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbn0iXX0=
@@ -0,0 +1,15 @@
1
+ import { CodeMaker } from 'codemaker';
2
+ import { ImportBase } from './base';
3
+ import { ImportSpec } from '../config';
4
+ export declare class ImportHelm extends ImportBase {
5
+ static fromSpec(importSpec: ImportSpec): Promise<ImportHelm>;
6
+ private readonly chartName;
7
+ private readonly chartUrl;
8
+ private readonly chartVersion;
9
+ private readonly chartSchemaPath;
10
+ private readonly chartDependencies;
11
+ private readonly schema;
12
+ private constructor();
13
+ get moduleNames(): string[];
14
+ protected generateTypeScript(code: CodeMaker): Promise<void>;
15
+ }
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ImportHelm = void 0;
27
+ const child_process_1 = require("child_process");
28
+ const fs = __importStar(require("fs"));
29
+ const os = __importStar(require("os"));
30
+ const path = __importStar(require("path"));
31
+ const cdk8s_1 = require("cdk8s");
32
+ const json2jsii_1 = require("json2jsii");
33
+ const semver = __importStar(require("semver"));
34
+ const base_1 = require("./base");
35
+ const codegen_1 = require("./codegen");
36
+ const MAX_HELM_BUFFER = 10 * 1024 * 1024;
37
+ const CHART_SCHEMA = 'values.schema.json';
38
+ const CHART_YAML = 'Chart.yaml';
39
+ class ImportHelm extends base_1.ImportBase {
40
+ static async fromSpec(importSpec) {
41
+ const { source } = importSpec;
42
+ return new ImportHelm(source);
43
+ }
44
+ constructor(source) {
45
+ super();
46
+ this.chartDependencies = [];
47
+ const [chartUrl, chartName, chartVersion] = extractHelmChartDetails(source);
48
+ this.chartName = chartName;
49
+ this.chartUrl = chartUrl;
50
+ this.chartVersion = chartVersion;
51
+ const tmpDir = pullHelmRepo(chartUrl, chartName, chartVersion);
52
+ const chartYamlFilePath = path.join(tmpDir, this.chartName, CHART_YAML);
53
+ const contents = cdk8s_1.Yaml.load(chartYamlFilePath);
54
+ if (contents.length === 1 && contents[0].dependencies) {
55
+ for (const dependency of contents[0].dependencies) {
56
+ this.chartDependencies.push(dependency.name);
57
+ }
58
+ }
59
+ const potentialSchemaPath = path.join(tmpDir, this.chartName, CHART_SCHEMA);
60
+ this.chartSchemaPath = fs.existsSync(potentialSchemaPath) ? potentialSchemaPath : undefined;
61
+ this.schema = this.chartSchemaPath ? JSON.parse(fs.readFileSync(this.chartSchemaPath, 'utf-8')) : undefined;
62
+ cleanup(tmpDir);
63
+ }
64
+ get moduleNames() {
65
+ return [this.chartName];
66
+ }
67
+ async generateTypeScript(code) {
68
+ var _a;
69
+ (0, codegen_1.emitHelmHeader)(code);
70
+ const types = new json2jsii_1.TypeGenerator({
71
+ definitions: (_a = this.schema) === null || _a === void 0 ? void 0 : _a.definitions,
72
+ toJson: false,
73
+ });
74
+ (0, codegen_1.generateHelmConstruct)(types, {
75
+ schema: this.schema,
76
+ chartName: this.chartName,
77
+ chartUrl: this.chartUrl,
78
+ chartVersion: this.chartVersion,
79
+ chartDependencies: this.chartDependencies,
80
+ fqn: this.chartName,
81
+ });
82
+ code.line(types.render());
83
+ }
84
+ }
85
+ exports.ImportHelm = ImportHelm;
86
+ /**
87
+ * Gets information about the helm chart from the helm url
88
+ * @param url
89
+ * @returns chartUrl, chartName and chartVersion
90
+ */
91
+ function extractHelmChartDetails(url) {
92
+ const helmRegex = /^helm:([A-Za-z0-9_.-:\-]+)\/([A-Za-z0-9_.-:\-]+)\@([0-9]+)\.([0-9]+)\.([A-Za-z0-9-+]+)$/;
93
+ const helmDetails = helmRegex.exec(url);
94
+ if (!helmDetails) {
95
+ throw Error(`Invalid helm URL: ${url}. Must match the format: 'helm:<repo-url>/<chart-name>@<chart-version>'.`);
96
+ }
97
+ const chartUrl = helmDetails[1];
98
+ const chartName = helmDetails[2];
99
+ const major = helmDetails[3];
100
+ const minor = helmDetails[4];
101
+ const patch = helmDetails[5];
102
+ const chartVersion = `${major}.${minor}.${patch}`;
103
+ if (!semver.valid(chartVersion)) {
104
+ throw new Error(`Invalid chart version (${chartVersion}) in URL: ${url}. Must follow SemVer-2 (see https://semver.org/).`);
105
+ }
106
+ return [chartUrl, chartName, chartVersion];
107
+ }
108
+ /**
109
+ * Pulls the helm chart in a temporary directory
110
+ * @param chartUrl Chart url
111
+ * @param chartName Chart name
112
+ * @param chartVersion Chart version
113
+ * @returns Temporary directory path
114
+ */
115
+ function pullHelmRepo(chartUrl, chartName, chartVersion) {
116
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), 'cdk8s-helm-'));
117
+ const args = new Array();
118
+ args.push('pull');
119
+ args.push(chartName);
120
+ args.push('--repo', chartUrl);
121
+ args.push('--version', chartVersion);
122
+ args.push('--untar');
123
+ args.push('--untardir', workdir);
124
+ const command = 'helm';
125
+ const helm = (0, child_process_1.spawnSync)(command, args, {
126
+ maxBuffer: MAX_HELM_BUFFER,
127
+ });
128
+ if (helm.error) {
129
+ const err = helm.error.message;
130
+ if (err.includes('ENOENT')) {
131
+ throw new Error(`Unable to execute '${command}' to pull the Helm chart. Is helm installed on your system?`);
132
+ }
133
+ throw new Error(`Failed pulling helm chart from URL (${chartUrl}): ${err}`);
134
+ }
135
+ if (helm.status !== 0) {
136
+ throw new Error(helm.stderr.toString());
137
+ }
138
+ return workdir;
139
+ }
140
+ /**
141
+ * Cleanup temp directory created
142
+ * @param tmpDir Temporary directory path
143
+ */
144
+ function cleanup(tmpDir) {
145
+ fs.rmSync(tmpDir, { recursive: true });
146
+ }
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVsbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvaGVsbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUEwQztBQUMxQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixpQ0FBNkI7QUFHN0IseUNBQTBDO0FBQzFDLCtDQUFpQztBQUNqQyxpQ0FBb0M7QUFDcEMsdUNBQWtFO0FBR2xFLE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUVoQyxNQUFhLFVBQVcsU0FBUSxpQkFBVTtJQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFzQjtRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQVNELFlBQW9CLE1BQWM7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFKTyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFNaEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJ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TSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsT0FBTyw2REFBNkQsQ0FBQyxDQUFDO1NBQzdHO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsUUFBUSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDN0U7SUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3pDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsT0FBTyxDQUFDLE1BQWM7SUFDN0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd25TeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgWWFtbCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgZW1pdEhlbG1IZWFkZXIsIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcblxuY29uc3QgTUFYX0hFTE1fQlVGRkVSID0gMTAgKiAxMDI0ICogMTAyNDtcbmNvbnN0IENIQVJUX1NDSEVNQSA9ICd2YWx1ZXMuc2NoZW1hLmpzb24nO1xuY29uc3QgQ0hBUlRfWUFNTCA9ICdDaGFydC55YW1sJztcblxuZXhwb3J0IGNsYXNzIEltcG9ydEhlbG0gZXh0ZW5kcyBJbXBvcnRCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBmcm9tU3BlYyhpbXBvcnRTcGVjOiBJbXBvcnRTcGVjKTogUHJvbWlzZTxJbXBvcnRIZWxtPiB7XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IGltcG9ydFNwZWM7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRIZWxtKHNvdXJjZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0VXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRWZXJzaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRTY2hlbWFQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnREZXBlbmRlbmNpZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dID0gZXh0cmFjdEhlbG1DaGFydERldGFpbHMoc291cmNlKTtcblxuICAgIHRoaXMuY2hhcnROYW1lID0gY2hhcnROYW1lO1xuICAgIHRoaXMuY2hhcnRVcmwgPSBjaGFydFVybDtcbiAgICB0aGlzLmNoYXJ0VmVyc2lvbiA9IGNoYXJ0VmVyc2lvbjtcbiAgICBjb25zdCB0bXBEaXIgPSBwdWxsSGVsbVJlcG8oY2hhcnRVcmwsIGNoYXJ0TmFtZSwgY2hhcnRWZXJzaW9uKTtcblxuICAgIGNvbnN0IGNoYXJ0WWFtbEZpbGVQYXRoID0gcGF0aC5qb2luKHRtcERpciwgdGhpcy5jaGFydE5hbWUsIENIQVJUX1lBTUwpO1xuICAgIGNvbnN0IGNvbnRlbnRzID0gWWFtbC5sb2FkKGNoYXJ0WWFtbEZpbGVQYXRoKTtcblxuICAgIGlmIChjb250ZW50cy5sZW5ndGggPT09IDEgJiYgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2YgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHRoaXMuY2hhcnREZXBlbmRlbmNpZXMucHVzaChkZXBlbmRlbmN5Lm5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBvdGVudGlhbFNjaGVtYVBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCB0aGlzLmNoYXJ0TmFtZSwgQ0hBUlRfU0NIRU1BKTtcbiAgICB0aGlzLmNoYXJ0U2NoZW1hUGF0aCA9IGZzLmV4aXN0c1N5bmMocG90ZW50aWFsU2NoZW1hUGF0aCkgPyBwb3RlbnRpYWxTY2hlbWFQYXRoIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2NoZW1hID0gdGhpcy5jaGFydFNjaGVtYVBhdGggPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLmNoYXJ0U2NoZW1hUGF0aCwgJ3V0Zi04JykpIDogdW5kZWZpbmVkO1xuXG4gICAgY2xlYW51cCh0bXBEaXIpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gW3RoaXMuY2hhcnROYW1lXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyKSB7XG4gICAgZW1pdEhlbG1IZWFkZXIoY29kZSk7XG5cbiAgICBjb25zdCB0eXBlcyA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiB0aGlzLnNjaGVtYT8uZGVmaW5pdGlvbnMsXG4gICAgICB0b0pzb246IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgZ2VuZXJhdGVIZWxtQ29uc3RydWN0KHR5cGVzLCB7XG4gICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxuICAgICAgY2hhcnROYW1lOiB0aGlzLmNoYXJ0TmFtZSxcbiAgICAgIGNoYXJ0VXJsOiB0aGlzLmNoYXJ0VXJsLFxuICAgICAgY2hhcnRWZXJzaW9uOiB0aGlzLmNoYXJ0VmVyc2lvbixcbiAgICAgIGNoYXJ0RGVwZW5kZW5jaWVzOiB0aGlzLmNoYXJ0RGVwZW5kZW5jaWVzLFxuICAgICAgZnFuOiB0aGlzLmNoYXJ0TmFtZSxcbiAgICB9KTtcblxuICAgIGNvZGUubGluZSh0eXBlcy5yZW5kZXIoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBoZWxtIGNoYXJ0IGZyb20gdGhlIGhlbG0gdXJsXG4gKiBAcGFyYW0gdXJsXG4gKiBAcmV0dXJucyBjaGFydFVybCwgY2hhcnROYW1lIGFuZCBjaGFydFZlcnNpb25cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdEhlbG1DaGFydERldGFpbHModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgaGVsbVJlZ2V4ID0gL15oZWxtOihbQS1aYS16MC05Xy4tOlxcLV0rKVxcLyhbQS1aYS16MC05Xy4tOlxcLV0rKVxcQChbMC05XSspXFwuKFswLTldKylcXC4oW0EtWmEtejAtOS0rXSspJC87XG4gIGNvbnN0IGhlbG1EZXRhaWxzID0gaGVsbVJlZ2V4LmV4ZWModXJsKTtcblxuICBpZiAoIWhlbG1EZXRhaWxzKSB7XG4gICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8cmVwby11cmw+LzxjaGFydC1uYW1lPkA8Y2hhcnQtdmVyc2lvbj4nLmApO1xuICB9XG5cbiAgY29uc3QgY2hhcnRVcmwgPSBoZWxtRGV0YWlsc1sxXTtcbiAgY29uc3QgY2hhcnROYW1lID0gaGVsbURldGFpbHNbMl07XG4gIGNvbnN0IG1ham9yID0gaGVsbURldGFpbHNbM107XG4gIGNvbnN0IG1pbm9yID0gaGVsbURldGFpbHNbNF07XG4gIGNvbnN0IHBhdGNoID0gaGVsbURldGFpbHNbNV07XG5cbiAgY29uc3QgY2hhcnRWZXJzaW9uID0gYCR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9YDtcblxuICBpZiAoIXNlbXZlci52YWxpZChjaGFydFZlcnNpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNoYXJ0IHZlcnNpb24gKCR7Y2hhcnRWZXJzaW9ufSkgaW4gVVJMOiAke3VybH0uIE11c3QgZm9sbG93IFNlbVZlci0yIChzZWUgaHR0cHM6Ly9zZW12ZXIub3JnLykuYCk7XG4gIH1cblxuICByZXR1cm4gW2NoYXJ0VXJsLCBjaGFydE5hbWUsIGNoYXJ0VmVyc2lvbl07XG59XG5cbi8qKlxuICogUHVsbHMgdGhlIGhlbG0gY2hhcnQgaW4gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gKiBAcGFyYW0gY2hhcnRVcmwgQ2hhcnQgdXJsXG4gKiBAcGFyYW0gY2hhcnROYW1lIENoYXJ0IG5hbWVcbiAqIEBwYXJhbSBjaGFydFZlcnNpb24gQ2hhcnQgdmVyc2lvblxuICogQHJldHVybnMgVGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoXG4gKi9cbmZ1bmN0aW9uIHB1bGxIZWxtUmVwbyhjaGFydFVybDogc3RyaW5nLCBjaGFydE5hbWU6IHN0cmluZywgY2hhcnRWZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB3b3JrZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrOHMtaGVsbS0nKSk7XG5cbiAgY29uc3QgYXJncyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGFyZ3MucHVzaCgncHVsbCcpO1xuICBhcmdzLnB1c2goY2hhcnROYW1lKTtcbiAgYXJncy5wdXNoKCctLXJlcG8nLCBjaGFydFVybCk7XG4gIGFyZ3MucHVzaCgnLS12ZXJzaW9uJywgY2hhcnRWZXJzaW9uKTtcbiAgYXJncy5wdXNoKCctLXVudGFyJyk7XG4gIGFyZ3MucHVzaCgnLS11bnRhcmRpcicsIHdvcmtkaXIpO1xuXG4gIGNvbnN0IGNvbW1hbmQgPSAnaGVsbSc7XG5cbiAgY29uc3QgaGVsbSA9IHNwYXduU3luYyhjb21tYW5kLCBhcmdzLCB7XG4gICAgbWF4QnVmZmVyOiBNQVhfSEVMTV9CVUZGRVIsXG4gIH0pO1xuXG4gIGlmIChoZWxtLmVycm9yKSB7XG4gICAgY29uc3QgZXJyID0gaGVsbS5lcnJvci5tZXNzYWdlO1xuICAgIGlmIChlcnIuaW5jbHVkZXMoJ0VOT0VOVCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBleGVjdXRlICcke2NvbW1hbmR9JyB0byBwdWxsIHRoZSBIZWxtIGNoYXJ0LiBJcyBoZWxtIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbT9gKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCBwdWxsaW5nIGhlbG0gY2hhcnQgZnJvbSBVUkwgKCR7Y2hhcnRVcmx9KTogJHtlcnJ9YCk7XG4gIH1cblxuICBpZiAoaGVsbS5zdGF0dXMgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoaGVsbS5zdGRlcnIudG9TdHJpbmcoKSk7XG4gIH1cblxuICByZXR1cm4gd29ya2Rpcjtcbn1cblxuLyoqXG4gKiBDbGVhbnVwIHRlbXAgZGlyZWN0b3J5IGNyZWF0ZWRcbiAqIEBwYXJhbSB0bXBEaXIgVGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXAodG1wRGlyOiBzdHJpbmcpIHtcbiAgZnMucm1TeW5jKHRtcERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG59Il19
package/package.json CHANGED
@@ -75,15 +75,15 @@
75
75
  "dependencies": {
76
76
  "@types/node": "^16",
77
77
  "ajv": "^8.12.0",
78
- "cdk8s": "^2.66.3",
79
- "cdk8s-plus-25": "^2.22.26",
78
+ "cdk8s": "^2.66.4",
79
+ "cdk8s-plus-25": "^2.22.27",
80
80
  "codemaker": "^1.89.0",
81
81
  "colors": "1.4.0",
82
82
  "constructs": "^10.2.70",
83
83
  "fs-extra": "^8",
84
84
  "jsii-pacmak": "^1.89.0",
85
85
  "jsii-srcmak": "^0.1.951",
86
- "json2jsii": "^0.3.387",
86
+ "json2jsii": "^0.3.389",
87
87
  "semver": "^7.5.4",
88
88
  "sscaff": "^1.2.274",
89
89
  "table": "^6.8.1",
@@ -103,7 +103,7 @@
103
103
  "node": ">= 16.20.0"
104
104
  },
105
105
  "license": "Apache-2.0",
106
- "version": "2.122.0",
106
+ "version": "2.124.0",
107
107
  "jest": {
108
108
  "testMatch": [
109
109
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",