{"_id":"@2wce/harmonia","_rev":"2-ba0e894af18c1e59c103a1884de051a7","name":"@2wce/harmonia","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@2wce/harmonia","version":"0.1.0","_id":"@2wce/harmonia@0.1.0","maintainers":[{"name":"2wce","email":"terrencemupeni@gmail.com"}],"homepage":"https://github.com/2wce/harmonia#readme","bugs":{"url":"https://github.com/2wce/harmonia/issues"},"dist":{"shasum":"9e6ef09cbaed2e9c448e01c635fdd67aa7e27e9b","tarball":"https://registry.npmjs.org/@2wce/harmonia/-/harmonia-0.1.0.tgz","fileCount":3,"integrity":"sha512-Se24Kpnxb4ANKY44WS8YNvvW7CS6FKyGYma/RWuu1Za7mO1SqZcRsUsWAi3wXceYojpY3zc5/NxOaMywjsNkwQ==","signatures":[{"sig":"MEQCH2S/+SLJ4rm/pOwTTbCGgnZIyIZ8zUQEyR/sg2V/geoCIQCmMZktythPMLBU24NoszzaMlmtDPOOlH/K4o1JC1KMPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4633},"type":"module","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js"}},"gitHead":"35999c53b33ab40c62df9e893101faf45134656f","private":false,"scripts":{"lint":"oxlint --no-error-on-unmatched-pattern .","test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.build.json","format":"oxfmt .","version":"changeset version","changeset":"changeset","typecheck":"tsc --noEmit","pack:check":"pnpm build && pnpm pack --pack-destination .artifacts && node scripts/verify-pack-exports.mjs","format:check":"oxfmt --check .","test:contract":"vitest run test/contract-suite.test.ts"},"_npmUser":{"name":"2wce","email":"terrencemupeni@gmail.com"},"repository":{"url":"git+https://github.com/2wce/harmonia.git","type":"git"},"_npmVersion":"11.17.0","description":"Harmonia is a neutral, local-first synchronization kernel for applications that need durable local operations, dependency-aware delivery, scoped remote change consumption, explicit recovery, and visible conflict outcomes.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.1","devDependencies":{"oxfmt":"^0.64.0","oxlint":"^1.79.0","vitest":"^3.2.4","typescript":"^7.0.2","@types/node":"^24.13.3","@changesets/cli":"^2.29.7"},"_npmOperationalInternal":{"tmp":"tmp/harmonia_0.1.0_1788258079038_0.03794425301088178","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@2wce/harmonia","version":"0.1.1","private":false,"repository":{"type":"git","url":"git+https://github.com/2wce/harmonia.git"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js"}},"publishConfig":{"access":"public"},"scripts":{"changeset":"changeset","version":"changeset version","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","test":"vitest run --passWithNoTests","test:contract":"vitest run test/contract-suite.test.ts","lint":"oxlint --no-error-on-unmatched-pattern .","format":"oxfmt .","format:check":"oxfmt --check .","prepack":"pnpm build","pack:check":"pnpm pack --pack-destination .artifacts && node scripts/verify-pack-exports.mjs"},"devDependencies":{"@changesets/cli":"^2.29.7","@types/node":"^24.13.3","oxfmt":"^0.64.0","oxlint":"^1.79.0","typescript":"^7.0.2","vitest":"^3.2.4"},"engines":{"node":">=24"},"packageManager":"pnpm@10.33.1","gitHead":"23e60f8937af186e352fc36835f6b36e463f9d77","_id":"@2wce/harmonia@0.1.1","description":"Harmonia is a neutral, local-first synchronization kernel for applications that need durable local operations, dependency-aware delivery, scoped remote change consumption, explicit recovery, and visible conflict outcomes.","bugs":{"url":"https://github.com/2wce/harmonia/issues"},"homepage":"https://github.com/2wce/harmonia#readme","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-mSJbvfoDOdJgAJ7JbLYOfVzB4JfOybMqTKAEsYqd0NEqRrTJwucIr+0rhIlcKuxl29dQdpTFa12DXqYg6EIYMA==","shasum":"825aaa143da6d18d93c7146de6b4bbe47fbad39e","tarball":"https://registry.npmjs.org/@2wce/harmonia/-/harmonia-0.1.1.tgz","fileCount":51,"unpackedSize":151450,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@2wce%2fharmonia@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCmdLlwgh1xxLikCatg5emCaB7h9A4nrj7MZsKPT2ylugIhAOl5o22uz8A3LOZFJOftgVQYTGwds+xIdmVOp7R3lAd4"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:82319630-e177-4b80-ab69-c3a09947b6c6"}},"directories":{},"maintainers":[{"name":"2wce","email":"terrencemupeni@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/harmonia_0.1.1_1788262570011_0.5777794359262016"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-01T10:21:18.785Z","modified":"2026-09-01T11:36:10.434Z","0.1.0":"2026-09-01T10:21:19.179Z","0.1.1":"2026-09-01T11:36:10.143Z"},"bugs":{"url":"https://github.com/2wce/harmonia/issues"},"homepage":"https://github.com/2wce/harmonia#readme","repository":{"type":"git","url":"git+https://github.com/2wce/harmonia.git"},"description":"Harmonia is a neutral, local-first synchronization kernel for applications that need durable local operations, dependency-aware delivery, scoped remote change consumption, explicit recovery, and visible conflict outcomes.","maintainers":[{"name":"2wce","email":"terrencemupeni@gmail.com"}],"readme":"# Harmonia\n\nHarmonia is a neutral, local-first synchronization kernel for applications\nthat need durable local operations, dependency-aware delivery, scoped remote\nchange consumption, explicit recovery, and visible conflict outcomes.\n\nIt is distributed as the public scoped npm package `@2wce/harmonia`.\n\n## Installation\n\n```bash\npnpm add @2wce/harmonia\n```\n\nThe package targets modern browsers, Web Workers, Node.js, and Electron\nutility processes. It is ESM-only and has no runtime framework, database,\ntransport, or product dependencies.\n\n## Coordinator lifecycle\n\nAn application adapter and transport drive a synchronization run through six\nsteps:\n\n1. Select dependency-ready local operations in bounded batches.\n2. Claim those operations durably before delivery.\n3. Push the batch and apply each acknowledgement by operation identity.\n4. Pull remote changes from the scope's stored opaque cursor.\n5. Apply the complete change batch and advance its cursor atomically.\n6. Emit lifecycle outcomes for progress, retry, rejection, conflict, bootstrap,\n   and connection state.\n\nCancellation leaves in-flight work inspectable. Invalid or compacted history\nproduces an explicit bootstrap-required outcome; Harmonia never silently skips\nunavailable changes.\n\n## Adapter responsibilities\n\nThe product adapter owns durable storage, transactions, authentication and\nauthorization, domain validation, domain writes, conflict resolution, and\nderived projections. The transport adapter owns the remote protocol, request\nauthentication, and transport error information. Scopes, entities, payloads,\nversions, cursors, and conflict policy remain opaque or product-defined at the\nHarmonia boundary.\n\n## Explicit exclusions\n\nHarmonia does not transfer files or EPUB bytes, refresh credentials, write to a\ndatabase, rebuild search indexes, or resolve domain conflicts. It reports\nrejections and conflicts so the product can apply its own policy. Product\nadapters remain responsible for domain rules, rich conflict merging, and\nseparate binary content flows.\n\n## Version compatibility\n\nHarmonia follows semantic versioning. A major version is required when a\nrelease changes operation identity, outcome meaning, watermark behavior, or\noperation state transitions. New optional wire fields may be added in a\nbackward-compatible minor release; consumers must ignore fields they do not\nunderstand. Protocol versions remain explicit at the wire boundary.\n\nReleases are versioned with Changesets and published by CI when the generated\nrelease pull request is merged to `main`, using npm Trusted Publishing, OIDC,\nand provenance.\n","readmeFilename":"README.md"}