Install

The latest version on npm is 0.6.1 archive, not supported

bun add @arki/dot
Other package managers
npm install @arki/dot
pnpm add @arki/dot
yarn add @arki/dot

Release health for @arki/[email protected]

Doc examples

61 compiled22 run8 skipped45 failing

All 45 failures are in docs/upgrades/0.6.1-to-0.7.0.md.

Why 8 examples were skipped
  • docs/complex-setup.md:218
    adapter packages depend on @arki/dot, so dot cannot import them
  • docs/di.md:46
    uses the env, db and kv adapters from other @arki packages; they depend on @arki/dot
  • docs/di.md:119
    shows wiring that must not compile
  • docs/di.md:147
    the app wiring uses log(config), schedule() and a gateway from other @arki packages; the oRPC example below compiles the same chain
  • docs/di.md:388
    uses jobs() from @arki/queue, which depends on @arki/dot
  • docs/di.md:402
    mounts adapters from @arki/db, @arki/queue and @arki/http, which depend on @arki/dot
  • docs/observability.md:47
    needs @opentelemetry/sdk-node, the OTLP exporter and the context manager, which this package does not install
  • docs/observability.md:188
    needs @opentelemetry/sdk-node, the OTLP exporter and the context manager, which this package does not install

Open gaps

2 release checks fail · 6 gaps were found by demos

  • checkfile-agents-md
  • checkpkg-engines
  • Plugin hook spans are created with tracer.startSpan (not startActiveSpan), so work done i… found by drop-studio
  • Plugins do not declare their source package found by drop-studio
  • Instrumentation scope version is hard-coded (0.1.0) while the package is 0.4.1, and plugi… found by drop-studio
  • Running app.boot() under context.with(ROOTCONTEXT.setValue(key, v), …) stalls boot under… found by drop-studio
  • The dot bin runs under Node (#!/usr/bin/env node) and cannot import a .ts app file there… found by drop-studio
  • createAppRuntime(app).get() returns a DotApp type that is not assignable to the result ty… found by faultline

Used by demos

No demo uses this package yet.

Runtimes

No engines field, so no runtime requirement is declared.

Benchmarks

No benchmarks are published for this version.

README

Compose an app from typed plugins. The compiler checks the wiring. The kernel boots the plugins in declaration order and disposes them in reverse.

A Dot app is a chain of plugins. Each plugin says what it needs, what it provides, and what to do at each of five lifecycle hooks: configure, boot, start, stop and dispose. There is no hidden core: remove every plugin and nothing is left. The plugins are the app.

defineApp('acme')  .use(database)  .use(billing)  .start()
                        │               │
     boot / start:      1st ──────────▶ 2nd
     stop / dispose:    2nd ◀────────── 1st

Install

bun add @arki/dot
# or
npm install @arki/dot

The dot command ships in the same package.

Quick start

import { defineApp, plugin } from '@arki/dot';
import { isFailure } from '@arki/failure';
 
// Stand-ins for your real database and Stripe clients.
type Db = { query(sql: string): Promise<unknown[]>; close(): Promise<void> };
const openDb = async (url = 'memory://'): Promise<Db> => ({ query: async sql => [url, sql], close: async () => {} });
const makeStripeClient = (db: Db) => ({ charge: (cents: number) => db.query(`charge ${cents}`) });
 
const dbPlugin = plugin({
  name: 'database',
  provides: {
    db: () => openDb(process.env.DATABASE_URL), // ← one factory per key; may be async
  },
  async dispose({ db }) {
    await db.close();
  },
});
 
const billingPlugin = plugin({
  name: 'billing',
  needs: { db: dbPlugin.provides.db }, // typed handle — destructure in hooks
  configure(ctx) {
    // Validate config, register schemas, no I/O.
    ctx.registerService('stripe', 'custom');
  },
  provides: {
    stripe: ({ db }) => makeStripeClient(db), // factories see the needs
  },
  async boot({ stripe }) {
    await stripe.charge(0); // side effects only (seed, warm-up). Returns nothing.
  },
  async start({ stripe }) {
    await stripe.charge(0); // begin processing — workers, subscriptions, schedulers.
  },
  async stop({ db }) {
    await db.query('select 1'); // stop processing — drain workers, unsubscribe.
  },
});
 
const app = await defineApp('acme')
  .use(dbPlugin) // providers before consumers — enforced at compile time
  .use(billingPlugin)
  .start();
if (isFailure(app)) throw new Error(app.code);
 
// app.manifest, app.diagnostics — agent-friendly envelopes.
const order = app.manifest.plugins.map(p => p.name).join(' → ');
if (order !== 'database → billing') throw new Error(`plugins boot in declaration order, got ${order}`);
 
await app.stop();
await app.dispose();

There is no registry to configure, no decorators, no reflection. The needs shape is the injection contract; the provides factories are the provision contract; the builder's type-level guard connects the two.

The Quickstart builds a small app step by step, breaks it on purpose, and reads the error with dot explain and dot doctor.

When not to use this

  • You need a web server or a router. Dot composes services. Serve HTTP with TanStack Start, Hono or oRPC, and mount the server as a plugin.
  • You want plugins loaded from disk or from config. Dot never auto-loads. The app is the .use() chain that the compiler reads.
  • The program has one or two services. A function with try/finally is shorter. Dot pays off when several packages bring services with their own setup and teardown.
  • You need a scope per request. Dot has one service graph per app. Keep per-request values in your router's context.

Runtime support

The portable entries (@arki/dot, @arki/dot/plugin, @arki/dot/feature, @arki/dot/log, @arki/dot/test-harness) run on Node, Bun, Deno, browsers and Hermes (React Native). The kernel reads process, performance and timers at call time, never at import, and falls back where the runtime has none: hookSignals hooks nothing without a process, and durations use Date.now() without performance.

The adapter entries need more:

EntryNeedsWhy
@arki/dot/cli and the dot binaryNode or BunReads files, spawns processes.
@arki/dot/orpcthe optional @orpc/server peerWraps oRPC procedures as actions.

bun run test:runtimes boots a small app through the portable API on every leg, from the built dist/.

Public imports

ImportWhat it gives you
@arki/dotdefineApp, plugin, service, token, lazy, rename, hookSignals, the errors and the manifest types.
@arki/dot/pluginThe plugin author's surface: plugin, handles, tokens, rename and the contract types.
@arki/dot/featuredefineFeature, routerFor, entrypointOnly and the services bag for domain modules.
@arki/dot/orpcrpc, needsMiddleware, errorCaptureMiddleware. Needs the optional peer @orpc/server.
@arki/dot/loglog(), the logging plugin. Mount it first.
@arki/dot/runtimecreateAppRuntime: one started app per server process, safe under Vite hot updates.
@arki/dot/test-harnesstestPlugin, testApp, bootTestApp, fake.
@arki/dot/actionBrowser-safe action, canonical execution failures and exposure policy.
@arki/dot/executeServer bindAction: run validates raw values; handle reuses native parsing.
@arki/dot/telemetryIdentity-scoped telemetryFor, spans, events, metrics and correlated logs.
@arki/dot/cliprogram (the dot command), runExplain, runDoctor, runNew, runDev and the dot.* failures.

Read Ownership for resource descriptors, children, lazy retries and cancellation.

Failure behaviour

Every managed phase returns typed @arki/failure values. Check isFailure(builder.configure()) before reading the manifest, and inspect awaited boot, start, stop and dispose outcomes. Concrete callback refusals remain inferred; unknown exceptions become canonical UnexpectedDefect values. Static declaration helpers can still throw outside a managed boundary. See Upgrade typed phases for the breaking changes and exact phase outcomes.

Legacy ARKI_DOT_E* IDs remain diagnostic metadata, not top-level failure codes. Kernel-generated defects retain their DotLifecycleError (phase, plugin and original cause) inside UnexpectedDefect.cause. Owned provider/boot task defects retain the original private cause; diagnostics record phase, owner and legacy ID with safe remediation and docs links. Codes are never renumbered or reused (E009 and E010 are retired). FeatureError (E022–E031) and DotManifestError (E032) can still escape unmanaged static declarations; CLI module loading supervises them.

The legacy rows below describe diagnostic IDs and their private cause classes. Match returned failures by their canonical definition; inspect legacy IDs locally in the private cause or in diagnostics.

CodeClassMeaningFix
dot.action_not_exposedFailure valueThe adapter is not exposed by the action.Use a declared binding.
dot.action_principal_requiredFailure valueNo authenticated principal attestation.Authenticate credentials and expiry at the adapter.
dot.action_approval_requiredFailure valueNo invocation approval attestation.Verify caller, action and input approval at the adapter.
dot.preflight_failedFailure valueManaged preflight failed; .error.data contains app, migrations, report and failure.Fix the reported lifecycle failure; exit code is 3.
dot.lazy_closedFailure valueA lazy handle is used after its owner closed.Obtain a handle from a live owner.
dot.runtime_replacedFailure valueHMR replaced this runtime.Use the current module.
dot.runtime_release_failedFailure valuePrevious ownership was not safely released.Resolve disposal before starting another owner.
ARKI_DOT_E001DotLifecycleErrorconfigure returned a Promise.Make configure synchronous; do async work in boot.
ARKI_DOT_E002DotLifecycleErrorconfigure threw.Fix the plugin's config or its configure hook.
ARKI_DOT_E003DotLifecycleErrorboot threw. Booted plugins were rolled back.Read plugin and cause; fix that boot hook.
ARKI_DOT_E004DotLifecycleErrorstart threw.Read plugin and cause; fix that start hook.
ARKI_DOT_E005DotLifecycleErrorOne or more stop hooks threw.Read failures; each names the plugin.
ARKI_DOT_E006DotLifecycleErrorOne or more dispose hooks threw.Read failures; each names the plugin.
ARKI_DOT_E007DotLifecycleErrorThe app was reused after dispose().Build a fresh app instance.
ARKI_DOT_E008DotLifecycleErrorThe app was reused after a failed lifecycle.Build a fresh app instance.
ARKI_DOT_E011DotLifecycleErrorA plugin was registered twice.Remove the second .use(), or rename it.
ARKI_DOT_E012DotLifecycleErrorA need no plugin provides (erased or JS graphs).Mount the provider before its consumer.
ARKI_DOT_E013DotLifecycleErrorA wire key is provided twice.rename one provider.
ARKI_DOT_E014DotLifecycleErrorA key uses the reserved $ prefix.Rename the key.
ARKI_DOT_E015DotLifecycleErrorA hook ran past hookTimeoutMs.Pass $signal to the hook's I/O, or raise the budget.
ARKI_DOT_E016DotLifecycleErrorTwo actions in one binding share an id.Give each action its own id.
ARKI_DOT_E017DotLifecycleErrorAction meta is not plain JSON.Keep meta JSON-safe.
ARKI_DOT_E018DotLifecycleErrorMore than one logging plugin.Keep one log().
ARKI_DOT_E019DotLifecycleErrorNeeds and provides form a ring.Move the shared piece into a third unit.
ARKI_DOT_E020DotLifecycleErrorA provider is mounted after its consumer.Mount the provider first.
ARKI_DOT_E021DotLifecycleError$describeAction named an action the plugin may not amend.Describe only your own actions.
ARKI_DOT_E022FeatureErrorTwo routers use the same key.Rename one key.
ARKI_DOT_E023FeatureErrorTwo repos use the same key.Rename one key.
ARKI_DOT_E024FeatureErrorTwo slices use the same key.Rename one key.
ARKI_DOT_E025FeatureErrorA feature has no slices.Add at least one slice.
ARKI_DOT_E026FeatureErrorA handle is missing from the services bag.Mount the provider; check the gateway's needs.
ARKI_DOT_E027FeatureErrorA feature key collides with another slot or a reserved name.Rename the alias or key.
ARKI_DOT_E028FeatureErroroverride() named a key no infra plugin provides.Override a key the feature's infra provides.
ARKI_DOT_E029FeatureErrorrouterFor(): an app-contract key has zero or several owners.Give each key exactly one feature.
ARKI_DOT_E030FeatureErrorrouterFor(): a feature's contract is not mounted in the app contract.Mount it in the app contract.
ARKI_DOT_E031FeatureErrorrpc(): a procedure's contract meta is not plain JSON.Keep contract meta JSON-safe.
ARKI_DOT_E032DotManifestErrorManifest data is not plain JSON.Pass plain JSON only.

The dot command returns dot.* failure codes (dot.app_not_found, dot.doctor_failed, ...) in the arki.cli/1 envelope; see the agent guide and The dot command. Exit codes: 0 ok, 1 bug, 2 usage, 3 a returned failure.

Limits

  • configure is synchronous. A configure that returns a Promise fails with ARKI_DOT_E001, even when the Promise is already resolved. Do async work in boot or in a provides factory.
  • Declaration order is boot order. Nothing sorts the plugins for you. .use(orders).use(database), where orders needs database, is a compile error. With the types erased (plain JavaScript, or Bun running a file without a type check) it is ARKI_DOT_E020 at configure. The Quickstart shows both.
  • One copy of each plugin. .use(cache).use(cache) is ARKI_DOT_E011. A second copy needs rename.
  • One logging plugin per app. A second one is ARKI_DOT_E018.
  • No hook watchdog by default. A hook that never settles hangs the app until you pass hookTimeoutMs. With it, the slow hook fails with ARKI_DOT_E015.
  • dot doctor never calls start. Workers and servers that begin in start are not checked by it. Test them in your app's tests.
  • Lists are checked up to 1024 units. A .useAll() or .infra() list with more entries is a compile error.
  • Manifest data is plain JSON. Functions, Dates, Maps and cycles in action or contract meta fail with ARKI_DOT_E017, ARKI_DOT_E031 or ARKI_DOT_E032.

Documentation

Start with Principles: five rules every API and error is measured against. Then pick the page for your task. The full index is docs/README.md.

PageRead it to
Quickstartbuild an app, break it, and read the error.
Dependency injectionwire needs and provides, tokens, rename, lazy services, features.
A complex setupsee a many-plugin app and the order it boots in.
Testing pluginstest a plugin against fakes, or several plugins together.
Logging, shutdown and timeoutsrun an app under a process manager.
The dot commanduse dot new, dot explain, dot doctor and dot dev.
Plugin authoringwrite a plugin.
Lifecyclelearn the five hooks and their failure rules.
Diagnosticsread app.manifest and app.diagnostics.
Observabilityexport traces and metrics with OpenTelemetry.
Adapter authoringexpose your package as a ./dot plugin.
Deploy an appship a generated app in a container.
Upgrade typed phaseshandle inferred phase failures and supervised usecases.
Upgrade Dotmove to a new version and check the app still boots.
Agent guidelet a coding agent inspect and change an app.

Agents start at llms.txt.

Benchmarks

A 20-service graph where each service depends on the two before it, built with @arki/dot plugins and with awilix, the most used dependency-injection container for Node. A hand-wired version is the floor: no container at all.

Node v22.13.1 on Apple M2 Max, 2026-10-13. Median time per operation, lower is better.

Build the graph and bring it up (boot + dispose, 20 services)

dot: declare 20 plugins, boot, dispose. awilix: create a container, register 20 factories, resolve all 20, dispose. Hand-wired: build the 20 objects in order.

LibraryTime / opvs fastest
@arki/dot (boot + dispose)199.83 µs14.99×
awilix (register + resolve + dispose)65.92 µs4.94×
hand-written wiring (no container)13.33 µsfastest

Look up a service after boot

The hot path: code that already has a booted app asks for one service. dot services are plain properties; awilix resolve and cradle go through a cache lookup.

LibraryTime / opvs fastest
@arki/dot (app.services.s19)30.3 nsfastest
awilix (container.resolve('s19'))67.2 ns2.21×
awilix (container.cradle.s19)105.4 ns3.47×
hand-written (plain object property)32.0 ns1.05×

Read the rows with the contracts in mind:

  • @arki/dot and awilix do different jobs. awilix is a container: it registers factories and builds them on first use. dot runs an application lifecycle: it orders plugins by their declared needs, runs configure, boot and dispose hooks in order (and in reverse on shutdown), checks the wiring at compile time, and records a manifest and diagnostics for every plugin.
  • The boot rows therefore measure more work in dot than in awilix. They are shown so you can see what that lifecycle costs, not to say the two are interchangeable.
  • Boot is async in dot (plugin hooks may await). awilix resolves synchronously.

Reproduce with bun run bench in the package directory; regenerate this section with bun run bench --write-readme.

Support

Report bugs and ask questions at github.com/arki-labs/arki/issues. Include the output of dot doctor --json and the code of the error you saw. Changes are listed in CHANGELOG.md.

License

MIT — see LICENSE.

Read Action boundaries and Upgrade action boundaries.

Docs 27 pages in 0.7.0

Public imports 11 paths · 408 exports

Import pathExportsFirst names
@arki/dot117 exportsActionDiagnostic, ActionDirection, ActionManifest, ActionSource, …
All 117 names
  • ActionDiagnostic type
  • ActionDirection type
  • ActionManifest type
  • ActionSource type
  • AnyPlugin type
  • AuthoredPlugin type
  • bootTestApp function
  • CtxOf type
  • defineApp function
  • DependencyEdge type
  • DependencyEdgeKind type
  • DiagnosticIssue type
  • DiagnosticSeverity type
  • DiagnosticStatus type
  • DOT_LIFECYCLE_HOOKS variable
  • DOT_MANIFEST_ERROR_CODE variable
  • DotApp type
  • DotAppBuilder type
  • DotAppConfigured type
  • DotAppLifecycle type
  • DotAppManifest type
  • DotConfigureContext type
  • DotDiagnosticsSnapshot type
  • DotLifecycleError class
  • DotLifecycleErrorCode variable
  • DotLifecycleErrorCodeValue type
  • DotLifecycleEvent type
  • DotLifecycleEventStatus type
  • DotLifecycleHook type
  • DotLifecycleObserver type
  • DotLifecyclePluginFailure type
  • DotLifecycleState type
  • DotLoggingContext type
  • DotLoggingHandle type
  • DotManifestError class
  • DotPhaseLifecycleEvent type
  • DotPluginError class
  • DotPluginHookLifecycleEvent type
  • DotPluginRole type
  • DotServeBuilder type
  • DotTelemetry type
  • EmptyOwnership type
  • EmptyPhases type
  • EmptyShape type
  • FactoryContract type
  • FactoryContractOf type
  • fake function
  • FeatureUnits type
  • Handle type
  • Handles type
  • hookSignals function
  • HookSignalsOptions type
  • InferredOwnership type
  • InferredPhases type
  • initPlugins variable
  • InitPluginsFactory type
  • isLazy function
  • JsonObject type
  • JsonValue type
  • KernelCtx type
  • lazy function
  • Lazy type
  • LazyClosed variable
  • LazyHandle type
  • lazyOf function
  • LazyService type
  • LifecycleDiagnostic type
  • LifecycleManifest type
  • LoggingSlot type
  • MergePhases type
  • NeedsShape type
  • NoReservedKeys type
  • NormalizeProvides type
  • PhaseHooks type
  • plugin function
  • Plugin type
  • PluginCloseFailure type
  • PluginDiagnostic type
  • PluginFactoryGuard type
  • PluginManifest type
  • PluginNeeds type
  • PluginOpenFailure type
  • PluginOwnership type
  • PluginPhaseFailures type
  • PluginPhases type
  • PluginPreparation type
  • PluginProvides type
  • PluginSourceGuard type
  • ProjectionManifest type
  • provide function
  • Provided type
  • ProvidedValue type
  • ProvidedValues type
  • ProvidesFactories type
  • rename function
  • RenamedProvides type
  • renderTimeline function
  • RenderTimelineOptions type
  • service variable
  • Service type
  • ServiceDiagnostic type
  • ServiceKind type
  • ServiceManifest type
  • ServiceRecord type
  • SignalTarget type
  • telemetryFor function
  • testApp function
  • TestAppOptions type
  • testPlugin function
  • TestPluginBuilder type
  • toJsonObject function
  • token function
  • Token type
  • UseAllAvail type
  • UseAllGuard type
  • UseGuard type
  • WireNeeds type
@arki/dot/action9 exportsaction, Action, ACTION_FAILURES, ActionApprovalRequired, …
All 9 names
  • action function
  • Action type
  • ACTION_FAILURES variable
  • ActionApprovalRequired variable
  • ActionFailureDefinition type
  • ActionNotExposed variable
  • ActionOptions type
  • ActionPolicy type
  • ActionPrincipalRequired variable
@arki/dot/cli43 exportsAppImportFailed, AppInvalidExport, AppLifecycleFailed, AppNotFound, …
All 43 names
  • AppImportFailed variable
  • AppInvalidExport variable
  • AppLifecycleFailed variable
  • AppNotFound variable
  • DEV_STATE_PATH variable
  • DevAlreadyRunning variable
  • DevAppStarted variable
  • DevDbUnreachable variable
  • DevEvent type
  • devEventSchema variable
  • DevPortInUse variable
  • DevPreflightFailed variable
  • DevRemoteDbRefused variable
  • DevResult type
  • DevRunnerFailed variable
  • DevState type
  • devStateSchema variable
  • DoctorFailed variable
  • DoctorOptions type
  • DoctorReport type
  • DoctorStatus type
  • DotNewOperation type
  • DotNewResult type
  • ExplainData type
  • ExplainOptions type
  • GraphData type
  • ObservabilityNoSdk variable
  • PreflightFailed variable
  • program variable
  • ProjectionConflict variable
  • ProjectionData type
  • ProjectionExecutionFailed variable
  • ProjectionImportFailed variable
  • ProjectionNotFound variable
  • runDev function
  • RunDevOptions type
  • runDoctor function
  • runExplain function
  • runNew function
  • RunNewOptions type
  • TargetNotEmpty variable
  • TemplateMissing variable
  • WriteFailed variable
@arki/dot/execute3 exportsActionInvocation, ActionScope, bindAction
All 3 names
  • ActionInvocation type
  • ActionScope type
  • bindAction function
@arki/dot/feature101 exportsallFeatures, AnyDefinedFeature, AnyEntrypoint, AnyFeature, …
All 101 names
  • allFeatures function
  • AnyDefinedFeature type
  • AnyEntrypoint type
  • AnyFeature type
  • AnyFeatureCore type
  • AnyFeatureSlice type
  • AppContract type
  • bindDriver function
  • ChildHandles type
  • ChildOverrides type
  • ChildProvides type
  • ChildrenGuard type
  • ChildUnits type
  • ComposedRepos type
  • ComposedRouter type
  • composeRepos function
  • composeRouter function
  • ContractOf type
  • CoreDeps type
  • CoreHandles type
  • CoreServices type
  • DefinedFeature type
  • defineFeature function
  • DepsOf type
  • DotTelemetry type
  • driven function
  • Driven type
  • driver function
  • Driver type
  • Entrypoint type
  • entrypointOnly function
  • EntrypointOnly type
  • EntrypointPayloads type
  • entrypointsOf function
  • EntrypointsStage type
  • feature function
  • Feature type
  • FEATURE_ERROR_CODES variable
  • FeatureCore type
  • FeatureError class
  • FeatureErrorCode type
  • FeatureParams type
  • FeatureSlice type
  • FeaturesStage type
  • FeatureTokenOf type
  • FeatureUnit type
  • Handle type
  • HandleEntries type
  • Handles type
  • HandlesIn type
  • HasProvides type
  • InfraProvides type
  • InfraStage type
  • InstanceChildren type
  • instanceOf function
  • LazyHandle type
  • MaybePromise type
  • MountedFeature type
  • mountFeatures function
  • NeedsGuard type
  • NeedsStage type
  • ownUnits function
  • plug function
  • PluginOf type
  • PluginsOf type
  • Provided type
  • ProvidedOf type
  • ProvidesFactories type
  • providesOf function
  • ProvidesStage type
  • QualifiedInfra type
  • QualifiedPlugin type
  • RebindNeeds type
  • RebindOf type
  • RepoDatabaseOf type
  • RepoFactories type
  • RequestHandles type
  • requestServices function
  • ReservedAlias type
  • resolveNeeds function
  • routerFor function
  • RouterFor type
  • RouterFragments type
  • RouterOf type
  • RpcEntrypoint type
  • ScopedHandle type
  • ScopedHandles type
  • ServicesBag type
  • servicesOf function
  • ServicesOf type
  • sliceOf function
  • SlicePayloads type
  • telemetryFor function
  • tokenOf function
  • UnitsOf type
  • UsecaseFactories type
  • UsecaseFactoriesOf type
  • UsecaseGuard type
  • UsecaseNeeds type
  • Usecases type
  • UsecasesStage type
@arki/dot/log3 exportsDOT_LOG_ERROR_CODES, log, LogServices
All 3 names
  • DOT_LOG_ERROR_CODES variable
  • log function
  • LogServices type
@arki/dot/orpc10 exportsBoundContext, BuiltRouter, ContractKeysGuard, ErrorCaptureInfo, …
All 10 names
  • BoundContext type
  • BuiltRouter type
  • ContractKeysGuard type
  • ErrorCaptureInfo type
  • errorCaptureMiddleware function
  • needsMiddleware function
  • ProcedureFactories type
  • RequestContextShape type
  • rpc function
  • RPC_ACTION_META_SCHEMA variable
@arki/dot/plugin110 exportsActionDeclaration, ActionDiagnostic, ActionDirection, ActionManifest, …
All 110 names
  • ActionDeclaration type
  • ActionDiagnostic type
  • ActionDirection type
  • ActionManifest type
  • ActionSource type
  • AnyHandle type
  • AnyPlugin type
  • AuthoredPlugin type
  • bootTestApp function
  • CtxOf type
  • defineApp function
  • DependencyEdge type
  • DependencyEdgeKind type
  • DiagnosticIssue type
  • DiagnosticSeverity type
  • DiagnosticStatus type
  • DOT_LIFECYCLE_HOOKS variable
  • DotApp type
  • DotAppBuilder type
  • DotAppConfigured type
  • DotAppManifest type
  • DotConfigureContext type
  • DotDiagnosticsSnapshot type
  • DotLifecycleError class
  • DotLifecycleErrorCode variable
  • DotLifecycleErrorCodeValue type
  • DotLifecycleEvent type
  • DotLifecycleEventStatus type
  • DotLifecycleHook type
  • DotLifecycleObserver type
  • DotLifecyclePluginFailure type
  • DotLifecycleState type
  • DotLoggingContext type
  • DotLoggingHandle type
  • DotPhaseLifecycleEvent type
  • DotPluginError class
  • DotPluginHookLifecycleEvent type
  • DotPluginRole type
  • DotTelemetry type
  • EmptyOwnership type
  • EmptyPhases type
  • EmptyShape type
  • FactoryContract type
  • FactoryContractOf type
  • Handle type
  • handleOf function
  • Handles type
  • InferredOwnership type
  • InferredPhases type
  • initPlugins variable
  • InitPluginsFactory type
  • isLazy function
  • JsonObject type
  • JsonValue type
  • KernelCtx type
  • lazy function
  • Lazy type
  • LazyClosed variable
  • LazyHandle type
  • lazyOf function
  • LazyService type
  • LifecycleDiagnostic type
  • LifecycleManifest type
  • LoggingSlot type
  • MergePhases type
  • NeedsShape type
  • NoReservedKeys type
  • NormalizeProvides type
  • PhaseHooks type
  • plugin function
  • Plugin type
  • PluginCloseFailure type
  • PluginDiagnostic type
  • PluginFactoryGuard type
  • PluginManifest type
  • PluginNeeds type
  • PluginOpenFailure type
  • PluginOwnership type
  • PluginPhaseFailures type
  • PluginPhases type
  • PluginPreparation type
  • PluginProvides type
  • PluginSourceGuard type
  • ProjectionDeclaration type
  • ProjectionManifest type
  • provide function
  • Provided type
  • ProvidedValue type
  • ProvidedValues type
  • ProvidesFactories type
  • rename function
  • RenamedProvides type
  • renderTimeline function
  • RenderTimelineOptions type
  • service variable
  • Service type
  • ServiceDiagnostic type
  • ServiceKind type
  • ServiceManifest type
  • ServiceRecord type
  • telemetryFor function
  • testApp function
  • TestAppOptions type
  • toJsonObject function
  • token function
  • Token type
  • UseAllAvail type
  • UseAllGuard type
  • UseGuard type
  • WireNeeds type
@arki/dot/runtime3 exportscreateAppRuntime, RuntimeReleaseFailed, RuntimeReplaced
All 3 names
  • createAppRuntime function
  • RuntimeReleaseFailed variable
  • RuntimeReplaced variable
@arki/dot/telemetry2 exportsDotTelemetry, telemetryFor
All 2 names
  • DotTelemetry type
  • telemetryFor function
@arki/dot/test-harness7 exportsbootTestApp, fake, testApp, TestAppOptions, …
All 7 names
  • bootTestApp function
  • fake function
  • testApp function
  • TestAppOptions type
  • TestAppServices type
  • testPlugin function
  • TestPluginBuilder type

Every export with its signature, as JSON