runtime-resolver 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,12 @@
1
- import { Cause, Console, Context, Data, DateTime, Effect, JSONSchema, Layer, Option, Predicate, Ref, Schedule, Schema } from "effect";
1
+ import { Context, Data, DateTime, Effect, Layer, Option, Predicate, Ref, Schedule, Schema } from "effect";
2
2
  import { Range, SemVer, SemVerParserLive, VersionCache, VersionCacheLive } from "semver-effect";
3
3
  import { Octokit } from "octokit";
4
4
  import { createAppAuth } from "@octokit/auth-app";
5
5
  const bunDefaultInputs = [
6
+ {
7
+ version: "1.3.11",
8
+ date: "2026-03-18T04:31:40Z"
9
+ },
6
10
  {
7
11
  version: "1.3.10",
8
12
  date: "2026-02-26T07:08:20Z"
@@ -398,17 +402,12 @@ const bunDefaultInputs = [
398
402
  {
399
403
  version: "1.0.19",
400
404
  date: "2023-12-22T08:35:06Z"
401
- },
402
- {
403
- version: "1.0.18",
404
- date: "2023-12-14T08:05:14Z"
405
405
  }
406
406
  ];
407
- const BunReleaseBase = Data.TaggedClass("BunRelease");
408
- class BunRelease extends BunReleaseBase {
407
+ class BunRelease extends Data.TaggedClass("BunRelease") {
409
408
  static fromInput(input) {
410
409
  return Effect.gen(function*() {
411
- const version = yield* SemVer.fromString(input.version);
410
+ const version = yield* SemVer.parse(input.version);
412
411
  const date = input.date ? DateTime.unsafeMake(input.date) : DateTime.unsafeMake(new Date());
413
412
  return new BunRelease({
414
413
  version,
@@ -417,8 +416,10 @@ class BunRelease extends BunReleaseBase {
417
416
  });
418
417
  }
419
418
  }
420
- const BunReleaseCache = Context.GenericTag("BunReleaseCache");
421
- const BunVersionFetcher = Context.GenericTag("BunVersionFetcher");
419
+ class BunReleaseCache extends Context.Tag("runtime-resolver/BunReleaseCache")() {
420
+ }
421
+ class BunVersionFetcher extends Context.Tag("runtime-resolver/BunVersionFetcher")() {
422
+ }
422
423
  const createRuntimeCache = ()=>Effect.gen(function*() {
423
424
  const innerCache = yield* VersionCache;
424
425
  const lookupMap = new Map();
@@ -434,7 +435,7 @@ const createRuntimeCache = ()=>Effect.gen(function*() {
434
435
  yield* innerCache.load(versions);
435
436
  }),
436
437
  resolve: (range)=>Effect.gen(function*() {
437
- const parsed = yield* Range.fromString(range);
438
+ const parsed = yield* Range.parse(range);
438
439
  const resolved = yield* innerCache.resolve(parsed);
439
440
  const release = lookupMap.get(resolved.toString());
440
441
  if (!release) return yield* Effect.die(new Error(`Cache inconsistency: ${resolved.toString()} not in lookup map`));
@@ -445,7 +446,7 @@ const createRuntimeCache = ()=>Effect.gen(function*() {
445
446
  return versions.map((v)=>lookupMap.get(v.toString())).filter((r)=>void 0 !== r);
446
447
  }),
447
448
  filter: (range)=>Effect.gen(function*() {
448
- const parsed = yield* Range.fromString(range);
449
+ const parsed = yield* Range.parse(range);
449
450
  const filtered = yield* innerCache.filter(parsed).pipe(Effect.catchTag("EmptyCacheError", ()=>Effect.succeed([])));
450
451
  return filtered.map((v)=>lookupMap.get(v.toString())).filter((r)=>void 0 !== r);
451
452
  }),
@@ -885,11 +886,10 @@ const denoDefaultInputs = [
885
886
  date: "2024-04-16T01:46:33Z"
886
887
  }
887
888
  ];
888
- const DenoReleaseBase = Data.TaggedClass("DenoRelease");
889
- class DenoRelease extends DenoReleaseBase {
889
+ class DenoRelease extends Data.TaggedClass("DenoRelease") {
890
890
  static fromInput(input) {
891
891
  return Effect.gen(function*() {
892
- const version = yield* SemVer.fromString(input.version);
892
+ const version = yield* SemVer.parse(input.version);
893
893
  const date = input.date ? DateTime.unsafeMake(input.date) : DateTime.unsafeMake(new Date());
894
894
  return new DenoRelease({
895
895
  version,
@@ -898,8 +898,10 @@ class DenoRelease extends DenoReleaseBase {
898
898
  });
899
899
  }
900
900
  }
901
- const DenoReleaseCache = Context.GenericTag("DenoReleaseCache");
902
- const DenoVersionFetcher = Context.GenericTag("DenoVersionFetcher");
901
+ class DenoReleaseCache extends Context.Tag("runtime-resolver/DenoReleaseCache")() {
902
+ }
903
+ class DenoVersionFetcher extends Context.Tag("runtime-resolver/DenoVersionFetcher")() {
904
+ }
903
905
  const DenoReleaseCacheLive = Layer.effect(DenoReleaseCache, createRuntimeCache());
904
906
  const AutoDenoCacheLive_setup = Effect.gen(function*() {
905
907
  const cache = yield* DenoReleaseCache;
@@ -5248,9 +5250,12 @@ const nodeDefaultScheduleData = {
5248
5250
  codename: ""
5249
5251
  }
5250
5252
  };
5251
- const NodeReleaseCache = Context.GenericTag("NodeReleaseCache");
5252
- const NodeScheduleFetcher = Context.GenericTag("NodeScheduleFetcher");
5253
- const NodeVersionFetcher = Context.GenericTag("NodeVersionFetcher");
5253
+ class NodeReleaseCache extends Context.Tag("runtime-resolver/NodeReleaseCache")() {
5254
+ }
5255
+ class NodeScheduleFetcher extends Context.Tag("runtime-resolver/NodeScheduleFetcher")() {
5256
+ }
5257
+ class NodeVersionFetcher extends Context.Tag("runtime-resolver/NodeVersionFetcher")() {
5258
+ }
5254
5259
  Schema.Struct({
5255
5260
  version: Schema.String,
5256
5261
  npm: Schema.String,
@@ -5280,15 +5285,14 @@ class NodeRelease {
5280
5285
  }
5281
5286
  static fromInput(input, scheduleRef) {
5282
5287
  return Effect.gen(function*() {
5283
- const version = yield* SemVer.fromString(input.version);
5284
- const npm = yield* SemVer.fromString(input.npm);
5288
+ const version = yield* SemVer.parse(input.version);
5289
+ const npm = yield* SemVer.parse(input.npm);
5285
5290
  const date = DateTime.unsafeMake(input.date);
5286
5291
  return new NodeRelease(version, npm, date, scheduleRef);
5287
5292
  });
5288
5293
  }
5289
5294
  }
5290
- const NodeScheduleBase = Data.TaggedClass("NodeSchedule");
5291
- class NodeSchedule extends NodeScheduleBase {
5295
+ class NodeSchedule extends Data.TaggedClass("NodeSchedule") {
5292
5296
  static fromData(data) {
5293
5297
  const entries = [];
5294
5298
  for (const [key, value] of Object.entries(data)){
@@ -5397,10 +5401,10 @@ const AutoNodeCacheLive_setup = Effect.gen(function*() {
5397
5401
  const AutoNodeCacheLive_SemVerLayer = VersionCacheLive.pipe(Layer.provide(SemVerParserLive));
5398
5402
  const AutoNodeCacheLive_BaseCacheLayer = NodeReleaseCacheLive.pipe(Layer.provide(AutoNodeCacheLive_SemVerLayer));
5399
5403
  const AutoNodeCacheLive = AutoNodeCacheLive_BaseCacheLayer.pipe(Layer.tap((ctx)=>AutoNodeCacheLive_setup.pipe(Effect.provide(ctx))));
5400
- const VersionNotFoundErrorBase = Data.TaggedError("VersionNotFoundError");
5401
- class VersionNotFoundError extends VersionNotFoundErrorBase {
5404
+ class VersionNotFoundError extends Data.TaggedError("VersionNotFoundError") {
5405
+ }
5406
+ class BunResolver extends Context.Tag("runtime-resolver/BunResolver")() {
5402
5407
  }
5403
- const BunResolver = Context.GenericTag("BunResolver");
5404
5408
  const BunResolverLive = Layer.effect(BunResolver, Effect.gen(function*() {
5405
5409
  const cache = yield* BunReleaseCache;
5406
5410
  return {
@@ -5456,8 +5460,9 @@ const retryOnRateLimit = (effect)=>effect.pipe(Effect.retry({
5456
5460
  schedule: Schedule.exponential("1 second").pipe(Schedule.compose(Schedule.recurs(3))),
5457
5461
  while: Predicate.isTagged("RateLimitError")
5458
5462
  }));
5459
- const tryParseSemVer = (raw)=>SemVer.fromString(raw).pipe(Effect.map(Option.some), Effect.catchAll(()=>Effect.succeed(Option.none())));
5460
- const GitHubClient = Context.GenericTag("GitHubClient");
5463
+ const tryParseSemVer = (raw)=>SemVer.parse(raw).pipe(Effect.map(Option.some), Effect.catchAll(()=>Effect.succeed(Option.none())));
5464
+ class GitHubClient extends Context.Tag("runtime-resolver/GitHubClient")() {
5465
+ }
5461
5466
  const normalizeBunTag = (tagName)=>{
5462
5467
  const version = tagName.startsWith("bun-") ? tagName.slice(4) : tagName;
5463
5468
  const stripped = version.startsWith("v") || version.startsWith("V") ? version.slice(1) : version;
@@ -5490,7 +5495,8 @@ const BunVersionFetcherLive = Layer.effect(BunVersionFetcher, Effect.gen(functio
5490
5495
  })
5491
5496
  };
5492
5497
  }));
5493
- const DenoResolver = Context.GenericTag("DenoResolver");
5498
+ class DenoResolver extends Context.Tag("runtime-resolver/DenoResolver")() {
5499
+ }
5494
5500
  const DenoResolverLive = Layer.effect(DenoResolver, Effect.gen(function*() {
5495
5501
  const cache = yield* DenoReleaseCache;
5496
5502
  return {
@@ -5572,9 +5578,9 @@ const DenoVersionFetcherLive = Layer.effect(DenoVersionFetcher, Effect.gen(funct
5572
5578
  })
5573
5579
  };
5574
5580
  }));
5575
- const OctokitInstance = Context.GenericTag("OctokitInstance");
5576
- const AuthenticationErrorBase = Data.TaggedError("AuthenticationError");
5577
- class AuthenticationError extends AuthenticationErrorBase {
5581
+ class OctokitInstance extends Context.Tag("runtime-resolver/OctokitInstance")() {
5582
+ }
5583
+ class AuthenticationError extends Data.TaggedError("AuthenticationError") {
5578
5584
  }
5579
5585
  const resolveInstallationId = async (auth, installationId)=>{
5580
5586
  if (installationId) return installationId;
@@ -5642,14 +5648,11 @@ const GitHubAutoAuth = Layer.effect(OctokitInstance, Effect.gen(function*() {
5642
5648
  });
5643
5649
  return new Octokit();
5644
5650
  }));
5645
- const NetworkErrorBase = Data.TaggedError("NetworkError");
5646
- class NetworkError extends NetworkErrorBase {
5651
+ class NetworkError extends Data.TaggedError("NetworkError") {
5647
5652
  }
5648
- const ParseErrorBase = Data.TaggedError("ParseError");
5649
- class ParseError extends ParseErrorBase {
5653
+ class ParseError extends Data.TaggedError("ParseError") {
5650
5654
  }
5651
- const RateLimitErrorBase = Data.TaggedError("RateLimitError");
5652
- class RateLimitError extends RateLimitErrorBase {
5655
+ class RateLimitError extends Data.TaggedError("RateLimitError") {
5653
5656
  }
5654
5657
  const GitHubTagCommit = Schema.Struct({
5655
5658
  sha: Schema.String,
@@ -5772,7 +5775,8 @@ const GitHubClientLive = Layer.effect(GitHubClient, Effect.gen(function*() {
5772
5775
  })
5773
5776
  };
5774
5777
  }));
5775
- const NodeResolver = Context.GenericTag("NodeResolver");
5778
+ class NodeResolver extends Context.Tag("runtime-resolver/NodeResolver")() {
5779
+ }
5776
5780
  const NodeResolverLive = Layer.effect(NodeResolver, Effect.gen(function*() {
5777
5781
  const cache = yield* NodeReleaseCache;
5778
5782
  return {
@@ -5925,4 +5929,4 @@ const GitHubTokenAuth = Layer.effect(OctokitInstance, Effect.gen(function*() {
5925
5929
  const GitHubTokenAuthFromToken = (token)=>Layer.succeed(OctokitInstance, new Octokit({
5926
5930
  auth: token
5927
5931
  }));
5928
- export { AuthenticationError, AuthenticationErrorBase, AutoBunCacheLive, AutoDenoCacheLive, AutoNodeCacheLive, BunRelease, BunReleaseBase, BunReleaseCache, BunReleaseCacheLive, BunResolver, BunResolverLive, BunVersionFetcher, BunVersionFetcherLive, Cause, Console, Data, DenoRelease, DenoReleaseBase, DenoReleaseCache, DenoReleaseCacheLive, DenoResolver, DenoResolverLive, DenoVersionFetcher, DenoVersionFetcherLive, Effect, GitHubAppAuth, GitHubAutoAuth, GitHubClient, GitHubClientLive, GitHubTokenAuth, GitHubTokenAuthFromToken, JSONSchema, Layer, NetworkError, NetworkErrorBase, NodeRelease, NodeReleaseCache, NodeReleaseCacheLive, NodeResolver, NodeResolverLive, NodeSchedule, NodeScheduleBase, NodeScheduleFetcher, NodeScheduleFetcherLive, NodeVersionFetcher, NodeVersionFetcherLive, OctokitInstance, Option, ParseError, ParseErrorBase, RateLimitError, RateLimitErrorBase, Schema, SemVerParserLive, VersionCacheLive, VersionNotFoundError, VersionNotFoundErrorBase, bunDefaultInputs, createRuntimeCache, denoDefaultInputs, nodeDefaultInputs, nodeDefaultScheduleData };
5932
+ export { AuthenticationError, AutoBunCacheLive, AutoDenoCacheLive, AutoNodeCacheLive, BunRelease, BunReleaseCache, BunReleaseCacheLive, BunResolver, BunResolverLive, BunVersionFetcher, BunVersionFetcherLive, DenoRelease, DenoReleaseCache, DenoReleaseCacheLive, DenoResolver, DenoResolverLive, DenoVersionFetcher, DenoVersionFetcherLive, GitHubAppAuth, GitHubAutoAuth, GitHubClient, GitHubClientLive, GitHubTokenAuth, GitHubTokenAuthFromToken, NetworkError, NodeRelease, NodeReleaseCache, NodeReleaseCacheLive, NodeResolver, NodeResolverLive, NodeSchedule, NodeScheduleFetcher, NodeScheduleFetcherLive, NodeVersionFetcher, NodeVersionFetcherLive, OctokitInstance, ParseError, RateLimitError, VersionNotFoundError, bunDefaultInputs, createRuntimeCache, denoDefaultInputs, nodeDefaultInputs, nodeDefaultScheduleData };
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command, Options } from "@effect/cli";
3
3
  import { NodeContext, NodeRuntime } from "@effect/platform-node";
4
+ import { Cause, Console, Effect, Layer, Option } from "effect";
4
5
  import { readFileSync } from "node:fs";
5
- import { NodeScheduleFetcherLive, AutoDenoCacheLive, DenoVersionFetcherLive, AutoNodeCacheLive, BunResolver, Console, Option, Layer, GitHubAppAuth, GitHubAutoAuth, BunResolverLive, BunVersionFetcherLive, DenoResolverLive, Cause, Effect, GitHubClientLive, AutoBunCacheLive, GitHubTokenAuthFromToken, NodeResolverLive, NodeVersionFetcherLive, DenoResolver, NodeResolver } from "../701.js";
6
+ import { NodeScheduleFetcherLive, AutoDenoCacheLive, DenoVersionFetcherLive, AutoNodeCacheLive, BunResolver, NodeResolver, NodeVersionFetcherLive, NodeResolverLive, GitHubAutoAuth, BunResolverLive, BunVersionFetcherLive, GitHubClientLive, DenoResolverLive, GitHubTokenAuthFromToken, GitHubAppAuth, AutoBunCacheLive, DenoResolver } from "../711.js";
6
7
  const GitHubLayer = GitHubClientLive.pipe(Layer.provide(GitHubAutoAuth));
7
8
  const makeNodeLayer = (authOverride)=>{
8
9
  const ghLayer = authOverride ? GitHubClientLive.pipe(Layer.provide(authOverride)) : GitHubLayer;
@@ -163,9 +164,7 @@ const resolveHandler = (args)=>Effect.gen(function*() {
163
164
  ];
164
165
  const hasResolveFlags = resolveFlags.some((f)=>Option.isSome(f));
165
166
  if (hasResolveFlags) return void (yield* Console.error("Error: --schema cannot be combined with resolve flags (--node, --bun, --deno, etc.)"));
166
- const { cliJsonSchema } = yield* Effect.promise(()=>import("../235.js").then((mod)=>({
167
- cliJsonSchema: mod.cliJsonSchema
168
- })));
167
+ const { cliJsonSchema } = yield* Effect.promise(()=>import("../json-schema.js").then((m)=>m.json_schema_namespaceObject));
169
168
  yield* Console.log(JSON.stringify(cliJsonSchema, null, 2));
170
169
  return;
171
170
  }
@@ -260,7 +259,7 @@ const rootCommand = Command.make("runtime-resolver", {
260
259
  }, resolveHandler);
261
260
  const cli = Command.run(rootCommand, {
262
261
  name: "runtime-resolver",
263
- version: "0.2.0"
262
+ version: "0.3.0"
264
263
  });
265
264
  const main = Effect.suspend(()=>cli(process.argv)).pipe(Effect.provide(NodeContext.layer), Effect.catchAllCause((cause)=>{
266
265
  const defects = Cause.defects(cause);