Skip to content

Packages

Every package in this repository is at version 0.57.2, the version of the source preview. None is published to npm. They ship ES modules only. Clone this repository, run yarn install and yarn build, and then use the packages in one of two ways:

  • Inside the clone. Put your application in a folder under Samples/, which the root workspaces list includes, and reference the packages with the workspace:^ protocol, as Samples/Tasks/package.json does. workspace:^ resolves only inside this repository’s Yarn workspace.
  • In your own project. Pack each package you need with yarn workspace <package> pack --out <file> and install the tarballs with npm. Use yarn pack: it rewrites workspace:^ dependencies to version ranges, and npm pack does not. yarn check:consumers installs packed packages this way to check NodeNext and Bundler consumers.

Create an application walks through both paths, from an empty folder to a running command and query.

PackageFolderExportsPeer dependencies
@cratis/arc.coreSource/CoreArcApplication, the artifact, field, authorization, and service decorators, validators, ArcServer, define*, results, authentication, identity, tenancy, introspection, exportClientManifest, runArc, createArcNodeHandler; @cratis/arc.core/hosting for WebSocket hosting primitives; Node builder loads appsettings.json and Cratis__... environment keys@cratis/fundamentals ^7.19.6, @opentelemetry/api ^1.9.0; depends on zod 4
@cratis/arc.expressSource/ExpresscratisArc middleware with .injectWebSocketexpress ^5.0.0
@cratis/arc.fastifySource/FastifycratisArc pluginfastify ^5.0.0
@cratis/arc.honoSource/HonocratisArc middleware, serveCratisArc Node helper, createHonoWebSockets for shared Node helpershono ^4.0.0; optional @hono/node-server ^1.19.11
@cratis/arc.testingSource/TestingCommandScenario, QueryScenario, ObservableQueryScenario, ArcScenario, given, shouldHaveRuleFailure
@cratis/arc.mongodbSource/MongoDBwithMongoDB, mongoCollection, MongoCollection, naming policies, MongoReadModels@cratis/arc.core, @cratis/fundamentals, mongodb ^6.21.0
@cratis/arc.drizzleSource/DrizzlewithDrizzle, drizzleReadModel, drizzleDatabase, DrizzleReadModels, column codecs@cratis/arc.core, @cratis/fundamentals, drizzle-orm ^0.45.0
@cratis/arc.chronicleSource/ChronicleExperimental: withChronicle, commandAggregate, reactorCommandResultHandler, executeCommandsAsSystem, eventForEventSourceId, eventSourceIdResponse, eventsWithConcurrencyScopes, routing decorators, notAudited, ChronicleReadModels; @cratis/arc.chronicle/testing for ChronicleCommandScenario and ChronicleKernelScenario@cratis/arc.core, @cratis/arc.testing, @cratis/chronicle ^6.29.0 (peer-floor exports checked against 6.29.0), @cratis/fundamentals, zod
@cratis/cratisSource/CratisExperimental composition, the counterpart of the C# Cratis package: CratisApplication.createBuilder, builder.addCratis; re-exports Arc, Chronicle and testing (./testing); no implicit authentication handlerArc core, Arc Chronicle, Arc testing, Chronicle SDK, Fundamentals, zod

@cratis/cratis is experimental, like the Chronicle integration it composes, and is not published to npm yet. Unlike C# AddCratis, the TS composition does not install Microsoft identity automatically: for protected routes, explicitly choose an authentication handler (such as microsoftIdentityPlatform()) or your own trusted host principal; public routes need neither. It composes the client, not the event-store engine. See The Cratis package.

PackageFolderExports
@cratis/arc.proxygeneratorSource/Tools/ProxyGeneratorThe arc-proxygenerator CLI, analyzeSource, renderSource, generateFromSource, renderGeneratedMetadata, and the manifest path’s renderClientManifest and generateClient
@cratis/eslint-plugin-arc-coreSource/CodeAnalysisESLint 10 rules and the recommended and recommended-type-checked presets; peers eslint ^10.0.0 and @typescript-eslint/parser ^8.70.0

Core, adapter, MongoDB, and Drizzle package manifests declare Node.js 22 or later. Building the workspace needs Node.js 22.19 or later, because it installs the Chronicle SDK; Node.js 24 LTS is recommended.

The workspace pins @cratis/arc and @cratis/arc.react to 22.45.0, @cratis/components to 4.23.0, and @cratis/fundamentals to 7.22.0 (peer range ^7.19.6). Chronicle development and sample dependencies use 6.49.0; the Chronicle peer floor remains ^6.29.0.

@cratis/arc, @cratis/arc.react, and @cratis/arc.react.mvvm are Arc’s existing TypeScript client packages, built and published from the Arc repository. This repository does not replace, rename, or republish them. They are the compatibility target for this server’s wire behavior, and generated proxies import them in your frontend. The server packages never depend on them.