@dxos/cli-util 0.8.4-main.69d29f4 → 0.8.4-main.74a063c4e0

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.
@@ -16,8 +16,8 @@ __export(form_builder_exports, {
16
16
  set: () => set,
17
17
  when: () => when
18
18
  });
19
- import * as Doc from "@effect/printer/Doc";
20
19
  import * as Ansi from "@effect/printer-ansi/Ansi";
20
+ import * as Doc from "@effect/printer/Doc";
21
21
  import * as Option from "effect/Option";
22
22
  import * as Pipeable from "effect/Pipeable";
23
23
  var FormBuilderImpl = class {
@@ -213,8 +213,8 @@ var Common = {
213
213
  };
214
214
 
215
215
  // src/util/platform.ts
216
- import { spawn } from "node:child_process";
217
216
  import * as Effect from "effect/Effect";
217
+ import { spawn } from "node:child_process";
218
218
  var copyToClipboard = (text3) => Effect.tryPromise({
219
219
  try: () => {
220
220
  return new Promise((resolve, reject) => {
@@ -303,8 +303,8 @@ var openBrowser = (url) => Effect.tryPromise({
303
303
  });
304
304
 
305
305
  // src/util/printer.ts
306
- import * as Doc2 from "@effect/printer/Doc";
307
306
  import * as AnsiDoc from "@effect/printer-ansi/AnsiDoc";
307
+ import * as Doc2 from "@effect/printer/Doc";
308
308
  var print = (doc) => AnsiDoc.render(doc, {
309
309
  style: "pretty"
310
310
  });
@@ -326,6 +326,7 @@ import * as Effect3 from "effect/Effect";
326
326
  import * as Layer from "effect/Layer";
327
327
  import * as Match from "effect/Match";
328
328
  import * as Option2 from "effect/Option";
329
+ import { getPersonalSpace } from "@dxos/app-toolkit";
329
330
  import { ClientService as ClientService2 } from "@dxos/client";
330
331
  import { Database } from "@dxos/echo";
331
332
  import { BaseError } from "@dxos/errors";
@@ -340,14 +341,18 @@ var getSpace = (spaceId) => Effect3.gen(function* () {
340
341
  }).pipe(Effect3.catchTag("NoSuchElementException", () => Effect3.fail(new SpaceNotFoundError(spaceId))));
341
342
  var spaceIdWithDefault = (spaceId) => Effect3.gen(function* () {
342
343
  const client = yield* ClientService2;
343
- yield* Effect3.promise(() => client.spaces.waitUntilReady());
344
- return Option2.getOrElse(spaceId, () => client.spaces.default.id);
344
+ return Option2.getOrElse(spaceId, () => {
345
+ const personal = getPersonalSpace(client);
346
+ if (!personal) {
347
+ throw new Error("No space ID provided and no personal space found.");
348
+ }
349
+ return personal.id;
350
+ });
345
351
  });
346
- var spaceLayer = (spaceId$, fallbackToDefaultSpace = false) => {
352
+ var spaceLayer = (spaceId$, fallbackToPersonalSpace = false) => {
347
353
  const getSpace2 = Effect3.fn(function* () {
348
354
  const client = yield* ClientService2;
349
- yield* Effect3.promise(() => client.spaces.waitUntilReady());
350
- const spaceId = Match.value(fallbackToDefaultSpace).pipe(Match.when(true, () => spaceId$.pipe(Option2.getOrElse(() => client.spaces.default.id), Option2.some)), Match.when(false, () => spaceId$), Match.exhaustive);
355
+ const spaceId = Match.value(fallbackToPersonalSpace).pipe(Match.when(true, () => spaceId$.pipe(Option2.orElse(() => Option2.fromNullable(getPersonalSpace(client)?.id)))), Match.when(false, () => spaceId$), Match.exhaustive);
351
356
  const space = spaceId.pipe(Option2.flatMap((id) => Option2.fromNullable(client.spaces.get(id))), Option2.getOrUndefined);
352
357
  if (space) {
353
358
  yield* Effect3.promise(() => space.waitUntilReady());
@@ -366,9 +371,7 @@ var spaceLayer = (spaceId$, fallbackToDefaultSpace = false) => {
366
371
  return {
367
372
  db: space.db
368
373
  };
369
- }), ({ db: db2 }) => Effect3.promise(() => db2.flush({
370
- indexes: true
371
- }))));
374
+ }), ({ db: db2 }) => Effect3.promise(() => db2.flush())));
372
375
  const queue = Layer.effect(QueueService, Effect3.gen(function* () {
373
376
  const space = yield* getSpace2();
374
377
  if (!space) {
@@ -412,8 +415,8 @@ var waitForSync = Effect3.fn(function* (space) {
412
415
  yield* Console.log("Sync complete");
413
416
  });
414
417
  var flushAndSync = Effect3.fn(function* (opts) {
415
- yield* Database.Service.flush(opts);
416
- const spaceId = yield* Database.Service.spaceId;
418
+ yield* Database.flush(opts);
419
+ const spaceId = yield* Database.spaceId;
417
420
  const space = yield* getSpace(spaceId);
418
421
  yield* waitForSync(space);
419
422
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/form-builder.ts", "../../../src/util/options.ts", "../../../src/util/platform.ts", "../../../src/util/printer.ts", "../../../src/util/runtime.ts", "../../../src/util/space.ts", "../../../src/util/space-format.ts", "../../../src/util/timeout.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Doc from '@effect/printer/Doc';\nimport * as Ansi from '@effect/printer-ansi/Ansi';\nimport * as Option from 'effect/Option';\nimport * as Pipeable from 'effect/Pipeable';\n\nexport type FormBuilderOptions = {\n title?: string;\n prefix?: string;\n};\n\nexport interface FormBuilder extends Pipeable.Pipeable {\n readonly entries: ReadonlyArray<{ key: string; value: Doc.Doc<any>; isNested?: boolean }>;\n readonly title?: string;\n readonly prefix: string;\n}\n\nclass FormBuilderImpl implements FormBuilder {\n readonly entries: Array<{ key: string; value: Doc.Doc<any>; isNested?: boolean }> = [];\n readonly title?: string;\n readonly prefix: string;\n\n constructor(options: FormBuilderOptions = {}) {\n this.title = options.title;\n this.prefix = options.prefix ?? '- ';\n }\n\n pipe() {\n // eslint-disable-next-line prefer-rest-params\n return Pipeable.pipeArguments(this, arguments);\n }\n}\n\n/**\n * Creates a new FormBuilder instance.\n */\nexport const make = (props?: FormBuilderOptions): FormBuilder => new FormBuilderImpl(props);\n\n// Helper to calculate dimensions for formatting\nconst calculateDimensions = (entries: ReadonlyArray<{ key: string }>, prefix: string) => {\n const maxKeyLen = Math.max(0, ...entries.map((entry) => entry.key.length));\n const targetWidth = prefix.length + maxKeyLen + 2;\n return { maxKeyLen, targetWidth };\n};\n\n// Helper to build a formatted key line\nconst buildKeyLine = (prefix: string, key: string, targetWidth: number) => {\n // Use fill to pad the key to targetWidth.\n // Note: We don't add indentation here; indentation is handled by the parent container or nestImpl.\n return Doc.annotate(Doc.fill(targetWidth)(Doc.text(prefix + key + ': ')), Ansi.blackBright);\n};\n\n// Implementation helper\nconst setImpl = <T>(\n builder: FormBuilder,\n key: string,\n value: T,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder => {\n if (value !== undefined) {\n let valueDoc: Doc.Doc<any>;\n if (typeof value === 'object' && value !== null) {\n // Assume it's a Doc.Doc\n valueDoc = value as unknown as Doc.Doc<any>;\n } else {\n valueDoc = Doc.text(String(value));\n }\n\n if (color) {\n const ansi = typeof color === 'function' ? color(value as T) : color;\n valueDoc = Doc.annotate(valueDoc, ansi);\n }\n\n (builder as FormBuilderImpl).entries.push({\n key,\n value: valueDoc,\n isNested: false,\n });\n }\n return builder;\n};\n\n/**\n * Adds a key-value pair to the form.\n */\nexport function set<T>(\n builder: FormBuilder,\n key: string,\n value: T,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder;\nexport function set<T>(\n key: string,\n value: T,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): (builder: FormBuilder) => FormBuilder;\nexport function set<T>(\n builderOrKey: FormBuilder | string,\n keyOrValue?: string | T,\n valueOrColor?: T | Ansi.Ansi | ((value: T) => Ansi.Ansi),\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrKey instanceof FormBuilderImpl) {\n // Direct: set(builder, key, value, color?)\n const builder = builderOrKey;\n const key = keyOrValue as string;\n const value = valueOrColor as T;\n return setImpl(builder, key, value, color);\n } else {\n // Curried: set(key, value, color?)\n const key = builderOrKey as string;\n const value = keyOrValue as T;\n const color = valueOrColor as Ansi.Ansi | ((value: T) => Ansi.Ansi) | undefined;\n return (builder: FormBuilder) => setImpl(builder, key, value, color);\n }\n}\n\n// Implementation helper\nconst nestImpl = (parent: FormBuilder, key: string, builder: FormBuilder): FormBuilder => {\n // Build nested entries without title, directly under the parent field name\n\n // Create a temporary builder without title to ignore it.\n const nestedBuilder: FormBuilder = {\n ...builder,\n title: undefined,\n entries: builder.entries,\n };\n\n // Build content.\n let valueDoc = build(nestedBuilder);\n\n // Indent the content by 2 spaces.\n // This ensures that when this doc is embedded in the parent, it is visually nested.\n valueDoc = Doc.indent(valueDoc, 2);\n\n (parent.entries as Array<{ key: string; value: Doc.Doc<any>; isNested?: boolean }>).push({\n key,\n value: valueDoc,\n isNested: true,\n });\n return parent;\n};\n\n/**\n * Nests another form builder under a key.\n */\nexport function nest(parent: FormBuilder, key: string, builder: FormBuilder): FormBuilder;\nexport function nest(key: string, builder: FormBuilder): (parent: FormBuilder) => FormBuilder;\nexport function nest(\n parentOrKey: FormBuilder | string,\n keyOrBuilder?: string | FormBuilder,\n builder?: FormBuilder,\n): FormBuilder | ((parent: FormBuilder) => FormBuilder) {\n if (parentOrKey instanceof FormBuilderImpl) {\n // Direct: nest(parent, key, builder)\n const parent = parentOrKey;\n const key = keyOrBuilder as string;\n return nestImpl(parent, key, builder!);\n } else {\n // Curried: nest(key, builder)\n const key = parentOrKey as string;\n const builder = keyOrBuilder as FormBuilder;\n return (parent: FormBuilder) => nestImpl(parent, key, builder);\n }\n}\n\n// Implementation helper\nconst optionImpl = <T>(\n builder: FormBuilder,\n key: string,\n value: Option.Option<T>,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder => {\n if (Option.isSome(value)) {\n return setImpl(builder, key, value.value, color);\n }\n return builder;\n};\n\n/**\n * Adds an optional value if it exists.\n */\nexport function option<T>(\n builder: FormBuilder,\n key: string,\n value: Option.Option<T>,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder;\nexport function option<T>(\n key: string,\n value: Option.Option<T>,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): (builder: FormBuilder) => FormBuilder;\nexport function option<T>(\n builderOrKey: FormBuilder | string,\n keyOrValue?: string | Option.Option<T>,\n valueOrColor?: Option.Option<T> | Ansi.Ansi | ((value: T) => Ansi.Ansi),\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrKey instanceof FormBuilderImpl) {\n // Direct: option(builder, key, value, color?)\n const builder = builderOrKey;\n const key = keyOrValue as string;\n const value = valueOrColor as Option.Option<T>;\n return optionImpl(builder, key, value, color);\n } else {\n // Curried: option(key, value, color?)\n const key = builderOrKey as string;\n const value = keyOrValue as Option.Option<T>;\n const color = valueOrColor as Ansi.Ansi | ((value: T) => Ansi.Ansi) | undefined;\n return (builder: FormBuilder) => optionImpl(builder, key, value, color);\n }\n}\n\n// Implementation helper\nconst nestedOptionImpl = (builder: FormBuilder, key: string, value: Option.Option<FormBuilder>): FormBuilder => {\n if (Option.isSome(value)) {\n return nestImpl(builder, key, value.value);\n }\n return builder;\n};\n\n/**\n * Nests an optional form builder if it exists.\n */\nexport function nestedOption(builder: FormBuilder, key: string, value: Option.Option<FormBuilder>): FormBuilder;\nexport function nestedOption(key: string, value: Option.Option<FormBuilder>): (builder: FormBuilder) => FormBuilder;\nexport function nestedOption(\n builderOrKey: FormBuilder | string,\n keyOrValue?: string | Option.Option<FormBuilder>,\n value?: Option.Option<FormBuilder>,\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrKey instanceof FormBuilderImpl) {\n // Direct: nestedOption(builder, key, value)\n const builder = builderOrKey;\n const key = keyOrValue as string;\n return nestedOptionImpl(builder, key, value!);\n } else {\n // Curried: nestedOption(key, value)\n const key = builderOrKey as string;\n const value = keyOrValue as Option.Option<FormBuilder>;\n return (builder: FormBuilder) => nestedOptionImpl(builder, key, value);\n }\n}\n\n// Implementation helper\nconst whenImpl = (builder: FormBuilder, condition: any, ...ops: ((b: FormBuilder) => FormBuilder)[]): FormBuilder => {\n if (condition) {\n for (const op of ops) {\n op(builder);\n }\n }\n return builder;\n};\n\n/**\n * Conditionally executes operations.\n */\nexport function when(builder: FormBuilder, condition: any, ...ops: ((b: FormBuilder) => FormBuilder)[]): FormBuilder;\nexport function when(\n condition: any,\n ...ops: ((b: FormBuilder) => FormBuilder)[]\n): (builder: FormBuilder) => FormBuilder;\nexport function when(\n builderOrCondition: FormBuilder | any,\n conditionOrOp?: any | ((b: FormBuilder) => FormBuilder),\n ...ops: ((b: FormBuilder) => FormBuilder)[]\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrCondition instanceof FormBuilderImpl) {\n // Direct: when(builder, condition, ...ops)\n const builder = builderOrCondition;\n const condition = conditionOrOp;\n return whenImpl(builder, condition, ...ops);\n } else {\n // Curried: when(condition, ...ops)\n const condition = builderOrCondition;\n const allOps = [conditionOrOp, ...ops].filter(\n (op): op is (b: FormBuilder) => FormBuilder => typeof op === 'function',\n );\n return (builder: FormBuilder) => whenImpl(builder, condition, ...allOps);\n }\n}\n\n// Implementation helper\nconst eachImpl = <T>(\n builder: FormBuilder,\n items: T[],\n fn: (item: T) => (b: FormBuilder) => FormBuilder,\n): FormBuilder => {\n items.forEach((item) => fn(item)(builder));\n return builder;\n};\n\n/**\n * Iterates over an array of items.\n */\nexport function each<T>(\n builder: FormBuilder,\n items: T[],\n fn: (item: T) => (b: FormBuilder) => FormBuilder,\n): FormBuilder;\nexport function each<T>(\n items: T[],\n fn: (item: T) => (b: FormBuilder) => FormBuilder,\n): (builder: FormBuilder) => FormBuilder;\nexport function each<T>(\n builderOrItems: FormBuilder | T[],\n itemsOrFn?: T[] | ((item: T) => (b: FormBuilder) => FormBuilder),\n fn?: (item: T) => (b: FormBuilder) => FormBuilder,\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrItems instanceof FormBuilderImpl) {\n // Direct: each(builder, items, fn)\n const builder = builderOrItems;\n const items = itemsOrFn as T[];\n return eachImpl(builder, items, fn!);\n } else {\n // Curried: each(items, fn)\n const items = builderOrItems as T[];\n const fn = itemsOrFn as (item: T) => (b: FormBuilder) => FormBuilder;\n return (builder: FormBuilder) => eachImpl(builder, items, fn);\n }\n}\n\n/**\n * Builds the final document.\n */\nexport const build = (builder: FormBuilder): Doc.Doc<any> => {\n const { targetWidth } = calculateDimensions(builder.entries, builder.prefix);\n const entryLines: Doc.Doc<any>[] = [];\n\n builder.entries.forEach(({ key, value, isNested }) => {\n const keyLine = buildKeyLine(builder.prefix, key, targetWidth);\n if (isNested) {\n // Nested content should start on a new line.\n // value is already indented by nestImpl, so we just cat with hardLine.\n entryLines.push(Doc.hcat([keyLine, Doc.hardLine, value]));\n } else {\n // Single-line value, combine key and value.\n // If the value itself is multiline (e.g. from Doc.string with newlines, though Doc handles that specifically),\n // we might want layout flexibility.\n // For now, standard behavior:\n entryLines.push(Doc.hcat([keyLine, value]));\n }\n });\n\n const entriesDoc = Doc.vsep(entryLines);\n\n if (builder.title) {\n const titleDoc = Doc.hcat([Doc.annotate(Doc.text(builder.title), Ansi.combine(Ansi.bold, Ansi.cyan))]);\n // Join title and entries with a single line break, no extra spacing\n return Doc.cat(titleDoc, Doc.cat(Doc.line, entriesDoc));\n }\n\n return entriesDoc;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Options from '@effect/cli/Options';\n\nimport { Key } from '@dxos/echo';\n\n//\n// Common options.\n// NOTE: Sub-commands should Function.pipe(Options.optional) if required.\n//\n\nexport const Common = {\n functionId: Options.text('function-id').pipe(Options.withDescription('EDGE Function ID.')),\n spaceId: Options.text('space-id').pipe(Options.withSchema(Key.SpaceId), Options.withDescription('Space ID.')),\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { spawn } from 'node:child_process';\n\nimport * as Effect from 'effect/Effect';\n\n/**\n * Copy text to the system clipboard.\n * Supports macOS (pbcopy), Windows (clip), and Linux (xclip/xsel).\n */\nexport const copyToClipboard = (text: string): Effect.Effect<void, Error> =>\n Effect.tryPromise({\n try: () => {\n return new Promise<void>((resolve, reject) => {\n const platform = process.platform;\n let command: string;\n let args: string[];\n\n if (platform === 'darwin') {\n command = 'pbcopy';\n args = [];\n } else if (platform === 'win32') {\n command = 'clip';\n args = [];\n } else {\n // Linux - try xclip or xsel\n command = 'xclip';\n args = ['-selection', 'clipboard'];\n }\n\n const proc = spawn(command, args);\n proc.stdin?.write(text);\n proc.stdin?.end();\n\n proc.on('close', (code) => {\n if (code === 0) {\n resolve();\n } else {\n // Try xsel as fallback on Linux\n if (platform === 'linux') {\n const proc2 = spawn('xsel', ['--clipboard', '--input']);\n proc2.stdin?.write(text);\n proc2.stdin?.end();\n proc2.on('close', (code2) => {\n if (code2 === 0) {\n resolve();\n } else {\n reject(new Error('Failed to copy to clipboard'));\n }\n });\n proc2.on('error', reject);\n } else {\n reject(new Error('Failed to copy to clipboard'));\n }\n }\n });\n\n proc.on('error', reject);\n });\n },\n catch: (error) => new Error(`Failed to copy to clipboard: ${error}`),\n });\n\n/**\n * Open a URL in the system's default browser.\n * Supports macOS (open), Windows (start), and Linux (xdg-open).\n */\nexport const openBrowser = (url: string): Effect.Effect<void, Error> =>\n Effect.tryPromise({\n try: () => {\n return new Promise<void>((resolve, reject) => {\n const platform = process.platform;\n let command: string;\n let args: string[];\n\n if (platform === 'darwin') {\n command = 'open';\n args = [url];\n } else if (platform === 'win32') {\n command = 'start';\n args = [url];\n } else {\n command = 'xdg-open';\n args = [url];\n }\n\n const proc = spawn(command, args);\n proc.on('close', (code) => {\n if (code === 0) {\n resolve();\n } else {\n reject(new Error('Failed to open browser'));\n }\n });\n proc.on('error', reject);\n });\n },\n catch: (error) => new Error(`Failed to open browser: ${error}`),\n });\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Doc from '@effect/printer/Doc';\nimport * as AnsiDoc from '@effect/printer-ansi/AnsiDoc';\n\n/**\n * Pretty print document.\n */\nexport const print = (doc: Doc.Doc<any>) => AnsiDoc.render(doc, { style: 'pretty' });\n\n/**\n * Pretty prints a list of documents with ANSI colors.\n */\nexport const printList = (items: Array<Doc.Doc<any>>) =>\n AnsiDoc.render(Doc.vsep(items.map((item) => Doc.cat(item, Doc.hardLine))), { style: 'pretty' });\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ClientService } from '@dxos/client';\nimport { type Type } from '@dxos/echo';\n\n/** @deprecated Migrate to providing types via plugin capabilities. */\nexport const withTypes: (...types: Type.Entity.Any[]) => Effect.Effect<void, never, ClientService> = (...types) =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n yield* Effect.promise(() => client.addTypes(types));\n });\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\n\nimport { ClientService } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { Database, type Key } from '@dxos/echo';\nimport { BaseError, type BaseErrorOptions } from '@dxos/errors';\nimport { QueueService } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { isBun } from '@dxos/util';\n\nexport const getSpace = (spaceId: Key.SpaceId): Effect.Effect<Space, SpaceNotFoundError, ClientService> =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n return yield* Option.fromNullable(client.spaces.get(spaceId));\n }).pipe(Effect.catchTag('NoSuchElementException', () => Effect.fail(new SpaceNotFoundError(spaceId))));\n\nexport const spaceIdWithDefault = (spaceId: Option.Option<Key.SpaceId>) =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n yield* Effect.promise(() => client.spaces.waitUntilReady());\n return Option.getOrElse(spaceId, () => client.spaces.default.id);\n });\n\n// TODO(wittjosiah): Factor out.\nexport const spaceLayer = (\n spaceId$: Option.Option<Key.SpaceId>,\n fallbackToDefaultSpace = false,\n): Layer.Layer<Database.Service | QueueService, never, ClientService> => {\n const getSpace = Effect.fn(function* () {\n const client = yield* ClientService;\n yield* Effect.promise(() => client.spaces.waitUntilReady());\n\n const spaceId = Match.value(fallbackToDefaultSpace).pipe(\n Match.when(true, () =>\n spaceId$.pipe(\n Option.getOrElse(() => client.spaces.default.id),\n Option.some,\n ),\n ),\n Match.when(false, () => spaceId$),\n Match.exhaustive,\n );\n\n const space = spaceId.pipe(\n Option.flatMap((id) => Option.fromNullable(client.spaces.get(id))),\n Option.getOrUndefined,\n );\n\n if (space) {\n yield* Effect.promise(() => space.waitUntilReady());\n }\n return space;\n });\n\n const db = Layer.scoped(\n Database.Service,\n Effect.acquireRelease(\n Effect.gen(function* () {\n const space = yield* getSpace();\n if (!space) {\n return {\n get db(): Database.Database {\n throw new Error('Space not found');\n },\n };\n }\n return { db: space.db };\n }),\n ({ db }) => Effect.promise(() => db.flush({ indexes: true })),\n ),\n );\n\n const queue = Layer.effect(\n QueueService,\n Effect.gen(function* () {\n const space = yield* getSpace();\n if (!space) {\n return {\n queues: {\n get: (_dxn) => {\n throw new Error('Queues not available');\n },\n create: () => {\n throw new Error('Queues not available');\n },\n },\n queue: undefined,\n };\n }\n return {\n queues: space.queues,\n queue: undefined,\n };\n }),\n );\n\n return Layer.merge(db, queue);\n};\n\n// TODO(dmaretskyi): There a race condition with edge connection not showing up.\nexport const waitForSync = Effect.fn(function* (space: Space) {\n // TODO(wittjosiah): Find a better way to do this.\n if (!isBun()) {\n // Skipping sync to edge when not in bun env as this indicates running a test.\n return;\n }\n\n // TODO(wittjosiah): This should probably be prompted for.\n if (space.internal.data.edgeReplication !== EdgeReplicationSetting.ENABLED) {\n yield* Console.log('Edge replication is disabled, enabling...');\n yield* Effect.promise(() => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n }\n\n yield* Effect.promise(() =>\n space.internal.syncToEdge({\n onProgress: (state) => log.info('syncing', { state: state ?? 'no connection to edge' }),\n }),\n );\n yield* Console.log('Sync complete');\n});\n\nexport const flushAndSync = Effect.fn(function* (opts?: Database.FlushOptions) {\n yield* Database.Service.flush(opts);\n const spaceId = yield* Database.Service.spaceId;\n const space = yield* getSpace(spaceId);\n yield* waitForSync(space);\n});\n\n// TODO(burdon): Reconcile with @dxos/protocols\nexport class SpaceNotFoundError extends BaseError.extend('SpaceNotFoundError', 'Space not found') {\n constructor(spaceId: string, options?: Omit<BaseErrorOptions, 'context'>) {\n super({ context: { spaceId }, ...options });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { type Space, SpaceState, type SpaceSyncState } from '@dxos/client/echo';\n\nimport * as FormBuilder from './form-builder';\n\n// TODO(wittjosiah): Use @effect/printer.\nexport const formatSpace = Effect.fn(function* (space: Space, options = { verbose: false, truncateKeys: false }) {\n yield* Effect.tryPromise(() => space.waitUntilReady());\n\n // TODO(burdon): Factor out.\n // TODO(burdon): Agent needs to restart before `ready` is available.\n const { open, ready } = space.internal.data.metrics ?? {};\n const startup = open && ready && ready.getTime() - open.getTime();\n\n // TODO(burdon): Get feeds from client-services if verbose (factor out from devtools/diagnostics).\n // const host = client.services.services.DevtoolsHost!;\n const pipeline = space.internal.data.pipeline;\n const epoch = pipeline?.currentEpoch?.subject.assertion.number;\n\n const syncState = aggregateSyncState(yield* Effect.tryPromise(() => space.internal.db.coreDatabase.getSyncState()));\n\n return {\n id: space.id,\n state: SpaceState[space.state.get()],\n name: space.state.get() === SpaceState.SPACE_READY ? space.properties.name : 'loading...',\n\n members: space.members.get().length,\n objects: space.internal.db.coreDatabase.getAllObjectIds().length,\n\n key: options.truncateKeys ? space.key.truncate() : space.key.toHex(),\n epoch,\n startup,\n automergeRoot: space.internal.data.pipeline?.spaceRootUrl,\n // appliedEpoch,\n syncState: `${syncState.count} ${getSyncIndicator(syncState.up, syncState.down)} (${syncState.peers} peers)`,\n };\n});\n\nconst aggregateSyncState = (syncState: SpaceSyncState) => {\n const peers = Object.keys(syncState.peers ?? {}).length;\n const missingOnLocal = Math.max(...Object.values(syncState.peers ?? {}).map((peer) => peer.missingOnLocal), 0);\n const missingOnRemote = Math.max(...Object.values(syncState.peers ?? {}).map((peer) => peer.missingOnRemote), 0);\n const differentDocuments = Math.max(\n ...Object.values(syncState.peers ?? {}).map((peer) => peer.differentDocuments),\n 0,\n );\n\n return {\n count: missingOnLocal + missingOnRemote + differentDocuments,\n peers,\n up: missingOnRemote > 0 || differentDocuments > 0,\n down: missingOnLocal > 0 || differentDocuments > 0,\n };\n};\n\nconst getSyncIndicator = (up: boolean, down: boolean) => {\n if (up) {\n if (down) {\n return '⇅';\n } else {\n return '↑';\n }\n } else {\n if (down) {\n return '↓';\n } else {\n return '✓';\n }\n }\n};\n\nexport type FormattedSpace = {\n id: string;\n state: string;\n name: string | undefined;\n members: number;\n objects: number;\n key: string;\n epoch: any;\n startup: number | undefined;\n automergeRoot: string | undefined;\n syncState: string;\n};\n\n/**\n * Pretty prints a space with ANSI colors.\n */\nexport const printSpace = (spaceData: FormattedSpace) =>\n FormBuilder.make({ title: spaceData.name ?? spaceData.id }).pipe(\n FormBuilder.set('id', spaceData.id),\n FormBuilder.set('state', spaceData.state),\n FormBuilder.set('key', spaceData.key),\n FormBuilder.set('members', spaceData.members),\n FormBuilder.set('objects', spaceData.objects),\n FormBuilder.set('epoch', spaceData.epoch ?? '<none>'),\n FormBuilder.set('startup', spaceData.startup ? `${spaceData.startup}ms` : '<none>'),\n FormBuilder.set('syncState', spaceData.syncState),\n FormBuilder.set('automergeRoot', spaceData.automergeRoot ?? '<none>'),\n FormBuilder.build,\n );\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Cause from 'effect/Cause';\nimport * as Config from 'effect/Config';\nimport type * as ConfigError from 'effect/ConfigError';\nimport * as Duration from 'effect/Duration';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nexport const withTimeout: <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n) => Effect.Effect<A, Cause.TimeoutException | ConfigError.ConfigError | E, R> = Effect.fnUntraced(function* (effect) {\n const timeout = yield* Config.integer('TIMEOUT').pipe(Config.option);\n const duration = timeout.pipe(\n Option.map(Duration.millis),\n Option.getOrElse(() => Duration.infinity),\n );\n return yield* effect.pipe(Effect.timeout(duration));\n});\n"],
5
- "mappings": ";;;;;;;AAAA;;;;;;;;;;;AAIA,YAAYA,SAAS;AACrB,YAAYC,UAAU;AACtB,YAAYC,YAAY;AACxB,YAAYC,cAAc;AAa1B,IAAMC,kBAAN,MAAMA;EACKC,UAA2E,CAAA;EAC3EC;EACAC;EAET,YAAYC,UAA8B,CAAC,GAAG;AAC5C,SAAKF,QAAQE,QAAQF;AACrB,SAAKC,SAASC,QAAQD,UAAU;EAClC;EAEAE,OAAO;AAEL,WAAgBC,uBAAc,MAAMC,SAAAA;EACtC;AACF;AAKO,IAAMC,OAAO,CAACC,UAA4C,IAAIT,gBAAgBS,KAAAA;AAGrF,IAAMC,sBAAsB,CAACT,SAAyCE,WAAAA;AACpE,QAAMQ,YAAYC,KAAKC,IAAI,GAAA,GAAMZ,QAAQa,IAAI,CAACC,UAAUA,MAAMC,IAAIC,MAAM,CAAA;AACxE,QAAMC,cAAcf,OAAOc,SAASN,YAAY;AAChD,SAAO;IAAEA;IAAWO;EAAY;AAClC;AAGA,IAAMC,eAAe,CAAChB,QAAgBa,KAAaE,gBAAAA;AAGjD,SAAWE,aAAaC,SAAKH,WAAAA,EAAiBI,SAAKnB,SAASa,MAAM,IAAA,CAAA,GAAaO,gBAAW;AAC5F;AAGA,IAAMC,UAAU,CACdC,SACAT,KACAU,QACAC,UAAAA;AAEA,MAAID,WAAUE,QAAW;AACvB,QAAIC;AACJ,QAAI,OAAOH,WAAU,YAAYA,WAAU,MAAM;AAE/CG,iBAAWH;IACb,OAAO;AACLG,iBAAeP,SAAKQ,OAAOJ,MAAAA,CAAAA;IAC7B;AAEA,QAAIC,OAAO;AACT,YAAMI,OAAO,OAAOJ,UAAU,aAAaA,MAAMD,MAAAA,IAAcC;AAC/DE,iBAAeT,aAASS,UAAUE,IAAAA;IACpC;AAECN,YAA4BxB,QAAQ+B,KAAK;MACxChB;MACAU,OAAOG;MACPI,UAAU;IACZ,CAAA;EACF;AACA,SAAOR;AACT;AAgBO,SAASS,IACdC,cACAC,YACAC,cACAV,OAA6C;AAE7C,MAAIQ,wBAAwBnC,iBAAiB;AAE3C,UAAMyB,UAAUU;AAChB,UAAMnB,MAAMoB;AACZ,UAAMV,SAAQW;AACd,WAAOb,QAAQC,SAAST,KAAKU,QAAOC,KAAAA;EACtC,OAAO;AAEL,UAAMX,MAAMmB;AACZ,UAAMT,SAAQU;AACd,UAAMT,SAAQU;AACd,WAAO,CAACZ,YAAyBD,QAAQC,SAAST,KAAKU,QAAOC,MAAAA;EAChE;AACF;AAGA,IAAMW,WAAW,CAACC,QAAqBvB,KAAaS,YAAAA;AAIlD,QAAMe,gBAA6B;IACjC,GAAGf;IACHvB,OAAO0B;IACP3B,SAASwB,QAAQxB;EACnB;AAGA,MAAI4B,WAAWY,MAAMD,aAAAA;AAIrBX,aAAea,WAAOb,UAAU,CAAA;AAE/BU,SAAOtC,QAA4E+B,KAAK;IACvFhB;IACAU,OAAOG;IACPI,UAAU;EACZ,CAAA;AACA,SAAOM;AACT;AAOO,SAASI,KACdC,aACAC,cACApB,SAAqB;AAErB,MAAImB,uBAAuB5C,iBAAiB;AAE1C,UAAMuC,SAASK;AACf,UAAM5B,MAAM6B;AACZ,WAAOP,SAASC,QAAQvB,KAAKS,OAAAA;EAC/B,OAAO;AAEL,UAAMT,MAAM4B;AACZ,UAAMnB,WAAUoB;AAChB,WAAO,CAACN,WAAwBD,SAASC,QAAQvB,KAAKS,QAAAA;EACxD;AACF;AAGA,IAAMqB,aAAa,CACjBrB,SACAT,KACAU,QACAC,UAAAA;AAEA,MAAWoB,cAAOrB,MAAAA,GAAQ;AACxB,WAAOF,QAAQC,SAAST,KAAKU,OAAMA,OAAOC,KAAAA;EAC5C;AACA,SAAOF;AACT;AAgBO,SAASuB,OACdb,cACAC,YACAC,cACAV,OAA6C;AAE7C,MAAIQ,wBAAwBnC,iBAAiB;AAE3C,UAAMyB,UAAUU;AAChB,UAAMnB,MAAMoB;AACZ,UAAMV,SAAQW;AACd,WAAOS,WAAWrB,SAAST,KAAKU,QAAOC,KAAAA;EACzC,OAAO;AAEL,UAAMX,MAAMmB;AACZ,UAAMT,SAAQU;AACd,UAAMT,SAAQU;AACd,WAAO,CAACZ,YAAyBqB,WAAWrB,SAAST,KAAKU,QAAOC,MAAAA;EACnE;AACF;AAGA,IAAMsB,mBAAmB,CAACxB,SAAsBT,KAAaU,WAAAA;AAC3D,MAAWqB,cAAOrB,MAAAA,GAAQ;AACxB,WAAOY,SAASb,SAAST,KAAKU,OAAMA,KAAK;EAC3C;AACA,SAAOD;AACT;AAOO,SAASyB,aACdf,cACAC,YACAV,QAAkC;AAElC,MAAIS,wBAAwBnC,iBAAiB;AAE3C,UAAMyB,UAAUU;AAChB,UAAMnB,MAAMoB;AACZ,WAAOa,iBAAiBxB,SAAST,KAAKU,MAAAA;EACxC,OAAO;AAEL,UAAMV,MAAMmB;AACZ,UAAMT,SAAQU;AACd,WAAO,CAACX,YAAyBwB,iBAAiBxB,SAAST,KAAKU,MAAAA;EAClE;AACF;AAGA,IAAMyB,WAAW,CAAC1B,SAAsB2B,cAAmBC,QAAAA;AACzD,MAAID,WAAW;AACb,eAAWE,MAAMD,KAAK;AACpBC,SAAG7B,OAAAA;IACL;EACF;AACA,SAAOA;AACT;AAUO,SAAS8B,KACdC,oBACAC,kBACGJ,KAAwC;AAE3C,MAAIG,8BAA8BxD,iBAAiB;AAEjD,UAAMyB,UAAU+B;AAChB,UAAMJ,YAAYK;AAClB,WAAON,SAAS1B,SAAS2B,WAAAA,GAAcC,GAAAA;EACzC,OAAO;AAEL,UAAMD,YAAYI;AAClB,UAAME,SAAS;MAACD;SAAkBJ;MAAKM,OACrC,CAACL,OAA8C,OAAOA,OAAO,UAAA;AAE/D,WAAO,CAAC7B,YAAyB0B,SAAS1B,SAAS2B,WAAAA,GAAcM,MAAAA;EACnE;AACF;AAGA,IAAME,WAAW,CACfnC,SACAoC,OACAC,QAAAA;AAEAD,QAAME,QAAQ,CAACC,SAASF,IAAGE,IAAAA,EAAMvC,OAAAA,CAAAA;AACjC,SAAOA;AACT;AAcO,SAASwC,KACdC,gBACAC,WACAL,KAAiD;AAEjD,MAAII,0BAA0BlE,iBAAiB;AAE7C,UAAMyB,UAAUyC;AAChB,UAAML,QAAQM;AACd,WAAOP,SAASnC,SAASoC,OAAOC,GAAAA;EAClC,OAAO;AAEL,UAAMD,QAAQK;AACd,UAAMJ,MAAKK;AACX,WAAO,CAAC1C,YAAyBmC,SAASnC,SAASoC,OAAOC,GAAAA;EAC5D;AACF;AAKO,IAAMrB,QAAQ,CAAChB,YAAAA;AACpB,QAAM,EAAEP,YAAW,IAAKR,oBAAoBe,QAAQxB,SAASwB,QAAQtB,MAAM;AAC3E,QAAMiE,aAA6B,CAAA;AAEnC3C,UAAQxB,QAAQ8D,QAAQ,CAAC,EAAE/C,KAAKU,OAAAA,QAAOO,SAAQ,MAAE;AAC/C,UAAMoC,UAAUlD,aAAaM,QAAQtB,QAAQa,KAAKE,WAAAA;AAClD,QAAIe,UAAU;AAGZmC,iBAAWpC,KAASsC,SAAK;QAACD;QAAaE;QAAU7C;OAAM,CAAA;IACzD,OAAO;AAKL0C,iBAAWpC,KAASsC,SAAK;QAACD;QAAS3C;OAAM,CAAA;IAC3C;EACF,CAAA;AAEA,QAAM8C,aAAiBC,SAAKL,UAAAA;AAE5B,MAAI3C,QAAQvB,OAAO;AACjB,UAAMwE,WAAeJ,SAAK;MAAKlD,aAAaE,SAAKG,QAAQvB,KAAK,GAAQyE,aAAaC,WAAWC,SAAI,CAAA;KAAG;AAErG,WAAWC,QAAIJ,UAAcI,QAAQC,UAAMP,UAAAA,CAAAA;EAC7C;AAEA,SAAOA;AACT;;;ACjWA,YAAYQ,aAAa;AAEzB,SAASC,WAAW;AAOb,IAAMC,SAAS;EACpBC,YAAoBC,aAAK,aAAA,EAAeC,KAAaC,wBAAgB,mBAAA,CAAA;EACrEC,SAAiBH,aAAK,UAAA,EAAYC,KAAaG,mBAAWC,IAAIC,OAAO,GAAWJ,wBAAgB,WAAA,CAAA;AAClG;;;ACZA,SAASK,aAAa;AAEtB,YAAYC,YAAY;AAMjB,IAAMC,kBAAkB,CAACC,UACvBC,kBAAW;EAChBC,KAAK,MAAA;AACH,WAAO,IAAIC,QAAc,CAACC,SAASC,WAAAA;AACjC,YAAMC,WAAWC,QAAQD;AACzB,UAAIE;AACJ,UAAIC;AAEJ,UAAIH,aAAa,UAAU;AACzBE,kBAAU;AACVC,eAAO,CAAA;MACT,WAAWH,aAAa,SAAS;AAC/BE,kBAAU;AACVC,eAAO,CAAA;MACT,OAAO;AAELD,kBAAU;AACVC,eAAO;UAAC;UAAc;;MACxB;AAEA,YAAMC,OAAOC,MAAMH,SAASC,IAAAA;AAC5BC,WAAKE,OAAOC,MAAMb,KAAAA;AAClBU,WAAKE,OAAOE,IAAAA;AAEZJ,WAAKK,GAAG,SAAS,CAACC,SAAAA;AAChB,YAAIA,SAAS,GAAG;AACdZ,kBAAAA;QACF,OAAO;AAEL,cAAIE,aAAa,SAAS;AACxB,kBAAMW,QAAQN,MAAM,QAAQ;cAAC;cAAe;aAAU;AACtDM,kBAAML,OAAOC,MAAMb,KAAAA;AACnBiB,kBAAML,OAAOE,IAAAA;AACbG,kBAAMF,GAAG,SAAS,CAACG,UAAAA;AACjB,kBAAIA,UAAU,GAAG;AACfd,wBAAAA;cACF,OAAO;AACLC,uBAAO,IAAIc,MAAM,6BAAA,CAAA;cACnB;YACF,CAAA;AACAF,kBAAMF,GAAG,SAASV,MAAAA;UACpB,OAAO;AACLA,mBAAO,IAAIc,MAAM,6BAAA,CAAA;UACnB;QACF;MACF,CAAA;AAEAT,WAAKK,GAAG,SAASV,MAAAA;IACnB,CAAA;EACF;EACAe,OAAO,CAACC,UAAU,IAAIF,MAAM,gCAAgCE,KAAAA,EAAO;AACrE,CAAA;AAMK,IAAMC,cAAc,CAACC,QACnBtB,kBAAW;EAChBC,KAAK,MAAA;AACH,WAAO,IAAIC,QAAc,CAACC,SAASC,WAAAA;AACjC,YAAMC,WAAWC,QAAQD;AACzB,UAAIE;AACJ,UAAIC;AAEJ,UAAIH,aAAa,UAAU;AACzBE,kBAAU;AACVC,eAAO;UAACc;;MACV,WAAWjB,aAAa,SAAS;AAC/BE,kBAAU;AACVC,eAAO;UAACc;;MACV,OAAO;AACLf,kBAAU;AACVC,eAAO;UAACc;;MACV;AAEA,YAAMb,OAAOC,MAAMH,SAASC,IAAAA;AAC5BC,WAAKK,GAAG,SAAS,CAACC,SAAAA;AAChB,YAAIA,SAAS,GAAG;AACdZ,kBAAAA;QACF,OAAO;AACLC,iBAAO,IAAIc,MAAM,wBAAA,CAAA;QACnB;MACF,CAAA;AACAT,WAAKK,GAAG,SAASV,MAAAA;IACnB,CAAA;EACF;EACAe,OAAO,CAACC,UAAU,IAAIF,MAAM,2BAA2BE,KAAAA,EAAO;AAChE,CAAA;;;AChGF,YAAYG,UAAS;AACrB,YAAYC,aAAa;AAKlB,IAAMC,QAAQ,CAACC,QAA8BC,eAAOD,KAAK;EAAEE,OAAO;AAAS,CAAA;AAK3E,IAAMC,YAAY,CAACC,UAChBH,eAAWI,UAAKD,MAAME,IAAI,CAACC,SAAaC,SAAID,MAAUE,aAAQ,CAAA,CAAA,GAAK;EAAEP,OAAO;AAAS,CAAA;;;ACZ/F,YAAYQ,aAAY;AAExB,SAASC,qBAAqB;AAIvB,IAAMC,YAAwF,IAAIC,UAChGC,YAAI,aAAA;AACT,QAAMC,SAAS,OAAOC;AACtB,SAAcC,gBAAQ,MAAMF,OAAOG,SAASL,KAAAA,CAAAA;AAC9C,CAAA;;;ACVF,YAAYM,aAAa;AACzB,YAAYC,aAAY;AACxB,YAAYC,WAAW;AACvB,YAAYC,WAAW;AACvB,YAAYC,aAAY;AAExB,SAASC,iBAAAA,sBAAqB;AAE9B,SAASC,gBAA0B;AACnC,SAASC,iBAAwC;AACjD,SAASC,oBAAoB;AAC7B,SAASC,OAAAA,YAAW;AACpB,SAASC,8BAA8B;AACvC,SAASC,aAAa;;AAEf,IAAMC,WAAW,CAACC,YAChBC,YAAI,aAAA;AACT,QAAMC,SAAS,OAAOV;AACtB,SAAO,OAAcW,qBAAaD,OAAOE,OAAOC,IAAIL,OAAAA,CAAAA;AACtD,CAAA,EAAGM,KAAYC,iBAAS,0BAA0B,MAAaC,aAAK,IAAIC,mBAAmBT,OAAAA,CAAAA,CAAAA,CAAAA;AAEtF,IAAMU,qBAAqB,CAACV,YAC1BC,YAAI,aAAA;AACT,QAAMC,SAAS,OAAOV;AACtB,SAAcmB,gBAAQ,MAAMT,OAAOE,OAAOQ,eAAc,CAAA;AACxD,SAAcC,kBAAUb,SAAS,MAAME,OAAOE,OAAOU,QAAQC,EAAE;AACjE,CAAA;AAGK,IAAMC,aAAa,CACxBC,UACAC,yBAAyB,UAAK;AAE9B,QAAMnB,YAAkBoB,WAAG,aAAA;AACzB,UAAMjB,SAAS,OAAOV;AACtB,WAAcmB,gBAAQ,MAAMT,OAAOE,OAAOQ,eAAc,CAAA;AAExD,UAAMZ,UAAgBoB,YAAMF,sBAAAA,EAAwBZ,KAC5Ce,WAAK,MAAM,MACfJ,SAASX,KACAO,kBAAU,MAAMX,OAAOE,OAAOU,QAAQC,EAAE,GACxCO,YAAI,CAAA,GAGTD,WAAK,OAAO,MAAMJ,QAAAA,GAClBM,gBAAU;AAGlB,UAAMC,QAAQxB,QAAQM,KACbmB,gBAAQ,CAACV,OAAcZ,qBAAaD,OAAOE,OAAOC,IAAIU,EAAAA,CAAAA,CAAAA,GACtDW,sBAAc;AAGvB,QAAIF,OAAO;AACT,aAAcb,gBAAQ,MAAMa,MAAMZ,eAAc,CAAA;IAClD;AACA,WAAOY;EACT,CAAA;AAEA,QAAMG,KAAWC,aACfnC,SAASoC,SACFC,uBACE7B,YAAI,aAAA;AACT,UAAMuB,QAAQ,OAAOzB,UAAAA;AACrB,QAAI,CAACyB,OAAO;AACV,aAAO;QACL,IAAIG,KAAwB;AAC1B,gBAAM,IAAII,MAAM,iBAAA;QAClB;MACF;IACF;AACA,WAAO;MAAEJ,IAAIH,MAAMG;IAAG;EACxB,CAAA,GACA,CAAC,EAAEA,IAAAA,IAAE,MAAchB,gBAAQ,MAAMgB,IAAGK,MAAM;IAAEC,SAAS;EAAK,CAAA,CAAA,CAAA,CAAA;AAI9D,QAAMC,QAAcC,aAClBxC,cACOM,YAAI,aAAA;AACT,UAAMuB,QAAQ,OAAOzB,UAAAA;AACrB,QAAI,CAACyB,OAAO;AACV,aAAO;QACLY,QAAQ;UACN/B,KAAK,CAACgC,SAAAA;AACJ,kBAAM,IAAIN,MAAM,sBAAA;UAClB;UACAO,QAAQ,MAAA;AACN,kBAAM,IAAIP,MAAM,sBAAA;UAClB;QACF;QACAG,OAAOK;MACT;IACF;AACA,WAAO;MACLH,QAAQZ,MAAMY;MACdF,OAAOK;IACT;EACF,CAAA,CAAA;AAGF,SAAaC,YAAMb,IAAIO,KAAAA;AACzB;AAGO,IAAMO,cAAqBtB,WAAG,WAAWK,OAAY;AAE1D,MAAI,CAAC1B,MAAAA,GAAS;AAEZ;EACF;AAGA,MAAI0B,MAAMkB,SAASC,KAAKC,oBAAoB/C,uBAAuBgD,SAAS;AAC1E,WAAejD,YAAI,2CAAA;AACnB,WAAce,gBAAQ,MAAMa,MAAMkB,SAASI,6BAA6BjD,uBAAuBgD,OAAO,CAAA;EACxG;AAEA,SAAclC,gBAAQ,MACpBa,MAAMkB,SAASK,WAAW;IACxBC,YAAY,CAACC,UAAUrD,KAAIsD,KAAK,WAAW;MAAED,OAAOA,SAAS;IAAwB,GAAA;;;;;;EACvF,CAAA,CAAA;AAEF,SAAerD,YAAI,eAAA;AACrB,CAAA;AAEO,IAAMuD,eAAsBhC,WAAG,WAAWiC,MAA4B;AAC3E,SAAO3D,SAASoC,QAAQG,MAAMoB,IAAAA;AAC9B,QAAMpD,UAAU,OAAOP,SAASoC,QAAQ7B;AACxC,QAAMwB,QAAQ,OAAOzB,SAASC,OAAAA;AAC9B,SAAOyC,YAAYjB,KAAAA;AACrB,CAAA;AAGO,IAAMf,qBAAN,cAAiCf,UAAU2D,OAAO,sBAAsB,iBAAA,EAAA;EAC7E,YAAYrD,SAAiBsD,SAA6C;AACxE,UAAM;MAAEC,SAAS;QAAEvD;MAAQ;MAAG,GAAGsD;IAAQ,CAAA;EAC3C;AACF;;;AC1IA,YAAYE,aAAY;AAExB,SAAqBC,kBAAuC;AAKrD,IAAMC,cAAqBC,WAAG,WAAWC,OAAcC,UAAU;EAAEC,SAAS;EAAOC,cAAc;AAAM,GAAC;AAC7G,SAAcC,mBAAW,MAAMJ,MAAMK,eAAc,CAAA;AAInD,QAAM,EAAEC,MAAMC,MAAK,IAAKP,MAAMQ,SAASC,KAAKC,WAAW,CAAC;AACxD,QAAMC,UAAUL,QAAQC,SAASA,MAAMK,QAAO,IAAKN,KAAKM,QAAO;AAI/D,QAAMC,WAAWb,MAAMQ,SAASC,KAAKI;AACrC,QAAMC,QAAQD,UAAUE,cAAcC,QAAQC,UAAUC;AAExD,QAAMC,YAAYC,mBAAmB,OAAchB,mBAAW,MAAMJ,MAAMQ,SAASa,GAAGC,aAAaC,aAAY,CAAA,CAAE;AAEjH,SAAO;IACLC,IAAIxB,MAAMwB;IACVC,OAAOC,WAAW1B,MAAMyB,MAAME,IAAG,CAAA;IACjCC,MAAM5B,MAAMyB,MAAME,IAAG,MAAOD,WAAWG,cAAc7B,MAAM8B,WAAWF,OAAO;IAE7EG,SAAS/B,MAAM+B,QAAQJ,IAAG,EAAGK;IAC7BC,SAASjC,MAAMQ,SAASa,GAAGC,aAAaY,gBAAe,EAAGF;IAE1DG,KAAKlC,QAAQE,eAAeH,MAAMmC,IAAIC,SAAQ,IAAKpC,MAAMmC,IAAIE,MAAK;IAClEvB;IACAH;IACA2B,eAAetC,MAAMQ,SAASC,KAAKI,UAAU0B;;IAE7CpB,WAAW,GAAGA,UAAUqB,KAAK,IAAIC,iBAAiBtB,UAAUuB,IAAIvB,UAAUwB,IAAI,CAAA,KAAMxB,UAAUyB,KAAK;EACrG;AACF,CAAA;AAEA,IAAMxB,qBAAqB,CAACD,cAAAA;AAC1B,QAAMyB,QAAQC,OAAOC,KAAK3B,UAAUyB,SAAS,CAAC,CAAA,EAAGZ;AACjD,QAAMe,iBAAiBC,KAAKC,IAAG,GAAIJ,OAAOK,OAAO/B,UAAUyB,SAAS,CAAC,CAAA,EAAGO,IAAI,CAACC,SAASA,KAAKL,cAAc,GAAG,CAAA;AAC5G,QAAMM,kBAAkBL,KAAKC,IAAG,GAAIJ,OAAOK,OAAO/B,UAAUyB,SAAS,CAAC,CAAA,EAAGO,IAAI,CAACC,SAASA,KAAKC,eAAe,GAAG,CAAA;AAC9G,QAAMC,qBAAqBN,KAAKC,IAAG,GAC9BJ,OAAOK,OAAO/B,UAAUyB,SAAS,CAAC,CAAA,EAAGO,IAAI,CAACC,SAASA,KAAKE,kBAAkB,GAC7E,CAAA;AAGF,SAAO;IACLd,OAAOO,iBAAiBM,kBAAkBC;IAC1CV;IACAF,IAAIW,kBAAkB,KAAKC,qBAAqB;IAChDX,MAAMI,iBAAiB,KAAKO,qBAAqB;EACnD;AACF;AAEA,IAAMb,mBAAmB,CAACC,IAAaC,SAAAA;AACrC,MAAID,IAAI;AACN,QAAIC,MAAM;AACR,aAAO;IACT,OAAO;AACL,aAAO;IACT;EACF,OAAO;AACL,QAAIA,MAAM;AACR,aAAO;IACT,OAAO;AACL,aAAO;IACT;EACF;AACF;AAkBO,IAAMY,aAAa,CAACC,cACbC,KAAK;EAAEC,OAAOF,UAAU5B,QAAQ4B,UAAUhC;AAAG,CAAA,EAAGmC,KAC9CC,IAAI,MAAMJ,UAAUhC,EAAE,GACtBoC,IAAI,SAASJ,UAAU/B,KAAK,GAC5BmC,IAAI,OAAOJ,UAAUrB,GAAG,GACxByB,IAAI,WAAWJ,UAAUzB,OAAO,GAChC6B,IAAI,WAAWJ,UAAUvB,OAAO,GAChC2B,IAAI,SAASJ,UAAU1C,SAAS,QAAA,GAChC8C,IAAI,WAAWJ,UAAU7C,UAAU,GAAG6C,UAAU7C,OAAO,OAAO,QAAA,GAC9DiD,IAAI,aAAaJ,UAAUrC,SAAS,GACpCyC,IAAI,iBAAiBJ,UAAUlB,iBAAiB,QAAA,GAChDuB,KAAK;;;AClGrB,YAAYC,YAAY;AAExB,YAAYC,cAAc;AAC1B,YAAYC,aAAY;AACxB,YAAYC,aAAY;AAEjB,IAAMC,cAE2EC,mBAAW,WAAWC,SAAM;AAClH,QAAMC,WAAU,OAAcC,eAAQ,SAAA,EAAWC,KAAYC,aAAM;AACnE,QAAMC,WAAWJ,SAAQE,KAChBG,YAAaC,eAAM,GACnBC,kBAAU,MAAeC,iBAAQ,CAAA;AAE1C,SAAO,OAAOT,QAAOG,KAAYF,gBAAQI,QAAAA,CAAAA;AAC3C,CAAA;",
6
- "names": ["Doc", "Ansi", "Option", "Pipeable", "FormBuilderImpl", "entries", "title", "prefix", "options", "pipe", "pipeArguments", "arguments", "make", "props", "calculateDimensions", "maxKeyLen", "Math", "max", "map", "entry", "key", "length", "targetWidth", "buildKeyLine", "annotate", "fill", "text", "blackBright", "setImpl", "builder", "value", "color", "undefined", "valueDoc", "String", "ansi", "push", "isNested", "set", "builderOrKey", "keyOrValue", "valueOrColor", "nestImpl", "parent", "nestedBuilder", "build", "indent", "nest", "parentOrKey", "keyOrBuilder", "optionImpl", "isSome", "option", "nestedOptionImpl", "nestedOption", "whenImpl", "condition", "ops", "op", "when", "builderOrCondition", "conditionOrOp", "allOps", "filter", "eachImpl", "items", "fn", "forEach", "item", "each", "builderOrItems", "itemsOrFn", "entryLines", "keyLine", "hcat", "hardLine", "entriesDoc", "vsep", "titleDoc", "combine", "bold", "cyan", "cat", "line", "Options", "Key", "Common", "functionId", "text", "pipe", "withDescription", "spaceId", "withSchema", "Key", "SpaceId", "spawn", "Effect", "copyToClipboard", "text", "tryPromise", "try", "Promise", "resolve", "reject", "platform", "process", "command", "args", "proc", "spawn", "stdin", "write", "end", "on", "code", "proc2", "code2", "Error", "catch", "error", "openBrowser", "url", "Doc", "AnsiDoc", "print", "doc", "render", "style", "printList", "items", "vsep", "map", "item", "cat", "hardLine", "Effect", "ClientService", "withTypes", "types", "gen", "client", "ClientService", "promise", "addTypes", "Console", "Effect", "Layer", "Match", "Option", "ClientService", "Database", "BaseError", "QueueService", "log", "EdgeReplicationSetting", "isBun", "getSpace", "spaceId", "gen", "client", "fromNullable", "spaces", "get", "pipe", "catchTag", "fail", "SpaceNotFoundError", "spaceIdWithDefault", "promise", "waitUntilReady", "getOrElse", "default", "id", "spaceLayer", "spaceId$", "fallbackToDefaultSpace", "fn", "value", "when", "some", "exhaustive", "space", "flatMap", "getOrUndefined", "db", "scoped", "Service", "acquireRelease", "Error", "flush", "indexes", "queue", "effect", "queues", "_dxn", "create", "undefined", "merge", "waitForSync", "internal", "data", "edgeReplication", "ENABLED", "setEdgeReplicationPreference", "syncToEdge", "onProgress", "state", "info", "flushAndSync", "opts", "extend", "options", "context", "Effect", "SpaceState", "formatSpace", "fn", "space", "options", "verbose", "truncateKeys", "tryPromise", "waitUntilReady", "open", "ready", "internal", "data", "metrics", "startup", "getTime", "pipeline", "epoch", "currentEpoch", "subject", "assertion", "number", "syncState", "aggregateSyncState", "db", "coreDatabase", "getSyncState", "id", "state", "SpaceState", "get", "name", "SPACE_READY", "properties", "members", "length", "objects", "getAllObjectIds", "key", "truncate", "toHex", "automergeRoot", "spaceRootUrl", "count", "getSyncIndicator", "up", "down", "peers", "Object", "keys", "missingOnLocal", "Math", "max", "values", "map", "peer", "missingOnRemote", "differentDocuments", "printSpace", "spaceData", "make", "title", "pipe", "set", "build", "Config", "Duration", "Effect", "Option", "withTimeout", "fnUntraced", "effect", "timeout", "integer", "pipe", "option", "duration", "map", "millis", "getOrElse", "infinity"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Ansi from '@effect/printer-ansi/Ansi';\nimport * as Doc from '@effect/printer/Doc';\nimport * as Option from 'effect/Option';\nimport * as Pipeable from 'effect/Pipeable';\n\nexport type FormBuilderOptions = {\n title?: string;\n prefix?: string;\n};\n\nexport interface FormBuilder extends Pipeable.Pipeable {\n readonly entries: ReadonlyArray<{ key: string; value: Doc.Doc<any>; isNested?: boolean }>;\n readonly title?: string;\n readonly prefix: string;\n}\n\nclass FormBuilderImpl implements FormBuilder {\n readonly entries: Array<{ key: string; value: Doc.Doc<any>; isNested?: boolean }> = [];\n readonly title?: string;\n readonly prefix: string;\n\n constructor(options: FormBuilderOptions = {}) {\n this.title = options.title;\n this.prefix = options.prefix ?? '- ';\n }\n\n pipe() {\n // eslint-disable-next-line prefer-rest-params\n return Pipeable.pipeArguments(this, arguments);\n }\n}\n\n/**\n * Creates a new FormBuilder instance.\n */\nexport const make = (props?: FormBuilderOptions): FormBuilder => new FormBuilderImpl(props);\n\n// Helper to calculate dimensions for formatting\nconst calculateDimensions = (entries: ReadonlyArray<{ key: string }>, prefix: string) => {\n const maxKeyLen = Math.max(0, ...entries.map((entry) => entry.key.length));\n const targetWidth = prefix.length + maxKeyLen + 2;\n return { maxKeyLen, targetWidth };\n};\n\n// Helper to build a formatted key line\nconst buildKeyLine = (prefix: string, key: string, targetWidth: number) => {\n // Use fill to pad the key to targetWidth.\n // Note: We don't add indentation here; indentation is handled by the parent container or nestImpl.\n return Doc.annotate(Doc.fill(targetWidth)(Doc.text(prefix + key + ': ')), Ansi.blackBright);\n};\n\n// Implementation helper\nconst setImpl = <T>(\n builder: FormBuilder,\n key: string,\n value: T,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder => {\n if (value !== undefined) {\n let valueDoc: Doc.Doc<any>;\n if (typeof value === 'object' && value !== null) {\n // Assume it's a Doc.Doc\n valueDoc = value as unknown as Doc.Doc<any>;\n } else {\n valueDoc = Doc.text(String(value));\n }\n\n if (color) {\n const ansi = typeof color === 'function' ? color(value as T) : color;\n valueDoc = Doc.annotate(valueDoc, ansi);\n }\n\n (builder as FormBuilderImpl).entries.push({\n key,\n value: valueDoc,\n isNested: false,\n });\n }\n return builder;\n};\n\n/**\n * Adds a key-value pair to the form.\n */\nexport function set<T>(\n builder: FormBuilder,\n key: string,\n value: T,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder;\nexport function set<T>(\n key: string,\n value: T,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): (builder: FormBuilder) => FormBuilder;\nexport function set<T>(\n builderOrKey: FormBuilder | string,\n keyOrValue?: string | T,\n valueOrColor?: T | Ansi.Ansi | ((value: T) => Ansi.Ansi),\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrKey instanceof FormBuilderImpl) {\n // Direct: set(builder, key, value, color?)\n const builder = builderOrKey;\n const key = keyOrValue as string;\n const value = valueOrColor as T;\n return setImpl(builder, key, value, color);\n } else {\n // Curried: set(key, value, color?)\n const key = builderOrKey as string;\n const value = keyOrValue as T;\n const color = valueOrColor as Ansi.Ansi | ((value: T) => Ansi.Ansi) | undefined;\n return (builder: FormBuilder) => setImpl(builder, key, value, color);\n }\n}\n\n// Implementation helper\nconst nestImpl = (parent: FormBuilder, key: string, builder: FormBuilder): FormBuilder => {\n // Build nested entries without title, directly under the parent field name\n\n // Create a temporary builder without title to ignore it.\n const nestedBuilder: FormBuilder = {\n ...builder,\n title: undefined,\n entries: builder.entries,\n };\n\n // Build content.\n let valueDoc = build(nestedBuilder);\n\n // Indent the content by 2 spaces.\n // This ensures that when this doc is embedded in the parent, it is visually nested.\n valueDoc = Doc.indent(valueDoc, 2);\n\n (parent.entries as Array<{ key: string; value: Doc.Doc<any>; isNested?: boolean }>).push({\n key,\n value: valueDoc,\n isNested: true,\n });\n return parent;\n};\n\n/**\n * Nests another form builder under a key.\n */\nexport function nest(parent: FormBuilder, key: string, builder: FormBuilder): FormBuilder;\nexport function nest(key: string, builder: FormBuilder): (parent: FormBuilder) => FormBuilder;\nexport function nest(\n parentOrKey: FormBuilder | string,\n keyOrBuilder?: string | FormBuilder,\n builder?: FormBuilder,\n): FormBuilder | ((parent: FormBuilder) => FormBuilder) {\n if (parentOrKey instanceof FormBuilderImpl) {\n // Direct: nest(parent, key, builder)\n const parent = parentOrKey;\n const key = keyOrBuilder as string;\n return nestImpl(parent, key, builder!);\n } else {\n // Curried: nest(key, builder)\n const key = parentOrKey as string;\n const builder = keyOrBuilder as FormBuilder;\n return (parent: FormBuilder) => nestImpl(parent, key, builder);\n }\n}\n\n// Implementation helper\nconst optionImpl = <T>(\n builder: FormBuilder,\n key: string,\n value: Option.Option<T>,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder => {\n if (Option.isSome(value)) {\n return setImpl(builder, key, value.value, color);\n }\n return builder;\n};\n\n/**\n * Adds an optional value if it exists.\n */\nexport function option<T>(\n builder: FormBuilder,\n key: string,\n value: Option.Option<T>,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder;\nexport function option<T>(\n key: string,\n value: Option.Option<T>,\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): (builder: FormBuilder) => FormBuilder;\nexport function option<T>(\n builderOrKey: FormBuilder | string,\n keyOrValue?: string | Option.Option<T>,\n valueOrColor?: Option.Option<T> | Ansi.Ansi | ((value: T) => Ansi.Ansi),\n color?: Ansi.Ansi | ((value: T) => Ansi.Ansi),\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrKey instanceof FormBuilderImpl) {\n // Direct: option(builder, key, value, color?)\n const builder = builderOrKey;\n const key = keyOrValue as string;\n const value = valueOrColor as Option.Option<T>;\n return optionImpl(builder, key, value, color);\n } else {\n // Curried: option(key, value, color?)\n const key = builderOrKey as string;\n const value = keyOrValue as Option.Option<T>;\n const color = valueOrColor as Ansi.Ansi | ((value: T) => Ansi.Ansi) | undefined;\n return (builder: FormBuilder) => optionImpl(builder, key, value, color);\n }\n}\n\n// Implementation helper\nconst nestedOptionImpl = (builder: FormBuilder, key: string, value: Option.Option<FormBuilder>): FormBuilder => {\n if (Option.isSome(value)) {\n return nestImpl(builder, key, value.value);\n }\n return builder;\n};\n\n/**\n * Nests an optional form builder if it exists.\n */\nexport function nestedOption(builder: FormBuilder, key: string, value: Option.Option<FormBuilder>): FormBuilder;\nexport function nestedOption(key: string, value: Option.Option<FormBuilder>): (builder: FormBuilder) => FormBuilder;\nexport function nestedOption(\n builderOrKey: FormBuilder | string,\n keyOrValue?: string | Option.Option<FormBuilder>,\n value?: Option.Option<FormBuilder>,\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrKey instanceof FormBuilderImpl) {\n // Direct: nestedOption(builder, key, value)\n const builder = builderOrKey;\n const key = keyOrValue as string;\n return nestedOptionImpl(builder, key, value!);\n } else {\n // Curried: nestedOption(key, value)\n const key = builderOrKey as string;\n const value = keyOrValue as Option.Option<FormBuilder>;\n return (builder: FormBuilder) => nestedOptionImpl(builder, key, value);\n }\n}\n\n// Implementation helper\nconst whenImpl = (builder: FormBuilder, condition: any, ...ops: ((b: FormBuilder) => FormBuilder)[]): FormBuilder => {\n if (condition) {\n for (const op of ops) {\n op(builder);\n }\n }\n return builder;\n};\n\n/**\n * Conditionally executes operations.\n */\nexport function when(builder: FormBuilder, condition: any, ...ops: ((b: FormBuilder) => FormBuilder)[]): FormBuilder;\nexport function when(\n condition: any,\n ...ops: ((b: FormBuilder) => FormBuilder)[]\n): (builder: FormBuilder) => FormBuilder;\nexport function when(\n builderOrCondition: FormBuilder | any,\n conditionOrOp?: any | ((b: FormBuilder) => FormBuilder),\n ...ops: ((b: FormBuilder) => FormBuilder)[]\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrCondition instanceof FormBuilderImpl) {\n // Direct: when(builder, condition, ...ops)\n const builder = builderOrCondition;\n const condition = conditionOrOp;\n return whenImpl(builder, condition, ...ops);\n } else {\n // Curried: when(condition, ...ops)\n const condition = builderOrCondition;\n const allOps = [conditionOrOp, ...ops].filter(\n (op): op is (b: FormBuilder) => FormBuilder => typeof op === 'function',\n );\n return (builder: FormBuilder) => whenImpl(builder, condition, ...allOps);\n }\n}\n\n// Implementation helper\nconst eachImpl = <T>(\n builder: FormBuilder,\n items: T[],\n fn: (item: T) => (b: FormBuilder) => FormBuilder,\n): FormBuilder => {\n items.forEach((item) => fn(item)(builder));\n return builder;\n};\n\n/**\n * Iterates over an array of items.\n */\nexport function each<T>(\n builder: FormBuilder,\n items: T[],\n fn: (item: T) => (b: FormBuilder) => FormBuilder,\n): FormBuilder;\nexport function each<T>(\n items: T[],\n fn: (item: T) => (b: FormBuilder) => FormBuilder,\n): (builder: FormBuilder) => FormBuilder;\nexport function each<T>(\n builderOrItems: FormBuilder | T[],\n itemsOrFn?: T[] | ((item: T) => (b: FormBuilder) => FormBuilder),\n fn?: (item: T) => (b: FormBuilder) => FormBuilder,\n): FormBuilder | ((builder: FormBuilder) => FormBuilder) {\n if (builderOrItems instanceof FormBuilderImpl) {\n // Direct: each(builder, items, fn)\n const builder = builderOrItems;\n const items = itemsOrFn as T[];\n return eachImpl(builder, items, fn!);\n } else {\n // Curried: each(items, fn)\n const items = builderOrItems as T[];\n const fn = itemsOrFn as (item: T) => (b: FormBuilder) => FormBuilder;\n return (builder: FormBuilder) => eachImpl(builder, items, fn);\n }\n}\n\n/**\n * Builds the final document.\n */\nexport const build = (builder: FormBuilder): Doc.Doc<any> => {\n const { targetWidth } = calculateDimensions(builder.entries, builder.prefix);\n const entryLines: Doc.Doc<any>[] = [];\n\n builder.entries.forEach(({ key, value, isNested }) => {\n const keyLine = buildKeyLine(builder.prefix, key, targetWidth);\n if (isNested) {\n // Nested content should start on a new line.\n // value is already indented by nestImpl, so we just cat with hardLine.\n entryLines.push(Doc.hcat([keyLine, Doc.hardLine, value]));\n } else {\n // Single-line value, combine key and value.\n // If the value itself is multiline (e.g. from Doc.string with newlines, though Doc handles that specifically),\n // we might want layout flexibility.\n // For now, standard behavior:\n entryLines.push(Doc.hcat([keyLine, value]));\n }\n });\n\n const entriesDoc = Doc.vsep(entryLines);\n\n if (builder.title) {\n const titleDoc = Doc.hcat([Doc.annotate(Doc.text(builder.title), Ansi.combine(Ansi.bold, Ansi.cyan))]);\n // Join title and entries with a single line break, no extra spacing\n return Doc.cat(titleDoc, Doc.cat(Doc.line, entriesDoc));\n }\n\n return entriesDoc;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Options from '@effect/cli/Options';\n\nimport { Key } from '@dxos/echo';\n\n//\n// Common options.\n// NOTE: Sub-commands should Function.pipe(Options.optional) if required.\n//\n\nexport const Common = {\n functionId: Options.text('function-id').pipe(Options.withDescription('EDGE Function ID.')),\n spaceId: Options.text('space-id').pipe(Options.withSchema(Key.SpaceId), Options.withDescription('Space ID.')),\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport { spawn } from 'node:child_process';\n\n/**\n * Copy text to the system clipboard.\n * Supports macOS (pbcopy), Windows (clip), and Linux (xclip/xsel).\n */\nexport const copyToClipboard = (text: string): Effect.Effect<void, Error> =>\n Effect.tryPromise({\n try: () => {\n return new Promise<void>((resolve, reject) => {\n const platform = process.platform;\n let command: string;\n let args: string[];\n\n if (platform === 'darwin') {\n command = 'pbcopy';\n args = [];\n } else if (platform === 'win32') {\n command = 'clip';\n args = [];\n } else {\n // Linux - try xclip or xsel\n command = 'xclip';\n args = ['-selection', 'clipboard'];\n }\n\n const proc = spawn(command, args);\n proc.stdin?.write(text);\n proc.stdin?.end();\n\n proc.on('close', (code) => {\n if (code === 0) {\n resolve();\n } else {\n // Try xsel as fallback on Linux\n if (platform === 'linux') {\n const proc2 = spawn('xsel', ['--clipboard', '--input']);\n proc2.stdin?.write(text);\n proc2.stdin?.end();\n proc2.on('close', (code2) => {\n if (code2 === 0) {\n resolve();\n } else {\n reject(new Error('Failed to copy to clipboard'));\n }\n });\n proc2.on('error', reject);\n } else {\n reject(new Error('Failed to copy to clipboard'));\n }\n }\n });\n\n proc.on('error', reject);\n });\n },\n catch: (error) => new Error(`Failed to copy to clipboard: ${error}`),\n });\n\n/**\n * Open a URL in the system's default browser.\n * Supports macOS (open), Windows (start), and Linux (xdg-open).\n */\nexport const openBrowser = (url: string): Effect.Effect<void, Error> =>\n Effect.tryPromise({\n try: () => {\n return new Promise<void>((resolve, reject) => {\n const platform = process.platform;\n let command: string;\n let args: string[];\n\n if (platform === 'darwin') {\n command = 'open';\n args = [url];\n } else if (platform === 'win32') {\n command = 'start';\n args = [url];\n } else {\n command = 'xdg-open';\n args = [url];\n }\n\n const proc = spawn(command, args);\n proc.on('close', (code) => {\n if (code === 0) {\n resolve();\n } else {\n reject(new Error('Failed to open browser'));\n }\n });\n proc.on('error', reject);\n });\n },\n catch: (error) => new Error(`Failed to open browser: ${error}`),\n });\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AnsiDoc from '@effect/printer-ansi/AnsiDoc';\nimport * as Doc from '@effect/printer/Doc';\n\n/**\n * Pretty print document.\n */\nexport const print = (doc: Doc.Doc<any>) => AnsiDoc.render(doc, { style: 'pretty' });\n\n/**\n * Pretty prints a list of documents with ANSI colors.\n */\nexport const printList = (items: Array<Doc.Doc<any>>) =>\n AnsiDoc.render(Doc.vsep(items.map((item) => Doc.cat(item, Doc.hardLine))), { style: 'pretty' });\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ClientService } from '@dxos/client';\nimport { type Type } from '@dxos/echo';\n\n/** @deprecated Migrate to providing types via plugin capabilities. */\nexport const withTypes: (...types: Type.AnyEntity[]) => Effect.Effect<void, never, ClientService> = (...types) =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n yield* Effect.promise(() => client.addTypes(types));\n });\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\n\nimport { getPersonalSpace } from '@dxos/app-toolkit';\nimport { ClientService } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { Database, type Key } from '@dxos/echo';\nimport { BaseError, type BaseErrorOptions } from '@dxos/errors';\nimport { QueueService } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { isBun } from '@dxos/util';\n\nexport const getSpace = (spaceId: Key.SpaceId): Effect.Effect<Space, SpaceNotFoundError, ClientService> =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n return yield* Option.fromNullable(client.spaces.get(spaceId));\n }).pipe(Effect.catchTag('NoSuchElementException', () => Effect.fail(new SpaceNotFoundError(spaceId))));\n\nexport const spaceIdWithDefault = (spaceId: Option.Option<Key.SpaceId>) =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n return Option.getOrElse(spaceId, () => {\n const personal = getPersonalSpace(client);\n if (!personal) {\n throw new Error('No space ID provided and no personal space found.');\n }\n return personal.id;\n });\n });\n\n// TODO(wittjosiah): Factor out.\nexport const spaceLayer = (\n spaceId$: Option.Option<Key.SpaceId>,\n fallbackToPersonalSpace = false,\n): Layer.Layer<Database.Service | QueueService, never, ClientService> => {\n const getSpace = Effect.fn(function* () {\n const client = yield* ClientService;\n\n const spaceId = Match.value(fallbackToPersonalSpace).pipe(\n Match.when(true, () => spaceId$.pipe(Option.orElse(() => Option.fromNullable(getPersonalSpace(client)?.id)))),\n Match.when(false, () => spaceId$),\n Match.exhaustive,\n );\n\n const space = spaceId.pipe(\n Option.flatMap((id) => Option.fromNullable(client.spaces.get(id))),\n Option.getOrUndefined,\n );\n\n if (space) {\n yield* Effect.promise(() => space.waitUntilReady());\n }\n return space;\n });\n\n const db = Layer.scoped(\n Database.Service,\n Effect.acquireRelease(\n Effect.gen(function* () {\n const space = yield* getSpace();\n if (!space) {\n return {\n get db(): Database.Database {\n throw new Error('Space not found');\n },\n };\n }\n return { db: space.db };\n }),\n ({ db }) => Effect.promise(() => db.flush()),\n ),\n );\n\n const queue = Layer.effect(\n QueueService,\n Effect.gen(function* () {\n const space = yield* getSpace();\n if (!space) {\n return {\n queues: {\n get: (_dxn) => {\n throw new Error('Queues not available');\n },\n create: () => {\n throw new Error('Queues not available');\n },\n },\n queue: undefined,\n };\n }\n return {\n queues: space.queues,\n queue: undefined,\n };\n }),\n );\n\n return Layer.merge(db, queue);\n};\n\n// TODO(dmaretskyi): There a race condition with edge connection not showing up.\nexport const waitForSync = Effect.fn(function* (space: Space) {\n // TODO(wittjosiah): Find a better way to do this.\n if (!isBun()) {\n // Skipping sync to edge when not in bun env as this indicates running a test.\n return;\n }\n\n // TODO(wittjosiah): This should probably be prompted for.\n if (space.internal.data.edgeReplication !== EdgeReplicationSetting.ENABLED) {\n yield* Console.log('Edge replication is disabled, enabling...');\n yield* Effect.promise(() => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n }\n\n yield* Effect.promise(() =>\n space.internal.syncToEdge({\n onProgress: (state) => log.info('syncing', { state: state ?? 'no connection to edge' }),\n }),\n );\n yield* Console.log('Sync complete');\n});\n\nexport const flushAndSync = Effect.fn(function* (opts?: Database.FlushOptions) {\n yield* Database.flush(opts);\n const spaceId = yield* Database.spaceId;\n const space = yield* getSpace(spaceId);\n yield* waitForSync(space);\n});\n\n// TODO(burdon): Reconcile with @dxos/protocols\nexport class SpaceNotFoundError extends BaseError.extend('SpaceNotFoundError', 'Space not found') {\n constructor(spaceId: string, options?: Omit<BaseErrorOptions, 'context'>) {\n super({ context: { spaceId }, ...options });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { type Space, SpaceState, type SpaceSyncState } from '@dxos/client/echo';\n\nimport * as FormBuilder from './form-builder';\n\n// TODO(wittjosiah): Use @effect/printer.\nexport const formatSpace = Effect.fn(function* (space: Space, options = { verbose: false, truncateKeys: false }) {\n yield* Effect.tryPromise(() => space.waitUntilReady());\n\n // TODO(burdon): Factor out.\n // TODO(burdon): Agent needs to restart before `ready` is available.\n const { open, ready } = space.internal.data.metrics ?? {};\n const startup = open && ready && ready.getTime() - open.getTime();\n\n // TODO(burdon): Get feeds from client-services if verbose (factor out from devtools/diagnostics).\n // const host = client.services.services.DevtoolsHost!;\n const pipeline = space.internal.data.pipeline;\n const epoch = pipeline?.currentEpoch?.subject.assertion.number;\n\n const syncState = aggregateSyncState(yield* Effect.tryPromise(() => space.internal.db.coreDatabase.getSyncState()));\n\n return {\n id: space.id,\n state: SpaceState[space.state.get()],\n name: space.state.get() === SpaceState.SPACE_READY ? space.properties.name : 'loading...',\n\n members: space.members.get().length,\n objects: space.internal.db.coreDatabase.getAllObjectIds().length,\n\n key: options.truncateKeys ? space.key.truncate() : space.key.toHex(),\n epoch,\n startup,\n automergeRoot: space.internal.data.pipeline?.spaceRootUrl,\n // appliedEpoch,\n syncState: `${syncState.count} ${getSyncIndicator(syncState.up, syncState.down)} (${syncState.peers} peers)`,\n };\n});\n\nconst aggregateSyncState = (syncState: SpaceSyncState) => {\n const peers = Object.keys(syncState.peers ?? {}).length;\n const missingOnLocal = Math.max(...Object.values(syncState.peers ?? {}).map((peer) => peer.missingOnLocal), 0);\n const missingOnRemote = Math.max(...Object.values(syncState.peers ?? {}).map((peer) => peer.missingOnRemote), 0);\n const differentDocuments = Math.max(\n ...Object.values(syncState.peers ?? {}).map((peer) => peer.differentDocuments),\n 0,\n );\n\n return {\n count: missingOnLocal + missingOnRemote + differentDocuments,\n peers,\n up: missingOnRemote > 0 || differentDocuments > 0,\n down: missingOnLocal > 0 || differentDocuments > 0,\n };\n};\n\nconst getSyncIndicator = (up: boolean, down: boolean) => {\n if (up) {\n if (down) {\n return '⇅';\n } else {\n return '↑';\n }\n } else {\n if (down) {\n return '↓';\n } else {\n return '✓';\n }\n }\n};\n\nexport type FormattedSpace = {\n id: string;\n state: string;\n name: string | undefined;\n members: number;\n objects: number;\n key: string;\n epoch: any;\n startup: number | undefined;\n automergeRoot: string | undefined;\n syncState: string;\n};\n\n/**\n * Pretty prints a space with ANSI colors.\n */\nexport const printSpace = (spaceData: FormattedSpace) =>\n FormBuilder.make({ title: spaceData.name ?? spaceData.id }).pipe(\n FormBuilder.set('id', spaceData.id),\n FormBuilder.set('state', spaceData.state),\n FormBuilder.set('key', spaceData.key),\n FormBuilder.set('members', spaceData.members),\n FormBuilder.set('objects', spaceData.objects),\n FormBuilder.set('epoch', spaceData.epoch ?? '<none>'),\n FormBuilder.set('startup', spaceData.startup ? `${spaceData.startup}ms` : '<none>'),\n FormBuilder.set('syncState', spaceData.syncState),\n FormBuilder.set('automergeRoot', spaceData.automergeRoot ?? '<none>'),\n FormBuilder.build,\n );\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Cause from 'effect/Cause';\nimport * as Config from 'effect/Config';\nimport type * as ConfigError from 'effect/ConfigError';\nimport * as Duration from 'effect/Duration';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nexport const withTimeout: <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n) => Effect.Effect<A, Cause.TimeoutException | ConfigError.ConfigError | E, R> = Effect.fnUntraced(function* (effect) {\n const timeout = yield* Config.integer('TIMEOUT').pipe(Config.option);\n const duration = timeout.pipe(\n Option.map(Duration.millis),\n Option.getOrElse(() => Duration.infinity),\n );\n return yield* effect.pipe(Effect.timeout(duration));\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["Ansi", "Doc", "Option", "Pipeable", "FormBuilderImpl", "entries", "title", "prefix", "options", "pipe", "pipeArguments", "arguments", "make", "props", "calculateDimensions", "maxKeyLen", "Math", "max", "map", "entry", "key", "length", "targetWidth", "buildKeyLine", "annotate", "fill", "text", "blackBright", "setImpl", "builder", "value", "color", "undefined", "valueDoc", "String", "ansi", "push", "isNested", "set", "builderOrKey", "keyOrValue", "valueOrColor", "nestImpl", "parent", "nestedBuilder", "build", "indent", "nest", "parentOrKey", "keyOrBuilder", "optionImpl", "isSome", "option", "nestedOptionImpl", "nestedOption", "whenImpl", "condition", "ops", "op", "when", "builderOrCondition", "conditionOrOp", "allOps", "filter", "eachImpl", "items", "fn", "forEach", "item", "each", "builderOrItems", "itemsOrFn", "entryLines", "keyLine", "hcat", "hardLine", "entriesDoc", "vsep", "titleDoc", "combine", "bold", "cyan", "cat", "line", "Options", "Key", "Common", "functionId", "text", "pipe", "withDescription", "spaceId", "withSchema", "Key", "SpaceId", "Effect", "spawn", "copyToClipboard", "text", "tryPromise", "try", "Promise", "resolve", "reject", "platform", "process", "command", "args", "proc", "spawn", "stdin", "write", "end", "on", "code", "proc2", "code2", "Error", "catch", "error", "openBrowser", "url", "AnsiDoc", "Doc", "print", "doc", "render", "style", "printList", "items", "vsep", "map", "item", "cat", "hardLine", "Effect", "ClientService", "withTypes", "types", "gen", "client", "ClientService", "promise", "addTypes", "Console", "Effect", "Layer", "Match", "Option", "getPersonalSpace", "ClientService", "Database", "BaseError", "QueueService", "log", "EdgeReplicationSetting", "isBun", "getSpace", "spaceId", "gen", "client", "fromNullable", "spaces", "get", "pipe", "catchTag", "fail", "SpaceNotFoundError", "spaceIdWithDefault", "getOrElse", "personal", "Error", "id", "spaceLayer", "spaceId$", "fallbackToPersonalSpace", "fn", "value", "when", "orElse", "exhaustive", "space", "flatMap", "getOrUndefined", "promise", "waitUntilReady", "db", "scoped", "Service", "acquireRelease", "flush", "queue", "effect", "queues", "_dxn", "create", "undefined", "merge", "waitForSync", "internal", "data", "edgeReplication", "ENABLED", "setEdgeReplicationPreference", "syncToEdge", "onProgress", "state", "info", "flushAndSync", "opts", "extend", "options", "context", "Effect", "SpaceState", "formatSpace", "fn", "space", "options", "verbose", "truncateKeys", "tryPromise", "waitUntilReady", "open", "ready", "internal", "data", "metrics", "startup", "getTime", "pipeline", "epoch", "currentEpoch", "subject", "assertion", "number", "syncState", "aggregateSyncState", "db", "coreDatabase", "getSyncState", "id", "state", "SpaceState", "get", "name", "SPACE_READY", "properties", "members", "length", "objects", "getAllObjectIds", "key", "truncate", "toHex", "automergeRoot", "spaceRootUrl", "count", "getSyncIndicator", "up", "down", "peers", "Object", "keys", "missingOnLocal", "Math", "max", "values", "map", "peer", "missingOnRemote", "differentDocuments", "printSpace", "spaceData", "make", "title", "pipe", "set", "build", "Config", "Duration", "Effect", "Option", "withTimeout", "fnUntraced", "effect", "timeout", "integer", "pipe", "option", "duration", "map", "millis", "getOrElse", "infinity"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/services/command-config.ts":{"bytes":2575,"imports":[{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true}],"format":"esm"},"src/services/index.ts":{"bytes":480,"imports":[{"path":"src/services/command-config.ts","kind":"import-statement","original":"./command-config"}],"format":"esm"},"src/util/form-builder.ts":{"bytes":31794,"imports":[{"path":"@effect/printer/Doc","kind":"import-statement","external":true},{"path":"@effect/printer-ansi/Ansi","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Pipeable","kind":"import-statement","external":true}],"format":"esm"},"src/util/options.ts":{"bytes":1890,"imports":[{"path":"@effect/cli/Options","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/util/platform.ts":{"bytes":10276,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true}],"format":"esm"},"src/util/printer.ts":{"bytes":1949,"imports":[{"path":"@effect/printer/Doc","kind":"import-statement","external":true},{"path":"@effect/printer-ansi/AnsiDoc","kind":"import-statement","external":true}],"format":"esm"},"src/util/runtime.ts":{"bytes":1700,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true}],"format":"esm"},"src/util/space.ts":{"bytes":16061,"imports":[{"path":"effect/Console","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Match","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/metadata","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/util/space-format.ts":{"bytes":12792,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"src/util/form-builder.ts","kind":"import-statement","original":"./form-builder"}],"format":"esm"},"src/util/timeout.ts":{"bytes":2533,"imports":[{"path":"effect/Config","kind":"import-statement","external":true},{"path":"effect/Duration","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true}],"format":"esm"},"src/util/index.ts":{"bytes":1158,"imports":[{"path":"src/util/form-builder.ts","kind":"import-statement","original":"./form-builder"},{"path":"src/util/options.ts","kind":"import-statement","original":"./options"},{"path":"src/util/platform.ts","kind":"import-statement","original":"./platform"},{"path":"src/util/printer.ts","kind":"import-statement","original":"./printer"},{"path":"src/util/runtime.ts","kind":"import-statement","original":"./runtime"},{"path":"src/util/space.ts","kind":"import-statement","original":"./space"},{"path":"src/util/space-format.ts","kind":"import-statement","original":"./space-format"},{"path":"src/util/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/index.ts":{"bytes":533,"imports":[{"path":"src/services/index.ts","kind":"import-statement","original":"./services"},{"path":"src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"src/testing/test-console.ts":{"bytes":7760,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"effect/Console","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true}],"format":"esm"},"src/testing/test-layer.ts":{"bytes":2026,"imports":[{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"src/services/index.ts","kind":"import-statement","original":"../services"},{"path":"src/testing/test-console.ts","kind":"import-statement","original":"./test-console"}],"format":"esm"},"src/testing/index.ts":{"bytes":567,"imports":[{"path":"src/testing/test-console.ts","kind":"import-statement","original":"./test-console"},{"path":"src/testing/test-layer.ts","kind":"import-statement","original":"./test-layer"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":40219},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-6TKUDRM6.mjs","kind":"import-statement"},{"path":"@effect/printer/Doc","kind":"import-statement","external":true},{"path":"@effect/printer-ansi/Ansi","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Pipeable","kind":"import-statement","external":true},{"path":"@effect/cli/Options","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@effect/printer/Doc","kind":"import-statement","external":true},{"path":"@effect/printer-ansi/AnsiDoc","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"effect/Console","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Match","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/metadata","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"effect/Config","kind":"import-statement","external":true},{"path":"effect/Duration","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true}],"exports":["CommandConfig","Common","FormBuilder","SpaceNotFoundError","copyToClipboard","flushAndSync","formatSpace","getSpace","openBrowser","print","printList","printSpace","spaceIdWithDefault","spaceLayer","waitForSync","withTimeout","withTypes"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/util/form-builder.ts":{"bytesInOutput":5622},"src/util/index.ts":{"bytesInOutput":0},"src/util/options.ts":{"bytesInOutput":306},"src/util/platform.ts":{"bytesInOutput":2302},"src/util/printer.ts":{"bytesInOutput":296},"src/util/runtime.ts":{"bytesInOutput":244},"src/util/space.ts":{"bytesInOutput":3780},"src/util/space-format.ts":{"bytesInOutput":2551},"src/util/timeout.ts":{"bytesInOutput":471}},"bytes":16259},"dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5107},"dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-6TKUDRM6.mjs","kind":"import-statement"},{"path":"node:util","kind":"import-statement","external":true},{"path":"effect/Console","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true}],"exports":["TestConsole","TestLayer"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/test-console.ts":{"bytesInOutput":1754},"src/testing/index.ts":{"bytesInOutput":0},"src/testing/test-layer.ts":{"bytesInOutput":332}},"bytes":2371},"dist/lib/node-esm/chunk-6TKUDRM6.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1399},"dist/lib/node-esm/chunk-6TKUDRM6.mjs":{"imports":[{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true}],"exports":["CommandConfig","__export"],"inputs":{"src/services/command-config.ts":{"bytesInOutput":506}},"bytes":885}}}
1
+ {"inputs":{"src/services/command-config.ts":{"bytes":2575,"imports":[{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true}],"format":"esm"},"src/services/index.ts":{"bytes":480,"imports":[{"path":"src/services/command-config.ts","kind":"import-statement","original":"./command-config"}],"format":"esm"},"src/util/form-builder.ts":{"bytes":31794,"imports":[{"path":"@effect/printer-ansi/Ansi","kind":"import-statement","external":true},{"path":"@effect/printer/Doc","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Pipeable","kind":"import-statement","external":true}],"format":"esm"},"src/util/options.ts":{"bytes":1890,"imports":[{"path":"@effect/cli/Options","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/util/platform.ts":{"bytes":10276,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true}],"format":"esm"},"src/util/printer.ts":{"bytes":1949,"imports":[{"path":"@effect/printer-ansi/AnsiDoc","kind":"import-statement","external":true},{"path":"@effect/printer/Doc","kind":"import-statement","external":true}],"format":"esm"},"src/util/runtime.ts":{"bytes":1696,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true}],"format":"esm"},"src/util/space.ts":{"bytes":16074,"imports":[{"path":"effect/Console","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Match","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/metadata","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/util/space-format.ts":{"bytes":12792,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"src/util/form-builder.ts","kind":"import-statement","original":"./form-builder"}],"format":"esm"},"src/util/timeout.ts":{"bytes":2533,"imports":[{"path":"effect/Config","kind":"import-statement","external":true},{"path":"effect/Duration","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true}],"format":"esm"},"src/util/index.ts":{"bytes":1158,"imports":[{"path":"src/util/form-builder.ts","kind":"import-statement","original":"./form-builder"},{"path":"src/util/options.ts","kind":"import-statement","original":"./options"},{"path":"src/util/platform.ts","kind":"import-statement","original":"./platform"},{"path":"src/util/printer.ts","kind":"import-statement","original":"./printer"},{"path":"src/util/runtime.ts","kind":"import-statement","original":"./runtime"},{"path":"src/util/space.ts","kind":"import-statement","original":"./space"},{"path":"src/util/space-format.ts","kind":"import-statement","original":"./space-format"},{"path":"src/util/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/index.ts":{"bytes":533,"imports":[{"path":"src/services/index.ts","kind":"import-statement","original":"./services"},{"path":"src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"src/testing/test-console.ts":{"bytes":7756,"imports":[{"path":"effect/Console","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"src/testing/test-layer.ts":{"bytes":2022,"imports":[{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"src/services/index.ts","kind":"import-statement","original":"../services"},{"path":"src/testing/test-console.ts","kind":"import-statement","original":"./test-console"}],"format":"esm"},"src/testing/index.ts":{"bytes":567,"imports":[{"path":"src/testing/test-console.ts","kind":"import-statement","original":"./test-console"},{"path":"src/testing/test-layer.ts","kind":"import-statement","original":"./test-layer"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":40246},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-6TKUDRM6.mjs","kind":"import-statement"},{"path":"@effect/printer-ansi/Ansi","kind":"import-statement","external":true},{"path":"@effect/printer/Doc","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Pipeable","kind":"import-statement","external":true},{"path":"@effect/cli/Options","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@effect/printer-ansi/AnsiDoc","kind":"import-statement","external":true},{"path":"@effect/printer/Doc","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"effect/Console","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Match","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/metadata","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"effect/Config","kind":"import-statement","external":true},{"path":"effect/Duration","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true}],"exports":["CommandConfig","Common","FormBuilder","SpaceNotFoundError","copyToClipboard","flushAndSync","formatSpace","getSpace","openBrowser","print","printList","printSpace","spaceIdWithDefault","spaceLayer","waitForSync","withTimeout","withTypes"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/util/form-builder.ts":{"bytesInOutput":5622},"src/util/index.ts":{"bytesInOutput":0},"src/util/options.ts":{"bytesInOutput":306},"src/util/platform.ts":{"bytesInOutput":2302},"src/util/printer.ts":{"bytesInOutput":296},"src/util/runtime.ts":{"bytesInOutput":244},"src/util/space.ts":{"bytesInOutput":3831},"src/util/space-format.ts":{"bytesInOutput":2551},"src/util/timeout.ts":{"bytesInOutput":471}},"bytes":16310},"dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5103},"dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-6TKUDRM6.mjs","kind":"import-statement"},{"path":"effect/Console","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true}],"exports":["TestConsole","TestLayer"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/test-console.ts":{"bytesInOutput":1754},"src/testing/index.ts":{"bytesInOutput":0},"src/testing/test-layer.ts":{"bytesInOutput":332}},"bytes":2371},"dist/lib/node-esm/chunk-6TKUDRM6.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1399},"dist/lib/node-esm/chunk-6TKUDRM6.mjs":{"imports":[{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true}],"exports":["CommandConfig","__export"],"inputs":{"src/services/command-config.ts":{"bytesInOutput":506}},"bytes":885}}}
@@ -4,11 +4,11 @@ import {
4
4
  } from "../chunk-6TKUDRM6.mjs";
5
5
 
6
6
  // src/testing/test-console.ts
7
- import { inspect } from "node:util";
8
7
  import * as Console from "effect/Console";
9
8
  import * as Context from "effect/Context";
10
9
  import * as Effect from "effect/Effect";
11
10
  import * as Layer from "effect/Layer";
11
+ import { inspect } from "node:util";
12
12
  function logToString(...args) {
13
13
  return args.map((arg) => {
14
14
  if (typeof arg === "string") {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/test-console.ts", "../../../../src/testing/test-layer.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport * as Console from 'effect/Console';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\n\nfunction logToString(...args: any[]): string {\n return args\n .map((arg) => {\n if (typeof arg === 'string') {\n return arg;\n }\n\n return inspect(arg, { colors: false, depth: null });\n })\n .join(' ');\n}\n\nclass TestConsoleService {\n private _logs: Array<{ level: string; args: unknown; message: string }> = [];\n\n readonly console: Console.Console;\n\n constructor(console: Console.Console) {\n const pusher =\n (level: string) =>\n (...args: readonly any[]) => {\n this._logs.push({ level, args, message: logToString(...args) });\n };\n\n this.console = {\n ...console,\n log: (...args: readonly any[]) => Effect.sync(() => pusher('log')(...args)),\n };\n }\n\n get logs() {\n return [...this._logs];\n }\n\n clear() {\n this._logs.length = 0;\n }\n}\n\n// TODO(burdon): We could have a single namespace \"Testing\" with all test utilities.\nexport namespace TestConsole {\n export class TestConsole extends Context.Tag('TestConsole')<TestConsole, TestConsoleService>() {}\n\n /**\n * Extract JSON string from log arguments.\n * Handles both array and string argument formats.\n */\n export const extractJsonString = (log: { args: unknown }): string => {\n if (Array.isArray(log.args) && log.args.length > 0) {\n return String(log.args[0]);\n }\n return log.args as string;\n };\n\n /**\n * Parse JSON from log arguments.\n * Handles both array and string argument formats.\n */\n export const parseJson = <T = unknown>(log: { args: unknown }): T => {\n const jsonString = extractJsonString(log);\n return JSON.parse(jsonString) as T;\n };\n\n const testConsole = Layer.effect(\n TestConsole,\n Effect.gen(function* () {\n return new TestConsoleService(yield* Effect.console);\n }),\n );\n\n const setConsole = Effect.gen(function* () {\n const { console } = yield* TestConsole;\n return Console.setConsole(console);\n }).pipe(Layer.unwrapEffect);\n\n export const layer = Layer.provideMerge(setConsole, testConsole);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport * as Layer from 'effect/Layer';\n\nimport { ClientService, ConfigService } from '@dxos/client';\n\nimport { CommandConfig } from '../services';\n\nimport { TestConsole } from './test-console';\n\nexport const TestLayer = Function.pipe(\n ClientService.layer,\n Layer.provideMerge(ConfigService.layerMemory),\n Layer.provideMerge(TestConsole.layer),\n Layer.provideMerge(CommandConfig.layerTest),\n);\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,eAAe;AAExB,YAAYC,aAAa;AACzB,YAAYC,aAAa;AACzB,YAAYC,YAAY;AACxB,YAAYC,WAAW;AAEvB,SAASC,eAAeC,MAAW;AACjC,SAAOA,KACJC,IAAI,CAACC,QAAAA;AACJ,QAAI,OAAOA,QAAQ,UAAU;AAC3B,aAAOA;IACT;AAEA,WAAOC,QAAQD,KAAK;MAAEE,QAAQ;MAAOC,OAAO;IAAK,CAAA;EACnD,CAAA,EACCC,KAAK,GAAA;AACV;AAEA,IAAMC,qBAAN,MAAMA;EACIC,QAAkE,CAAA;EAEjEC;EAET,YAAYA,UAA0B;AACpC,UAAMC,SACJ,CAACC,UACD,IAAIX,SAAAA;AACF,WAAKQ,MAAMI,KAAK;QAAED;QAAOX;QAAMa,SAASd,YAAAA,GAAeC,IAAAA;MAAM,CAAA;IAC/D;AAEF,SAAKS,UAAU;MACb,GAAGA;MACHK,KAAK,IAAId,SAAgCe,YAAK,MAAML,OAAO,KAAA,EAAA,GAAUV,IAAAA,CAAAA;IACvE;EACF;EAEA,IAAIgB,OAAO;AACT,WAAO;SAAI,KAAKR;;EAClB;EAEAS,QAAQ;AACN,SAAKT,MAAMU,SAAS;EACtB;AACF;UAGiBC,cAAAA;EACR,MAAMA,qBAA4BC,YAAI,aAAA,EAAA,EAAA;EAAmD;eAAnFD,cAAAA;eAMAE,oBAAoB,CAACP,QAAAA;AAChC,QAAIQ,MAAMC,QAAQT,IAAId,IAAI,KAAKc,IAAId,KAAKkB,SAAS,GAAG;AAClD,aAAOM,OAAOV,IAAId,KAAK,CAAA,CAAE;IAC3B;AACA,WAAOc,IAAId;EACb;eAMayB,YAAY,CAAcX,QAAAA;AACrC,UAAMY,aAAaL,aAAAA,kBAAkBP,GAAAA;AACrC,WAAOa,KAAKC,MAAMF,UAAAA;EACpB;AAEA,QAAMG,cAAoBC,aACxBX,cACOY,WAAI,aAAA;AACT,WAAO,IAAIxB,mBAAmB,OAAcE,cAAM;EACpD,CAAA,CAAA;AAGF,QAAMuB,cAAoBD,WAAI,aAAA;AAC5B,UAAM,EAAEtB,SAAAA,SAAO,IAAK,OAAOU;AAC3B,WAAea,mBAAWvB,QAAAA;EAC5B,CAAA,EAAGwB,KAAWC,kBAAY;eAEbC,QAAcC,mBAAaJ,aAAYH,WAAAA;AACtD,GApCiBV,gBAAAA,cAAAA,CAAAA,EAAAA;;;;AC/CjB,YAAYkB,cAAc;AAC1B,YAAYC,YAAW;AAEvB,SAASC,eAAeC,qBAAqB;AAMtC,IAAMC,YAAqBC,cAChCC,cAAcC,OACRC,oBAAaC,cAAcC,WAAW,GACtCF,oBAAaG,YAAYJ,KAAK,GAC9BC,oBAAaI,cAAcC,SAAS,CAAA;",
6
- "names": ["inspect", "Console", "Context", "Effect", "Layer", "logToString", "args", "map", "arg", "inspect", "colors", "depth", "join", "TestConsoleService", "_logs", "console", "pusher", "level", "push", "message", "log", "sync", "logs", "clear", "length", "TestConsole", "Tag", "extractJsonString", "Array", "isArray", "String", "parseJson", "jsonString", "JSON", "parse", "testConsole", "effect", "gen", "setConsole", "pipe", "unwrapEffect", "layer", "provideMerge", "Function", "Layer", "ClientService", "ConfigService", "TestLayer", "pipe", "ClientService", "layer", "provideMerge", "ConfigService", "layerMemory", "TestConsole", "CommandConfig", "layerTest"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Console from 'effect/Console';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport { inspect } from 'node:util';\n\nfunction logToString(...args: any[]): string {\n return args\n .map((arg) => {\n if (typeof arg === 'string') {\n return arg;\n }\n\n return inspect(arg, { colors: false, depth: null });\n })\n .join(' ');\n}\n\nclass TestConsoleService {\n private _logs: Array<{ level: string; args: unknown; message: string }> = [];\n\n readonly console: Console.Console;\n\n constructor(console: Console.Console) {\n const pusher =\n (level: string) =>\n (...args: readonly any[]) => {\n this._logs.push({ level, args, message: logToString(...args) });\n };\n\n this.console = {\n ...console,\n log: (...args: readonly any[]) => Effect.sync(() => pusher('log')(...args)),\n };\n }\n\n get logs() {\n return [...this._logs];\n }\n\n clear() {\n this._logs.length = 0;\n }\n}\n\n// TODO(burdon): We could have a single namespace \"Testing\" with all test utilities.\nexport namespace TestConsole {\n export class TestConsole extends Context.Tag('TestConsole')<TestConsole, TestConsoleService>() {}\n\n /**\n * Extract JSON string from log arguments.\n * Handles both array and string argument formats.\n */\n export const extractJsonString = (log: { args: unknown }): string => {\n if (Array.isArray(log.args) && log.args.length > 0) {\n return String(log.args[0]);\n }\n return log.args as string;\n };\n\n /**\n * Parse JSON from log arguments.\n * Handles both array and string argument formats.\n */\n export const parseJson = <T = unknown>(log: { args: unknown }): T => {\n const jsonString = extractJsonString(log);\n return JSON.parse(jsonString) as T;\n };\n\n const testConsole = Layer.effect(\n TestConsole,\n Effect.gen(function* () {\n return new TestConsoleService(yield* Effect.console);\n }),\n );\n\n const setConsole = Effect.gen(function* () {\n const { console } = yield* TestConsole;\n return Console.setConsole(console);\n }).pipe(Layer.unwrapEffect);\n\n export const layer = Layer.provideMerge(setConsole, testConsole);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport * as Layer from 'effect/Layer';\n\nimport { ClientService, ConfigService } from '@dxos/client';\n\nimport { CommandConfig } from '../services';\nimport { TestConsole } from './test-console';\n\nexport const TestLayer = Function.pipe(\n ClientService.layer,\n Layer.provideMerge(ConfigService.layerMemory),\n Layer.provideMerge(TestConsole.layer),\n Layer.provideMerge(CommandConfig.layerTest),\n);\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,aAAa;AACzB,YAAYC,aAAa;AACzB,YAAYC,YAAY;AACxB,YAAYC,WAAW;AACvB,SAASC,eAAe;AAExB,SAASC,eAAeC,MAAW;AACjC,SAAOA,KACJC,IAAI,CAACC,QAAAA;AACJ,QAAI,OAAOA,QAAQ,UAAU;AAC3B,aAAOA;IACT;AAEA,WAAOC,QAAQD,KAAK;MAAEE,QAAQ;MAAOC,OAAO;IAAK,CAAA;EACnD,CAAA,EACCC,KAAK,GAAA;AACV;AAEA,IAAMC,qBAAN,MAAMA;EACIC,QAAkE,CAAA;EAEjEC;EAET,YAAYA,UAA0B;AACpC,UAAMC,SACJ,CAACC,UACD,IAAIX,SAAAA;AACF,WAAKQ,MAAMI,KAAK;QAAED;QAAOX;QAAMa,SAASd,YAAAA,GAAeC,IAAAA;MAAM,CAAA;IAC/D;AAEF,SAAKS,UAAU;MACb,GAAGA;MACHK,KAAK,IAAId,SAAgCe,YAAK,MAAML,OAAO,KAAA,EAAA,GAAUV,IAAAA,CAAAA;IACvE;EACF;EAEA,IAAIgB,OAAO;AACT,WAAO;SAAI,KAAKR;;EAClB;EAEAS,QAAQ;AACN,SAAKT,MAAMU,SAAS;EACtB;AACF;UAGiBC,cAAAA;EACR,MAAMA,qBAA4BC,YAAI,aAAA,EAAA,EAAA;EAAmD;eAAnFD,cAAAA;eAMAE,oBAAoB,CAACP,QAAAA;AAChC,QAAIQ,MAAMC,QAAQT,IAAId,IAAI,KAAKc,IAAId,KAAKkB,SAAS,GAAG;AAClD,aAAOM,OAAOV,IAAId,KAAK,CAAA,CAAE;IAC3B;AACA,WAAOc,IAAId;EACb;eAMayB,YAAY,CAAcX,QAAAA;AACrC,UAAMY,aAAaL,aAAAA,kBAAkBP,GAAAA;AACrC,WAAOa,KAAKC,MAAMF,UAAAA;EACpB;AAEA,QAAMG,cAAoBC,aACxBX,cACOY,WAAI,aAAA;AACT,WAAO,IAAIxB,mBAAmB,OAAcE,cAAM;EACpD,CAAA,CAAA;AAGF,QAAMuB,cAAoBD,WAAI,aAAA;AAC5B,UAAM,EAAEtB,SAAAA,SAAO,IAAK,OAAOU;AAC3B,WAAea,mBAAWvB,QAAAA;EAC5B,CAAA,EAAGwB,KAAWC,kBAAY;eAEbC,QAAcC,mBAAaJ,aAAYH,WAAAA;AACtD,GApCiBV,gBAAAA,cAAAA,CAAAA,EAAAA;;;;AC9CjB,YAAYkB,cAAc;AAC1B,YAAYC,YAAW;AAEvB,SAASC,eAAeC,qBAAqB;AAKtC,IAAMC,YAAqBC,cAChCC,cAAcC,OACRC,oBAAaC,cAAcC,WAAW,GACtCF,oBAAaG,YAAYJ,KAAK,GAC9BC,oBAAaI,cAAcC,SAAS,CAAA;",
6
+ "names": ["Console", "Context", "Effect", "Layer", "inspect", "logToString", "args", "map", "arg", "inspect", "colors", "depth", "join", "TestConsoleService", "_logs", "console", "pusher", "level", "push", "message", "log", "sync", "logs", "clear", "length", "TestConsole", "Tag", "extractJsonString", "Array", "isArray", "String", "parseJson", "jsonString", "JSON", "parse", "testConsole", "effect", "gen", "setConsole", "pipe", "unwrapEffect", "layer", "provideMerge", "Function", "Layer", "ClientService", "ConfigService", "TestLayer", "pipe", "ClientService", "layer", "provideMerge", "ConfigService", "layerMemory", "TestConsole", "CommandConfig", "layerTest"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"test-console.d.ts","sourceRoot":"","sources":["../../../../src/testing/test-console.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AActC,cAAM,kBAAkB;IACtB,OAAO,CAAC,KAAK,CAAgE;IAE7E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;gBAEtB,OAAO,EAAE,OAAO,CAAC,OAAO;IAapC,IAAI,IAAI;eAjBsB,MAAM;cAAQ,OAAO;iBAAW,MAAM;QAmBnE;IAED,KAAK;CAGN;AAGD,yBAAiB,WAAW,CAAC;;IAC3B,MAAM,OAAO,WAAY,SAAQ,gBAA6D;KAAG;IAEjG;;;OAGG;IACH,MAAM,CAAC,MAAM,iBAAiB,GAAI,KAAK;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAG,MAK1D,CAAC;IAEF;;;OAGG;IACH,MAAM,CAAC,MAAM,SAAS,GAAI,CAAC,GAAG,OAAO,EAAE,KAAK;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAG,CAG/D,CAAC;IAcF,MAAM,CAAC,MAAM,KAAK,wCAA8C,CAAC;;CAClE"}
1
+ {"version":3,"file":"test-console.d.ts","sourceRoot":"","sources":["../../../../src/testing/test-console.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAetC,cAAM,kBAAkB;IACtB,OAAO,CAAC,KAAK,CAAgE;IAE7E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;gBAEtB,OAAO,EAAE,OAAO,CAAC,OAAO;IAapC,IAAI,IAAI;eAjBsB,MAAM;cAAQ,OAAO;iBAAW,MAAM;QAmBnE;IAED,KAAK;CAGN;AAGD,yBAAiB,WAAW,CAAC;;IAC3B,MAAM,OAAO,WAAY,SAAQ,gBAA6D;KAAG;IAEjG;;;OAGG;IACH,MAAM,CAAC,MAAM,iBAAiB,GAAI,KAAK;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAG,MAK1D,CAAC;IAEF;;;OAGG;IACH,MAAM,CAAC,MAAM,SAAS,GAAI,CAAC,GAAG,OAAO,EAAE,KAAK;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAG,CAG/D,CAAC;IAcF,MAAM,CAAC,MAAM,KAAK,wCAA8C,CAAC;;CAClE"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-layer.d.ts","sourceRoot":"","sources":["../../../../src/testing/test-layer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,eAAO,MAAM,SAAS,sIAKrB,CAAC"}
1
+ {"version":3,"file":"test-layer.d.ts","sourceRoot":"","sources":["../../../../src/testing/test-layer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,eAAO,MAAM,SAAS,sIAKrB,CAAC"}
@@ -1,5 +1,5 @@
1
- import * as Doc from '@effect/printer/Doc';
2
1
  import * as Ansi from '@effect/printer-ansi/Ansi';
2
+ import * as Doc from '@effect/printer/Doc';
3
3
  import * as Option from 'effect/Option';
4
4
  import * as Pipeable from 'effect/Pipeable';
5
5
  export type FormBuilderOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"form-builder.d.ts","sourceRoot":"","sources":["../../../../src/util/form-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-builder.d.ts","sourceRoot":"","sources":["../../../../src/util/form-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/util/platform.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAmDpE,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CA+B/D,CAAC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/util/platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAmDpE,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CA+B/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../../../src/util/printer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAG3C;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAA6C,CAAC;AAErF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAC6C,CAAC"}
1
+ {"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../../../src/util/printer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAA6C,CAAC;AAErF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAC6C,CAAC"}
@@ -2,5 +2,5 @@ import * as Effect from 'effect/Effect';
2
2
  import { ClientService } from '@dxos/client';
3
3
  import { type Type } from '@dxos/echo';
4
4
  /** @deprecated Migrate to providing types via plugin capabilities. */
5
- export declare const withTypes: (...types: Type.Entity.Any[]) => Effect.Effect<void, never, ClientService>;
5
+ export declare const withTypes: (...types: Type.AnyEntity[]) => Effect.Effect<void, never, ClientService>;
6
6
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/util/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAI7F,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/util/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAI5F,CAAC"}
@@ -8,7 +8,7 @@ import { BaseError, type BaseErrorOptions } from '@dxos/errors';
8
8
  import { QueueService } from '@dxos/functions';
9
9
  export declare const getSpace: (spaceId: Key.SpaceId) => Effect.Effect<Space, SpaceNotFoundError, ClientService>;
10
10
  export declare const spaceIdWithDefault: (spaceId: Option.Option<Key.SpaceId>) => Effect.Effect<Key.SpaceId, never, ClientService>;
11
- export declare const spaceLayer: (spaceId$: Option.Option<Key.SpaceId>, fallbackToDefaultSpace?: boolean) => Layer.Layer<Database.Service | QueueService, never, ClientService>;
11
+ export declare const spaceLayer: (spaceId$: Option.Option<Key.SpaceId>, fallbackToPersonalSpace?: boolean) => Layer.Layer<Database.Service | QueueService, never, ClientService>;
12
12
  export declare const waitForSync: (space: Space) => Effect.Effect<void, never, never>;
13
13
  export declare const flushAndSync: (opts?: Database.FlushOptions | undefined) => Effect.Effect<void, SpaceNotFoundError, ClientService | Database.Service>;
14
14
  declare const SpaceNotFoundError_base: {
@@ -1 +1 @@
1
- {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/util/space.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,eAAO,MAAM,QAAQ,GAAI,SAAS,GAAG,CAAC,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,aAAa,CAIE,CAAC;AAEzG,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,qDAKlE,CAAC;AAGL,eAAO,MAAM,UAAU,GACrB,UAAU,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EACpC,gCAA8B,KAC7B,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,aAAa,CAsEnE,CAAC;AAGF,eAAO,MAAM,WAAW,qDAmBtB,CAAC;AAEH,eAAO,MAAM,YAAY,yHAKvB,CAAC;;;;;;;;;;;;;qBA5GoB,CAAC;;;;;;;;;;;;;;;AA+GxB,qBAAa,kBAAmB,SAAQ,uBAAyD;gBACnF,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC;CAGzE"}
1
+ {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/util/space.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,eAAO,MAAM,QAAQ,GAAI,SAAS,GAAG,CAAC,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,aAAa,CAIE,CAAC;AAEzG,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,qDAUlE,CAAC;AAGL,eAAO,MAAM,UAAU,GACrB,UAAU,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EACpC,iCAA+B,KAC9B,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,aAAa,CAgEnE,CAAC;AAGF,eAAO,MAAM,WAAW,qDAmBtB,CAAC;AAEH,eAAO,MAAM,YAAY,yHAKvB,CAAC;;;;;;;;;;;;;qBA7GqE,CAAC;;;;;;;;;;;;;;;AAgHzE,qBAAa,kBAAmB,SAAQ,uBAAyD;gBACnF,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC;CAGzE"}