@pwrdrvr/microapps-publish 0.0.9 → 0.0.15

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.
Files changed (65) hide show
  1. package/{src → dist}/DeployClient.d.ts +0 -0
  2. package/dist/DeployClient.d.ts.map +1 -0
  3. package/{src → dist}/DeployClient.js +0 -0
  4. package/dist/DeployClient.js.map +1 -0
  5. package/{src → dist}/S3TransferUtility.d.ts +0 -0
  6. package/dist/S3TransferUtility.d.ts.map +1 -0
  7. package/{src → dist}/S3TransferUtility.js +0 -0
  8. package/dist/S3TransferUtility.js.map +1 -0
  9. package/{src → dist}/S3Uploader.d.ts +0 -0
  10. package/dist/S3Uploader.d.ts.map +1 -0
  11. package/{src → dist}/S3Uploader.js +0 -0
  12. package/dist/S3Uploader.js.map +1 -0
  13. package/{src → dist}/config/Application.d.ts +0 -0
  14. package/dist/config/Application.d.ts.map +1 -0
  15. package/{src → dist}/config/Application.js +0 -0
  16. package/dist/config/Application.js.map +1 -0
  17. package/{src → dist}/config/Config.d.ts +0 -0
  18. package/dist/config/Config.d.ts.map +1 -0
  19. package/{src → dist}/config/Config.js +0 -0
  20. package/dist/config/Config.js.map +1 -0
  21. package/{src → dist}/config/Deployer.d.ts +0 -0
  22. package/dist/config/Deployer.d.ts.map +1 -0
  23. package/{src → dist}/config/Deployer.js +0 -0
  24. package/dist/config/Deployer.js.map +1 -0
  25. package/{src → dist}/config/FileStore.d.ts +0 -0
  26. package/dist/config/FileStore.d.ts.map +1 -0
  27. package/{src → dist}/config/FileStore.js +0 -0
  28. package/dist/config/FileStore.js.map +1 -0
  29. package/{src → dist}/index.d.ts +0 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/{src → dist}/index.js +14 -13
  32. package/dist/index.js.map +1 -0
  33. package/{src → dist}/lib/FilesExist.d.ts +0 -0
  34. package/dist/lib/FilesExist.d.ts.map +1 -0
  35. package/{src → dist}/lib/FilesExist.js +0 -0
  36. package/dist/lib/FilesExist.js.map +1 -0
  37. package/package.json +5 -5
  38. package/src/DeployClient.ts +100 -0
  39. package/src/S3TransferUtility.ts +82 -0
  40. package/src/S3Uploader.ts +59 -0
  41. package/src/config/Application.ts +125 -0
  42. package/src/config/Config.ts +82 -0
  43. package/src/config/Deployer.ts +14 -0
  44. package/src/config/FileStore.ts +14 -0
  45. package/src/index.ts +345 -0
  46. package/src/lib/FilesExist.ts +25 -0
  47. package/LICENSE +0 -21
  48. package/src/DeployClient.d.ts.map +0 -1
  49. package/src/DeployClient.js.map +0 -1
  50. package/src/S3TransferUtility.d.ts.map +0 -1
  51. package/src/S3TransferUtility.js.map +0 -1
  52. package/src/S3Uploader.d.ts.map +0 -1
  53. package/src/S3Uploader.js.map +0 -1
  54. package/src/config/Application.d.ts.map +0 -1
  55. package/src/config/Application.js.map +0 -1
  56. package/src/config/Config.d.ts.map +0 -1
  57. package/src/config/Config.js.map +0 -1
  58. package/src/config/Deployer.d.ts.map +0 -1
  59. package/src/config/Deployer.js.map +0 -1
  60. package/src/config/FileStore.d.ts.map +0 -1
  61. package/src/config/FileStore.js.map +0 -1
  62. package/src/index.d.ts.map +0 -1
  63. package/src/index.js.map +0 -1
  64. package/src/lib/FilesExist.d.ts.map +0 -1
  65. package/src/lib/FilesExist.js.map +0 -1
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployClient.d.ts","sourceRoot":"","sources":["../src/DeployClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAEL,+BAA+B,EAIhC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,sBAA+B;IACtD,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAA4B;WAEhC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;WAyBzC,sBAAsB,CACxC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,+BAA+B,CAAA;KAAE,CAAC;WA4BtD,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA4BlE"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployClient.js","sourceRoot":"","sources":["../src/DeployClient.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3TransferUtility.d.ts","sourceRoot":"","sources":["../src/S3TransferUtility.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAI9E,MAAM,CAAC,OAAO,OAAO,iBAAiB;WAChB,SAAS,CAC3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,+BAA+B,GACjD,OAAO,CAAC,IAAI,CAAC;mBAoDK,QAAQ;CAU9B"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3TransferUtility.js","sourceRoot":"","sources":["../src/S3TransferUtility.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,oDAAoD;AACpD,EAAE;;;AAEF,2BAAsD;AACtD,mDAA6B;AAC7B,+DAAyC;AACzC,sDAA8C;AAG9C,2CAAyC;AACzC,0DAAyB;AAEzB,MAAqB,iBAAiB;IAC7B,MAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,MAAc,EACd,cAAsB,EACtB,UAAkB,EAClB,iBAAkD;QAElD,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE;gBACX,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,WAAW;gBACzD,eAAe,EAAE,iBAAiB,CAAC,cAAc,CAAC,eAAe;gBACjE,YAAY,EAAE,iBAAiB,CAAC,cAAc,CAAC,YAAY;aAC5D;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAa,CAAC;QACrE,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/D,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;SACjC;QAED,wCAAwC;QACxC,MAAM,eAAI,CACR,KAAK,EACL,KAAK,EAAE,QAAQ,EAAE,EAAE;YACjB,qDAAqD;YACrD,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC;gBACxB,MAAM,EAAE,QAAQ;gBAChB,iBAAiB,EAAE,KAAK;gBACxB,MAAM,EAAE;oBACN,MAAM,EAAE,UAAU;oBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE,qBAAgB,CAAC,QAAQ,CAAC;oBAChC,WAAW,EAAE,wBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,0BAA0B;oBAC/E,YAAY,EAAE,uBAAuB;iBACtC;aACF,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,EACD;YACE,WAAW,EAAE,EAAE;SAChB,CASF,CAAC;IACJ,CAAC;IACD,0BAA0B;IAC1B,8CAA8C;IAEtC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAW;QACvC,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,CAAC,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AApED,oCAoEC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3Uploader.d.ts","sourceRoot":"","sources":["../src/S3Uploader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C,MAAM,CAAC,OAAO,OAAO,UAAU;WACT,MAAM,CACxB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,+BAA+B,GACjD,OAAO,CAAC,IAAI,CAAC;WAgCI,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;CACxD"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3Uploader.js","sourceRoot":"","sources":["../src/S3Uploader.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAGxB,gEAA0B;AAE1B,oFAAoD;AAEpD,MAAqB,UAAU;IACtB,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,MAAe,EACf,YAAoB,EACpB,iBAAkD;QAElD,IAAI;YACF,sEAAsE;YAEtE,0BAA0B;YAC1B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;YAC5B,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEhF,uCAAuC;YACvC,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YACzE,MAAM,UAAU,CAAC,qBAAqB,EAAE,CAAC;YACzC,MAAM,kBAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpD,mDAAmD;YACnD,kEAAkE;YAClE,8CAA8C;YAC9C,MAAM,kBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAE3D,gBAAgB;YAChB,MAAM,2BAAiB,CAAC,SAAS,CAC/B,IAAI,CAAC,QAAQ,EACb,iBAAiB,EACjB,UAAU,EACV,iBAAiB,CAClB,CAAC;SACH;gBAAS;YACR,+DAA+D;YAC/D,MAAM,UAAU,CAAC,qBAAqB,EAAE,CAAC;SAC1C;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,qBAAqB;QACvC,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACvB,MAAM,kBAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;aACvD;SACF;QAAC,WAAM;YACN,aAAa;YACb,gDAAgD;YAChD,iDAAiD;SAClD;IACH,CAAC;;AAhDH,6BAmDC;AADyB,mBAAQ,GAAG,mBAAmB,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../src/config/Application.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAmBa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,KAAK,CAAS;IACtB,IAAW,IAAI,IAAI,MAAM,CAExB;IACD,IAKW,IAAI,CAAC,KAAK,EAAE,MAAM,EAE5B;IAOM,MAAM,EAAE,MAAM,CAAC;IAOf,WAAW,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,iBAAiB,CAAS;IAClC,IAKW,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAExC;IACD,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAOM,UAAU,EAAE,MAAM,CAAC;IAC1B,IAAW,SAAS,IAAI,MAAM,CAI7B;IAOM,YAAY,EAAE,MAAM,CAAC;IAOrB,SAAS,EAAE,MAAM,CAAC;IAOlB,wBAAwB,EAAE,MAAM,CAAC;IAOjC,OAAO,EAAE,MAAM,CAAC;IAOhB,WAAW,EAAE,MAAM,CAAC;CAC5B"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../../src/config/Application.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/config/Config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAmB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAED,qBAmBa,MAAO,YAAW,OAAO;WACtB,WAAW,IAAI,MAAM,EAAE;IAUrC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAU;IAClC,WAAkB,QAAQ,IAAI,OAAO,CAMpC;IAED,WAAkB,QAAQ,IAAI,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAU5D;IAWM,GAAG,EAAG,kBAAkB,CAAC;IAGzB,QAAQ,EAAG,eAAe,CAAC;IAG3B,SAAS,EAAG,gBAAgB,CAAC;CACrC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/config/Config.ts"],"names":[],"mappings":";;;;;AAAA,iFAA+D;AAC/D,sDAAgC;AAChC,4DAAsC;AACtC,2CAAuC;AACvC,kDAA+C;AAC/C,+CAAsE;AACtE,yCAA6D;AAC7D,2CAAgE;AA0BhE,IAAa,MAAM,cAAnB,MAAa,MAAM;IACV,MAAM,CAAC,WAAW;QACvB,MAAM,aAAa,GAAG;YACpB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe,QAAM,CAAC,QAAQ,OAAO;YACrC,eAAe,QAAM,CAAC,QAAQ,MAAM;SACrC,CAAC;QACF,OAAO,uBAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAGM,MAAM,KAAK,QAAQ;QACxB,IAAI,QAAM,CAAC,SAAS,KAAK,SAAS,EAAE;YAClC,MAAM,YAAY,GAAG,IAAI,sBAAS,CAAS,QAAM,CAAC,CAAC;YACnD,QAAM,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,QAAM,CAAC,WAAW,EAAE,CAAC,CAAC;SAC5D;QACD,OAAO,QAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,MAAM,KAAK,QAAQ;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC9C,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,MAAM,CAAC;SACf;aAAM,IAAI,OAAO,KAAK,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE;YAC9B,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAkBF,CAAA;AAPC;IADC,OAAO,CAAC,QAAQ,CAAC,+BAAiB,CAAC;;mCACJ;AAGhC;IADC,OAAO,CAAC,QAAQ,CAAC,yBAAc,CAAC;;wCACC;AAGlC;IADC,OAAO,CAAC,QAAQ,CAAC,2BAAe,CAAC;;yCACE;AA/CzB,MAAM;IAnBlB,OAAO,CAAC,MAAM,CAAC;QACd,+DAA+D;QAC/D,IAAI,EAAE,YAAY;QAElB,+DAA+D;QAC/D,gBAAgB,EAAE,QAAQ;QAE1B,2CAA2C;QAC3C,MAAM,EAAE;YACN,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB;QAED,6CAA6C;QAC7C,OAAO,EAAE;YACP,GAAG,EAAH,mCAAG;YACH,SAAS,EAAT,yCAAS;SACV;KACF,CAAC;GACW,MAAM,CAgDlB;AAhDY,wBAAM"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deployer.d.ts","sourceRoot":"","sources":["../../src/config/Deployer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAe,YAAW,eAAe;IAM7C,UAAU,EAAG,MAAM,CAAC;CAC5B"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deployer.js","sourceRoot":"","sources":["../../src/config/Deployer.ts"],"names":[],"mappings":";;;;AAAA,2CAAsC;AAMtC,MAAa,cAAc;CAO1B;AADC;IALC,qBAAQ,CAAC;QACR,GAAG,EAAE,kCAAkC;QACvC,OAAO,EAAE,oBAAoB;QAC7B,GAAG,EAAE,sBAAsB;KAC5B,CAAC;;kDACyB;AAN7B,wCAOC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStore.d.ts","sourceRoot":"","sources":["../../src/config/FileStore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAgB,YAAW,gBAAgB;IAM/C,aAAa,EAAG,MAAM,CAAC;CAC/B"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStore.js","sourceRoot":"","sources":["../../src/config/FileStore.ts"],"names":[],"mappings":";;;;AAAA,2CAAsC;AAMtC,MAAa,eAAe;CAO3B;AADC;IALC,qBAAQ,CAAC;QACR,GAAG,EAAE,gBAAgB;QACrB,OAAO,EAAE,mBAAmB;QAC5B,GAAG,EAAE,0BAA0B;KAChC,CAAC;;sDAC4B;AANhC,0CAOC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,6BAA6B,CAAC;AAErC,OAAO,kBAAkB,CAAC"}
@@ -7,20 +7,21 @@ require("source-map-support/register");
7
7
  // Used by ts-convict
8
8
  require("reflect-metadata");
9
9
  const child_process_1 = require("child_process");
10
- const fs = tslib_1.__importStar(require("fs/promises"));
10
+ const path_1 = require("path");
11
11
  const util = tslib_1.__importStar(require("util"));
12
12
  const lambda = tslib_1.__importStar(require("@aws-sdk/client-lambda"));
13
13
  const sts = tslib_1.__importStar(require("@aws-sdk/client-sts"));
14
14
  const commander_1 = tslib_1.__importDefault(require("commander"));
15
- const package_json_1 = tslib_1.__importDefault(require("../package.json"));
15
+ const fs_extra_1 = require("fs-extra");
16
16
  const Config_1 = require("./config/Config");
17
17
  const DeployClient_1 = tslib_1.__importDefault(require("./DeployClient"));
18
18
  const S3Uploader_1 = tslib_1.__importDefault(require("./S3Uploader"));
19
19
  const asyncSetTimeout = util.promisify(setTimeout);
20
20
  const asyncExec = util.promisify(child_process_1.exec);
21
21
  const program = new commander_1.default.Command();
22
+ const pkg = fs_extra_1.readJsonSync(path_1.join(__dirname, '..', 'package.json'));
22
23
  program
23
- .version(package_json_1.default.version)
24
+ .version(pkg.version)
24
25
  .option('-n, --new-version [version]', 'New version to apply')
25
26
  .option('-l, --leave', 'Leave a copy of the modifed files as .modified')
26
27
  .option('--deployer-lambda-name [name]', 'Name of the deployer lambda function')
@@ -123,7 +124,7 @@ class PublishTool {
123
124
  await asyncExec('serverless');
124
125
  if (config.app.serverlessNextRouterPath !== undefined) {
125
126
  console.log('Copying Serverless Next.js router to build output directory');
126
- await fs.copyFile(config.app.serverlessNextRouterPath, './.serverless_nextjs/index.js');
127
+ await fs_extra_1.promises.copyFile(config.app.serverlessNextRouterPath, './.serverless_nextjs/index.js');
127
128
  }
128
129
  // Docker, build, tag, push to ECR
129
130
  // Note: Need to already have AWS env vars set
@@ -135,7 +136,7 @@ class PublishTool {
135
136
  //
136
137
  // Check that Static Assets Folder exists
137
138
  try {
138
- const staticAssetsStats = await fs.stat(config.app.staticAssetsPath);
139
+ const staticAssetsStats = await fs_extra_1.promises.stat(config.app.staticAssetsPath);
139
140
  if (!staticAssetsStats.isDirectory()) {
140
141
  throw new Error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
141
142
  }
@@ -165,12 +166,12 @@ class PublishTool {
165
166
  // Put the old files back when succeeded or failed
166
167
  for (const fileToModify of this.FILES_TO_MODIFY) {
167
168
  try {
168
- const stats = await fs.stat(`${fileToModify.path}.original`);
169
+ const stats = await fs_extra_1.promises.stat(`${fileToModify.path}.original`);
169
170
  if (stats.isFile()) {
170
171
  // Remove the possibly modified file
171
- await fs.unlink(fileToModify.path);
172
+ await fs_extra_1.promises.unlink(fileToModify.path);
172
173
  // Move the original file back
173
- await fs.rename(`${fileToModify.path}.original`, fileToModify.path);
174
+ await fs_extra_1.promises.rename(`${fileToModify.path}.original`, fileToModify.path);
174
175
  }
175
176
  }
176
177
  catch (_a) {
@@ -182,14 +183,14 @@ class PublishTool {
182
183
  return { version, alias: `v${version.replace(/\./g, '_')}` };
183
184
  }
184
185
  async writeNewVersions(path, requiredVersions, leaveFiles) {
185
- const stats = await fs.stat(path);
186
+ const stats = await fs_extra_1.promises.stat(path);
186
187
  if (!stats.isFile) {
187
188
  return false;
188
189
  }
189
190
  // Make a backup of the file
190
- await fs.copyFile(path, `${path}.original`);
191
+ await fs_extra_1.promises.copyFile(path, `${path}.original`);
191
192
  // File exists, check that it has the required version strings
192
- let fileText = await fs.readFile(path, 'utf8');
193
+ let fileText = await fs_extra_1.promises.readFile(path, 'utf8');
193
194
  for (const key of Object.keys(requiredVersions)) {
194
195
  const placeHolder = key === 'version' ? '0.0.0' : 'v0_0_0';
195
196
  if (fileText.indexOf(placeHolder) === -1) {
@@ -202,11 +203,11 @@ class PublishTool {
202
203
  }
203
204
  }
204
205
  // Write the updated file contents
205
- await fs.writeFile(path, fileText, 'utf8');
206
+ await fs_extra_1.promises.writeFile(path, fileText, 'utf8');
206
207
  // Leave a copy of the modified file if requested
207
208
  if (leaveFiles) {
208
209
  // This copy will overwrite an existing file
209
- await fs.copyFile(path, `${path}.modified`);
210
+ await fs_extra_1.promises.copyFile(path, `${path}.modified`);
210
211
  }
211
212
  return true;
212
213
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilesExist.d.ts","sourceRoot":"","sources":["../../src/lib/FilesExist.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAU;WACD,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAWjE,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAUrE"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilesExist.js","sourceRoot":"","sources":["../../src/lib/FilesExist.ts"],"names":[],"mappings":";;;AAAA,uCAAsD;AAEtD,MAAa,UAAU;IACd,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAsB;QACzD,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,IAAI,MAAM,qBAAU,CAAC,IAAI,CAAC,EAAE;gBAC1B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,YAAsB;QACvD,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,IAAI,yBAAc,CAAC,IAAI,CAAC,EAAE;gBACxB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAtBD,gCAsBC"}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@pwrdrvr/microapps-publish",
3
- "version": "0.0.9",
3
+ "version": "0.0.15",
4
4
  "description": "Publish tool for deploying apps and updates",
5
- "main": "src/index.js",
5
+ "main": "dist/index.js",
6
6
  "source": "src/index.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
10
10
  "bin": {
11
- "microapps-publish": "src/index.js"
11
+ "microapps-publish": "dist/index.js"
12
12
  },
13
13
  "engineStrict": true,
14
14
  "engine": {
15
- "node": ">= 10.0.0"
15
+ "node": ">= 12.0.0"
16
16
  },
17
17
  "scripts": {
18
18
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -58,6 +58,6 @@
58
58
  "@types/js-yaml": "^4.0.1",
59
59
  "@types/mime-types": "^2.1.0",
60
60
  "@types/source-map-support": "^0.5.4",
61
- "typescript-cp": "^0.1.4"
61
+ "type-fest": "^0.20.2"
62
62
  }
63
63
  }
@@ -0,0 +1,100 @@
1
+ import * as lambda from '@aws-sdk/client-lambda';
2
+
3
+ // eslint-disable-next-line import/no-extraneous-dependencies,import/no-unresolved
4
+ import {
5
+ IDeployVersionPreflightRequest,
6
+ IDeployVersionPreflightResponse,
7
+ ICreateApplicationRequest,
8
+ IDeployerResponse,
9
+ IDeployVersionRequest,
10
+ } from '@pwrdrvr/microapps-deployer';
11
+ import { IConfig } from './config/Config';
12
+
13
+ export default class DeployClient {
14
+ static readonly _client = new lambda.LambdaClient({});
15
+ static readonly _decoder = new TextDecoder('utf-8');
16
+
17
+ public static async CreateApp(config: IConfig): Promise<void> {
18
+ const request = {
19
+ type: 'createApp',
20
+ appName: config.app.name,
21
+ displayName: config.app.name,
22
+ } as ICreateApplicationRequest;
23
+ const response = await this._client.send(
24
+ new lambda.InvokeCommand({
25
+ FunctionName: config.deployer.lambdaName,
26
+ Payload: Buffer.from(JSON.stringify(request)),
27
+ }),
28
+ );
29
+
30
+ if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
31
+ const dResponse = JSON.parse(
32
+ Buffer.from(response.Payload).toString('utf-8'),
33
+ ) as IDeployerResponse;
34
+ if (!(dResponse.statusCode === 201 || dResponse.statusCode === 200)) {
35
+ throw new Error(`App create failed: ${JSON.stringify(dResponse)}`);
36
+ }
37
+ } else {
38
+ throw new Error(`App Create - Lambda Invoke Failed: ${JSON.stringify(response)}`);
39
+ }
40
+ }
41
+
42
+ public static async DeployVersionPreflight(
43
+ config: IConfig,
44
+ ): Promise<{ exists: boolean; response: IDeployVersionPreflightResponse }> {
45
+ const request = {
46
+ type: 'deployVersionPreflight',
47
+ appName: config.app.name,
48
+ semVer: config.app.semVer,
49
+ } as IDeployVersionPreflightRequest;
50
+ const response = await this._client.send(
51
+ new lambda.InvokeCommand({
52
+ FunctionName: config.deployer.lambdaName,
53
+ Payload: Buffer.from(JSON.stringify(request)),
54
+ }),
55
+ );
56
+
57
+ if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
58
+ const dResponse = JSON.parse(
59
+ Buffer.from(response.Payload).toString('utf-8'),
60
+ ) as IDeployVersionPreflightResponse;
61
+ if (dResponse.statusCode === 404) {
62
+ console.log(`App/Version do not exist: ${config.app.name}/${config.app.semVer}`);
63
+ return { exists: false, response: dResponse };
64
+ } else {
65
+ return { exists: true, response: dResponse };
66
+ }
67
+ } else {
68
+ throw new Error(`Lambda call to DeployVersionPreflight failed: ${JSON.stringify(response)}`);
69
+ }
70
+ }
71
+
72
+ public static async DeployVersion(config: IConfig): Promise<void> {
73
+ const request = {
74
+ type: 'deployVersion',
75
+ appName: config.app.name,
76
+ semVer: config.app.semVer,
77
+ defaultFile: config.app.defaultFile,
78
+ lambdaARN: config.app.lambdaARN,
79
+ } as IDeployVersionRequest;
80
+ const response = await this._client.send(
81
+ new lambda.InvokeCommand({
82
+ FunctionName: config.deployer.lambdaName,
83
+ Payload: Buffer.from(JSON.stringify(request)),
84
+ }),
85
+ );
86
+
87
+ if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
88
+ const dResponse = JSON.parse(
89
+ Buffer.from(response.Payload).toString('utf-8'),
90
+ ) as IDeployerResponse;
91
+ if (dResponse.statusCode === 201) {
92
+ console.log(`Deploy succeeded: ${config.app.name}/${config.app.semVer}`);
93
+ } else {
94
+ console.log(`Deploy failed with: ${dResponse.statusCode}`);
95
+ }
96
+ } else {
97
+ throw new Error(`Lambda call to DeployVersion failed: ${JSON.stringify(response)}`);
98
+ }
99
+ }
100
+ }
@@ -0,0 +1,82 @@
1
+ //
2
+ // From: https://stackoverflow.com/a/65862128/878903
3
+ //
4
+
5
+ import { promises as fs, createReadStream } from 'fs';
6
+ import * as path from 'path';
7
+ import * as s3 from '@aws-sdk/client-s3';
8
+ import { Upload } from '@aws-sdk/lib-storage';
9
+ // eslint-disable-next-line import/no-extraneous-dependencies,import/no-unresolved
10
+ import { IDeployVersionPreflightResponse } from '@pwrdrvr/microapps-deployer';
11
+ import { contentType } from 'mime-types';
12
+ import pMap from 'p-map';
13
+
14
+ export default class S3TransferUtility {
15
+ public static async UploadDir(
16
+ s3Path: string,
17
+ destPrefixPath: string,
18
+ bucketName: string,
19
+ preflightResponse: IDeployVersionPreflightResponse,
20
+ ): Promise<void> {
21
+ // Use temp credentials for S3
22
+ const s3Client = new s3.S3Client({
23
+ credentials: {
24
+ accessKeyId: preflightResponse.awsCredentials.accessKeyId,
25
+ secretAccessKey: preflightResponse.awsCredentials.secretAccessKey,
26
+ sessionToken: preflightResponse.awsCredentials.sessionToken,
27
+ },
28
+ });
29
+
30
+ console.log('Uploading files to S3');
31
+ const files = (await S3TransferUtility.GetFiles(s3Path)) as string[];
32
+ const pathWithoutAppAndVer = path.join(s3Path, destPrefixPath);
33
+ for (const filePath of files) {
34
+ const relFilePath = path.relative(pathWithoutAppAndVer, filePath);
35
+ console.log(` ${relFilePath}`);
36
+ }
37
+
38
+ // Use p-map to limit upload parallelism
39
+ await pMap(
40
+ files,
41
+ async (filePath) => {
42
+ // Use 4 multi-part parallel uploads for items > 5 MB
43
+ const upload = new Upload({
44
+ client: s3Client,
45
+ leavePartsOnError: false,
46
+ params: {
47
+ Bucket: bucketName,
48
+ Key: path.relative(s3Path, filePath),
49
+ Body: createReadStream(filePath),
50
+ ContentType: contentType(path.basename(filePath)) || 'application/octet-stream',
51
+ CacheControl: 'max-age=86400; public',
52
+ },
53
+ });
54
+ await upload.done();
55
+ },
56
+ {
57
+ concurrency: 10,
58
+ },
59
+ // await s3.send(
60
+ // new S3.PutObjectCommand({
61
+ // Key: path.relative(s3Path, filePath),
62
+ // Bucket: bucketName,
63
+ // Body: createReadStream(filePath),
64
+ // ContentType: contentType(path.basename(filePath)) || 'application/octet-stream',
65
+ // CacheControl: 'max-age=86400; public',
66
+ // }),
67
+ );
68
+ }
69
+ // Recursive getFiles from
70
+ // https://stackoverflow.com/a/45130990/831465
71
+
72
+ private static async GetFiles(dir: string): Promise<string | string[]> {
73
+ const dirents = await fs.readdir(dir, { withFileTypes: true });
74
+ const files = await Promise.all(
75
+ dirents.map((dirent) => {
76
+ const res = path.resolve(dir, dirent.name);
77
+ return dirent.isDirectory() ? S3TransferUtility.GetFiles(res) : res;
78
+ }),
79
+ );
80
+ return Array.prototype.concat(...files);
81
+ }
82
+ }
@@ -0,0 +1,59 @@
1
+ import path from 'path';
2
+ // eslint-disable-next-line import/no-extraneous-dependencies,import/no-unresolved
3
+ import { IDeployVersionPreflightResponse } from '@pwrdrvr/microapps-deployer';
4
+ import fs from 'fs-extra';
5
+ import { IConfig } from './config/Config';
6
+ import S3TransferUtility from './S3TransferUtility';
7
+
8
+ export default class S3Uploader {
9
+ public static async Upload(
10
+ config: IConfig,
11
+ s3UploadPath: string,
12
+ preflightResponse: IDeployVersionPreflightResponse,
13
+ ): Promise<void> {
14
+ try {
15
+ //const destinationPrefix = `${config.app.name}/${config.app.semVer}`;
16
+
17
+ // Parse the S3 Source URI
18
+ const uri = new URL(s3UploadPath);
19
+ const bucketName = uri.host;
20
+ const destinationPrefix = uri.pathname.length >= 1 ? uri.pathname.slice(1) : '';
21
+
22
+ // Make a local root dir for the upload
23
+ const tempUploadPath = path.join(S3Uploader._tempDir, destinationPrefix);
24
+ await S3Uploader.removeTempDirIfExists();
25
+ await fs.mkdir(tempUploadPath, { recursive: true });
26
+
27
+ // Copy the files in the source dir to the root dir
28
+ // Note: It would be faster to move the files, then move them back
29
+ // FIXME: Use p-map for controlled parallelism
30
+ await fs.copy(config.app.staticAssetsPath, tempUploadPath);
31
+
32
+ // Do the upload
33
+ await S3TransferUtility.UploadDir(
34
+ this._tempDir,
35
+ destinationPrefix,
36
+ bucketName,
37
+ preflightResponse,
38
+ );
39
+ } finally {
40
+ // Delete the directory, now that it's uploaded or if we failed
41
+ await S3Uploader.removeTempDirIfExists();
42
+ }
43
+ }
44
+
45
+ public static async removeTempDirIfExists(): Promise<void> {
46
+ try {
47
+ const stats = await fs.stat(S3Uploader._tempDir);
48
+ if (stats.isDirectory()) {
49
+ await fs.rm(S3Uploader._tempDir, { recursive: true });
50
+ }
51
+ } catch {
52
+ // Don't care
53
+ // fs.stat will throw if file/dir does not exist
54
+ // Since we want the directory deleted this is ok
55
+ }
56
+ }
57
+
58
+ private static readonly _tempDir = './deploytool-temp';
59
+ }
@@ -0,0 +1,125 @@
1
+ import { url, ipaddress } from 'convict-format-with-validator';
2
+ import * as yaml from 'js-yaml';
3
+ import * as convict from 'ts-convict';
4
+
5
+ export interface IApplicationConfig {
6
+ name: string;
7
+ semVer: string;
8
+ defaultFile: string;
9
+ staticAssetsPath: string;
10
+ lambdaName: string;
11
+ lambdaARN: string;
12
+ awsAccountID: number;
13
+ awsRegion: string;
14
+ serverlessNextRouterPath: string;
15
+ ecrHost: string;
16
+ ecrRepoName: string;
17
+ }
18
+
19
+ @convict.Config({
20
+ // optional default file to load, no errors if it doesn't exist
21
+ file: './microapps.yml', // relative to NODE_PATH or cwd()
22
+
23
+ // optional parameter. Defaults to 'strict', can also be 'warn'
24
+ validationMethod: 'strict',
25
+
26
+ // optionally add parsers like yaml or toml
27
+ parser: {
28
+ extension: ['yml', 'yaml'],
29
+ parse: yaml.load,
30
+ },
31
+
32
+ //optional extra formats to use in validation
33
+ formats: {
34
+ url,
35
+ ipaddress,
36
+ },
37
+ })
38
+ export class ApplicationConfig implements IApplicationConfig {
39
+ private _name: string;
40
+ public get name(): string {
41
+ return this._name;
42
+ }
43
+ @convict.Property({
44
+ doc: 'Name of microapps app',
45
+ default: 'microapps-my-app',
46
+ env: 'APP_NAME',
47
+ })
48
+ public set name(value: string) {
49
+ this._name = value.toLowerCase();
50
+ }
51
+
52
+ @convict.Property({
53
+ doc: 'SemVer this version is to be published as',
54
+ default: '0.0.1',
55
+ env: 'APP_SEMVER',
56
+ })
57
+ public semVer: string;
58
+
59
+ @convict.Property({
60
+ doc: 'Default file to reference when loading the app with no version',
61
+ default: '',
62
+ env: 'APP_DEFAULT_FILE',
63
+ })
64
+ public defaultFile: string;
65
+
66
+ private _staticAssetsPath: string;
67
+ @convict.Property({
68
+ doc: 'Local path to static assets path to upload to S3',
69
+ default: './static/',
70
+ env: 'APP_STATIC_ASSETS_PATH',
71
+ })
72
+ public set staticAssetsPath(value: string) {
73
+ this._staticAssetsPath = value;
74
+ }
75
+ public get staticAssetsPath(): string {
76
+ return this._staticAssetsPath.replace(/\$SEMVER/, this.semVer);
77
+ }
78
+
79
+ @convict.Property({
80
+ doc: 'Local path to static assets path to upload to S3',
81
+ default: 'microapps-my-app',
82
+ env: 'APP_LAMBDA_NAME',
83
+ })
84
+ public lambdaName: string;
85
+ public get lambdaARN(): string {
86
+ return `arn:aws:lambda:${this.awsRegion}:${this.awsAccountID}:function:${
87
+ this.lambdaName
88
+ }:v${this.semVer.replace(/\./g, '_')}`;
89
+ }
90
+
91
+ @convict.Property({
92
+ doc: 'AWS Account ID to deploy to',
93
+ default: 0,
94
+ env: 'AWS_ACCOUNT_ID',
95
+ })
96
+ public awsAccountID: number;
97
+
98
+ @convict.Property({
99
+ doc: 'AWS Region to deploy to',
100
+ default: 'us-east-1',
101
+ env: 'AWS_REGION',
102
+ })
103
+ public awsRegion: string;
104
+
105
+ @convict.Property({
106
+ doc: 'Path to the serverless-nextjs-router index.js file',
107
+ default: './node_modules/@pwrdrvr/serverless-nextjs-router/lib/index.js',
108
+ env: 'SERVERLESS_NEXTJS_ROUTER_INDEX_JS',
109
+ })
110
+ public serverlessNextRouterPath: string;
111
+
112
+ @convict.Property({
113
+ doc: 'ECR Host for app',
114
+ default: '',
115
+ env: 'APP_ECR_HOST',
116
+ })
117
+ public ecrHost: string;
118
+
119
+ @convict.Property({
120
+ doc: 'ECR Repo Name for app',
121
+ default: '',
122
+ env: 'APP_ECR_REPO_NAME',
123
+ })
124
+ public ecrRepoName: string;
125
+ }