@launchfile/macos-dev 0.1.4 → 0.2.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.
Files changed (107) hide show
  1. package/dist/__tests__/bootstrap.test.d.ts +2 -0
  2. package/dist/__tests__/bootstrap.test.js +90 -0
  3. package/dist/__tests__/dry-run.test.js +21 -9
  4. package/dist/__tests__/env-writer.test.js +82 -8
  5. package/dist/bootstrap.d.ts +58 -0
  6. package/dist/bootstrap.js +221 -0
  7. package/dist/env-writer.d.ts +14 -11
  8. package/dist/env-writer.js +30 -3
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.js +1 -0
  11. package/dist/provider.js +30 -48
  12. package/package.json +8 -3
  13. package/CLAUDE.md +0 -37
  14. package/dist/__tests__/dry-run.test.d.ts.map +0 -1
  15. package/dist/__tests__/dry-run.test.js.map +0 -1
  16. package/dist/__tests__/env-writer.test.d.ts.map +0 -1
  17. package/dist/__tests__/env-writer.test.js.map +0 -1
  18. package/dist/__tests__/lockfile-detect.test.d.ts.map +0 -1
  19. package/dist/__tests__/lockfile-detect.test.js.map +0 -1
  20. package/dist/__tests__/port-allocator.test.d.ts.map +0 -1
  21. package/dist/__tests__/port-allocator.test.js.map +0 -1
  22. package/dist/__tests__/secret-generator.test.d.ts.map +0 -1
  23. package/dist/__tests__/secret-generator.test.js.map +0 -1
  24. package/dist/__tests__/state.test.d.ts.map +0 -1
  25. package/dist/__tests__/state.test.js.map +0 -1
  26. package/dist/cli.d.ts.map +0 -1
  27. package/dist/cli.js.map +0 -1
  28. package/dist/env-writer.d.ts.map +0 -1
  29. package/dist/env-writer.js.map +0 -1
  30. package/dist/health.d.ts.map +0 -1
  31. package/dist/health.js.map +0 -1
  32. package/dist/index.d.ts.map +0 -1
  33. package/dist/index.js.map +0 -1
  34. package/dist/lockfile-detect.d.ts.map +0 -1
  35. package/dist/lockfile-detect.js.map +0 -1
  36. package/dist/port-allocator.d.ts.map +0 -1
  37. package/dist/port-allocator.js.map +0 -1
  38. package/dist/prereqs.d.ts.map +0 -1
  39. package/dist/prereqs.js.map +0 -1
  40. package/dist/process-manager.d.ts.map +0 -1
  41. package/dist/process-manager.js.map +0 -1
  42. package/dist/provider.d.ts.map +0 -1
  43. package/dist/provider.js.map +0 -1
  44. package/dist/resources/index.d.ts.map +0 -1
  45. package/dist/resources/index.js.map +0 -1
  46. package/dist/resources/mysql.d.ts.map +0 -1
  47. package/dist/resources/mysql.js.map +0 -1
  48. package/dist/resources/postgres.d.ts.map +0 -1
  49. package/dist/resources/postgres.js.map +0 -1
  50. package/dist/resources/redis.d.ts.map +0 -1
  51. package/dist/resources/redis.js.map +0 -1
  52. package/dist/resources/sqlite.d.ts.map +0 -1
  53. package/dist/resources/sqlite.js.map +0 -1
  54. package/dist/resources/types.d.ts.map +0 -1
  55. package/dist/resources/types.js.map +0 -1
  56. package/dist/runtimes/bun.d.ts.map +0 -1
  57. package/dist/runtimes/bun.js.map +0 -1
  58. package/dist/runtimes/index.d.ts.map +0 -1
  59. package/dist/runtimes/index.js.map +0 -1
  60. package/dist/runtimes/node.d.ts.map +0 -1
  61. package/dist/runtimes/node.js.map +0 -1
  62. package/dist/runtimes/python.d.ts.map +0 -1
  63. package/dist/runtimes/python.js.map +0 -1
  64. package/dist/runtimes/ruby.d.ts.map +0 -1
  65. package/dist/runtimes/ruby.js.map +0 -1
  66. package/dist/runtimes/types.d.ts.map +0 -1
  67. package/dist/runtimes/types.js.map +0 -1
  68. package/dist/secret-generator.d.ts.map +0 -1
  69. package/dist/secret-generator.js.map +0 -1
  70. package/dist/shell.d.ts.map +0 -1
  71. package/dist/shell.js.map +0 -1
  72. package/dist/state.d.ts.map +0 -1
  73. package/dist/state.js.map +0 -1
  74. package/dist/storage.d.ts.map +0 -1
  75. package/dist/storage.js.map +0 -1
  76. package/src/__tests__/dry-run.test.ts +0 -157
  77. package/src/__tests__/env-writer.test.ts +0 -156
  78. package/src/__tests__/lockfile-detect.test.ts +0 -74
  79. package/src/__tests__/port-allocator.test.ts +0 -59
  80. package/src/__tests__/secret-generator.test.ts +0 -31
  81. package/src/__tests__/state.test.ts +0 -33
  82. package/src/cli.ts +0 -78
  83. package/src/env-writer.ts +0 -231
  84. package/src/health.ts +0 -80
  85. package/src/index.ts +0 -9
  86. package/src/lockfile-detect.ts +0 -48
  87. package/src/port-allocator.ts +0 -97
  88. package/src/prereqs.ts +0 -32
  89. package/src/process-manager.ts +0 -242
  90. package/src/provider.ts +0 -415
  91. package/src/resources/index.ts +0 -29
  92. package/src/resources/mysql.ts +0 -98
  93. package/src/resources/postgres.ts +0 -133
  94. package/src/resources/redis.ts +0 -58
  95. package/src/resources/sqlite.ts +0 -52
  96. package/src/resources/types.ts +0 -47
  97. package/src/runtimes/bun.ts +0 -25
  98. package/src/runtimes/index.ts +0 -24
  99. package/src/runtimes/node.ts +0 -71
  100. package/src/runtimes/python.ts +0 -42
  101. package/src/runtimes/ruby.ts +0 -55
  102. package/src/runtimes/types.ts +0 -16
  103. package/src/secret-generator.ts +0 -32
  104. package/src/shell.ts +0 -70
  105. package/src/state.ts +0 -92
  106. package/src/storage.ts +0 -67
  107. package/tsconfig.json +0 -18
@@ -1 +0,0 @@
1
- {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/resources/mysql.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAQzF,qBAAa,gBAAiB,YAAW,mBAAmB;IAC3D,QAAQ,CAAC,IAAI,WAAW;IAElB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,SAAS,CACd,GAAG,EAAE,qBAAqB,EAC1B,IAAI,EAAE,aAAa,EACnB,aAAa,CAAC,EAAE,aAAa,GAC3B,OAAO,CAAC;QAAE,UAAU,EAAE,kBAAkB,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAuD9D,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAelD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/resources/mysql.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/resources/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AASzF,qBAAa,mBAAoB,YAAW,mBAAmB;IAC9D,QAAQ,CAAC,IAAI,cAAc;IAErB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,SAAS,CACd,GAAG,EAAE,qBAAqB,EAC1B,IAAI,EAAE,aAAa,EACnB,aAAa,CAAC,EAAE,aAAa,GAC3B,OAAO,CAAC;QAAE,UAAU,EAAE,kBAAkB,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAmF9D,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAelD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/resources/postgres.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/resources/redis.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKzF,qBAAa,gBAAiB,YAAW,mBAAmB;IAC3D,QAAQ,CAAC,IAAI,WAAW;IAElB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,SAAS,CACd,GAAG,EAAE,qBAAqB,EAC1B,KAAK,EAAE,aAAa,EACpB,cAAc,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC;QAAE,UAAU,EAAE,kBAAkB,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IA8B9D,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAInD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/resources/redis.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,YAAY,GAAG,WAAW,CAAC;AAEjC,MAAM,OAAO,gBAAgB;IACnB,IAAI,GAAG,OAAO,CAAC;IAExB,KAAK,CAAC,SAAS;QACd,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,SAAS,CACd,GAA0B,EAC1B,KAAoB,EACpB,cAA8B;QAE9B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAClC,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC1C,CAAC;QACF,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC;QAC1B,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;QAE1C,MAAM,UAAU,GAAuB;YACtC,GAAG,EAAE,WAAW,YAAY,IAAI,IAAI,IAAI;YACxC,IAAI,EAAE,YAAY;YAClB,IAAI;YACJ,QAAQ,EAAE,EAAE;SACZ,CAAC;QAEF,MAAM,KAAK,GAAkB;YAC5B,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,OAAO;YACpB,IAAI;SACJ,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAqB;QAClC,0CAA0C;QAC1C,uEAAuE;IACxE,CAAC;CACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/resources/sqlite.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEzF,qBAAa,iBAAkB,YAAW,mBAAmB;IAC5D,QAAQ,CAAC,IAAI,YAAY;IAEnB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,SAAS,CACd,GAAG,EAAE,qBAAqB,EAC1B,IAAI,EAAE,aAAa,GACjB,OAAO,CAAC;QAAE,UAAU,EAAE,kBAAkB,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAyB9D,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAMlD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/resources/sqlite.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,MAAM,OAAO,iBAAiB;IACpB,IAAI,GAAG,QAAQ,CAAC;IAEzB,KAAK,CAAC,SAAS;QACd,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS,CACd,GAA0B,EAC1B,IAAmB;QAEnB,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvE,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAuB;YACtC,GAAG,EAAE,YAAY,MAAM,EAAE;YACzB,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,MAAM;SACZ,CAAC;QAEF,MAAM,KAAK,GAAkB;YAC5B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,MAAM;SACd,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAoB;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;CACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resources/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,8CAA8C;IAC9C,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B,iFAAiF;IACjF,SAAS,CACR,GAAG,EAAE,qBAAqB,EAC1B,IAAI,EAAE,aAAa,EACnB,aAAa,CAAC,EAAE,aAAa,GAC3B,OAAO,CAAC;QAAE,UAAU,EAAE,kBAAkB,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAErE,uDAAuD;IACvD,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/resources/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../../src/runtimes/bun.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,YAAa,YAAW,gBAAgB;IACpD,QAAQ,CAAC,OAAO,SAAS;IAEnB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK/D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAGjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/runtimes/bun.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,OAAO,YAAY;IACf,OAAO,GAAG,KAAK,CAAC;IAEzB,KAAK,CAAC,aAAa,CAAC,WAAmB;QACtC,0EAA0E;QAC1E,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC7B,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC9B,OAAO,EAAE,CAAC;IACX,CAAC;CACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtimes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAcnD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAElF;AAED,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtimes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,UAAU,GAA+C;IAC9D,IAAI,EAAE,IAAI,aAAa,EAAE;IACzB,GAAG,EAAE,IAAI,YAAY,EAAE;IACvB,IAAI,EAAE,IAAI,aAAa,EAAE;IACzB,MAAM,EAAE,IAAI,eAAe,EAAE;IAC7B,oCAAoC;CACpC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IACnD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/runtimes/node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,aAAc,YAAW,gBAAgB;IACrD,QAAQ,CAAC,OAAO,UAAU;IAEpB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAsB9D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAavC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAWjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/runtimes/node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,OAAO,aAAa;IAChB,OAAO,GAAG,MAAM,CAAC;IAE1B,KAAK,CAAC,aAAa,CAAC,UAAkB;QACrC,+DAA+D;QAC/D,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,OAAO;oBAAE,OAAO,OAAO,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACR,qBAAqB;YACtB,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACjF,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI;gBAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACR,kBAAkB;QACnB,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe;QAC5B,wCAAwC;QACxC,IAAI,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAChC,MAAM,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC9B,IAAI,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAED,2DAA2D;AAC3D,SAAS,aAAa,CAAC,MAAc;IACpC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC5B,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/runtimes/python.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,eAAgB,YAAW,gBAAgB;IACvD,QAAQ,CAAC,OAAO,YAAY;IAEtB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS9D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAUjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/runtimes/python.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,OAAO,eAAe;IAClB,OAAO,GAAG,QAAQ,CAAC;IAE5B,KAAK,CAAC,aAAa,CAAC,UAAkB;QACrC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5E,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,qCAAqC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC9B,IAAI,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,UAAU,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;YAC5D,CAAC;QACF,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../src/runtimes/ruby.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,aAAc,YAAW,gBAAgB;IACrD,QAAQ,CAAC,OAAO,UAAU;IAEpB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS9D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAWjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../src/runtimes/ruby.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,OAAO,aAAa;IAChB,OAAO,GAAG,MAAM,CAAC;IAE1B,KAAK,CAAC,aAAa,CAAC,UAAkB;QACrC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;YAC1E,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,qCAAqC,OAAO,IAAI,CAAC,CAAC;QAClF,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC9B,IAAI,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAED,SAAS,aAAa,CAAC,MAAc;IACpC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC5B,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtimes/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,0EAA0E;IAC1E,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE/D,8CAA8C;IAC9C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/runtimes/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret-generator.d.ts","sourceRoot":"","sources":["../src/secret-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;GAEG;AACH,wBAAsB,aAAa,CAClC,SAAS,EAAE,SAAS,EACpB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,IAAI,MAAM,CAGzC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret-generator.js","sourceRoot":"","sources":["../src/secret-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,SAAoB,EACpB,aAA2B;IAE3B,QAAQ,SAAS,EAAE,CAAC;QACnB,KAAK,QAAQ;YACZ,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9C,KAAK,MAAM;YACV,OAAO,UAAU,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;YACvF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACF,CAAC;AACF,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,gBAAgB;IAC/B,+DAA+D;IAC/D,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,KAAK,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,SAAS,GAAG;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/C,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAED,mDAAmD;AACnD,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjF"}
package/dist/shell.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,IAAI,MAAM,EAAoB,MAAM,oBAAoB,CAAC;AAgBtE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAC1B,OAAe,EACf,OAA+C,EAAE;IAEjD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,QAAQ,GAAgB;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;QAC3D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;QAChC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAC3B,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACnD,MAAM,MAAM,GAAgB;gBAC3B,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAChD,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;aAChD,CAAC;YAEF,2DAA2D;YAC3D,IAAI,KAAK,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACjC,MAAM,CACL,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;oBACxE,MAAM;iBACN,CAAC,CACF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,IAAgB;IAC9D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAaD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,0DAA0D;AAC1D,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAO/E;AAED,kCAAkC;AAClC,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAYjF;AAED,yBAAyB;AACzB,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrF;AAED,2CAA2C;AAC3C,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE"}
package/dist/state.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,EAClD,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAejC;AAED,kEAAkE;AAClE,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,EAClD,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CASf;AAED,oEAAoE;AACpE,wBAAsB,cAAc,CACnC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,OAAkD,EAClD,aAAqB,EACrB,UAAkB;IAElB,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,SAAS,GAA2B,EAAE,CAAC;IAE7C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,eAAe;QAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAE3E,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,OAAkD,EAClD,aAAqB,EACrB,UAAkB;IAElB,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;YAC1E,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;AACF,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,aAAqB,EACrB,UAAkB;IAElB,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE;QAC/D,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI;KACX,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE;QAC3D,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI;KACX,CAAC,CAAC;AACJ,CAAC"}
@@ -1,157 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { readFile } from "node:fs/promises";
3
- import { join } from "node:path";
4
- import { readLaunch } from "@launchfile/sdk";
5
- import {
6
- buildResolverContext,
7
- resolveComponentEnv,
8
- resolveGenerators,
9
- } from "../env-writer.js";
10
- import { getProvisioner } from "../resources/index.js";
11
- import type { ResourceProperties } from "../resources/types.js";
12
- import { allocatePorts } from "../port-allocator.js";
13
-
14
- const CATALOG_DIR = join(import.meta.dirname, "../../../../catalog/drafts");
15
-
16
- /**
17
- * Dry-run test: parse a catalog Launchfile, simulate provisioning,
18
- * resolve env vars, and verify the output makes sense.
19
- */
20
- describe("dry-run against catalog", () => {
21
- it("resolves miniflux Launchfile", async () => {
22
- const yaml = await readFile(join(CATALOG_DIR, "miniflux/Launchfile"), "utf8");
23
- const launch = readLaunch(yaml);
24
-
25
- expect(launch.name).toBe("miniflux");
26
- expect(Object.keys(launch.components)).toEqual(["default"]);
27
-
28
- const component = launch.components.default!;
29
-
30
- // Verify requires
31
- expect(component.requires).toHaveLength(1);
32
- expect(component.requires![0]!.type).toBe("postgres");
33
- expect(component.requires![0]!.set_env?.DATABASE_URL).toBe("$url");
34
-
35
- // Simulate provisioned postgres
36
- const resourceMap: Record<string, ResourceProperties> = {
37
- postgres: {
38
- url: "postgresql://launchfile_miniflux:secret@localhost:5432/launchfile_miniflux",
39
- host: "localhost",
40
- port: 5432,
41
- user: "launchfile_miniflux",
42
- password: "secret",
43
- name: "launchfile_miniflux",
44
- },
45
- };
46
-
47
- const ports = await allocatePorts(launch.components, "miniflux");
48
- const context = buildResolverContext(resourceMap, ports, {});
49
-
50
- const env = resolveComponentEnv(component, context, resourceMap);
51
- await resolveGenerators(component, env);
52
-
53
- // DATABASE_URL should be resolved from postgres $url
54
- expect(env.DATABASE_URL).toBe(
55
- "postgresql://launchfile_miniflux:secret@localhost:5432/launchfile_miniflux",
56
- );
57
- // Default env vars should be resolved
58
- expect(env.RUN_MIGRATIONS).toBe("1");
59
- expect(env.CREATE_ADMIN).toBe("1");
60
- expect(env.ADMIN_USERNAME).toBe("admin");
61
- // ADMIN_PASSWORD has generator: secret, so it should be generated
62
- expect(env.ADMIN_PASSWORD).toBeTruthy();
63
- expect(env.ADMIN_PASSWORD!.length).toBeGreaterThan(10);
64
- });
65
-
66
- it("resolves langfuse Launchfile", async () => {
67
- const yaml = await readFile(join(CATALOG_DIR, "langfuse/Launchfile"), "utf8");
68
- const launch = readLaunch(yaml);
69
-
70
- expect(launch.name).toBe("langfuse");
71
-
72
- for (const [name, component] of Object.entries(launch.components)) {
73
- // Every required resource should have a known provisioner
74
- for (const req of component.requires ?? []) {
75
- const provisioner = getProvisioner(req.type);
76
- expect(provisioner, `No provisioner for ${req.type} in ${name}`).toBeDefined();
77
- }
78
- }
79
- });
80
-
81
- it("resolves chatwoot multi-component Launchfile", async () => {
82
- const yaml = await readFile(join(CATALOG_DIR, "chatwoot/Launchfile"), "utf8");
83
- const launch = readLaunch(yaml);
84
-
85
- expect(launch.name).toBe("chatwoot");
86
- const componentNames = Object.keys(launch.components);
87
- expect(componentNames.length).toBeGreaterThan(1);
88
-
89
- // Simulate resources
90
- const resourceMap: Record<string, ResourceProperties> = {
91
- postgres: {
92
- url: "postgresql://user:pass@localhost:5432/chatwoot",
93
- host: "localhost",
94
- port: 5432,
95
- user: "user",
96
- password: "pass",
97
- name: "chatwoot",
98
- },
99
- redis: {
100
- url: "redis://localhost:6379/0",
101
- host: "localhost",
102
- port: 6379,
103
- },
104
- };
105
-
106
- const ports = await allocatePorts(launch.components, "chatwoot");
107
- const secrets: Record<string, string> = {};
108
-
109
- // Generate secrets from launch.secrets
110
- if (launch.secrets) {
111
- for (const [name] of Object.entries(launch.secrets)) {
112
- secrets[name] = `test-secret-${name}`;
113
- }
114
- }
115
-
116
- const context = buildResolverContext(resourceMap, ports, secrets);
117
-
118
- // Resolve env for each component — should not throw
119
- for (const [name, component] of Object.entries(launch.components)) {
120
- const env = resolveComponentEnv(component, context, resourceMap);
121
- await resolveGenerators(component, env);
122
- // Every component should have at least some env vars
123
- expect(Object.keys(env).length, `${name} should have env vars`).toBeGreaterThan(0);
124
- }
125
- });
126
-
127
- it("identifies unsupported resource types", async () => {
128
- // Check all catalog Launchfiles for resource types we support
129
- const { readdir } = await import("node:fs/promises");
130
- const apps = await readdir(CATALOG_DIR);
131
- const unsupported = new Set<string>();
132
-
133
- for (const app of apps) {
134
- try {
135
- const yaml = await readFile(join(CATALOG_DIR, app, "Launchfile"), "utf8");
136
- const launch = readLaunch(yaml);
137
-
138
- for (const component of Object.values(launch.components)) {
139
- for (const req of [...(component.requires ?? []), ...(component.supports ?? [])]) {
140
- if (!getProvisioner(req.type)) {
141
- unsupported.add(req.type);
142
- }
143
- }
144
- }
145
- } catch {
146
- // Skip apps that can't be parsed
147
- }
148
- }
149
-
150
- // Log unsupported types for visibility
151
- if (unsupported.size > 0) {
152
- console.log(` Unsupported resource types in catalog: ${[...unsupported].join(", ")}`);
153
- }
154
- // This test is informational — it doesn't fail
155
- expect(true).toBe(true);
156
- });
157
- });
@@ -1,156 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import {
3
- buildResolverContext,
4
- resolveComponentEnv,
5
- generateSecrets,
6
- } from "../env-writer.js";
7
- import type { NormalizedComponent, Secret } from "@launchfile/sdk";
8
- import type { ResourceProperties } from "../resources/types.js";
9
-
10
- describe("buildResolverContext", () => {
11
- it("builds context from resources, ports, and secrets", () => {
12
- const resources: Record<string, ResourceProperties> = {
13
- postgres: {
14
- url: "postgresql://user:pass@localhost:5432/mydb",
15
- host: "localhost",
16
- port: 5432,
17
- user: "user",
18
- password: "pass",
19
- name: "mydb",
20
- },
21
- };
22
- const ports = { backend: 3000, frontend: 3001 };
23
- const secrets = { "jwt-secret": "abc123" };
24
-
25
- const ctx = buildResolverContext(resources, ports, secrets);
26
-
27
- expect(ctx.components?.backend).toEqual({
28
- url: "http://localhost:3000",
29
- host: "localhost",
30
- port: 3000,
31
- });
32
- expect(ctx.resources?.postgres?.url).toBe("postgresql://user:pass@localhost:5432/mydb");
33
- expect(ctx.secrets?.["jwt-secret"]).toBe("abc123");
34
- });
35
- });
36
-
37
- describe("resolveComponentEnv", () => {
38
- it("resolves set_env from requires", () => {
39
- const component: NormalizedComponent = {
40
- requires: [
41
- {
42
- type: "postgres",
43
- set_env: {
44
- DATABASE_URL: "$url",
45
- DB_HOST: "$host",
46
- },
47
- },
48
- ],
49
- };
50
- const resourceMap: Record<string, ResourceProperties> = {
51
- postgres: {
52
- url: "postgresql://user:pass@localhost:5432/mydb",
53
- host: "localhost",
54
- port: 5432,
55
- },
56
- };
57
- const context = buildResolverContext(resourceMap, {}, {});
58
-
59
- const env = resolveComponentEnv(component, context, resourceMap);
60
-
61
- expect(env.DATABASE_URL).toBe("postgresql://user:pass@localhost:5432/mydb");
62
- expect(env.DB_HOST).toBe("localhost");
63
- });
64
-
65
- it("resolves component-level env defaults", () => {
66
- const component: NormalizedComponent = {
67
- env: {
68
- PORT: { default: "8080" },
69
- LOG_LEVEL: { default: "info" },
70
- },
71
- };
72
- const context = buildResolverContext({}, {}, {});
73
-
74
- const env = resolveComponentEnv(component, context, {});
75
-
76
- expect(env.PORT).toBe("8080");
77
- expect(env.LOG_LEVEL).toBe("info");
78
- });
79
-
80
- it("resolves cross-component references", () => {
81
- const component: NormalizedComponent = {
82
- env: {
83
- BACKEND_URL: { default: "$components.backend.url" },
84
- },
85
- };
86
- const context = buildResolverContext({}, { backend: 3000 }, {});
87
-
88
- const env = resolveComponentEnv(component, context, {});
89
-
90
- expect(env.BACKEND_URL).toBe("http://localhost:3000");
91
- });
92
-
93
- it("resolves secrets references", () => {
94
- const component: NormalizedComponent = {
95
- env: {
96
- SECRET_KEY: { default: "$secrets.my-key" },
97
- },
98
- };
99
- const context = buildResolverContext({}, {}, { "my-key": "super-secret" });
100
-
101
- const env = resolveComponentEnv(component, context, {});
102
-
103
- expect(env.SECRET_KEY).toBe("super-secret");
104
- });
105
-
106
- it("set_env takes precedence over component env", () => {
107
- const component: NormalizedComponent = {
108
- requires: [
109
- {
110
- type: "postgres",
111
- set_env: { DATABASE_URL: "$url" },
112
- },
113
- ],
114
- env: {
115
- DATABASE_URL: { default: "fallback" },
116
- },
117
- };
118
- const resourceMap: Record<string, ResourceProperties> = {
119
- postgres: {
120
- url: "postgresql://real-url",
121
- host: "localhost",
122
- port: 5432,
123
- },
124
- };
125
- const context = buildResolverContext(resourceMap, {}, {});
126
-
127
- const env = resolveComponentEnv(component, context, resourceMap);
128
-
129
- expect(env.DATABASE_URL).toBe("postgresql://real-url");
130
- });
131
- });
132
-
133
- describe("generateSecrets", () => {
134
- it("generates new secrets", async () => {
135
- const defs: Record<string, Secret> = {
136
- "jwt-secret": { generator: "secret" },
137
- "app-uuid": { generator: "uuid" },
138
- };
139
-
140
- const secrets = await generateSecrets(defs, {});
141
-
142
- expect(secrets["jwt-secret"]).toBeTruthy();
143
- expect(secrets["app-uuid"]).toMatch(/^[0-9a-f-]+$/);
144
- });
145
-
146
- it("reuses existing secrets", async () => {
147
- const defs: Record<string, Secret> = {
148
- "jwt-secret": { generator: "secret" },
149
- };
150
- const existing = { "jwt-secret": "keep-this" };
151
-
152
- const secrets = await generateSecrets(defs, existing);
153
-
154
- expect(secrets["jwt-secret"]).toBe("keep-this");
155
- });
156
- });
@@ -1,74 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { detectPackageManager } from "../lockfile-detect.js";
3
- import { mkdtemp, writeFile, rm } from "node:fs/promises";
4
- import { join } from "node:path";
5
- import { tmpdir } from "node:os";
6
-
7
- describe("detectPackageManager", () => {
8
- it("returns null for empty directory", async () => {
9
- const dir = await mkdtemp(join(tmpdir(), "lf-test-"));
10
- try {
11
- const pm = await detectPackageManager(dir);
12
- expect(pm).toBeNull();
13
- } finally {
14
- await rm(dir, { recursive: true });
15
- }
16
- });
17
-
18
- it("detects bun from bun.lockb", async () => {
19
- const dir = await mkdtemp(join(tmpdir(), "lf-test-"));
20
- try {
21
- await writeFile(join(dir, "bun.lockb"), "");
22
- const pm = await detectPackageManager(dir);
23
- expect(pm?.name).toBe("bun");
24
- expect(pm?.installCommand).toBe("bun install");
25
- } finally {
26
- await rm(dir, { recursive: true });
27
- }
28
- });
29
-
30
- it("detects yarn from yarn.lock", async () => {
31
- const dir = await mkdtemp(join(tmpdir(), "lf-test-"));
32
- try {
33
- await writeFile(join(dir, "yarn.lock"), "");
34
- const pm = await detectPackageManager(dir);
35
- expect(pm?.name).toBe("yarn");
36
- } finally {
37
- await rm(dir, { recursive: true });
38
- }
39
- });
40
-
41
- it("detects pnpm from pnpm-lock.yaml", async () => {
42
- const dir = await mkdtemp(join(tmpdir(), "lf-test-"));
43
- try {
44
- await writeFile(join(dir, "pnpm-lock.yaml"), "");
45
- const pm = await detectPackageManager(dir);
46
- expect(pm?.name).toBe("pnpm");
47
- } finally {
48
- await rm(dir, { recursive: true });
49
- }
50
- });
51
-
52
- it("detects bundler from Gemfile.lock", async () => {
53
- const dir = await mkdtemp(join(tmpdir(), "lf-test-"));
54
- try {
55
- await writeFile(join(dir, "Gemfile.lock"), "");
56
- const pm = await detectPackageManager(dir);
57
- expect(pm?.name).toBe("bundler");
58
- } finally {
59
- await rm(dir, { recursive: true });
60
- }
61
- });
62
-
63
- it("prefers bun over yarn when both present", async () => {
64
- const dir = await mkdtemp(join(tmpdir(), "lf-test-"));
65
- try {
66
- await writeFile(join(dir, "bun.lockb"), "");
67
- await writeFile(join(dir, "yarn.lock"), "");
68
- const pm = await detectPackageManager(dir);
69
- expect(pm?.name).toBe("bun");
70
- } finally {
71
- await rm(dir, { recursive: true });
72
- }
73
- });
74
- });
@@ -1,59 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { allocatePort, allocatePorts } from "../port-allocator.js";
3
-
4
- describe("allocatePort", () => {
5
- it("returns a port in the expected range", async () => {
6
- const port = await allocatePort("test-app", new Set());
7
- expect(port).toBeGreaterThanOrEqual(10_000);
8
- expect(port).toBeLessThan(20_000);
9
- });
10
-
11
- it("is deterministic for the same key", async () => {
12
- const port1 = await allocatePort("my-app", new Set());
13
- const port2 = await allocatePort("my-app", new Set());
14
- expect(port1).toBe(port2);
15
- });
16
-
17
- it("avoids ports already in use", async () => {
18
- const port1 = await allocatePort("collision-test", new Set());
19
- const port2 = await allocatePort("collision-test", new Set([port1]));
20
- expect(port2).not.toBe(port1);
21
- });
22
-
23
- it("produces different ports for different keys", async () => {
24
- const port1 = await allocatePort("app-a", new Set());
25
- const port2 = await allocatePort("app-b", new Set());
26
- // Not guaranteed but overwhelmingly likely for different inputs
27
- expect(port1).not.toBe(port2);
28
- });
29
- });
30
-
31
- describe("allocatePorts", () => {
32
- it("allocates ports for all components", async () => {
33
- const components = {
34
- backend: { provides: [{ port: 3000 }] },
35
- frontend: { provides: [{ port: 3001 }] },
36
- };
37
- const ports = await allocatePorts(components, "test-app");
38
- expect(ports.backend).toBeDefined();
39
- expect(ports.frontend).toBeDefined();
40
- expect(ports.backend).not.toBe(ports.frontend);
41
- });
42
-
43
- it("prefers the declared port if free", async () => {
44
- const components = {
45
- api: { provides: [{ port: 4567 }] },
46
- };
47
- const ports = await allocatePorts(components, "test-app");
48
- expect(ports.api).toBe(4567);
49
- });
50
-
51
- it("reuses saved ports when available", async () => {
52
- const components = {
53
- api: { provides: [{ port: 3000 }] },
54
- };
55
- const saved = { api: 9876 };
56
- const ports = await allocatePorts(components, "test-app", saved);
57
- expect(ports.api).toBe(9876);
58
- });
59
- });
@@ -1,31 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { generateValue, generatePassword } from "../secret-generator.js";
3
-
4
- describe("generateValue", () => {
5
- it("generates a base64url secret", async () => {
6
- const value = await generateValue("secret");
7
- expect(value).toMatch(/^[A-Za-z0-9_-]+$/);
8
- expect(value.length).toBeGreaterThan(20);
9
- });
10
-
11
- it("generates a UUID", async () => {
12
- const value = await generateValue("uuid");
13
- expect(value).toMatch(
14
- /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,
15
- );
16
- });
17
-
18
- it("generates unique values each time", async () => {
19
- const a = await generateValue("secret");
20
- const b = await generateValue("secret");
21
- expect(a).not.toBe(b);
22
- });
23
- });
24
-
25
- describe("generatePassword", () => {
26
- it("generates a URL-safe password", () => {
27
- const pw = generatePassword();
28
- expect(pw).toMatch(/^[A-Za-z0-9_-]+$/);
29
- expect(pw.length).toBeGreaterThan(10);
30
- });
31
- });