runtime-resolver 0.3.13 → 0.3.14

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 (123) hide show
  1. package/bin/runtime-resolver.js +2 -3
  2. package/cli/commands/resolve.js +1 -2
  3. package/cli/schemas/json-schema.js +1 -2
  4. package/cli/schemas/response.js +1 -2
  5. package/data/bun-defaults.js +1 -2
  6. package/data/deno-defaults.js +5 -2
  7. package/data/node-defaults.js +1 -2
  8. package/errors/AuthenticationError.js +1 -2
  9. package/errors/CacheError.js +1 -2
  10. package/errors/FreshnessError.js +1 -2
  11. package/errors/InvalidInputError.js +1 -2
  12. package/errors/NetworkError.js +1 -2
  13. package/errors/ParseError.js +1 -2
  14. package/errors/RateLimitError.js +1 -2
  15. package/errors/VersionNotFoundError.js +1 -2
  16. package/index.js +1 -2
  17. package/layers/AutoBunCacheLive.js +1 -2
  18. package/layers/AutoDenoCacheLive.js +1 -2
  19. package/layers/AutoNodeCacheLive.js +1 -2
  20. package/layers/BunReleaseCacheLive.js +1 -2
  21. package/layers/BunResolverLive.js +1 -2
  22. package/layers/BunVersionFetcherLive.js +1 -2
  23. package/layers/DenoReleaseCacheLive.js +1 -2
  24. package/layers/DenoResolverLive.js +1 -2
  25. package/layers/DenoVersionFetcherLive.js +1 -2
  26. package/layers/FreshBunCacheLive.js +1 -2
  27. package/layers/FreshDenoCacheLive.js +1 -2
  28. package/layers/FreshNodeCacheLive.js +1 -2
  29. package/layers/GitHubAppAuth.js +1 -2
  30. package/layers/GitHubAutoAuth.js +1 -2
  31. package/layers/GitHubClientLive.js +1 -2
  32. package/layers/GitHubTokenAuth.js +1 -2
  33. package/layers/NodeReleaseCacheLive.js +1 -2
  34. package/layers/NodeResolverLive.js +1 -2
  35. package/layers/NodeScheduleFetcherLive.js +1 -2
  36. package/layers/NodeVersionFetcherLive.js +1 -2
  37. package/layers/OfflineBunCacheLive.js +1 -2
  38. package/layers/OfflineDenoCacheLive.js +1 -2
  39. package/layers/OfflineNodeCacheLive.js +1 -2
  40. package/layers/RuntimeCacheLive.js +1 -2
  41. package/lib/retry.js +1 -2
  42. package/lib/semver.js +1 -2
  43. package/package.json +5 -5
  44. package/schemas/bun-release.js +1 -2
  45. package/schemas/deno-release.js +1 -2
  46. package/schemas/github.js +1 -2
  47. package/schemas/node-release.js +1 -2
  48. package/schemas/node-schedule.js +1 -2
  49. package/schemas/node.js +1 -2
  50. package/services/BunReleaseCache.js +1 -2
  51. package/services/BunResolver.js +1 -2
  52. package/services/BunVersionFetcher.js +1 -2
  53. package/services/DenoReleaseCache.js +1 -2
  54. package/services/DenoResolver.js +1 -2
  55. package/services/DenoVersionFetcher.js +1 -2
  56. package/services/GitHubClient.js +1 -2
  57. package/services/NodeReleaseCache.js +1 -2
  58. package/services/NodeResolver.js +1 -2
  59. package/services/NodeScheduleFetcher.js +1 -2
  60. package/services/NodeVersionFetcher.js +1 -2
  61. package/services/OctokitInstance.js +1 -2
  62. package/tsdoc-metadata.json +1 -1
  63. package/bin/runtime-resolver.js.map +0 -1
  64. package/cli/commands/resolve.js.map +0 -1
  65. package/cli/schemas/json-schema.js.map +0 -1
  66. package/cli/schemas/response.js.map +0 -1
  67. package/data/bun-defaults.js.map +0 -1
  68. package/data/deno-defaults.js.map +0 -1
  69. package/data/node-defaults.js.map +0 -1
  70. package/errors/AuthenticationError.js.map +0 -1
  71. package/errors/CacheError.js.map +0 -1
  72. package/errors/FreshnessError.js.map +0 -1
  73. package/errors/InvalidInputError.js.map +0 -1
  74. package/errors/NetworkError.js.map +0 -1
  75. package/errors/ParseError.js.map +0 -1
  76. package/errors/RateLimitError.js.map +0 -1
  77. package/errors/VersionNotFoundError.js.map +0 -1
  78. package/index.d.ts.map +0 -1
  79. package/index.js.map +0 -1
  80. package/layers/AutoBunCacheLive.js.map +0 -1
  81. package/layers/AutoDenoCacheLive.js.map +0 -1
  82. package/layers/AutoNodeCacheLive.js.map +0 -1
  83. package/layers/BunReleaseCacheLive.js.map +0 -1
  84. package/layers/BunResolverLive.js.map +0 -1
  85. package/layers/BunVersionFetcherLive.js.map +0 -1
  86. package/layers/DenoReleaseCacheLive.js.map +0 -1
  87. package/layers/DenoResolverLive.js.map +0 -1
  88. package/layers/DenoVersionFetcherLive.js.map +0 -1
  89. package/layers/FreshBunCacheLive.js.map +0 -1
  90. package/layers/FreshDenoCacheLive.js.map +0 -1
  91. package/layers/FreshNodeCacheLive.js.map +0 -1
  92. package/layers/GitHubAppAuth.js.map +0 -1
  93. package/layers/GitHubAutoAuth.js.map +0 -1
  94. package/layers/GitHubClientLive.js.map +0 -1
  95. package/layers/GitHubTokenAuth.js.map +0 -1
  96. package/layers/NodeReleaseCacheLive.js.map +0 -1
  97. package/layers/NodeResolverLive.js.map +0 -1
  98. package/layers/NodeScheduleFetcherLive.js.map +0 -1
  99. package/layers/NodeVersionFetcherLive.js.map +0 -1
  100. package/layers/OfflineBunCacheLive.js.map +0 -1
  101. package/layers/OfflineDenoCacheLive.js.map +0 -1
  102. package/layers/OfflineNodeCacheLive.js.map +0 -1
  103. package/layers/RuntimeCacheLive.js.map +0 -1
  104. package/lib/retry.js.map +0 -1
  105. package/lib/semver.js.map +0 -1
  106. package/schemas/bun-release.js.map +0 -1
  107. package/schemas/deno-release.js.map +0 -1
  108. package/schemas/github.js.map +0 -1
  109. package/schemas/node-release.js.map +0 -1
  110. package/schemas/node-schedule.js.map +0 -1
  111. package/schemas/node.js.map +0 -1
  112. package/services/BunReleaseCache.js.map +0 -1
  113. package/services/BunResolver.js.map +0 -1
  114. package/services/BunVersionFetcher.js.map +0 -1
  115. package/services/DenoReleaseCache.js.map +0 -1
  116. package/services/DenoResolver.js.map +0 -1
  117. package/services/DenoVersionFetcher.js.map +0 -1
  118. package/services/GitHubClient.js.map +0 -1
  119. package/services/NodeReleaseCache.js.map +0 -1
  120. package/services/NodeResolver.js.map +0 -1
  121. package/services/NodeScheduleFetcher.js.map +0 -1
  122. package/services/NodeVersionFetcher.js.map +0 -1
  123. package/services/OctokitInstance.js.map +0 -1
@@ -25,7 +25,7 @@ const rootCommand = Command.make("runtime-resolver", {
25
25
  }, resolveHandler);
26
26
  const cli = Command.run(rootCommand, {
27
27
  name: "runtime-resolver",
28
- version: "0.3.13"
28
+ version: "0.3.14"
29
29
  });
30
30
  const main = Effect.suspend(() => cli(process.argv)).pipe(Effect.provide(NodeContext.layer), Effect.catchAllCause((cause) => {
31
31
  if (Cause.defects(cause).length > 0) return Console.error(Cause.pretty(cause)).pipe(Effect.andThen(Effect.failCause(cause)));
@@ -34,5 +34,4 @@ const main = Effect.suspend(() => cli(process.argv)).pipe(Effect.provide(NodeCon
34
34
  NodeRuntime.runMain(main);
35
35
 
36
36
  //#endregion
37
- export { };
38
- //# sourceMappingURL=runtime-resolver.js.map
37
+ export { };
@@ -236,5 +236,4 @@ const resolveHandler = (args) => Effect.gen(function* () {
236
236
  });
237
237
 
238
238
  //#endregion
239
- export { appIdOption, appInstallationIdOption, appPrivateKeyOption, bunDefaultOption, bunOption, denoDefaultOption, denoOption, incrementsOption, nodeDateOption, nodeDefaultOption, nodeOption, nodePhasesOption, prettyOption, resolveHandler, schemaOption, tokenOption };
240
- //# sourceMappingURL=resolve.js.map
239
+ export { appIdOption, appInstallationIdOption, appPrivateKeyOption, bunDefaultOption, bunOption, denoDefaultOption, denoOption, incrementsOption, nodeDateOption, nodeDefaultOption, nodeOption, nodePhasesOption, prettyOption, resolveHandler, schemaOption, tokenOption };
@@ -9,5 +9,4 @@ import { JSONSchema } from "effect";
9
9
  const cliJsonSchema = JSONSchema.make(CliResponse);
10
10
 
11
11
  //#endregion
12
- export { cliJsonSchema };
13
- //# sourceMappingURL=json-schema.js.map
12
+ export { cliJsonSchema };
@@ -83,5 +83,4 @@ const CliResponse = Schema.Union(CliSuccessResponse, CliErrorResponse).annotatio
83
83
  });
84
84
 
85
85
  //#endregion
86
- export { CliResponse };
87
- //# sourceMappingURL=response.js.map
86
+ export { CliResponse };
@@ -847,5 +847,4 @@ const bunDefaultInputs = [
847
847
  ];
848
848
 
849
849
  //#endregion
850
- export { bunDefaultInputs };
851
- //# sourceMappingURL=bun-defaults.js.map
850
+ export { bunDefaultInputs };
@@ -1,5 +1,9 @@
1
1
  //#region src/data/deno-defaults.ts
2
2
  const denoDefaultInputs = [
3
+ {
4
+ version: "2.8.3",
5
+ date: "2026-06-11T15:57:47Z"
6
+ },
3
7
  {
4
8
  version: "2.8.2",
5
9
  date: "2026-06-03T13:41:42Z"
@@ -1519,5 +1523,4 @@ const denoDefaultInputs = [
1519
1523
  ];
1520
1524
 
1521
1525
  //#endregion
1522
- export { denoDefaultInputs };
1523
- //# sourceMappingURL=deno-defaults.js.map
1526
+ export { denoDefaultInputs };
@@ -4397,5 +4397,4 @@ const nodeDefaultScheduleData = {
4397
4397
  };
4398
4398
 
4399
4399
  //#endregion
4400
- export { nodeDefaultInputs, nodeDefaultScheduleData };
4401
- //# sourceMappingURL=node-defaults.js.map
4400
+ export { nodeDefaultInputs, nodeDefaultScheduleData };
@@ -32,5 +32,4 @@ import { Data } from "effect";
32
32
  var AuthenticationError = class extends Data.TaggedError("AuthenticationError") {};
33
33
 
34
34
  //#endregion
35
- export { AuthenticationError };
36
- //# sourceMappingURL=AuthenticationError.js.map
35
+ export { AuthenticationError };
@@ -29,5 +29,4 @@ import { Data } from "effect";
29
29
  var CacheError = class extends Data.TaggedError("CacheError") {};
30
30
 
31
31
  //#endregion
32
- export { CacheError };
33
- //# sourceMappingURL=CacheError.js.map
32
+ export { CacheError };
@@ -35,5 +35,4 @@ import { Data } from "effect";
35
35
  var FreshnessError = class extends Data.TaggedError("FreshnessError") {};
36
36
 
37
37
  //#endregion
38
- export { FreshnessError };
39
- //# sourceMappingURL=FreshnessError.js.map
38
+ export { FreshnessError };
@@ -30,5 +30,4 @@ import { Data } from "effect";
30
30
  var InvalidInputError = class extends Data.TaggedError("InvalidInputError") {};
31
31
 
32
32
  //#endregion
33
- export { InvalidInputError };
34
- //# sourceMappingURL=InvalidInputError.js.map
33
+ export { InvalidInputError };
@@ -31,5 +31,4 @@ import { Data } from "effect";
31
31
  var NetworkError = class extends Data.TaggedError("NetworkError") {};
32
32
 
33
33
  //#endregion
34
- export { NetworkError };
35
- //# sourceMappingURL=NetworkError.js.map
34
+ export { NetworkError };
@@ -30,5 +30,4 @@ import { Data } from "effect";
30
30
  var ParseError = class extends Data.TaggedError("ParseError") {};
31
31
 
32
32
  //#endregion
33
- export { ParseError };
34
- //# sourceMappingURL=ParseError.js.map
33
+ export { ParseError };
@@ -36,5 +36,4 @@ import { Data } from "effect";
36
36
  var RateLimitError = class extends Data.TaggedError("RateLimitError") {};
37
37
 
38
38
  //#endregion
39
- export { RateLimitError };
40
- //# sourceMappingURL=RateLimitError.js.map
39
+ export { RateLimitError };
@@ -34,5 +34,4 @@ import { Data } from "effect";
34
34
  var VersionNotFoundError = class extends Data.TaggedError("VersionNotFoundError") {};
35
35
 
36
36
  //#endregion
37
- export { VersionNotFoundError };
38
- //# sourceMappingURL=VersionNotFoundError.js.map
37
+ export { VersionNotFoundError };
package/index.js CHANGED
@@ -163,5 +163,4 @@ const resolveDeno = (options) => Effect.runPromise(Effect.gen(function* () {
163
163
  }).pipe(Effect.provide(DenoLayer)));
164
164
 
165
165
  //#endregion
166
- export { AuthenticationError, AutoBunCacheLive, AutoDenoCacheLive, AutoNodeCacheLive, BunRelease, BunReleaseCache, BunReleaseCacheLive, BunResolver, BunResolverLive, BunVersionFetcher, BunVersionFetcherLive, CacheError, DenoRelease, DenoReleaseCache, DenoReleaseCacheLive, DenoResolver, DenoResolverLive, DenoVersionFetcher, DenoVersionFetcherLive, FreshBunCacheLive, FreshDenoCacheLive, FreshNodeCacheLive, FreshnessError, GitHubAppAuth, GitHubAutoAuth, GitHubClient, GitHubClientLive, GitHubTokenAuth, GitHubTokenAuthFromToken, InvalidInputError, NetworkError, NodeRelease, NodeReleaseCache, NodeReleaseCacheLive, NodeResolver, NodeResolverLive, NodeSchedule, NodeScheduleFetcher, NodeScheduleFetcherLive, NodeVersionFetcher, NodeVersionFetcherLive, OctokitInstance, OfflineBunCacheLive, OfflineDenoCacheLive, OfflineNodeCacheLive, ParseError, RateLimitError, VersionNotFoundError, createRuntimeCache, resolveBun, resolveDeno, resolveNode };
167
- //# sourceMappingURL=index.js.map
166
+ export { AuthenticationError, AutoBunCacheLive, AutoDenoCacheLive, AutoNodeCacheLive, BunRelease, BunReleaseCache, BunReleaseCacheLive, BunResolver, BunResolverLive, BunVersionFetcher, BunVersionFetcherLive, CacheError, DenoRelease, DenoReleaseCache, DenoReleaseCacheLive, DenoResolver, DenoResolverLive, DenoVersionFetcher, DenoVersionFetcherLive, FreshBunCacheLive, FreshDenoCacheLive, FreshNodeCacheLive, FreshnessError, GitHubAppAuth, GitHubAutoAuth, GitHubClient, GitHubClientLive, GitHubTokenAuth, GitHubTokenAuthFromToken, InvalidInputError, NetworkError, NodeRelease, NodeReleaseCache, NodeReleaseCacheLive, NodeResolver, NodeResolverLive, NodeSchedule, NodeScheduleFetcher, NodeScheduleFetcherLive, NodeVersionFetcher, NodeVersionFetcherLive, OctokitInstance, OfflineBunCacheLive, OfflineDenoCacheLive, OfflineNodeCacheLive, ParseError, RateLimitError, VersionNotFoundError, createRuntimeCache, resolveBun, resolveDeno, resolveNode };
@@ -44,5 +44,4 @@ const BaseCacheLayer = BunReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
44
44
  const AutoBunCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => setup.pipe(Effect.provide(ctx))));
45
45
 
46
46
  //#endregion
47
- export { AutoBunCacheLive };
48
- //# sourceMappingURL=AutoBunCacheLive.js.map
47
+ export { AutoBunCacheLive };
@@ -44,5 +44,4 @@ const BaseCacheLayer = DenoReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
44
44
  const AutoDenoCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => setup.pipe(Effect.provide(ctx))));
45
45
 
46
46
  //#endregion
47
- export { AutoDenoCacheLive };
48
- //# sourceMappingURL=AutoDenoCacheLive.js.map
47
+ export { AutoDenoCacheLive };
@@ -55,5 +55,4 @@ const BaseCacheLayer = NodeReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
55
55
  const AutoNodeCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => setup.pipe(Effect.provide(ctx))));
56
56
 
57
57
  //#endregion
58
- export { AutoNodeCacheLive };
59
- //# sourceMappingURL=AutoNodeCacheLive.js.map
58
+ export { AutoNodeCacheLive };
@@ -22,5 +22,4 @@ import { Layer } from "effect";
22
22
  const BunReleaseCacheLive = Layer.effect(BunReleaseCache, createRuntimeCache());
23
23
 
24
24
  //#endregion
25
- export { BunReleaseCacheLive };
26
- //# sourceMappingURL=BunReleaseCacheLive.js.map
25
+ export { BunReleaseCacheLive };
@@ -82,5 +82,4 @@ const BunResolverLive = Layer.effect(BunResolver, Effect.gen(function* () {
82
82
  }));
83
83
 
84
84
  //#endregion
85
- export { BunResolverLive };
86
- //# sourceMappingURL=BunResolverLive.js.map
85
+ export { BunResolverLive };
@@ -52,5 +52,4 @@ const BunVersionFetcherLive = Layer.effect(BunVersionFetcher, Effect.gen(functio
52
52
  }));
53
53
 
54
54
  //#endregion
55
- export { BunVersionFetcherLive };
56
- //# sourceMappingURL=BunVersionFetcherLive.js.map
55
+ export { BunVersionFetcherLive };
@@ -22,5 +22,4 @@ import { Layer } from "effect";
22
22
  const DenoReleaseCacheLive = Layer.effect(DenoReleaseCache, createRuntimeCache());
23
23
 
24
24
  //#endregion
25
- export { DenoReleaseCacheLive };
26
- //# sourceMappingURL=DenoReleaseCacheLive.js.map
25
+ export { DenoReleaseCacheLive };
@@ -81,5 +81,4 @@ const DenoResolverLive = Layer.effect(DenoResolver, Effect.gen(function* () {
81
81
  }));
82
82
 
83
83
  //#endregion
84
- export { DenoResolverLive };
85
- //# sourceMappingURL=DenoResolverLive.js.map
84
+ export { DenoResolverLive };
@@ -48,5 +48,4 @@ const DenoVersionFetcherLive = Layer.effect(DenoVersionFetcher, Effect.gen(funct
48
48
  }));
49
49
 
50
50
  //#endregion
51
- export { DenoVersionFetcherLive };
52
- //# sourceMappingURL=DenoVersionFetcherLive.js.map
51
+ export { DenoVersionFetcherLive };
@@ -57,5 +57,4 @@ const BaseCacheLayer = BunReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
57
57
  const FreshBunCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => freshSetup.pipe(Effect.provide(ctx))));
58
58
 
59
59
  //#endregion
60
- export { FreshBunCacheLive };
61
- //# sourceMappingURL=FreshBunCacheLive.js.map
60
+ export { FreshBunCacheLive };
@@ -57,5 +57,4 @@ const BaseCacheLayer = DenoReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
57
57
  const FreshDenoCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => freshSetup.pipe(Effect.provide(ctx))));
58
58
 
59
59
  //#endregion
60
- export { FreshDenoCacheLive };
61
- //# sourceMappingURL=FreshDenoCacheLive.js.map
60
+ export { FreshDenoCacheLive };
@@ -52,5 +52,4 @@ const BaseCacheLayer = NodeReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
52
52
  const FreshNodeCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => freshSetup.pipe(Effect.provide(ctx))));
53
53
 
54
54
  //#endregion
55
- export { FreshNodeCacheLive };
56
- //# sourceMappingURL=FreshNodeCacheLive.js.map
55
+ export { FreshNodeCacheLive };
@@ -55,5 +55,4 @@ const GitHubAppAuth = (config) => Layer.effect(OctokitInstance, Effect.tryPromis
55
55
  }));
56
56
 
57
57
  //#endregion
58
- export { GitHubAppAuth };
59
- //# sourceMappingURL=GitHubAppAuth.js.map
58
+ export { GitHubAppAuth };
@@ -67,5 +67,4 @@ const GitHubAutoAuth = Layer.effect(OctokitInstance, Effect.gen(function* () {
67
67
  }));
68
68
 
69
69
  //#endregion
70
- export { GitHubAutoAuth };
71
- //# sourceMappingURL=GitHubAutoAuth.js.map
70
+ export { GitHubAutoAuth };
@@ -127,5 +127,4 @@ const GitHubClientLive = Layer.effect(GitHubClient, Effect.gen(function* () {
127
127
  }));
128
128
 
129
129
  //#endregion
130
- export { GitHubClientLive };
131
- //# sourceMappingURL=GitHubClientLive.js.map
130
+ export { GitHubClientLive };
@@ -47,5 +47,4 @@ const GitHubTokenAuth = Layer.effect(OctokitInstance, Effect.gen(function* () {
47
47
  const GitHubTokenAuthFromToken = (token) => Layer.succeed(OctokitInstance, new Octokit({ auth: token }));
48
48
 
49
49
  //#endregion
50
- export { GitHubTokenAuth, GitHubTokenAuthFromToken };
51
- //# sourceMappingURL=GitHubTokenAuth.js.map
50
+ export { GitHubTokenAuth, GitHubTokenAuthFromToken };
@@ -74,5 +74,4 @@ const NodeReleaseCacheLive = Layer.effect(NodeReleaseCache, Effect.gen(function*
74
74
  }));
75
75
 
76
76
  //#endregion
77
- export { NodeReleaseCacheLive };
78
- //# sourceMappingURL=NodeReleaseCacheLive.js.map
77
+ export { NodeReleaseCacheLive };
@@ -104,5 +104,4 @@ const NodeResolverLive = Layer.effect(NodeResolver, Effect.gen(function* () {
104
104
  }));
105
105
 
106
106
  //#endregion
107
- export { NodeResolverLive };
108
- //# sourceMappingURL=NodeResolverLive.js.map
107
+ export { NodeResolverLive };
@@ -34,5 +34,4 @@ const NodeScheduleFetcherLive = Layer.effect(NodeScheduleFetcher, Effect.gen(fun
34
34
  }));
35
35
 
36
36
  //#endregion
37
- export { NodeScheduleFetcherLive };
38
- //# sourceMappingURL=NodeScheduleFetcherLive.js.map
37
+ export { NodeScheduleFetcherLive };
@@ -52,5 +52,4 @@ const NodeVersionFetcherLive = Layer.effect(NodeVersionFetcher, Effect.gen(funct
52
52
  }));
53
53
 
54
54
  //#endregion
55
- export { NodeVersionFetcherLive };
56
- //# sourceMappingURL=NodeVersionFetcherLive.js.map
55
+ export { NodeVersionFetcherLive };
@@ -37,5 +37,4 @@ const BaseCacheLayer = BunReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
37
37
  const OfflineBunCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => offlineSetup.pipe(Effect.provide(ctx))));
38
38
 
39
39
  //#endregion
40
- export { OfflineBunCacheLive };
41
- //# sourceMappingURL=OfflineBunCacheLive.js.map
40
+ export { OfflineBunCacheLive };
@@ -37,5 +37,4 @@ const BaseCacheLayer = DenoReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
37
37
  const OfflineDenoCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => offlineSetup.pipe(Effect.provide(ctx))));
38
38
 
39
39
  //#endregion
40
- export { OfflineDenoCacheLive };
41
- //# sourceMappingURL=OfflineDenoCacheLive.js.map
40
+ export { OfflineDenoCacheLive };
@@ -36,5 +36,4 @@ const BaseCacheLayer = NodeReleaseCacheLive.pipe(Layer.provide(SemVerLayer));
36
36
  const OfflineNodeCacheLive = BaseCacheLayer.pipe(Layer.tap((ctx) => offlineSetup.pipe(Effect.provide(ctx))));
37
37
 
38
38
  //#endregion
39
- export { OfflineNodeCacheLive };
40
- //# sourceMappingURL=OfflineNodeCacheLive.js.map
39
+ export { OfflineNodeCacheLive };
@@ -75,5 +75,4 @@ const createRuntimeCache = () => Effect.gen(function* () {
75
75
  });
76
76
 
77
77
  //#endregion
78
- export { createRuntimeCache };
79
- //# sourceMappingURL=RuntimeCacheLive.js.map
78
+ export { createRuntimeCache };
package/lib/retry.js CHANGED
@@ -24,5 +24,4 @@ const retryOnRateLimit = (effect) => effect.pipe(Effect.retry({
24
24
  }));
25
25
 
26
26
  //#endregion
27
- export { retryOnRateLimit };
28
- //# sourceMappingURL=retry.js.map
27
+ export { retryOnRateLimit };
package/lib/semver.js CHANGED
@@ -18,5 +18,4 @@ import { SemVer } from "semver-effect";
18
18
  const tryParseSemVer = (raw) => SemVer.parse(raw).pipe(Effect.map(Option.some), Effect.catchAll(() => Effect.succeed(Option.none())));
19
19
 
20
20
  //#endregion
21
- export { tryParseSemVer };
22
- //# sourceMappingURL=semver.js.map
21
+ export { tryParseSemVer };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runtime-resolver",
3
- "version": "0.3.13",
3
+ "version": "0.3.14",
4
4
  "private": false,
5
5
  "description": "Resolve semver-compatible versions of Node.js, Bun, and Deno runtimes with Effect-based architecture and offline fallback.",
6
6
  "keywords": [
@@ -48,10 +48,10 @@
48
48
  "semver-effect": "^0.2.1"
49
49
  },
50
50
  "peerDependencies": {
51
- "@effect/cli": "catalog:silkPeers",
52
- "@effect/platform": "catalog:silkPeers",
53
- "@effect/platform-node": "catalog:silkPeers",
54
- "effect": "catalog:silkPeers"
51
+ "@effect/cli": ">=0.75.2",
52
+ "@effect/platform": ">=0.96.0",
53
+ "@effect/platform-node": ">=0.107.0",
54
+ "effect": ">=3.21.0"
55
55
  },
56
56
  "engines": {
57
57
  "node": ">=24.11.0"
@@ -58,5 +58,4 @@ var BunRelease = class BunRelease extends Data.TaggedClass("BunRelease") {
58
58
  };
59
59
 
60
60
  //#endregion
61
- export { BunRelease };
62
- //# sourceMappingURL=bun-release.js.map
61
+ export { BunRelease };
@@ -58,5 +58,4 @@ var DenoRelease = class DenoRelease extends Data.TaggedClass("DenoRelease") {
58
58
  };
59
59
 
60
60
  //#endregion
61
- export { DenoRelease };
62
- //# sourceMappingURL=deno-release.js.map
61
+ export { DenoRelease };
package/schemas/github.js CHANGED
@@ -71,5 +71,4 @@ const GitHubRelease = Schema.Struct({
71
71
  const GitHubReleaseList = Schema.Array(GitHubRelease);
72
72
 
73
73
  //#endregion
74
- export { GitHubReleaseList, GitHubTagList };
75
- //# sourceMappingURL=github.js.map
74
+ export { GitHubReleaseList, GitHubTagList };
@@ -127,5 +127,4 @@ var NodeRelease = class NodeRelease {
127
127
  };
128
128
 
129
129
  //#endregion
130
- export { NodeRelease };
131
- //# sourceMappingURL=node-release.js.map
130
+ export { NodeRelease };
@@ -107,5 +107,4 @@ var NodeSchedule = class NodeSchedule extends Data.TaggedClass("NodeSchedule") {
107
107
  };
108
108
 
109
109
  //#endregion
110
- export { NodeSchedule };
111
- //# sourceMappingURL=node-schedule.js.map
110
+ export { NodeSchedule };
package/schemas/node.js CHANGED
@@ -65,5 +65,4 @@ const NodeReleaseSchedule = Schema.Record({
65
65
  });
66
66
 
67
67
  //#endregion
68
- export { NodeDistIndex, NodeReleaseSchedule };
69
- //# sourceMappingURL=node.js.map
68
+ export { NodeDistIndex, NodeReleaseSchedule };
@@ -30,5 +30,4 @@ import { Context } from "effect";
30
30
  var BunReleaseCache = class extends Context.Tag("runtime-resolver/BunReleaseCache")() {};
31
31
 
32
32
  //#endregion
33
- export { BunReleaseCache };
34
- //# sourceMappingURL=BunReleaseCache.js.map
33
+ export { BunReleaseCache };
@@ -33,5 +33,4 @@ import { Context } from "effect";
33
33
  var BunResolver = class extends Context.Tag("runtime-resolver/BunResolver")() {};
34
34
 
35
35
  //#endregion
36
- export { BunResolver };
37
- //# sourceMappingURL=BunResolver.js.map
36
+ export { BunResolver };
@@ -38,5 +38,4 @@ import { Context } from "effect";
38
38
  var BunVersionFetcher = class extends Context.Tag("runtime-resolver/BunVersionFetcher")() {};
39
39
 
40
40
  //#endregion
41
- export { BunVersionFetcher };
42
- //# sourceMappingURL=BunVersionFetcher.js.map
41
+ export { BunVersionFetcher };
@@ -30,5 +30,4 @@ import { Context } from "effect";
30
30
  var DenoReleaseCache = class extends Context.Tag("runtime-resolver/DenoReleaseCache")() {};
31
31
 
32
32
  //#endregion
33
- export { DenoReleaseCache };
34
- //# sourceMappingURL=DenoReleaseCache.js.map
33
+ export { DenoReleaseCache };
@@ -33,5 +33,4 @@ import { Context } from "effect";
33
33
  var DenoResolver = class extends Context.Tag("runtime-resolver/DenoResolver")() {};
34
34
 
35
35
  //#endregion
36
- export { DenoResolver };
37
- //# sourceMappingURL=DenoResolver.js.map
36
+ export { DenoResolver };
@@ -38,5 +38,4 @@ import { Context } from "effect";
38
38
  var DenoVersionFetcher = class extends Context.Tag("runtime-resolver/DenoVersionFetcher")() {};
39
39
 
40
40
  //#endregion
41
- export { DenoVersionFetcher };
42
- //# sourceMappingURL=DenoVersionFetcher.js.map
41
+ export { DenoVersionFetcher };
@@ -37,5 +37,4 @@ import { Context } from "effect";
37
37
  var GitHubClient = class extends Context.Tag("runtime-resolver/GitHubClient")() {};
38
38
 
39
39
  //#endregion
40
- export { GitHubClient };
41
- //# sourceMappingURL=GitHubClient.js.map
40
+ export { GitHubClient };
@@ -38,5 +38,4 @@ import { Context } from "effect";
38
38
  var NodeReleaseCache = class extends Context.Tag("runtime-resolver/NodeReleaseCache")() {};
39
39
 
40
40
  //#endregion
41
- export { NodeReleaseCache };
42
- //# sourceMappingURL=NodeReleaseCache.js.map
41
+ export { NodeReleaseCache };
@@ -41,5 +41,4 @@ import { Context } from "effect";
41
41
  var NodeResolver = class extends Context.Tag("runtime-resolver/NodeResolver")() {};
42
42
 
43
43
  //#endregion
44
- export { NodeResolver };
45
- //# sourceMappingURL=NodeResolver.js.map
44
+ export { NodeResolver };
@@ -35,5 +35,4 @@ import { Context } from "effect";
35
35
  var NodeScheduleFetcher = class extends Context.Tag("runtime-resolver/NodeScheduleFetcher")() {};
36
36
 
37
37
  //#endregion
38
- export { NodeScheduleFetcher };
39
- //# sourceMappingURL=NodeScheduleFetcher.js.map
38
+ export { NodeScheduleFetcher };
@@ -36,5 +36,4 @@ import { Context } from "effect";
36
36
  var NodeVersionFetcher = class extends Context.Tag("runtime-resolver/NodeVersionFetcher")() {};
37
37
 
38
38
  //#endregion
39
- export { NodeVersionFetcher };
40
- //# sourceMappingURL=NodeVersionFetcher.js.map
39
+ export { NodeVersionFetcher };
@@ -41,5 +41,4 @@ import { Context } from "effect";
41
41
  var OctokitInstance = class extends Context.Tag("runtime-resolver/OctokitInstance")() {};
42
42
 
43
43
  //#endregion
44
- export { OctokitInstance };
45
- //# sourceMappingURL=OctokitInstance.js.map
44
+ export { OctokitInstance };
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.58.8"
8
+ "packageVersion": "7.58.9"
9
9
  }
10
10
  ]
11
11
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-resolver.js","names":[],"sources":["../../../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n/* v8 ignore start - CLI entry point requires integration testing */\nimport { Command } from \"@effect/cli\";\nimport { NodeContext, NodeRuntime } from \"@effect/platform-node\";\nimport { Cause, Console, Effect } from \"effect\";\n\nimport {\n\tappIdOption,\n\tappInstallationIdOption,\n\tappPrivateKeyOption,\n\tbunDefaultOption,\n\tbunOption,\n\tdenoDefaultOption,\n\tdenoOption,\n\tincrementsOption,\n\tnodeDateOption,\n\tnodeDefaultOption,\n\tnodeOption,\n\tnodePhasesOption,\n\tprettyOption,\n\tresolveHandler,\n\tschemaOption,\n\ttokenOption,\n} from \"./commands/resolve.js\";\n\nconst rootCommand = Command.make(\n\t\"runtime-resolver\",\n\t{\n\t\tnode: nodeOption,\n\t\tbun: bunOption,\n\t\tdeno: denoOption,\n\t\tnodePhases: nodePhasesOption,\n\t\tincrements: incrementsOption,\n\t\tnodeDefault: nodeDefaultOption,\n\t\tbunDefault: bunDefaultOption,\n\t\tdenoDefault: denoDefaultOption,\n\t\tnodeDate: nodeDateOption,\n\t\tpretty: prettyOption,\n\t\tschema: schemaOption,\n\t\ttoken: tokenOption,\n\t\tappId: appIdOption,\n\t\tappPrivateKey: appPrivateKeyOption,\n\t\tappInstallationId: appInstallationIdOption,\n\t},\n\tresolveHandler,\n);\n\nconst cli = Command.run(rootCommand, {\n\tname: \"runtime-resolver\",\n\tversion: process.env.__PACKAGE_VERSION__ ?? \"0.0.0\",\n});\n\nconst main = Effect.suspend(() => cli(process.argv)).pipe(\n\tEffect.provide(NodeContext.layer),\n\tEffect.catchAllCause((cause) => {\n\t\tconst defects = Cause.defects(cause);\n\t\tif (defects.length > 0) {\n\t\t\treturn Console.error(Cause.pretty(cause)).pipe(Effect.andThen(Effect.failCause(cause)));\n\t\t}\n\t\treturn Effect.failCause(cause);\n\t}),\n);\n\nNodeRuntime.runMain(main);\n"],"mappings":";;;;;;;;AAyBA,MAAM,cAAc,QAAQ,KAC3B,oBACA;CACC,MAAM;CACN,KAAK;CACL,MAAM;CACN,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,aAAa;CACb,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,OAAO;CACP,eAAe;CACf,mBAAmB;AACpB,GACA,cACD;AAEA,MAAM,MAAM,QAAQ,IAAI,aAAa;CACpC,MAAM;CACN;AACD,CAAC;AAED,MAAM,OAAO,OAAO,cAAc,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,KACpD,OAAO,QAAQ,YAAY,KAAK,GAChC,OAAO,eAAe,UAAU;CAE/B,IADgB,MAAM,QAAQ,KACpB,CAAC,CAAC,SAAS,GACpB,OAAO,QAAQ,MAAM,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,QAAQ,OAAO,UAAU,KAAK,CAAC,CAAC;CAEvF,OAAO,OAAO,UAAU,KAAK;AAC9B,CAAC,CACF;AAEA,YAAY,QAAQ,IAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve.js","names":[],"sources":["../../../../../src/cli/commands/resolve.ts"],"sourcesContent":["/* v8 ignore start */\nimport { readFileSync } from \"node:fs\";\nimport { Options } from \"@effect/cli\";\nimport { Console, Effect, Layer, Option } from \"effect\";\nimport type { AuthenticationError } from \"../../errors/AuthenticationError.js\";\nimport { AutoBunCacheLive } from \"../../layers/AutoBunCacheLive.js\";\nimport { AutoDenoCacheLive } from \"../../layers/AutoDenoCacheLive.js\";\nimport { AutoNodeCacheLive } from \"../../layers/AutoNodeCacheLive.js\";\nimport { BunResolverLive } from \"../../layers/BunResolverLive.js\";\nimport { BunVersionFetcherLive } from \"../../layers/BunVersionFetcherLive.js\";\nimport { DenoResolverLive } from \"../../layers/DenoResolverLive.js\";\nimport { DenoVersionFetcherLive } from \"../../layers/DenoVersionFetcherLive.js\";\nimport { GitHubAppAuth } from \"../../layers/GitHubAppAuth.js\";\nimport { GitHubAutoAuth } from \"../../layers/GitHubAutoAuth.js\";\nimport { GitHubClientLive } from \"../../layers/GitHubClientLive.js\";\nimport { GitHubTokenAuthFromToken } from \"../../layers/GitHubTokenAuth.js\";\nimport { NodeResolverLive } from \"../../layers/NodeResolverLive.js\";\nimport { NodeScheduleFetcherLive } from \"../../layers/NodeScheduleFetcherLive.js\";\nimport { NodeVersionFetcherLive } from \"../../layers/NodeVersionFetcherLive.js\";\nimport type { Increments, NodePhase } from \"../../schemas/common.js\";\nimport { BunResolver } from \"../../services/BunResolver.js\";\nimport { DenoResolver } from \"../../services/DenoResolver.js\";\nimport { NodeResolver } from \"../../services/NodeResolver.js\";\nimport type { OctokitInstance } from \"../../services/OctokitInstance.js\";\nimport type { CliResponse, CliRuntimeResult } from \"../schemas/response.js\";\n\nconst GitHubLayer = GitHubClientLive.pipe(Layer.provide(GitHubAutoAuth));\n\nconst makeNodeLayer = (authOverride?: Layer.Layer<OctokitInstance, AuthenticationError>) => {\n\tconst ghLayer = authOverride ? GitHubClientLive.pipe(Layer.provide(authOverride)) : GitHubLayer;\n\tconst fetchersLayer = Layer.merge(\n\t\tNodeVersionFetcherLive.pipe(Layer.provide(ghLayer)),\n\t\tNodeScheduleFetcherLive.pipe(Layer.provide(ghLayer)),\n\t);\n\treturn NodeResolverLive.pipe(Layer.provide(AutoNodeCacheLive.pipe(Layer.provide(fetchersLayer))));\n};\n\nconst makeBunLayer = (authOverride?: Layer.Layer<OctokitInstance, AuthenticationError>) => {\n\tconst ghLayer = authOverride ? GitHubClientLive.pipe(Layer.provide(authOverride)) : GitHubLayer;\n\treturn BunResolverLive.pipe(\n\t\tLayer.provide(AutoBunCacheLive.pipe(Layer.provide(BunVersionFetcherLive.pipe(Layer.provide(ghLayer))))),\n\t);\n};\n\nconst makeDenoLayer = (authOverride?: Layer.Layer<OctokitInstance, AuthenticationError>) => {\n\tconst ghLayer = authOverride ? GitHubClientLive.pipe(Layer.provide(authOverride)) : GitHubLayer;\n\treturn DenoResolverLive.pipe(\n\t\tLayer.provide(AutoDenoCacheLive.pipe(Layer.provide(DenoVersionFetcherLive.pipe(Layer.provide(ghLayer))))),\n\t);\n};\n\nconst SCHEMA_URL = \"https://raw.githubusercontent.com/spencerbeggs/runtime-resolver/main/runtime-resolver.schema.json\";\n\n// --- Options ---\n\nexport const nodeOption = Options.text(\"node\").pipe(Options.optional);\nexport const bunOption = Options.text(\"bun\").pipe(Options.optional);\nexport const denoOption = Options.text(\"deno\").pipe(Options.optional);\nexport const nodePhasesOption = Options.text(\"node-phases\").pipe(Options.optional);\nexport const incrementsOption = Options.text(\"increments\").pipe(Options.optional);\nexport const nodeDefaultOption = Options.text(\"node-default\").pipe(Options.optional);\nexport const bunDefaultOption = Options.text(\"bun-default\").pipe(Options.optional);\nexport const denoDefaultOption = Options.text(\"deno-default\").pipe(Options.optional);\nexport const nodeDateOption = Options.text(\"node-date\").pipe(Options.optional);\nexport const prettyOption = Options.boolean(\"pretty\").pipe(Options.withDefault(false));\nexport const schemaOption = Options.boolean(\"schema\").pipe(Options.withDefault(false));\nexport const tokenOption = Options.text(\"token\").pipe(Options.optional);\nexport const appIdOption = Options.text(\"app-id\").pipe(Options.optional);\nexport const appPrivateKeyOption = Options.text(\"app-private-key\").pipe(Options.optional);\nexport const appInstallationIdOption = Options.text(\"app-installation-id\").pipe(Options.optional);\n\n// --- Validation helpers ---\n\nconst VALID_PHASES = [\"current\", \"active-lts\", \"maintenance-lts\", \"end-of-life\"] as const;\nconst VALID_INCREMENTS = [\"latest\", \"minor\", \"patch\"] as const;\n\nconst validatePhases = (raw: string): NodePhase[] => {\n\tconst phases = raw.split(\",\").map((s) => s.trim());\n\tfor (const p of phases) {\n\t\tif (!(VALID_PHASES as readonly string[]).includes(p)) {\n\t\t\tthrow new Error(`Invalid phase: \"${p}\". Valid values: ${VALID_PHASES.join(\", \")}`);\n\t\t}\n\t}\n\treturn phases as NodePhase[];\n};\n\nconst validateIncrements = (raw: string): Increments => {\n\tif (!(VALID_INCREMENTS as readonly string[]).includes(raw)) {\n\t\tthrow new Error(`Invalid increments value: \"${raw}\". Valid values: ${VALID_INCREMENTS.join(\", \")}`);\n\t}\n\treturn raw as Increments;\n};\n\n// --- Error serialization ---\n\nconst serializeError = (error: unknown): { _tag: string; message: string; [key: string]: unknown } => {\n\tif (error && typeof error === \"object\" && \"_tag\" in error && \"message\" in error) {\n\t\tconst { _tag, message, ...rest } = error as { _tag: string; message: string; [key: string]: unknown };\n\t\treturn { _tag, message, ...rest };\n\t}\n\treturn {\n\t\t_tag: \"UnknownError\",\n\t\tmessage: error instanceof Error ? error.message : String(error),\n\t};\n};\n\n// --- Runtime resolution helpers ---\n\ntype RuntimeEntry = readonly [string, CliRuntimeResult];\n\nconst toSuccess = (\n\tname: string,\n\tresult: {\n\t\tsource: string;\n\t\tversions: readonly string[];\n\t\tlatest: string;\n\t\tlts?: string | undefined;\n\t\tdefault?: string | undefined;\n\t},\n): RuntimeEntry => [\n\tname,\n\t{\n\t\tok: true as const,\n\t\tsource: result.source,\n\t\tversions: [...result.versions],\n\t\tlatest: result.latest,\n\t\t...(result.lts !== undefined ? { lts: result.lts } : {}),\n\t\t...(result.default !== undefined ? { default: result.default } : {}),\n\t},\n];\n\nconst toError = (name: string, error: unknown): RuntimeEntry => [\n\tname,\n\t{ ok: false as const, error: serializeError(error) },\n];\n\nconst resolveNode = (\n\tsemverRange: string,\n\tphases?: NodePhase[],\n\tincrements?: Increments,\n\tdefaultVersion?: string,\n\tdate?: Date,\n\tauthOverride?: Layer.Layer<OctokitInstance, AuthenticationError>,\n): Effect.Effect<RuntimeEntry> =>\n\tEffect.gen(function* () {\n\t\tconst resolver = yield* NodeResolver;\n\t\tconst result = yield* resolver.resolve({\n\t\t\tsemverRange,\n\t\t\t...(phases ? { phases } : {}),\n\t\t\t...(increments ? { increments } : {}),\n\t\t\t...(defaultVersion ? { defaultVersion } : {}),\n\t\t\t...(date ? { date } : {}),\n\t\t});\n\t\treturn toSuccess(\"node\", result);\n\t}).pipe(\n\t\tEffect.provide(makeNodeLayer(authOverride)),\n\t\tEffect.catchAll((error) => Effect.succeed(toError(\"node\", error))),\n\t);\n\nconst resolveBun = (\n\tsemverRange: string,\n\tincrements?: Increments,\n\tdefaultVersion?: string,\n\tauthOverride?: Layer.Layer<OctokitInstance, AuthenticationError>,\n): Effect.Effect<RuntimeEntry> =>\n\tEffect.gen(function* () {\n\t\tconst resolver = yield* BunResolver;\n\t\tconst result = yield* resolver.resolve({\n\t\t\tsemverRange,\n\t\t\t...(increments ? { increments } : {}),\n\t\t\t...(defaultVersion ? { defaultVersion } : {}),\n\t\t});\n\t\treturn toSuccess(\"bun\", result);\n\t}).pipe(\n\t\tEffect.provide(makeBunLayer(authOverride)),\n\t\tEffect.catchAll((error) => Effect.succeed(toError(\"bun\", error))),\n\t);\n\nconst resolveDeno = (\n\tsemverRange: string,\n\tincrements?: Increments,\n\tdefaultVersion?: string,\n\tauthOverride?: Layer.Layer<OctokitInstance, AuthenticationError>,\n): Effect.Effect<RuntimeEntry> =>\n\tEffect.gen(function* () {\n\t\tconst resolver = yield* DenoResolver;\n\t\tconst result = yield* resolver.resolve({\n\t\t\tsemverRange,\n\t\t\t...(increments ? { increments } : {}),\n\t\t\t...(defaultVersion ? { defaultVersion } : {}),\n\t\t});\n\t\treturn toSuccess(\"deno\", result);\n\t}).pipe(\n\t\tEffect.provide(makeDenoLayer(authOverride)),\n\t\tEffect.catchAll((error) => Effect.succeed(toError(\"deno\", error))),\n\t);\n\n// --- Response serialization ---\n\nconst formatResponse = (ok: CliResponse[\"ok\"], results: Record<string, CliRuntimeResult>, pretty: boolean): string => {\n\tconst response = { $schema: SCHEMA_URL, ok, results } satisfies CliResponse & { $schema: string };\n\treturn JSON.stringify(response, null, pretty ? 2 : undefined);\n};\n\n// --- Handler ---\n\nexport const resolveHandler = (args: {\n\treadonly node: Option.Option<string>;\n\treadonly bun: Option.Option<string>;\n\treadonly deno: Option.Option<string>;\n\treadonly nodePhases: Option.Option<string>;\n\treadonly increments: Option.Option<string>;\n\treadonly nodeDefault: Option.Option<string>;\n\treadonly bunDefault: Option.Option<string>;\n\treadonly denoDefault: Option.Option<string>;\n\treadonly nodeDate: Option.Option<string>;\n\treadonly pretty: boolean;\n\treadonly schema: boolean;\n\treadonly token: Option.Option<string>;\n\treadonly appId: Option.Option<string>;\n\treadonly appPrivateKey: Option.Option<string>;\n\treadonly appInstallationId: Option.Option<string>;\n}) =>\n\tEffect.gen(function* () {\n\t\t// Handle --schema flag with strict validation\n\t\tif (args.schema) {\n\t\t\tconst resolveFlags = [\n\t\t\t\targs.node,\n\t\t\t\targs.bun,\n\t\t\t\targs.deno,\n\t\t\t\targs.nodePhases,\n\t\t\t\targs.increments,\n\t\t\t\targs.nodeDefault,\n\t\t\t\targs.bunDefault,\n\t\t\t\targs.denoDefault,\n\t\t\t\targs.nodeDate,\n\t\t\t\targs.token,\n\t\t\t\targs.appId,\n\t\t\t\targs.appPrivateKey,\n\t\t\t\targs.appInstallationId,\n\t\t\t];\n\t\t\tconst hasResolveFlags = resolveFlags.some((f) => Option.isSome(f));\n\t\t\tif (hasResolveFlags) {\n\t\t\t\tyield* Console.error(\"Error: --schema cannot be combined with resolve flags (--node, --bun, --deno, etc.)\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { cliJsonSchema } = yield* Effect.promise(() => import(\"../schemas/json-schema.js\"));\n\t\t\tyield* Console.log(JSON.stringify(cliJsonSchema, null, 2));\n\t\t\treturn;\n\t\t}\n\n\t\t// Auth flag validation\n\t\tconst hasToken = Option.isSome(args.token);\n\t\tconst hasAppId = Option.isSome(args.appId);\n\t\tconst hasAppPrivateKey = Option.isSome(args.appPrivateKey);\n\t\tconst hasAppInstallationId = Option.isSome(args.appInstallationId);\n\n\t\tif (hasToken && (hasAppId || hasAppPrivateKey)) {\n\t\t\tyield* Console.error(\"Error: --token and --app-id/--app-private-key are mutually exclusive\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (hasAppId !== hasAppPrivateKey) {\n\t\t\tyield* Console.error(\"Error: --app-id and --app-private-key must both be provided\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (hasAppInstallationId && !hasAppId) {\n\t\t\tyield* Console.error(\"Error: --app-installation-id requires --app-id and --app-private-key\");\n\t\t\treturn;\n\t\t}\n\n\t\t// Resolve private key (@ prefix means file path)\n\t\tlet resolvedPrivateKey: string | undefined;\n\t\tif (hasAppPrivateKey) {\n\t\t\tconst keyValue = args.appPrivateKey.value;\n\t\t\tif (keyValue.startsWith(\"@\")) {\n\t\t\t\tconst filePath = keyValue.slice(1);\n\t\t\t\ttry {\n\t\t\t\t\tresolvedPrivateKey = readFileSync(filePath, \"utf-8\");\n\t\t\t\t} catch {\n\t\t\t\t\tyield* Console.error(`Error: Cannot read private key file: ${filePath}`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresolvedPrivateKey = keyValue;\n\t\t\t}\n\t\t}\n\n\t\t// Construct auth layer override if CLI flags provided\n\t\tlet authLayerOverride: Layer.Layer<OctokitInstance, AuthenticationError> | undefined;\n\t\tif (hasToken) {\n\t\t\tauthLayerOverride = GitHubTokenAuthFromToken(args.token.value);\n\t\t} else if (hasAppId && resolvedPrivateKey) {\n\t\t\tauthLayerOverride = GitHubAppAuth({\n\t\t\t\tappId: args.appId.value,\n\t\t\t\tprivateKey: resolvedPrivateKey,\n\t\t\t\t...(hasAppInstallationId ? { installationId: Number(args.appInstallationId.value) } : {}),\n\t\t\t});\n\t\t}\n\n\t\tconst hasNode = Option.isSome(args.node);\n\t\tconst hasBun = Option.isSome(args.bun);\n\t\tconst hasDeno = Option.isSome(args.deno);\n\n\t\tif (!hasNode && !hasBun && !hasDeno) {\n\t\t\tyield* Console.error(\n\t\t\t\t\"No runtime specified. Use --node, --bun, or --deno to resolve versions.\\nRun with --help for usage information.\",\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\t// Validate and extract phases\n\t\tlet validatedPhases: NodePhase[] | undefined;\n\t\tif (Option.isSome(args.nodePhases)) {\n\t\t\ttry {\n\t\t\t\tvalidatedPhases = validatePhases(args.nodePhases.value);\n\t\t\t} catch (e) {\n\t\t\t\tyield* Console.error((e as Error).message);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Validate and extract increments\n\t\tlet validatedIncrements: Increments | undefined;\n\t\tif (Option.isSome(args.increments)) {\n\t\t\ttry {\n\t\t\t\tvalidatedIncrements = validateIncrements(args.increments.value);\n\t\t\t} catch (e) {\n\t\t\t\tyield* Console.error((e as Error).message);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Parse node date\n\t\tlet nodeDate: Date | undefined;\n\t\tif (Option.isSome(args.nodeDate)) {\n\t\t\tnodeDate = new Date(args.nodeDate.value);\n\t\t\tif (Number.isNaN(nodeDate.getTime())) {\n\t\t\t\tyield* Console.error(`Invalid date: \"${args.nodeDate.value}\". Use ISO 8601 format (e.g. 2024-01-15).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Resolve each requested runtime independently\n\t\tconst tasks: Effect.Effect<RuntimeEntry>[] = [];\n\n\t\tif (hasNode) {\n\t\t\tconst nodeDefaultVersion = Option.isSome(args.nodeDefault) ? args.nodeDefault.value : undefined;\n\t\t\ttasks.push(\n\t\t\t\tresolveNode(\n\t\t\t\t\targs.node.value,\n\t\t\t\t\tvalidatedPhases,\n\t\t\t\t\tvalidatedIncrements,\n\t\t\t\t\tnodeDefaultVersion,\n\t\t\t\t\tnodeDate,\n\t\t\t\t\tauthLayerOverride,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (hasBun) {\n\t\t\tconst bunDefaultVersion = Option.isSome(args.bunDefault) ? args.bunDefault.value : undefined;\n\t\t\ttasks.push(resolveBun(args.bun.value, validatedIncrements, bunDefaultVersion, authLayerOverride));\n\t\t}\n\t\tif (hasDeno) {\n\t\t\tconst denoDefaultVersion = Option.isSome(args.denoDefault) ? args.denoDefault.value : undefined;\n\t\t\ttasks.push(resolveDeno(args.deno.value, validatedIncrements, denoDefaultVersion, authLayerOverride));\n\t\t}\n\n\t\tconst entries = yield* Effect.all(tasks, { concurrency: \"unbounded\" });\n\t\tconst results: Record<string, CliRuntimeResult> = Object.fromEntries(entries);\n\t\tconst hasError = Object.values(results).some((r) => !r.ok);\n\n\t\tyield* Console.log(formatResponse(!hasError as CliResponse[\"ok\"], results, args.pretty));\n\t});\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-schema.js","names":[],"sources":["../../../../../src/cli/schemas/json-schema.ts"],"sourcesContent":["import { JSONSchema } from \"effect\";\nimport { CliResponse } from \"./response.js\";\n\n/**\n * JSON Schema for the CLI response envelope.\n * Used by --schema flag and can be published alongside the package.\n */\nexport const cliJsonSchema = JSONSchema.make(CliResponse);\n"],"mappings":";;;;;;;;AAOA,MAAa,gBAAgB,WAAW,KAAK,WAAW"}