{"_id":"@deepxx/stock-tracker-sdk","_rev":"2-6462cbb13c6a1d26543a5c76d9626224","name":"@deepxx/stock-tracker-sdk","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@deepxx/stock-tracker-sdk","version":"0.1.0","keywords":["stock","market-data","ohlcv","kline","typescript"],"license":"UNLICENSED","_id":"@deepxx/stock-tracker-sdk@0.1.0","maintainers":[{"name":"xujiangping","email":"xujiangpingtdb@icloud.com"}],"dist":{"shasum":"a98227273b6f4d50ac2830de57683d096b983ac9","tarball":"https://registry.npmjs.org/@deepxx/stock-tracker-sdk/-/stock-tracker-sdk-0.1.0.tgz","fileCount":34,"integrity":"sha512-atlmMi8gXSO9dmeLKjLZwkbexWQE4EaT1OuEXh2zjzgKmjY5nlaX2jnIWUgHSoKbFFWaSUrDa7TXANOqzWjFgg==","signatures":[{"sig":"MEUCIQDJfQY5cmgX5Oi3FWN5Z25N5Vct+MPUHqmRH5HWz7ZuIwIgd+XKEDpkQR5utr/jsrss3PaVNcRybZakiqTqhV8/UgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56621},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"682c99a710f7bdf8be9d3c4bb7f49e6f7d6df7c3","scripts":{"test":"pnpm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","prepack":"pnpm run build","pack:check":"npm pack --dry-run --cache ./node_modules/.cache/npm","prepublishOnly":"pnpm run test","publish:public":"npm publish --access public --cache ./node_modules/.cache/npm"},"_npmUser":{"name":"xujiangping","email":"xujiangpingtdb@icloud.com"},"_npmVersion":"10.8.2","description":"A provider-agnostic TypeScript SDK for tracking detailed single-stock market data.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/stock-tracker-sdk_0.1.0_1787637535808_0.39455647085325096","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@deepxx/stock-tracker-sdk","version":"0.1.1","type":"module","description":"A provider-agnostic TypeScript SDK for tracking detailed single-stock market data.","license":"UNLICENSED","sideEffects":false,"keywords":["stock","market-data","ohlcv","kline","typescript"],"engines":{"node":">=18"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","test":"pnpm run build && node --test test/*.test.mjs","pack:check":"npm pack --dry-run --cache ./node_modules/.cache/npm","publish:public":"npm publish --access public --cache ./node_modules/.cache/npm","prepack":"pnpm run build","prepublishOnly":"pnpm run test"},"devDependencies":{"typescript":"^5.8.3"},"_id":"@deepxx/stock-tracker-sdk@0.1.1","gitHead":"20c772db16112e5e5b6d50adf24d420913e7d21a","_nodeVersion":"20.19.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XK9C4CQtD1DQf3twlGexx7u2RtHMslYMlpU/EH7bngOBJGMzdo5vUl/bt7fhOJprKQcZPNsey1oHyq3AyKMKOQ==","shasum":"f2514b1a8fe127c7558f7fd6b2cffdc327e80962","tarball":"https://registry.npmjs.org/@deepxx/stock-tracker-sdk/-/stock-tracker-sdk-0.1.1.tgz","fileCount":39,"unpackedSize":77706,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDQOPnw56MUqxdeW8f/+/2bgakbkTvCq/STgiQUiebxtQIhAOnflPHJB9+ytOTq/w+a/jQU/vM2eeULOqSwfmFfnvDD"}]},"_npmUser":{"name":"xujiangping","email":"xujiangpingtdb@icloud.com"},"directories":{},"maintainers":[{"name":"xujiangping","email":"xujiangpingtdb@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stock-tracker-sdk_0.1.1_1787674808792_0.23814158188576595"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-25T05:58:55.670Z","modified":"2026-08-25T16:20:09.231Z","0.1.0":"2026-08-25T05:58:55.980Z","0.1.1":"2026-08-25T16:20:09.008Z"},"license":"UNLICENSED","keywords":["stock","market-data","ohlcv","kline","typescript"],"description":"A provider-agnostic TypeScript SDK for tracking detailed single-stock market data.","maintainers":[{"name":"xujiangping","email":"xujiangpingtdb@icloud.com"}],"readme":"# @deepxx/stock-tracker-sdk\n\n单只 A 股交易信息追踪 SDK。它把证券代码、最新行情、分钟/日周月 OHLCV、成交额、复权和均线指标封装成稳定的 TypeScript 接口。\n\n## 使用\n\n```ts\nimport { StockTrackerClient } from '@deepxx/stock-tracker-sdk'\n\nconst client = new StockTrackerClient()\n\nconst snapshot = await client.getSnapshot('600519', {\n  intradayInterval: '1m',\n  intradayLimit: 240,\n  dailyLimit: 120,\n  dailyAdjustment: 'forward',\n  maPeriods: [5, 10, 20, 60],\n  volumeMaPeriods: [5, 10],\n  dailyCacheTtlMs: 5 * 60_000,\n})\n\nconsole.log(snapshot.quote.price)\nconsole.log(snapshot.intraday.candles.at(-1))\nconsole.log(snapshot.indicators.priceMa[5].latest)\nconsole.log(snapshot.indicators.priceMa[10].latest)\nconsole.log(snapshot.dataQuality.dailyProvider)\nconsole.log(snapshot.dataQuality.dailyCacheStatus)\n```\n\n持续追踪使用异步迭代器，并通过 `AbortSignal` 停止：\n\n```ts\nconst controller = new AbortController()\n\nfor await (const snapshot of client.track('SH:600519', {\n  pollIntervalMs: 15_000,\n  signal: controller.signal,\n})) {\n  console.log(snapshot.generatedAt, snapshot.quote.price)\n}\n```\n\n也可以只取某一组数据：\n\n```ts\nawait client.getQuote('SZ000001')\nawait client.getCandles('000001', { interval: '5m', limit: 240 })\nawait client.getCandles('000001', { interval: '1d', adjustment: 'forward', limit: 250 })\n```\n\n## 支持范围\n\n- 证券代码：沪深 A 股，支持 `600519`、`SH600519`、`SH:600519`、`1.600519` 等格式。\n- 最新行情：价格、涨跌、开高低昨收、成交量、成交额、振幅、换手率、量比、PE/PB、市值等。\n- K 线：1/5/15/30/60 分钟，日、周、月；包含 OHLCV、成交额、振幅、涨跌幅、换手率。\n- 复权：不复权、前复权、后复权。\n- 指标：价格 SMA 和成交量 SMA，默认提供 MA5、MA10、MA20、MA60 与成交量 MA5、MA10。\n- 追踪：默认 15 秒轮询，可通过 `AbortSignal` 终止。\n- 日 K 稳定性：默认缓存 5 分钟；东方财富历史接口失败时自动切换腾讯行情，刷新失败时可使用 24 小时内的上次成功数据。\n\n当前报价和分钟 K 默认使用东方财富公开行情接口，日/周/月 K 在东方财富不可用时自动切换腾讯行情。这里的“实时”是近实时网络行情，不是交易所授权逐笔数据；成交量原始单位为“手”，SDK 同时提供按 A 股一手 100 股换算的 `volumeShares`。腾讯备用历史数据不提供逐日成交额，因此对应 K 线的 `amount` 为 `null`。浏览器直连还可能受数据源 CORS 或限流影响，生产环境建议由自己的服务端调用，并用 `transport` 注入代理、认证和可观测性。\n\n默认会在空响应或瞬时网络错误时对每个主机重试 2 次，再切换备用主机；可通过 `retryAttempts` 和 `retryDelayMs` 调整。\n\n## 自定义数据源或网络层\n\n构造函数可注入 `StockDataProvider`，从而替换行情提供方；也可只注入 `JsonTransport`：\n\n```ts\nconst client = new StockTrackerClient({\n  transport: async (url, { signal } = {}) => {\n    const response = await fetch(`/api/market-data?url=${encodeURIComponent(url)}`, { signal })\n    if (!response.ok) throw new Error(`HTTP ${response.status}`)\n    return response.json()\n  },\n})\n```\n\n## 发布到 npm\n\n包名为 `@deepxx/stock-tracker-sdk`，当前版本为 `0.1.1`。包保留 `@deepxx` 作用域，但发布访问级别为 `public`，不需要 npm 私有包订阅。\n\n确认当前 npm 账号拥有 `@deepxx` 作用域的发布权限，然后从包目录执行：\n\n```bash\ncd packages/stock-tracker-sdk\nnpm login --registry=https://registry.npmjs.org\npnpm run publish:public\n```\n\n`publish:public` 会先自动执行完整测试和构建，再以公开 scoped package 发布；它使用包目录下的临时 npm cache，以绕过本机全局 npm cache 的权限问题。\n\n如果使用 token，请只写入用户级 `~/.npmrc` 或 CI Secret，不要提交到仓库。后续版本发布前先更新版本号，例如：\n\n```bash\nnpm version patch --no-git-tag-version\n```\n\n消费端直接安装：\n\n```bash\nnpm install @deepxx/stock-tracker-sdk\n```\n","readmeFilename":"README.md"}