@webiny/pulumi-sdk 5.15.0 → 5.16.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -6,11 +6,12 @@ declare type PulumiArgs = {
6
6
  declare type ExecaArgs = {
7
7
  [key: string]: any;
8
8
  };
9
- declare type DefaultArgs = {
9
+ declare type Options = {
10
10
  args?: PulumiArgs;
11
11
  execa?: ExecaArgs;
12
12
  beforePulumiInstall?: () => any;
13
13
  afterPulumiInstall?: () => any;
14
+ pulumiFolder?: string;
14
15
  };
15
16
  declare type RunArgs = {
16
17
  command: Command;
@@ -24,11 +25,11 @@ declare type InstallArgs = {
24
25
  afterPulumiInstall?: () => any;
25
26
  };
26
27
  export declare const FLAG_NON_INTERACTIVE = "--non-interactive";
27
- export declare const PULUMI_FOLDER: string;
28
- export declare const PULUMI_BINARY_PATH: string;
29
28
  export declare class Pulumi {
30
- defaultArgs: DefaultArgs;
31
- constructor(options?: DefaultArgs);
29
+ options: Options;
30
+ pulumiFolder: string;
31
+ pulumiBinaryPath: string;
32
+ constructor(options?: Options);
32
33
  run(rawArgs: RunArgs): execa.ExecaChildProcess<string>;
33
34
  install(rawArgs?: InstallArgs): Promise<boolean>;
34
35
  }
package/index.js CHANGED
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.Pulumi = exports.PULUMI_BINARY_PATH = exports.PULUMI_FOLDER = exports.FLAG_NON_INTERACTIVE = void 0;
8
+ exports.Pulumi = exports.FLAG_NON_INTERACTIVE = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -33,19 +33,19 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
33
33
 
34
34
  const FLAG_NON_INTERACTIVE = "--non-interactive";
35
35
  exports.FLAG_NON_INTERACTIVE = FLAG_NON_INTERACTIVE;
36
- const PULUMI_FOLDER = path.join(__dirname, "pulumi", _os.default.platform());
37
- exports.PULUMI_FOLDER = PULUMI_FOLDER;
38
- const PULUMI_BINARY_PATH = path.join(PULUMI_FOLDER, "pulumi", "pulumi");
39
- exports.PULUMI_BINARY_PATH = PULUMI_BINARY_PATH;
40
36
 
41
37
  class Pulumi {
42
38
  constructor(options = {}) {
43
- (0, _defineProperty2.default)(this, "defaultArgs", void 0);
44
- this.defaultArgs = options;
39
+ (0, _defineProperty2.default)(this, "options", void 0);
40
+ (0, _defineProperty2.default)(this, "pulumiFolder", void 0);
41
+ (0, _defineProperty2.default)(this, "pulumiBinaryPath", void 0);
42
+ this.options = options;
43
+ this.pulumiFolder = path.join(options.pulumiFolder || process.cwd(), "pulumi-cli", _os.default.platform());
44
+ this.pulumiBinaryPath = path.join(this.pulumiFolder, "pulumi", "pulumi");
45
45
  }
46
46
 
47
47
  run(rawArgs) {
48
- const args = (0, _merge2.default)({}, this.defaultArgs, rawArgs);
48
+ const args = (0, _merge2.default)({}, this.options, rawArgs);
49
49
 
50
50
  if (!Array.isArray(args.command)) {
51
51
  args.command = [args.command];
@@ -79,23 +79,23 @@ class Pulumi {
79
79
 
80
80
 
81
81
  (0, _set2.default)(args.execa, "env.PULUMI_SKIP_UPDATE_CHECK", "true");
82
- (0, _set2.default)(args.execa, "env.PULUMI_HOME", PULUMI_FOLDER);
83
- return (0, _execa.default)(PULUMI_BINARY_PATH, [...args.command, ...finalArgs, FLAG_NON_INTERACTIVE], _objectSpread({}, args.execa));
82
+ (0, _set2.default)(args.execa, "env.PULUMI_HOME", this.pulumiFolder);
83
+ return (0, _execa.default)(this.pulumiBinaryPath, [...args.command, ...finalArgs, FLAG_NON_INTERACTIVE], _objectSpread({}, args.execa));
84
84
  }
85
85
 
86
86
  async install(rawArgs) {
87
- const args = (0, _merge2.default)({}, this.defaultArgs, rawArgs);
88
- const installed = await (0, _downloadBinaries.default)(PULUMI_FOLDER, args.beforePulumiInstall, args.afterPulumiInstall);
87
+ const args = (0, _merge2.default)({}, this.options, rawArgs);
88
+ const installed = await (0, _downloadBinaries.default)(this.pulumiFolder, args.beforePulumiInstall, args.afterPulumiInstall);
89
89
 
90
90
  if (installed) {
91
91
  const {
92
92
  version
93
93
  } = require("@pulumi/aws/package.json");
94
94
 
95
- await (0, _execa.default)(path.join(PULUMI_FOLDER, "pulumi", "pulumi"), ["plugin", "install", "resource", "aws", version], {
95
+ await (0, _execa.default)(this.pulumiBinaryPath, ["plugin", "install", "resource", "aws", version], {
96
96
  stdio: "inherit",
97
97
  env: {
98
- PULUMI_HOME: PULUMI_FOLDER,
98
+ PULUMI_HOME: this.pulumiFolder,
99
99
  PULUMI_SKIP_UPDATE_CHECK: "true"
100
100
  }
101
101
  });
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["FLAG_NON_INTERACTIVE","PULUMI_FOLDER","path","join","__dirname","os","platform","PULUMI_BINARY_PATH","Pulumi","constructor","options","defaultArgs","run","rawArgs","args","Array","isArray","command","finalArgs","key","value","i","length","push","execa","install","installed","beforePulumiInstall","afterPulumiInstall","version","require","stdio","env","PULUMI_HOME","PULUMI_SKIP_UPDATE_CHECK"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;AA0BO,MAAMA,oBAAoB,GAAG,mBAA7B;;AACA,MAAMC,aAAa,GAAGC,IAAI,CAACC,IAAL,CAAUC,SAAV,EAAqB,QAArB,EAA+BC,YAAGC,QAAH,EAA/B,CAAtB;;AACA,MAAMC,kBAAkB,GAAGL,IAAI,CAACC,IAAL,CAAUF,aAAV,EAAyB,QAAzB,EAAmC,QAAnC,CAA3B;;;AAEA,MAAMO,MAAN,CAAa;AAEhBC,EAAAA,WAAW,CAACC,OAAoB,GAAG,EAAxB,EAA4B;AAAA;AACnC,SAAKC,WAAL,GAAmBD,OAAnB;AACH;;AAEDE,EAAAA,GAAG,CAACC,OAAD,EAAmB;AAClB,UAAMC,IAAI,GAAG,qBAAM,EAAN,EAAU,KAAKH,WAAf,EAA4BE,OAA5B,CAAb;;AAEA,QAAI,CAACE,KAAK,CAACC,OAAN,CAAcF,IAAI,CAACG,OAAnB,CAAL,EAAkC;AAC9BH,MAAAA,IAAI,CAACG,OAAL,GAAe,CAACH,IAAI,CAACG,OAAN,CAAf;AACH,KALiB,CAOlB;;;AACA,UAAMC,SAAS,GAAG,EAAlB;;AACA,SAAK,MAAMC,GAAX,IAAkBL,IAAI,CAACA,IAAvB,EAA6B;AACzB,YAAMM,KAAK,GAAGN,IAAI,CAACA,IAAL,CAAUK,GAAV,CAAd;;AACA,UAAI,CAACC,KAAL,EAAY;AACR;AACH;;AAED,UAAIL,KAAK,CAACC,OAAN,CAAcI,KAAd,CAAJ,EAA0B;AACtB,aAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,KAAK,CAACE,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACnCH,UAAAA,SAAS,CAACK,IAAV,CAAgB,KAAI,yBAAUJ,GAAV,CAAe,EAAnC,EAAsCC,KAAK,CAACC,CAAD,CAA3C;AACH;;AACD;AACH;;AAED,UAAI,OAAOD,KAAP,KAAiB,SAArB,EAAgC;AAC5BF,QAAAA,SAAS,CAACK,IAAV,CAAgB,KAAI,yBAAUJ,GAAV,CAAe,EAAnC;AACA;AACH;;AAEDD,MAAAA,SAAS,CAACK,IAAV,CAAgB,KAAI,yBAAUJ,GAAV,CAAe,EAAnC,EAAsCC,KAAtC;AACH,KA5BiB,CA8BlB;;;AACA,uBAAIN,IAAI,CAACU,KAAT,EAAgB,8BAAhB,EAAgD,MAAhD;AACA,uBAAIV,IAAI,CAACU,KAAT,EAAgB,iBAAhB,EAAmCvB,aAAnC;AAEA,WAAO,oBAAMM,kBAAN,EAA0B,CAAC,GAAGO,IAAI,CAACG,OAAT,EAAkB,GAAGC,SAArB,EAAgClB,oBAAhC,CAA1B,oBACAc,IAAI,CAACU,KADL,EAAP;AAGH;;AAEY,QAAPC,OAAO,CAACZ,OAAD,EAA0C;AACnD,UAAMC,IAAI,GAAG,qBAAM,EAAN,EAAU,KAAKH,WAAf,EAA4BE,OAA5B,CAAb;AAEA,UAAMa,SAAS,GAAG,MAAM,+BACpBzB,aADoB,EAEpBa,IAAI,CAACa,mBAFe,EAGpBb,IAAI,CAACc,kBAHe,CAAxB;;AAMA,QAAIF,SAAJ,EAAe;AACX,YAAM;AAAEG,QAAAA;AAAF,UAAcC,OAAO,CAAC,0BAAD,CAA3B;;AACA,YAAM,oBACF5B,IAAI,CAACC,IAAL,CAAUF,aAAV,EAAyB,QAAzB,EAAmC,QAAnC,CADE,EAEF,CAAC,QAAD,EAAW,SAAX,EAAsB,UAAtB,EAAkC,KAAlC,EAAyC4B,OAAzC,CAFE,EAGF;AACIE,QAAAA,KAAK,EAAE,SADX;AAEIC,QAAAA,GAAG,EAAE;AACDC,UAAAA,WAAW,EAAEhC,aADZ;AAEDiC,UAAAA,wBAAwB,EAAE;AAFzB;AAFT,OAHE,CAAN;AAWH;;AAED,WAAOR,SAAP;AACH;;AAtEe","sourcesContent":["import os from \"os\";\nimport execa from \"execa\";\nimport * as path from \"path\";\nimport { merge, kebabCase, set } from \"lodash\";\nimport downloadBinaries from \"./downloadBinaries\";\n\ntype Command = string | string[];\ntype PulumiArgs = { [key: string]: string | boolean };\ntype ExecaArgs = { [key: string]: any };\n\ntype DefaultArgs = {\n args?: PulumiArgs;\n execa?: ExecaArgs;\n beforePulumiInstall?: () => any;\n afterPulumiInstall?: () => any;\n};\n\ntype RunArgs = {\n command: Command;\n args?: PulumiArgs;\n execa?: ExecaArgs;\n beforePulumiInstall?: () => any;\n afterPulumiInstall?: () => any;\n};\n\ntype InstallArgs = {\n beforePulumiInstall?: () => any;\n afterPulumiInstall?: () => any;\n};\n\nexport const FLAG_NON_INTERACTIVE = \"--non-interactive\";\nexport const PULUMI_FOLDER = path.join(__dirname, \"pulumi\", os.platform());\nexport const PULUMI_BINARY_PATH = path.join(PULUMI_FOLDER, \"pulumi\", \"pulumi\");\n\nexport class Pulumi {\n defaultArgs: DefaultArgs;\n constructor(options: DefaultArgs = {}) {\n this.defaultArgs = options;\n }\n\n run(rawArgs: RunArgs) {\n const args = merge({}, this.defaultArgs, rawArgs);\n\n if (!Array.isArray(args.command)) {\n args.command = [args.command];\n }\n\n // 1. Prepare Pulumi args.\n const finalArgs = [];\n for (const key in args.args) {\n const value = args.args[key];\n if (!value) {\n continue;\n }\n\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n finalArgs.push(`--${kebabCase(key)}`, value[i]);\n }\n continue;\n }\n\n if (typeof value === \"boolean\") {\n finalArgs.push(`--${kebabCase(key)}`);\n continue;\n }\n\n finalArgs.push(`--${kebabCase(key)}`, value);\n }\n\n // Prepare execa args.\n set(args.execa, \"env.PULUMI_SKIP_UPDATE_CHECK\", \"true\");\n set(args.execa, \"env.PULUMI_HOME\", PULUMI_FOLDER);\n\n return execa(PULUMI_BINARY_PATH, [...args.command, ...finalArgs, FLAG_NON_INTERACTIVE], {\n ...args.execa\n });\n }\n\n async install(rawArgs?: InstallArgs): Promise<boolean> {\n const args = merge({}, this.defaultArgs, rawArgs);\n\n const installed = await downloadBinaries(\n PULUMI_FOLDER,\n args.beforePulumiInstall,\n args.afterPulumiInstall\n );\n\n if (installed) {\n const { version } = require(\"@pulumi/aws/package.json\");\n await execa(\n path.join(PULUMI_FOLDER, \"pulumi\", \"pulumi\"),\n [\"plugin\", \"install\", \"resource\", \"aws\", version],\n {\n stdio: \"inherit\",\n env: {\n PULUMI_HOME: PULUMI_FOLDER,\n PULUMI_SKIP_UPDATE_CHECK: \"true\"\n }\n }\n );\n }\n\n return installed;\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["FLAG_NON_INTERACTIVE","Pulumi","constructor","options","pulumiFolder","path","join","process","cwd","os","platform","pulumiBinaryPath","run","rawArgs","args","Array","isArray","command","finalArgs","key","value","i","length","push","execa","install","installed","beforePulumiInstall","afterPulumiInstall","version","require","stdio","env","PULUMI_HOME","PULUMI_SKIP_UPDATE_CHECK"],"mappings":"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","sourcesContent":["import os from \"os\";\nimport execa from \"execa\";\nimport * as path from \"path\";\nimport { merge, kebabCase, set } from \"lodash\";\nimport downloadBinaries from \"./downloadBinaries\";\n\ntype Command = string | string[];\ntype PulumiArgs = { [key: string]: string | boolean };\ntype ExecaArgs = { [key: string]: any };\n\ntype Options = {\n args?: PulumiArgs;\n execa?: ExecaArgs;\n beforePulumiInstall?: () => any;\n afterPulumiInstall?: () => any;\n\n // A folder into which the Pulumi CLI, along with all of its meta data and config files, will be set up.\n // It's recommended this folder is not checked in into a code repository, since the Pulumi CLI can store\n // sensitive information here, for example - user's Pulumi Service credentials.\n pulumiFolder?: string;\n};\n\ntype RunArgs = {\n command: Command;\n args?: PulumiArgs;\n execa?: ExecaArgs;\n beforePulumiInstall?: () => any;\n afterPulumiInstall?: () => any;\n};\n\ntype InstallArgs = {\n beforePulumiInstall?: () => any;\n afterPulumiInstall?: () => any;\n};\n\nexport const FLAG_NON_INTERACTIVE = \"--non-interactive\";\n\nexport class Pulumi {\n options: Options;\n pulumiFolder: string;\n pulumiBinaryPath: string;\n constructor(options: Options = {}) {\n this.options = options;\n\n this.pulumiFolder = path.join(\n options.pulumiFolder || process.cwd(),\n \"pulumi-cli\",\n os.platform()\n );\n this.pulumiBinaryPath = path.join(this.pulumiFolder, \"pulumi\", \"pulumi\");\n }\n\n run(rawArgs: RunArgs) {\n const args = merge({}, this.options, rawArgs);\n\n if (!Array.isArray(args.command)) {\n args.command = [args.command];\n }\n\n // 1. Prepare Pulumi args.\n const finalArgs = [];\n for (const key in args.args) {\n const value = args.args[key];\n if (!value) {\n continue;\n }\n\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n finalArgs.push(`--${kebabCase(key)}`, value[i]);\n }\n continue;\n }\n\n if (typeof value === \"boolean\") {\n finalArgs.push(`--${kebabCase(key)}`);\n continue;\n }\n\n finalArgs.push(`--${kebabCase(key)}`, value);\n }\n\n // Prepare execa args.\n set(args.execa, \"env.PULUMI_SKIP_UPDATE_CHECK\", \"true\");\n set(args.execa, \"env.PULUMI_HOME\", this.pulumiFolder);\n\n return execa(this.pulumiBinaryPath, [...args.command, ...finalArgs, FLAG_NON_INTERACTIVE], {\n ...args.execa\n });\n }\n\n async install(rawArgs?: InstallArgs): Promise<boolean> {\n const args = merge({}, this.options, rawArgs);\n\n const installed = await downloadBinaries(\n this.pulumiFolder,\n args.beforePulumiInstall,\n args.afterPulumiInstall\n );\n\n if (installed) {\n const { version } = require(\"@pulumi/aws/package.json\");\n await execa(this.pulumiBinaryPath, [\"plugin\", \"install\", \"resource\", \"aws\", version], {\n stdio: \"inherit\",\n env: {\n PULUMI_HOME: this.pulumiFolder,\n PULUMI_SKIP_UPDATE_CHECK: \"true\"\n }\n });\n }\n\n return installed;\n }\n}\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/pulumi-sdk",
3
- "version": "5.15.0",
3
+ "version": "5.16.0-beta.0",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,8 +27,8 @@
27
27
  "@babel/cli": "^7.5.5",
28
28
  "@babel/core": "^7.5.5",
29
29
  "@types/node": "^10.0.0",
30
- "@webiny/cli": "^5.15.0",
31
- "@webiny/project-utils": "^5.15.0",
30
+ "@webiny/cli": "^5.16.0-beta.0",
31
+ "@webiny/project-utils": "^5.16.0-beta.0",
32
32
  "rimraf": "^3.0.2",
33
33
  "typescript": "^4.1.3"
34
34
  },
@@ -44,5 +44,5 @@
44
44
  "build": "yarn webiny run build",
45
45
  "watch": "yarn webiny run watch"
46
46
  },
47
- "gitHead": "fd0ba247e5e0e2f5df66c8179f09af5ad6e9a0f2"
47
+ "gitHead": "461fcc69cc109593d95fb38ca0dbf8f69e001b7c"
48
48
  }