@nathapp/na-cli 1.0.0-rc.15 → 1.0.0-rc.17

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 (163) hide show
  1. package/.npm/_cacache/content-v2/sha512/16/1a/51cdff76ecc35075164fd09e432c87535e18cb6337944e62c0bbaf669d592c2c7f42258dc8b9278481b294922ec64199b45aa0e41b3cb18eed846460f6c0 +0 -0
  2. package/.npm/_cacache/content-v2/sha512/c2/9c/59b3d368c596891122462194f20c4698a65d0529203e141f5a262c9e98a84cc24c5083ade1e13d4a2605061e94ea3c33517269982ee82b46326506d5af44 +0 -0
  3. package/.npm/_cacache/content-v2/sha512/ec/63/ba1e08640397d81bd4d89cdc62d78ffb2bd7f9a1c70c969df35c0b92c67ec2282c6df716cd586ef217c85309251c8657d649edee2e694f7e281ebd122dcd +0 -0
  4. package/.npm/_cacache/content-v2/sha512/f3/ef/56a9e6db173a57f4e47e59ae8edbd6ac22881e44ccdc1ad00835da4c1c7c80835d1fd3969215505b704a867ff3d7c35123019faadbf6c4060dc3beeacadd +0 -0
  5. package/.npm/_cacache/index-v5/05/34/1929926becc54c1f69c0921ab74c461c1777ab3d43213900acd4779dbf27 +1 -1
  6. package/.npm/_cacache/index-v5/0b/57/19385728919a097d1777ef98285f6cdfca14b66511276b641ec4a3af64bc +1 -1
  7. package/.npm/_cacache/index-v5/0b/90/c147816be94e86ed9bbb4b9e20409e4791a8991fcfd41d7a44489dedd29b +1 -1
  8. package/.npm/_cacache/index-v5/0b/ac/1bc19a224468b5a9e4382b946d33bb4c236306c2cefe190e5e2db1ded98a +1 -1
  9. package/.npm/_cacache/index-v5/12/6d/f094b1c476935fbda8814b43ee001b439b1f793c265ee5bd97d566143fb4 +1 -1
  10. package/.npm/_cacache/index-v5/12/80/c192e66daf6ba49f528ae81b986857735e6d257bdf4b0b1758eb795cae9b +1 -1
  11. package/.npm/_cacache/index-v5/13/32/a5865acd35ae515cde972c2d6cbff2863e694975883870de78b62a80f30e +1 -1
  12. package/.npm/_cacache/index-v5/14/33/be443b6e6c3ef0ff8f09987bc62d5ef9e61259f3331c422182f6bb74fdeb +1 -1
  13. package/.npm/_cacache/index-v5/14/f7/87042931e5944467d47331c350feb4384bf9143ab6ceebf7108a55905843 +1 -1
  14. package/.npm/_cacache/index-v5/14/fa/f87baceab26935686548c742091e7014930673bc1f077574c54c4c6c2d2d +1 -1
  15. package/.npm/_cacache/index-v5/15/26/abf1072208668be6e34a4311ad25f34fc908c21abc17ef01b5836cef1879 +1 -1
  16. package/.npm/_cacache/index-v5/1a/fd/532a4c7bf52c908d567ded2bb11b0f3282f0733d0d079a5291c2f72e0077 +1 -1
  17. package/.npm/_cacache/index-v5/1b/15/2ed036cc76081b7f1bfb3aa59d491eb3b3602c9381ec8d81435ceecf56b5 +1 -1
  18. package/.npm/_cacache/index-v5/27/b7/7f36d855e73b72c900bef7ba44a2a553de3d77b218493b4ddb6ae6fce516 +1 -1
  19. package/.npm/_cacache/index-v5/27/cc/afd4aa090b087c509f17e75196209f498c916da50ee4e9f26bd8424fd6f7 +1 -1
  20. package/.npm/_cacache/index-v5/2d/80/b5e9ca2e40744e7fa089861626d2a29c62363c01729964f4cf0c3e8ee632 +1 -1
  21. package/.npm/_cacache/index-v5/2d/ed/7f785cb92982f557fdc81aec4081952ce428eb449dd91fa0867b6676fa17 +1 -1
  22. package/.npm/_cacache/index-v5/2e/30/64338ba8469bd5c48ab7843f9d06a83992a346cfd592194af9c6d4d6dc48 +1 -1
  23. package/.npm/_cacache/index-v5/2e/a8/503d5f11e5dcde5786e3973ff160d2acc4736af22f9cd5a883c26adc7824 +1 -1
  24. package/.npm/_cacache/index-v5/30/98/41b0d8db0052e964e4843260ec8a0b12f2541721317cd5ee90b07b6a4d59 +1 -1
  25. package/.npm/_cacache/index-v5/31/64/15cefe5f3b923ebb9c684b37db7451ccf335632aab377fa3c730ec2e79cd +1 -1
  26. package/.npm/_cacache/index-v5/31/ac/4d241faeb3fea9ec8318fd93dd55eb70a87cc8a6e3f849ccef9863882b4b +3 -3
  27. package/.npm/_cacache/index-v5/31/ca/a8c3ab0670811a3887ede187dcd3856d14272349a18f6844f7c8007cc05e +1 -1
  28. package/.npm/_cacache/index-v5/34/a0/f70f68dcf9baef2ff21f29fdd206513fe5b10736be36ddd2f65a654a8f23 +1 -1
  29. package/.npm/_cacache/index-v5/34/f7/8879c3cd1412a0890461590276aa13d0344cb4e09494a4b3d854a7c7660a +1 -1
  30. package/.npm/_cacache/index-v5/35/e5/adb97753b463aa67dc9f26f39e8a52f68bf467cf1187509be7da174c057d +1 -1
  31. package/.npm/_cacache/index-v5/37/53/b5dccfb634beb6de718b268b6434849f27d3cf60d426dc19472a642a3f01 +1 -1
  32. package/.npm/_cacache/index-v5/38/2e/fe53691fa43d2f5ac447c8a2431535ec49118be55bf483c6362d4f72c79b +1 -1
  33. package/.npm/_cacache/index-v5/3c/f6/26a7f7dccb969c764b8bdecb3667023c64bc1159e674fbeeca633c54964c +1 -1
  34. package/.npm/_cacache/index-v5/3d/dd/3e8c6b6c875addf2057fb5fa152fff0fab217f78a8e51c0aa457a925bf12 +1 -1
  35. package/.npm/_cacache/index-v5/3e/77/916dd3c99bb6e83a0217305b0a2a541f122d977edcb92fa6b58eed796c17 +1 -1
  36. package/.npm/_cacache/index-v5/40/62/d04e75208dec117f72a95a5989f81fac7565a530fd22f70ea5e3abc377c3 +2 -2
  37. package/.npm/_cacache/index-v5/42/89/e110619623b1c9111a6392de4b1a62a904fb08d0601f87b9c8e1d493f5d6 +1 -1
  38. package/.npm/_cacache/index-v5/46/5b/f3ce50d3f54a5d65ac316d3c71ef8a8f8bdb072b6dfabc2c69018c3e942a +1 -1
  39. package/.npm/_cacache/index-v5/48/17/0ecf04bc0839b23c609ec7bfea9d339fa2cc3ee5982716cf7465ffaea675 +1 -1
  40. package/.npm/_cacache/index-v5/53/aa/b41f4759346e1d3b6651322d78c7983a4a546cdd6c18c3eb56c944571e4b +1 -1
  41. package/.npm/_cacache/index-v5/57/4d/cdafdfd03e43ca95652cbbb0b23bbbbeef3e16fa307726cb2ae8a5658531 +1 -1
  42. package/.npm/_cacache/index-v5/58/c9/9f8c27572bf3034e8fa9cc74fc00878e45fa7d75d4570d4430e82bfb5ef3 +1 -1
  43. package/.npm/_cacache/index-v5/5a/8c/47e273da29b52c911f59eca44c62faa84be4bb59b1de259ba100ff968559 +1 -1
  44. package/.npm/_cacache/index-v5/5e/89/be4afbbaa5c56c070a74790be14bd112b9e1b3f251324d766264b2c5f880 +1 -1
  45. package/.npm/_cacache/index-v5/5e/e7/453bd89145eccf9d67f5797fb09e5a017b5b13f1ac45cb7b70bda45940ec +2 -2
  46. package/.npm/_cacache/index-v5/5f/57/67c3b0c63ea4198903509c050bb99de2eabd6a2fba583067c4f587dc25f7 +1 -1
  47. package/.npm/_cacache/index-v5/60/8c/b74a2ae1c6978d635a1a21438c553d956a762176742b2749d09db964bf4d +1 -1
  48. package/.npm/_cacache/index-v5/68/6b/1f834b2ea43c7a9d1ffd80eb09f9d44af0895dc31dc3955d4b4c797ea825 +1 -1
  49. package/.npm/_cacache/index-v5/6d/61/c9e7e8446341cea439547eb023fbf47c954ba932e6944a3fd50413c1e861 +1 -1
  50. package/.npm/_cacache/index-v5/6d/b3/82949bd186224f1f51cb3fabdad6a93aa6a64c685b395a36f0a34af15119 +1 -1
  51. package/.npm/_cacache/index-v5/6f/d8/170c71ac7185da1b8040f10243c7294ff9a667a27fffc3479ba2f222f014 +1 -1
  52. package/.npm/_cacache/index-v5/74/d3/f9a4984e5548c5f72b3dc858046781cc3a892b34b6b7e7c353fbc93aa060 +1 -1
  53. package/.npm/_cacache/index-v5/75/ec/5dd4c902abf3f9ae589620cd4fd5b6ccfe045b8abdfbfa050d1a5ba8c01e +1 -1
  54. package/.npm/_cacache/index-v5/77/be/4d3f23909fd5905444d34cb0ce78d5bf6ce157670ae6ed614389a2027d18 +1 -1
  55. package/.npm/_cacache/index-v5/7d/8f/423d7e791f7fedd6bef784f0f467761c619f209ce9c788f08b63e968a880 +1 -1
  56. package/.npm/_cacache/index-v5/80/da/c34ca077ec2051cad25b3313e4e75ff4ad2dc2b12a9c250cb9545c0adc4b +1 -1
  57. package/.npm/_cacache/index-v5/84/d7/a5acf52705a1beb66603196f4bc44e583052d0f1d5a23dfb5316da1811d3 +1 -1
  58. package/.npm/_cacache/index-v5/86/7a/c59a43ec4985d34346e5714968f7220d176ea3a61b55464a7fecae01ac47 +1 -1
  59. package/.npm/_cacache/index-v5/87/55/e56d34b37c3170079064597cabb288d076b0d0468eaba3b8a0cf8686ce1f +1 -1
  60. package/.npm/_cacache/index-v5/8a/c9/c10bf71d66461aba0899e81d7a146332c45dbbacb1693c38fc2e4e578e39 +3 -3
  61. package/.npm/_cacache/index-v5/8a/ee/e3e86b627c10a9fc4ed610c15792507293ba1c14e7ba839e22aec609f1e0 +1 -1
  62. package/.npm/_cacache/index-v5/8b/ee/c2ea22c4bf9c5ddcd0333850e543442de3364478847c7ebc382b1ff3a70d +2 -2
  63. package/.npm/_cacache/index-v5/8c/2d/fc95c0f3896963b4fe4b745b6d2bbc04a2a75f31f108ff740215559617f0 +1 -1
  64. package/.npm/_cacache/index-v5/8e/95/715914a073e3319f22dfec7ffac9df9f293d150c0d6723a60ce08ab7f735 +1 -1
  65. package/.npm/_cacache/index-v5/91/73/ad583fa49e5575064791f28a81fa97fa62a4c7483b74960a58010efa1e77 +2 -0
  66. package/.npm/_cacache/index-v5/92/a4/7b5bd924b74993fc2b0de1a458842881545ca2cc22f6bc104a0db4fafdab +1 -1
  67. package/.npm/_cacache/index-v5/96/3a/a15f6c4dc3aeb3fd89c0b7a8c3ba58cb31a9b72c98e3b11a8ef1647b537f +1 -1
  68. package/.npm/_cacache/index-v5/96/b2/def9b882b950a49a7096d71afd5fce3a6a9454795fc060b1901e41d44620 +1 -1
  69. package/.npm/_cacache/index-v5/98/64/01faddae5e2bf199c5f8953942897841c5634b1800e246226ea5489f4584 +1 -1
  70. package/.npm/_cacache/index-v5/99/a9/8e746181ef13bc400da207da412881206f4d2004d75453373f6ee7b25ffa +1 -1
  71. package/.npm/_cacache/index-v5/9a/fc/baddd71f459a50b3c710a007fa7d59fa62febef98033b7331374bf02db64 +1 -1
  72. package/.npm/_cacache/index-v5/9b/55/1bc87872916d09156d5c7056d7ac2b245e7a7638b817eb3dbeafa9d33be8 +1 -1
  73. package/.npm/_cacache/index-v5/9b/b8/d45062af43674e433f967d20768d308ed6ce195be6acadfb7cfd21d11e67 +1 -1
  74. package/.npm/_cacache/index-v5/9c/0e/3faaf557a9613fb7f09b5cecc63ebe78da10371a1f2f58b636f8dcb9a914 +1 -1
  75. package/.npm/_cacache/index-v5/9c/b1/fff150691ce095677426e98bb894621ce4a88097d4b2c5c342224e1852ae +1 -1
  76. package/.npm/_cacache/index-v5/9d/6b/339b9832e323abb280eb874ec64f59486423026430be7b1c2ec42ca7e1b7 +2 -0
  77. package/.npm/_cacache/index-v5/9d/eb/0927bbd589e18b447a3726f591019d6728da728f603e77a1ded3f78dc6eb +1 -1
  78. package/.npm/_cacache/index-v5/9f/43/3636172cbc03abf2262c921f9f71572e6b049aa3db8c65d166bcfe5aca5f +1 -1
  79. package/.npm/_cacache/index-v5/a0/9e/5b7b95cdee86846e4fbe92c9e16e0e7f337c77d2c12de9778522b15bed2e +1 -1
  80. package/.npm/_cacache/index-v5/a1/ff/6532bc014331c9b572482a4bd805bf54a7ff8b4ca179b1c811aff3dec690 +1 -1
  81. package/.npm/_cacache/index-v5/a7/11/13f3c5864a7e9d12ca50a19b99d77d88fbcebb1ceb7455eb7ff77f158b64 +1 -1
  82. package/.npm/_cacache/index-v5/aa/9b/8b6d9e0f45dde1c6af2a4fc211f9b3a74f14041dc04a8a20490a478660b2 +1 -1
  83. package/.npm/_cacache/index-v5/aa/c4/489c0e6a9e4cbd64a8acd4fbfda113e9dfdd114f464830471fda53fff0cd +1 -1
  84. package/.npm/_cacache/index-v5/ab/47/d7a88d46cb8996b726bc7ed9280b5eea26889ab7c848149032a6e8911e4b +1 -1
  85. package/.npm/_cacache/index-v5/ac/4c/71e880f5d5c742e0e3807e7f3c398e920dd019bbf723586f0a7342715580 +1 -1
  86. package/.npm/_cacache/index-v5/ac/86/c0732592365d753d382502d91754a3c88f8b20e22cc25a0327beb9429687 +1 -1
  87. package/.npm/_cacache/index-v5/b0/9b/1a1d76c3ad82dd54353bb8ac8397667df4c5db97e42abf0de3fab68065bb +1 -1
  88. package/.npm/_cacache/index-v5/b3/b3/05a8af0a671c32b41850c1223429fe74449cfcb4c7cac54a9c7c213dfcae +3 -3
  89. package/.npm/_cacache/index-v5/b3/ba/fbf7da5c8eb06d9cc72143e3d36d7f701447b4e0a221c40d4960e06c7296 +1 -1
  90. package/.npm/_cacache/index-v5/b5/5f/1a200e91b7580c5893016e1b1397b6a076ff51cc7c5d382c3b1f1e52edd5 +1 -1
  91. package/.npm/_cacache/index-v5/b6/a8/3bf06da815e92239da2bd4ef7322819b458ee23ae8db9f02dc9a3dca722f +1 -1
  92. package/.npm/_cacache/index-v5/b7/38/992d3e6c01fc9098d137f7dbccfcaa5f5124ba9c487e582e6e0d83f99d30 +1 -1
  93. package/.npm/_cacache/index-v5/b7/d6/b5986a5f5d44d726090a94a22a8dff7a7c391df4a4fa4862bb50b1da196b +1 -1
  94. package/.npm/_cacache/index-v5/ba/d5/f7d95a8e3571758f8b5d095a21909a8f6cdfe7fd2349f7f72b2801eef079 +1 -1
  95. package/.npm/_cacache/index-v5/bb/8a/9c0052bb21f628e48a1e8d25084ee4adb402eba28c747d0299ebf4c3185d +1 -1
  96. package/.npm/_cacache/index-v5/be/a3/c0779c8e0be92c748c91a7dad4e6f0fe57ba0158b6bb1bcfddd8fc56c934 +1 -1
  97. package/.npm/_cacache/index-v5/be/c2/aa68eca6cebd477430ae24727732ec08ee9fc9ef2482df77932eb2f413d9 +1 -1
  98. package/.npm/_cacache/index-v5/bf/7c/375aec77f76404d91225e72006a0105b2a6ec04bb02cfa365ebcd4a0232b +1 -1
  99. package/.npm/_cacache/index-v5/c0/15/8b360dbe06b62052f2a43702140af0bca66e2e4064d7d2016efb4a2a149a +1 -1
  100. package/.npm/_cacache/index-v5/c2/a4/488f71f39bc65742422faf2c74e3b330852ef2192dbb3198fed044e60c20 +1 -1
  101. package/.npm/_cacache/index-v5/c4/89/38b2ab5b89326ead12dbed7a2076caa44d1207dd6cdb3f9f93273843dcf5 +1 -1
  102. package/.npm/_cacache/index-v5/c4/ac/4511be3eecea50ee9cadc09a612f9be8598d7b29d5c8b1253c75fa283cc5 +1 -1
  103. package/.npm/_cacache/index-v5/c5/2d/90031096314e15f4fcc35c804c2180f88214a7851b531aa27bd64064f740 +1 -1
  104. package/.npm/_cacache/index-v5/c7/5e/2acc90bb8fd9d3150354ec8b2f7e7cc2c8e0e59efd575a1963f1ca66cbed +1 -1
  105. package/.npm/_cacache/index-v5/c9/f5/c4a24d8834c4e9523cc24e10c6db63876e3eecdb2cf33762b159e3a1e92f +1 -1
  106. package/.npm/_cacache/index-v5/cc/2d/3cc1e00b73d00c921b8f8c92faaae480a160fc63637ba7b098518db79e02 +1 -1
  107. package/.npm/_cacache/index-v5/cf/56/427919eefb09afe942b12902069325293191afa7d59ff0f2b016c402b4ec +1 -1
  108. package/.npm/_cacache/index-v5/d1/86/f4ec8df7e9b3ceb2ae6c610f3231b693689e2ce78bd03413adef8d029a63 +2 -0
  109. package/.npm/_cacache/index-v5/d3/ba/564670f99cd2d757d1ac6209834faf1ce9a94ed856243cf090249d9b2b38 +1 -1
  110. package/.npm/_cacache/index-v5/d5/f4/0913a74f5e223a4fe6108493dd3b03c2d47259df459926160659513c9ad3 +1 -1
  111. package/.npm/_cacache/index-v5/dd/03/456ce7d8bffee20c3acf7e18ef6501b637d59a6fa3fa7bac5ed160b6be3f +1 -1
  112. package/.npm/_cacache/index-v5/e3/6a/b90e45414a9e52cdf1e4a96698065357795b9400d7af079b0a75ee8fd76d +1 -1
  113. package/.npm/_cacache/index-v5/e7/16/c0952e37a6a02b506441a59ee6b0e7fa873a515247763df9dddd162bbcf0 +1 -1
  114. package/.npm/_cacache/index-v5/e8/50/601e38974398787a5a8a8b8d835e29447814cd68ff6fe2e9629738e124c6 +1 -1
  115. package/.npm/_cacache/index-v5/ee/47/02714e9e61ca394444a92772fe85340de8bd216b58f59e1af25d5618303f +1 -1
  116. package/.npm/_cacache/index-v5/ef/23/134a34866512795c8a5025d0b968f2e44b5be8ab3a05b400c089c32a272e +2 -0
  117. package/.npm/_cacache/index-v5/ef/74/026f830458505ca7ae44dac678900360af24ed6e76521eb12df5fadcf26f +1 -1
  118. package/.npm/_cacache/index-v5/f1/75/91238e32e2ac4d9c4976deec39a2e6ca85c0c678a4466a50ca4412272a7c +1 -1
  119. package/.npm/_cacache/index-v5/f2/1f/c662626ec8eafafa54476678b9f71799a74ee368f2b7845a6ec9f9174a4d +3 -3
  120. package/.npm/_cacache/index-v5/f5/a4/ca599571c5bcfc5351ca53c418a6cd9d162539528b1ed87a692a1677020e +1 -1
  121. package/.npm/_cacache/index-v5/f6/18/16e565c66306149a0b31bb2af01babb55bd65ef7cb85a8a11d486d933b60 +1 -1
  122. package/.npm/_cacache/index-v5/f8/f5/f04b833fa130e113a9093088ad108d8cf9b2b1d5a0336e48cbf0916b8686 +1 -1
  123. package/.npm/_cacache/index-v5/fa/88/31cbd6ca584e75edf3642c6f8b079c1f2b5eca1d7b2780ce2e86c24f1e84 +1 -1
  124. package/.npm/_cacache/index-v5/fb/ae/46c38299837b3b4dcee9dc45854a6901355864326b4e64c730727ca1c88a +1 -1
  125. package/.npm/_cacache/index-v5/fc/1c/958fc085ebdc42fa37d4985cba976a5cca21f678c751c968f8fe9b259455 +1 -1
  126. package/.npm/_cacache/index-v5/fd/2e/6ead8880f4d02a536a570e21b13b4e7c9700082833e556cd53e9e92bfd1b +1 -1
  127. package/.npm/_cacache/index-v5/fd/46/fa56121e15b7f090f8050d0c954bbc9452e4c7ddde82777b2e00552c4220 +1 -1
  128. package/dist/index.js +50 -2
  129. package/dist/index.js.map +1 -1
  130. package/dist/templates/db-schema/001_Schema.sql +1 -0
  131. package/dist/templates/db-schema/910_DB_Grant_User.sql +0 -0
  132. package/dist/templates/db-schema/910_DB_Grant_User.sql.example +9 -0
  133. package/dist/templates/db-schema/990_SAMPLE_Init_Data.sql.example +27 -0
  134. package/dist/templates/db-schema/DEV_MODE.txt +1 -0
  135. package/dist/templates/db-schema/Dockerfile +3 -0
  136. package/dist/templates/db-schema/GET_VERSION.sql +47 -0
  137. package/dist/templates/db-schema/Makefile +885 -0
  138. package/dist/templates/db-schema/README.md +106 -0
  139. package/dist/templates/db-schema/SET_VERSION.sql +5 -0
  140. package/dist/templates/db-schema/docker-compose.yaml +47 -0
  141. package/dist/templates/db-schema/package.json +3 -0
  142. package/dist/templates/db-schema/push.sh +0 -0
  143. package/dist/utils/env.js +146 -0
  144. package/dist/utils/env.js.map +1 -0
  145. package/dist/utils/template.js +33 -5
  146. package/dist/utils/template.js.map +1 -1
  147. package/package.json +4 -1
  148. package/src/index.ts +63 -15
  149. package/src/utils/env.ts +79 -0
  150. package/src/utils/template.ts +23 -5
  151. package/templates/db-schema/001_Schema.sql +1 -0
  152. package/templates/db-schema/910_DB_Grant_User.sql +0 -0
  153. package/templates/db-schema/910_DB_Grant_User.sql.example +9 -0
  154. package/templates/db-schema/990_SAMPLE_Init_Data.sql.example +27 -0
  155. package/templates/db-schema/DEV_MODE.txt +1 -0
  156. package/templates/db-schema/Dockerfile +3 -0
  157. package/templates/db-schema/GET_VERSION.sql +47 -0
  158. package/templates/db-schema/Makefile +885 -0
  159. package/templates/db-schema/README.md +106 -0
  160. package/templates/db-schema/SET_VERSION.sql +5 -0
  161. package/templates/db-schema/docker-compose.yaml +47 -0
  162. package/templates/db-schema/package.json +3 -0
  163. package/templates/db-schema/push.sh +0 -0
@@ -0,0 +1,106 @@
1
+ # DB Schema Report
2
+
3
+ DB Schema For Development Environment
4
+
5
+ Project Code: X43
6
+
7
+ ## File Naming Convention (Project Code: X43)
8
+ 001 - Schema level
9
+
10
+ 1XX - Table (auto generate from DEV_7XX)
11
+
12
+ 3XX - Init data (auto generate from DEV_890)
13
+
14
+ 5XX - Stored procedure (auto generate from DEV_8XX, except DEEV_890)
15
+
16
+ 6XX - Migration
17
+
18
+ DEV_7XX - Version patch**
19
+
20
+ DEV_8XX - Release patch**
21
+
22
+ DEV_890 - Release patch init data**
23
+
24
+ DEV_899 - Release patch grant user account access**
25
+
26
+ 910 - Grant user account access (auto generate from DEV_899)
27
+
28
+ 990 - Generate init data for file 3XX
29
+
30
+ ##### ** Maintain by developer
31
+ ##### ** Note: During version release, The 7XX, 8XX files will be created and clear after version released.
32
+ ##### ** If there is any new changes, developer should copy from the 3XX, 5XX, 910 files and rename it to DEV_8XX_*.sql
33
+ * File 3XX_*.sql --> DEV_890_*.sql
34
+ * File 5XX_*.sql --> DEV_8XX_*.sql
35
+ * File 910_*.sql --> DEV_899_*.sql
36
+
37
+ ## Release Version
38
+ 1. Create a release branch.
39
+ 2. Remove the DEV_MODE.txt to enable release mode.
40
+ 3. Developer will move the release content to new 7XX or 8XX files.
41
+ 4. Once the content has been confirmed, run `make test` to ensure no syntax error.
42
+ 5. Commit and create merge request to `master` branch.
43
+ 6. On the `master` branch, run `make release` to generate the 1XX, 3XX, 5XX, and 910 files. It will generate init data for 300 files by 990 file execution.
44
+ 7. Commit with commit message that contain `run-major-release`, `run-minor-release`, `run-patch-release`, or `run-release`. The `run-release` is an alias to `run-patch-release`.
45
+
46
+ ## Create Version Tag
47
+ Write commit message that contain `run-tag`, a pre-release version tag will be created.
48
+
49
+ ## View Full Script
50
+ `make view-init`
51
+
52
+ ## View Patch Script
53
+ `make view-patch FROM=<version> TO=<version>`
54
+
55
+ ## View Patch Script File
56
+ `make view-patch-file FROM=<version> TO=<version>`
57
+
58
+ ## Lint & Test Locally
59
+ `make test`
60
+
61
+ ##### ** In a development branch, the `DEV_MODE.txt` file should be created in order for the test process to use `DEV_7XX_*.sql` and `DEV_8XX_*.sql` files.
62
+
63
+ ##### ** Prerequisite: `docker`, `docker-compose` & `jq` must be installed
64
+
65
+ ## View All Version
66
+ `make versions`
67
+
68
+ ## Generate release tables, stored procedures, init data, and grant permission files
69
+ `make release`
70
+
71
+ ## Check duplicated stored procedure in 8XX file
72
+ `make dup`
73
+
74
+ ## MYSQL console
75
+ `make cli`
76
+
77
+ ## Initialization Process
78
+ Only range of files start with prefix (`001, 1XX, 3XX, 5XX, 6XX, 910`) will be include for the initialization process.
79
+
80
+ ## Patch Process
81
+ Only range of files start with prefix (`7XX`, `8XX`) will be include for the patch process.
82
+ The `7XX` is a `version patch` file, it should reflect the changes from previous version. Basically for Table changes only. Please note, 7XX & 8XX files (except 890 & ) will be auto-deleted once version has been released.
83
+ The `8XX` is a `release patch` file, it should reflect the changes of current release. Basically for SP changes
84
+ The `890` is a init data file
85
+ The `899` is for grant database user permission command
86
+
87
+ ## Developer work's
88
+ Tips: Easily lookup for your changes at any specific time range
89
+
90
+ ```
91
+ SELECT db,name, created,modified,definer
92
+ FROM mysql.proc
93
+ WHERE db like 'sig_%'
94
+ AND definer = 'ali@%'
95
+ order by modified desc;
96
+ ```
97
+
98
+ ## RollBack Script
99
+ Developer need to prepare a RB script for each new or going to modify database object if automation deployment failed we are still able to restore to current state.
100
+ Developer need to set prefix for all the rollback file with prefix (`8xx_RB`) and (`7xx_RB`)
101
+
102
+ ## Init Data Script
103
+ Init data script have to define with prefix (`890` or `990`)
104
+
105
+ ---
106
+ devbot chat: 13
@@ -0,0 +1,5 @@
1
+ USE `<%= masterDbName %>`;
2
+
3
+ # Install completed
4
+ INSERT INTO `release_version` (patch_id, release_desc, patch_end_date, status, cby, cdate)
5
+ VALUES ('{{VERSION}}', 'PIPELINE:{{CI_PIPELINE_URL}}', UTC_TIMESTAMP(), 1 /* Successful */, 'SYS', UTC_TIMESTAMP());
@@ -0,0 +1,47 @@
1
+ version: '2.1'
2
+
3
+ services:
4
+ mysql:
5
+ logging:
6
+ driver: none
7
+ image: registry-intl.cn-hongkong.aliyuncs.com/wkns/mysql:5.7.31
8
+ expose:
9
+ - 3306
10
+ environment:
11
+ MYSQL_ALLOW_EMPTY_PASSWORD: "1"
12
+
13
+ mysql8:
14
+ logging:
15
+ driver: none
16
+ image: registry-intl.cn-hongkong.aliyuncs.com/wkns/mysql:8
17
+ command: --default-authentication-plugin=mysql_native_password --log_bin_trust_function_creators=1
18
+ expose:
19
+ - 3306
20
+ environment:
21
+ MYSQL_ALLOW_EMPTY_PASSWORD: "1"
22
+
23
+ init:
24
+ build:
25
+ context: .
26
+ image: test-init
27
+ command: make test-init
28
+
29
+ patch:
30
+ build:
31
+ context: .
32
+ image: test-patch
33
+ command: make test-patch
34
+
35
+ sync:
36
+ build:
37
+ context: .
38
+ image: sync
39
+ command: make run-sync
40
+
41
+ release:
42
+ build:
43
+ context: .
44
+ image: release
45
+ command: make run-release
46
+ volumes:
47
+ - ./:/out
@@ -0,0 +1,3 @@
1
+ {
2
+ "version": "1.0.0"
3
+ }
File without changes
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.writeYamlToDotEnv = exports.writeDotEnvToYaml = void 0;
51
+ var fs = require("fs");
52
+ var dotenv = require("dotenv");
53
+ var yaml = require("js-yaml");
54
+ var path = require("path");
55
+ var writeDotEnvToYaml = function (inputPath, outputPath) { return __awaiter(void 0, void 0, void 0, function () {
56
+ var originalEnv, inputFullPath, env, envEntries, configEnv, yamlStr;
57
+ return __generator(this, function (_a) {
58
+ switch (_a.label) {
59
+ case 0:
60
+ originalEnv = __assign({}, process.env);
61
+ inputFullPath = path.resolve(inputPath);
62
+ return [4 /*yield*/, validateFile(inputFullPath)
63
+ // load environment variables from the .env file passed as argument
64
+ ];
65
+ case 1:
66
+ _a.sent();
67
+ // load environment variables from the .env file passed as argument
68
+ dotenv.config({ path: inputFullPath });
69
+ env = process.env;
70
+ envEntries = Object.entries(env)
71
+ .filter(function (_a) {
72
+ var key = _a[0];
73
+ return originalEnv[key] !== env[key];
74
+ })
75
+ .reduce(function (acc, _a) {
76
+ var key = _a[0], value = _a[1];
77
+ acc[key] = value;
78
+ return acc;
79
+ }, {});
80
+ configEnv = {
81
+ env: __assign({}, envEntries)
82
+ };
83
+ yamlStr = yaml.dump(configEnv);
84
+ // write the yaml to a .yaml file
85
+ fs.writeFileSync(path.resolve(outputPath), yamlStr);
86
+ return [2 /*return*/];
87
+ }
88
+ });
89
+ }); };
90
+ exports.writeDotEnvToYaml = writeDotEnvToYaml;
91
+ var writeYamlToDotEnv = function (inputPath, outputPath) { return __awaiter(void 0, void 0, void 0, function () {
92
+ var originalEnv, inputFullPath, yamlStr, config, envEntries, envStr;
93
+ return __generator(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0:
96
+ originalEnv = __assign({}, process.env);
97
+ inputFullPath = path.resolve(inputPath);
98
+ return [4 /*yield*/, validateFile(inputFullPath)
99
+ // read the yaml file
100
+ ];
101
+ case 1:
102
+ _a.sent();
103
+ yamlStr = fs.readFileSync(inputFullPath, 'utf8');
104
+ config = yaml.load(yamlStr);
105
+ ;
106
+ envEntries = Object.entries(config.env)
107
+ .filter(function (_a) {
108
+ var key = _a[0];
109
+ return originalEnv[key] !== config.env[key];
110
+ })
111
+ .map(function (_a) {
112
+ var key = _a[0], value = _a[1];
113
+ return "".concat(key, "=").concat(value);
114
+ });
115
+ envStr = envEntries.join('\n');
116
+ fs.writeFileSync(path.resolve(outputPath), envStr);
117
+ return [2 /*return*/];
118
+ }
119
+ });
120
+ }); };
121
+ exports.writeYamlToDotEnv = writeYamlToDotEnv;
122
+ var validateFile = function (filePath) { return __awaiter(void 0, void 0, void 0, function () {
123
+ var err_1;
124
+ return __generator(this, function (_a) {
125
+ switch (_a.label) {
126
+ case 0:
127
+ _a.trys.push([0, 2, , 3]);
128
+ return [4 /*yield*/, fs.promises.stat(filePath)];
129
+ case 1:
130
+ _a.sent();
131
+ return [3 /*break*/, 3];
132
+ case 2:
133
+ err_1 = _a.sent();
134
+ if (err_1.code === 'ENOENT') {
135
+ console.error("File ".concat(filePath, " not found"));
136
+ process.exit(1);
137
+ }
138
+ else {
139
+ throw err_1;
140
+ }
141
+ return [3 /*break*/, 3];
142
+ case 3: return [2 /*return*/];
143
+ }
144
+ });
145
+ }); };
146
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -84,6 +95,19 @@ function generateTemplate(templateDir, targetDirectory) {
84
95
  name: "run_install",
85
96
  type: "confirm",
86
97
  message: "Do you want to run npm install after template created?",
98
+ when: function (answer) {
99
+ var projectChoice = answer["template"];
100
+ return projectChoice !== "db-schema" || projectChoice !== "k8s-deployment";
101
+ }
102
+ },
103
+ {
104
+ name: "db_master",
105
+ type: "input",
106
+ message: "what is the master database name?",
107
+ when: function (answer) {
108
+ var projectChoice = answer["template"];
109
+ return projectChoice == "db-schema";
110
+ }
87
111
  },
88
112
  ];
89
113
  console.log("Welcome to ".concat(name, " version ").concat(version));
@@ -97,10 +121,14 @@ function generateTemplate(templateDir, targetDirectory) {
97
121
  // @ts-ignore
98
122
  var author = answers['author'];
99
123
  // @ts-ignore
100
- var runInstall = answers['run_install'];
124
+ var runInstall = answers['run_install'] || false;
125
+ var masterDbName = answers['db_master'] || "master";
101
126
  var templatePath = path.join(templateDir, projectChoice);
102
127
  var targetPath = path.join(targetDirectory, projectName);
103
128
  var templateConfig = getTemplateConfig(templatePath);
129
+ var params = {
130
+ masterDbName: masterDbName,
131
+ };
104
132
  var options = {
105
133
  projectName: projectName,
106
134
  templateName: projectChoice,
@@ -111,7 +139,7 @@ function generateTemplate(templateDir, targetDirectory) {
111
139
  if (!createProject(targetPath)) {
112
140
  return;
113
141
  }
114
- createDirectoryContents(targetDirectory, templatePath, projectName, templateConfig, author);
142
+ createDirectoryContents(targetDirectory, templatePath, projectName, templateConfig, author, params);
115
143
  if (runInstall && !postProcess(options)) {
116
144
  return;
117
145
  }
@@ -182,7 +210,7 @@ function postProcessNode(options) {
182
210
  return true;
183
211
  }
184
212
  var SKIP_FILES = ['node_modules', '.template.json'];
185
- function createDirectoryContents(targetDirectory, projectTemplatePath, projectName, config, author) {
213
+ function createDirectoryContents(targetDirectory, projectTemplatePath, projectName, config, author, params) {
186
214
  var filesToCreate = fs.readdirSync(projectTemplatePath);
187
215
  filesToCreate.forEach(function (file) {
188
216
  var origFilePath = path.join(projectTemplatePath, file);
@@ -194,14 +222,14 @@ function createDirectoryContents(targetDirectory, projectTemplatePath, projectNa
194
222
  var contents = fs.readFileSync(origFilePath, 'utf8');
195
223
  if (file === '.npmignore-rename')
196
224
  file = '.npmignore';
197
- contents = render(contents, { projectName: projectName, author: author });
225
+ contents = render(contents, __assign(__assign({}, params), { projectName: projectName, author: author }));
198
226
  var writePath = path.join(targetDirectory, projectName, file);
199
227
  fs.writeFileSync(writePath, contents, 'utf8');
200
228
  }
201
229
  else if (stats.isDirectory()) {
202
230
  fs.mkdirSync(path.join(targetDirectory, projectName, file));
203
231
  // recursive call
204
- createDirectoryContents(targetDirectory, path.join(projectTemplatePath, file), path.join(projectName, file), config, author);
232
+ createDirectoryContents(targetDirectory, path.join(projectTemplatePath, file), path.join(projectName, file), config, author, params);
205
233
  }
206
234
  });
207
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nathapp/na-cli",
3
- "version": "1.0.0-rc.15",
3
+ "version": "1.0.0-rc.17",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "start": "npm run build && node dist/index.js",
@@ -14,6 +14,7 @@
14
14
  "devDependencies": {
15
15
  "@types/ejs": "^3.1.1",
16
16
  "@types/inquirer": "^0.0.43",
17
+ "@types/js-yaml": "^4.0.5",
17
18
  "@types/node": "^18.11.18",
18
19
  "@types/shelljs": "^0.8.5",
19
20
  "@types/yargs": "^17.0.19",
@@ -22,8 +23,10 @@
22
23
  "typescript": "^4.3.5"
23
24
  },
24
25
  "dependencies": {
26
+ "dotenv": "^16.0.3",
25
27
  "ejs": "^3.1.8",
26
28
  "inquirer": "^6.2.0",
29
+ "js-yaml": "^4.1.0",
27
30
  "shelljs": "^0.8.5",
28
31
  "yargs": "^17.6.2"
29
32
  }
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  import * as path from 'path';
4
4
  import { generateTemplate } from './utils/template';
5
+ import { writeDotEnvToYaml, writeYamlToDotEnv } from './utils/env';
5
6
  import * as yargs from 'yargs';
6
7
  const { version } = require("../package.json");
7
8
 
@@ -12,20 +13,67 @@ async function runGenerateTemplate() {
12
13
  return generateTemplate(TEMPLATE_PATH, CURR_DIR)
13
14
  }
14
15
 
15
- yargs.version(version).command({
16
- command: 'generate',
17
- describe: 'generate project template',
18
- builder: (yargs) => yargs.options({}),
19
- handler: (argv: {}) => {
20
- return runGenerateTemplate()
21
- }
22
- }).command({
23
- command: 'gen',
24
- describe: 'generate project template, "generate" command alias',
25
- builder: (yargs) => yargs.options({}),
26
- handler: (argv: {}) => {
27
- return runGenerateTemplate()
28
- }
29
- }).help().alias("help", "h").showHelpOnFail(true);
16
+ yargs.version(version).help().alias("help", "h").showHelpOnFail(true)
17
+ .command({
18
+ command: 'generate',
19
+ describe: 'generate project template',
20
+ builder: (yargs) => yargs.options({}),
21
+ handler: (argv: {}) => {
22
+ return runGenerateTemplate()
23
+ }
24
+ }).command({
25
+ command: 'gen',
26
+ describe: 'generate project template, "generate" command alias',
27
+ builder: (yargs) => yargs.options({}),
28
+ handler: (argv: {}) => {
29
+ return runGenerateTemplate()
30
+ }
31
+ }).command({
32
+ command: 'env-yml',
33
+ describe: 'convert dotenv to yaml',
34
+ builder: (yargs) => yargs.options({
35
+ input: {
36
+ alias: 'i',
37
+ demand: false,
38
+ describe: "dotenv input, eg: .env, dev.env",
39
+ type: 'string',
40
+ default: '.env'
41
+ },
42
+ output: {
43
+ alias: ['o', 'out'],
44
+ demand: false,
45
+ describe: "yaml output, eg: .env.yaml, config.yaml",
46
+ type: 'string',
47
+ default: 'config.yaml'
48
+ }
49
+ }),
50
+ handler: (argv: any) => {
51
+ console.log(`converting .env to yaml`);
52
+ return writeDotEnvToYaml(argv.input, argv.output);
53
+ }
54
+ }).command({
55
+ command: 'yml-env',
56
+ describe: 'convert yaml to dotenv',
57
+ builder: (yargs) => yargs.options({
58
+ input: {
59
+ alias: 'i',
60
+ demand: false,
61
+ describe: "yaml input, eg: .env.yaml, config.yaml",
62
+ type: 'string',
63
+ default: 'config.yaml'
64
+ },
65
+ output: {
66
+ alias: ['o', 'out'],
67
+ demand: false,
68
+ describe: "dotenv output, eg: .env, dev.env",
69
+ type: 'string',
70
+ default: '.env'
71
+ }
72
+ }),
73
+ handler: (argv: any) => {
74
+ console.log(`converting yaml to .env`);
75
+ return writeYamlToDotEnv(argv.input, argv.output);
76
+ }
77
+ });
30
78
 
31
79
  yargs.parse();
@@ -0,0 +1,79 @@
1
+ import * as fs from 'fs';
2
+ import * as dotenv from 'dotenv';
3
+ import * as yaml from 'js-yaml';
4
+ import * as path from 'path';
5
+
6
+ export const writeDotEnvToYaml = async (inputPath: string, outputPath: string) => {
7
+
8
+ // take a snapshot of the environment variables before loading the .env file
9
+ const originalEnv = { ...process.env };
10
+
11
+ const inputFullPath = path.resolve(inputPath)
12
+
13
+ await validateFile(inputFullPath)
14
+
15
+ // load environment variables from the .env file passed as argument
16
+ dotenv.config({ path: inputFullPath });
17
+
18
+ // create an object with the environment variables
19
+ const env = process.env;
20
+
21
+ // filter out the system environment variables
22
+ const envEntries = Object.entries(env)
23
+ .filter(([key]) => originalEnv[key] !== env[key])
24
+ .reduce((acc, [key, value]) => {
25
+ acc[key] = value;
26
+ return acc;
27
+ }, {});
28
+
29
+ const configEnv = {
30
+ env: {
31
+ ...envEntries
32
+ }
33
+ }
34
+
35
+ // convert the object to yaml
36
+ const yamlStr = yaml.dump(configEnv);
37
+
38
+ // write the yaml to a .yaml file
39
+ fs.writeFileSync(path.resolve(outputPath), yamlStr);
40
+ }
41
+
42
+
43
+ export const writeYamlToDotEnv = async (inputPath: string, outputPath: string) => {
44
+ // take a snapshot of the environment variables before loading the yaml file
45
+ const originalEnv = { ...process.env };
46
+
47
+ const inputFullPath = path.resolve(inputPath)
48
+
49
+ await validateFile(inputFullPath)
50
+
51
+ // read the yaml file
52
+ const yamlStr = fs.readFileSync(inputFullPath, 'utf8');
53
+
54
+ // parse the yaml string into an object
55
+ const config = yaml.load(yamlStr) as { [key: string]: string };;
56
+
57
+ // filter out the system environment variables
58
+ const envEntries = Object.entries(config.env)
59
+ .filter(([key]) => originalEnv[key] !== config.env[key])
60
+ .map(([key, value]) => `${key}=${value}`);
61
+
62
+ const envStr = envEntries.join('\n');
63
+
64
+ fs.writeFileSync(path.resolve(outputPath), envStr);
65
+ }
66
+
67
+
68
+ const validateFile = async (filePath: string) => {
69
+ try {
70
+ await fs.promises.stat(filePath);
71
+ } catch (err) {
72
+ if (err.code === 'ENOENT') {
73
+ console.error(`File ${filePath} not found`);
74
+ process.exit(1);
75
+ } else {
76
+ throw err;
77
+ }
78
+ }
79
+ }