@start9labs/start-sdk 0.3.6-alpha7 → 0.3.6-alpha8

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 (196) hide show
  1. package/cjs/lib/StartSdk.d.ts +2 -17
  2. package/cjs/lib/StartSdk.js +2 -8
  3. package/cjs/lib/StartSdk.js.map +1 -1
  4. package/cjs/lib/backup/Backups.js +2 -1
  5. package/cjs/lib/backup/Backups.js.map +1 -1
  6. package/cjs/lib/backup/setupBackups.d.ts +1 -1
  7. package/cjs/lib/backup/setupBackups.js +2 -1
  8. package/cjs/lib/backup/setupBackups.js.map +1 -1
  9. package/cjs/lib/config/setupConfig.js +2 -1
  10. package/cjs/lib/config/setupConfig.js.map +1 -1
  11. package/cjs/lib/exver/index.d.ts +2 -2
  12. package/cjs/lib/exver/index.js +1 -0
  13. package/cjs/lib/exver/index.js.map +1 -1
  14. package/cjs/lib/health/HealthCheck.js +2 -1
  15. package/cjs/lib/health/HealthCheck.js.map +1 -1
  16. package/cjs/lib/health/checkFns/checkWebUrl.js +2 -1
  17. package/cjs/lib/health/checkFns/checkWebUrl.js.map +1 -1
  18. package/cjs/lib/index.d.ts +1 -0
  19. package/cjs/lib/index.js +4 -0
  20. package/cjs/lib/index.js.map +1 -1
  21. package/cjs/lib/inits/migrations/Migration.d.ts +14 -27
  22. package/cjs/lib/inits/migrations/Migration.js +10 -3
  23. package/cjs/lib/inits/migrations/Migration.js.map +1 -1
  24. package/cjs/lib/inits/migrations/setupMigrations.d.ts +10 -5
  25. package/cjs/lib/inits/migrations/setupMigrations.js +90 -26
  26. package/cjs/lib/inits/migrations/setupMigrations.js.map +1 -1
  27. package/cjs/lib/inits/setupInit.d.ts +2 -2
  28. package/cjs/lib/inits/setupInit.js +29 -5
  29. package/cjs/lib/inits/setupInit.js.map +1 -1
  30. package/cjs/lib/inits/setupInstall.d.ts +1 -1
  31. package/cjs/lib/inits/setupInstall.js +4 -5
  32. package/cjs/lib/inits/setupInstall.js.map +1 -1
  33. package/cjs/lib/inits/setupUninstall.d.ts +1 -1
  34. package/cjs/lib/inits/setupUninstall.js +1 -1
  35. package/cjs/lib/inits/setupUninstall.js.map +1 -1
  36. package/cjs/lib/mainFn/CommandController.d.ts +7 -4
  37. package/cjs/lib/mainFn/CommandController.js +18 -8
  38. package/cjs/lib/mainFn/CommandController.js.map +1 -1
  39. package/cjs/lib/mainFn/Daemon.d.ts +4 -2
  40. package/cjs/lib/mainFn/Daemon.js +7 -2
  41. package/cjs/lib/mainFn/Daemon.js.map +1 -1
  42. package/cjs/lib/mainFn/Daemons.d.ts +2 -2
  43. package/cjs/lib/mainFn/HealthDaemon.d.ts +6 -3
  44. package/cjs/lib/mainFn/HealthDaemon.js +23 -35
  45. package/cjs/lib/mainFn/HealthDaemon.js.map +1 -1
  46. package/cjs/lib/manifest/ManifestTypes.d.ts +1 -10
  47. package/cjs/lib/manifest/setupManifest.d.ts +2 -2
  48. package/cjs/lib/manifest/setupManifest.js +6 -2
  49. package/cjs/lib/manifest/setupManifest.js.map +1 -1
  50. package/cjs/lib/osBindings/Manifest.d.ts +2 -0
  51. package/cjs/lib/osBindings/PackageDataEntry.d.ts +2 -0
  52. package/cjs/lib/osBindings/SetDataVersionParams.d.ts +3 -0
  53. package/cjs/lib/osBindings/SetDataVersionParams.js +4 -0
  54. package/cjs/lib/osBindings/SetDataVersionParams.js.map +1 -0
  55. package/cjs/lib/osBindings/index.d.ts +1 -3
  56. package/cjs/lib/s9pk/merkleArchive/varint.js +2 -1
  57. package/cjs/lib/s9pk/merkleArchive/varint.js.map +1 -1
  58. package/cjs/lib/test/configBuilder.test.js +7 -4
  59. package/cjs/lib/test/configBuilder.test.js.map +1 -1
  60. package/cjs/lib/test/graph.test.d.ts +1 -0
  61. package/cjs/lib/test/graph.test.js +78 -0
  62. package/cjs/lib/test/graph.test.js.map +1 -0
  63. package/cjs/lib/test/output.sdk.d.ts +2 -214
  64. package/cjs/lib/test/output.sdk.js +9 -3
  65. package/cjs/lib/test/output.sdk.js.map +1 -1
  66. package/cjs/lib/test/startosTypeValidation.test.js +2 -0
  67. package/cjs/lib/test/startosTypeValidation.test.js.map +1 -1
  68. package/cjs/lib/types.d.ts +18 -14
  69. package/cjs/lib/types.js.map +1 -1
  70. package/cjs/lib/util/Overlay.d.ts +39 -2
  71. package/cjs/lib/util/Overlay.js +38 -6
  72. package/cjs/lib/util/Overlay.js.map +1 -1
  73. package/cjs/lib/util/asError.d.ts +1 -0
  74. package/cjs/lib/util/asError.js +11 -0
  75. package/cjs/lib/util/asError.js.map +1 -0
  76. package/cjs/lib/util/graph.d.ts +19 -0
  77. package/cjs/lib/util/graph.js +206 -0
  78. package/cjs/lib/util/graph.js.map +1 -0
  79. package/cjs/lib/util/index.d.ts +1 -0
  80. package/cjs/lib/util/index.js +3 -1
  81. package/cjs/lib/util/index.js.map +1 -1
  82. package/cjs/lib/version/VersionGraph.d.ts +18 -0
  83. package/cjs/lib/version/VersionGraph.js +104 -0
  84. package/cjs/lib/version/VersionGraph.js.map +1 -0
  85. package/cjs/lib/version/VersionInfo.d.ts +44 -0
  86. package/cjs/lib/version/VersionInfo.js +48 -0
  87. package/cjs/lib/version/VersionInfo.js.map +1 -0
  88. package/cjs/lib/version/index.d.ts +2 -0
  89. package/cjs/lib/version/index.js +19 -0
  90. package/cjs/lib/version/index.js.map +1 -0
  91. package/cjs/lib/versionInfo/VersionInfo.d.ts +44 -0
  92. package/cjs/lib/versionInfo/VersionInfo.js +48 -0
  93. package/cjs/lib/versionInfo/VersionInfo.js.map +1 -0
  94. package/cjs/lib/versionInfo/setupVersionGraph.d.ts +19 -0
  95. package/cjs/lib/versionInfo/setupVersionGraph.js +108 -0
  96. package/cjs/lib/versionInfo/setupVersionGraph.js.map +1 -0
  97. package/mjs/lib/StartSdk.d.ts +2 -17
  98. package/mjs/lib/StartSdk.js +2 -8
  99. package/mjs/lib/StartSdk.js.map +1 -1
  100. package/mjs/lib/backup/Backups.js +2 -1
  101. package/mjs/lib/backup/Backups.js.map +1 -1
  102. package/mjs/lib/backup/setupBackups.d.ts +1 -1
  103. package/mjs/lib/backup/setupBackups.js +2 -1
  104. package/mjs/lib/backup/setupBackups.js.map +1 -1
  105. package/mjs/lib/config/setupConfig.js +1 -1
  106. package/mjs/lib/config/setupConfig.js.map +1 -1
  107. package/mjs/lib/exver/index.d.ts +2 -2
  108. package/mjs/lib/exver/index.js +1 -0
  109. package/mjs/lib/exver/index.js.map +1 -1
  110. package/mjs/lib/health/HealthCheck.js +2 -1
  111. package/mjs/lib/health/HealthCheck.js.map +1 -1
  112. package/mjs/lib/health/checkFns/checkWebUrl.js +2 -1
  113. package/mjs/lib/health/checkFns/checkWebUrl.js.map +1 -1
  114. package/mjs/lib/index.d.ts +1 -0
  115. package/mjs/lib/index.js +1 -0
  116. package/mjs/lib/index.js.map +1 -1
  117. package/mjs/lib/inits/migrations/Migration.d.ts +14 -27
  118. package/mjs/lib/inits/migrations/Migration.js +9 -2
  119. package/mjs/lib/inits/migrations/Migration.js.map +1 -1
  120. package/mjs/lib/inits/migrations/setupMigrations.d.ts +10 -5
  121. package/mjs/lib/inits/migrations/setupMigrations.js +92 -28
  122. package/mjs/lib/inits/migrations/setupMigrations.js.map +1 -1
  123. package/mjs/lib/inits/setupInit.d.ts +2 -2
  124. package/mjs/lib/inits/setupInit.js +29 -5
  125. package/mjs/lib/inits/setupInit.js.map +1 -1
  126. package/mjs/lib/inits/setupInstall.d.ts +1 -1
  127. package/mjs/lib/inits/setupInstall.js +4 -5
  128. package/mjs/lib/inits/setupInstall.js.map +1 -1
  129. package/mjs/lib/inits/setupUninstall.d.ts +1 -1
  130. package/mjs/lib/inits/setupUninstall.js +1 -1
  131. package/mjs/lib/inits/setupUninstall.js.map +1 -1
  132. package/mjs/lib/mainFn/CommandController.d.ts +7 -4
  133. package/mjs/lib/mainFn/CommandController.js +17 -9
  134. package/mjs/lib/mainFn/CommandController.js.map +1 -1
  135. package/mjs/lib/mainFn/Daemon.d.ts +4 -2
  136. package/mjs/lib/mainFn/Daemon.js +7 -3
  137. package/mjs/lib/mainFn/Daemon.js.map +1 -1
  138. package/mjs/lib/mainFn/Daemons.d.ts +2 -2
  139. package/mjs/lib/mainFn/HealthDaemon.d.ts +6 -3
  140. package/mjs/lib/mainFn/HealthDaemon.js +22 -21
  141. package/mjs/lib/mainFn/HealthDaemon.js.map +1 -1
  142. package/mjs/lib/manifest/ManifestTypes.d.ts +1 -10
  143. package/mjs/lib/manifest/setupManifest.d.ts +2 -2
  144. package/mjs/lib/manifest/setupManifest.js +6 -2
  145. package/mjs/lib/manifest/setupManifest.js.map +1 -1
  146. package/mjs/lib/osBindings/Manifest.d.ts +2 -0
  147. package/mjs/lib/osBindings/PackageDataEntry.d.ts +2 -0
  148. package/mjs/lib/osBindings/SetDataVersionParams.d.ts +3 -0
  149. package/mjs/lib/osBindings/SetDataVersionParams.js +3 -0
  150. package/mjs/lib/osBindings/SetDataVersionParams.js.map +1 -0
  151. package/mjs/lib/osBindings/index.d.ts +1 -3
  152. package/mjs/lib/s9pk/merkleArchive/varint.js +2 -1
  153. package/mjs/lib/s9pk/merkleArchive/varint.js.map +1 -1
  154. package/mjs/lib/test/configBuilder.test.js +7 -4
  155. package/mjs/lib/test/configBuilder.test.js.map +1 -1
  156. package/mjs/lib/test/graph.test.d.ts +1 -0
  157. package/mjs/lib/test/graph.test.js +76 -0
  158. package/mjs/lib/test/graph.test.js.map +1 -0
  159. package/mjs/lib/test/output.sdk.d.ts +2 -214
  160. package/mjs/lib/test/output.sdk.js +9 -3
  161. package/mjs/lib/test/output.sdk.js.map +1 -1
  162. package/mjs/lib/test/startosTypeValidation.test.js +2 -0
  163. package/mjs/lib/test/startosTypeValidation.test.js.map +1 -1
  164. package/mjs/lib/types.d.ts +18 -14
  165. package/mjs/lib/types.js.map +1 -1
  166. package/mjs/lib/util/Overlay.d.ts +39 -2
  167. package/mjs/lib/util/Overlay.js +37 -5
  168. package/mjs/lib/util/Overlay.js.map +1 -1
  169. package/mjs/lib/util/asError.d.ts +1 -0
  170. package/mjs/lib/util/asError.js +7 -0
  171. package/mjs/lib/util/asError.js.map +1 -0
  172. package/mjs/lib/util/graph.d.ts +19 -0
  173. package/mjs/lib/util/graph.js +201 -0
  174. package/mjs/lib/util/graph.js.map +1 -0
  175. package/mjs/lib/util/index.d.ts +1 -0
  176. package/mjs/lib/util/index.js +1 -0
  177. package/mjs/lib/util/index.js.map +1 -1
  178. package/mjs/lib/version/VersionGraph.d.ts +18 -0
  179. package/mjs/lib/version/VersionGraph.js +102 -0
  180. package/mjs/lib/version/VersionGraph.js.map +1 -0
  181. package/mjs/lib/version/VersionInfo.d.ts +44 -0
  182. package/mjs/lib/version/VersionInfo.js +45 -0
  183. package/mjs/lib/version/VersionInfo.js.map +1 -0
  184. package/mjs/lib/version/index.d.ts +2 -0
  185. package/mjs/lib/version/index.js +3 -0
  186. package/mjs/lib/version/index.js.map +1 -0
  187. package/mjs/lib/versionInfo/VersionInfo.d.ts +44 -0
  188. package/mjs/lib/versionInfo/VersionInfo.js +45 -0
  189. package/mjs/lib/versionInfo/VersionInfo.js.map +1 -0
  190. package/mjs/lib/versionInfo/setupVersionGraph.d.ts +19 -0
  191. package/mjs/lib/versionInfo/setupVersionGraph.js +105 -0
  192. package/mjs/lib/versionInfo/setupVersionGraph.js.map +1 -0
  193. package/mjs/lib/versionInfo/setupVersionInfo.d.ts +19 -0
  194. package/mjs/lib/versionInfo/setupVersionInfo.js +105 -0
  195. package/mjs/lib/versionInfo/setupVersionInfo.js.map +1 -0
  196. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.js","sourceRoot":"","sources":["../../../../lib/util/Overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Overlay.js","sourceRoot":"","sources":["../../../../lib/util/Overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;AAC9C,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,yBAAyB,OAAO,GAAG,CAAA;AA2BxE;;;;;GAKG;AACH,MAAM,OAAO,OAAO;IAGP;IACA;IACA;IACA;IALH,SAAS,GAAG,KAAK,CAAA;IACzB,YACW,OAAkB,EAClB,OAAkB,EAClB,MAAc,EACd,IAAY;QAHZ,YAAO,GAAP,OAAO,CAAW;QAClB,YAAO,GAAP,OAAO,CAAW;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;IACpB,CAAC;IACJ,MAAM,CAAC,KAAK,CAAC,EAAE,CACb,OAAkB,EAClB,KAA6C;QAE7C,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;QAC/B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC;YACxD,OAAO,EAAE,EAAY;SACtB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,CAAC,SAAS,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SACnB;QAED,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAA;QAE5D,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;YAC5B,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAA;YAC1B,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,OAAO,EAAE,CAAA;YACjC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACvC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;SAC/C;QAED,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,OAAkB,EAClB,KAA6C,EAC7C,MAAiD,EACjD,EAAoC;QAEpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAChD,IAAI;YACF,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;gBACxB,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;aAC/C;YACD,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,CAAA;SACzB;gBAAS;YACR,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;SACxB;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,IAAY;QAC7C,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YACzB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;YACzB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAA;QAC5B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;gBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;oBAC/B,CAAC,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;gBACzB,CAAC,CAAC,GAAG,CAAA;YACP,MAAM,IAAI,GAAG,0BAA0B,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,CAAA;YAE7D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;SAChD;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;gBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;oBAC/B,CAAC,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;gBACzB,CAAC,CAAC,GAAG,CAAA;YACP,MAAM,IAAI,GAAG,yBAAyB,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,CAAA;YAE5D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;SAChD;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;SAC9D;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;gBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;oBAC/B,CAAC,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;gBACzB,CAAC,CAAC,GAAG,CAAA;YACP,MAAM,IAAI,GAAG,wBAAwB,OAAO,EAAE,CAAA;YAE9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;SAChD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,gBAAiB,OAAe,CAAC,IAAI,EAAE,CAAC,CAAA;SACzD;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,OAAO;QACT,OAAO,KAAK,IAAI,EAAE;YAChB,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAM;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACtB,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAAiB,EACjB,OAAwB,EACxB,YAA2B,KAAK;QAOhC,MAAM,SAAS,GAAoB,MAAM,EAAE;aACxC,QAAQ,CAAC,yBAAyB,IAAI,CAAC,OAAO,OAAO,EAAE;YACtD,QAAQ,EAAE,MAAM;SACjB,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,IAAI,KAAK,GAAa,EAAE,CAAA;QACxB,IAAI,OAAO,EAAE,IAAI,EAAE;YACjB,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YACpC,OAAO,OAAO,CAAC,IAAI,CAAA;SACpB;QACD,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,GAAG,CAAA;QACtC,IAAI,OAAO,EAAE,GAAG,EAAE;YAChB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAA;YACrB,OAAO,OAAO,CAAC,GAAG,CAAA;SACnB;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CACpB,WAAW,EACX;YACE,QAAQ;YACR,+BAA+B,IAAI,CAAC,OAAO,MAAM;YACjD,aAAa,OAAO,EAAE;YACtB,GAAG,KAAK;YACR,IAAI,CAAC,MAAM;YACX,GAAG,OAAO;SACX,EACD,OAAO,IAAI,EAAE,CACd,CAAA;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;QACrB,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAqB,EAAE,CAAA;QAC9C,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAqB,EAAE,CAAA;QAC9C,MAAM,UAAU,GACd,CAAC,QAAmC,EAAE,EAAE,CACxC,CAAC,KAA4B,EAAE,EAAE;YAC/B,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAClE,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAA;aACvB;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;gBAC/D,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;iBACnB,CAAC,CAAA;aACH;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;aAClD;QACH,CAAC,CAAA;QACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACzB,IAAI,SAAS,KAAK,IAAI,IAAI,GAAG,EAAE;gBAC7B,UAAU,CACR,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAE,CAAC,CAAC,EACnE,SAAS,CACV,CAAA;aACF;YACD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3C,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3C,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAChC,OAAO,CAAC;gBACN,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,MAAM;gBAClB,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,MAAM,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,OAAiB,EACjB,OAAwB;QAExB,MAAM,SAAS,GAAQ,MAAM,EAAE;aAC5B,QAAQ,CAAC,yBAAyB,IAAI,CAAC,OAAO,OAAO,EAAE;YACtD,QAAQ,EAAE,MAAM;SACjB,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,IAAI,KAAK,GAAa,EAAE,CAAA;QACxB,IAAI,OAAO,EAAE,IAAI,EAAE;YACjB,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YACpC,OAAO,OAAO,CAAC,IAAI,CAAA;SACpB;QACD,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,GAAG,CAAA;QACtC,IAAI,OAAO,EAAE,GAAG,EAAE;YAChB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAA;YACrB,OAAO,OAAO,CAAC,GAAG,CAAA;SACnB;QACD,OAAO,EAAE,CAAC,KAAK,CACb,WAAW,EACX;YACE,QAAQ;YACR,+BAA+B,IAAI,CAAC,OAAO,MAAM;YACjD,aAAa,OAAO,EAAE;YACtB,GAAG,KAAK;YACR,IAAI,CAAC,MAAM;YACX,GAAG,OAAO;SACX,EACD,OAAO,CACR,CAAA;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IACZ;IAApB,YAAoB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAC9C,IAAI,OAAO;QACT,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,CACF,OAAiB,EACjB,OAAwB,EACxB,SAAyB;QAEzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IACvD,CAAC;IACD,KAAK,CACH,OAAiB,EACjB,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export declare const asError: (e: unknown) => Error;
@@ -0,0 +1,7 @@
1
+ export const asError = (e) => {
2
+ if (e instanceof Error) {
3
+ return new Error(e);
4
+ }
5
+ return new Error(`${e}`);
6
+ };
7
+ //# sourceMappingURL=asError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asError.js","sourceRoot":"","sources":["../../../../lib/util/asError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,EAAE;IACpC,IAAI,CAAC,YAAY,KAAK,EAAE;QACtB,OAAO,IAAI,KAAK,CAAC,CAAQ,CAAC,CAAA;KAC3B;IACD,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC1B,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ export type Vertex<VMetadata = void, EMetadata = void> = {
2
+ metadata: VMetadata;
3
+ edges: Array<Edge<EMetadata, VMetadata>>;
4
+ };
5
+ export type Edge<EMetadata = void, VMetadata = void> = {
6
+ metadata: EMetadata;
7
+ from: Vertex<VMetadata, EMetadata>;
8
+ to: Vertex<VMetadata, EMetadata>;
9
+ };
10
+ export declare class Graph<VMetadata = void, EMetadata = void> {
11
+ private readonly vertices;
12
+ constructor();
13
+ addVertex(metadata: VMetadata, fromEdges: Array<Omit<Edge<EMetadata, VMetadata>, "to">>, toEdges: Array<Omit<Edge<EMetadata, VMetadata>, "from">>): Vertex<VMetadata, EMetadata>;
14
+ findVertex(predicate: (vertex: Vertex<VMetadata, EMetadata>) => boolean): Generator<Vertex<VMetadata, EMetadata>, void>;
15
+ addEdge(metadata: EMetadata, from: Vertex<VMetadata, EMetadata>, to: Vertex<VMetadata, EMetadata>): Edge<EMetadata, VMetadata>;
16
+ breadthFirstSearch(from: Vertex<VMetadata, EMetadata> | ((vertex: Vertex<VMetadata, EMetadata>) => boolean)): Generator<Vertex<VMetadata, EMetadata>, void>;
17
+ reverseBreadthFirstSearch(to: Vertex<VMetadata, EMetadata> | ((vertex: Vertex<VMetadata, EMetadata>) => boolean)): Generator<Vertex<VMetadata, EMetadata>, void>;
18
+ shortestPath(from: Vertex<VMetadata, EMetadata> | ((vertex: Vertex<VMetadata, EMetadata>) => boolean), to: Vertex<VMetadata, EMetadata> | ((vertex: Vertex<VMetadata, EMetadata>) => boolean)): Array<Edge<EMetadata, VMetadata>> | void;
19
+ }
@@ -0,0 +1,201 @@
1
+ export class Graph {
2
+ vertices = [];
3
+ constructor() { }
4
+ addVertex(metadata, fromEdges, toEdges) {
5
+ const vertex = {
6
+ metadata,
7
+ edges: [],
8
+ };
9
+ for (let edge of fromEdges) {
10
+ const vEdge = {
11
+ metadata: edge.metadata,
12
+ from: edge.from,
13
+ to: vertex,
14
+ };
15
+ edge.from.edges.push(vEdge);
16
+ vertex.edges.push(vEdge);
17
+ }
18
+ for (let edge of toEdges) {
19
+ const vEdge = {
20
+ metadata: edge.metadata,
21
+ from: vertex,
22
+ to: edge.to,
23
+ };
24
+ edge.to.edges.push(vEdge);
25
+ vertex.edges.push(vEdge);
26
+ }
27
+ this.vertices.push(vertex);
28
+ return vertex;
29
+ }
30
+ findVertex(predicate) {
31
+ const veritces = this.vertices;
32
+ function* gen() {
33
+ for (let vertex of veritces) {
34
+ if (predicate(vertex)) {
35
+ yield vertex;
36
+ }
37
+ }
38
+ }
39
+ return gen();
40
+ }
41
+ addEdge(metadata, from, to) {
42
+ const edge = {
43
+ metadata,
44
+ from,
45
+ to,
46
+ };
47
+ edge.from.edges.push(edge);
48
+ edge.to.edges.push(edge);
49
+ return edge;
50
+ }
51
+ breadthFirstSearch(from) {
52
+ const visited = [];
53
+ function* rec(vertex) {
54
+ if (visited.includes(vertex)) {
55
+ return;
56
+ }
57
+ visited.push(vertex);
58
+ yield vertex;
59
+ let generators = vertex.edges
60
+ .filter((e) => e.from === vertex)
61
+ .map((e) => rec(e.to));
62
+ while (generators.length) {
63
+ let prev = generators;
64
+ generators = [];
65
+ for (let gen of prev) {
66
+ const next = gen.next();
67
+ if (!next.done) {
68
+ generators.push(gen);
69
+ yield next.value;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ if (from instanceof Function) {
75
+ let generators = this.vertices.filter(from).map(rec);
76
+ return (function* () {
77
+ while (generators.length) {
78
+ let prev = generators;
79
+ generators = [];
80
+ for (let gen of prev) {
81
+ const next = gen.next();
82
+ if (!next.done) {
83
+ generators.push(gen);
84
+ yield next.value;
85
+ }
86
+ }
87
+ }
88
+ })();
89
+ }
90
+ else {
91
+ return rec(from);
92
+ }
93
+ }
94
+ reverseBreadthFirstSearch(to) {
95
+ const visited = [];
96
+ function* rec(vertex) {
97
+ if (visited.includes(vertex)) {
98
+ return;
99
+ }
100
+ visited.push(vertex);
101
+ yield vertex;
102
+ let generators = vertex.edges
103
+ .filter((e) => e.to === vertex)
104
+ .map((e) => rec(e.from));
105
+ while (generators.length) {
106
+ let prev = generators;
107
+ generators = [];
108
+ for (let gen of prev) {
109
+ const next = gen.next();
110
+ if (!next.done) {
111
+ generators.push(gen);
112
+ yield next.value;
113
+ }
114
+ }
115
+ }
116
+ }
117
+ if (to instanceof Function) {
118
+ let generators = this.vertices.filter(to).map(rec);
119
+ return (function* () {
120
+ while (generators.length) {
121
+ let prev = generators;
122
+ generators = [];
123
+ for (let gen of prev) {
124
+ const next = gen.next();
125
+ if (!next.done) {
126
+ generators.push(gen);
127
+ yield next.value;
128
+ }
129
+ }
130
+ }
131
+ })();
132
+ }
133
+ else {
134
+ return rec(to);
135
+ }
136
+ }
137
+ shortestPath(from, to) {
138
+ const isDone = to instanceof Function
139
+ ? to
140
+ : (v) => v === to;
141
+ const path = [];
142
+ const visited = [];
143
+ function* check(vertex, path) {
144
+ if (isDone(vertex)) {
145
+ return path;
146
+ }
147
+ if (visited.includes(vertex)) {
148
+ return;
149
+ }
150
+ visited.push(vertex);
151
+ yield;
152
+ let generators = vertex.edges
153
+ .filter((e) => e.from === vertex)
154
+ .map((e) => check(e.to, [...path, e]));
155
+ while (generators.length) {
156
+ let prev = generators;
157
+ generators = [];
158
+ for (let gen of prev) {
159
+ const next = gen.next();
160
+ if (next.done === true) {
161
+ if (next.value) {
162
+ return next.value;
163
+ }
164
+ }
165
+ else {
166
+ generators.push(gen);
167
+ yield;
168
+ }
169
+ }
170
+ }
171
+ }
172
+ if (from instanceof Function) {
173
+ let generators = this.vertices.filter(from).map((v) => check(v, []));
174
+ while (generators.length) {
175
+ let prev = generators;
176
+ generators = [];
177
+ for (let gen of prev) {
178
+ const next = gen.next();
179
+ if (next.done === true) {
180
+ if (next.value) {
181
+ return next.value;
182
+ }
183
+ }
184
+ else {
185
+ generators.push(gen);
186
+ }
187
+ }
188
+ }
189
+ }
190
+ else {
191
+ const gen = check(from, []);
192
+ while (true) {
193
+ const next = gen.next();
194
+ if (next.done) {
195
+ return next.value;
196
+ }
197
+ }
198
+ }
199
+ }
200
+ }
201
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../lib/util/graph.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import "./deepMerge";
6
6
  import "./Overlay";
7
7
  import "./once";
8
8
  export { GetServiceInterface, getServiceInterface } from "./getServiceInterface";
9
+ export { asError } from "./asError";
9
10
  export { getServiceInterfaces } from "./getServiceInterfaces";
10
11
  export { addressHostToUrl } from "./getServiceInterface";
11
12
  export { hostnameInfoToAddress } from "./Hostname";
@@ -6,6 +6,7 @@ import "./deepMerge";
6
6
  import "./Overlay";
7
7
  import "./once";
8
8
  export { GetServiceInterface, getServiceInterface } from "./getServiceInterface";
9
+ export { asError } from "./asError";
9
10
  export { getServiceInterfaces } from "./getServiceInterfaces";
10
11
  export { addressHostToUrl } from "./getServiceInterface";
11
12
  export { hostnameInfoToAddress } from "./Hostname";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AACtB,OAAO,cAAc,CAAA;AACrB,OAAO,mBAAmB,CAAA;AAC1B,OAAO,aAAa,CAAA;AACpB,OAAO,aAAa,CAAA;AACpB,OAAO,WAAW,CAAA;AAClB,OAAO,QAAQ,CAAA;AAEf,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AACtB,OAAO,cAAc,CAAA;AACrB,OAAO,mBAAmB,CAAA;AAC1B,OAAO,aAAa,CAAA;AACpB,OAAO,aAAa,CAAA;AACpB,OAAO,WAAW,CAAA;AAClB,OAAO,QAAQ,CAAA;AAEf,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { ExtendedVersion, VersionRange } from "../exver";
2
+ import * as T from "../types";
3
+ import { VersionInfo } from "./VersionInfo";
4
+ export declare class VersionGraph<CurrentVersion extends string> {
5
+ readonly current: VersionInfo<CurrentVersion>;
6
+ private readonly graph;
7
+ private constructor();
8
+ currentVersion: () => ExtendedVersion;
9
+ static of<CurrentVersion extends string, OtherVersions extends Array<VersionInfo<any>>>(currentVersion: VersionInfo<CurrentVersion>, ...other: EnsureUniqueId<OtherVersions, OtherVersions, CurrentVersion>): VersionGraph<CurrentVersion>;
10
+ migrate({ effects, from, to, }: {
11
+ effects: T.Effects;
12
+ from: ExtendedVersion;
13
+ to: ExtendedVersion;
14
+ }): Promise<void>;
15
+ canMigrateFrom: () => VersionRange;
16
+ canMigrateTo: () => VersionRange;
17
+ }
18
+ export type EnsureUniqueId<A, B = A, OtherVersions = never> = B extends [] ? A : B extends [VersionInfo<infer Version>, ...infer Rest] ? (Version extends OtherVersions ? "One or more versions are not unique"[] : EnsureUniqueId<A, Rest, Version | OtherVersions>) : "There exists a migration that is not a Migration"[];
@@ -0,0 +1,102 @@
1
+ import { ExtendedVersion, VersionRange } from "../exver";
2
+ import { Graph } from "../util/graph";
3
+ import { once } from "../util/once";
4
+ import { IMPOSSIBLE } from "./VersionInfo";
5
+ export class VersionGraph {
6
+ current;
7
+ graph;
8
+ constructor(current, versions) {
9
+ this.current = current;
10
+ this.graph = once(() => {
11
+ const graph = new Graph();
12
+ const flavorMap = {};
13
+ for (let version of [current, ...versions]) {
14
+ const v = ExtendedVersion.parse(version.options.version);
15
+ const vertex = graph.addVertex(v, [], []);
16
+ const flavor = v.flavor || "";
17
+ if (!flavorMap[flavor]) {
18
+ flavorMap[flavor] = [];
19
+ }
20
+ flavorMap[flavor].push([v, version, vertex]);
21
+ }
22
+ for (let flavor in flavorMap) {
23
+ flavorMap[flavor].sort((a, b) => a[0].compareForSort(b[0]));
24
+ let prev = undefined;
25
+ for (let [v, version, vertex] of flavorMap[flavor]) {
26
+ if (version.options.migrations.up !== IMPOSSIBLE) {
27
+ let range;
28
+ if (prev) {
29
+ graph.addEdge(version.options.migrations.up, prev[2], vertex);
30
+ range = VersionRange.anchor(">=", prev[0]).and(VersionRange.anchor("<", v));
31
+ }
32
+ else {
33
+ range = VersionRange.anchor("<", v);
34
+ }
35
+ const vRange = graph.addVertex(range, [], []);
36
+ graph.addEdge(version.options.migrations.up, vRange, vertex);
37
+ }
38
+ if (version.options.migrations.down !== IMPOSSIBLE) {
39
+ let range;
40
+ if (prev) {
41
+ graph.addEdge(version.options.migrations.down, vertex, prev[2]);
42
+ range = VersionRange.anchor(">=", prev[0]).and(VersionRange.anchor("<", v));
43
+ }
44
+ else {
45
+ range = VersionRange.anchor("<", v);
46
+ }
47
+ const vRange = graph.addVertex(range, [], []);
48
+ graph.addEdge(version.options.migrations.down, vertex, vRange);
49
+ }
50
+ if (version.options.migrations.other) {
51
+ for (let rangeStr in version.options.migrations.other) {
52
+ const range = VersionRange.parse(rangeStr);
53
+ const vRange = graph.addVertex(range, [], []);
54
+ graph.addEdge(version.options.migrations.other[rangeStr], vRange, vertex);
55
+ for (let matching of graph.findVertex((v) => v.metadata instanceof ExtendedVersion &&
56
+ v.metadata.satisfies(range))) {
57
+ graph.addEdge(version.options.migrations.other[rangeStr], matching, vertex);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ return graph;
64
+ });
65
+ }
66
+ currentVersion = once(() => ExtendedVersion.parse(this.current.options.version));
67
+ static of(currentVersion, ...other) {
68
+ return new VersionGraph(currentVersion, other);
69
+ }
70
+ async migrate({ effects, from, to, }) {
71
+ const graph = this.graph();
72
+ if (from && to) {
73
+ const path = graph.shortestPath((v) => (v.metadata instanceof VersionRange &&
74
+ v.metadata.satisfiedBy(from)) ||
75
+ (v.metadata instanceof ExtendedVersion && v.metadata.equals(from)), (v) => (v.metadata instanceof VersionRange && v.metadata.satisfiedBy(to)) ||
76
+ (v.metadata instanceof ExtendedVersion && v.metadata.equals(to)));
77
+ if (path) {
78
+ for (let edge of path) {
79
+ if (edge.metadata) {
80
+ await edge.metadata({ effects });
81
+ }
82
+ await effects.setDataVersion({ version: edge.to.metadata.toString() });
83
+ }
84
+ return;
85
+ }
86
+ }
87
+ throw new Error();
88
+ }
89
+ canMigrateFrom = once(() => Array.from(this.graph().reverseBreadthFirstSearch((v) => (v.metadata instanceof VersionRange &&
90
+ v.metadata.satisfiedBy(this.currentVersion())) ||
91
+ (v.metadata instanceof ExtendedVersion &&
92
+ v.metadata.equals(this.currentVersion())))).reduce((acc, x) => acc.or(x.metadata instanceof VersionRange
93
+ ? x.metadata
94
+ : VersionRange.anchor("=", x.metadata)), VersionRange.none()));
95
+ canMigrateTo = once(() => Array.from(this.graph().breadthFirstSearch((v) => (v.metadata instanceof VersionRange &&
96
+ v.metadata.satisfiedBy(this.currentVersion())) ||
97
+ (v.metadata instanceof ExtendedVersion &&
98
+ v.metadata.equals(this.currentVersion())))).reduce((acc, x) => acc.or(x.metadata instanceof VersionRange
99
+ ? x.metadata
100
+ : VersionRange.anchor("=", x.metadata)), VersionRange.none()));
101
+ }
102
+ //# sourceMappingURL=VersionGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionGraph.js","sourceRoot":"","sources":["../../../../lib/version/VersionGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { ValidateExVer } from "../exver";
2
+ import * as T from "../types";
3
+ export declare const IMPOSSIBLE: unique symbol;
4
+ export type VersionOptions<Version extends string> = {
5
+ /** The version being described */
6
+ version: Version & ValidateExVer<Version>;
7
+ /** The release notes for this version */
8
+ releaseNotes: string;
9
+ /** Data migrations for this version */
10
+ migrations: {
11
+ /**
12
+ * A migration from the previous version
13
+ * Leave blank to indicate no migration is necessary
14
+ * Set to `IMPOSSIBLE` to indicate migrating from the previous version is not possible
15
+ */
16
+ up?: ((opts: {
17
+ effects: T.Effects;
18
+ }) => Promise<void>) | typeof IMPOSSIBLE;
19
+ /**
20
+ * A migration to the previous version
21
+ * Leave blank to indicate no migration is necessary
22
+ * Set to `IMPOSSIBLE` to indicate downgrades are prohibited
23
+ */
24
+ down?: ((opts: {
25
+ effects: T.Effects;
26
+ }) => Promise<void>) | typeof IMPOSSIBLE;
27
+ /**
28
+ * Additional migrations, such as fast-forward migrations, or migrations from other flavors
29
+ */
30
+ other?: Record<string, (opts: {
31
+ effects: T.Effects;
32
+ }) => Promise<void>>;
33
+ };
34
+ };
35
+ export declare class VersionInfo<Version extends string> {
36
+ readonly options: VersionOptions<Version> & {
37
+ satisfies: string[];
38
+ };
39
+ private _version;
40
+ private constructor();
41
+ static of<Version extends string>(options: VersionOptions<Version>): VersionInfo<Version>;
42
+ /** Specify a version that this version is 100% backwards compatible to */
43
+ satisfies<V extends string>(version: V & ValidateExVer<V>): VersionInfo<Version>;
44
+ }
@@ -0,0 +1,45 @@
1
+ export const IMPOSSIBLE = Symbol("IMPOSSIBLE");
2
+ export class VersionInfo {
3
+ options;
4
+ _version = null;
5
+ constructor(options) {
6
+ this.options = options;
7
+ }
8
+ static of(options) {
9
+ return new VersionInfo({ ...options, satisfies: [] });
10
+ }
11
+ /** Specify a version that this version is 100% backwards compatible to */
12
+ satisfies(version) {
13
+ return new VersionInfo({
14
+ ...this.options,
15
+ satisfies: [...this.options.satisfies, version],
16
+ });
17
+ }
18
+ }
19
+ function __type_tests() {
20
+ const version = VersionInfo.of({
21
+ version: "1.0.0:0",
22
+ releaseNotes: "",
23
+ migrations: {},
24
+ })
25
+ .satisfies("#other:1.0.0:0")
26
+ .satisfies("#other:2.0.0:0")
27
+ // @ts-expect-error
28
+ .satisfies("#other:2.f.0:0");
29
+ let a = version;
30
+ // @ts-expect-error
31
+ let b = version;
32
+ VersionInfo.of({
33
+ // @ts-expect-error
34
+ version: "test",
35
+ releaseNotes: "",
36
+ migrations: {},
37
+ });
38
+ VersionInfo.of({
39
+ // @ts-expect-error
40
+ version: "test",
41
+ releaseNotes: "",
42
+ migrations: {},
43
+ });
44
+ }
45
+ //# sourceMappingURL=VersionInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../../../lib/version/VersionInfo.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;AA4B9C,MAAM,OAAO,WAAW;IAGX;IAFH,QAAQ,GAAmB,IAAI,CAAA;IACvC,YACW,OAA0D;QAA1D,YAAO,GAAP,OAAO,CAAmD;IAClE,CAAC;IACJ,MAAM,CAAC,EAAE,CAAyB,OAAgC;QAChE,OAAO,IAAI,WAAW,CAAU,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,0EAA0E;IAC1E,SAAS,CACP,OAA6B;QAE7B,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,IAAI,CAAC,OAAO;YACf,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SAChD,CAAC,CAAA;IACJ,CAAC;CACF;AAED,SAAS,YAAY;IACnB,MAAM,OAAO,GAA2B,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC;SACC,SAAS,CAAC,gBAAgB,CAAC;SAC3B,SAAS,CAAC,gBAAgB,CAAC;QAC5B,mBAAmB;SAClB,SAAS,CAAC,gBAAgB,CAAC,CAAA;IAE9B,IAAI,CAAC,GAA2B,OAAO,CAAA;IACvC,mBAAmB;IACnB,IAAI,CAAC,GAA2B,OAAO,CAAA;IAEvC,WAAW,CAAC,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC,CAAA;IACF,WAAW,CAAC,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,MAAgB;QACzB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./VersionGraph";
2
+ export * from "./VersionInfo";
@@ -0,0 +1,3 @@
1
+ export * from "./VersionGraph";
2
+ export * from "./VersionInfo";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/version/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { ValidateExVer } from "../exver";
2
+ import * as T from "../types";
3
+ export declare const IMPOSSIBLE: unique symbol;
4
+ export type VersionOptions<Version extends string> = {
5
+ /** The version being described */
6
+ version: Version & ValidateExVer<Version>;
7
+ /** The release notes for this version */
8
+ releaseNotes: string;
9
+ /** Data migrations for this version */
10
+ migrations: {
11
+ /**
12
+ * A migration from the previous version
13
+ * Leave blank to indicate no migration is necessary
14
+ * Set to `IMPOSSIBLE` to indicate migrating from the previous version is not possible
15
+ */
16
+ up?: ((opts: {
17
+ effects: T.Effects;
18
+ }) => Promise<void>) | typeof IMPOSSIBLE;
19
+ /**
20
+ * A migration to the previous version
21
+ * Leave blank to indicate no migration is necessary
22
+ * Set to `IMPOSSIBLE` to indicate downgrades are prohibited
23
+ */
24
+ down?: ((opts: {
25
+ effects: T.Effects;
26
+ }) => Promise<void>) | typeof IMPOSSIBLE;
27
+ /**
28
+ * Additional migrations, such as fast-forward migrations, or migrations from other flavors
29
+ */
30
+ other?: Record<string, (opts: {
31
+ effects: T.Effects;
32
+ }) => Promise<void>>;
33
+ };
34
+ };
35
+ export declare class VersionInfo<Version extends string> {
36
+ readonly options: VersionOptions<Version> & {
37
+ satisfies: string[];
38
+ };
39
+ private _version;
40
+ private constructor();
41
+ static of<Version extends string>(options: VersionOptions<Version>): VersionInfo<Version>;
42
+ /** Specify a version that this version is 100% backwards compatible to */
43
+ satisfies<V extends string>(version: V & ValidateExVer<V>): VersionInfo<Version>;
44
+ }
@@ -0,0 +1,45 @@
1
+ export const IMPOSSIBLE = Symbol("IMPOSSIBLE");
2
+ export class VersionInfo {
3
+ options;
4
+ _version = null;
5
+ constructor(options) {
6
+ this.options = options;
7
+ }
8
+ static of(options) {
9
+ return new VersionInfo({ ...options, satisfies: [] });
10
+ }
11
+ /** Specify a version that this version is 100% backwards compatible to */
12
+ satisfies(version) {
13
+ return new VersionInfo({
14
+ ...this.options,
15
+ satisfies: [...this.options.satisfies, version],
16
+ });
17
+ }
18
+ }
19
+ function __type_tests() {
20
+ const version = VersionInfo.of({
21
+ version: "1.0.0:0",
22
+ releaseNotes: "",
23
+ migrations: {},
24
+ })
25
+ .satisfies("#other:1.0.0:0")
26
+ .satisfies("#other:2.0.0:0")
27
+ // @ts-expect-error
28
+ .satisfies("#other:2.f.0:0");
29
+ let a = version;
30
+ // @ts-expect-error
31
+ let b = version;
32
+ VersionInfo.of({
33
+ // @ts-expect-error
34
+ version: "test",
35
+ releaseNotes: "",
36
+ migrations: {},
37
+ });
38
+ VersionInfo.of({
39
+ // @ts-expect-error
40
+ version: "test",
41
+ releaseNotes: "",
42
+ migrations: {},
43
+ });
44
+ }
45
+ //# sourceMappingURL=VersionInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../../../lib/versionInfo/VersionInfo.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;AA4B9C,MAAM,OAAO,WAAW;IAGX;IAFH,QAAQ,GAAmB,IAAI,CAAA;IACvC,YACW,OAA0D;QAA1D,YAAO,GAAP,OAAO,CAAmD;IAClE,CAAC;IACJ,MAAM,CAAC,EAAE,CAAyB,OAAgC;QAChE,OAAO,IAAI,WAAW,CAAU,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,0EAA0E;IAC1E,SAAS,CACP,OAA6B;QAE7B,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,IAAI,CAAC,OAAO;YACf,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SAChD,CAAC,CAAA;IACJ,CAAC;CACF;AAED,SAAS,YAAY;IACnB,MAAM,OAAO,GAA2B,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC;SACC,SAAS,CAAC,gBAAgB,CAAC;SAC3B,SAAS,CAAC,gBAAgB,CAAC;QAC5B,mBAAmB;SAClB,SAAS,CAAC,gBAAgB,CAAC,CAAA;IAE9B,IAAI,CAAC,GAA2B,OAAO,CAAA;IACvC,mBAAmB;IACnB,IAAI,CAAC,GAA2B,OAAO,CAAA;IAEvC,WAAW,CAAC,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC,CAAA;IACF,WAAW,CAAC,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,MAAgB;QACzB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC,CAAA;AACJ,CAAC"}