@start9labs/start-sdk 0.4.0-beta.2 → 0.4.0-beta.21

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 (155) hide show
  1. package/base/lib/Effects.d.ts +4 -22
  2. package/base/lib/actions/index.d.ts +5 -5
  3. package/base/lib/actions/index.js.map +1 -1
  4. package/base/lib/actions/input/builder/inputSpec.d.ts +10 -25
  5. package/base/lib/actions/input/builder/inputSpec.js +0 -17
  6. package/base/lib/actions/input/builder/inputSpec.js.map +1 -1
  7. package/base/lib/actions/input/builder/list.d.ts +8 -23
  8. package/base/lib/actions/input/builder/list.js +0 -17
  9. package/base/lib/actions/input/builder/list.js.map +1 -1
  10. package/base/lib/actions/input/builder/value.d.ts +318 -53
  11. package/base/lib/actions/input/builder/value.js +280 -17
  12. package/base/lib/actions/input/builder/value.js.map +1 -1
  13. package/base/lib/actions/input/builder/variants.d.ts +8 -23
  14. package/base/lib/actions/input/builder/variants.js +0 -17
  15. package/base/lib/actions/input/builder/variants.js.map +1 -1
  16. package/base/lib/actions/input/inputSpecConstants.d.ts +6 -6
  17. package/base/lib/actions/input/inputSpecConstants.js.map +1 -1
  18. package/base/lib/actions/setupActions.d.ts +10 -11
  19. package/base/lib/actions/setupActions.js +24 -11
  20. package/base/lib/actions/setupActions.js.map +1 -1
  21. package/base/lib/dependencies/setupDependencies.d.ts +1 -3
  22. package/base/lib/dependencies/setupDependencies.js +3 -12
  23. package/base/lib/dependencies/setupDependencies.js.map +1 -1
  24. package/base/lib/index.d.ts +1 -0
  25. package/base/lib/index.js +2 -1
  26. package/base/lib/index.js.map +1 -1
  27. package/base/lib/inits/index.d.ts +2 -0
  28. package/base/lib/inits/index.js +19 -0
  29. package/base/lib/inits/index.js.map +1 -0
  30. package/base/lib/inits/setupInit.d.ts +11 -0
  31. package/base/lib/inits/setupInit.js +69 -0
  32. package/base/lib/inits/setupInit.js.map +1 -0
  33. package/base/lib/inits/setupUninit.d.ts +7 -0
  34. package/base/lib/inits/setupUninit.js +14 -0
  35. package/base/lib/inits/setupUninit.js.map +1 -0
  36. package/base/lib/interfaces/setupInterfaces.d.ts +2 -4
  37. package/base/lib/interfaces/setupInterfaces.js +8 -19
  38. package/base/lib/interfaces/setupInterfaces.js.map +1 -1
  39. package/base/lib/osBindings/AddCategoryParams.d.ts +0 -2
  40. package/base/lib/osBindings/AddPackageToCategoryParams.d.ts +5 -0
  41. package/base/lib/osBindings/AddPackageToCategoryParams.js +3 -0
  42. package/base/lib/osBindings/AddPackageToCategoryParams.js.map +1 -0
  43. package/base/lib/osBindings/Category.d.ts +0 -2
  44. package/base/lib/osBindings/Category.js +1 -0
  45. package/base/lib/osBindings/Category.js.map +1 -1
  46. package/base/lib/osBindings/FileType.d.ts +1 -0
  47. package/base/lib/osBindings/{UnsetPublicParams.js → FileType.js} +1 -1
  48. package/base/lib/osBindings/FileType.js.map +1 -0
  49. package/base/lib/osBindings/GetOsVersionParams.d.ts +4 -3
  50. package/base/lib/osBindings/GetPackageParams.d.ts +1 -1
  51. package/base/lib/osBindings/MainStatus.d.ts +0 -2
  52. package/base/lib/osBindings/MountTarget.d.ts +2 -0
  53. package/base/lib/osBindings/PackageDataEntry.d.ts +1 -2
  54. package/base/lib/osBindings/RemoveAdminParams.d.ts +4 -0
  55. package/base/lib/osBindings/RemoveAdminParams.js +3 -0
  56. package/base/lib/osBindings/RemoveAdminParams.js.map +1 -0
  57. package/base/lib/osBindings/RemoveAssetParams.d.ts +4 -0
  58. package/base/lib/osBindings/{NetworkInterfaceSetPublicParams.js → RemoveAssetParams.js} +1 -1
  59. package/base/lib/osBindings/RemoveAssetParams.js.map +1 -0
  60. package/base/lib/osBindings/RemovePackageFromCategoryParams.d.ts +5 -0
  61. package/base/lib/osBindings/RemovePackageFromCategoryParams.js +3 -0
  62. package/base/lib/osBindings/RemovePackageFromCategoryParams.js.map +1 -0
  63. package/base/lib/osBindings/RemovePackageParams.d.ts +6 -0
  64. package/base/lib/osBindings/RemovePackageParams.js +3 -0
  65. package/base/lib/osBindings/RemovePackageParams.js.map +1 -0
  66. package/base/lib/osBindings/index.d.ts +6 -3
  67. package/base/lib/types.d.ts +20 -33
  68. package/base/lib/types.js +8 -0
  69. package/base/lib/types.js.map +1 -1
  70. package/base/lib/util/GetSystemSmtp.js +7 -2
  71. package/base/lib/util/GetSystemSmtp.js.map +1 -1
  72. package/base/lib/util/getServiceInterface.d.ts +10 -0
  73. package/base/lib/util/getServiceInterface.js +41 -1
  74. package/base/lib/util/getServiceInterface.js.map +1 -1
  75. package/base/lib/util/getServiceInterfaces.js +6 -1
  76. package/base/lib/util/getServiceInterfaces.js.map +1 -1
  77. package/base/lib/util/index.d.ts +0 -1
  78. package/base/lib/util/index.js +1 -3
  79. package/base/lib/util/index.js.map +1 -1
  80. package/package/lib/StartSdk.d.ts +106 -546
  81. package/package/lib/StartSdk.js +81 -410
  82. package/package/lib/StartSdk.js.map +1 -1
  83. package/package/lib/backup/Backups.d.ts +15 -3
  84. package/package/lib/backup/Backups.js +47 -5
  85. package/package/lib/backup/Backups.js.map +1 -1
  86. package/package/lib/backup/setupBackups.d.ts +5 -2
  87. package/package/lib/backup/setupBackups.js +7 -5
  88. package/package/lib/backup/setupBackups.js.map +1 -1
  89. package/package/lib/health/HealthCheck.js +1 -1
  90. package/package/lib/health/HealthCheck.js.map +1 -1
  91. package/package/lib/health/checkFns/runHealthScript.d.ts +2 -1
  92. package/package/lib/health/checkFns/runHealthScript.js +1 -1
  93. package/package/lib/health/checkFns/runHealthScript.js.map +1 -1
  94. package/package/lib/index.d.ts +0 -3
  95. package/package/lib/index.js +1 -8
  96. package/package/lib/index.js.map +1 -1
  97. package/package/lib/inits/index.d.ts +2 -3
  98. package/package/lib/inits/index.js +16 -3
  99. package/package/lib/inits/index.js.map +1 -1
  100. package/package/lib/inits/setupInit.d.ts +7 -13
  101. package/package/lib/inits/setupInit.js +22 -48
  102. package/package/lib/inits/setupInit.js.map +1 -1
  103. package/package/lib/inits/setupInstall.d.ts +10 -10
  104. package/package/lib/inits/setupInstall.js.map +1 -1
  105. package/package/lib/inits/setupUninit.d.ts +7 -0
  106. package/package/lib/inits/setupUninit.js +14 -0
  107. package/package/lib/inits/setupUninit.js.map +1 -0
  108. package/package/lib/inits/setupUninstall.d.ts +5 -5
  109. package/package/lib/inits/setupUninstall.js.map +1 -1
  110. package/package/lib/mainFn/CommandController.d.ts +4 -13
  111. package/package/lib/mainFn/CommandController.js +28 -49
  112. package/package/lib/mainFn/CommandController.js.map +1 -1
  113. package/package/lib/mainFn/Daemon.d.ts +13 -14
  114. package/package/lib/mainFn/Daemon.js +44 -12
  115. package/package/lib/mainFn/Daemon.js.map +1 -1
  116. package/package/lib/mainFn/Daemons.d.ts +34 -33
  117. package/package/lib/mainFn/Daemons.js +30 -10
  118. package/package/lib/mainFn/Daemons.js.map +1 -1
  119. package/package/lib/mainFn/HealthDaemon.d.ts +6 -6
  120. package/package/lib/mainFn/HealthDaemon.js +30 -14
  121. package/package/lib/mainFn/HealthDaemon.js.map +1 -1
  122. package/package/lib/mainFn/Mounts.d.ts +38 -43
  123. package/package/lib/mainFn/Mounts.js +19 -48
  124. package/package/lib/mainFn/Mounts.js.map +1 -1
  125. package/package/lib/mainFn/Oneshot.d.ts +21 -0
  126. package/package/lib/mainFn/Oneshot.js +31 -0
  127. package/package/lib/mainFn/Oneshot.js.map +1 -0
  128. package/package/lib/mainFn/index.d.ts +1 -1
  129. package/package/lib/store/getStore.js +7 -2
  130. package/package/lib/store/getStore.js.map +1 -1
  131. package/package/lib/test/inputSpecBuilder.test.js +0 -8
  132. package/package/lib/test/inputSpecBuilder.test.js.map +1 -1
  133. package/package/lib/test/output.d.ts +2 -38
  134. package/package/lib/test/output.sdk.d.ts +239 -887
  135. package/package/lib/test/output.sdk.js +0 -1
  136. package/package/lib/test/output.sdk.js.map +1 -1
  137. package/package/lib/util/Drop.d.ts +1 -0
  138. package/package/lib/util/Drop.js +17 -4
  139. package/package/lib/util/Drop.js.map +1 -1
  140. package/package/lib/util/GetSslCertificate.js +7 -2
  141. package/package/lib/util/GetSslCertificate.js.map +1 -1
  142. package/package/lib/util/SubContainer.d.ts +160 -44
  143. package/package/lib/util/SubContainer.js +215 -99
  144. package/package/lib/util/SubContainer.js.map +1 -1
  145. package/package/lib/util/fileHelper.d.ts +41 -15
  146. package/package/lib/util/fileHelper.js +72 -27
  147. package/package/lib/util/fileHelper.js.map +1 -1
  148. package/package/lib/version/VersionGraph.d.ts +20 -5
  149. package/package/lib/version/VersionGraph.js +85 -18
  150. package/package/lib/version/VersionGraph.js.map +1 -1
  151. package/package.json +10 -11
  152. package/base/lib/osBindings/NetworkInterfaceSetPublicParams.d.ts +0 -4
  153. package/base/lib/osBindings/NetworkInterfaceSetPublicParams.js.map +0 -1
  154. package/base/lib/osBindings/UnsetPublicParams.d.ts +0 -3
  155. package/base/lib/osBindings/UnsetPublicParams.js.map +0 -1
@@ -46,6 +46,5 @@ exports.sdk = StartSdk_1.StartSdk.of()
46
46
  },
47
47
  },
48
48
  }))
49
- .withStore()
50
49
  .build(true);
51
50
  //# sourceMappingURL=output.sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.sdk.js","sourceRoot":"","sources":["../../../../package/lib/test/output.sdk.ts"],"names":[],"mappings":";;;AACA,0CAAsC;AACtC,6DAAyD;AAI5C,QAAA,GAAG,GAAG,mBAAQ,CAAC,EAAE,EAAE;KAC7B,YAAY,CACX,IAAA,6BAAa,EAAC;IACZ,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;KACT;IACD,UAAU,EAAE,EAAE;IACd,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,SAAS,EAAE,oBAAoB;aAChC;YACD,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC3B,gBAAgB,EAAE,SAAS;SAC5B;KACF;IACD,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;KACX;IACD,YAAY,EAAE;QACZ,aAAa,EAAE;YACb,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,sCAAsC;SAC7C;KACF;CACF,CAAC,CACH;KACA,SAAS,EAAyC;KAClD,KAAK,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"output.sdk.js","sourceRoot":"","sources":["../../../../package/lib/test/output.sdk.ts"],"names":[],"mappings":";;;AAAA,0CAAsC;AACtC,6DAAyD;AAI5C,QAAA,GAAG,GAAG,mBAAQ,CAAC,EAAE,EAAE;KAC7B,YAAY,CACX,IAAA,6BAAa,EAAC;IACZ,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;KACT;IACD,UAAU,EAAE,EAAE;IACd,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,SAAS,EAAE,oBAAoB;aAChC;YACD,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC3B,gBAAgB,EAAE,SAAS;SAC5B;KACF;IACD,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;KACX;IACD,YAAY,EAAE;QACZ,aAAa,EAAE;YACb,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,sCAAsC;SAC7C;KACF;CACF,CAAC,CACH;KACA,KAAK,CAAC,IAAI,CAAC,CAAA"}
@@ -5,6 +5,7 @@ export declare abstract class Drop {
5
5
  private id;
6
6
  private ref;
7
7
  protected constructor();
8
+ protected register(): void;
8
9
  protected weak(): this;
9
10
  abstract onDrop(): void;
10
11
  drop(): void;
@@ -5,9 +5,20 @@ class Drop {
5
5
  constructor() {
6
6
  this.id = Drop.idCtr++;
7
7
  this.ref = { id: this.id };
8
- Drop.weak[this.id] = this.weak();
9
- Drop.registry.register(this, this.id, this);
8
+ const weak = this.weak();
9
+ Drop.weak[this.id] = weak;
10
+ Drop.registry.register(this.ref, this.id, this.ref);
11
+ return new Proxy(this, {
12
+ set(target, prop, value) {
13
+ if (prop === "ref")
14
+ return false;
15
+ target[prop] = value;
16
+ weak[prop] = value;
17
+ return true;
18
+ },
19
+ });
10
20
  }
21
+ register() { }
11
22
  weak() {
12
23
  const weak = Object.assign(Object.create(Object.getPrototypeOf(this)), this);
13
24
  weak.ref = new WeakRef(this.ref);
@@ -15,14 +26,16 @@ class Drop {
15
26
  }
16
27
  drop() {
17
28
  this.onDrop();
18
- Drop.registry.unregister(this);
29
+ Drop.registry.unregister(this.ref);
19
30
  delete Drop.weak[this.id];
20
31
  }
21
32
  }
22
33
  exports.Drop = Drop;
23
34
  Drop.weak = {};
24
35
  Drop.registry = new FinalizationRegistry((id) => {
25
- Drop.weak[id].drop();
36
+ const weak = Drop.weak[id];
37
+ if (weak)
38
+ weak.drop();
26
39
  });
27
40
  Drop.idCtr = 0;
28
41
  //# sourceMappingURL=Drop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Drop.js","sourceRoot":"","sources":["../../../../package/lib/util/Drop.ts"],"names":[],"mappings":";;;AAAA,MAAsB,IAAI;IAQxB;QACE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;IACS,IAAI;QACZ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5E,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;;AAxBH,oBAyBC;AAxBgB,SAAI,GAA2B,EAAE,CAAA;AACjC,aAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,EAAU,EAAE,EAAE;IAChE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACtB,CAAC,CAAC,CAAA;AACa,UAAK,GAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"Drop.js","sourceRoot":"","sources":["../../../../package/lib/util/Drop.ts"],"names":[],"mappings":";;;AAAA,MAAsB,IAAI;IASxB;QACE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAEnD,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,GAAG,CAAC,MAAW,EAAE,IAAI,EAAE,KAAK;gBAC1B,IAAI,IAAI,KAAK,KAAK;oBAAE,OAAO,KAAK,CAAA;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CACnB;gBAAC,IAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;gBAC5B,OAAO,IAAI,CAAA;YACb,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IACS,QAAQ,KAAI,CAAC;IACb,IAAI;QACZ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5E,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;;AApCH,oBAqCC;AApCgB,SAAI,GAA2B,EAAE,CAAA;AACjC,aAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,EAAU,EAAE,EAAE;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1B,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,EAAE,CAAA;AACvB,CAAC,CAAC,CAAA;AACa,UAAK,GAAW,CAAC,CAAA"}
@@ -31,10 +31,15 @@ class GetSslCertificate {
31
31
  * Watches the SSL Certificate for the given hostnames if permitted. Returns an async iterator that yields whenever the value changes
32
32
  */
33
33
  async *watch() {
34
- while (true) {
35
- let callback;
34
+ const resolveCell = { resolve: () => { } };
35
+ this.effects.onLeaveContext(() => {
36
+ resolveCell.resolve();
37
+ });
38
+ while (this.effects.isInContext) {
39
+ let callback = () => { };
36
40
  const waitForNext = new Promise((resolve) => {
37
41
  callback = resolve;
42
+ resolveCell.resolve = resolve;
38
43
  });
39
44
  yield await this.effects.getSslCertificate({
40
45
  hostnames: this.hostnames,
@@ -1 +1 @@
1
- {"version":3,"file":"GetSslCertificate.js","sourceRoot":"","sources":["../../../../package/lib/util/GetSslCertificate.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAC5B,YACW,OAAgB,EAChB,SAAmB,EACnB,SAAuB;QAFvB,YAAO,GAAP,OAAO,CAAS;QAChB,cAAS,GAAT,SAAS,CAAU;QACnB,cAAS,GAAT,SAAS,CAAc;IAC/B,CAAC;IAEJ;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EACN,IAAI,CAAC,OAAO,CAAC,UAAU;gBACvB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAC/D,CAAC,CAAA;IACJ,CAAC;IACD;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,KAAK;QACV,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,QAAoB,CAAA;YACxB,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAChD,QAAQ,GAAG,OAAO,CAAA;YACpB,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACzC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC3B,CAAC,CAAA;YACF,MAAM,WAAW,CAAA;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,QAGyB;QAEzB,CAAC;QAAA,CAAC,KAAK,IAAI,EAAE;YACX,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CACX,+DAA+D,EAC/D,CAAC,CACF,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACX,OAAO,CAAC,KAAK,CACX,+DAA+D,EAC/D,CAAC,CACF,CACF,CAAA;IACL,CAAC;CACF;AA5ED,8CA4EC"}
1
+ {"version":3,"file":"GetSslCertificate.js","sourceRoot":"","sources":["../../../../package/lib/util/GetSslCertificate.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAC5B,YACW,OAAgB,EAChB,SAAmB,EACnB,SAAuB;QAFvB,YAAO,GAAP,OAAO,CAAS;QAChB,cAAS,GAAT,SAAS,CAAU;QACnB,cAAS,GAAT,SAAS,CAAc;IAC/B,CAAC;IAEJ;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EACN,IAAI,CAAC,OAAO,CAAC,UAAU;gBACvB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAC/D,CAAC,CAAA;IACJ,CAAC;IACD;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,KAAK;QACV,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;QACzC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;YAC/B,WAAW,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,QAAQ,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;YACnC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAChD,QAAQ,GAAG,OAAO,CAAA;gBAClB,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;YAC/B,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACzC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC3B,CAAC,CAAA;YACF,MAAM,WAAW,CAAA;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,QAGyB;QAEzB,CAAC;QAAA,CAAC,KAAK,IAAI,EAAE;YACX,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CACX,+DAA+D,EAC/D,CAAC,CACF,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACX,OAAO,CAAC,KAAK,CACX,+DAA+D,EAC/D,CAAC,CACF,CACF,CAAA;IACL,CAAC;CACF;AAjFD,8CAiFC"}
@@ -1,84 +1,197 @@
1
1
  import * as T from "../../../base/lib/types";
2
2
  import * as cp from "child_process";
3
3
  import { Buffer } from "node:buffer";
4
+ import { Drop } from "./Drop";
5
+ import { Mounts } from "../mainFn/Mounts";
6
+ import { BackupEffects } from "../backup/Backups";
4
7
  export declare const execFile: typeof cp.execFile.__promisify__;
5
- type ExecResults = {
6
- exitCode: number | null;
7
- exitSignal: NodeJS.Signals | null;
8
- stdout: string | Buffer;
9
- stderr: string | Buffer;
10
- };
11
8
  export type ExecOptions = {
12
9
  input?: string | Buffer;
13
10
  };
14
- /**
15
- * This is the type that is going to describe what an subcontainer could do. The main point of the
16
- * subcontainer is to have commands that run in a chrooted environment. This is useful for running
17
- * commands in a containerized environment. But, I wanted the destroy to sometimes be doable, for example the
18
- * case where the subcontainer isn't owned by the process, the subcontainer shouldn't be destroyed.
19
- */
20
- export interface ExecSpawnable {
21
- get destroy(): undefined | (() => Promise<null>);
22
- exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<ExecResults>;
11
+ export interface SubContainer<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop {
12
+ readonly imageId: keyof Manifest["images"] & T.ImageId;
13
+ readonly rootfs: string;
14
+ readonly guid: T.Guid;
15
+ mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
16
+ subpath: string | null;
17
+ mountpoint: string;
18
+ }> : Mounts<Manifest, never>): Promise<this>;
19
+ destroy: () => Promise<null>;
20
+ /**
21
+ * @description run a command inside this subcontainer
22
+ * DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
23
+ * @param commands an array representing the command and args to execute
24
+ * @param options
25
+ * @param timeoutMs how long to wait before killing the command in ms
26
+ * @returns
27
+ */
28
+ exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
29
+ throw: () => {
30
+ stdout: string | Buffer;
31
+ stderr: string | Buffer;
32
+ };
33
+ exitCode: number | null;
34
+ exitSignal: NodeJS.Signals | null;
35
+ stdout: string | Buffer;
36
+ stderr: string | Buffer;
37
+ }>;
38
+ /**
39
+ * @description run a command inside this subcontainer, throwing on non-zero exit status
40
+ * @param commands an array representing the command and args to execute
41
+ * @param options
42
+ * @param timeoutMs how long to wait before killing the command in ms
43
+ * @returns
44
+ */
45
+ execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
46
+ stdout: string | Buffer;
47
+ stderr: string | Buffer;
48
+ }>;
49
+ launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
23
50
  spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
51
+ rc(): SubContainerRc<Manifest, Effects>;
24
52
  }
25
53
  /**
26
54
  * Want to limit what we can do in a container, so we want to launch a container with a specific image and the mounts.
27
- *
28
- * Implements:
29
- * @see {@link ExecSpawnable}
30
55
  */
31
- export declare class SubContainer implements ExecSpawnable {
32
- readonly effects: T.Effects;
33
- readonly imageId: T.ImageId;
56
+ export declare class SubContainerOwned<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop implements SubContainer<Manifest, Effects> {
57
+ readonly effects: Effects;
58
+ readonly imageId: keyof Manifest["images"] & T.ImageId;
34
59
  readonly rootfs: string;
35
60
  readonly guid: T.Guid;
36
- private static finalizationEffects;
37
- private static registry;
61
+ private destroyed;
62
+ rcs: number;
38
63
  private leader;
39
64
  private leaderExited;
40
65
  private waitProc;
41
66
  private constructor();
42
- static of(effects: T.Effects, image: {
43
- imageId: T.ImageId;
67
+ static of<Manifest extends T.SDKManifest, Effects extends T.Effects>(effects: Effects, image: {
68
+ imageId: keyof Manifest["images"] & T.ImageId;
44
69
  sharedRun?: boolean;
45
- }, name: string): Promise<SubContainer>;
46
- static with<T>(effects: T.Effects, image: {
47
- imageId: T.ImageId;
70
+ }, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
71
+ subpath: string | null;
72
+ mountpoint: string;
73
+ }> : Mounts<Manifest, never>) | null, name: string): Promise<SubContainerOwned<Manifest, Effects>>;
74
+ static withTemp<Manifest extends T.SDKManifest, T, Effects extends T.Effects>(effects: Effects, image: {
75
+ imageId: keyof Manifest["images"] & T.ImageId;
48
76
  sharedRun?: boolean;
49
- }, mounts: {
50
- options: MountOptions;
77
+ }, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
78
+ subpath: string | null;
79
+ mountpoint: string;
80
+ }> : Mounts<Manifest, never>) | null, name: string, fn: (subContainer: SubContainer<Manifest, Effects>) => Promise<T>): Promise<T>;
81
+ mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
82
+ subpath: string | null;
51
83
  mountpoint: string;
52
- }[], name: string, fn: (subContainer: SubContainer) => Promise<T>): Promise<T>;
53
- mount(options: MountOptions, path: string): Promise<SubContainer>;
84
+ }> : Mounts<Manifest, never>): Promise<this>;
54
85
  private killLeader;
55
86
  get destroy(): () => Promise<null>;
87
+ onDrop(): void;
88
+ /**
89
+ * @description run a command inside this subcontainer
90
+ * DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
91
+ * @param commands an array representing the command and args to execute
92
+ * @param options
93
+ * @param timeoutMs how long to wait before killing the command in ms
94
+ * @returns
95
+ */
56
96
  exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
97
+ throw: () => {
98
+ stdout: string | Buffer;
99
+ stderr: string | Buffer;
100
+ };
57
101
  exitCode: number | null;
58
102
  exitSignal: NodeJS.Signals | null;
59
103
  stdout: string | Buffer;
60
104
  stderr: string | Buffer;
61
105
  }>;
106
+ /**
107
+ * @description run a command inside this subcontainer, throwing on non-zero exit status
108
+ * @param commands an array representing the command and args to execute
109
+ * @param options
110
+ * @param timeoutMs how long to wait before killing the command in ms
111
+ * @returns
112
+ */
113
+ execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
114
+ stdout: string | Buffer;
115
+ stderr: string | Buffer;
116
+ }>;
62
117
  launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
63
118
  spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
119
+ rc(): SubContainerRc<Manifest, Effects>;
64
120
  }
65
- /**
66
- * Take an subcontainer but remove the ability to add the mounts and the destroy function.
67
- * Lets other functions, like health checks, to not destroy the parents.
68
- *
69
- */
70
- export declare class SubContainerHandle implements ExecSpawnable {
71
- private subContainer;
72
- constructor(subContainer: ExecSpawnable);
73
- get destroy(): undefined;
74
- exec(command: string[], options?: CommandOptions, timeoutMs?: number | null): Promise<ExecResults>;
121
+ export declare class SubContainerRc<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop implements SubContainer<Manifest, Effects> {
122
+ private readonly subcontainer;
123
+ get imageId(): keyof Manifest["images"] & string;
124
+ get rootfs(): string;
125
+ get guid(): string;
126
+ private destroyed;
127
+ constructor(subcontainer: SubContainerOwned<Manifest, Effects>);
128
+ static of<Manifest extends T.SDKManifest, Effects extends T.Effects>(effects: Effects, image: {
129
+ imageId: keyof Manifest["images"] & T.ImageId;
130
+ sharedRun?: boolean;
131
+ }, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
132
+ subpath: string | null;
133
+ mountpoint: string;
134
+ }> : Mounts<Manifest, never>) | null, name: string): Promise<SubContainerRc<Manifest, Effects>>;
135
+ static withTemp<Manifest extends T.SDKManifest, T, Effects extends T.Effects>(effects: Effects, image: {
136
+ imageId: keyof Manifest["images"] & T.ImageId;
137
+ sharedRun?: boolean;
138
+ }, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
139
+ subpath: string | null;
140
+ mountpoint: string;
141
+ }> : Mounts<Manifest, never>) | null, name: string, fn: (subContainer: SubContainer<Manifest, Effects>) => Promise<T>): Promise<T>;
142
+ mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
143
+ subpath: string | null;
144
+ mountpoint: string;
145
+ }> : Mounts<Manifest, never>): Promise<this>;
146
+ get destroy(): () => Promise<null>;
147
+ onDrop(): void;
148
+ /**
149
+ * @description run a command inside this subcontainer
150
+ * DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
151
+ * @param commands an array representing the command and args to execute
152
+ * @param options
153
+ * @param timeoutMs how long to wait before killing the command in ms
154
+ * @returns
155
+ */
156
+ exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
157
+ throw: () => {
158
+ stdout: string | Buffer;
159
+ stderr: string | Buffer;
160
+ };
161
+ exitCode: number | null;
162
+ exitSignal: NodeJS.Signals | null;
163
+ stdout: string | Buffer;
164
+ stderr: string | Buffer;
165
+ }>;
166
+ /**
167
+ * @description run a command inside this subcontainer, throwing on non-zero exit status
168
+ * @param commands an array representing the command and args to execute
169
+ * @param options
170
+ * @param timeoutMs how long to wait before killing the command in ms
171
+ * @returns
172
+ */
173
+ execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
174
+ stdout: string | Buffer;
175
+ stderr: string | Buffer;
176
+ }>;
177
+ launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
75
178
  spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
179
+ rc(): SubContainerRc<Manifest, Effects>;
76
180
  }
77
181
  export type CommandOptions = {
182
+ /**
183
+ * Environment variables to set for this command
184
+ */
78
185
  env?: {
79
186
  [variable: string]: string;
80
187
  };
188
+ /**
189
+ * the working directory to run this command in
190
+ */
81
191
  cwd?: string;
192
+ /**
193
+ * the user to run this command as
194
+ */
82
195
  user?: string;
83
196
  };
84
197
  export type StdioOptions = {
@@ -87,13 +200,15 @@ export type StdioOptions = {
87
200
  export type MountOptions = MountOptionsVolume | MountOptionsAssets | MountOptionsPointer | MountOptionsBackup;
88
201
  export type MountOptionsVolume = {
89
202
  type: "volume";
90
- id: string;
203
+ volumeId: string;
91
204
  subpath: string | null;
92
205
  readonly: boolean;
206
+ filetype: "file" | "directory" | "infer";
93
207
  };
94
208
  export type MountOptionsAssets = {
95
209
  type: "assets";
96
210
  subpath: string | null;
211
+ filetype: "file" | "directory" | "infer";
97
212
  };
98
213
  export type MountOptionsPointer = {
99
214
  type: "pointer";
@@ -101,10 +216,12 @@ export type MountOptionsPointer = {
101
216
  volumeId: string;
102
217
  subpath: string | null;
103
218
  readonly: boolean;
219
+ filetype: "file" | "directory" | "infer";
104
220
  };
105
221
  export type MountOptionsBackup = {
106
222
  type: "backup";
107
223
  subpath: string | null;
224
+ filetype: "file" | "directory" | "infer";
108
225
  };
109
226
  export declare class ExitError extends Error {
110
227
  readonly command: string;
@@ -121,4 +238,3 @@ export declare class ExitError extends Error {
121
238
  stderr: string | Buffer;
122
239
  });
123
240
  }
124
- export {};