{"_id":"@astronomer-app/signals","_rev":"4-5362addb012cad3c511e4f7878ea4110","name":"@astronomer-app/signals","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.0":{"name":"@astronomer-app/signals","version":"0.0.0","keywords":["astronomer","signals","polling","trading"],"license":"UNLICENSED","_id":"@astronomer-app/signals@0.0.0","maintainers":[{"name":"astronomer_app","email":"support@astronomerapp.com"}],"dist":{"shasum":"cc4a64b7d587fd731d46d85e19cf61a646cdb529","tarball":"https://registry.npmjs.org/@astronomer-app/signals/-/signals-0.0.0.tgz","fileCount":11,"integrity":"sha512-+t/ghiCSt71uyja5AiRkfkz94NUJNE8oUjI9Y31c3RzBz2cJcdlrjY+oNlJebfjGqDoO/PiFF6eOT6CAAau7+Q==","signatures":[{"sig":"MEYCIQDhqIKuTBoDmL3qjCEUYRWbBZfZoZ94rg7NdA5G2hjP8wIhAND20MQ0IsEhu7aKZogFy1JQvX9VOUPD29acbpc4EDKB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12265},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b302d1ac2bc0155168dd63ad69db0e4cc741c2e0","scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","example:listen":"npm run build && node examples/listen.mjs"},"_npmUser":{"name":"astronomer_app","email":"support@astronomerapp.com"},"_npmVersion":"10.9.2","description":"TypeScript client for Astronomer Signal Stream.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signals_0.0.0_1781392112470_0.26972198443491746","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@astronomer-app/signals","version":"0.0.1","keywords":["astronomer","signals","polling","trading"],"license":"UNLICENSED","_id":"@astronomer-app/signals@0.0.1","maintainers":[{"name":"astronomer_app","email":"support@astronomerapp.com"}],"dist":{"shasum":"b541a253e6f2b557c5c32f15a7dce837fb545c21","tarball":"https://registry.npmjs.org/@astronomer-app/signals/-/signals-0.0.1.tgz","fileCount":11,"integrity":"sha512-kbZB6QS84Po5ucohtau6OhTx5tPAbVcfjeljnWtK9dCcd4dIzlXvxRuGyM2udZDypkQo72xwtJsK2pXoq6bxxA==","signatures":[{"sig":"MEUCIAstYRIoZXkbPK/feZuqjcd1mV4regMSFbm+rL7Hl5F3AiEA/kTvoNug0AVynpczqmSJcsCghFE/bRNJB7QjcHGlZuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12084},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b302d1ac2bc0155168dd63ad69db0e4cc741c2e0","scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","example:listen":"npm run build && node examples/listen.mjs"},"_npmUser":{"name":"astronomer_app","email":"support@astronomerapp.com"},"_npmVersion":"10.9.2","description":"TypeScript client for Astronomer Signal Stream.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signals_0.0.1_1781392349156_0.6744654618382184","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@astronomer-app/signals","version":"0.0.2","keywords":["astronomer","signals","polling","trading"],"license":"UNLICENSED","_id":"@astronomer-app/signals@0.0.2","maintainers":[{"name":"astronomer_app","email":"support@astronomerapp.com"}],"dist":{"shasum":"1a060ae6369db2a890d86e613db7f3dfdd0e9ae0","tarball":"https://registry.npmjs.org/@astronomer-app/signals/-/signals-0.0.2.tgz","fileCount":8,"integrity":"sha512-oOqWYR2W6c4iPGXbG9t/wnOyduScAzWpaDccZP9nurkEv/z818vqj2E8Is2gWHCxyH1Ttzg4kAlNvG1s7TIrcA==","signatures":[{"sig":"MEQCIDflWeYonrgbXkFJ2774AFlhJhqzrKLR73cwaH4hmg22AiBCihFC+fEGrBb0gZSE/rpnYCkIT5ATMVtYs2Xal90mGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10624},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b302d1ac2bc0155168dd63ad69db0e4cc741c2e0","scripts":{"build":"tsc -p tsconfig.json","prebuild":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","example:listen":"npm run build && node examples/listen.mjs"},"_npmUser":{"name":"astronomer_app","email":"support@astronomerapp.com"},"_npmVersion":"10.9.2","description":"TypeScript client for Astronomer Signal Stream.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signals_0.0.2_1781392406466_0.8593203779779848","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@astronomer-app/signals","version":"0.0.3","description":"TypeScript client for Astronomer Signal Stream.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"clean":"rm -rf dist","prebuild":"npm run clean","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build","example:listen":"npm run build && node examples/listen.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"publishConfig":{"access":"public"},"keywords":["astronomer","signals","polling","trading"],"license":"UNLICENSED","sideEffects":false,"engines":{"node":">=18"},"_id":"@astronomer-app/signals@0.0.3","gitHead":"9902b60d0cd54c18892dd54b764416b640980c38","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-cXO6fC5WLPtxb2bAdBqiHPK+9U4TX2AoWv9090SeenEC9fFAi7caW3DjtwMgEFKYPycs1RL0JYJXrGhT46xkdQ==","shasum":"8a76089d19c9f3fdf9be75e8ae9ccc88baeec94a","tarball":"https://registry.npmjs.org/@astronomer-app/signals/-/signals-0.0.3.tgz","fileCount":8,"unpackedSize":11381,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDSvngtTf9xMTHvhHsMrL77CYiq2WJZL9aLlVtmS9YFYAIgWkv47ev6E2D90sEyOH5bH3OqoAT5t6wPx5e/mS1TFUQ="}]},"_npmUser":{"name":"astronomer_app","email":"support@astronomerapp.com"},"directories":{},"maintainers":[{"name":"astronomer_app","email":"support@astronomerapp.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signals_0.0.3_1782599392338_0.21807645869356262"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-13T23:08:32.298Z","modified":"2026-06-27T22:29:52.601Z","0.0.0":"2026-06-13T23:08:32.587Z","0.0.1":"2026-06-13T23:12:29.308Z","0.0.2":"2026-06-13T23:13:26.613Z","0.0.3":"2026-06-27T22:29:52.478Z"},"license":"UNLICENSED","keywords":["astronomer","signals","polling","trading"],"description":"TypeScript client for Astronomer Signal Stream.","maintainers":[{"name":"astronomer_app","email":"support@astronomerapp.com"}],"readme":"# @astronomer-app/signals\n\nTypeScript client for Astronomer Signal Stream.\n\nSignal Stream delivers live signal events while a listener is running. The SDK\npolls a short-lived JSON endpoint with a cursor, so it works reliably on\nserverless hosting while still exposing a simple `listen()` API. A new process\nstarts from the latest signal cursor and does not replay historical events.\n\n## Install\n\n```bash\nnpm install @astronomer-app/signals\n```\n\n## Listen For Signals\n\n```ts\nimport { AstronomerSignals } from '@astronomer-app/signals';\n\nconst client = new AstronomerSignals({\n  apiKey: process.env.ASTRONOMER_SIGNAL_STREAM_KEY!,\n});\n\nconst listener = client.signals.listen({\n  onSignal(signal) {\n    console.log('New signal:', signal);\n  },\n  onError(error) {\n    console.error(error);\n  },\n});\n\n// later\nawait listener.close();\n```\n\n## Signal Shape\n\n`onSignal` receives a `SignalEvent`:\n\n```ts\ninterface SignalEvent {\n  type: 'signal.created';\n  createdAt: string;\n  signal: {\n    id: string;\n    symbol: string;\n    optionType: 'C' | 'P';\n    strikePrice: number;\n    expirationDate: string; // ISO date, e.g. \"2026-06-18\"\n  };\n}\n```\n\n```json\n{\n  \"type\": \"signal.created\",\n  \"createdAt\": \"2026-06-18T11:00:00\",\n  \"signal\": {\n    \"id\": \"209\",\n    \"symbol\": \"SPY\",\n    \"optionType\": \"C\",\n    \"strikePrice\": 746,\n    \"expirationDate\": \"2026-06-18\"\n  }\n}\n```\n\nThe `symbol`, `optionType`, `strikePrice`, and `expirationDate` fields fully\nspecify a single option contract.\n\nSignal Stream is active during the live signal window from 9:30 AM to 3:00 PM\nEastern Time, Monday through Friday.\n\n## Local Example\n\nAfter building the package, run the listener example with a Signal Stream key:\n\n```bash\nASTRONOMER_SIGNAL_STREAM_KEY=ast_live_... npm --workspace @astronomer-app/signals run example:listen\n```\n\nFor local app testing, pass a custom base URL:\n\n```bash\nASTRONOMER_SIGNAL_STREAM_KEY=ast_live_... \\\nASTRONOMER_SIGNAL_STREAM_BASE_URL=http://localhost:4200 \\\nnpm --workspace @astronomer-app/signals run example:listen\n```\n","readmeFilename":"README.md"}