{"_id":"@ablogcms/events","_rev":"8-b619e730827c6156a53cc9833893c8a8","name":"@ablogcms/events","dist-tags":{"beta":"3.2.28-beta.0","latest":"3.2.35"},"versions":{"3.2.28-beta.0":{"name":"@ablogcms/events","version":"3.2.28-beta.0","license":"MIT","_id":"@ablogcms/events@3.2.28-beta.0","maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"info@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"homepage":"https://www.a-blogcms.jp","dist":{"shasum":"bf2deec6e40bdf523512726a78911963c29a7aba","tarball":"https://registry.npmjs.org/@ablogcms/events/-/events-3.2.28-beta.0.tgz","fileCount":15,"integrity":"sha512-8lghVf0CegvLPKPP7eKhMJx2mBmnPDwcc1htSW+U3UTfSdnsusfd3wz2Tr4NpaC9jHi8hejLwZT3zIaBgC8g9A==","signatures":[{"sig":"MEYCIQCO3l5ks3Fm1WvgbUqeK/ONgt4nhU6x/193PHK3aPyghwIhAMZYpNPMsz1dD6RgTBXEcpKW/0cB6pdm9BfeFYxwreWx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44089},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./acms":{"types":"./dist/acms.d.ts","import":"./dist/acms.mjs","default":"./dist/acms.mjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs","default":"./dist/core/index.mjs"}},"scripts":{"build":"node ../../../tools/build-package.mjs"},"_npmUser":{"name":"appleple-bot","email":"info@appleple.com"},"repository":{"url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","type":"git","directory":"packages/frontend/events"},"description":"管理画面 JS 拡張基盤の型付きイベントバス","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@ablogcms/types":"3.2.28-beta.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/events_3.2.28-beta.0_1785736905696_0.09237665029091979","host":"s3://npm-registry-packages-npm-production"}},"3.2.29":{"name":"@ablogcms/events","version":"3.2.29","license":"MIT","_id":"@ablogcms/events@3.2.29","maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"info@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"homepage":"https://www.a-blogcms.jp","dist":{"shasum":"2e79c9239cac1d08f1fc0d0ca82b145c5fb4d2d5","tarball":"https://registry.npmjs.org/@ablogcms/events/-/events-3.2.29.tgz","fileCount":15,"integrity":"sha512-zQn+hikwypaesz2mH5Z7Wvajf+r5um2w76Dr5EdYXzI7h8PJO7Ge0hO+zYkQ5ZyzM/ah9ndaqRW1LfOvuxD9hg==","signatures":[{"sig":"MEYCIQConM1giUI7yfb3EEbdApjc8N8RD0x6c9iF14WaXk7oNgIhAJj5/JzcKW9kmC1G4xyi78g3pEYnGDuIEM9Z7+1DA+zo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44080},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./acms":{"types":"./dist/acms.d.ts","import":"./dist/acms.mjs","default":"./dist/acms.mjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs","default":"./dist/core/index.mjs"}},"scripts":{"build":"node ../../../tools/build-package.mjs"},"_npmUser":{"name":"CircleCI","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"circleci","oidcConfigId":"oidc:4cefa649-cb8f-4b70-977d-fb6fea48db97"}},"repository":{"url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","type":"git","directory":"packages/frontend/events"},"description":"Typed event bus for the a-blog cms admin JS extension platform","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@ablogcms/types":"3.2.29"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/events_3.2.29_1787663630230_0.7925863566934255","host":"s3://npm-registry-packages-npm-production"}},"3.2.30":{"name":"@ablogcms/events","version":"3.2.30","license":"MIT","_id":"@ablogcms/events@3.2.30","maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"info@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"homepage":"https://www.a-blogcms.jp","dist":{"shasum":"6deccdf9ae16572079c5feb5e17f2cfcee26782f","tarball":"https://registry.npmjs.org/@ablogcms/events/-/events-3.2.30.tgz","fileCount":15,"integrity":"sha512-Ml9tdIjpfqPa5EG58IFejw+8mzBbi4ULR1AEhEHuVzp9382UdLsMwZTvcObk0ZsOL/PqOu/88xRoOBNcnmA0aQ==","signatures":[{"sig":"MEUCIFZORUvHfbHjWkMqG9nVYeYxu70AFGJlDv3xD4G15GSNAiEAv/KZ36Y4NMzzohSt71j/p47PAf9qXCNLRxAs89Yf4lU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44080},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./acms":{"types":"./dist/acms.d.ts","import":"./dist/acms.mjs","default":"./dist/acms.mjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs","default":"./dist/core/index.mjs"}},"scripts":{"build":"node ../../../tools/build-package.mjs"},"_npmUser":{"name":"CircleCI","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"circleci","oidcConfigId":"oidc:4cefa649-cb8f-4b70-977d-fb6fea48db97"}},"repository":{"url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","type":"git","directory":"packages/frontend/events"},"description":"Typed event bus for the a-blog cms admin JS extension platform","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@ablogcms/types":"3.2.30"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/events_3.2.30_1788351059470_0.7680143639386601","host":"s3://npm-registry-packages-npm-production"}},"3.2.31":{"name":"@ablogcms/events","version":"3.2.31","license":"MIT","_id":"@ablogcms/events@3.2.31","maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"info@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"homepage":"https://www.a-blogcms.jp","dist":{"shasum":"cac97fc45713fbd823f0bbe9a6efffa552caafff","tarball":"https://registry.npmjs.org/@ablogcms/events/-/events-3.2.31.tgz","fileCount":15,"integrity":"sha512-p99GUJ/wFSv9rQKIZ0kraHcfaiz2+GmCuyIKVGmXJE2A9MDShZZPMyMzYx0eWxycM5tbjGp587i/WEJM1ejxgw==","signatures":[{"sig":"MEQCIGMiuuWkKVVXhZoDJZ06wQRIfswvJuqLe06dS+PCRTLeAiBNfIkSSH/akqbn6g9aPWIRyY65tHdf3gVqCoYhsd5CAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44080},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./acms":{"types":"./dist/acms.d.ts","import":"./dist/acms.mjs","default":"./dist/acms.mjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs","default":"./dist/core/index.mjs"}},"scripts":{"build":"node ../../../tools/build-package.mjs"},"_npmUser":{"name":"CircleCI","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"circleci","oidcConfigId":"oidc:4cefa649-cb8f-4b70-977d-fb6fea48db97"}},"repository":{"url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","type":"git","directory":"packages/frontend/events"},"description":"Typed event bus for the a-blog cms admin JS extension platform","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@ablogcms/types":"3.2.31"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/events_3.2.31_1788356983842_0.9801869442260314","host":"s3://npm-registry-packages-npm-production"}},"3.2.32":{"name":"@ablogcms/events","version":"3.2.32","license":"MIT","_id":"@ablogcms/events@3.2.32","maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"info@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"homepage":"https://www.a-blogcms.jp","dist":{"shasum":"7975d8f0387fb10dc18e606aae2e9e873f3a6510","tarball":"https://registry.npmjs.org/@ablogcms/events/-/events-3.2.32.tgz","fileCount":15,"integrity":"sha512-cjc6uYpHH7KUZ9EEi2KO8t9jOfG9tKdAG1+yeHX9klKVTmAaHLU9KKP+Qb3qIauiWd5flhqSPprU1mvE0TvfBA==","signatures":[{"sig":"MEUCIQCnffmjEy1ELYhaytKukUPebsHjfydObp/066EeUBzRlQIgfGXEtSrMsqPSRKBMNIrAqqIXDjbIEzbbvjhN927OAKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44080},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./acms":{"types":"./dist/acms.d.ts","import":"./dist/acms.mjs","default":"./dist/acms.mjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs","default":"./dist/core/index.mjs"}},"scripts":{"build":"node ../../../tools/build-package.mjs"},"_npmUser":{"name":"CircleCI","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"circleci","oidcConfigId":"oidc:4cefa649-cb8f-4b70-977d-fb6fea48db97"}},"repository":{"url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","type":"git","directory":"packages/frontend/events"},"description":"Typed event bus for the a-blog cms admin JS extension platform","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@ablogcms/types":"3.2.32"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/events_3.2.32_1788397381809_0.10789473598630228","host":"s3://npm-registry-packages-npm-production"}},"3.2.33":{"name":"@ablogcms/events","version":"3.2.33","license":"MIT","_id":"@ablogcms/events@3.2.33","maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"cms-developers@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"homepage":"https://www.a-blogcms.jp","dist":{"shasum":"65ba2fc0e7a5bc5acda6fc5084df7bf6805d6da5","tarball":"https://registry.npmjs.org/@ablogcms/events/-/events-3.2.33.tgz","fileCount":13,"integrity":"sha512-JHGewonOD+KS6aBBNFb22bI4tUryN1BQovEM2zPH3UblYg3/9YBYfybSVpVkE7HRI3MxLSVvg8NMYUHpH8p0Vg==","signatures":[{"sig":"MEQCIHKxaq4Zg1JMpQCOIFMKkyn2D+0QYdyI/uzi3nn3j2p2AiAIv2KUOsdBng6oGh4CT66J6YOSxiyjbmS7hYA5OFW3LQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33040},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./acms":{"types":"./dist/acms.d.ts","import":"./dist/acms.mjs","default":"./dist/acms.mjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs","default":"./dist/core/index.mjs"}},"scripts":{"build":"node ../../../tools/build-package.mjs"},"_npmUser":{"name":"CircleCI","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"circleci","oidcConfigId":"oidc:4cefa649-cb8f-4b70-977d-fb6fea48db97"}},"repository":{"url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","type":"git","directory":"packages/frontend/events"},"description":"Typed event bus for the a-blog cms admin JS extension platform","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@ablogcms/types":"3.2.33"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/events_3.2.33_1788779697428_0.33833966272909466","host":"s3://npm-registry-packages-npm-production"}},"3.2.34":{"name":"@ablogcms/events","version":"3.2.34","license":"MIT","_id":"@ablogcms/events@3.2.34","maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"cms-developers@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"homepage":"https://www.a-blogcms.jp","dist":{"shasum":"4651ad97478a45c3acf709d64193e07fced6b549","tarball":"https://registry.npmjs.org/@ablogcms/events/-/events-3.2.34.tgz","fileCount":13,"integrity":"sha512-YxqSIllW2NzWHgMCZv3UNxEXeh0aG8fub21wq3kNct0nxZDduK782mZwspqa4h/VpRhEaDqa5KMbWFVu1xY2Ag==","signatures":[{"sig":"MEUCIQDozh+zgyarne31eCLAKnHq7yfNpgB5XM9ciUVlcGS+xQIgXEj5tyICY3cAeeM8WtW7P9vJyWTq2rRz/M7lmsHRDuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33040},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./acms":{"types":"./dist/acms.d.ts","import":"./dist/acms.mjs","default":"./dist/acms.mjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs","default":"./dist/core/index.mjs"}},"scripts":{"build":"node ../../../tools/build-package.mjs"},"_npmUser":{"name":"CircleCI","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"circleci","oidcConfigId":"oidc:4cefa649-cb8f-4b70-977d-fb6fea48db97"}},"repository":{"url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","type":"git","directory":"packages/frontend/events"},"description":"Typed event bus for the a-blog cms admin JS extension platform","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@ablogcms/types":"3.2.34"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/events_3.2.34_1788930752721_0.7524169820888578","host":"s3://npm-registry-packages-npm-production"}},"3.2.35":{"name":"@ablogcms/events","version":"3.2.35","type":"module","description":"Typed event bus for the a-blog cms admin JS extension platform","license":"MIT","homepage":"https://www.a-blogcms.jp","repository":{"type":"git","url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","directory":"packages/frontend/events"},"sideEffects":false,"dependencies":{"@ablogcms/types":"3.2.35"},"devDependencies":{"@types/node":"^24.6.1","vitest":"^4.1.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./acms":{"types":"./dist/acms.d.ts","import":"./dist/acms.mjs","default":"./dist/acms.mjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs","default":"./dist/core/index.mjs"}},"publishConfig":{"access":"public"},"scripts":{"build":"node ../../../tools/build-package.mjs"},"_nodeVersion":"24.15.0","_id":"@ablogcms/events@3.2.35","dist":{"integrity":"sha512-cWV5z2IdXqsx0Yh0LhkDpyZvAbGAdAxdY/fSBzQQPZ60gks9BUXknB8us4DrrnmAvrXNqbRaX8IjDScYVY1DsA==","shasum":"d99813fd9870772889ebd537fa7822278b25ebdd","tarball":"https://registry.npmjs.org/@ablogcms/events/-/events-3.2.35.tgz","fileCount":13,"unpackedSize":33040,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDA7/VXBrICP48cTgKw768uJ3pUkGMv+XhotWGRpD4brAiEAktlTXRrb5vHLV4wk2BZQQsGY2PFTOIxn90+OPUHhfxw="}]},"_npmUser":{"name":"CircleCI","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"circleci","oidcConfigId":"oidc:4cefa649-cb8f-4b70-977d-fb6fea48db97"}},"directories":{},"maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"cms-developers@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/events_3.2.35_1789112856184_0.14303449173602623"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-03T06:01:45.525Z","modified":"2026-09-11T07:47:36.544Z","3.2.28-beta.0":"2026-08-03T06:01:45.866Z","3.2.29":"2026-08-25T13:13:50.375Z","3.2.30":"2026-09-02T12:10:59.613Z","3.2.31":"2026-09-02T13:49:43.963Z","3.2.32":"2026-09-03T01:03:01.951Z","3.2.33":"2026-09-07T11:14:57.630Z","3.2.34":"2026-09-09T05:12:32.856Z","3.2.35":"2026-09-11T07:47:36.312Z"},"license":"MIT","homepage":"https://www.a-blogcms.jp","repository":{"type":"git","url":"git+ssh://git@bitbucket.org:appleple/ablogcms.git","directory":"packages/frontend/events"},"description":"Typed event bus for the a-blog cms admin JS extension platform","maintainers":[{"name":"ngtmtkyk","email":"nagatomi.takayuki81@gmail.com"},{"name":"kasaya-appleple","email":"kasaya@appleple.com"},{"name":"appleple-bot","email":"cms-developers@appleple.com"},{"name":"kazumich","email":"kazumich@appleple.com"},{"name":"atsu666","email":"ito@appleple.com"},{"name":"uidev1116","email":"uidev1116@gmail.com"},{"name":"sugar-appleple","email":"sugawara@appleple.com"}],"readme":"# @ablogcms/events\n\n管理画面 JS 拡張基盤の中核となる、型付きイベントバス（`ACMS.events`）を提供するパッケージ。\n\n拡張ポイントの一覧（イベント・Slot・レジストリの対応表）は [../plugins/HOOKS.md](../plugins/HOOKS.md) を参照。\n\n## 使い方\n\n```ts\ninterface AcmsEvents {\n  on<K extends AcmsEventType>(type: K | K[], handler: AcmsHandler<K>): Unsubscribe;\n  off<K extends AcmsEventType>(type: K, handler: AcmsHandler<K>): boolean;\n  emit<K extends AcmsEventType>(type: K, payload: AcmsPayload<K>): Promise<EmitResult<K>>;\n  cancel(reason?: string): CancelToken;\n  handlerCount(type: string): number;\n}\n```\n\n- `on(type | type[], handler)`: イベントを購読する。戻り値の関数で購読解除できる。\n- `off(type, handler)`: 指定したハンドラの購読を解除する。\n- `emit(type, payload)`: イベントを発火する。ゲートイベント（`*.before`）は全ハンドラを `await` し、\n  `{ canceled, reason?, error?, event }` を返す。`reason` はビジネスキャンセルの理由（`cancel(reason)`\n  経由のみ）、`error` はハンドラが throw / reject した場合の生例外。\n- `cancel(reason?)`: ゲートハンドラから返すキャンセルトークンを生成する。理由なしキャンセルは\n  `return false` を使う。\n- `handlerCount(type)`: 登録ハンドラ数を返す。\n\n### 4つの意味論\n\nイベント名が `{domain}.{action}.before` の形（ゲート）かどうかで挙動が変わる。\n\n```ts\n// 通知: 購読するだけ。戻り値は無視される\nACMS.events.on('media.upload.success', (event) => console.log(event.items));\n\n// 値変更: event を書き換えて return すると次のハンドラ・コアへ反映される\nACMS.events.on('media.upload.before', (event) => ({ ...event, files: event.files.filter((f) => f.size < LIMIT) }));\n\n// キャンセル: return false（理由なし）、または ACMS.events.cancel(reason) を return（理由あり）\nACMS.events.on('media.upload.before', (event) => (event.files.length === 0 ? ACMS.events.cancel('ファイルが空です') : undefined));\n\n// 非同期ゲート: Promise を返すとバスが解決を待つ\nACMS.events.on('media.upload.before', async (event) => ((await confirm()) ? event : false));\n```\n\n`event.error` にメッセージを設定して return する旧方式は廃止した（正常系の判断であるキャンセルと、\n異常系のハンドラ例外が 1 つのプロパティに混線していたため）。`cancel(reason)` は `unique symbol` で\nブランド化された名目的型のトークンを返すため、`{ reason: '...' }` のようなプレーンオブジェクトを\nそのまま return してもキャンセル扱いにはならない。\n\n### 型付け\n\nイベント名 → ペイロード型は module augmentation で宣言する。\n\n```ts\ndeclare module '@ablogcms/events' {\n  interface AcmsEventMap {\n    'media.upload.before': AcmsGateEvent<{ files: File[] }>;\n    'media.upload.success': AcmsNotifyEvent<{ items: MediaItem[] }>;\n  }\n}\n```\n\n### 2つのエントリ\n\n| エントリ | 内容 |\n|---|---|\n| `@ablogcms/events` | `window.ACMS.events` へのグローバル委譲ファサード |\n| `@ablogcms/events/core` | `createEventBus()` の純粋実装（グローバル非依存。ユニットテストに便利） |\n","readmeFilename":""}