{"_id":"@amateras/signal","_rev":"7-34eef7b33cdc70aa5c8716d638edc7e9","name":"@amateras/signal","dist-tags":{"beta":"0.0.2-beta.1","latest":"0.1.3"},"versions":{"0.0.1":{"name":"@amateras/signal","version":"0.0.1","_id":"@amateras/signal@0.0.1","maintainers":[{"name":"defaultkavy","email":"defaultkavy@gmail.com"}],"dist":{"shasum":"d8110c1e663cd9a0a5e2bf073f52c49687260117","tarball":"https://registry.npmjs.org/@amateras/signal/-/signal-0.0.1.tgz","fileCount":5,"integrity":"sha512-oR5pJ6ucTKf4407HiNoNagpT97sirS9oyF6WbXrqTM6dh83iIyzeFmh59ggoldvwtRAy7gzP0xaQzHdEuHu4EA==","signatures":[{"sig":"MEQCIHMGPtIQCETMeRrVy3+wR3XLcnjK30MQe4np7IbmYdJ6AiBGJ/eKbrqYUzQOmBOasTR67fOB0iW/kEG7A4oVGIK97w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12528},"exports":{".":"./src/index.ts"},"gitHead":"bed0a910f90367331b34b669f2202cf7003cb809","imports":{"#lib/*":"./src/lib/*.ts","#node/*":"./src/node/*.ts","#structure/*":"./src/structure/*.ts"},"_npmUser":{"name":"defaultkavy","email":"defaultkavy@gmail.com"},"_npmVersion":"11.17.0","description":"```ts import 'amateras'; import 'amateras/signal'; ```","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"peerDependencies":{"@amateras/core":"workspace:*","@amateras/utils":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/signal_0.0.1_1784386673912_0.9085280385940271","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.0":{"name":"@amateras/signal","version":"0.0.2-beta.0","_id":"@amateras/signal@0.0.2-beta.0","maintainers":[{"name":"defaultkavy","email":"defaultkavy@gmail.com"}],"dist":{"shasum":"c3930dbf496818b31da90ade16d6d10165c082b6","tarball":"https://registry.npmjs.org/@amateras/signal/-/signal-0.0.2-beta.0.tgz","fileCount":5,"integrity":"sha512-dPIfdakWS7n2EPtZWPRe1mEJyd/xND1Lx955DI8WBKHZ6eCHTqhhrj9F2vdKtYbkT/m4JBmz4gNrsOOL37OXKg==","signatures":[{"sig":"MEUCIQDqFAxlHfh39Ib6IEsYAzXjZbAunZ65nDvg2+jPF27owAIgE64L9Z8c2hboAHWRgesP9HsW1P6XtoeglKQGXmgrAoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12535},"exports":{".":"./src/index.ts"},"gitHead":"bed0a910f90367331b34b669f2202cf7003cb809","imports":{"#lib/*":"./src/lib/*.ts","#node/*":"./src/node/*.ts","#structure/*":"./src/structure/*.ts"},"_npmUser":{"name":"defaultkavy","email":"defaultkavy@gmail.com"},"_npmVersion":"11.17.0","description":"```ts import 'amateras'; import 'amateras/signal'; ```","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"@amateras/core":"workspace:*","@amateras/utils":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/signal_0.0.2-beta.0_1784389718887_0.7898160476820599","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.1":{"name":"@amateras/signal","version":"0.0.2-beta.1","_id":"@amateras/signal@0.0.2-beta.1","maintainers":[{"name":"defaultkavy","email":"defaultkavy@gmail.com"}],"dist":{"shasum":"10431a14a17197e987a459917e10f36830373cd0","tarball":"https://registry.npmjs.org/@amateras/signal/-/signal-0.0.2-beta.1.tgz","fileCount":5,"integrity":"sha512-zsnFCn/CWuZDfKfVv1a3Q++tOptq50GOgsAbgee5y7svpItlwek4DQPiyO8q1g6xLjpm1SiVScYPN+h9k2HdtA==","signatures":[{"sig":"MEYCIQCBGVEpuEifQfoWxk32z5Q8Jeo6042t9AM2Uocydo9lPAIhANLm/lS2yLeFvsa1obTN9Z3vbladhW3QL/f7+QLIZVSk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12536},"exports":{".":"./src/index.ts"},"imports":{"#lib/*":"./src/lib/*.ts","#node/*":"./src/node/*.ts","#structure/*":"./src/structure/*.ts"},"_npmUser":{"name":"defaultkavy","email":"defaultkavy@gmail.com"},"directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"peerDependencies":{"@amateras/core":"0.0.2-beta.1","@amateras/utils":"0.0.2-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/signal_0.0.2-beta.1_1784391467726_0.6920955536932483","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@amateras/signal","version":"0.1.0","_id":"@amateras/signal@0.1.0","maintainers":[{"name":"defaultkavy","email":"defaultkavy@gmail.com"}],"dist":{"shasum":"e41c78f723870713ea4fa77b16665a1dff556c1a","tarball":"https://registry.npmjs.org/@amateras/signal/-/signal-0.1.0.tgz","fileCount":5,"integrity":"sha512-ixyNx/NigWAywooBo6xkf6SPZZ53t2P9hQTiGrErJ/lAuluGFQvHivka326cUx9ZAprTS6+glA0Il0SirR6KKg==","signatures":[{"sig":"MEUCIQC4IGjjYV+8GKWQ8JvAlWrffQplHROju7E17JznX+Pq3AIgMAR7YmWEOMvVuTav4Bno7LvVgVr4q91Wqt8D1U/fzpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12517},"shasum":"e41c78f723870713ea4fa77b16665a1dff556c1a","exports":{".":"./src/index.ts"},"imports":{"#lib/*":"./src/lib/*.ts","#node/*":"./src/node/*.ts","#structure/*":"./src/structure/*.ts"},"_npmUser":{"name":"defaultkavy","email":"defaultkavy@gmail.com"},"_integrity":"sha512-ixyNx/NigWAywooBo6xkf6SPZZ53t2P9hQTiGrErJ/lAuluGFQvHivka326cUx9ZAprTS6+glA0Il0SirR6KKg==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"peerDependencies":{"@amateras/core":"0.17.0","@amateras/utils":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/signal_0.1.0_1787121998991_0.26565237715021905","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amateras/signal","version":"0.1.1","_id":"@amateras/signal@0.1.1","maintainers":[{"name":"defaultkavy","email":"defaultkavy@gmail.com"}],"dist":{"shasum":"3fb3ac700eaec2164b2fae1928181436562b612c","tarball":"https://registry.npmjs.org/@amateras/signal/-/signal-0.1.1.tgz","fileCount":5,"integrity":"sha512-1v8+B3fym8pgTztYsd30gvSCd9shbqngW8RNlz1RbCJpoMpBUj3FUKM5GG3LxYzakrxYT1+eXRkrmyrO4vEUiA==","signatures":[{"sig":"MEUCIG5Aq614+WN2UOWkeSDACrBnon7tsojsHVHpOFsRqdq7AiEAkM5eshV9PqmT54nCXrDP1F6OUNlOmQJKSm+5xT1Gjko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12540},"shasum":"3fb3ac700eaec2164b2fae1928181436562b612c","exports":{".":"./src/index.ts"},"imports":{"#lib/*":"./src/lib/*.ts","#node/*":"./src/node/*.ts","#structure/*":"./src/structure/*.ts"},"_npmUser":{"name":"defaultkavy","email":"defaultkavy@gmail.com"},"_integrity":"sha512-1v8+B3fym8pgTztYsd30gvSCd9shbqngW8RNlz1RbCJpoMpBUj3FUKM5GG3LxYzakrxYT1+eXRkrmyrO4vEUiA==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"peerDependencies":{"@amateras/core":"0.18.0","@amateras/utils":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/signal_0.1.1_1787626107360_0.20227603892213697","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@amateras/signal","version":"0.1.2","_id":"@amateras/signal@0.1.2","maintainers":[{"name":"defaultkavy","email":"defaultkavy@gmail.com"}],"dist":{"shasum":"ce341716df7043fe2f4306945b358af15d015acf","tarball":"https://registry.npmjs.org/@amateras/signal/-/signal-0.1.2.tgz","fileCount":5,"integrity":"sha512-fCjUtEbc00flW9x189gsEOszo4nN/8abOaw8DrNsAdEilXRyi+2dEiX0OtCjQ9V2yaU7FFCoC1DVztcwiMCS1g==","signatures":[{"sig":"MEUCIQD9IHkB6owTEEDSPGwvDWqhoxF6Hpy2jv6yblTXM+Ig0wIgZRrX7S5DAJRsXm7oue6/1JbLZPoyy8o4p2pafPABBdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12551},"exports":{".":"./src/index.ts"},"gitHead":"7853a8996536d86925da28f161d13a47afb777b3","imports":{"#lib/*":"./src/lib/*.ts","#node/*":"./src/node/*.ts","#structure/*":"./src/structure/*.ts"},"_npmUser":{"name":"defaultkavy","email":"defaultkavy@gmail.com"},"_npmVersion":"10.9.8","description":"```ts import 'amateras'; import 'amateras/signal'; ```","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"peerDependencies":{"@amateras/core":"workspace:*","@amateras/utils":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/signal_0.1.2_1788065281355_0.8078955359144704","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@amateras/signal","peerDependencies":{"@amateras/core":"0.18.2","@amateras/utils":"0.1.2"},"imports":{"#structure/*":"./src/structure/*.ts","#lib/*":"./src/lib/*.ts","#node/*":"./src/node/*.ts"},"exports":{".":"./src/index.ts"},"version":"0.1.3","_id":"@amateras/signal@0.1.3","_integrity":"sha512-ktFSF9QptR/YsmFNe/RmxWRZ2S4YLV9dIK293NAptFq+qWaSPZHheczB3+mB3kBrY9v9iYOvsK+HSVWTdpa4Yg==","_nodeVersion":"26.3.0","_npmVersion":"10.8.3","shasum":"236aded8f95d9b87b31a38c65bb9cf87e24cfdeb","dist":{"integrity":"sha512-ktFSF9QptR/YsmFNe/RmxWRZ2S4YLV9dIK293NAptFq+qWaSPZHheczB3+mB3kBrY9v9iYOvsK+HSVWTdpa4Yg==","shasum":"236aded8f95d9b87b31a38c65bb9cf87e24cfdeb","tarball":"https://registry.npmjs.org/@amateras/signal/-/signal-0.1.3.tgz","fileCount":5,"unpackedSize":12540,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB+ELkqP4uEHyyZ9DgFpdfOhFc99d9YnZ20dEmtY2NISAiEAgwML0LwcmczM62ZWXnPYNE1qP6D2zIYEGkjW2eGdYYc="}]},"_npmUser":{"name":"defaultkavy","email":"defaultkavy@gmail.com"},"directories":{},"maintainers":[{"name":"defaultkavy","email":"defaultkavy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signal_0.1.3_1788065996920_0.05345598971919263"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-18T14:57:53.798Z","modified":"2026-08-30T04:59:57.212Z","0.0.1":"2026-07-18T14:57:54.065Z","0.0.2-beta.0":"2026-07-18T15:48:39.038Z","0.0.2-beta.1":"2026-07-18T16:17:47.862Z","0.1.0":"2026-08-19T06:46:39.166Z","0.1.1":"2026-08-25T02:48:27.513Z","0.1.2":"2026-08-30T04:48:01.503Z","0.1.3":"2026-08-30T04:59:57.055Z"},"maintainers":[{"name":"defaultkavy","email":"defaultkavy@gmail.com"}],"readme":"# amateras/signal\n\n## Import\n```ts\nimport 'amateras';\nimport 'amateras/signal';\n```\n\n## Read and Write\n```ts\nconst number$ = $.signal(0);\nconst string$ = $.singal('');\nconst boolean$ = $.signal(false);\nconst object$ = $.signal({ number: 1 });\n\n// write value\nnumber$.set(42);\nstring$.set('New Content');\nboolean$.set(true);\nobject$.set({ number: 42 });\n\n// read value\nnumber$(); // 42\nstring$(); // 'New Content'\nboolean$(); // true\nobject$(); // { number: 42 }\n```\n\n## Set as Attribute Value\n```ts\nconst src$ = $.signal('/image-1.png');\n\n$('div', $$ => {\n    // you can set signal variable in attribute\n    $('img', { src: src$ }),\n\n    $('button', $$ => {\n        $$.on('click', () => src$.set('/image-2.png'))\n        $`Change Image`\n    })\n})\n```\n\n## Signal Object\n```ts\nconst user$ = $.signal({\n    name: 'Amateras',\n    age: 16,\n    avatar: {\n        url: '/amateras/avatar.png',\n        size: '350x350'\n    }\n})\n\nuser$.name$() // \"Amateras\"\nuser$.age$() // 16\nuser$.avatar$.url() // \"/amateras/avatar.png\"\n```\n\n## Compute and Effect\n```ts\nconst count$ = $.signal(0);\nconst double$ = $.compute(() => count$() + 1);\n\n$.effect(() => {\n    console.log(`Count is ${count$()}`)\n})\n\n$('button', $$ => {\n    $$.on('click', () => count$.set(value => value + 1))\n    $`You have clicked this button in half of ${double$} times.`\n})\n```","readmeFilename":"README.md"}