{"_id":"tempo-sdk","_rev":"38-bab7c6480466c1490627bcd99100f488","name":"tempo-sdk","dist-tags":{"latest":"0.0.51"},"versions":{"0.0.1":{"name":"tempo-sdk","version":"0.0.1","_id":"tempo-sdk@0.0.1","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"7cb37308d6e45c3141d6a4c35c72bf54461f48a9","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.1.tgz","fileCount":7,"integrity":"sha512-oYDspCS7p/AbHR0m69JmaNxvKmwfuHnbTUZN+VLCzo0HE0SJNJij8QQdMf3TeOdq2JG/7bEq84AaJz3DDYNhdg==","signatures":[{"sig":"MEQCIF26Vd3eL98gEdnu55uxhU5GF8P2487iGpJbO1/iVzzOAiBhniH9YVNSbRVHDGA0PMcxsAvEzQunNPg2RNgJqWwj3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66963},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"207c9aa6011982a915a87760dad467a43663b28a","scripts":{"test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_npmVersion":"11.6.1","description":"Tempo SDK — Vite plugin for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","vitest":"catalog:","typescript":"catalog:","@types/node":"^25.0.8","@types/react":"catalog:","@modules/annotation":"workspace:*","@modules/typescript":"workspace:*","@vitejs/plugin-react":"catalog:"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.1_1772828944387_0.033785819374955395","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"tempo-sdk","version":"0.0.2","_id":"tempo-sdk@0.0.2","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"c726dcbb907282060ad353781338cc8fb54bfdb5","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.2.tgz","fileCount":4,"integrity":"sha512-pnE8DGBYo7EMI5DUGoO5LaAuXanRr9/ZBz9SGxVI/g0zXdH1gM9xMs+UJv61eoPRZkQxiFIDoddFx9XWvsTijg==","signatures":[{"sig":"MEUCIQDDHsegjchGWeL+bntdWLYCF8aWoI6xZqq/LWqZG6AZ6gIgWlSMZ+/JkEbIB0zSQizOIJ/tDsOrdAmVwDdZIm6CkXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67338},"type":"module","_from":"file:tempo-sdk-0.0.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/fa02ea9946b3b23db5f623d7083ef9a8/tempo-sdk-0.0.2.tgz","_integrity":"sha512-pnE8DGBYo7EMI5DUGoO5LaAuXanRr9/ZBz9SGxVI/g0zXdH1gM9xMs+UJv61eoPRZkQxiFIDoddFx9XWvsTijg==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite plugin for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.0.8","@types/react":"^18.3.17","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.2_1773282951459_0.5113100269258002","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"tempo-sdk","version":"0.0.3","_id":"tempo-sdk@0.0.3","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"659855f5051efe3de0e8e40a545d55876d8649dc","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.3.tgz","fileCount":4,"integrity":"sha512-6N09Gvv0WFBeH3JFony7KfDHOmFRyA8Po177uN2jf98m4bbmSK/KZ3Wcw2Oq8Jn+GVhW3C1HiACy/iYIcdoFdg==","signatures":[{"sig":"MEYCIQC4qzZLkYC8p02Gi0fnyRyqFGKGTbw3BZGcRF30NJ1naAIhAKW6fKzSCFwB87WFCWdfciTxRpvOpm/wQbzSuVWt5MDP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141015},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a669d07db44ee9a206712703b25486f368eb85f8","scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","prepare":"tsup","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_npmVersion":"11.6.1","description":"Tempo SDK — Vite plugin for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","vitest":"catalog:","typescript":"catalog:","@types/node":"^25.0.8","@types/react":"catalog:","playwright-core":"^1.58.2","@modules/annotation":"workspace:*","@modules/typescript":"workspace:*","@vitejs/plugin-react":"catalog:"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.3_1774881550484_0.09368499978566369","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"tempo-sdk","version":"0.0.4","_id":"tempo-sdk@0.0.4","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"8b8fcda7481c0d395c3909b8c94a9f4c647cb077","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.4.tgz","fileCount":13,"integrity":"sha512-EZwARL3FfKr1V2N/QOlwshDtbksODssOjMMGPTbLCVuroUkvDdgPYhK6Xf+02/q0mmqtJNrkYptZnShCSAxBag==","signatures":[{"sig":"MEQCIFKESHwC7lFw5HXRfGdPibOkWhOXvw0Rf/ewXwYljTTSAiAPFjUE1PmuDeD0jMADTGJwFQeX5oFNYLfnlalaa4PodQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375695},"type":"module","_from":"file:tempo-sdk-0.0.4.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/18b895d2ca19cd7ded7c046092ebebc3/tempo-sdk-0.0.4.tgz","_integrity":"sha512-EZwARL3FfKr1V2N/QOlwshDtbksODssOjMMGPTbLCVuroUkvDdgPYhK6Xf+02/q0mmqtJNrkYptZnShCSAxBag==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite + Next.js plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.0.8","@types/react":"^19.2.14","playwright-core":"^1.58.2","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.4_1777561293647_0.22495831478042083","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"tempo-sdk","version":"0.0.5","_id":"tempo-sdk@0.0.5","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"69037d5d17acec53ebbcef61711944b4b586fe8a","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.5.tgz","fileCount":4,"integrity":"sha512-mcGjhcS1Dmh7WX5RvxxTKSdsdzuOewVX3+KHcLzWGWmz5WwBo7m5kGArhjH71ZmNp+QExnigcPpjPRrvEfeffg==","signatures":[{"sig":"MEUCIBPRhU1PVCEKJ0XyefxWcl68k0w7Ttiv5ovMG5C3NmVXAiEAkOV5ehckY67A8kgTvpzyOi49xF+Ii16fsNPZcR69NA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162791},"type":"module","_from":"file:tempo-sdk-0.0.5.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/f902c2c4aefd2833e6f360a91299e5f4/tempo-sdk-0.0.5.tgz","_integrity":"sha512-mcGjhcS1Dmh7WX5RvxxTKSdsdzuOewVX3+KHcLzWGWmz5WwBo7m5kGArhjH71ZmNp+QExnigcPpjPRrvEfeffg==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite plugin for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.0.8","@types/react":"^19.2.14","playwright-core":"^1.58.2","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.5_1778101376079_0.6542875480961223","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"tempo-sdk","version":"0.0.6","_id":"tempo-sdk@0.0.6","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"729cce86ff4d1d129d2019ea0d85c1d51b187765","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.6.tgz","fileCount":4,"integrity":"sha512-ZRttDqpCb5KgXF2VozsOIpMBQlpPpU/Fw0Ygtt4esvktX6D9cgN1MZHAW74UXK5oOsHlzLxGbq0GjiH0329xIQ==","signatures":[{"sig":"MEUCIQDjLc+gpMDx34eT9VRoq+Hrw0LeKdzxFkgR5KnFF58xnAIgELykOkiv/2A6b0iaBUMyURzWuJ7hfVjwZsjP7JZ+b0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171939},"type":"module","_from":"file:tempo-sdk-0.0.6.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/7d5280ac6f9eb202d6a8bfdb0affb0d1/tempo-sdk-0.0.6.tgz","_integrity":"sha512-ZRttDqpCb5KgXF2VozsOIpMBQlpPpU/Fw0Ygtt4esvktX6D9cgN1MZHAW74UXK5oOsHlzLxGbq0GjiH0329xIQ==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite plugin for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.0.8","@types/react":"^19.2.14","playwright-core":"^1.58.2","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.6_1778266728170_0.058554229573884564","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"tempo-sdk","version":"0.0.7","_id":"tempo-sdk@0.0.7","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"945128d05a4c6dbccb0aab36e42da9188699e2ef","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.7.tgz","fileCount":27,"integrity":"sha512-1IMJV5DelOaglJ3zz0Yvhz1YktLMOEr4UEKGL91tDz9ytS+cxTbvbGIZ6X0YRXgtS4akpKj4vpb00B/iw4wPUg==","signatures":[{"sig":"MEUCIE8OGVrEDuec7IrvhXB44+QdwTtOD2aUjY2CSnfMYc2JAiEA/NZG5Q+jfsGrp/IUKQAS94NwPOKPS9QqJ/NDtoUjPd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":447883},"type":"module","_from":"file:tempo-sdk-0.0.7.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/f8d110a3eeca8ca06b101e412053ca28/tempo-sdk-0.0.7.tgz","_integrity":"sha512-1IMJV5DelOaglJ3zz0Yvhz1YktLMOEr4UEKGL91tDz9ytS+cxTbvbGIZ6X0YRXgtS4akpKj4vpb00B/iw4wPUg==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite + Next.js plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.0.8","@types/react":"^19.2.14","playwright-core":"^1.58.2","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.7_1779332829370_0.16628679142560787","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"tempo-sdk","version":"0.0.8","_id":"tempo-sdk@0.0.8","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"65a968d16eaf4dfb7bc742c8646c7d85cc6c24e2","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.8.tgz","fileCount":21,"integrity":"sha512-A27Zd5sHfqhGLAXNZ3F9gU+F7u1zlnCriit1j011op0ZanmfnLY2YeNM1bgYwBfZoeSG1HKYSTGuqQA56A/poQ==","signatures":[{"sig":"MEQCIHYalXvVqu+NNoueRdivGxhlKcPws/1yZwz2cN1SCXZXAiAX3PE61CkiV/SJZG+xlKIMJyKmoglcany9gJzK9iXWQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":403016},"type":"module","_from":"file:tempo-sdk-0.0.8.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/82b80f810d53a730edf92454d646c393/tempo-sdk-0.0.8.tgz","_integrity":"sha512-A27Zd5sHfqhGLAXNZ3F9gU+F7u1zlnCriit1j011op0ZanmfnLY2YeNM1bgYwBfZoeSG1HKYSTGuqQA56A/poQ==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite + Next.js plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.0.8","@types/react":"^19.2.14","playwright-core":"^1.58.2","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.8_1780352353999_0.13667948162166987","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"tempo-sdk","version":"0.0.9","_id":"tempo-sdk@0.0.9","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"81e907846a1eef42cd9ca7851aa6cf0c5b33512a","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.9.tgz","fileCount":48,"integrity":"sha512-8D1W1sPVj98LkU8gv0Fv3SoWD3ReZHSGv8MQKnlgnqhogv3EB683XuABvMopk+8TQVjUgtaH1XCYw5Dnr+ZxfA==","signatures":[{"sig":"MEUCIA3Bq8eodkUw2gxtoIKloCRQYgjWKemWLY7YrhIhkbaIAiEA5zKZmp4AFX6P5Tj6lhgd9qfuhYrln5T2OMI1awNsnRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1109287},"type":"module","_from":"file:tempo-sdk-0.0.9.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/574b7b365a5467f91cb369445e60796c/tempo-sdk-0.0.9.tgz","_integrity":"sha512-8D1W1sPVj98LkU8gv0Fv3SoWD3ReZHSGv8MQKnlgnqhogv3EB683XuABvMopk+8TQVjUgtaH1XCYw5Dnr+ZxfA==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.9_1780517245477_0.19979159492184295","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"tempo-sdk","version":"0.0.10","_id":"tempo-sdk@0.0.10","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"3d4980d37d7d52af5b4b12f040a341dfb9cf694d","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.10.tgz","fileCount":50,"integrity":"sha512-W6yYHsOPDBQvuki6dy/i4t3O2Pb0+SrhABlsLIR5i+iYdrPZ4dffflaPIxCziVL3vdHtleTHXhwn1SHr5hFnLg==","signatures":[{"sig":"MEQCIBUyNYZRHb6QFkHywScAcOSobFnnz+vsq28EnjkGdWDrAiAjhyIjw/4tF1IIbs6pQOy9/E4vo67vmQiqT3pmpiks2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1204578},"type":"module","_from":"file:tempo-sdk-0.0.10.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/fcab217c05ab114a6ae048f63361a0d1/tempo-sdk-0.0.10.tgz","_integrity":"sha512-W6yYHsOPDBQvuki6dy/i4t3O2Pb0+SrhABlsLIR5i+iYdrPZ4dffflaPIxCziVL3vdHtleTHXhwn1SHr5hFnLg==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.10_1780531763914_0.7201604593203725","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"tempo-sdk","version":"0.0.11","_id":"tempo-sdk@0.0.11","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"86716702cf7b821c65af096e647ea2ffec15d448","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.11.tgz","fileCount":52,"integrity":"sha512-jj9fZwikuKg2bJrqbc7b1aIiLycUXUrQui6fK/xcPu0Obl9JGx3wxscau+9egXGuAPjlfyYIJ20Lk0T/8wp23A==","signatures":[{"sig":"MEUCIHPivpjJybZQ+J2J5l3xp01kEYsGdRJz3uFVz2TOODn6AiEAw4bMvQPX9amx8+DVS2R9sWT1BlSG1x68S20gYThDWas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1301016},"type":"module","_from":"file:tempo-sdk-0.0.11.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/26d29ae4075943fb196b6dffc41b0e99/tempo-sdk-0.0.11.tgz","_integrity":"sha512-jj9fZwikuKg2bJrqbc7b1aIiLycUXUrQui6fK/xcPu0Obl9JGx3wxscau+9egXGuAPjlfyYIJ20Lk0T/8wp23A==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.1.2"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7","react":"^18 || ^19","typescript":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.11_1780541966880_0.9079284175134441","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"tempo-sdk","version":"0.0.12","_id":"tempo-sdk@0.0.12","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"54d92d9443d9eccf564170f0d21eb00013518732","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.12.tgz","fileCount":35,"integrity":"sha512-xO3/LGO5E034+qyk+0M+bN+NR3MSuk19/Sc7fofRmQMmNRZFUtdo1qyoUMxJKUB36zAGi5nyx7FuyICcbFusNA==","signatures":[{"sig":"MEQCIH2TAv6qjAKnpeRfsz3EoH75BDIRmvLXt9Aq7aa/dAn5AiBXPBIBi+7JLG491alYfY1gMVCvnYJb48nT2KSKKmYzmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":414952},"type":"module","_from":"file:tempo-sdk-0.0.12.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/db3195b2c12f6daf61e8f8f338f53c5c/tempo-sdk-0.0.12.tgz","_integrity":"sha512-xO3/LGO5E034+qyk+0M+bN+NR3MSuk19/Sc7fofRmQMmNRZFUtdo1qyoUMxJKUB36zAGi5nyx7FuyICcbFusNA==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.12_1780690651998_0.26961757052467794","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"tempo-sdk","version":"0.0.13","_id":"tempo-sdk@0.0.13","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"c9b4cd4c6562908487d80f425b6163767b607426","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.13.tgz","fileCount":37,"integrity":"sha512-zBOT+6DiRlXo8M9oIrjC+pnCWbvror6M+Hj/pNCq33Jgk5anIUjGhvC23GIGPxEAeHVSCE9a0AWkew+zwVqreg==","signatures":[{"sig":"MEQCIDIJ6+0X78MUFzUvN5YRZ/VwgRoh7NF32RlOXlzY36NSAiAfCqHciEjWjgx3+6giskUt2dqs/2AwCOpwjQm0G70zpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":732973},"type":"module","_from":"file:tempo-sdk-0.0.13.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/4d4fd0adcc84879235e25f3c3c29ba79/tempo-sdk-0.0.13.tgz","_integrity":"sha512-zBOT+6DiRlXo8M9oIrjC+pnCWbvror6M+Hj/pNCq33Jgk5anIUjGhvC23GIGPxEAeHVSCE9a0AWkew+zwVqreg==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/typescript":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","typescript":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.13_1780692595491_0.563985890108492","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"tempo-sdk","version":"0.0.14","_id":"tempo-sdk@0.0.14","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"067dbb1e7e2a18ce08aac58501976ef7dd9ebe00","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.14.tgz","fileCount":37,"integrity":"sha512-znQON0K0IJDvSaW4/du3/qUJiU1243Nld3z7saD01fSuinXO/bp3wHR2cC2+cuuVEsZ7Lvw/pNqxbQrYKkCmTg==","signatures":[{"sig":"MEUCIGYAbv/PRo2hQ9MA5tYX/3ly91+oIBE/V4i0dw2Mv0G2AiEAsxNQGXVP0UKoAduHXqwvqhkUF6SgsaKSnTrpLdQjB5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":504685},"type":"module","_from":"file:tempo-sdk-0.0.14.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","build:if-missing":"test -f dist/index.js || tsup","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/1f2c98b70bd3bcaf0273b455f04e15b9/tempo-sdk-0.0.14.tgz","_integrity":"sha512-znQON0K0IJDvSaW4/du3/qUJiU1243Nld3z7saD01fSuinXO/bp3wHR2cC2+cuuVEsZ7Lvw/pNqxbQrYKkCmTg==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.14_1780695164948_0.21592562680231175","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"tempo-sdk","version":"0.0.15","_id":"tempo-sdk@0.0.15","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"3952c041276b109a1646ad1f246472f2f93fd6e1","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.15.tgz","fileCount":56,"integrity":"sha512-/uttBJVGbqpvoPFnpGo8mx2OHtFYApJDCAJqexC8nluLNYgeKGUApQN1D9WNkSx0JZFr+MbokFPeV8q9DX/B+Q==","signatures":[{"sig":"MEQCIDBc4cZcjYsguVKsVZTtyHpgVBtvCFL3DDF0SFURhonGAiBNV2zaSGxASA0z/+gQ6CHRPA0j2E0F0tO5tYs07u37yw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1136023},"type":"module","_from":"file:tempo-sdk-0.0.15.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","build:if-missing":"test -f dist/index.js || tsup","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/99719feb93183658be1586d82c300e86/tempo-sdk-0.0.15.tgz","_integrity":"sha512-/uttBJVGbqpvoPFnpGo8mx2OHtFYApJDCAJqexC8nluLNYgeKGUApQN1D9WNkSx0JZFr+MbokFPeV8q9DX/B+Q==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.15_1782503419084_0.20660644452757904","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"tempo-sdk","version":"0.0.16","_id":"tempo-sdk@0.0.16","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"6dcfad4417a8cf7e9d3af08e2a6414eaa3684e98","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.16.tgz","fileCount":79,"integrity":"sha512-TjF5PwPMZFoqcA6e5qmVTqIXQHB6ii51zgn6sF/uRkC+c138g+gfPH9Uiwj8t1XRhcNdn3auSl6+fYCBQ5nIpg==","signatures":[{"sig":"MEYCIQDs/C02FFP9XxhgtnfeoD2UHOp3ZxWE5jigyoQRbHU0HAIhAMaiTO03jLuWvPm1yXJMU1DSIjQg1auDDj6a8KA24F9Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1846458},"type":"module","_from":"file:tempo-sdk-0.0.16.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"tsup","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","build:if-missing":"test -f dist/index.js || tsup","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/6804a8d12415d71484cee3cd9f6ee18c/tempo-sdk-0.0.16.tgz","_integrity":"sha512-TjF5PwPMZFoqcA6e5qmVTqIXQHB6ii51zgn6sF/uRkC+c138g+gfPH9Uiwj8t1XRhcNdn3auSl6+fYCBQ5nIpg==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.16_1782941807971_0.0010991767854542367","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"tempo-sdk","version":"0.0.18","_id":"tempo-sdk@0.0.18","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"5ee3f0072406b5a283159f864a2f4981db867aa3","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.18.tgz","fileCount":47,"integrity":"sha512-qCUFKb6o+Dy5NniMca2MWeNM973MAg187bRcv/u4b8IUKqAdY4oG7wxzEQDoS57ZpgareDrwSDwu5A+X57Fztw==","signatures":[{"sig":"MEYCIQC/b3Xk6Jsd7MOT8CjUUpSVOUw0TRgKuAkTTGjCg4+MYwIhALF0AAHjQ3mvgwnkVA+8xuvcVpxgB6CIqpp0BcOapFeY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":852328},"type":"module","_from":"file:tempo-sdk-0.0.18.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/5edd501c8e1019847dafe12195d868e6/tempo-sdk-0.0.18.tgz","_integrity":"sha512-qCUFKb6o+Dy5NniMca2MWeNM973MAg187bRcv/u4b8IUKqAdY4oG7wxzEQDoS57ZpgareDrwSDwu5A+X57Fztw==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.18_1783383546675_0.5782746854493523","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"tempo-sdk","version":"0.0.19","_id":"tempo-sdk@0.0.19","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"c0940a349a8eb1495fe941757f0027e4bd76aa8c","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.19.tgz","fileCount":59,"integrity":"sha512-tI4NgIIiDECvjYznTHb3eiDWpuMah95suTM3chNT4w5imfeb584AiL+hg1oEVQvn0jV/cjEyegcpRHmt3QsgmQ==","signatures":[{"sig":"MEYCIQDzA5DCik43bHn5bqMUYf1rwRCfkgKaaQvmUz6Dbr1T0wIhAO//E7OdjZsl+iQQeX9B2nMAYQeNG0pzSWTNF3kn93Bi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1047075},"type":"module","_from":"file:tempo-sdk-0.0.19.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/367853941e1c5e1b51ae723bfed674b2/tempo-sdk-0.0.19.tgz","_integrity":"sha512-tI4NgIIiDECvjYznTHb3eiDWpuMah95suTM3chNT4w5imfeb584AiL+hg1oEVQvn0jV/cjEyegcpRHmt3QsgmQ==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","playwright-core":"^1.58.2","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.19_1784142262634_0.9544663024271625","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"tempo-sdk","version":"0.0.20","_id":"tempo-sdk@0.0.20","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"81a03fa05ef93f3f2e37f7552fb946df395586bf","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.20.tgz","fileCount":64,"integrity":"sha512-e87sROmDsJ3ptXtX/joPbE0M9tX+/5dVmFUdWA917XJLUlrrYAM7m14Jo6yA+G5o4Cz9AdBIktZwynSc0FwiOQ==","signatures":[{"sig":"MEUCIAxWgni1TMQ73AkyqF5fWP8jaPKQvzbGYIQ4lZrmbJBuAiEAla5vnxv0ZhHJdZJIvNPE9r+WQhuWn/o4Wlehq2MZRe0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1604984},"type":"module","_from":"file:tempo-sdk-0.0.20.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/6ae270f50cc62e97d3493b6c5a5ab9d7/tempo-sdk-0.0.20.tgz","_integrity":"sha512-e87sROmDsJ3ptXtX/joPbE0M9tX+/5dVmFUdWA917XJLUlrrYAM7m14Jo6yA+G5o4Cz9AdBIktZwynSc0FwiOQ==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","playwright":"^1.58.2","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.20_1784483885801_0.33232530438747654","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"tempo-sdk","version":"0.0.22","_id":"tempo-sdk@0.0.22","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"fe998a6c643fc43687287524a6bdc6f5522e4651","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.22.tgz","fileCount":66,"integrity":"sha512-EMG6FhqwnTD30Xn+UXNHM3WZEi/rn1QPHFWG2TsDtTNbHMQLCuefNOboHKWLXWlsNnw5Jya9cpNPmEZyINVftQ==","signatures":[{"sig":"MEQCIHOx4wgwHT2LtnRUgRsJgan4mwmvduNKAr4x5t+N/DTTAiB4tpgi05lm5DjJv0mRYhZZGEqzjrS06C3IIwYlTce/PQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2030349},"type":"module","_from":"file:tempo-sdk-0.0.22.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/5f0c98e157a924a4ee051d8cbfaccbfa/tempo-sdk-0.0.22.tgz","_integrity":"sha512-EMG6FhqwnTD30Xn+UXNHM3WZEi/rn1QPHFWG2TsDtTNbHMQLCuefNOboHKWLXWlsNnw5Jya9cpNPmEZyINVftQ==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","playwright":"^1.58.2","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.22_1785161605140_0.9363585352153125","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"tempo-sdk","version":"0.0.23","_id":"tempo-sdk@0.0.23","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"3fa8c94b9761cff6f2c78e46b2655f47931fe9c4","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.23.tgz","fileCount":66,"integrity":"sha512-4zdABAYbhOfonYkBZX37cs3H/y1K4rkBOm0SqzvKJr43/qwFsPFSj1k69wULzMrveJFnCL3V9tW4qqUJaoNE6Q==","signatures":[{"sig":"MEUCIHe/Gz4OUuPGrCrTYQX3k1kcKECA3iXrw6fesFMlRnrQAiEA24K7VlXXf0aO0QnhlxP4JLXKbrAViu3kzPG082Uxo1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2070524},"type":"module","_from":"file:tempo-sdk-0.0.23.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/fa59ef4de9d27d76ec7ca982958d5fde/tempo-sdk-0.0.23.tgz","_integrity":"sha512-4zdABAYbhOfonYkBZX37cs3H/y1K4rkBOm0SqzvKJr43/qwFsPFSj1k69wULzMrveJFnCL3V9tW4qqUJaoNE6Q==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","playwright":"^1.58.2","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.23_1785512815098_0.9956028536728583","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"tempo-sdk","version":"0.0.24","_id":"tempo-sdk@0.0.24","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"7c766ba24738b085836689d9e5b67e2334eb0487","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.24.tgz","fileCount":66,"integrity":"sha512-kCypLCSEIiuomnWvGOb7ZL5HdZNulqcs21R/9QIBtnKtH+okXJQigutgq6mW7ZyaQefSxdPAydG+UrtYP6x9QQ==","signatures":[{"sig":"MEQCIHMhmelHliR2QlgRePGSosNSrA6ZUohGn29wItYAJCWtAiA7v1J9cWsHwhn3BxGGJAs0o9aRu+vnt7nq4qDx+qY1RA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2073353},"type":"module","_from":"file:tempo-sdk-0.0.24.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/e2769e3ef2cd5216573acbbbdea6fbce/tempo-sdk-0.0.24.tgz","_integrity":"sha512-kCypLCSEIiuomnWvGOb7ZL5HdZNulqcs21R/9QIBtnKtH+okXJQigutgq6mW7ZyaQefSxdPAydG+UrtYP6x9QQ==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","playwright":"^1.58.2","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.24_1786996081789_0.619006858981431","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"tempo-sdk","version":"0.0.25","_id":"tempo-sdk@0.0.25","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"1a0db0053a45091af4d9779ad63b90c93036ecb0","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.25.tgz","fileCount":66,"integrity":"sha512-wKYBjKI091vQ8H6hl8pGG1Xr3QmhpDaUTk6J8DOojkOItLRRhhyw0zqZFMnvzbpUWA/3zFgotWDC0qJ72mtz/w==","signatures":[{"sig":"MEUCIGLftuhTqV4+wEM7Zls4vk84FiVOJKL+tf39gHAn153dAiEA5pCKk7DDKIVFBalxA7QVbVwQFWaWqjKDsFAJoOyRXbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2124962},"type":"module","_from":"file:tempo-sdk-0.0.25.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/e9312fdd2c31af12917d7c4e4a462c10/tempo-sdk-0.0.25.tgz","_integrity":"sha512-wKYBjKI091vQ8H6hl8pGG1Xr3QmhpDaUTk6J8DOojkOItLRRhhyw0zqZFMnvzbpUWA/3zFgotWDC0qJ72mtz/w==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","playwright":"^1.58.2","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.25_1787149324304_0.22731644337489132","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"tempo-sdk","version":"0.0.26","_id":"tempo-sdk@0.0.26","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"b9d35dbcd4aea04987579bf10b1298e44aa7f909","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.26.tgz","fileCount":66,"integrity":"sha512-bL/iZxe4eTQ66n8ts6i753hEJ2MEl7JbxrRRBqVPrs9OqZiyaEmEsMujHJ52R4QWAg9UHOEGZiqL13g1xSbgzA==","signatures":[{"sig":"MEYCIQCuSNbUD9mXC0yCl08Y9gdt6OeCDgQyfK+ANi9tujWJigIhAPzQXrmBtAeH8drE/Ht+oDrQMSxkrIrKtAJ6BkfGdNLk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2126629},"type":"module","_from":"file:tempo-sdk-0.0.26.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/s7/xwb77j5165q5mxqd_kz996440000gn/T/39eee3fcc761f723f15c35961835581b/tempo-sdk-0.0.26.tgz","_integrity":"sha512-bL/iZxe4eTQ66n8ts6i753hEJ2MEl7JbxrRRBqVPrs9OqZiyaEmEsMujHJ52R4QWAg9UHOEGZiqL13g1xSbgzA==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","playwright":"^1.58.2","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.26_1787324458025_0.3095528977891189","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"tempo-sdk","version":"0.0.27","_id":"tempo-sdk@0.0.27","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"a2a7a76bc5e179cd9b4a3159d901b24c71a972ca","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.27.tgz","fileCount":66,"integrity":"sha512-pokXMlT8/EUGMvwftIAFGr06LCFccc+azYo1vZIeYAadS3bX+cjIhbctnxUqZdjKxT4dj5V7nkKETcStKDmqdA==","signatures":[{"sig":"MEQCIBl4fnM688dgbrCZs+LPc3v4tsVfPobjDjXDVRlD20p8AiAB5+PDFjYdsGiB2T4BFyrRpiivlNobUn6xZQanLwj2uA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2155057},"type":"module","_from":"file:tempo-sdk-0.0.27.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/var/folders/l9/49cx32pn7bsdcg2gwsr_jf_h0000gn/T/714528da6ac668fcd6429844a2e8d121/tempo-sdk-0.0.27.tgz","_integrity":"sha512-pokXMlT8/EUGMvwftIAFGr06LCFccc+azYo1vZIeYAadS3bX+cjIhbctnxUqZdjKxT4dj5V7nkKETcStKDmqdA==","_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^7.3.1","vitest":"^4.0.18","react-dom":"^19.2.4","playwright":"^1.58.2","typescript":"^5.9.3","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@modules/annotation":"0.0.1","@modules/file-parser":"0.0.1","@vitejs/plugin-react":"^5.2.0"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.27_1787582248061_0.7518350005795227","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"tempo-sdk","version":"0.0.28","_id":"tempo-sdk@0.0.28","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"0779d3b361fdeead76c431e9a865ec6f0c237a49","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.28.tgz","fileCount":66,"integrity":"sha512-ISIoE7aXuqP2hOlmMvzqYoZQMc12lCSOeRFhJaoDoYPneHLxZdpljp1ez3Dn9Lg2LMqwhgXxGSoDacgK/P+NLA==","signatures":[{"sig":"MEQCICkNMcQ/VrV8fw+5Rx1NTPTA28UDI6QKreIHdCmNWM36AiBygNItM93Vc/2qRWmL5EaQ+IIfLcKJ76jgjCUyYpOcBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2169663},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.28_1787623449674_0.06880289090241898","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"tempo-sdk","version":"0.0.30","_id":"tempo-sdk@0.0.30","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"dist":{"shasum":"41f6392d205fdc76db4afb77601fa47645c44cd1","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.30.tgz","fileCount":77,"integrity":"sha512-49tdcAL2FXTmCk8xIoUfJAPobQNzDFnMjvigPfpctR9vj37E/kId6lw0n8Fl5eghXuhizPWObntHFo5IaYIuqQ==","signatures":[{"sig":"MEUCIB9dzspYRVKsYPuS925ficEa+kyOhm4/Go1G0dzaJgM8AiEA/TwPQzjJTBI70Of3nO0wFRcpQkE7eGS4JtzwmjiZ7a0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2561878},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.30_1787751858865_0.7045153857055337","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"tempo-sdk","version":"0.0.31","_id":"tempo-sdk@0.0.31","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"bab3a4d56b6a801721aa53ee916157dd433f63ec","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.31.tgz","fileCount":77,"integrity":"sha512-s1Rk56XXMXSuJ0K6QtYW3Ir87EG/uXv926r+Sg25co+81IeGbiD6Iw5gwio16+7Z9IDiFfP4ML/ZVS3SmzOwrg==","signatures":[{"sig":"MEUCIQDTw/0vxT12OXerdGS6rRhEZREn3SMDwPA9eHOQP5vCtwIgO1hJ0rXB7iX8xGWbhQd5ybBy2dInCQW8wEA+264W5GU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2563192},"type":"module","_from":"file:tempo-sdk-0.0.31.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"tempo-dev","email":"peter@tempo.new"},"_resolved":"/private/tmp/claude-501/-Users-peter-tempo-workspaces-tempo-monorepo-cookie/a1f4ba98-5a02-4545-bfa5-b8033695905e/scratchpad/manual-release/sdk/tempo-sdk-0.0.31.tgz","_integrity":"sha512-s1Rk56XXMXSuJ0K6QtYW3Ir87EG/uXv926r+Sg25co+81IeGbiD6Iw5gwio16+7Z9IDiFfP4ML/ZVS3SmzOwrg==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.6.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.11.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.31_1787858017112_0.08595545145556294","host":"s3://npm-registry-packages-npm-production"}},"0.0.33":{"name":"tempo-sdk","version":"0.0.33","_id":"tempo-sdk@0.0.33","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"97fcffb8ffd48e1f3fe65e0df7c5909f55fe91cc","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.33.tgz","fileCount":77,"integrity":"sha512-meRd658Ou7Ta+fTaI4ZBZ9OXoirEsgA3NbZe4ZOAweqQZDRPBKq4iD3oe8dLYGmGSCcbYJyvGxSpHXH8Fxqaeg==","signatures":[{"sig":"MEQCIFT/MPC6QKQQ0YEjTykKb2o82N3aGiGDZHgR0mUOSPRJAiANyaCcQ6wVXCSb4ELXsNelBlN7WvQgarOzvmpeBqGGHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2563192},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.33.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.33.tgz","_integrity":"sha512-meRd658Ou7Ta+fTaI4ZBZ9OXoirEsgA3NbZe4ZOAweqQZDRPBKq4iD3oe8dLYGmGSCcbYJyvGxSpHXH8Fxqaeg==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.19.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.33_1788159627835_0.7236870811988143","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"tempo-sdk","version":"0.0.34","_id":"tempo-sdk@0.0.34","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"d82783ac0765fc2d5e3f762b43fb345b381d95cd","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.34.tgz","fileCount":77,"integrity":"sha512-HiVSgRBfYqai9xk6ZO8XN8AKRGEqSXr26trsQZrBSp4sZQm5j3VlqXoSOAuX4zZt/5vdb7Cwn5fui0CGv0k/7A==","signatures":[{"sig":"MEYCIQDAMpcV4OcR83YVfFBPyRQhXXeTY/Dv9oqBNmHE8KeEbgIhANBt2CVTB3QMJQ2xNekyhGjE23c7787dpr5VDD8GauFL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2567442},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.34.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.34.tgz","_integrity":"sha512-HiVSgRBfYqai9xk6ZO8XN8AKRGEqSXr26trsQZrBSp4sZQm5j3VlqXoSOAuX4zZt/5vdb7Cwn5fui0CGv0k/7A==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.19.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.34_1788259510441_0.5941483885119283","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"tempo-sdk","version":"0.0.35","_id":"tempo-sdk@0.0.35","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"13ac283ca7ecd3567a417dcf597af73978e5c92c","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.35.tgz","fileCount":77,"integrity":"sha512-PTKRu6kE1NppB805pYiuVK7gwFIs4wKti13oRMPgTZZbF70wUSL/m6xfs/c/01TyGJHOMo9xUKnbrnA26mqTkw==","signatures":[{"sig":"MEUCIQDC5pWJ7VI7fgMSCQPQVWk4107zTEXkmoluWrlCuLf2mAIgV4jisWTgqfEMN5vcOJ59RNtMSslyzWPBRbfUtX0harE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2573237},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.35.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.35.tgz","_integrity":"sha512-PTKRu6kE1NppB805pYiuVK7gwFIs4wKti13oRMPgTZZbF70wUSL/m6xfs/c/01TyGJHOMo9xUKnbrnA26mqTkw==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.19.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.35_1788274340509_0.308651233706402","host":"s3://npm-registry-packages-npm-production"}},"0.0.37":{"name":"tempo-sdk","version":"0.0.37","_id":"tempo-sdk@0.0.37","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"d93ee8528610da54cea3774f6c42989c5ed682b1","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.37.tgz","fileCount":79,"integrity":"sha512-9xyrGFDRIk30B6fC3CYkbvT7IoJPVHfK8Ux3Vig385NT61MCLa1liwGxsIhFv/mWhrlt1eZGpuUYXvTbHMH30g==","signatures":[{"sig":"MEYCIQDRaTwpjPBxo9QhL18BQeqvNbdIOEOQQ7OfMWkgQ9lCYgIhAIdsnMtl4e8z10V9e46W6r14syxwbdxwIZi+jyAL7cn/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2578117},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.37.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.37.tgz","_integrity":"sha512-9xyrGFDRIk30B6fC3CYkbvT7IoJPVHfK8Ux3Vig385NT61MCLa1liwGxsIhFv/mWhrlt1eZGpuUYXvTbHMH30g==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.19.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.37_1788339763956_0.012775048314120685","host":"s3://npm-registry-packages-npm-production"}},"0.0.38":{"name":"tempo-sdk","version":"0.0.38","_id":"tempo-sdk@0.0.38","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"02c1ef1c47e9ea1a69ee545572e8ebe6c83cdd6d","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.38.tgz","fileCount":79,"integrity":"sha512-kRMZxMjRhH0JPifv8q7o54Dka38eikkLJHPMorYNPbWQn0GO0ZuqAB8LkYE570f3MKne8xFSASL5f9blvW95UA==","signatures":[{"sig":"MEQCIDvxRfyt+e2rIEHbalydLnVkQm3h8QO+Lk9TQhK1vSm5AiADcg+yM1fCnKz34+M6wFVmHNeqNwB9+8ZUPgceMZkLJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2586365},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.38.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.38.tgz","_integrity":"sha512-kRMZxMjRhH0JPifv8q7o54Dka38eikkLJHPMorYNPbWQn0GO0ZuqAB8LkYE570f3MKne8xFSASL5f9blvW95UA==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.19.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.38_1788423504556_0.3930536349673339","host":"s3://npm-registry-packages-npm-production"}},"0.0.40":{"name":"tempo-sdk","version":"0.0.40","_id":"tempo-sdk@0.0.40","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"bdde5374b510d3f12558fb0b06d2c6e7b9acadc6","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.40.tgz","fileCount":79,"integrity":"sha512-AaCzy0XehzqX2iZpApLo4WyWkphClHc48bQOtTa7oslMQYf01gbiJphPNprxrjU4tBBUtB3l1lP5lxwb0yA3jg==","signatures":[{"sig":"MEUCIQD2BST39VsZBtaIPyLnZG9ADzZliy7RgxPzsQWaRoxi/gIgckMYfNIV69btv92x6CxXDt3eeYteWIC2oQE1yvLnHW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2734185},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.40.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.40.tgz","_integrity":"sha512-AaCzy0XehzqX2iZpApLo4WyWkphClHc48bQOtTa7oslMQYf01gbiJphPNprxrjU4tBBUtB3l1lP5lxwb0yA3jg==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.20.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.40_1788896168612_0.4811571719024865","host":"s3://npm-registry-packages-npm-production"}},"0.0.42":{"name":"tempo-sdk","version":"0.0.42","_id":"tempo-sdk@0.0.42","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"3db19276b1e97f1de23233081a70c71f433cb7cf","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.42.tgz","fileCount":79,"integrity":"sha512-OJHEZVTT2Ffwo0BSmDnKngjg/RCFo60m3ekIh7eNRzOmDuwCbsVD/HGJWY2XcZpO/fKNlcYPxgMaKvtNNqsDIw==","signatures":[{"sig":"MEYCIQDJNvimIZqlYOKOO0vHZbXJ90+uaoTMmW1gB6qhVt6PiwIhAPVYxqM9TCa6PIdho7t6WJ7yEfQQjV0Iz43CBNMdODpC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2740524},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.42.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.42.tgz","_integrity":"sha512-OJHEZVTT2Ffwo0BSmDnKngjg/RCFo60m3ekIh7eNRzOmDuwCbsVD/HGJWY2XcZpO/fKNlcYPxgMaKvtNNqsDIw==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.20.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.42_1789149397924_0.8115491557393137","host":"s3://npm-registry-packages-npm-production"}},"0.0.44":{"name":"tempo-sdk","version":"0.0.44","_id":"tempo-sdk@0.0.44","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"0b98bc4cd8308a0a046cc0a46e5e8a5a48c5f7a1","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.44.tgz","fileCount":79,"integrity":"sha512-sLi2UqEh7t0OeZQcbtAXwq5K23ftTBeTMQkbeaHqGX5tWN9me6bm6w3ZVbEVy+ZR+8PKxcYnUmBmllR4rDuIHg==","signatures":[{"sig":"MEYCIQDedKt19KIXh8FewBrgMO5aKIp5b8uuezQpoO+dhjeJmQIhAJcHzic4IYlNm4ngFGJEUGSJoUx8/Bra+Y89O0sct+ZK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2744459},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.44.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-capture-determinism-browser.test.ts canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.44.tgz","_integrity":"sha512-sLi2UqEh7t0OeZQcbtAXwq5K23ftTBeTMQkbeaHqGX5tWN9me6bm6w3ZVbEVy+ZR+8PKxcYnUmBmllR4rDuIHg==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.20.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.44_1789571213890_0.3026289942881828","host":"s3://npm-registry-packages-npm-production"}},"0.0.45":{"name":"tempo-sdk","version":"0.0.45","_id":"tempo-sdk@0.0.45","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"5579e2daaba44f0291b4765a73421396cddec618","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.45.tgz","fileCount":81,"integrity":"sha512-RSs/CK7Emlb46jKdiDc8nWs52pjtGPZeMbYIIROmA6rZA7j2yxg2id8v50++qdmoxhK1DPnTLUH4ykVR46Frcg==","signatures":[{"sig":"MEQCIHLlh0Ue/HB9Cgmt/DC+BNXQakx+SbdXqm7gZ1wG0k2CAiAGVN4DD+tNqxnYrqyDeEuHgfEkIl+z2pSA3awgK2ub6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAKMgjeOZcxzXSbYmCEtUMSKnSQiY9eOqmYfX7iv6yr6AiBpAFG870nIrrIz8lG1AKi+IDqqrK6lNSUjMaEocOVXJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2759941},"type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.45.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run canvas-capture-determinism-browser.test.ts canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.45.tgz","_integrity":"sha512-RSs/CK7Emlb46jKdiDc8nWs52pjtGPZeMbYIIROmA6rZA7j2yxg2id8v50++qdmoxhK1DPnTLUH4ykVR46Frcg==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.19.1","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"_nodeVersion":"24.20.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tempo-sdk_0.0.45_1789780836526_0.9333506435072834","host":"s3://npm-registry-packages-npm-production"}},"0.0.51":{"_id":"tempo-sdk@0.0.51","bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"dist":{"shasum":"05c86fe5d70e9116d302305a0bf689e2f3d5b024","tarball":"https://registry.npmjs.org/tempo-sdk/-/tempo-sdk-0.0.51.tgz","fileCount":85,"integrity":"sha512-aoKOBeL0qzcNfghQu3Bs3XDgmSCJLWXjSL5Oo7mV8Rpt7B5dJtCW80q5bpBfZ/ofuM8A8dYPmai7mGcT3GyaOQ==","signatures":[{"sig":"MEUCIHHw/cqodwk1mcgUDP+JT3F0jDHSUP5RQpASWBfZ0nUiAiEAqs6REhGmMjbsIhiNfoWWYubToLGx+0+2w2vAIRzcjiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCoavTG1CPwGWMcSchiIhG8aDMpVX1uWyDkvMnq0bo3VQIgXSdRsLVg0+RK6C5pyJr/sYj8WTZX+CloiwAKaRUBK2M="}],"unpackedSize":2833661},"name":"tempo-sdk","type":"module","_from":"file:tempo-sdk-release-artifact/tempo-sdk-0.0.51.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./expo":{"types":"./dist/expo-babel-plugin.d.ts","import":"./dist/expo-babel-plugin.js","require":"./dist/expo-babel-plugin.cjs"},"./assets":{"types":"./dist/assets/index.d.ts","import":"./dist/assets/index.js"},"./canvas":{"types":"./dist/canvas/index.d.ts","import":"./dist/canvas/index.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js","require":"./dist/nextjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js"},"./expo/plugin":{"types":"./dist/expo/plugin.d.ts","import":"./dist/expo/plugin.js","require":"./dist/expo/plugin.cjs"},"./assets/editor":{"types":"./dist/assets/editor.d.ts","import":"./dist/assets/editor.js"},"./assets/parser":{"types":"./dist/assets/parser.d.ts","import":"./dist/assets/parser.js"},"./canvas/editor":{"types":"./dist/canvas/editor.d.ts","import":"./dist/canvas/editor.js"},"./canvas/parser":{"types":"./dist/canvas/parser.d.ts","import":"./dist/canvas/parser.js"},"./canvas/svelte":{"types":"./dist/canvas/svelte.d.ts","import":"./dist/canvas/svelte.js"},"./nextjs/plugin":{"types":"./dist/nextjs/plugin.d.ts","import":"./dist/nextjs/plugin.js"},"./canvas/interact-projection":{"types":"./dist/canvas/interact-projection.d.ts","import":"./dist/canvas/interact-projection.js"}},"scripts":{"demo":"TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev","test":"vitest run","build":"pnpm run clean && tsup","clean":"rm -rf dist","prepare":"pnpm run build","test:watch":"vitest","demo:nextjs":"TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev","test:nextjs":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts nextjs-e2e-correctness.test.ts nextjs-production.test.ts","test:browser":"vitest run asset-live-preview-browser.test.ts asset-popover-lifecycle-browser.test.ts component-controls-browser.test.ts canvas-controls-browser.test.ts canvas-capture-determinism-browser.test.ts canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts","prepublishOnly":"pnpm build","build:if-missing":"test -f dist/index.js || pnpm run build","test:nextjs:unit":"vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts","test:nextjs:production":"vitest run nextjs-production.test.ts","test:nextjs:integration":"vitest run nextjs-e2e-correctness.test.ts"},"version":"0.0.51","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:44181ab2-fa8c-474d-bc75-b7d33ec97146"}},"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","_resolved":"/home/runner/work/tempo-monorepo/tempo-monorepo/tempo-sdk-release-artifact/tempo-sdk-0.0.51.tgz","_integrity":"sha512-aoKOBeL0qzcNfghQu3Bs3XDgmSCJLWXjSL5Oo7mV8Rpt7B5dJtCW80q5bpBfZ/ofuM8A8dYPmai7mGcT3GyaOQ==","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"_npmVersion":"11.20.0","description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","directories":{},"maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"_nodeVersion":"24.21.0","dependencies":{"oxc-parser":"^0.110.0","@rollup/pluginutils":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"catalog:","svelte":"5.56.9","vitest":"catalog:","react-dom":"catalog:","playwright":"^1.58.2","typescript":"catalog:","@babel/core":"^7.29.0","@types/node":"^25.0.8","@babel/types":"^7.29.0","@types/react":"catalog:","@types/react-dom":"catalog:","@types/babel__core":"^7.20.5","@modules/annotation":"workspace:*","@modules/file-parser":"workspace:*","@vitejs/plugin-react":"catalog:","@modules/svelte-editor":"workspace:*"},"peerDependencies":{"next":"^13 || ^14 || ^15 || ^16","vite":"^5 || ^6 || ^7 || ^8","react":"^18 || ^19","svelte":"^5.0.0","@babel/core":"^7.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"svelte":{"optional":true},"@babel/core":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tempo-sdk_0.0.51_1790349415701_0.8735437706994047"}}},"time":{"created":"2026-03-06T20:29:04.387Z","modified":"2026-09-25T15:16:55.981Z","0.0.1":"2026-03-06T20:29:04.536Z","0.0.2":"2026-03-12T02:35:51.620Z","0.0.3":"2026-03-30T14:39:10.641Z","0.0.4":"2026-04-30T15:01:33.806Z","0.0.5":"2026-05-06T21:02:56.250Z","0.0.6":"2026-05-08T18:58:48.368Z","0.0.7":"2026-05-21T03:07:09.524Z","0.0.8":"2026-06-01T22:19:14.230Z","0.0.9":"2026-06-03T20:07:25.682Z","0.0.10":"2026-06-04T00:09:24.119Z","0.0.11":"2026-06-04T02:59:27.093Z","0.0.12":"2026-06-05T20:17:32.155Z","0.0.13":"2026-06-05T20:49:55.668Z","0.0.14":"2026-06-05T21:32:45.116Z","0.0.15":"2026-06-26T19:50:19.270Z","0.0.16":"2026-07-01T21:36:48.199Z","0.0.18":"2026-07-07T00:19:06.887Z","0.0.19":"2026-07-15T19:04:22.909Z","0.0.20":"2026-07-19T17:58:05.965Z","0.0.22":"2026-07-27T14:13:25.299Z","0.0.23":"2026-07-31T15:46:55.286Z","0.0.24":"2026-08-17T19:48:01.942Z","0.0.25":"2026-08-19T14:22:04.475Z","0.0.26":"2026-08-21T15:00:58.177Z","0.0.27":"2026-08-24T14:37:28.238Z","0.0.28":"2026-08-25T02:04:09.881Z","0.0.30":"2026-08-26T13:44:19.048Z","0.0.31":"2026-08-27T19:13:37.262Z","0.0.33":"2026-08-31T07:00:27.989Z","0.0.34":"2026-09-01T10:45:10.634Z","0.0.35":"2026-09-01T14:52:20.693Z","0.0.37":"2026-09-02T09:02:44.124Z","0.0.38":"2026-09-03T08:18:24.709Z","0.0.40":"2026-09-08T19:36:08.805Z","0.0.42":"2026-09-11T17:56:38.160Z","0.0.44":"2026-09-16T15:06:54.129Z","0.0.45":"2026-09-19T01:20:36.649Z","0.0.51":"2026-09-25T15:16:55.818Z"},"bugs":{"url":"https://github.com/TempoLabsAI/tempo-monorepo/issues"},"homepage":"https://github.com/TempoLabsAI/tempo-monorepo#readme","repository":{"url":"git+https://github.com/TempoLabsAI/tempo-monorepo.git","type":"git","directory":"tempo-modules/tempo-sdk"},"description":"Tempo SDK — Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types","maintainers":[{"name":"tempo-dev","email":"peter@tempo.new"}],"readme":"# tempo-sdk\n\nTempo's JSX-annotation plugins for Vite and Next.js. At build time, every JSX\nelement in your codebase gets `data-tempo-*` attributes that map the rendered\nDOM back to the exact source-file location that produced it. Tempo's design\nsurface uses these attributes to navigate from a clicked element to its source.\n\nThis package ships two plugins from one workspace:\n\n- **`tempo-sdk`** — Vite plugin (`tempoVitePlugin`)\n- **`tempo-sdk/nextjs`** — Next.js plugin (`tempoNextjsPlugin`)\n- **`tempo-sdk/nextjs/plugin`** — default-exported Next.js plugin for ESM config files\n- **`tempo-sdk/expo/plugin`** — Expo Babel plugin (`tempoExpoBabelPlugin`)\n\nBoth produce byte-identical `data-tempo-*` output, so downstream consumers\n(`source-editor.ts`, `frame-preload.ts`) work the same regardless of which\nframework the user's project is on.\n\n---\n\n## Next.js usage\n\n### 1. Install\n\nIn a workspace package:\n\n```jsonc\n{\n  \"dependencies\": { \"tempo-sdk\": \"workspace:*\" }\n}\n```\n\nIn an external project: `pnpm add tempo-sdk` (or your package manager's equivalent).\n\n### 2. Wrap `next.config`\n\nCommonJS (`next.config.js`):\n\n```js\nconst tempoNextjsPlugin = require(\"tempo-sdk/nextjs\");\n\nmodule.exports = tempoNextjsPlugin()({\n  reactStrictMode: true,\n  // ...rest of your existing config\n});\n```\n\nESM (`next.config.mjs` / `next.config.ts`):\n\n```ts\nimport tempoNextjsPlugin from \"tempo-sdk/nextjs/plugin\";\n\nexport default tempoNextjsPlugin()({\n  reactStrictMode: true,\n});\n```\n\nYou can also use the named export from `tempo-sdk/nextjs`:\n\n```ts\nimport { tempoNextjsPlugin } from \"tempo-sdk/nextjs\";\n```\n\n### 3. Set the `TEMPO` env var when launching dev\n\n```bash\nTEMPO=true next dev            # Turbopack (Next.js 16+ default)\nTEMPO=true next dev --webpack  # Webpack mode\n```\n\nWithout `TEMPO` set, the plugin is a complete no-op. You can leave\n`tempoNextjsPlugin()` in `next.config.js` permanently — there is zero overhead\nin normal dev. Tempo's start script sets `TEMPO=true` automatically when\nlaunching the project under Tempo.\n\n### 4. App Router — that's it\n\nThe loader auto-injects `<meta name=\"tempo-project-root\">` into the first JSX\n`<head>` it sees (typically `app/layout.tsx`). Every JSX element in your project\ngets `data-tempo-filepath`, `data-tempo-position`, `data-tempo-modifiedts`, and\n`data-tempo-supports-*` attributes baked into the SWC-compiled output.\n\nExample rendered HTML:\n\n```html\n<button\n  data-tempo-filepath=\"components/Button.tsx\"\n  data-tempo-position=\"142\"\n  data-tempo-modifiedts=\"1708900000000\"\n  data-tempo-supports-children=\"true\"\n>\n  Click me\n</button>\n\n<head>\n  <meta name=\"tempo-project-root\" content=\"/abs/path/to/project\" />\n</head>\n```\n\n### 5. Pages Router — one extra line in `_document.tsx`\n\n`<Head>` from `next/document` is a **custom** React component (capital H), not\nintrinsic JSX `<head>` (lowercase), so auto-inject doesn't fire there. Add the\nproject-root meta manually:\n\n```tsx\n// pages/_document.tsx\nimport { Html, Head, Main, NextScript } from \"next/document\";\nimport { tempoProjectRoot } from \"tempo-sdk/nextjs\";\n\nexport default function Document() {\n  return (\n    <Html>\n      <Head>\n        <meta name=\"tempo-project-root\" content={tempoProjectRoot()} />\n      </Head>\n      <body>\n        <Main />\n        <NextScript />\n      </body>\n    </Html>\n  );\n}\n```\n\n`tempoProjectRoot()` returns the same canonical root the loader uses for\n`data-tempo-filepath`, so paths reconstruct correctly.\n\n### Options\n\nAll optional:\n\n```js\ntempoNextjsPlugin({\n  autoInjectRootMeta: false,                       // disable head meta auto-inject\n  productionBuild: true,                           // run in `next build` too (rare)\n  computeAnnotatedPropsModule: \"./tempo-strategy.js\", // custom prop-computation\n})(nextConfig);\n```\n\n`computeAnnotatedPropsModule` is a path (not a function) because Turbopack\nrequires loader options to be JSON-serializable. The module's default export\nmust be a function `(info, filepath, modifiedtsMs) => Record<string, PropValue>`.\n\n### Composing with other wrappers (`@next/mdx`, etc.)\n\n`tempoNextjsPlugin` follows the `@next/mdx` higher-order-config pattern, so it\ncomposes naturally:\n\n```js\nconst tempoNextjsPlugin = require(\"tempo-sdk/nextjs\");\nconst withMDX = require(\"@next/mdx\")();\n\nmodule.exports = tempoNextjsPlugin()(\n  withMDX({ reactStrictMode: true })\n);\n```\n\n`tempoNextjsPlugin` should be the **outermost** wrapper so its webpack/turbopack\nchaining sees the inner wrappers' contributions.\n\n### Supported Next.js versions\n\n| Next.js | Webpack | Turbopack | Notes |\n|---|---|---|---|\n| 16.x | `--webpack` flag | default | Validated end-to-end |\n| 15.3 – 15.x | default | `--turbo` flag | Wrapper writes to `turbopack.*` |\n| 13.0 – 15.2 | default | `--turbo` flag | Wrapper writes to `experimental.turbo.*` |\n| 12.x | default | n/a | Webpack only; turbopack field omitted |\n| < 12 | n/a | n/a | Out of scope |\n\nThe wrapper detects the version via `next/package.json` and writes to the\ncorrect field automatically.\n\n---\n\n## Vite usage\n\n```ts\n// vite.config.ts\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport { tempoVitePlugin } from \"tempo-sdk\";\n\nexport default defineConfig({\n  plugins: [tempoVitePlugin(), react()],\n});\n```\n\nSame `TEMPO` env-var gating, same `data-tempo-*` output as the Next.js plugin.\nThe Vite plugin additionally exposes an `/__tempo/errors` SSE endpoint for\nstreaming concrete compile errors to the design surface. It does not publish a\nsource-update stream or supervise source-to-visible HMR transactions; normal\nupdates belong to Vite and the official React plugin.\n\n### Canvas runtime surface\n\n`tempo-sdk/canvas` exposes the bundler-agnostic runtime used by the generated\nCanvas host:\n\n- `CanvasHost` accepts either legacy `children` or literal `canvasModules`\n  loaders. Passing both throws `CanvasHostContractError` instead of silently\n  rendering an ambiguous host.\n- `CanvasImportBoundary` owns lazy import, Suspense, canvas-scoped error\n  reporting, and current-owner mount success. It does not replay accepted\n  modules or inspect Vite transactions.\n- `getCanvasHostRecoveryFeed()` returns the document-local\n  `host-recovery-feed`. It carries exactly one product fact\n  (`module-load-failure`: a canvas import rejection or an HMR\n  module-evaluation failure) to the generated recovery adapter; no hot\n  context, cycle number, owner success, or reload command crosses the SDK\n  boundary.\n- `canvasHostCapability` declares protocol version 1 with\n  `supportsModules: true`. It is defense-in-depth, not the primary\n  compatibility gate.\n\nBefore generating `.tempo/tempo-host.tsx`, `tempo-devserver` runs the primary\ninstalled-package check. An incompatible SDK fails before browser evaluation\nwith `canvas_host_sdk_incompatible` and an actionable install command. Tempo's\nmanaged sidecar rollout first runs `ensureTempoSdkLatestSpec`; whether that\nupgrade was attempted is included in the typed compatibility error. The rollout\ncontract is publish the compatible SDK first, verify the packed artifact, then\nship the devserver that requires it.\n\n---\n\n## Expo usage\n\nExpo support is for Tempo's web canvas runtime. It annotates Expo web output for\nselection and editing; it does not make native-device canvases editable.\n\nConfigure the Tempo-owned Expo sidecar app's Babel config:\n\n```js\n// tempo/babel.config.js\nconst path = require(\"node:path\");\nconst { tempoExpoBabelPlugin } = require(\"tempo-sdk/expo/plugin\");\n\nmodule.exports = function (api) {\n  api.cache(true);\n  return {\n    presets: [\"babel-preset-expo\"],\n    plugins: [\n      [\n        tempoExpoBabelPlugin,\n        {\n          root: path.resolve(__dirname, \"..\"),\n        },\n      ],\n    ],\n  };\n};\n```\n\nIf the Expo app uses NativeWind-style `className`, pass\n`reactNativeClassName: true` in the plugin options.\n\nThe sidecar Metro config must watch the parent project so `tempo/` can import\nreal app components:\n\n```js\n// tempo/metro.config.js\nconst path = require(\"node:path\");\nconst { getDefaultConfig } = require(\"expo/metro-config\");\n\nconst projectRoot = __dirname;\nconst workspaceRoot = path.resolve(projectRoot, \"..\");\nconst sidecarNodeModules = path.join(projectRoot, \"node_modules\");\n\nconst config = getDefaultConfig(projectRoot);\nconst sidecarModule = (moduleName) =>\n  path.join(sidecarNodeModules, ...moduleName.split(\"/\"));\nconst singletonModules = {\n  react: sidecarModule(\"react\"),\n  \"react-dom\": sidecarModule(\"react-dom\"),\n  \"react-native\": sidecarModule(\"react-native\"),\n  \"react-native-web\": sidecarModule(\"react-native-web\"),\n  \"react/jsx-runtime\": sidecarModule(\"react/jsx-runtime.js\"),\n  \"react/jsx-dev-runtime\": sidecarModule(\"react/jsx-dev-runtime.js\"),\n};\n\nconfig.watchFolders = Array.from(\n  new Set([...(config.watchFolders ?? []), workspaceRoot]),\n);\nconfig.resolver.nodeModulesPaths = Array.from(\n  new Set([\n    sidecarNodeModules,\n    path.join(workspaceRoot, \"node_modules\"),\n    ...(config.resolver.nodeModulesPaths ?? []),\n  ]),\n);\nconfig.resolver.disableHierarchicalLookup = true;\nconfig.resolver.extraNodeModules = {\n  ...(config.resolver.extraNodeModules ?? {}),\n  ...singletonModules,\n};\nconfig.resolver.alias = {\n  ...(config.resolver.alias ?? {}),\n  ...singletonModules,\n};\n\nmodule.exports = config;\n```\n\nThose singleton aliases are important for sidecar Expo projects. Without them,\nMetro can resolve React Native files imported from the parent app against the\nparent app's `node_modules` while the sidecar resolves its own runtime against\n`tempo/node_modules`, which can produce duplicate React instances and invalid\nhook-call failures.\n\nLaunch Expo web with `TEMPO=true`:\n\n```bash\nTEMPO=true npx expo start --web\n```\n\nTempo discovers the printed local URL and probes `/tempo-host`; no fixed port is\nrequired.\n\n---\n\n## How it works\n\nThe Next.js plugin is a webpack-compatible loader (`nextjs-loader.cjs`) plus a\nhigher-order config wrapper (`tempoNextjsPlugin`) that registers the loader for\nboth Webpack and Turbopack from a single user-facing entrypoint.\n\nThe flow per source file:\n\n1. Resource gating — `.tsx`/`.jsx` only, exclude `node_modules`, require\n   `process.env.TEMPO`.\n2. Read mtime via `fs.statSync`.\n3. Compute project-relative filepath via `path.relative(rootContext, …)`.\n4. Call `annotateFile` from `@modules/annotation` with a callback that returns\n   the `data-tempo-*` props for each JSX element. The walker visits every\n   `JSXElement`, fragments are skipped, and props are inserted as JSX\n   attribute strings at the end of each opening tag.\n5. If the file contains an intrinsic JSX `<head>`, splice\n   `<meta name=\"tempo-project-root\" content=\"…\" />` into the post-annotation\n   source. The injected meta does not itself carry `data-tempo-*` attrs (it has\n   no source location), which keeps every other element's `data-tempo-position`\n   pointing at the byte offset of `<` in the on-disk source file.\n6. Return the annotated source. Errors at any step cause the loader to return\n   the original source unchanged — `correct or untouched, always`.\n\nThe `tempoNextjsPlugin` wrapper:\n\n- Adds an `enforce: \"pre\"` rule under `config.module.rules` for Webpack\n  (`/.(tsx|jsx)$/`).\n- Adds a `*.{tsx,jsx}` rule under `nextConfig.turbopack.rules` for Turbopack\n  with `condition: { all: [{ not: \"foreign\" }, \"development\"] }` (excludes\n  node_modules / Next internals AND production builds).\n- Chains an existing user-supplied `webpack(config, options)` function and\n  merges with any existing `turbopack.rules` so other plugins are preserved.\n- No-ops entirely when `process.env.TEMPO` is not set.\n\nSee `SPEC_NEXTJS.md` for the complete design specification.\n\n---\n\n## Demo\n\n```bash\npnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev          # Turbopack on :3477\npnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev:webpack  # Webpack on :3478\n```\n\nThen:\n\n```bash\ncurl -s localhost:3477/ | grep -oE 'data-tempo-filepath=\"[^\"]+\"' | sort -u\n```\n\nShould print one line per source file rendered on the home page.\n\n---\n\n## Tests\n\n```bash\npnpm test                       # all 308 tests across both plugins\npnpm test:nextjs                # 175 Next.js tests (~24s)\npnpm test:nextjs:unit           # fast unit tests, no servers\npnpm test:nextjs:integration    # live `next dev` against demo (Turbopack + Webpack)\npnpm test:nextjs:production     # `next build` correctness (no annotations in prod)\n```\n\nTest layers:\n\n| File | Tests | Coverage |\n|---|---|---|\n| `nextjs-loader.test.ts` | 41 | Loader function — file filtering, default strategy, auto-inject, error handling |\n| `nextjs-wrapper.test.ts` | 26 | `tempoNextjsPlugin` — webpack chaining, turbopack merging, version detection, options |\n| `nextjs-fixtures.test.ts` | 40 | Project shapes — App/Pages Router, server/client components, all routing types |\n| `nextjs-published.test.ts` | 14 | Built `dist/*.cjs` and `dist/*.js` — CJS callable, ESM imports, parity |\n| `nextjs-production.test.ts` | 6 | `next build` produces zero `data-tempo-*` attributes |\n| `nextjs-e2e-correctness.test.ts` | — | Live `next dev` against demo (both bundlers); every recorded `data-tempo-position` actually points at `<` in the on-disk source file |\n\n---\n\n## Related docs\n\n- `SPEC.md` — Vite plugin specification\n- `SPEC_NEXTJS.md` — Next.js plugin specification\n- `SPEC_TSC.md` — TypeScript type-analyzer (used by both plugins for `data-tempo-supports-*`)\n","readmeFilename":"README.md"}