{"_id":"@calimero-network/mero-platform","_rev":"2-2c26658b2fbab3cc1448af7b37a1edc8","name":"@calimero-network/mero-platform","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@calimero-network/mero-platform","version":"0.1.0","license":"MIT","_id":"@calimero-network/mero-platform@0.1.0","maintainers":[{"name":"xilos","email":"xabilosada@gmail.com"}],"dist":{"shasum":"2be1ae981b746e1018810b7bbaba8a5cfd8d45d9","tarball":"https://registry.npmjs.org/@calimero-network/mero-platform/-/mero-platform-0.1.0.tgz","fileCount":13,"integrity":"sha512-ocEdeeou3GYdRlXxThuXtf4Klfi18g8Dpvl3urBGUgwHbhchMN/6KrGKr3jUj5XlcRnIPlvUmNEN1PoJ8oYp6w==","signatures":[{"sig":"MEUCIGR6DX1l6z0AH4d8KyxlQbV8cNn2ygUJAoh3xDzuOZDdAiEA+Jf5PRvcU2rfpisl60RARaJaoB8hYuvgz86CrUsqJoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20057},"main":"./dist/index.js","type":"module","_from":"file:calimero-network-mero-platform-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"xilos","email":"xabilosada@gmail.com"},"_resolved":"/private/var/folders/p9/wjb9ty0s3kdd_mg61y2hsq1w0000gn/T/da3e6cc01c5a7f312781b5a6034a8c6a/calimero-network-mero-platform-0.1.0.tgz","_integrity":"sha512-ocEdeeou3GYdRlXxThuXtf4Klfi18g8Dpvl3urBGUgwHbhchMN/6KrGKr3jUj5XlcRnIPlvUmNEN1PoJ8oYp6w==","_npmVersion":"11.6.2","description":"Framework-agnostic Calimero app-platform SDK: badge, notify, deep-link over a versioned launcher bridge. Zero React.","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mero-platform_0.1.0_1785315896870_0.3456183391695029","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-07-29T09:04:56.748Z","modified":"2026-07-30T12:53:30.115Z","0.1.0":"2026-07-29T09:04:57.002Z"},"license":"MIT","description":"Framework-agnostic Calimero app-platform SDK: badge, notify, deep-link over a versioned launcher bridge. Zero React.","maintainers":[{"email":"ronit@calimero.network","name":"rtb-calimero"},{"email":"xabilosada@gmail.com","name":"xilos"}],"readme":"# @calimero-network/mero-platform\n\nFramework-agnostic core of the Calimero app-platform SDK. Zero React — also\nconsumed by the Tauri launcher shell (which implements the bridge these types\ndefine).\n\n## Deep-link\n\n```ts\nimport {\n  DeepLinkController,\n  PendingIntentStore,\n  createLink,\n  getBridge,\n} from \"@calimero-network/mero-platform\";\n\n// One controller per app runtime — merges the initial URL, the launcher bridge\n// `deep-link` event, and the PWA launchQueue into one durable intent stream.\nconst controller = new DeepLinkController(\n  new PendingIntentStore(window.localStorage),\n  { location: window.location, bridge: getBridge(), launchQueue: (window as any).launchQueue },\n);\n\ncontroller.on((intent) => {\n  // fires even if the intent arrived before this handler registered, and\n  // replays across reload until acked\n  if (intent.params.invitation) joinWith(intent.params.invitation);\n  intent.resolve(); // ack — it won't replay\n});\n\n// generate a shareable link (always https, never calimero://)\nconst link = createLink(\"com.calimero.curb\", \"join\", { invitation: \"…\" });\n// → https://links.calimero.network/com.calimero.curb/join?invitation=…\n```\n\n- **Pending-intent store** — captures intents to storage, dedups by content\n  nonce, survives reload/auth/install until `resolve()`.\n- **Bridge client** — `getBridge()` / `hasCapability(name)` over the versioned\n  `window.__calimero_platform__`; `null` / `false` outside a capable launcher.\n\nBadge and notify capabilities follow.\n","readmeFilename":"README.md"}