@athrio/loom 0.0.2 → 0.0.4

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.
package/dist/main.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bun
2
2
  import { t as __commonJSMin } from "./rolldown-runtime-yvBN9yY6.js";
3
- import { $ as get, $n as filter, $t as ignore, A as Boolean, An as mergeAll, Ar as identity, At as makeUnsafe, B as make$8, Bn as fail$2, Bt as catchTag, C as errorReported, Cn as try_, Cr as format, Ct as endUnsafe, D as make$9, Dr as isNullish, Dt as offerUnsafe, E as Crypto$1, En as catchDone, Er as isNotUndefined, Et as offer, F as FileDescriptor, Fn as MinimumLogLevel, Ft as as, G as isStream, Gn as fail$3, Gt as ensuring, H as decodeText, Hn as Done, Ht as catch_, I as FileSystem, In as _await, It as asVoid, J as run$2, Jn as empty, Jt as fnUntraced, K as merge, Kn as Reference, Kt as fail, L as FileTypeId, Ln as doneUnsafe, Lt as callback, M as TrueValues, Mn as provideMerge, Mr as pipeArguments, Mt as acquireRelease, N as Path$1, Nn as succeed$3, Nt as addFinalizer$1, O as error, On as taggedEnum, Or as isUndefined, Ot as take, P as TypeId$5, Pn as addFinalizer, Pt as andThen, Q as unwrap, Qn as dedupe, Qt as gen, R as Size, Rn as isDone, S as errorExitCode, Sn as tryPromise, Sr as BaseProto, St as mapDone, Tn as void_, Tr as isNotNull, Tt as make$12, U as empty$1, Un as UnknownError, V as callback$1, Vn as succeed$2, Vt as catchTags, W as fromChannel$1, Wn as done, Wt as effectify, X as splitLines, Xn as make$6, Xt as forever, Y as runCollect, Yn as getUnsafe, Yt as forEach, Z as transduce, Zn as Prototype, Zt as forkScoped, _ as Terminal, _n as succeed, _r as map$4, _t as tag, a as storeDir, an as match$1, ar as of, at as badArgument, b as Stdio, br as some, c as LoomCompiler, cn as orElseSucceed, cr as fail$1, ct as Defect, d as PackageConfig, dn as provideService, dr as fromNullishOr, dt as String$1, en as interrupt, et as make$11, f as LoomConfig, fn as raceFirst, fr as fromUndefinedOr, ft as Struct, g as QuitError, gn as serviceOption, gr as isSome, gt as optional$3, hn as scoped, hr as isNone, ht as is, i as servicePackage, in as mapError, ir as match, it as BadArgument, j as FalseValues, jn as provide, jr as pipe, jt as nominal, k as log, kn as effect, kr as dual, kt as make$7, ln as provide$1, lr as succeed$1, lt as ErrorClass, mn as runFork, mr as getOrUndefined, mt as decodeUnknownEffect, n as installedServices, nt as fromChannel, o as workspaceRoot, on as matchEffect, or as reduce, ot as systemError, pn as result, pr as getOrElse, pt as Union, q as mkString, qn as Service, qt as flatMap, r as removeService, rn as map$2, rr as map$3, rt as isSink, s as DocumentSource, sn as orDie, sr as sort, st as ArraySchema, t as addService, tn as isEffect, tt as drain, un as provideContext, ur as flatMap$1, ut as Literal, v as isQuitError, vn as suspend, vr as match$2, vt as toCodecStringTree, w as makeRunMain, wn as uninterruptible, wr as hasProperty, wt as failCauseUnsafe, x as make$10, xn as timeoutOrElse, xr as String$2, xt as fromTransform, y as make$13, yn as sync, yr as none, z as WatchBackend, zn as makeUnsafe$1, zt as catchFilter } from "./LoomStore-DPhVqYEz.js";
3
+ import { $ as get, $n as filter, $t as ignore, A as Boolean, An as mergeAll, Ar as identity, At as makeUnsafe, B as make$8, Bn as fail$2, Bt as catchTag, C as errorReported, Cn as try_, Cr as format, Ct as endUnsafe, D as make$9, Dr as isNullish, Dt as offerUnsafe, E as Crypto$1, En as catchDone, Er as isNotUndefined, Et as offer, F as FileDescriptor, Fn as MinimumLogLevel, Ft as as, G as isStream, Gn as fail$3, Gt as ensuring, H as decodeText, Hn as Done, Ht as catch_, I as FileSystem, In as _await, It as asVoid, J as run$2, Jn as empty, Jt as fnUntraced, K as merge, Kn as Reference, Kt as fail, L as FileTypeId, Ln as doneUnsafe, Lt as callback, M as TrueValues, Mn as provideMerge, Mr as pipeArguments, Mt as acquireRelease, N as Path$1, Nn as succeed$3, Nt as addFinalizer$1, O as error, On as taggedEnum, Or as isUndefined, Ot as take, P as TypeId$5, Pn as addFinalizer, Pt as andThen, Q as unwrap, Qn as dedupe, Qt as gen, R as Size, Rn as isDone, S as errorExitCode, Sn as tryPromise, Sr as BaseProto, St as mapDone, Tn as void_, Tr as isNotNull, Tt as make$12, U as empty$1, Un as UnknownError, V as callback$1, Vn as succeed$2, Vt as catchTags, W as fromChannel$1, Wn as done, Wt as effectify, X as splitLines, Xn as make$6, Xt as forever, Y as runCollect, Yn as getUnsafe, Yt as forEach, Z as transduce, Zn as Prototype, Zt as forkScoped, _ as Terminal, _n as succeed, _r as map$4, _t as tag, a as storeDir, an as match$1, ar as of, at as badArgument, b as Stdio, br as some, c as LoomCompiler, cn as orElseSucceed, cr as fail$1, ct as Defect, d as PackageConfig, dn as provideService, dr as fromNullishOr, dt as String$1, en as interrupt, et as make$11, f as LoomConfig, fn as raceFirst, fr as fromUndefinedOr, ft as Struct, g as QuitError, gn as serviceOption, gr as isSome, gt as optional$3, hn as scoped, hr as isNone, ht as is, i as servicePackage, in as mapError, ir as match, it as BadArgument, j as FalseValues, jn as provide, jr as pipe, jt as nominal, k as log, kn as effect, kr as dual, kt as make$7, ln as provide$1, lr as succeed$1, lt as ErrorClass, mn as runFork, mr as getOrUndefined, mt as decodeUnknownEffect, n as installedServices, nt as fromChannel, o as workspaceRoot, on as matchEffect, or as reduce, ot as systemError, pn as result, pr as getOrElse, pt as Union, q as mkString, qn as Service, qt as flatMap, r as removeService, rn as map$2, rr as map$3, rt as isSink, s as DocumentSource, sn as orDie, sr as sort, st as ArraySchema, t as addService, tn as isEffect, tt as drain, un as provideContext, ur as flatMap$1, ut as Literal, v as isQuitError, vn as suspend, vr as match$2, vt as toCodecStringTree, w as makeRunMain, wn as uninterruptible, wr as hasProperty, wt as failCauseUnsafe, x as make$10, xn as timeoutOrElse, xr as String$2, xt as fromTransform, y as make$13, yn as sync, yr as none, z as WatchBackend, zn as makeUnsafe$1, zt as catchFilter } from "./LoomStore-DMf2PkfP.js";
4
4
  import * as NodeChildProcess from "node:child_process";
5
5
  import "node:stream";
6
6
  import * as Crypto from "node:crypto";
@@ -10278,6 +10278,18 @@ var LoomWeaver = class extends Service()("LoomWeaver", { make: gen(function* ()
10278
10278
  }
10279
10279
  };
10280
10280
  //#endregion
10281
+ //#region ../loom-lang/src/weave/LoomContents.ts
10282
+ var LoomContents = class extends Service()("LoomContents", { make: gen(function* () {
10283
+ const compiler = yield* LoomCompiler;
10284
+ const fs = yield* FileSystem;
10285
+ const write = (entry) => compiler.contents(entry).pipe(flatMap((text) => fs.writeFileString(entry, text).pipe(orDie, as(entry))));
10286
+ return { write };
10287
+ }) }) {
10288
+ static {
10289
+ this.layer = effect(this, this.make).pipe(provide(LoomCompiler.layer));
10290
+ }
10291
+ };
10292
+ //#endregion
10281
10293
  //#region src/main.ts
10282
10294
  var reset = "\x1B[0m";
10283
10295
  var teal = (s) => `\x1b[38;5;44m${s}${reset}`;
@@ -10305,6 +10317,9 @@ var orphans = (prune) => gen(function* () {
10305
10317
  var weave = (file, out) => gen(function* () {
10306
10318
  yield* log(`loom: wove ${file} → ${yield* (yield* LoomWeaver).weave(resolve(process.cwd(), file), resolve(process.cwd(), out))}`);
10307
10319
  });
10320
+ var toc = (file) => gen(function* () {
10321
+ yield* log(`loom: wrote the table of contents into ${yield* (yield* LoomContents).write(resolve(process.cwd(), file))}`);
10322
+ });
10308
10323
  var mergeMcpConfig = (root) => {
10309
10324
  const path = resolve(root, ".mcp.json");
10310
10325
  const existing = existsSync(path) ? JSON.parse(readFileSync(path, "utf8")) : {};
@@ -10382,29 +10397,62 @@ var status = gen(function* () {
10382
10397
  yield* log(`\n ${dim("store")} ${storeDir(dir)}\n ${dim("primary")} ${primary ?? dim("(none)")}\n ${dim("activated")} ${languages.length === 0 ? dim("(none)") : languages.join(", ")}\n`);
10383
10398
  if (languages.length > 0) yield* log(`${languages.map(mark).join("\n")}\n`);
10384
10399
  });
10400
+ var set = (name, value) => gen(function* () {
10401
+ const config = yield* LoomConfig;
10402
+ const tangler = yield* LoomTangler;
10403
+ const workspace = workspaceRoot(process.cwd());
10404
+ const usage = "usage: loom set <name> <value>";
10405
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) {
10406
+ yield* error(`loom: \`${name}\` is not a variable name — ${usage}`);
10407
+ yield* sync(() => void (process.exitCode = 1));
10408
+ return;
10409
+ }
10410
+ if (value.startsWith("=")) {
10411
+ yield* error(`loom: a value cannot begin with \`=\`; give the name and value with a space, no \`=\` — ${usage}`);
10412
+ yield* sync(() => void (process.exitCode = 1));
10413
+ return;
10414
+ }
10415
+ const current = yield* config.manifest(workspace);
10416
+ yield* config.materialize(workspace, {
10417
+ ...current ?? {},
10418
+ variables: {
10419
+ ...current?.variables ?? {},
10420
+ [name]: value
10421
+ }
10422
+ });
10423
+ const corpus = resolve(workspace, current?.corpus ?? "corpus");
10424
+ yield* log(`loom: set ${name} = ${value} (re-tangled ${(yield* tangler.tangle(corpus)).length} files)`);
10425
+ }).pipe(catchTag("TangleError", (e) => error(e.message).pipe(andThen(sync(() => void (process.exitCode = 1))))));
10385
10426
  var tangleCommand = make$5("tangle", { path: string("path") }, ({ path }) => tangle(path));
10386
10427
  var orphansCommand = make$5("orphans", { prune: boolean("prune") }, ({ prune }) => orphans(prune));
10387
10428
  var weaveCommand = make$5("weave", {
10388
10429
  path: string("path"),
10389
10430
  out: string("out")
10390
10431
  }, ({ path, out }) => weave(path, out));
10432
+ var tocCommand = make$5("toc", { path: string("path") }, ({ path }) => toc(path));
10391
10433
  var initCommand = make$5("init", { dir: optional$1(directory("dir")) }, ({ dir }) => init(dir));
10392
10434
  var addCommand = make$5("add", { language: string("language") }, ({ language }) => add(language));
10393
10435
  var removeCommand = make$5("remove", { language: string("language") }, ({ language }) => remove(language));
10394
10436
  var statusCommand = make$5("status", {}, () => status);
10437
+ var setCommand = make$5("set", {
10438
+ name: string("name"),
10439
+ value: string("value")
10440
+ }, ({ name, value }) => set(name, value));
10395
10441
  var program = run(make$5("loom").pipe(withSubcommands([
10396
10442
  tangleCommand,
10397
10443
  orphansCommand,
10398
10444
  weaveCommand,
10445
+ tocCommand,
10399
10446
  initCommand,
10400
10447
  addCommand,
10401
10448
  removeCommand,
10402
- statusCommand
10403
- ])), { version: "0.0.2" }).pipe(provide$1(LoomTangler.layer), provide$1(LoomWeaver.layer), provide$1(DocumentSource.layer), provide$1(PackageConfig.layer), provide$1(LoomConfig.layer), provide$1(layer));
10449
+ statusCommand,
10450
+ setCommand
10451
+ ])), { version: "0.0.4" }).pipe(provide$1(LoomTangler.layer), provide$1(LoomWeaver.layer), provide$1(LoomContents.layer), provide$1(DocumentSource.layer), provide$1(PackageConfig.layer), provide$1(LoomConfig.layer), provide$1(layer));
10404
10452
  if (process.argv[2] === "lsp") {
10405
10453
  const { createRequire } = await import("node:module");
10406
10454
  globalThis.require = createRequire(import.meta.url);
10407
- const { startLanguageServer } = await import("./LoomServer-3C83kvX5.js");
10455
+ const { startLanguageServer } = await import("./LoomServer-D8I04Chj.js");
10408
10456
  startLanguageServer();
10409
10457
  } else runMain(program);
10410
10458
  //#endregion