stock-sdk 2.1.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +3 -3
  2. package/dist/{adapters-BvE63CMd.d.cts → adapters-BiH4keVd.d.cts} +2 -1
  3. package/dist/{adapters-BvE63CMd.d.ts → adapters-BiH4keVd.d.ts} +2 -1
  4. package/dist/chunk-LNFNYJHT.cjs +1 -0
  5. package/dist/chunk-RHTNYDO2.cjs +1 -0
  6. package/dist/chunk-T5CH7H3X.cjs +1 -0
  7. package/dist/chunk-TXJPUZJI.js +1 -0
  8. package/dist/chunk-WHIIIKKO.js +1 -0
  9. package/dist/chunk-ZZ2IBUMV.js +1 -0
  10. package/dist/cli.cjs +17 -17
  11. package/dist/cli.js +17 -17
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.d.cts +5 -26
  14. package/dist/index.d.ts +5 -26
  15. package/dist/index.js +1 -1
  16. package/dist/indicators.d.cts +2 -2
  17. package/dist/indicators.d.ts +2 -2
  18. package/dist/mcp.cjs +2 -2
  19. package/dist/mcp.d.cts +2 -2
  20. package/dist/mcp.d.ts +2 -2
  21. package/dist/mcp.js +1 -1
  22. package/dist/{sdk-CA1tOtb2.d.cts → sdk-C1spOI0V.d.cts} +116 -7
  23. package/dist/{sdk-B-hkKcZs.d.ts → sdk-tyHVl5Ki.d.ts} +116 -7
  24. package/dist/signals.d.cts +1 -1
  25. package/dist/signals.d.ts +1 -1
  26. package/dist/symbols.cjs +1 -1
  27. package/dist/symbols.d.cts +2 -2
  28. package/dist/symbols.d.ts +2 -2
  29. package/dist/symbols.js +1 -1
  30. package/package.json +1 -1
  31. package/dist/chunk-3NSUE34F.cjs +0 -1
  32. package/dist/chunk-3X645BZO.js +0 -1
  33. package/dist/chunk-ANBQABED.cjs +0 -1
  34. package/dist/chunk-D2MGPO3R.js +0 -1
  35. package/dist/chunk-KKBFAS5P.cjs +0 -1
  36. package/dist/chunk-WP37ZK2F.js +0 -1
  37. package/dist/{addIndicators-DwEr9RKK.d.cts → addIndicators-DQNysyLs.d.cts} +192 -192
  38. package/dist/{addIndicators-DwEr9RKK.d.ts → addIndicators-DQNysyLs.d.ts} +192 -192
package/dist/cli.cjs CHANGED
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env node
2
- "use strict"; function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkKKBFAS5Pcjs = require('./chunk-KKBFAS5P.cjs');var _chunkANBQABEDcjs = require('./chunk-ANBQABED.cjs');require('./chunk-PMERLSCU.cjs');var _chunk3NSUE34Fcjs = require('./chunk-3NSUE34F.cjs');require('./chunk-TVIEKKDQ.cjs');var _chunk4Q7UQ5Q3cjs = require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');var c=class extends Error{constructor(t,o){super(t),this.name="CliUsageError",this.hint=o}},wn={INVALID_ARGUMENT:2,INVALID_SYMBOL:2,NOT_FOUND:2,NETWORK_ERROR:3,TIMEOUT:3,ABORTED:3,UPSTREAM_ERROR:4,UPSTREAM_EMPTY:4,PARSE_ERROR:4,HTTP_ERROR:4,RATE_LIMITED:5,CIRCUIT_OPEN:5};function F(n){if(n instanceof c)return 2;let t=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return _nullishCoalesce(wn[t], () => (1))}function V(n,t){let o=n instanceof Error?n.message:String(n);if(n instanceof c){if(t==="json")return{text:JSON.stringify({error:{code:"USAGE",message:o}})};let r=n.hint?`
3
- ${n.hint}`:"";return{text:`stock-sdk: ${o}${r}`}}let e=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return t==="json"?{text:JSON.stringify({error:{code:e,message:o}})}:{text:`stock-sdk: ${e}: ${o}`}}var On={start:"startDate",end:"endDate"},bn=new Set(["format","f","pretty","quiet","q","help","h","version","V","timeout"]),Cn=new Set(["limit"]);function G(n){return bn.has(n)||Cn.has(n)}function En(n,t){let o={},e=new Map;for(let r of _nullishCoalesce(n.options, () => ([])))e.set(r.flag,r);for(let[r,s]of Object.entries(t)){if(G(r))continue;let p=e.get(r);if(!p){if(s===!0)continue;o[_nullishCoalesce(On[r], () => (r))]=s;continue}o[_nullishCoalesce(p.field, () => (p.flag))]=An(p,s)}for(let r of _nullishCoalesce(n.options, () => ([]))){let s=_nullishCoalesce(r.field, () => (r.flag));o[s]===void 0&&r.default!==void 0&&(o[s]=r.default)}return o}function An(n,t){switch(n.type){case"boolean":return t===!0||t==="true";case"number":return Number(S(t));case"number[]":return E(t);case"enum":case"string":{let o=S(t),e=typeof o=="boolean"?o:String(o);if(n.upper&&typeof e=="string"&&(e=e.toUpperCase()),n.type==="enum"&&n.enum&&typeof e=="string"&&!n.enum.includes(e))throw new c(`--${n.flag} \u975E\u6CD5\u503C\u300C${e}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return n.map&&typeof e=="string"&&e in n.map&&(e=n.map[e]),e}default:return t}}function S(n){return Array.isArray(n)?n[n.length-1]:n}function E(n){return(Array.isArray(n)?n.join(","):String(n)).split(",").map(o=>o.trim()).filter(o=>o.length>0).map(o=>Number(o)).filter(o=>Number.isInteger(o)&&o>0)}function H(n,t){let o=_nullishCoalesce(n.positional, () => ([])),e=[],r=0;for(let s of o){if(s.variadic){let d=t.slice(r);if(s.required&&d.length===0)throw new c(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);for(let i of d)e.push(J(s,i));return e}let p=t[r];if(p===void 0){if(s.required)throw new c(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);e.push(void 0)}else e.push(J(s,p));r++}return e}function J(n,t){let o=t;if(n.upper&&(o=o.toUpperCase()),n.enum&&!n.enum.includes(o))throw new c(`<${n.name}> \u975E\u6CD5\u503C\u300C${t}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return o}function m(n,t,o){let e=_chunkKKBFAS5Pcjs.a.call(void 0, n,t);if(!e)throw new c(`\u672A\u77E5\u547D\u4EE4: ${t.join(" ")}`);return Promise.resolve(e.fn.apply(e.parent,o))}function Pn(n,t){let o=new Map;for(let r of _nullishCoalesce(n.options, () => ([])))o.set(r.flag,r);let e=o.size>0;for(let[r,s]of Object.entries(t)){if(G(r))continue;let p=o.get(r);if(!p){if(e)throw new c(`\u672A\u77E5\u9009\u9879 --${r}`,`\u8FD0\u884C \`stock-sdk ${n.path.join(" ")} --help\` \u67E5\u770B\u53EF\u7528\u9009\u9879`);continue}if(s===!0&&p.type!=="boolean"&&p.type!=="number[]")throw new c(`--${r} \u7F3A\u5C11\u503C`);if(p.type!=="number[]"){let d=S(s);if(p.upper&&typeof d=="string"&&(d=d.toUpperCase()),d!==s&&(t[r]=d),p.type==="enum"&&p.enum){let i=typeof d=="string"?d:String(d);if(!p.enum.includes(i))throw new c(`--${r} \u975E\u6CD5\u503C\u300C${i}\u300D`,`\u53EF\u9009: ${p.enum.join(" / ")}`)}if(p.type==="number"&&d!==!0&&Number.isNaN(Number(d)))throw new c(`--${r} \u9700\u8981\u6570\u503C\uFF0C\u5F97\u5230\u300C${String(d)}\u300D`)}}for(let r of _nullishCoalesce(n.options, () => ([])))if(r.required&&t[r.flag]===void 0)throw new c(`\u7F3A\u5C11\u5FC5\u586B\u9009\u9879 --${r.flag}`,r.desc)}function vn(n,t){let o=_nullishCoalesce(n.positional, () => ([]));for(let e=0;e<o.length;e++){let r=o[e],s=t[e];if(s===void 0||!r.enum)continue;let p=r.upper?s.toUpperCase():s;if(!r.enum.includes(p))throw new c(`<${r.name}> \u975E\u6CD5\u503C\u300C${s}\u300D`,`\u53EF\u9009: ${r.enum.join(" / ")}`)}}function _n(n,t){let o=t.limit;if(o===void 0||o===!0||!Array.isArray(n))return n;let e=Number(S(o));return!Number.isNaN(e)&&e>=1?n.slice(0,e):n}function W(n,t,o){Pn(t,o.options),vn(t,o.positional);let e=t.invoke?t.invoke(n,o):Rn(n,t,o);return Promise.resolve(e).then(r=>_n(r,o.options))}function Rn(n,t,o){let e=En(t,o.options);switch(t.argShape){case"none":return m(n,t.path,[]);case"codes[]":return z(o.positional,t),m(n,t.path,[o.positional]);case"codes+options":return z(o.positional,t),m(n,t.path,[o.positional,e]);case"symbol+options":{let r=H(t,o.positional);return m(n,t.path,[...r,e])}case"options":return m(n,t.path,[e]);case"positional":return m(n,t.path,H(t,o.positional));default:throw new c(`\u4E0D\u652F\u6301\u7684\u547D\u4EE4\u5F62\u6001: ${t.argShape}`)}}function z(n,t){if(n.length===0)throw new c(`\u547D\u4EE4 "${t.path.join(" ")}" \u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u4EE3\u7801\u53C2\u6570`)}function X(n,t,o){if(t==="json")return o?JSON.stringify(n,null,2):JSON.stringify(n);let e=Nn(n);return e.length===0?"":t==="csv"?Tn(e):jn(e)}function Z(n){return n==null||Array.isArray(n)&&n.length===0}function Nn(n){return Array.isArray(n)?n.map(t=>Y(t)?t:{value:t}):Y(n)?[n]:n==null?[]:[{value:n}]}function Y(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function nn(n){let t=[],o=new Set;for(let e of n)for(let r of Object.keys(e))o.has(r)||(o.add(r),t.push(r));return t}function tn(n){return n==null?"":typeof n=="object"?JSON.stringify(n):String(n)}function A(n){let t=0;for(let o of n){let e=_nullishCoalesce(o.codePointAt(0), () => (0));t+=Mn(e)?2:1}return t}function Mn(n){return n>=4352&&n<=4447||n>=11904&&n<=42191||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65072&&n<=65103||n>=65280&&n<=65376||n>=65504&&n<=65510||n>=131072&&n<=262141}function B(n,t,o){let e=Math.max(0,t-A(n)),r=" ".repeat(e);return o?r+n:n+r}function jn(n){let t=nn(n),o=n.map(i=>t.map(a=>tn(i[a]))),e=t.map((i,a)=>o.every(u=>u[a]===""||In(u[a]))),r=t.map((i,a)=>Math.max(A(i),...o.map(u=>A(u[a])))),s=t.map((i,a)=>B(i,r[a],e[a])).join(" "),p=r.map(i=>"-".repeat(i)).join(" "),d=o.map(i=>i.map((a,u)=>B(a,r[u],e[u])).join(" ")).join(`
4
- `);return[s,p,d].join(`
5
- `)}function In(n){return n!==""&&!Number.isNaN(Number(n))}function Tn(n){let t=nn(n),o=[t.map(Q).join(",")];for(let e of n)o.push(t.map(r=>Q(tn(e[r]))).join(","));return o.join(`
6
- `)}function Q(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function l(n){let t={flag:n.flag,type:n.type,desc:n.desc};return n.field!==void 0&&(t.field=n.field),n.enum&&(t.enum=n.enum),n.required&&(t.required=!0),n.upper&&(t.upper=!0),n.map&&(t.map=n.map),t}function Dn(n){let t={name:n.name};return n.required&&(t.required=!0),n.variadic&&(t.variadic=!0),n.enum&&(t.enum=n.enum),n.upper&&(t.upper=!0),t}function on(n,t){let o=(_nullishCoalesce(n.params, () => ([]))).filter(e=>e.cli!==!1).map(l);return{path:n.path,summary:n.summary,argShape:n.argShape,positional:_optionalChain([n, 'access', _2 => _2.positional, 'optionalAccess', _3 => _3.map, 'call', _4 => _4(Dn)]),options:o.length>0?o:void 0,invoke:t}}var $n=l(_chunkKKBFAS5Pcjs.e),qn=l(_chunkKKBFAS5Pcjs.f),en=l(_chunkKKBFAS5Pcjs.d),rn=l(_chunkKKBFAS5Pcjs.g),sn=l(_chunkKKBFAS5Pcjs.h),Kn=l(_chunkKKBFAS5Pcjs.i),P=[{name:"symbol",required:!0}],Ln=[{name:"code",required:!0}],fn={"kline.withIndicators":(n,t)=>mn(n,t),"northbound.minute":(n,t)=>m(n,["northbound","minute"],[cn(t)]),"northbound.history":(n,t)=>{let o={};return t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),m(n,["northbound","history"],[cn(t),o])}};{let n=new Set(_chunkKKBFAS5Pcjs.m.map(t=>t.path.join(".")));for(let t of Object.keys(fn))if(!n.has(t))throw new Error(`CLI_INVOKE_OVERRIDES \u5F15\u7528\u4E86 spec \u4E2D\u4E0D\u5B58\u5728\u7684\u65B9\u6CD5\u8DEF\u5F84: ${t}`)}var k=_chunkKKBFAS5Pcjs.m.map(n=>on(n,fn[n.path.join(".")]));function Un(n){return _nullishCoalesce(_optionalChain([k, 'access', _5 => _5.find, 'call', _6 => _6(t=>t.path.join(".")===n), 'optionalAccess', _7 => _7.options]), () => ([]))}var xn=Un("kline.withIndicators"),an={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},Fn={flag:"market",type:"enum",enum:["a","hk","us","fund"],desc:"\u5E02\u573A a/hk/us/fund(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B\uFF1B\u57FA\u91D1\u987B\u663E\u5F0F --market fund)"},v={flag:"limit",type:"number",desc:"\u53EA\u53D6\u524D N \u6761(CLI \u8F93\u51FA\u5C42\u88C1\u526A)"};function un(n){let t=_chunk3NSUE34Fcjs.e.call(void 0, n);return t==="HK"?"hk":t==="US"?"us":"a"}function Vn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function pn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Hn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function cn(n){let t=_nullishCoalesce(n.options.direction, () => (n.positional[0]));if(t!==void 0){if(t==="north"||t==="south")return t;throw new c("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function dn(n){let t={};return n.options.period!==void 0&&(t.period=n.options.period),n.options.adjust!==void 0&&(t.adjust=n.options.adjust==="none"?"":n.options.adjust),n.options.start!==void 0&&(t.startDate=n.options.start),n.options.end!==void 0&&(t.endDate=n.options.end),t}function Jn(n){let t={};for(let o of _chunkKKBFAS5Pcjs.k){let e=n[o];if(e===void 0)continue;if(e===!0){t[o]={};continue}let r=E(e);r.length>0&&(t[o]={periods:r})}for(let o of _chunkKKBFAS5Pcjs.l){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function mn(n,t){let o=_(t,"indicators"),e={};return t.options.period!==void 0&&(e.period=t.options.period),t.options.adjust!==void 0&&(e.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),t.options.market!==void 0&&(e.market=t.options.market),e.indicators=Jn(t.options),m(n,["kline","withIndicators"],[o,e])}var y=[{path:["quotes","cnSimple"],alias:["quote"],summary:"\u884C\u60C5(\u81EA\u52A8\u8BC6\u522B\u5E02\u573A\uFF1B--full \u5168\u91CF\u4E94\u6863\uFF1B--market \u5F3A\u5236\u5E02\u573A)",argShape:"codes[]",positional:[{name:"code",required:!0,variadic:!0}],options:[Fn,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let o=t.positional;if(o.length===0)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let e=Hn(t.options.market),r=t.options.full===!0,s={a:[],hk:[],us:[],fund:[]};for(let u of o){if(e==="fund"){s.fund.push(u);continue}let f=_nullishCoalesce(e, () => ("a"));try{let h=e?_chunk3NSUE34Fcjs.d.call(void 0, u,{market:Vn(e)}):_chunk3NSUE34Fcjs.d.call(void 0, u);e||(f=h.market==="HK"?"hk":h.market==="US"?"us":"a"),s[f].push(f==="a"?_chunk3NSUE34Fcjs.g.call(void 0, h):h.code)}catch(h){if(e&&h instanceof _chunk4Q7UQ5Q3cjs.f&&_chunk3NSUE34Fcjs.e.call(void 0, u)!==void 0)throw h;s[f].push(u)}}let p=[];s.a.length&&p.push(Promise.resolve(r?n.quotes.cn(s.a):n.quotes.cnSimple(s.a))),s.hk.length&&p.push(Promise.resolve(n.quotes.hk(s.hk))),s.us.length&&p.push(Promise.resolve(n.quotes.us(s.us))),s.fund.length&&p.push(Promise.resolve(n.quotes.fund(s.fund)));let d=await Promise.allSettled(p),i=[],a=[];for(let u of d)u.status==="fulfilled"?i.push(...u.value):a.push(u.reason);if(i.length===0&&a.length>0)throw a[0];if(a.length>0){let u=a.map(f=>f instanceof Error?f.message:String(f)).join("; ");process.stderr.write(`stock-sdk: \u90E8\u5206\u5E02\u573A\u884C\u60C5\u67E5\u8BE2\u5931\u8D25: ${u}
7
- `)}return i}},{path:["kline","cn"],alias:["kline"],summary:"K\u7EBF(--market a/hk/us\uFF1B--limit \u622A\u65AD)",argShape:"symbol+options",positional:P,options:[$n,en,rn,sn,an,v],invoke:async(n,t)=>{let o=_(t,"kline"),e=_nullishCoalesce(pn(t.options.market), () => (un(o))),r=dn(t);return m(n,["kline",e==="hk"?"hk":e==="us"?"us":"cn"],[o,r])}},{path:["kline","cnMinute"],alias:["minute"],summary:"\u5206\u949FK\u7EBF/\u5206\u65F6(--period 1/5/15/30/60\uFF1B--market\uFF1B\u6E2F/\u7F8E --ndays)",argShape:"symbol+options",positional:P,options:[qn,en,rn,sn,an,v,Kn],invoke:async(n,t)=>{let o=_(t,"minute"),e=_nullishCoalesce(pn(t.options.market), () => (un(o))),r=dn(t),s=e==="hk"?"hkMinute":e==="us"?"usMinute":"cnMinute";if(t.options.ndays!==void 0){if(s==="cnMinute")throw new c("--ndays \u4EC5\u652F\u6301\u6E2F/\u7F8E\u80A1\u5206\u65F6","\u793A\u4F8B: stock-sdk minute 00700 --ndays 5");r.ndays=Number(t.options.ndays)}return m(n,["kline",s],[o,r])}},{path:["kline","withIndicators"],alias:["indicators"],summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10,20 --macd --kdj --rsi --boll ...\uFF1B--market)",argShape:"symbol+options",positional:P,options:xn,invoke:mn},{path:["search"],alias:["search"],summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1(--limit \u622A\u65AD)",argShape:"positional",positional:[{name:"keyword",required:!0}],options:[v],invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new c("\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: stock-sdk search <keyword>");return n.search(o)}},{path:["quotes","timeline"],alias:["timeline"],summary:"\u5F53\u65E5\u5206\u65F6",argShape:"positional",positional:Ln,invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk timeline <code>");return n.quotes.timeline(o)}},{path:["codes","cn"],alias:["codes"],summary:"\u4EE3\u7801\u5217\u8868(market: a/hk/us/fund\uFF1B--simple\uFF1B--board sh/sz/bj/kc/cy)",argShape:"positional",positional:[{name:"market",required:!0,enum:["a","hk","us","fund"]}],options:[{flag:"simple",type:"boolean",desc:"\u53BB\u524D\u7F00"},{flag:"board",field:"market",type:"string",desc:"\u677F\u5757 sh/sz/bj/kc/cy(\u4EC5A\u80A1)"}],invoke:async(n,t)=>{let o=t.positional[0],e={};if(t.options.simple===!0&&(e.simple=!0),t.options.board!==void 0){if(o!=="a")throw new c("--board \u4EC5\u652F\u6301 A \u80A1(market=a)","\u53EF\u9009: sh / sz / bj / kc / cy");e.market=t.options.board}switch(o){case"a":return m(n,["codes","cn"],[e]);case"us":return m(n,["codes","us"],[e]);case"hk":return n.codes.hk();case"fund":return n.codes.fund();default:throw new c(`\u672A\u77E5\u5E02\u573A: ${o}`,"\u53EF\u9009: a / hk / us / fund")}}},{path:["calendar","marketStatus"],alias:["status"],summary:"\u5E02\u573A\u72B6\u6001(a/hk/us\uFF0C\u9ED8\u8BA4 a)",argShape:"positional",positional:[{name:"market",upper:!0,enum:_chunkKKBFAS5Pcjs.b}],invoke:async(n,t)=>{let o=t.positional[0],e=o?o.toUpperCase():"A";return n.calendar.marketStatus(e)}},{path:["marketEvent","ztPool"],alias:["ztpool"],summary:"\u6DA8\u505C\u80A1\u6C60 zt/yesterday/strong/sub_new/broken/dt(--date)",argShape:"positional",positional:[{name:"type",enum:_chunkKKBFAS5Pcjs.c}],options:[{flag:"date",type:"string",desc:"\u4EA4\u6613\u65E5 YYYYMMDD"}],invoke:async(n,t)=>{let o=t.positional[0],e=t.options.date;return n.marketEvent.ztPool(o,e)}},{path:["call"],alias:["call"],summary:"\u539F\u59CB\u76F4\u901A\uFF1A\u8C03\u7528\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5\uFF08--args \u4F20 JSON \u5B9E\u53C2\u6570\u7EC4\uFF09",argShape:"positional",positional:[{name:"method",required:!0}],options:[{flag:"args",type:"string",desc:`JSON \u5B9E\u53C2\u6570\u7EC4\uFF0C\u5982 '[["sh600519"]]'`}],invoke:(n,t)=>{let o=t.positional[0];if(!o)throw new c("call \u7F3A\u5C11\u65B9\u6CD5\u8DEF\u5F84","\u7528\u6CD5: stock-sdk call <ns.method> --args '[...]'");let e=[],r=t.options.args;if(typeof r=="string")try{let p=JSON.parse(r);e=Array.isArray(p)?p:[p]}catch (e2){throw new c("--args \u4E0D\u662F\u5408\u6CD5 JSON",`\u793A\u4F8B: --args '[["sh600519"]]'`)}if(!new Set(Gn()).has(o))throw new c(`\u672A\u77E5\u65B9\u6CD5: ${o}`,"\u5F62\u5982 quotes.cn / kline.cn(\u4EC5\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5,\u89C1 stock-sdk --help)");return m(n,o.split("."),e)}}],ln="mcp",zn=[...y,...k];function Gn(){return _chunkKKBFAS5Pcjs.m.map(n=>n.path.join("."))}function _(n,t){let o=n.positional[0];if(!o)throw new c("\u7F3A\u5C11\u4EE3\u7801\u53C2\u6570",`\u7528\u6CD5: stock-sdk ${t} <symbol>`);return o}function hn(){let n=new Set(["help","h","version","V","quiet","q","pretty"]);for(let t of zn)for(let o of _nullishCoalesce(t.options, () => ([])))o.type==="boolean"&&n.add(o.flag);for(let t of _chunkKKBFAS5Pcjs.l)n.add(t);return n}function kn(n){if(n.length===0)return null;for(let o=Math.min(3,n.length);o>=2;o--){let e=n.slice(0,o).join("."),r=k.find(s=>s.path.join(".")===e);if(r)return{spec:r,rest:n.slice(o)}}for(let o of y)if(_optionalChain([o, 'access', _8 => _8.alias, 'optionalAccess', _9 => _9.includes, 'call', _10 => _10(n[0])]))return{spec:o,rest:n.slice(1)};let t=k.find(o=>o.path.join(".")===n[0]);return t?{spec:t,rest:n.slice(1)}:null}function gn(){let n=["stock-sdk \u2014\u2014 \u80A1\u7968\u884C\u60C5\u547D\u4EE4\u884C\uFF08\u57FA\u4E8E stock-sdk v2 \u547D\u540D\u7A7A\u95F4 API\uFF09","","\u7528\u6CD5:"," stock-sdk <command> [args] [--flags]"," stock-sdk <namespace> <method> [args] [--flags] # \u76F4\u8FBE\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5","","\u5E38\u7528\u547D\u4EE4:"];for(let o of y){let e=_nullishCoalesce(_optionalChain([o, 'access', _11 => _11.alias, 'optionalAccess', _12 => _12[0]]), () => (o.path.join(" ")));n.push(` ${e.padEnd(12)} ${o.summary}`)}n.push(" mcp \u542F\u52A8 MCP server (stdio)"),n.push(""),n.push("\u547D\u540D\u7A7A\u95F4\uFF08stock-sdk <ns> <method> ...\uFF09:");let t=[...new Set(k.map(o=>o.path[0]))];return n.push(" "+t.join(" / ")),n.push(""),n.push("\u5168\u5C40\u9009\u9879:"),n.push(" -f, --format json|table|csv \u8F93\u51FA\u683C\u5F0F (\u9ED8\u8BA4 json)"),n.push(" --pretty JSON \u7F29\u8FDB\u7F8E\u5316"),n.push(" --timeout <ms> \u8BF7\u6C42\u8D85\u65F6"),n.push(" -q, --quiet \u9759\u9ED8(\u53EA\u8F93\u51FA\u6570\u636E)"),n.push(" -h, --help \u663E\u793A\u5E2E\u52A9"),n.push(" -V, --version \u663E\u793A\u7248\u672C"),n.push(""),n.push("\u793A\u4F8B:"),n.push(" stock-sdk quote 600519 000858 00700"),n.push(" stock-sdk kline 600519 --period weekly --adjust hfq --limit 30"),n.push(" stock-sdk indicators 600519 --ma 5,10,20 --macd"),n.push(" stock-sdk board industry list --format table"),n.push(" stock-sdk options etf dailyKline 10004336"),n.push(""),n.push("\u8FD0\u884C `stock-sdk <command> --help` \u67E5\u770B\u5355\u6761\u547D\u4EE4\u7528\u6CD5\u3002"),n.join(`
8
- `)}function Sn(n){let t=_nullishCoalesce(_optionalChain([n, 'access', _13 => _13.alias, 'optionalAccess', _14 => _14[0]]), () => (n.path.join(" "))),o=[`${t} \u2014\u2014 ${n.summary}`,""],e=(_nullishCoalesce(n.positional, () => ([]))).map(r=>{let s=r.required?`<${r.name}>`:`[${r.name}]`;return r.variadic?`${s}...`:s}).join(" ");if(o.push(`\u7528\u6CD5: stock-sdk ${t}${e?" "+e:""} [--flags]`),_optionalChain([n, 'access', _15 => _15.options, 'optionalAccess', _16 => _16.length])){o.push(""),o.push("\u9009\u9879:");for(let r of n.options){let s=r.enum?` (${r.enum.join("/")})`:"";o.push(` --${r.flag.padEnd(12)} ${r.desc}${s}`)}}return o.join(`
9
- `)}function yn(n,t=new Set){let o=[],e={},r=!1,s=(i,a)=>{let u=e[i];if(u===void 0){e[i]=a;return}if(typeof a!="string"){e[i]=a;return}Array.isArray(u)?u.push(a):typeof u=="string"?e[i]=[u,a]:e[i]=a},p=i=>i!==void 0&&(i==="-"||!i.startsWith("-")||/^-\d/.test(i)),d=(i,a)=>{if(t.has(i))return s(i,!0),a;let u=n[a+1];return p(u)?(s(i,u),a+1):(s(i,!0),a)};for(let i=0;i<n.length;i++){let a=n[i];if(r){o.push(a);continue}if(a==="--"){r=!0;continue}if(a.startsWith("--")&&a.length>2){let u=a.slice(2),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else if(a.startsWith("-")&&a.length>1&&!Wn(a)){let u=a.slice(1),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else o.push(a)}return{positional:o,options:e}}function Wn(n){return/^-\d/.test(n)}var Yn=hn();process.stdout.on("error",n=>{n.code==="EPIPE"&&process.exit(0),process.stderr.write(`stock-sdk: stdout error: ${n.message}
10
- `)});function Bn(){return"2.1.0"}function Qn(n){let t=_nullishCoalesce(n.format, () => (n.f)),o=t==="table"||t==="csv"?t:"json",e;if(typeof n.timeout=="string"||typeof n.timeout=="number"){let r=Number(n.timeout);!Number.isNaN(r)&&r>0&&(e=r)}return{format:o,pretty:n.pretty===!0,quiet:n.quiet===!0||n.q===!0,help:n.help===!0||n.h===!0,version:n.version===!0||n.V===!0,timeout:e}}async function Xn(){try{return(await Promise.resolve().then(() => _interopRequireWildcard(require("./mcp.cjs")))).startMcpServer(),0}catch(n){let t=n instanceof Error?n.message:String(n);return process.stderr.write(`stock-sdk: \u65E0\u6CD5\u542F\u52A8 MCP server: ${t}
11
- `),1}}async function Zn(n){let t="json";try{let o=yn(n,Yn),e=Qn(o.options);if(t=e.format,e.version)return process.stdout.write(Bn()+`
12
- `),0;if(o.positional.length===0)return process.stdout.write(gn()+`
13
- `),0;if(o.positional[0]===ln)return e.help?(process.stdout.write(`stock-sdk mcp \u2014\u2014 \u542F\u52A8 MCP server (stdio transport)
2
+ "use strict"; function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkLNFNYJHTcjs = require('./chunk-LNFNYJHT.cjs');var _chunkRHTNYDO2cjs = require('./chunk-RHTNYDO2.cjs');require('./chunk-PMERLSCU.cjs');var _chunkT5CH7H3Xcjs = require('./chunk-T5CH7H3X.cjs');require('./chunk-TVIEKKDQ.cjs');var _chunk4Q7UQ5Q3cjs = require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');var p=class extends Error{constructor(t,o){super(t),this.name="CliUsageError",this.hint=o}},On={INVALID_ARGUMENT:2,INVALID_SYMBOL:2,NOT_FOUND:2,NETWORK_ERROR:3,TIMEOUT:3,ABORTED:3,UPSTREAM_ERROR:4,UPSTREAM_EMPTY:4,PARSE_ERROR:4,HTTP_ERROR:4,RATE_LIMITED:5,CIRCUIT_OPEN:5};function V(n){if(n instanceof p)return 2;let t=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return _nullishCoalesce(On[t], () => (1))}function G(n,t){let o=n instanceof Error?n.message:String(n);if(n instanceof p){if(t==="json")return{text:JSON.stringify({error:{code:"USAGE",message:o}})};let r=n.hint?`
3
+ ${n.hint}`:"";return{text:`stock-sdk: ${o}${r}`}}let e=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return t==="json"?{text:JSON.stringify({error:{code:e,message:o}})}:{text:`stock-sdk: ${e}: ${o}`}}var bn={start:"startDate",end:"endDate"},Cn=new Set(["format","f","pretty","quiet","q","help","h","version","V","timeout"]),En=new Set(["limit"]);function B(n){return Cn.has(n)||En.has(n)}function An(n,t){let o={},e=new Map;for(let r of _nullishCoalesce(n.options, () => ([])))e.set(r.flag,r);for(let[r,s]of Object.entries(t)){if(B(r))continue;let c=e.get(r);if(!c){if(s===!0)continue;o[_nullishCoalesce(bn[r], () => (r))]=s;continue}o[_nullishCoalesce(c.field, () => (c.flag))]=Pn(c,s)}for(let r of _nullishCoalesce(n.options, () => ([]))){let s=_nullishCoalesce(r.field, () => (r.flag));o[s]===void 0&&r.default!==void 0&&(o[s]=r.default)}return o}function Pn(n,t){switch(n.type){case"boolean":return t===!0||t==="true";case"number":return Number(S(t));case"number[]":return E(t);case"enum":case"string":{let o=S(t),e=typeof o=="boolean"?o:String(o);if(n.upper&&typeof e=="string"&&(e=e.toUpperCase()),n.type==="enum"&&n.enum&&typeof e=="string"&&!n.enum.includes(e))throw new p(`--${n.flag} \u975E\u6CD5\u503C\u300C${e}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return n.map&&typeof e=="string"&&e in n.map&&(e=n.map[e]),e}default:return t}}function S(n){return Array.isArray(n)?n[n.length-1]:n}function E(n){return(Array.isArray(n)?n.join(","):String(n)).split(",").map(o=>o.trim()).filter(o=>o.length>0).map(o=>Number(o)).filter(o=>Number.isInteger(o)&&o>0)}function H(n,t){let o=_nullishCoalesce(n.positional, () => ([])),e=[],r=0;for(let s of o){if(s.variadic){let d=t.slice(r);if(s.required&&d.length===0)throw new p(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);for(let i of d)e.push(J(s,i));return e}let c=t[r];if(c===void 0){if(s.required)throw new p(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);e.push(void 0)}else e.push(J(s,c));r++}return e}function J(n,t){let o=t;if(n.upper&&(o=o.toUpperCase()),n.enum&&!n.enum.includes(o))throw new p(`<${n.name}> \u975E\u6CD5\u503C\u300C${t}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return o}function m(n,t,o){let e=_chunkLNFNYJHTcjs.a.call(void 0, n,t);if(!e)throw new p(`\u672A\u77E5\u547D\u4EE4: ${t.join(" ")}`);return Promise.resolve(e.fn.apply(e.parent,o))}function vn(n,t){let o=new Map;for(let r of _nullishCoalesce(n.options, () => ([])))o.set(r.flag,r);let e=o.size>0;for(let[r,s]of Object.entries(t)){if(B(r))continue;let c=o.get(r);if(!c){if(e)throw new p(`\u672A\u77E5\u9009\u9879 --${r}`,`\u8FD0\u884C \`stock-sdk ${n.path.join(" ")} --help\` \u67E5\u770B\u53EF\u7528\u9009\u9879`);continue}if(s===!0&&c.type!=="boolean"&&c.type!=="number[]")throw new p(`--${r} \u7F3A\u5C11\u503C`);if(c.type!=="number[]"){let d=S(s);if(c.upper&&typeof d=="string"&&(d=d.toUpperCase()),d!==s&&(t[r]=d),c.type==="enum"&&c.enum){let i=typeof d=="string"?d:String(d);if(!c.enum.includes(i))throw new p(`--${r} \u975E\u6CD5\u503C\u300C${i}\u300D`,`\u53EF\u9009: ${c.enum.join(" / ")}`)}if(c.type==="number"&&d!==!0&&Number.isNaN(Number(d)))throw new p(`--${r} \u9700\u8981\u6570\u503C\uFF0C\u5F97\u5230\u300C${String(d)}\u300D`)}}for(let r of _nullishCoalesce(n.options, () => ([])))if(r.required&&t[r.flag]===void 0)throw new p(`\u7F3A\u5C11\u5FC5\u586B\u9009\u9879 --${r.flag}`,r.desc)}function _n(n,t){let o=_nullishCoalesce(n.positional, () => ([]));for(let e=0;e<o.length;e++){let r=o[e],s=t[e];if(s===void 0||!r.enum)continue;let c=r.upper?s.toUpperCase():s;if(!r.enum.includes(c))throw new p(`<${r.name}> \u975E\u6CD5\u503C\u300C${s}\u300D`,`\u53EF\u9009: ${r.enum.join(" / ")}`)}}function Rn(n,t){let o=t.limit;if(o===void 0||o===!0||!Array.isArray(n))return n;let e=Number(S(o));return!Number.isNaN(e)&&e>=1?n.slice(0,e):n}function W(n,t,o){vn(t,o.options),_n(t,o.positional);let e=t.invoke?t.invoke(n,o):Nn(n,t,o);return Promise.resolve(e).then(r=>Rn(r,o.options))}function Nn(n,t,o){let e=An(t,o.options);switch(t.argShape){case"none":return m(n,t.path,[]);case"codes[]":return z(o.positional,t),m(n,t.path,[o.positional]);case"codes+options":return z(o.positional,t),m(n,t.path,[o.positional,e]);case"symbol+options":{let r=H(t,o.positional);return m(n,t.path,[...r,e])}case"options":return m(n,t.path,[e]);case"positional":return m(n,t.path,H(t,o.positional));default:throw new p(`\u4E0D\u652F\u6301\u7684\u547D\u4EE4\u5F62\u6001: ${t.argShape}`)}}function z(n,t){if(n.length===0)throw new p(`\u547D\u4EE4 "${t.path.join(" ")}" \u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u4EE3\u7801\u53C2\u6570`)}function Z(n,t,o){if(t==="json")return o?JSON.stringify(n,null,2):JSON.stringify(n);let e=Mn(n);return e.length===0?"":t==="csv"?Dn(e):jn(e)}function nn(n){return n==null||Array.isArray(n)&&n.length===0}function Mn(n){return Array.isArray(n)?n.map(t=>Y(t)?t:{value:t}):Y(n)?[n]:n==null?[]:[{value:n}]}function Y(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function tn(n){let t=[],o=new Set;for(let e of n)for(let r of Object.keys(e))o.has(r)||(o.add(r),t.push(r));return t}function on(n){return n==null?"":typeof n=="object"?JSON.stringify(n):String(n)}function A(n){let t=0;for(let o of n){let e=_nullishCoalesce(o.codePointAt(0), () => (0));t+=In(e)?2:1}return t}function In(n){return n>=4352&&n<=4447||n>=11904&&n<=42191||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65072&&n<=65103||n>=65280&&n<=65376||n>=65504&&n<=65510||n>=131072&&n<=262141}function Q(n,t,o){let e=Math.max(0,t-A(n)),r=" ".repeat(e);return o?r+n:n+r}function jn(n){let t=tn(n),o=n.map(i=>t.map(a=>on(i[a]))),e=t.map((i,a)=>o.every(u=>u[a]===""||Tn(u[a]))),r=t.map((i,a)=>Math.max(A(i),...o.map(u=>A(u[a])))),s=t.map((i,a)=>Q(i,r[a],e[a])).join(" "),c=r.map(i=>"-".repeat(i)).join(" "),d=o.map(i=>i.map((a,u)=>Q(a,r[u],e[u])).join(" ")).join(`
4
+ `);return[s,c,d].join(`
5
+ `)}function Tn(n){return n!==""&&!Number.isNaN(Number(n))}function Dn(n){let t=tn(n),o=[t.map(X).join(",")];for(let e of n)o.push(t.map(r=>X(on(e[r]))).join(","));return o.join(`
6
+ `)}function X(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function h(n){let t={flag:n.flag,type:n.type,desc:n.desc};return n.field!==void 0&&(t.field=n.field),n.enum&&(t.enum=n.enum),n.required&&(t.required=!0),n.upper&&(t.upper=!0),n.map&&(t.map=n.map),t}function $n(n){let t={name:n.name};return n.required&&(t.required=!0),n.variadic&&(t.variadic=!0),n.enum&&(t.enum=n.enum),n.upper&&(t.upper=!0),t}function en(n,t){let o=(_nullishCoalesce(n.params, () => ([]))).filter(e=>e.cli!==!1).map(h);return{path:n.path,summary:n.summary,argShape:n.argShape,positional:_optionalChain([n, 'access', _2 => _2.positional, 'optionalAccess', _3 => _3.map, 'call', _4 => _4($n)]),options:o.length>0?o:void 0,invoke:t}}var qn=h(_chunkLNFNYJHTcjs.e),Kn=h(_chunkLNFNYJHTcjs.f),rn=h(_chunkLNFNYJHTcjs.d),sn=h(_chunkLNFNYJHTcjs.g),an=h(_chunkLNFNYJHTcjs.h),Ln=h(_chunkLNFNYJHTcjs.i),P=[{name:"symbol",required:!0}],Un=[{name:"code",required:!0}],mn={"kline.withIndicators":(n,t)=>ln(n,t),"northbound.minute":(n,t)=>m(n,["northbound","minute"],[dn(t)]),"northbound.history":(n,t)=>{let o={};return t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),m(n,["northbound","history"],[dn(t),o])}};{let n=new Set(_chunkLNFNYJHTcjs.m.map(t=>t.path.join(".")));for(let t of Object.keys(mn))if(!n.has(t))throw new Error(`CLI_INVOKE_OVERRIDES \u5F15\u7528\u4E86 spec \u4E2D\u4E0D\u5B58\u5728\u7684\u65B9\u6CD5\u8DEF\u5F84: ${t}`)}var k=_chunkLNFNYJHTcjs.m.map(n=>en(n,mn[n.path.join(".")]));function xn(n){return _nullishCoalesce(_optionalChain([k, 'access', _5 => _5.find, 'call', _6 => _6(t=>t.path.join(".")===n), 'optionalAccess', _7 => _7.options]), () => ([]))}var Fn=xn("kline.withIndicators"),un={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},Vn={flag:"market",type:"enum",enum:["a","hk","us","fund"],desc:"\u5E02\u573A a/hk/us/fund(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B\uFF1B\u57FA\u91D1\u987B\u663E\u5F0F --market fund)"},v={flag:"limit",type:"number",desc:"\u53EA\u53D6\u524D N \u6761(CLI \u8F93\u51FA\u5C42\u88C1\u526A)"};function pn(n){let t=_chunkT5CH7H3Xcjs.f.call(void 0, n);if(t==="GLOBAL")throw new p(`\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u8DEF\u7531 GLOBAL \u5E02\u573A\u7B26\u53F7: ${n}`,"\u6D77\u5916\u7279\u6B8A\u6307\u6570\u6682\u65E0\u6B63\u5F0F K \u7EBF\u5165\u53E3,\u53EF\u7528 raw-secid \u76F4\u901A: stock-sdk kline 100.GDAXI --market us");return t==="HK"?"hk":t==="US"?"us":"a"}function Gn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function cn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new p("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Hn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new p("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function dn(n){let t=_nullishCoalesce(n.options.direction, () => (n.positional[0]));if(t!==void 0){if(t==="north"||t==="south")return t;throw new p("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function fn(n){let t={};return n.options.period!==void 0&&(t.period=n.options.period),n.options.adjust!==void 0&&(t.adjust=n.options.adjust==="none"?"":n.options.adjust),n.options.start!==void 0&&(t.startDate=n.options.start),n.options.end!==void 0&&(t.endDate=n.options.end),t}function Jn(n){let t={};for(let o of _chunkLNFNYJHTcjs.k){let e=n[o];if(e===void 0)continue;if(e===!0){t[o]={};continue}let r=E(e);r.length>0&&(t[o]={periods:r})}for(let o of _chunkLNFNYJHTcjs.l){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function ln(n,t){let o=_(t,"indicators"),e={};return t.options.period!==void 0&&(e.period=t.options.period),t.options.adjust!==void 0&&(e.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),t.options.market!==void 0&&(e.market=t.options.market),e.indicators=Jn(t.options),m(n,["kline","withIndicators"],[o,e])}var y=[{path:["quotes","cnSimple"],alias:["quote"],summary:"\u884C\u60C5(\u81EA\u52A8\u8BC6\u522B\u5E02\u573A\uFF1B--full \u5168\u91CF\u4E94\u6863\uFF1B--market \u5F3A\u5236\u5E02\u573A)",argShape:"codes[]",positional:[{name:"code",required:!0,variadic:!0}],options:[Vn,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let o=t.positional;if(o.length===0)throw new p("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let e=Hn(t.options.market),r=t.options.full===!0,s={a:[],hk:[],us:[],fund:[]};for(let u of o){if(e==="fund"){s.fund.push(u);continue}let f=_nullishCoalesce(e, () => ("a"));try{let l=e?_chunkT5CH7H3Xcjs.e.call(void 0, u,{market:Gn(e)}):_chunkT5CH7H3Xcjs.e.call(void 0, u);if(e||(f=l.market==="HK"?"hk":l.market==="US"?"us":"a"),l.assetType==="index"&&_chunkT5CH7H3Xcjs.d.call(void 0, l.code))throw new p(`\u7279\u6B8A\u6307\u6570 ${l.code} \u65E0\u884C\u60C5\u63A5\u53E3`,`\u884C\u60C5\u6E90(\u817E\u8BAF)\u4E0D\u8986\u76D6\u4E2D\u8BC1/\u6052\u751F/\u6D77\u5916\u7279\u6B8A\u6307\u6570;K \u7EBF\u8BF7\u7528: stock-sdk kline ${l.code}`);s[f].push(f==="a"?_chunkT5CH7H3Xcjs.h.call(void 0, l):l.code)}catch(l){if(l instanceof p||e&&l instanceof _chunk4Q7UQ5Q3cjs.f&&_chunkT5CH7H3Xcjs.f.call(void 0, u)!==void 0)throw l;s[f].push(u)}}let c=[];s.a.length&&c.push(Promise.resolve(r?n.quotes.cn(s.a):n.quotes.cnSimple(s.a))),s.hk.length&&c.push(Promise.resolve(n.quotes.hk(s.hk))),s.us.length&&c.push(Promise.resolve(n.quotes.us(s.us))),s.fund.length&&c.push(Promise.resolve(n.quotes.fund(s.fund)));let d=await Promise.allSettled(c),i=[],a=[];for(let u of d)u.status==="fulfilled"?i.push(...u.value):a.push(u.reason);if(i.length===0&&a.length>0)throw a[0];if(a.length>0){let u=a.map(f=>f instanceof Error?f.message:String(f)).join("; ");process.stderr.write(`stock-sdk: \u90E8\u5206\u5E02\u573A\u884C\u60C5\u67E5\u8BE2\u5931\u8D25: ${u}
7
+ `)}return i}},{path:["kline","cn"],alias:["kline"],summary:"K\u7EBF(--market a/hk/us\uFF1B--limit \u622A\u65AD)",argShape:"symbol+options",positional:P,options:[qn,rn,sn,an,un,v],invoke:async(n,t)=>{let o=_(t,"kline"),e=_nullishCoalesce(cn(t.options.market), () => (pn(o))),r=fn(t);return m(n,["kline",e==="hk"?"hk":e==="us"?"us":"cn"],[o,r])}},{path:["kline","cnMinute"],alias:["minute"],summary:"\u5206\u949FK\u7EBF/\u5206\u65F6(--period 1/5/15/30/60\uFF1B--market\uFF1B\u6E2F/\u7F8E --ndays)",argShape:"symbol+options",positional:P,options:[Kn,rn,sn,an,un,v,Ln],invoke:async(n,t)=>{let o=_(t,"minute"),e=_nullishCoalesce(cn(t.options.market), () => (pn(o))),r=fn(t),s=e==="hk"?"hkMinute":e==="us"?"usMinute":"cnMinute";if(t.options.ndays!==void 0){if(s==="cnMinute")throw new p("--ndays \u4EC5\u652F\u6301\u6E2F/\u7F8E\u80A1\u5206\u65F6","\u793A\u4F8B: stock-sdk minute 00700 --ndays 5");r.ndays=Number(t.options.ndays)}return m(n,["kline",s],[o,r])}},{path:["kline","withIndicators"],alias:["indicators"],summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10,20 --macd --kdj --rsi --boll ...\uFF1B--market)",argShape:"symbol+options",positional:P,options:Fn,invoke:ln},{path:["search"],alias:["search"],summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1(--limit \u622A\u65AD)",argShape:"positional",positional:[{name:"keyword",required:!0}],options:[v],invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new p("\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: stock-sdk search <keyword>");return n.search(o)}},{path:["quotes","timeline"],alias:["timeline"],summary:"\u5F53\u65E5\u5206\u65F6",argShape:"positional",positional:Un,invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new p("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk timeline <code>");return n.quotes.timeline(o)}},{path:["codes","cn"],alias:["codes"],summary:"\u4EE3\u7801\u5217\u8868(market: a/hk/us/fund\uFF1B--simple\uFF1B--board sh/sz/bj/kc/cy)",argShape:"positional",positional:[{name:"market",required:!0,enum:["a","hk","us","fund"]}],options:[{flag:"simple",type:"boolean",desc:"\u53BB\u524D\u7F00"},{flag:"board",field:"market",type:"string",desc:"\u677F\u5757 sh/sz/bj/kc/cy(\u4EC5A\u80A1)"}],invoke:async(n,t)=>{let o=t.positional[0],e={};if(t.options.simple===!0&&(e.simple=!0),t.options.board!==void 0){if(o!=="a")throw new p("--board \u4EC5\u652F\u6301 A \u80A1(market=a)","\u53EF\u9009: sh / sz / bj / kc / cy");e.market=t.options.board}switch(o){case"a":return m(n,["codes","cn"],[e]);case"us":return m(n,["codes","us"],[e]);case"hk":return n.codes.hk();case"fund":return n.codes.fund();default:throw new p(`\u672A\u77E5\u5E02\u573A: ${o}`,"\u53EF\u9009: a / hk / us / fund")}}},{path:["calendar","marketStatus"],alias:["status"],summary:"\u5E02\u573A\u72B6\u6001(a/hk/us\uFF0C\u9ED8\u8BA4 a)",argShape:"positional",positional:[{name:"market",upper:!0,enum:_chunkLNFNYJHTcjs.b}],invoke:async(n,t)=>{let o=t.positional[0],e=o?o.toUpperCase():"A";return n.calendar.marketStatus(e)}},{path:["marketEvent","ztPool"],alias:["ztpool"],summary:"\u6DA8\u505C\u80A1\u6C60 zt/yesterday/strong/sub_new/broken/dt(--date)",argShape:"positional",positional:[{name:"type",enum:_chunkLNFNYJHTcjs.c}],options:[{flag:"date",type:"string",desc:"\u4EA4\u6613\u65E5 YYYYMMDD"}],invoke:async(n,t)=>{let o=t.positional[0],e=t.options.date;return n.marketEvent.ztPool(o,e)}},{path:["call"],alias:["call"],summary:"\u539F\u59CB\u76F4\u901A\uFF1A\u8C03\u7528\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5\uFF08--args \u4F20 JSON \u5B9E\u53C2\u6570\u7EC4\uFF09",argShape:"positional",positional:[{name:"method",required:!0}],options:[{flag:"args",type:"string",desc:`JSON \u5B9E\u53C2\u6570\u7EC4\uFF0C\u5982 '[["sh600519"]]'`}],invoke:(n,t)=>{let o=t.positional[0];if(!o)throw new p("call \u7F3A\u5C11\u65B9\u6CD5\u8DEF\u5F84","\u7528\u6CD5: stock-sdk call <ns.method> --args '[...]'");let e=[],r=t.options.args;if(typeof r=="string")try{let c=JSON.parse(r);e=Array.isArray(c)?c:[c]}catch (e2){throw new p("--args \u4E0D\u662F\u5408\u6CD5 JSON",`\u793A\u4F8B: --args '[["sh600519"]]'`)}if(!new Set(Bn()).has(o))throw new p(`\u672A\u77E5\u65B9\u6CD5: ${o}`,"\u5F62\u5982 quotes.cn / kline.cn(\u4EC5\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5,\u89C1 stock-sdk --help)");return m(n,o.split("."),e)}}],hn="mcp",zn=[...y,...k];function Bn(){return _chunkLNFNYJHTcjs.m.map(n=>n.path.join("."))}function _(n,t){let o=n.positional[0];if(!o)throw new p("\u7F3A\u5C11\u4EE3\u7801\u53C2\u6570",`\u7528\u6CD5: stock-sdk ${t} <symbol>`);return o}function kn(){let n=new Set(["help","h","version","V","quiet","q","pretty"]);for(let t of zn)for(let o of _nullishCoalesce(t.options, () => ([])))o.type==="boolean"&&n.add(o.flag);for(let t of _chunkLNFNYJHTcjs.l)n.add(t);return n}function gn(n){if(n.length===0)return null;for(let o=Math.min(3,n.length);o>=2;o--){let e=n.slice(0,o).join("."),r=k.find(s=>s.path.join(".")===e);if(r)return{spec:r,rest:n.slice(o)}}for(let o of y)if(_optionalChain([o, 'access', _8 => _8.alias, 'optionalAccess', _9 => _9.includes, 'call', _10 => _10(n[0])]))return{spec:o,rest:n.slice(1)};let t=k.find(o=>o.path.join(".")===n[0]);return t?{spec:t,rest:n.slice(1)}:null}function Sn(){let n=["stock-sdk \u2014\u2014 \u80A1\u7968\u884C\u60C5\u547D\u4EE4\u884C\uFF08\u57FA\u4E8E stock-sdk v2 \u547D\u540D\u7A7A\u95F4 API\uFF09","","\u7528\u6CD5:"," stock-sdk <command> [args] [--flags]"," stock-sdk <namespace> <method> [args] [--flags] # \u76F4\u8FBE\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5","","\u5E38\u7528\u547D\u4EE4:"];for(let o of y){let e=_nullishCoalesce(_optionalChain([o, 'access', _11 => _11.alias, 'optionalAccess', _12 => _12[0]]), () => (o.path.join(" ")));n.push(` ${e.padEnd(12)} ${o.summary}`)}n.push(" mcp \u542F\u52A8 MCP server (stdio)"),n.push(""),n.push("\u547D\u540D\u7A7A\u95F4\uFF08stock-sdk <ns> <method> ...\uFF09:");let t=[...new Set(k.map(o=>o.path[0]))];return n.push(" "+t.join(" / ")),n.push(""),n.push("\u5168\u5C40\u9009\u9879:"),n.push(" -f, --format json|table|csv \u8F93\u51FA\u683C\u5F0F (\u9ED8\u8BA4 json)"),n.push(" --pretty JSON \u7F29\u8FDB\u7F8E\u5316"),n.push(" --timeout <ms> \u8BF7\u6C42\u8D85\u65F6"),n.push(" -q, --quiet \u9759\u9ED8(\u53EA\u8F93\u51FA\u6570\u636E)"),n.push(" -h, --help \u663E\u793A\u5E2E\u52A9"),n.push(" -V, --version \u663E\u793A\u7248\u672C"),n.push(""),n.push("\u793A\u4F8B:"),n.push(" stock-sdk quote 600519 000858 00700"),n.push(" stock-sdk kline 600519 --period weekly --adjust hfq --limit 30"),n.push(" stock-sdk indicators 600519 --ma 5,10,20 --macd"),n.push(" stock-sdk board industry list --format table"),n.push(" stock-sdk options etf dailyKline 10004336"),n.push(""),n.push("\u8FD0\u884C `stock-sdk <command> --help` \u67E5\u770B\u5355\u6761\u547D\u4EE4\u7528\u6CD5\u3002"),n.join(`
8
+ `)}function yn(n){let t=_nullishCoalesce(_optionalChain([n, 'access', _13 => _13.alias, 'optionalAccess', _14 => _14[0]]), () => (n.path.join(" "))),o=[`${t} \u2014\u2014 ${n.summary}`,""],e=(_nullishCoalesce(n.positional, () => ([]))).map(r=>{let s=r.required?`<${r.name}>`:`[${r.name}]`;return r.variadic?`${s}...`:s}).join(" ");if(o.push(`\u7528\u6CD5: stock-sdk ${t}${e?" "+e:""} [--flags]`),_optionalChain([n, 'access', _15 => _15.options, 'optionalAccess', _16 => _16.length])){o.push(""),o.push("\u9009\u9879:");for(let r of n.options){let s=r.enum?` (${r.enum.join("/")})`:"";o.push(` --${r.flag.padEnd(12)} ${r.desc}${s}`)}}return o.join(`
9
+ `)}function wn(n,t=new Set){let o=[],e={},r=!1,s=(i,a)=>{let u=e[i];if(u===void 0){e[i]=a;return}if(typeof a!="string"){e[i]=a;return}Array.isArray(u)?u.push(a):typeof u=="string"?e[i]=[u,a]:e[i]=a},c=i=>i!==void 0&&(i==="-"||!i.startsWith("-")||/^-\d/.test(i)),d=(i,a)=>{if(t.has(i))return s(i,!0),a;let u=n[a+1];return c(u)?(s(i,u),a+1):(s(i,!0),a)};for(let i=0;i<n.length;i++){let a=n[i];if(r){o.push(a);continue}if(a==="--"){r=!0;continue}if(a.startsWith("--")&&a.length>2){let u=a.slice(2),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else if(a.startsWith("-")&&a.length>1&&!Wn(a)){let u=a.slice(1),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else o.push(a)}return{positional:o,options:e}}function Wn(n){return/^-\d/.test(n)}var Yn=kn();process.stdout.on("error",n=>{n.code==="EPIPE"&&process.exit(0),process.stderr.write(`stock-sdk: stdout error: ${n.message}
10
+ `)});function Qn(){return"2.2.1"}function Xn(n){let t=_nullishCoalesce(n.format, () => (n.f)),o=t==="table"||t==="csv"?t:"json",e;if(typeof n.timeout=="string"||typeof n.timeout=="number"){let r=Number(n.timeout);!Number.isNaN(r)&&r>0&&(e=r)}return{format:o,pretty:n.pretty===!0,quiet:n.quiet===!0||n.q===!0,help:n.help===!0||n.h===!0,version:n.version===!0||n.V===!0,timeout:e}}async function Zn(){try{return(await Promise.resolve().then(() => _interopRequireWildcard(require("./mcp.cjs")))).startMcpServer(),0}catch(n){let t=n instanceof Error?n.message:String(n);return process.stderr.write(`stock-sdk: \u65E0\u6CD5\u542F\u52A8 MCP server: ${t}
11
+ `),1}}async function nt(n){let t="json";try{let o=wn(n,Yn),e=Xn(o.options);if(t=e.format,e.version)return process.stdout.write(Qn()+`
12
+ `),0;if(o.positional.length===0)return process.stdout.write(Sn()+`
13
+ `),0;if(o.positional[0]===hn)return e.help?(process.stdout.write(`stock-sdk mcp \u2014\u2014 \u542F\u52A8 MCP server (stdio transport)
14
14
 
15
15
  \u7528\u6CD5: stock-sdk mcp
16
16
  \u73AF\u5883\u53D8\u91CF: STOCK_SDK_MCP_TOOLS=core|full|<\u9017\u53F7\u5206\u9694\u5DE5\u5177\u540D>\uFF08\u9ED8\u8BA4 core\uFF09
17
- `),0):await Xn();let r=kn(o.positional);if(!r)throw new c(`\u672A\u77E5\u547D\u4EE4 "${o.positional.join(" ")}"`,"\u8FD0\u884C `stock-sdk --help` \u67E5\u770B\u53EF\u7528\u547D\u4EE4");if(e.help)return process.stdout.write(Sn(r.spec)+`
18
- `),0;let s=new (0, _chunkANBQABEDcjs.t)(e.timeout!==void 0?{timeout:e.timeout}:{}),p={positional:r.rest,options:o.options},d=await W(s,r.spec,p);Z(d)&&!e.quiet&&process.stderr.write(`stock-sdk: \u65E0\u6570\u636E
19
- `);let i=X(d,e.format,e.pretty);return i.length>0&&process.stdout.write(i+`
20
- `),0}catch(o){let e=V(o,t);return process.stderr.write(e.text+`
21
- `),F(o)}}Zn(process.argv.slice(2)).then(n=>{process.exitCode=n},n=>{let t=n instanceof Error?n.message:String(n);process.stderr.write(`stock-sdk: ${t}
17
+ `),0):await Zn();let r=gn(o.positional);if(!r)throw new p(`\u672A\u77E5\u547D\u4EE4 "${o.positional.join(" ")}"`,"\u8FD0\u884C `stock-sdk --help` \u67E5\u770B\u53EF\u7528\u547D\u4EE4");if(e.help)return process.stdout.write(yn(r.spec)+`
18
+ `),0;let s=new (0, _chunkRHTNYDO2cjs.t)(e.timeout!==void 0?{timeout:e.timeout}:{}),c={positional:r.rest,options:o.options},d=await W(s,r.spec,c);nn(d)&&!e.quiet&&process.stderr.write(`stock-sdk: \u65E0\u6570\u636E
19
+ `);let i=Z(d,e.format,e.pretty);return i.length>0&&process.stdout.write(i+`
20
+ `),0}catch(o){let e=G(o,t);return process.stderr.write(e.text+`
21
+ `),V(o)}}nt(process.argv.slice(2)).then(n=>{process.exitCode=n},n=>{let t=n instanceof Error?n.message:String(n);process.stderr.write(`stock-sdk: ${t}
22
22
  `),process.exitCode=1});
package/dist/cli.js CHANGED
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env node
2
- import{a as j,b as I,c as T,d as D,e as $,f as q,g as K,h as L,i as U,k as x,l as C,m as g}from"./chunk-WP37ZK2F.js";import{t as M}from"./chunk-3X645BZO.js";import"./chunk-G5KF73BW.js";import{d as O,e as b,g as N}from"./chunk-D2MGPO3R.js";import"./chunk-DU7MCVLJ.js";import{f as R,k as w}from"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";var c=class extends Error{constructor(t,o){super(t),this.name="CliUsageError",this.hint=o}},wn={INVALID_ARGUMENT:2,INVALID_SYMBOL:2,NOT_FOUND:2,NETWORK_ERROR:3,TIMEOUT:3,ABORTED:3,UPSTREAM_ERROR:4,UPSTREAM_EMPTY:4,PARSE_ERROR:4,HTTP_ERROR:4,RATE_LIMITED:5,CIRCUIT_OPEN:5};function F(n){if(n instanceof c)return 2;let t=w(n);return wn[t]??1}function V(n,t){let o=n instanceof Error?n.message:String(n);if(n instanceof c){if(t==="json")return{text:JSON.stringify({error:{code:"USAGE",message:o}})};let r=n.hint?`
3
- ${n.hint}`:"";return{text:`stock-sdk: ${o}${r}`}}let e=w(n);return t==="json"?{text:JSON.stringify({error:{code:e,message:o}})}:{text:`stock-sdk: ${e}: ${o}`}}var On={start:"startDate",end:"endDate"},bn=new Set(["format","f","pretty","quiet","q","help","h","version","V","timeout"]),Cn=new Set(["limit"]);function G(n){return bn.has(n)||Cn.has(n)}function En(n,t){let o={},e=new Map;for(let r of n.options??[])e.set(r.flag,r);for(let[r,s]of Object.entries(t)){if(G(r))continue;let p=e.get(r);if(!p){if(s===!0)continue;o[On[r]??r]=s;continue}o[p.field??p.flag]=An(p,s)}for(let r of n.options??[]){let s=r.field??r.flag;o[s]===void 0&&r.default!==void 0&&(o[s]=r.default)}return o}function An(n,t){switch(n.type){case"boolean":return t===!0||t==="true";case"number":return Number(S(t));case"number[]":return E(t);case"enum":case"string":{let o=S(t),e=typeof o=="boolean"?o:String(o);if(n.upper&&typeof e=="string"&&(e=e.toUpperCase()),n.type==="enum"&&n.enum&&typeof e=="string"&&!n.enum.includes(e))throw new c(`--${n.flag} \u975E\u6CD5\u503C\u300C${e}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return n.map&&typeof e=="string"&&e in n.map&&(e=n.map[e]),e}default:return t}}function S(n){return Array.isArray(n)?n[n.length-1]:n}function E(n){return(Array.isArray(n)?n.join(","):String(n)).split(",").map(o=>o.trim()).filter(o=>o.length>0).map(o=>Number(o)).filter(o=>Number.isInteger(o)&&o>0)}function H(n,t){let o=n.positional??[],e=[],r=0;for(let s of o){if(s.variadic){let d=t.slice(r);if(s.required&&d.length===0)throw new c(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);for(let i of d)e.push(J(s,i));return e}let p=t[r];if(p===void 0){if(s.required)throw new c(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);e.push(void 0)}else e.push(J(s,p));r++}return e}function J(n,t){let o=t;if(n.upper&&(o=o.toUpperCase()),n.enum&&!n.enum.includes(o))throw new c(`<${n.name}> \u975E\u6CD5\u503C\u300C${t}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return o}function m(n,t,o){let e=j(n,t);if(!e)throw new c(`\u672A\u77E5\u547D\u4EE4: ${t.join(" ")}`);return Promise.resolve(e.fn.apply(e.parent,o))}function Pn(n,t){let o=new Map;for(let r of n.options??[])o.set(r.flag,r);let e=o.size>0;for(let[r,s]of Object.entries(t)){if(G(r))continue;let p=o.get(r);if(!p){if(e)throw new c(`\u672A\u77E5\u9009\u9879 --${r}`,`\u8FD0\u884C \`stock-sdk ${n.path.join(" ")} --help\` \u67E5\u770B\u53EF\u7528\u9009\u9879`);continue}if(s===!0&&p.type!=="boolean"&&p.type!=="number[]")throw new c(`--${r} \u7F3A\u5C11\u503C`);if(p.type!=="number[]"){let d=S(s);if(p.upper&&typeof d=="string"&&(d=d.toUpperCase()),d!==s&&(t[r]=d),p.type==="enum"&&p.enum){let i=typeof d=="string"?d:String(d);if(!p.enum.includes(i))throw new c(`--${r} \u975E\u6CD5\u503C\u300C${i}\u300D`,`\u53EF\u9009: ${p.enum.join(" / ")}`)}if(p.type==="number"&&d!==!0&&Number.isNaN(Number(d)))throw new c(`--${r} \u9700\u8981\u6570\u503C\uFF0C\u5F97\u5230\u300C${String(d)}\u300D`)}}for(let r of n.options??[])if(r.required&&t[r.flag]===void 0)throw new c(`\u7F3A\u5C11\u5FC5\u586B\u9009\u9879 --${r.flag}`,r.desc)}function vn(n,t){let o=n.positional??[];for(let e=0;e<o.length;e++){let r=o[e],s=t[e];if(s===void 0||!r.enum)continue;let p=r.upper?s.toUpperCase():s;if(!r.enum.includes(p))throw new c(`<${r.name}> \u975E\u6CD5\u503C\u300C${s}\u300D`,`\u53EF\u9009: ${r.enum.join(" / ")}`)}}function _n(n,t){let o=t.limit;if(o===void 0||o===!0||!Array.isArray(n))return n;let e=Number(S(o));return!Number.isNaN(e)&&e>=1?n.slice(0,e):n}function W(n,t,o){Pn(t,o.options),vn(t,o.positional);let e=t.invoke?t.invoke(n,o):Rn(n,t,o);return Promise.resolve(e).then(r=>_n(r,o.options))}function Rn(n,t,o){let e=En(t,o.options);switch(t.argShape){case"none":return m(n,t.path,[]);case"codes[]":return z(o.positional,t),m(n,t.path,[o.positional]);case"codes+options":return z(o.positional,t),m(n,t.path,[o.positional,e]);case"symbol+options":{let r=H(t,o.positional);return m(n,t.path,[...r,e])}case"options":return m(n,t.path,[e]);case"positional":return m(n,t.path,H(t,o.positional));default:throw new c(`\u4E0D\u652F\u6301\u7684\u547D\u4EE4\u5F62\u6001: ${t.argShape}`)}}function z(n,t){if(n.length===0)throw new c(`\u547D\u4EE4 "${t.path.join(" ")}" \u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u4EE3\u7801\u53C2\u6570`)}function X(n,t,o){if(t==="json")return o?JSON.stringify(n,null,2):JSON.stringify(n);let e=Nn(n);return e.length===0?"":t==="csv"?Tn(e):jn(e)}function Z(n){return n==null||Array.isArray(n)&&n.length===0}function Nn(n){return Array.isArray(n)?n.map(t=>Y(t)?t:{value:t}):Y(n)?[n]:n==null?[]:[{value:n}]}function Y(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function nn(n){let t=[],o=new Set;for(let e of n)for(let r of Object.keys(e))o.has(r)||(o.add(r),t.push(r));return t}function tn(n){return n==null?"":typeof n=="object"?JSON.stringify(n):String(n)}function A(n){let t=0;for(let o of n){let e=o.codePointAt(0)??0;t+=Mn(e)?2:1}return t}function Mn(n){return n>=4352&&n<=4447||n>=11904&&n<=42191||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65072&&n<=65103||n>=65280&&n<=65376||n>=65504&&n<=65510||n>=131072&&n<=262141}function B(n,t,o){let e=Math.max(0,t-A(n)),r=" ".repeat(e);return o?r+n:n+r}function jn(n){let t=nn(n),o=n.map(i=>t.map(a=>tn(i[a]))),e=t.map((i,a)=>o.every(u=>u[a]===""||In(u[a]))),r=t.map((i,a)=>Math.max(A(i),...o.map(u=>A(u[a])))),s=t.map((i,a)=>B(i,r[a],e[a])).join(" "),p=r.map(i=>"-".repeat(i)).join(" "),d=o.map(i=>i.map((a,u)=>B(a,r[u],e[u])).join(" ")).join(`
4
- `);return[s,p,d].join(`
5
- `)}function In(n){return n!==""&&!Number.isNaN(Number(n))}function Tn(n){let t=nn(n),o=[t.map(Q).join(",")];for(let e of n)o.push(t.map(r=>Q(tn(e[r]))).join(","));return o.join(`
6
- `)}function Q(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function l(n){let t={flag:n.flag,type:n.type,desc:n.desc};return n.field!==void 0&&(t.field=n.field),n.enum&&(t.enum=n.enum),n.required&&(t.required=!0),n.upper&&(t.upper=!0),n.map&&(t.map=n.map),t}function Dn(n){let t={name:n.name};return n.required&&(t.required=!0),n.variadic&&(t.variadic=!0),n.enum&&(t.enum=n.enum),n.upper&&(t.upper=!0),t}function on(n,t){let o=(n.params??[]).filter(e=>e.cli!==!1).map(l);return{path:n.path,summary:n.summary,argShape:n.argShape,positional:n.positional?.map(Dn),options:o.length>0?o:void 0,invoke:t}}var $n=l($),qn=l(q),en=l(D),rn=l(K),sn=l(L),Kn=l(U),P=[{name:"symbol",required:!0}],Ln=[{name:"code",required:!0}],fn={"kline.withIndicators":(n,t)=>mn(n,t),"northbound.minute":(n,t)=>m(n,["northbound","minute"],[cn(t)]),"northbound.history":(n,t)=>{let o={};return t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),m(n,["northbound","history"],[cn(t),o])}};{let n=new Set(g.map(t=>t.path.join(".")));for(let t of Object.keys(fn))if(!n.has(t))throw new Error(`CLI_INVOKE_OVERRIDES \u5F15\u7528\u4E86 spec \u4E2D\u4E0D\u5B58\u5728\u7684\u65B9\u6CD5\u8DEF\u5F84: ${t}`)}var k=g.map(n=>on(n,fn[n.path.join(".")]));function Un(n){return k.find(t=>t.path.join(".")===n)?.options??[]}var xn=Un("kline.withIndicators"),an={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},Fn={flag:"market",type:"enum",enum:["a","hk","us","fund"],desc:"\u5E02\u573A a/hk/us/fund(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B\uFF1B\u57FA\u91D1\u987B\u663E\u5F0F --market fund)"},v={flag:"limit",type:"number",desc:"\u53EA\u53D6\u524D N \u6761(CLI \u8F93\u51FA\u5C42\u88C1\u526A)"};function un(n){let t=b(n);return t==="HK"?"hk":t==="US"?"us":"a"}function Vn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function pn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Hn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function cn(n){let t=n.options.direction??n.positional[0];if(t!==void 0){if(t==="north"||t==="south")return t;throw new c("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function dn(n){let t={};return n.options.period!==void 0&&(t.period=n.options.period),n.options.adjust!==void 0&&(t.adjust=n.options.adjust==="none"?"":n.options.adjust),n.options.start!==void 0&&(t.startDate=n.options.start),n.options.end!==void 0&&(t.endDate=n.options.end),t}function Jn(n){let t={};for(let o of x){let e=n[o];if(e===void 0)continue;if(e===!0){t[o]={};continue}let r=E(e);r.length>0&&(t[o]={periods:r})}for(let o of C){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function mn(n,t){let o=_(t,"indicators"),e={};return t.options.period!==void 0&&(e.period=t.options.period),t.options.adjust!==void 0&&(e.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),t.options.market!==void 0&&(e.market=t.options.market),e.indicators=Jn(t.options),m(n,["kline","withIndicators"],[o,e])}var y=[{path:["quotes","cnSimple"],alias:["quote"],summary:"\u884C\u60C5(\u81EA\u52A8\u8BC6\u522B\u5E02\u573A\uFF1B--full \u5168\u91CF\u4E94\u6863\uFF1B--market \u5F3A\u5236\u5E02\u573A)",argShape:"codes[]",positional:[{name:"code",required:!0,variadic:!0}],options:[Fn,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let o=t.positional;if(o.length===0)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let e=Hn(t.options.market),r=t.options.full===!0,s={a:[],hk:[],us:[],fund:[]};for(let u of o){if(e==="fund"){s.fund.push(u);continue}let f=e??"a";try{let h=e?O(u,{market:Vn(e)}):O(u);e||(f=h.market==="HK"?"hk":h.market==="US"?"us":"a"),s[f].push(f==="a"?N(h):h.code)}catch(h){if(e&&h instanceof R&&b(u)!==void 0)throw h;s[f].push(u)}}let p=[];s.a.length&&p.push(Promise.resolve(r?n.quotes.cn(s.a):n.quotes.cnSimple(s.a))),s.hk.length&&p.push(Promise.resolve(n.quotes.hk(s.hk))),s.us.length&&p.push(Promise.resolve(n.quotes.us(s.us))),s.fund.length&&p.push(Promise.resolve(n.quotes.fund(s.fund)));let d=await Promise.allSettled(p),i=[],a=[];for(let u of d)u.status==="fulfilled"?i.push(...u.value):a.push(u.reason);if(i.length===0&&a.length>0)throw a[0];if(a.length>0){let u=a.map(f=>f instanceof Error?f.message:String(f)).join("; ");process.stderr.write(`stock-sdk: \u90E8\u5206\u5E02\u573A\u884C\u60C5\u67E5\u8BE2\u5931\u8D25: ${u}
7
- `)}return i}},{path:["kline","cn"],alias:["kline"],summary:"K\u7EBF(--market a/hk/us\uFF1B--limit \u622A\u65AD)",argShape:"symbol+options",positional:P,options:[$n,en,rn,sn,an,v],invoke:async(n,t)=>{let o=_(t,"kline"),e=pn(t.options.market)??un(o),r=dn(t);return m(n,["kline",e==="hk"?"hk":e==="us"?"us":"cn"],[o,r])}},{path:["kline","cnMinute"],alias:["minute"],summary:"\u5206\u949FK\u7EBF/\u5206\u65F6(--period 1/5/15/30/60\uFF1B--market\uFF1B\u6E2F/\u7F8E --ndays)",argShape:"symbol+options",positional:P,options:[qn,en,rn,sn,an,v,Kn],invoke:async(n,t)=>{let o=_(t,"minute"),e=pn(t.options.market)??un(o),r=dn(t),s=e==="hk"?"hkMinute":e==="us"?"usMinute":"cnMinute";if(t.options.ndays!==void 0){if(s==="cnMinute")throw new c("--ndays \u4EC5\u652F\u6301\u6E2F/\u7F8E\u80A1\u5206\u65F6","\u793A\u4F8B: stock-sdk minute 00700 --ndays 5");r.ndays=Number(t.options.ndays)}return m(n,["kline",s],[o,r])}},{path:["kline","withIndicators"],alias:["indicators"],summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10,20 --macd --kdj --rsi --boll ...\uFF1B--market)",argShape:"symbol+options",positional:P,options:xn,invoke:mn},{path:["search"],alias:["search"],summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1(--limit \u622A\u65AD)",argShape:"positional",positional:[{name:"keyword",required:!0}],options:[v],invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new c("\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: stock-sdk search <keyword>");return n.search(o)}},{path:["quotes","timeline"],alias:["timeline"],summary:"\u5F53\u65E5\u5206\u65F6",argShape:"positional",positional:Ln,invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk timeline <code>");return n.quotes.timeline(o)}},{path:["codes","cn"],alias:["codes"],summary:"\u4EE3\u7801\u5217\u8868(market: a/hk/us/fund\uFF1B--simple\uFF1B--board sh/sz/bj/kc/cy)",argShape:"positional",positional:[{name:"market",required:!0,enum:["a","hk","us","fund"]}],options:[{flag:"simple",type:"boolean",desc:"\u53BB\u524D\u7F00"},{flag:"board",field:"market",type:"string",desc:"\u677F\u5757 sh/sz/bj/kc/cy(\u4EC5A\u80A1)"}],invoke:async(n,t)=>{let o=t.positional[0],e={};if(t.options.simple===!0&&(e.simple=!0),t.options.board!==void 0){if(o!=="a")throw new c("--board \u4EC5\u652F\u6301 A \u80A1(market=a)","\u53EF\u9009: sh / sz / bj / kc / cy");e.market=t.options.board}switch(o){case"a":return m(n,["codes","cn"],[e]);case"us":return m(n,["codes","us"],[e]);case"hk":return n.codes.hk();case"fund":return n.codes.fund();default:throw new c(`\u672A\u77E5\u5E02\u573A: ${o}`,"\u53EF\u9009: a / hk / us / fund")}}},{path:["calendar","marketStatus"],alias:["status"],summary:"\u5E02\u573A\u72B6\u6001(a/hk/us\uFF0C\u9ED8\u8BA4 a)",argShape:"positional",positional:[{name:"market",upper:!0,enum:I}],invoke:async(n,t)=>{let o=t.positional[0],e=o?o.toUpperCase():"A";return n.calendar.marketStatus(e)}},{path:["marketEvent","ztPool"],alias:["ztpool"],summary:"\u6DA8\u505C\u80A1\u6C60 zt/yesterday/strong/sub_new/broken/dt(--date)",argShape:"positional",positional:[{name:"type",enum:T}],options:[{flag:"date",type:"string",desc:"\u4EA4\u6613\u65E5 YYYYMMDD"}],invoke:async(n,t)=>{let o=t.positional[0],e=t.options.date;return n.marketEvent.ztPool(o,e)}},{path:["call"],alias:["call"],summary:"\u539F\u59CB\u76F4\u901A\uFF1A\u8C03\u7528\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5\uFF08--args \u4F20 JSON \u5B9E\u53C2\u6570\u7EC4\uFF09",argShape:"positional",positional:[{name:"method",required:!0}],options:[{flag:"args",type:"string",desc:`JSON \u5B9E\u53C2\u6570\u7EC4\uFF0C\u5982 '[["sh600519"]]'`}],invoke:(n,t)=>{let o=t.positional[0];if(!o)throw new c("call \u7F3A\u5C11\u65B9\u6CD5\u8DEF\u5F84","\u7528\u6CD5: stock-sdk call <ns.method> --args '[...]'");let e=[],r=t.options.args;if(typeof r=="string")try{let p=JSON.parse(r);e=Array.isArray(p)?p:[p]}catch{throw new c("--args \u4E0D\u662F\u5408\u6CD5 JSON",`\u793A\u4F8B: --args '[["sh600519"]]'`)}if(!new Set(Gn()).has(o))throw new c(`\u672A\u77E5\u65B9\u6CD5: ${o}`,"\u5F62\u5982 quotes.cn / kline.cn(\u4EC5\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5,\u89C1 stock-sdk --help)");return m(n,o.split("."),e)}}],ln="mcp",zn=[...y,...k];function Gn(){return g.map(n=>n.path.join("."))}function _(n,t){let o=n.positional[0];if(!o)throw new c("\u7F3A\u5C11\u4EE3\u7801\u53C2\u6570",`\u7528\u6CD5: stock-sdk ${t} <symbol>`);return o}function hn(){let n=new Set(["help","h","version","V","quiet","q","pretty"]);for(let t of zn)for(let o of t.options??[])o.type==="boolean"&&n.add(o.flag);for(let t of C)n.add(t);return n}function kn(n){if(n.length===0)return null;for(let o=Math.min(3,n.length);o>=2;o--){let e=n.slice(0,o).join("."),r=k.find(s=>s.path.join(".")===e);if(r)return{spec:r,rest:n.slice(o)}}for(let o of y)if(o.alias?.includes(n[0]))return{spec:o,rest:n.slice(1)};let t=k.find(o=>o.path.join(".")===n[0]);return t?{spec:t,rest:n.slice(1)}:null}function gn(){let n=["stock-sdk \u2014\u2014 \u80A1\u7968\u884C\u60C5\u547D\u4EE4\u884C\uFF08\u57FA\u4E8E stock-sdk v2 \u547D\u540D\u7A7A\u95F4 API\uFF09","","\u7528\u6CD5:"," stock-sdk <command> [args] [--flags]"," stock-sdk <namespace> <method> [args] [--flags] # \u76F4\u8FBE\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5","","\u5E38\u7528\u547D\u4EE4:"];for(let o of y){let e=o.alias?.[0]??o.path.join(" ");n.push(` ${e.padEnd(12)} ${o.summary}`)}n.push(" mcp \u542F\u52A8 MCP server (stdio)"),n.push(""),n.push("\u547D\u540D\u7A7A\u95F4\uFF08stock-sdk <ns> <method> ...\uFF09:");let t=[...new Set(k.map(o=>o.path[0]))];return n.push(" "+t.join(" / ")),n.push(""),n.push("\u5168\u5C40\u9009\u9879:"),n.push(" -f, --format json|table|csv \u8F93\u51FA\u683C\u5F0F (\u9ED8\u8BA4 json)"),n.push(" --pretty JSON \u7F29\u8FDB\u7F8E\u5316"),n.push(" --timeout <ms> \u8BF7\u6C42\u8D85\u65F6"),n.push(" -q, --quiet \u9759\u9ED8(\u53EA\u8F93\u51FA\u6570\u636E)"),n.push(" -h, --help \u663E\u793A\u5E2E\u52A9"),n.push(" -V, --version \u663E\u793A\u7248\u672C"),n.push(""),n.push("\u793A\u4F8B:"),n.push(" stock-sdk quote 600519 000858 00700"),n.push(" stock-sdk kline 600519 --period weekly --adjust hfq --limit 30"),n.push(" stock-sdk indicators 600519 --ma 5,10,20 --macd"),n.push(" stock-sdk board industry list --format table"),n.push(" stock-sdk options etf dailyKline 10004336"),n.push(""),n.push("\u8FD0\u884C `stock-sdk <command> --help` \u67E5\u770B\u5355\u6761\u547D\u4EE4\u7528\u6CD5\u3002"),n.join(`
8
- `)}function Sn(n){let t=n.alias?.[0]??n.path.join(" "),o=[`${t} \u2014\u2014 ${n.summary}`,""],e=(n.positional??[]).map(r=>{let s=r.required?`<${r.name}>`:`[${r.name}]`;return r.variadic?`${s}...`:s}).join(" ");if(o.push(`\u7528\u6CD5: stock-sdk ${t}${e?" "+e:""} [--flags]`),n.options?.length){o.push(""),o.push("\u9009\u9879:");for(let r of n.options){let s=r.enum?` (${r.enum.join("/")})`:"";o.push(` --${r.flag.padEnd(12)} ${r.desc}${s}`)}}return o.join(`
9
- `)}function yn(n,t=new Set){let o=[],e={},r=!1,s=(i,a)=>{let u=e[i];if(u===void 0){e[i]=a;return}if(typeof a!="string"){e[i]=a;return}Array.isArray(u)?u.push(a):typeof u=="string"?e[i]=[u,a]:e[i]=a},p=i=>i!==void 0&&(i==="-"||!i.startsWith("-")||/^-\d/.test(i)),d=(i,a)=>{if(t.has(i))return s(i,!0),a;let u=n[a+1];return p(u)?(s(i,u),a+1):(s(i,!0),a)};for(let i=0;i<n.length;i++){let a=n[i];if(r){o.push(a);continue}if(a==="--"){r=!0;continue}if(a.startsWith("--")&&a.length>2){let u=a.slice(2),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else if(a.startsWith("-")&&a.length>1&&!Wn(a)){let u=a.slice(1),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else o.push(a)}return{positional:o,options:e}}function Wn(n){return/^-\d/.test(n)}var Yn=hn();process.stdout.on("error",n=>{n.code==="EPIPE"&&process.exit(0),process.stderr.write(`stock-sdk: stdout error: ${n.message}
10
- `)});function Bn(){return"2.1.0"}function Qn(n){let t=n.format??n.f,o=t==="table"||t==="csv"?t:"json",e;if(typeof n.timeout=="string"||typeof n.timeout=="number"){let r=Number(n.timeout);!Number.isNaN(r)&&r>0&&(e=r)}return{format:o,pretty:n.pretty===!0,quiet:n.quiet===!0||n.q===!0,help:n.help===!0||n.h===!0,version:n.version===!0||n.V===!0,timeout:e}}async function Xn(){try{return(await import("./mcp.js")).startMcpServer(),0}catch(n){let t=n instanceof Error?n.message:String(n);return process.stderr.write(`stock-sdk: \u65E0\u6CD5\u542F\u52A8 MCP server: ${t}
11
- `),1}}async function Zn(n){let t="json";try{let o=yn(n,Yn),e=Qn(o.options);if(t=e.format,e.version)return process.stdout.write(Bn()+`
12
- `),0;if(o.positional.length===0)return process.stdout.write(gn()+`
13
- `),0;if(o.positional[0]===ln)return e.help?(process.stdout.write(`stock-sdk mcp \u2014\u2014 \u542F\u52A8 MCP server (stdio transport)
2
+ import{a as j,b as T,c as D,d as $,e as q,f as K,g as L,h as U,i as x,k as F,l as C,m as g}from"./chunk-WHIIIKKO.js";import{t as I}from"./chunk-TXJPUZJI.js";import"./chunk-G5KF73BW.js";import{d as N,e as O,f as b,h as M}from"./chunk-ZZ2IBUMV.js";import"./chunk-DU7MCVLJ.js";import{f as R,k as w}from"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";var p=class extends Error{constructor(t,o){super(t),this.name="CliUsageError",this.hint=o}},On={INVALID_ARGUMENT:2,INVALID_SYMBOL:2,NOT_FOUND:2,NETWORK_ERROR:3,TIMEOUT:3,ABORTED:3,UPSTREAM_ERROR:4,UPSTREAM_EMPTY:4,PARSE_ERROR:4,HTTP_ERROR:4,RATE_LIMITED:5,CIRCUIT_OPEN:5};function V(n){if(n instanceof p)return 2;let t=w(n);return On[t]??1}function G(n,t){let o=n instanceof Error?n.message:String(n);if(n instanceof p){if(t==="json")return{text:JSON.stringify({error:{code:"USAGE",message:o}})};let r=n.hint?`
3
+ ${n.hint}`:"";return{text:`stock-sdk: ${o}${r}`}}let e=w(n);return t==="json"?{text:JSON.stringify({error:{code:e,message:o}})}:{text:`stock-sdk: ${e}: ${o}`}}var bn={start:"startDate",end:"endDate"},Cn=new Set(["format","f","pretty","quiet","q","help","h","version","V","timeout"]),En=new Set(["limit"]);function B(n){return Cn.has(n)||En.has(n)}function An(n,t){let o={},e=new Map;for(let r of n.options??[])e.set(r.flag,r);for(let[r,s]of Object.entries(t)){if(B(r))continue;let c=e.get(r);if(!c){if(s===!0)continue;o[bn[r]??r]=s;continue}o[c.field??c.flag]=Pn(c,s)}for(let r of n.options??[]){let s=r.field??r.flag;o[s]===void 0&&r.default!==void 0&&(o[s]=r.default)}return o}function Pn(n,t){switch(n.type){case"boolean":return t===!0||t==="true";case"number":return Number(S(t));case"number[]":return E(t);case"enum":case"string":{let o=S(t),e=typeof o=="boolean"?o:String(o);if(n.upper&&typeof e=="string"&&(e=e.toUpperCase()),n.type==="enum"&&n.enum&&typeof e=="string"&&!n.enum.includes(e))throw new p(`--${n.flag} \u975E\u6CD5\u503C\u300C${e}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return n.map&&typeof e=="string"&&e in n.map&&(e=n.map[e]),e}default:return t}}function S(n){return Array.isArray(n)?n[n.length-1]:n}function E(n){return(Array.isArray(n)?n.join(","):String(n)).split(",").map(o=>o.trim()).filter(o=>o.length>0).map(o=>Number(o)).filter(o=>Number.isInteger(o)&&o>0)}function H(n,t){let o=n.positional??[],e=[],r=0;for(let s of o){if(s.variadic){let d=t.slice(r);if(s.required&&d.length===0)throw new p(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);for(let i of d)e.push(J(s,i));return e}let c=t[r];if(c===void 0){if(s.required)throw new p(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);e.push(void 0)}else e.push(J(s,c));r++}return e}function J(n,t){let o=t;if(n.upper&&(o=o.toUpperCase()),n.enum&&!n.enum.includes(o))throw new p(`<${n.name}> \u975E\u6CD5\u503C\u300C${t}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return o}function m(n,t,o){let e=j(n,t);if(!e)throw new p(`\u672A\u77E5\u547D\u4EE4: ${t.join(" ")}`);return Promise.resolve(e.fn.apply(e.parent,o))}function vn(n,t){let o=new Map;for(let r of n.options??[])o.set(r.flag,r);let e=o.size>0;for(let[r,s]of Object.entries(t)){if(B(r))continue;let c=o.get(r);if(!c){if(e)throw new p(`\u672A\u77E5\u9009\u9879 --${r}`,`\u8FD0\u884C \`stock-sdk ${n.path.join(" ")} --help\` \u67E5\u770B\u53EF\u7528\u9009\u9879`);continue}if(s===!0&&c.type!=="boolean"&&c.type!=="number[]")throw new p(`--${r} \u7F3A\u5C11\u503C`);if(c.type!=="number[]"){let d=S(s);if(c.upper&&typeof d=="string"&&(d=d.toUpperCase()),d!==s&&(t[r]=d),c.type==="enum"&&c.enum){let i=typeof d=="string"?d:String(d);if(!c.enum.includes(i))throw new p(`--${r} \u975E\u6CD5\u503C\u300C${i}\u300D`,`\u53EF\u9009: ${c.enum.join(" / ")}`)}if(c.type==="number"&&d!==!0&&Number.isNaN(Number(d)))throw new p(`--${r} \u9700\u8981\u6570\u503C\uFF0C\u5F97\u5230\u300C${String(d)}\u300D`)}}for(let r of n.options??[])if(r.required&&t[r.flag]===void 0)throw new p(`\u7F3A\u5C11\u5FC5\u586B\u9009\u9879 --${r.flag}`,r.desc)}function _n(n,t){let o=n.positional??[];for(let e=0;e<o.length;e++){let r=o[e],s=t[e];if(s===void 0||!r.enum)continue;let c=r.upper?s.toUpperCase():s;if(!r.enum.includes(c))throw new p(`<${r.name}> \u975E\u6CD5\u503C\u300C${s}\u300D`,`\u53EF\u9009: ${r.enum.join(" / ")}`)}}function Rn(n,t){let o=t.limit;if(o===void 0||o===!0||!Array.isArray(n))return n;let e=Number(S(o));return!Number.isNaN(e)&&e>=1?n.slice(0,e):n}function W(n,t,o){vn(t,o.options),_n(t,o.positional);let e=t.invoke?t.invoke(n,o):Nn(n,t,o);return Promise.resolve(e).then(r=>Rn(r,o.options))}function Nn(n,t,o){let e=An(t,o.options);switch(t.argShape){case"none":return m(n,t.path,[]);case"codes[]":return z(o.positional,t),m(n,t.path,[o.positional]);case"codes+options":return z(o.positional,t),m(n,t.path,[o.positional,e]);case"symbol+options":{let r=H(t,o.positional);return m(n,t.path,[...r,e])}case"options":return m(n,t.path,[e]);case"positional":return m(n,t.path,H(t,o.positional));default:throw new p(`\u4E0D\u652F\u6301\u7684\u547D\u4EE4\u5F62\u6001: ${t.argShape}`)}}function z(n,t){if(n.length===0)throw new p(`\u547D\u4EE4 "${t.path.join(" ")}" \u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u4EE3\u7801\u53C2\u6570`)}function Z(n,t,o){if(t==="json")return o?JSON.stringify(n,null,2):JSON.stringify(n);let e=Mn(n);return e.length===0?"":t==="csv"?Dn(e):jn(e)}function nn(n){return n==null||Array.isArray(n)&&n.length===0}function Mn(n){return Array.isArray(n)?n.map(t=>Y(t)?t:{value:t}):Y(n)?[n]:n==null?[]:[{value:n}]}function Y(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function tn(n){let t=[],o=new Set;for(let e of n)for(let r of Object.keys(e))o.has(r)||(o.add(r),t.push(r));return t}function on(n){return n==null?"":typeof n=="object"?JSON.stringify(n):String(n)}function A(n){let t=0;for(let o of n){let e=o.codePointAt(0)??0;t+=In(e)?2:1}return t}function In(n){return n>=4352&&n<=4447||n>=11904&&n<=42191||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65072&&n<=65103||n>=65280&&n<=65376||n>=65504&&n<=65510||n>=131072&&n<=262141}function Q(n,t,o){let e=Math.max(0,t-A(n)),r=" ".repeat(e);return o?r+n:n+r}function jn(n){let t=tn(n),o=n.map(i=>t.map(a=>on(i[a]))),e=t.map((i,a)=>o.every(u=>u[a]===""||Tn(u[a]))),r=t.map((i,a)=>Math.max(A(i),...o.map(u=>A(u[a])))),s=t.map((i,a)=>Q(i,r[a],e[a])).join(" "),c=r.map(i=>"-".repeat(i)).join(" "),d=o.map(i=>i.map((a,u)=>Q(a,r[u],e[u])).join(" ")).join(`
4
+ `);return[s,c,d].join(`
5
+ `)}function Tn(n){return n!==""&&!Number.isNaN(Number(n))}function Dn(n){let t=tn(n),o=[t.map(X).join(",")];for(let e of n)o.push(t.map(r=>X(on(e[r]))).join(","));return o.join(`
6
+ `)}function X(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function h(n){let t={flag:n.flag,type:n.type,desc:n.desc};return n.field!==void 0&&(t.field=n.field),n.enum&&(t.enum=n.enum),n.required&&(t.required=!0),n.upper&&(t.upper=!0),n.map&&(t.map=n.map),t}function $n(n){let t={name:n.name};return n.required&&(t.required=!0),n.variadic&&(t.variadic=!0),n.enum&&(t.enum=n.enum),n.upper&&(t.upper=!0),t}function en(n,t){let o=(n.params??[]).filter(e=>e.cli!==!1).map(h);return{path:n.path,summary:n.summary,argShape:n.argShape,positional:n.positional?.map($n),options:o.length>0?o:void 0,invoke:t}}var qn=h(q),Kn=h(K),rn=h($),sn=h(L),an=h(U),Ln=h(x),P=[{name:"symbol",required:!0}],Un=[{name:"code",required:!0}],mn={"kline.withIndicators":(n,t)=>ln(n,t),"northbound.minute":(n,t)=>m(n,["northbound","minute"],[dn(t)]),"northbound.history":(n,t)=>{let o={};return t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),m(n,["northbound","history"],[dn(t),o])}};{let n=new Set(g.map(t=>t.path.join(".")));for(let t of Object.keys(mn))if(!n.has(t))throw new Error(`CLI_INVOKE_OVERRIDES \u5F15\u7528\u4E86 spec \u4E2D\u4E0D\u5B58\u5728\u7684\u65B9\u6CD5\u8DEF\u5F84: ${t}`)}var k=g.map(n=>en(n,mn[n.path.join(".")]));function xn(n){return k.find(t=>t.path.join(".")===n)?.options??[]}var Fn=xn("kline.withIndicators"),un={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},Vn={flag:"market",type:"enum",enum:["a","hk","us","fund"],desc:"\u5E02\u573A a/hk/us/fund(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B\uFF1B\u57FA\u91D1\u987B\u663E\u5F0F --market fund)"},v={flag:"limit",type:"number",desc:"\u53EA\u53D6\u524D N \u6761(CLI \u8F93\u51FA\u5C42\u88C1\u526A)"};function pn(n){let t=b(n);if(t==="GLOBAL")throw new p(`\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u8DEF\u7531 GLOBAL \u5E02\u573A\u7B26\u53F7: ${n}`,"\u6D77\u5916\u7279\u6B8A\u6307\u6570\u6682\u65E0\u6B63\u5F0F K \u7EBF\u5165\u53E3,\u53EF\u7528 raw-secid \u76F4\u901A: stock-sdk kline 100.GDAXI --market us");return t==="HK"?"hk":t==="US"?"us":"a"}function Gn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function cn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new p("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Hn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new p("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function dn(n){let t=n.options.direction??n.positional[0];if(t!==void 0){if(t==="north"||t==="south")return t;throw new p("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function fn(n){let t={};return n.options.period!==void 0&&(t.period=n.options.period),n.options.adjust!==void 0&&(t.adjust=n.options.adjust==="none"?"":n.options.adjust),n.options.start!==void 0&&(t.startDate=n.options.start),n.options.end!==void 0&&(t.endDate=n.options.end),t}function Jn(n){let t={};for(let o of F){let e=n[o];if(e===void 0)continue;if(e===!0){t[o]={};continue}let r=E(e);r.length>0&&(t[o]={periods:r})}for(let o of C){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function ln(n,t){let o=_(t,"indicators"),e={};return t.options.period!==void 0&&(e.period=t.options.period),t.options.adjust!==void 0&&(e.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),t.options.market!==void 0&&(e.market=t.options.market),e.indicators=Jn(t.options),m(n,["kline","withIndicators"],[o,e])}var y=[{path:["quotes","cnSimple"],alias:["quote"],summary:"\u884C\u60C5(\u81EA\u52A8\u8BC6\u522B\u5E02\u573A\uFF1B--full \u5168\u91CF\u4E94\u6863\uFF1B--market \u5F3A\u5236\u5E02\u573A)",argShape:"codes[]",positional:[{name:"code",required:!0,variadic:!0}],options:[Vn,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let o=t.positional;if(o.length===0)throw new p("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let e=Hn(t.options.market),r=t.options.full===!0,s={a:[],hk:[],us:[],fund:[]};for(let u of o){if(e==="fund"){s.fund.push(u);continue}let f=e??"a";try{let l=e?O(u,{market:Gn(e)}):O(u);if(e||(f=l.market==="HK"?"hk":l.market==="US"?"us":"a"),l.assetType==="index"&&N(l.code))throw new p(`\u7279\u6B8A\u6307\u6570 ${l.code} \u65E0\u884C\u60C5\u63A5\u53E3`,`\u884C\u60C5\u6E90(\u817E\u8BAF)\u4E0D\u8986\u76D6\u4E2D\u8BC1/\u6052\u751F/\u6D77\u5916\u7279\u6B8A\u6307\u6570;K \u7EBF\u8BF7\u7528: stock-sdk kline ${l.code}`);s[f].push(f==="a"?M(l):l.code)}catch(l){if(l instanceof p||e&&l instanceof R&&b(u)!==void 0)throw l;s[f].push(u)}}let c=[];s.a.length&&c.push(Promise.resolve(r?n.quotes.cn(s.a):n.quotes.cnSimple(s.a))),s.hk.length&&c.push(Promise.resolve(n.quotes.hk(s.hk))),s.us.length&&c.push(Promise.resolve(n.quotes.us(s.us))),s.fund.length&&c.push(Promise.resolve(n.quotes.fund(s.fund)));let d=await Promise.allSettled(c),i=[],a=[];for(let u of d)u.status==="fulfilled"?i.push(...u.value):a.push(u.reason);if(i.length===0&&a.length>0)throw a[0];if(a.length>0){let u=a.map(f=>f instanceof Error?f.message:String(f)).join("; ");process.stderr.write(`stock-sdk: \u90E8\u5206\u5E02\u573A\u884C\u60C5\u67E5\u8BE2\u5931\u8D25: ${u}
7
+ `)}return i}},{path:["kline","cn"],alias:["kline"],summary:"K\u7EBF(--market a/hk/us\uFF1B--limit \u622A\u65AD)",argShape:"symbol+options",positional:P,options:[qn,rn,sn,an,un,v],invoke:async(n,t)=>{let o=_(t,"kline"),e=cn(t.options.market)??pn(o),r=fn(t);return m(n,["kline",e==="hk"?"hk":e==="us"?"us":"cn"],[o,r])}},{path:["kline","cnMinute"],alias:["minute"],summary:"\u5206\u949FK\u7EBF/\u5206\u65F6(--period 1/5/15/30/60\uFF1B--market\uFF1B\u6E2F/\u7F8E --ndays)",argShape:"symbol+options",positional:P,options:[Kn,rn,sn,an,un,v,Ln],invoke:async(n,t)=>{let o=_(t,"minute"),e=cn(t.options.market)??pn(o),r=fn(t),s=e==="hk"?"hkMinute":e==="us"?"usMinute":"cnMinute";if(t.options.ndays!==void 0){if(s==="cnMinute")throw new p("--ndays \u4EC5\u652F\u6301\u6E2F/\u7F8E\u80A1\u5206\u65F6","\u793A\u4F8B: stock-sdk minute 00700 --ndays 5");r.ndays=Number(t.options.ndays)}return m(n,["kline",s],[o,r])}},{path:["kline","withIndicators"],alias:["indicators"],summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10,20 --macd --kdj --rsi --boll ...\uFF1B--market)",argShape:"symbol+options",positional:P,options:Fn,invoke:ln},{path:["search"],alias:["search"],summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1(--limit \u622A\u65AD)",argShape:"positional",positional:[{name:"keyword",required:!0}],options:[v],invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new p("\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: stock-sdk search <keyword>");return n.search(o)}},{path:["quotes","timeline"],alias:["timeline"],summary:"\u5F53\u65E5\u5206\u65F6",argShape:"positional",positional:Un,invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new p("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk timeline <code>");return n.quotes.timeline(o)}},{path:["codes","cn"],alias:["codes"],summary:"\u4EE3\u7801\u5217\u8868(market: a/hk/us/fund\uFF1B--simple\uFF1B--board sh/sz/bj/kc/cy)",argShape:"positional",positional:[{name:"market",required:!0,enum:["a","hk","us","fund"]}],options:[{flag:"simple",type:"boolean",desc:"\u53BB\u524D\u7F00"},{flag:"board",field:"market",type:"string",desc:"\u677F\u5757 sh/sz/bj/kc/cy(\u4EC5A\u80A1)"}],invoke:async(n,t)=>{let o=t.positional[0],e={};if(t.options.simple===!0&&(e.simple=!0),t.options.board!==void 0){if(o!=="a")throw new p("--board \u4EC5\u652F\u6301 A \u80A1(market=a)","\u53EF\u9009: sh / sz / bj / kc / cy");e.market=t.options.board}switch(o){case"a":return m(n,["codes","cn"],[e]);case"us":return m(n,["codes","us"],[e]);case"hk":return n.codes.hk();case"fund":return n.codes.fund();default:throw new p(`\u672A\u77E5\u5E02\u573A: ${o}`,"\u53EF\u9009: a / hk / us / fund")}}},{path:["calendar","marketStatus"],alias:["status"],summary:"\u5E02\u573A\u72B6\u6001(a/hk/us\uFF0C\u9ED8\u8BA4 a)",argShape:"positional",positional:[{name:"market",upper:!0,enum:T}],invoke:async(n,t)=>{let o=t.positional[0],e=o?o.toUpperCase():"A";return n.calendar.marketStatus(e)}},{path:["marketEvent","ztPool"],alias:["ztpool"],summary:"\u6DA8\u505C\u80A1\u6C60 zt/yesterday/strong/sub_new/broken/dt(--date)",argShape:"positional",positional:[{name:"type",enum:D}],options:[{flag:"date",type:"string",desc:"\u4EA4\u6613\u65E5 YYYYMMDD"}],invoke:async(n,t)=>{let o=t.positional[0],e=t.options.date;return n.marketEvent.ztPool(o,e)}},{path:["call"],alias:["call"],summary:"\u539F\u59CB\u76F4\u901A\uFF1A\u8C03\u7528\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5\uFF08--args \u4F20 JSON \u5B9E\u53C2\u6570\u7EC4\uFF09",argShape:"positional",positional:[{name:"method",required:!0}],options:[{flag:"args",type:"string",desc:`JSON \u5B9E\u53C2\u6570\u7EC4\uFF0C\u5982 '[["sh600519"]]'`}],invoke:(n,t)=>{let o=t.positional[0];if(!o)throw new p("call \u7F3A\u5C11\u65B9\u6CD5\u8DEF\u5F84","\u7528\u6CD5: stock-sdk call <ns.method> --args '[...]'");let e=[],r=t.options.args;if(typeof r=="string")try{let c=JSON.parse(r);e=Array.isArray(c)?c:[c]}catch{throw new p("--args \u4E0D\u662F\u5408\u6CD5 JSON",`\u793A\u4F8B: --args '[["sh600519"]]'`)}if(!new Set(Bn()).has(o))throw new p(`\u672A\u77E5\u65B9\u6CD5: ${o}`,"\u5F62\u5982 quotes.cn / kline.cn(\u4EC5\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5,\u89C1 stock-sdk --help)");return m(n,o.split("."),e)}}],hn="mcp",zn=[...y,...k];function Bn(){return g.map(n=>n.path.join("."))}function _(n,t){let o=n.positional[0];if(!o)throw new p("\u7F3A\u5C11\u4EE3\u7801\u53C2\u6570",`\u7528\u6CD5: stock-sdk ${t} <symbol>`);return o}function kn(){let n=new Set(["help","h","version","V","quiet","q","pretty"]);for(let t of zn)for(let o of t.options??[])o.type==="boolean"&&n.add(o.flag);for(let t of C)n.add(t);return n}function gn(n){if(n.length===0)return null;for(let o=Math.min(3,n.length);o>=2;o--){let e=n.slice(0,o).join("."),r=k.find(s=>s.path.join(".")===e);if(r)return{spec:r,rest:n.slice(o)}}for(let o of y)if(o.alias?.includes(n[0]))return{spec:o,rest:n.slice(1)};let t=k.find(o=>o.path.join(".")===n[0]);return t?{spec:t,rest:n.slice(1)}:null}function Sn(){let n=["stock-sdk \u2014\u2014 \u80A1\u7968\u884C\u60C5\u547D\u4EE4\u884C\uFF08\u57FA\u4E8E stock-sdk v2 \u547D\u540D\u7A7A\u95F4 API\uFF09","","\u7528\u6CD5:"," stock-sdk <command> [args] [--flags]"," stock-sdk <namespace> <method> [args] [--flags] # \u76F4\u8FBE\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5","","\u5E38\u7528\u547D\u4EE4:"];for(let o of y){let e=o.alias?.[0]??o.path.join(" ");n.push(` ${e.padEnd(12)} ${o.summary}`)}n.push(" mcp \u542F\u52A8 MCP server (stdio)"),n.push(""),n.push("\u547D\u540D\u7A7A\u95F4\uFF08stock-sdk <ns> <method> ...\uFF09:");let t=[...new Set(k.map(o=>o.path[0]))];return n.push(" "+t.join(" / ")),n.push(""),n.push("\u5168\u5C40\u9009\u9879:"),n.push(" -f, --format json|table|csv \u8F93\u51FA\u683C\u5F0F (\u9ED8\u8BA4 json)"),n.push(" --pretty JSON \u7F29\u8FDB\u7F8E\u5316"),n.push(" --timeout <ms> \u8BF7\u6C42\u8D85\u65F6"),n.push(" -q, --quiet \u9759\u9ED8(\u53EA\u8F93\u51FA\u6570\u636E)"),n.push(" -h, --help \u663E\u793A\u5E2E\u52A9"),n.push(" -V, --version \u663E\u793A\u7248\u672C"),n.push(""),n.push("\u793A\u4F8B:"),n.push(" stock-sdk quote 600519 000858 00700"),n.push(" stock-sdk kline 600519 --period weekly --adjust hfq --limit 30"),n.push(" stock-sdk indicators 600519 --ma 5,10,20 --macd"),n.push(" stock-sdk board industry list --format table"),n.push(" stock-sdk options etf dailyKline 10004336"),n.push(""),n.push("\u8FD0\u884C `stock-sdk <command> --help` \u67E5\u770B\u5355\u6761\u547D\u4EE4\u7528\u6CD5\u3002"),n.join(`
8
+ `)}function yn(n){let t=n.alias?.[0]??n.path.join(" "),o=[`${t} \u2014\u2014 ${n.summary}`,""],e=(n.positional??[]).map(r=>{let s=r.required?`<${r.name}>`:`[${r.name}]`;return r.variadic?`${s}...`:s}).join(" ");if(o.push(`\u7528\u6CD5: stock-sdk ${t}${e?" "+e:""} [--flags]`),n.options?.length){o.push(""),o.push("\u9009\u9879:");for(let r of n.options){let s=r.enum?` (${r.enum.join("/")})`:"";o.push(` --${r.flag.padEnd(12)} ${r.desc}${s}`)}}return o.join(`
9
+ `)}function wn(n,t=new Set){let o=[],e={},r=!1,s=(i,a)=>{let u=e[i];if(u===void 0){e[i]=a;return}if(typeof a!="string"){e[i]=a;return}Array.isArray(u)?u.push(a):typeof u=="string"?e[i]=[u,a]:e[i]=a},c=i=>i!==void 0&&(i==="-"||!i.startsWith("-")||/^-\d/.test(i)),d=(i,a)=>{if(t.has(i))return s(i,!0),a;let u=n[a+1];return c(u)?(s(i,u),a+1):(s(i,!0),a)};for(let i=0;i<n.length;i++){let a=n[i];if(r){o.push(a);continue}if(a==="--"){r=!0;continue}if(a.startsWith("--")&&a.length>2){let u=a.slice(2),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else if(a.startsWith("-")&&a.length>1&&!Wn(a)){let u=a.slice(1),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else o.push(a)}return{positional:o,options:e}}function Wn(n){return/^-\d/.test(n)}var Yn=kn();process.stdout.on("error",n=>{n.code==="EPIPE"&&process.exit(0),process.stderr.write(`stock-sdk: stdout error: ${n.message}
10
+ `)});function Qn(){return"2.2.1"}function Xn(n){let t=n.format??n.f,o=t==="table"||t==="csv"?t:"json",e;if(typeof n.timeout=="string"||typeof n.timeout=="number"){let r=Number(n.timeout);!Number.isNaN(r)&&r>0&&(e=r)}return{format:o,pretty:n.pretty===!0,quiet:n.quiet===!0||n.q===!0,help:n.help===!0||n.h===!0,version:n.version===!0||n.V===!0,timeout:e}}async function Zn(){try{return(await import("./mcp.js")).startMcpServer(),0}catch(n){let t=n instanceof Error?n.message:String(n);return process.stderr.write(`stock-sdk: \u65E0\u6CD5\u542F\u52A8 MCP server: ${t}
11
+ `),1}}async function nt(n){let t="json";try{let o=wn(n,Yn),e=Xn(o.options);if(t=e.format,e.version)return process.stdout.write(Qn()+`
12
+ `),0;if(o.positional.length===0)return process.stdout.write(Sn()+`
13
+ `),0;if(o.positional[0]===hn)return e.help?(process.stdout.write(`stock-sdk mcp \u2014\u2014 \u542F\u52A8 MCP server (stdio transport)
14
14
 
15
15
  \u7528\u6CD5: stock-sdk mcp
16
16
  \u73AF\u5883\u53D8\u91CF: STOCK_SDK_MCP_TOOLS=core|full|<\u9017\u53F7\u5206\u9694\u5DE5\u5177\u540D>\uFF08\u9ED8\u8BA4 core\uFF09
17
- `),0):await Xn();let r=kn(o.positional);if(!r)throw new c(`\u672A\u77E5\u547D\u4EE4 "${o.positional.join(" ")}"`,"\u8FD0\u884C `stock-sdk --help` \u67E5\u770B\u53EF\u7528\u547D\u4EE4");if(e.help)return process.stdout.write(Sn(r.spec)+`
18
- `),0;let s=new M(e.timeout!==void 0?{timeout:e.timeout}:{}),p={positional:r.rest,options:o.options},d=await W(s,r.spec,p);Z(d)&&!e.quiet&&process.stderr.write(`stock-sdk: \u65E0\u6570\u636E
19
- `);let i=X(d,e.format,e.pretty);return i.length>0&&process.stdout.write(i+`
20
- `),0}catch(o){let e=V(o,t);return process.stderr.write(e.text+`
21
- `),F(o)}}Zn(process.argv.slice(2)).then(n=>{process.exitCode=n},n=>{let t=n instanceof Error?n.message:String(n);process.stderr.write(`stock-sdk: ${t}
17
+ `),0):await Zn();let r=gn(o.positional);if(!r)throw new p(`\u672A\u77E5\u547D\u4EE4 "${o.positional.join(" ")}"`,"\u8FD0\u884C `stock-sdk --help` \u67E5\u770B\u53EF\u7528\u547D\u4EE4");if(e.help)return process.stdout.write(yn(r.spec)+`
18
+ `),0;let s=new I(e.timeout!==void 0?{timeout:e.timeout}:{}),c={positional:r.rest,options:o.options},d=await W(s,r.spec,c);nn(d)&&!e.quiet&&process.stderr.write(`stock-sdk: \u65E0\u6570\u636E
19
+ `);let i=Z(d,e.format,e.pretty);return i.length>0&&process.stdout.write(i+`
20
+ `),0}catch(o){let e=G(o,t);return process.stderr.write(e.text+`
21
+ `),V(o)}}nt(process.argv.slice(2)).then(n=>{process.exitCode=n},n=>{let t=n instanceof Error?n.message:String(n);process.stderr.write(`stock-sdk: ${t}
22
22
  `),process.exitCode=1});
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkSR7FGCVZcjs = require('./chunk-SR7FGCVZ.cjs');var _chunkC4CA7QBBcjs = require('./chunk-C4CA7QBB.cjs');var _chunkWCBK5KYAcjs = require('./chunk-WCBK5KYA.cjs');var _chunkANBQABEDcjs = require('./chunk-ANBQABED.cjs');var _chunkPMERLSCUcjs = require('./chunk-PMERLSCU.cjs');var _chunk3NSUE34Fcjs = require('./chunk-3NSUE34F.cjs');var _chunkTVIEKKDQcjs = require('./chunk-TVIEKKDQ.cjs');var _chunk4Q7UQ5Q3cjs = require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');var le={0:"sz",1:"sh",100:"global",105:"us",116:"hk"},me={sh:"CN",sz:"CN",hk:"HK",us:"US"},de={IXIC:".IXIC",NDX:".NDX",NDX100:".NDX"},ke={IXIC:"NDX",NDX:"NDX",NDX100:"NDX"};function he(t){return t==="sh"||t==="sz"||t==="hk"||t==="us"||t==="global"}function Se(t){switch(t.market){case"CN":return t.exchange==="SSE"?"sh":t.exchange==="SZSE"?"sz":"unknown";case"HK":return"hk";case"US":return"us";case"GLOBAL":return"global";default:return"unknown"}}function ye(t){let e=t.code.trim(),o=t.market.trim().toLowerCase(),s=_nullishCoalesce(le[t.market], () => (o)),r=he(s)?s:void 0;if(r==="global")return{code:e.replace(/^\d{3}\./,"").toUpperCase(),market:"global"};let c=r===void 0||r==="us"?e.replace(/^us(?=[A-Za-z.]+$)/i,""):e;try{let n=_chunk3NSUE34Fcjs.d.call(void 0, c,r?{market:me[r]}:void 0);if(n.assetType!=="stock")return{code:e,market:"unknown"};let i=_nullishCoalesce(r, () => (Se(n)));return i==="unknown"?{code:e,market:"unknown"}:{code:n.market==="US"?n.code.toUpperCase():n.code,market:i}}catch (e2){return{code:e,market:"unknown"}}}function Oe(t,e){return e==="sh"&&t.startsWith("000")||e==="sz"&&t.startsWith("399")}function fe(t){let{code:e,market:o}=t;return(o==="sh"||o==="sz")&&Oe(e,o)?`https://quote.eastmoney.com/zs${e}.html`:o==="sh"||o==="sz"?`https://quote.eastmoney.com/${o}${e}.html`:o==="hk"?`https://quote.eastmoney.com/hk/${e}.html`:o==="us"?`https://quote.eastmoney.com/us/${e}.html`:o==="global"?`https://quote.eastmoney.com/gb/zs${_nullishCoalesce(ke[e], () => (e))}.html`:`https://so.eastmoney.com/web/s?keyword=${encodeURIComponent(e)}`}function Me(t){let{code:e,market:o}=t;return o==="sh"||o==="sz"?`https://xueqiu.com/S/${o.toUpperCase()}${e}`:o==="hk"?`https://xueqiu.com/S/${e}`:o==="us"?`https://xueqiu.com/S/${e}`:o==="global"?`https://xueqiu.com/S/${_nullishCoalesce(de[e], () => (e))}`:`https://xueqiu.com/k?q=${encodeURIComponent(e)}`}function Ce(t){let e=ye(t);return[{name:"\u4E1C\u65B9\u8D22\u5BCC",url:fe(e)},{name:"\u96EA\u7403",url:Me(e)}]}exports.BROWSER_JSVARS_MUTEX_KEY = _chunkANBQABEDcjs.j; exports.FundService = _chunkANBQABEDcjs.s; exports.HttpError = _chunk4Q7UQ5Q3cjs.b; exports.INDICATOR_REGISTRY = _chunkPMERLSCUcjs.s; exports.MARKET_TZ = _chunkANBQABEDcjs.m; exports.MemoryCache = _chunkTVIEKKDQcjs.a; exports.MemoryCacheStore = _chunkWCBK5KYAcjs.a; exports.SdkError = _chunk4Q7UQ5Q3cjs.a; exports.StockSDK = _chunkANBQABEDcjs.t; exports.TradingCalendarService = _chunkANBQABEDcjs.r; exports.addIndicators = _chunkPMERLSCUcjs.w; exports.asyncPool = _chunkANBQABEDcjs.f; exports.backtest = _chunkC4CA7QBBcjs.b; exports.buildIndicatorContext = _chunkPMERLSCUcjs.r; exports.buildTimeMeta = _chunkANBQABEDcjs.o; exports.buildTimeMetaFromDateAndTime = _chunkANBQABEDcjs.p; exports.cacheThrough = _chunkWCBK5KYAcjs.b; exports.calcATR = _chunkPMERLSCUcjs.l; exports.calcBIAS = _chunkPMERLSCUcjs.j; exports.calcBOLL = _chunkPMERLSCUcjs.f; exports.calcCCI = _chunkPMERLSCUcjs.k; exports.calcDMI = _chunkPMERLSCUcjs.o; exports.calcEMA = _chunkPMERLSCUcjs.b; exports.calcKC = _chunkPMERLSCUcjs.q; exports.calcKDJ = _chunkPMERLSCUcjs.g; exports.calcMA = _chunkPMERLSCUcjs.d; exports.calcMACD = _chunkPMERLSCUcjs.e; exports.calcOBV = _chunkPMERLSCUcjs.m; exports.calcROC = _chunkPMERLSCUcjs.n; exports.calcRSI = _chunkPMERLSCUcjs.h; exports.calcSAR = _chunkPMERLSCUcjs.p; exports.calcSMA = _chunkPMERLSCUcjs.a; exports.calcSignals = _chunkSR7FGCVZcjs.a; exports.calcWMA = _chunkPMERLSCUcjs.c; exports.calcWR = _chunkPMERLSCUcjs.i; exports.chunkArray = _chunkANBQABEDcjs.e; exports.createCacheKey = _chunkTVIEKKDQcjs.d; exports.decodeGBK = _chunkANBQABEDcjs.a; exports.default = _chunkANBQABEDcjs.u; exports.estimateIndicatorLookback = _chunkPMERLSCUcjs.v; exports.extractJsonFromJsonp = _chunkANBQABEDcjs.g; exports.fetchJsVars = _chunkANBQABEDcjs.k; exports.formatInTz = _chunkANBQABEDcjs.q; exports.generateSearchExternalLinks = Ce; exports.getEnabledIndicatorKeys = _chunkPMERLSCUcjs.u; exports.getSdkErrorCode = _chunk4Q7UQ5Q3cjs.k; exports.getSharedCache = _chunkTVIEKKDQcjs.b; exports.jsonpRequest = _chunkANBQABEDcjs.h; exports.normalizeSymbol = _chunk3NSUE34Fcjs.d; exports.parseJsVars = _chunkANBQABEDcjs.l; exports.parseMarketTime = _chunkANBQABEDcjs.n; exports.parseResponse = _chunkANBQABEDcjs.b; exports.safeNumber = _chunkANBQABEDcjs.c; exports.safeNumberOrNull = _chunkANBQABEDcjs.d; exports.screen = _chunkC4CA7QBBcjs.a; exports.toEastmoneySecid = _chunk3NSUE34Fcjs.h; exports.toTencentSymbol = _chunk3NSUE34Fcjs.g; exports.withScriptMutex = _chunkANBQABEDcjs.i;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkSR7FGCVZcjs = require('./chunk-SR7FGCVZ.cjs');var _chunkC4CA7QBBcjs = require('./chunk-C4CA7QBB.cjs');var _chunkWCBK5KYAcjs = require('./chunk-WCBK5KYA.cjs');var _chunkRHTNYDO2cjs = require('./chunk-RHTNYDO2.cjs');var _chunkPMERLSCUcjs = require('./chunk-PMERLSCU.cjs');var _chunkT5CH7H3Xcjs = require('./chunk-T5CH7H3X.cjs');var _chunkTVIEKKDQcjs = require('./chunk-TVIEKKDQ.cjs');var _chunk4Q7UQ5Q3cjs = require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');var le={0:"sz",1:"sh",100:"global",105:"us",116:"hk"},me={sh:"CN",sz:"CN",hk:"HK",us:"US"},de={IXIC:".IXIC",NDX:".NDX",NDX100:".NDX"},ke={IXIC:"NDX",NDX:"NDX",NDX100:"NDX"};function he(t){return t==="sh"||t==="sz"||t==="hk"||t==="us"||t==="global"}function Se(t){switch(t.market){case"CN":return t.exchange==="SSE"?"sh":t.exchange==="SZSE"?"sz":"unknown";case"HK":return"hk";case"US":return"us";case"GLOBAL":return"global";default:return"unknown"}}function ye(t){let e=t.code.trim(),o=t.market.trim().toLowerCase(),s=_nullishCoalesce(le[t.market], () => (o)),r=he(s)?s:void 0;if(r==="global")return{code:e.replace(/^\d{3}\./,"").toUpperCase(),market:"global"};let c=r===void 0||r==="us"?e.replace(/^us(?=[A-Za-z.]+$)/i,""):e;try{let n=_chunkT5CH7H3Xcjs.e.call(void 0, c,r?{market:me[r]}:void 0);if(n.assetType!=="stock")return{code:e,market:"unknown"};let i=_nullishCoalesce(r, () => (Se(n)));return i==="unknown"?{code:e,market:"unknown"}:{code:n.market==="US"?n.code.toUpperCase():n.code,market:i}}catch (e2){return{code:e,market:"unknown"}}}function Oe(t,e){return e==="sh"&&t.startsWith("000")||e==="sz"&&t.startsWith("399")}function fe(t){let{code:e,market:o}=t;return(o==="sh"||o==="sz")&&Oe(e,o)?`https://quote.eastmoney.com/zs${e}.html`:o==="sh"||o==="sz"?`https://quote.eastmoney.com/${o}${e}.html`:o==="hk"?`https://quote.eastmoney.com/hk/${e}.html`:o==="us"?`https://quote.eastmoney.com/us/${e}.html`:o==="global"?`https://quote.eastmoney.com/gb/zs${_nullishCoalesce(ke[e], () => (e))}.html`:`https://so.eastmoney.com/web/s?keyword=${encodeURIComponent(e)}`}function Me(t){let{code:e,market:o}=t;return o==="sh"||o==="sz"?`https://xueqiu.com/S/${o.toUpperCase()}${e}`:o==="hk"?`https://xueqiu.com/S/${e}`:o==="us"?`https://xueqiu.com/S/${e}`:o==="global"?`https://xueqiu.com/S/${_nullishCoalesce(de[e], () => (e))}`:`https://xueqiu.com/k?q=${encodeURIComponent(e)}`}function Ce(t){let e=ye(t);return[{name:"\u4E1C\u65B9\u8D22\u5BCC",url:fe(e)},{name:"\u96EA\u7403",url:Me(e)}]}exports.BROWSER_JSVARS_MUTEX_KEY = _chunkRHTNYDO2cjs.j; exports.FundService = _chunkRHTNYDO2cjs.s; exports.HttpError = _chunk4Q7UQ5Q3cjs.b; exports.INDICATOR_REGISTRY = _chunkPMERLSCUcjs.s; exports.MARKET_TZ = _chunkRHTNYDO2cjs.m; exports.MemoryCache = _chunkTVIEKKDQcjs.a; exports.MemoryCacheStore = _chunkWCBK5KYAcjs.a; exports.SdkError = _chunk4Q7UQ5Q3cjs.a; exports.StockSDK = _chunkRHTNYDO2cjs.t; exports.TradingCalendarService = _chunkRHTNYDO2cjs.r; exports.addIndicators = _chunkPMERLSCUcjs.w; exports.asyncPool = _chunkRHTNYDO2cjs.f; exports.backtest = _chunkC4CA7QBBcjs.b; exports.buildIndicatorContext = _chunkPMERLSCUcjs.r; exports.buildTimeMeta = _chunkRHTNYDO2cjs.o; exports.buildTimeMetaFromDateAndTime = _chunkRHTNYDO2cjs.p; exports.cacheThrough = _chunkWCBK5KYAcjs.b; exports.calcATR = _chunkPMERLSCUcjs.l; exports.calcBIAS = _chunkPMERLSCUcjs.j; exports.calcBOLL = _chunkPMERLSCUcjs.f; exports.calcCCI = _chunkPMERLSCUcjs.k; exports.calcDMI = _chunkPMERLSCUcjs.o; exports.calcEMA = _chunkPMERLSCUcjs.b; exports.calcKC = _chunkPMERLSCUcjs.q; exports.calcKDJ = _chunkPMERLSCUcjs.g; exports.calcMA = _chunkPMERLSCUcjs.d; exports.calcMACD = _chunkPMERLSCUcjs.e; exports.calcOBV = _chunkPMERLSCUcjs.m; exports.calcROC = _chunkPMERLSCUcjs.n; exports.calcRSI = _chunkPMERLSCUcjs.h; exports.calcSAR = _chunkPMERLSCUcjs.p; exports.calcSMA = _chunkPMERLSCUcjs.a; exports.calcSignals = _chunkSR7FGCVZcjs.a; exports.calcWMA = _chunkPMERLSCUcjs.c; exports.calcWR = _chunkPMERLSCUcjs.i; exports.chunkArray = _chunkRHTNYDO2cjs.e; exports.createCacheKey = _chunkTVIEKKDQcjs.d; exports.decodeGBK = _chunkRHTNYDO2cjs.a; exports.default = _chunkRHTNYDO2cjs.u; exports.estimateIndicatorLookback = _chunkPMERLSCUcjs.v; exports.extractJsonFromJsonp = _chunkRHTNYDO2cjs.g; exports.fetchJsVars = _chunkRHTNYDO2cjs.k; exports.formatInTz = _chunkRHTNYDO2cjs.q; exports.generateSearchExternalLinks = Ce; exports.getEnabledIndicatorKeys = _chunkPMERLSCUcjs.u; exports.getSdkErrorCode = _chunk4Q7UQ5Q3cjs.k; exports.getSharedCache = _chunkTVIEKKDQcjs.b; exports.jsonpRequest = _chunkRHTNYDO2cjs.h; exports.normalizeSymbol = _chunkT5CH7H3Xcjs.e; exports.parseJsVars = _chunkRHTNYDO2cjs.l; exports.parseMarketTime = _chunkRHTNYDO2cjs.n; exports.parseResponse = _chunkRHTNYDO2cjs.b; exports.safeNumber = _chunkRHTNYDO2cjs.c; exports.safeNumberOrNull = _chunkRHTNYDO2cjs.d; exports.screen = _chunkC4CA7QBBcjs.a; exports.toEastmoneySecid = _chunkT5CH7H3Xcjs.i; exports.toTencentSymbol = _chunkT5CH7H3Xcjs.h; exports.withScriptMutex = _chunkRHTNYDO2cjs.i;
package/dist/index.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { a as RequestClient, B as BaseService, F as FundDividendListOptions, b as FundDividendListResult, c as FundNavHistory, d as FundEstimate, e as FundRankHistory, f as FundProfile, g as SearchResult, E as ExternalLink } from './sdk-CA1tOtb2.cjs';
2
- export { A as AShareMarket, aR as BlockTradeDailyStatItem, K as BlockTradeDateOptions, aQ as BlockTradeDetailItem, aP as BlockTradeMarketStatItem, aI as BoardChangeItem, ao as CFFEXOptionQuote, y as CFFEXOptionQuotesOptions, af as ComexInventory, x as ComexInventoryOptions, a4 as ConceptBoard, a6 as ConceptBoardConstituent, a7 as ConceptBoardKline, C as ConceptBoardKlineOptions, a9 as ConceptBoardMinuteKline, s as ConceptBoardMinuteKlineOptions, a8 as ConceptBoardMinuteTimeline, a5 as ConceptBoardSpot, ar as DividendDetail, aN as DragonTigerBranchItem, L as DragonTigerDateOptions, aK as DragonTigerDetailItem, aM as DragonTigerInstitutionItem, aJ as DragonTigerPeriod, aO as DragonTigerSeatItem, aL as DragonTigerStockStatItem, an as ETFOptionCate, am as ETFOptionExpireDay, al as ETFOptionMonth, O as FullQuote, a$ as FundAssetAllocation, a_ as FundBondHolding, b5 as FundBuySedemption, aW as FundDividend, aU as FundDividendRank, Q as FundFlow, z as FundFlowOptions, at as FundFlowRankItem, D as FundFlowRankOptions, b3 as FundHolderStructure, aZ as FundHolding, b1 as FundManager, aX as FundNavPoint, b2 as FundPerformanceEvaluation, b0 as FundPositionPoint, Y as FundQuote, aY as FundRankPoint, b8 as FundSameType, b7 as FundSameTypePeer, b4 as FundScaleChange, aV as FundSortDirection, b6 as FundStageReturns, aa as FuturesExchange, ae as FuturesInventory, w as FuturesInventoryOptions, ad as FuturesInventorySymbol, ab as FuturesKline, t as FuturesKlineOptions, h as GetAShareCodeListOptions, G as GetAllAShareQuotesOptions, j as GetAllUSQuotesOptions, i as GetUSCodeListOptions, v as GlobalFuturesKlineOptions, ac as GlobalFuturesQuote, u as GlobalFuturesSpotOptions, n as HKKlineOptions, o as HKMinuteKlineOptions, W as HKQuote, H as HistoryKlineOptions, ag as IndexOptionProduct, _ as IndustryBoard, a0 as IndustryBoardConstituent, a1 as IndustryBoardKline, I as IndustryBoardKlineOptions, a3 as IndustryBoardMinuteKline, r as IndustryBoardMinuteKlineOptions, a2 as IndustryBoardMinuteTimeline, $ as IndustryBoardSpot, aS as MarginAccountItem, aT as MarginTargetItem, av as MarketFundFlow, k as MarketStatus, M as MarketType, m as MinuteKlineOptions, aw as NorthboundDirection, aA as NorthboundFlowSummary, aC as NorthboundHistoryItem, J as NorthboundHistoryOptions, aB as NorthboundHoldingRankItem, N as NorthboundHoldingRankOptions, aD as NorthboundIndividualItem, ax as NorthboundMarket, az as NorthboundMinuteItem, ay as NorthboundRankPeriod, aj as OptionKline, ap as OptionLHBItem, ak as OptionMinute, ah as OptionTQuote, ai as OptionTQuoteResult, V as PanelLargeOrder, Z as Quote, R as RequestClientOptions, aq as SearchResultType, au as SectorFundFlowItem, P as SimpleQuote, aH as StockChangeItem, aG as StockChangeType, as as StockFundFlowDaily, S as StockSDK, l as SupportedMarket, T as TradingCalendarService, p as USKlineOptions, U as USMarket, q as USMinuteKlineOptions, X as USQuote, aF as ZTPoolItem, aE as ZTPoolType, S as default } from './sdk-CA1tOtb2.cjs';
1
+ import { a as RequestClient, b as SearchResult, E as ExternalLink } from './sdk-C1spOI0V.cjs';
2
+ export { A as AShareMarket, aM as BlockTradeDailyStatItem, B as BlockTradeDateOptions, aL as BlockTradeDetailItem, aK as BlockTradeMarketStatItem, aD as BoardChangeItem, aj as CFFEXOptionQuote, u as CFFEXOptionQuotesOptions, aa as ComexInventory, t as ComexInventoryOptions, $ as ConceptBoard, a1 as ConceptBoardConstituent, a2 as ConceptBoardKline, C as ConceptBoardKlineOptions, a4 as ConceptBoardMinuteKline, o as ConceptBoardMinuteKlineOptions, a3 as ConceptBoardMinuteTimeline, a0 as ConceptBoardSpot, am as DividendDetail, aI as DragonTigerBranchItem, D as DragonTigerDateOptions, aF as DragonTigerDetailItem, aH as DragonTigerInstitutionItem, aE as DragonTigerPeriod, aJ as DragonTigerSeatItem, aG as DragonTigerStockStatItem, ai as ETFOptionCate, ah as ETFOptionExpireDay, ag as ETFOptionMonth, y as FullQuote, a$ as FundAssetAllocation, a_ as FundBondHolding, b5 as FundBuySedemption, aS as FundDividend, aR as FundDividendListOptions, aT as FundDividendListResult, aP as FundDividendRank, aW as FundEstimate, J as FundFlow, v as FundFlowOptions, ao as FundFlowRankItem, w as FundFlowRankOptions, b3 as FundHolderStructure, aZ as FundHolding, b1 as FundManager, aV as FundNavHistory, aU as FundNavPoint, b2 as FundPerformanceEvaluation, b0 as FundPositionPoint, h as FundProfile, O as FundQuote, aY as FundRankHistory, aX as FundRankPoint, b8 as FundSameType, b7 as FundSameTypePeer, b4 as FundScaleChange, F as FundService, aQ as FundSortDirection, b6 as FundStageReturns, a5 as FuturesExchange, a9 as FuturesInventory, s as FuturesInventoryOptions, a8 as FuturesInventorySymbol, a6 as FuturesKline, p as FuturesKlineOptions, c as GetAShareCodeListOptions, G as GetAllAShareQuotesOptions, e as GetAllUSQuotesOptions, bd as GetHotThemesOptions, bf as GetThemeFundsOptions, bc as GetThemeListOptions, d as GetUSCodeListOptions, r as GlobalFuturesKlineOptions, a7 as GlobalFuturesQuote, q as GlobalFuturesSpotOptions, j as HKKlineOptions, k as HKMinuteKlineOptions, K as HKQuote, H as HistoryKlineOptions, bi as HotThemesResult, ab as IndexOptionProduct, V as IndustryBoard, X as IndustryBoardConstituent, Y as IndustryBoardKline, I as IndustryBoardKlineOptions, _ as IndustryBoardMinuteKline, n as IndustryBoardMinuteKlineOptions, Z as IndustryBoardMinuteTimeline, W as IndustryBoardSpot, aN as MarginAccountItem, aO as MarginTargetItem, aq as MarketFundFlow, f as MarketStatus, M as MarketType, i as MinuteKlineOptions, ar as NorthboundDirection, av as NorthboundFlowSummary, ax as NorthboundHistoryItem, x as NorthboundHistoryOptions, aw as NorthboundHoldingRankItem, N as NorthboundHoldingRankOptions, ay as NorthboundIndividualItem, as as NorthboundMarket, au as NorthboundMinuteItem, at as NorthboundRankPeriod, ae as OptionKline, ak as OptionLHBItem, af as OptionMinute, ac as OptionTQuote, ad as OptionTQuoteResult, P as PanelLargeOrder, Q as Quote, R as RequestClientOptions, al as SearchResultType, ap as SectorFundFlowItem, z as SimpleQuote, aC as StockChangeItem, aB as StockChangeType, an as StockFundFlowDaily, S as StockSDK, g as SupportedMarket, bb as ThemeCategory, bg as ThemeFund, bj as ThemeFundItem, bk as ThemeFundItemList, bh as ThemeFundListResult, ba as ThemeFundOrder, be as ThemeFundRankSort, b9 as ThemeFundSort, T as TradingCalendarService, l as USKlineOptions, U as USMarket, m as USMinuteKlineOptions, L as USQuote, aA as ZTPoolItem, az as ZTPoolType, S as default } from './sdk-C1spOI0V.cjs';
3
3
  export { H as HttpError, P as ProviderName, a as ProviderRequestPolicy, b as RequestError, R as RetryOptions, S as SdkError, g as getSdkErrorCode } from './index-mlzPfoON.cjs';
4
4
  export { CacheOptions, CacheStore, MaybePromise, MemoryCache, MemoryCacheStore, cacheThrough, createCacheKey, getSharedCache } from './cache.cjs';
5
- export { e as ATROptions, A as AnyHistoryKline, d as BIASOptions, B as BOLLOptions, C as CCIOptions, D as DMIOptions, i as DMIResult, w as HKHistoryKline, x as HKMinuteKline, y as HKMinuteTimeline, H as HistoryKline, I as IndicatorOptions, k as KCOptions, l as KCResult, c as KDJOptions, K as KlineWithIndicators, b as MACDOptions, M as MAOptions, m as MARKET_TZ, n as MarketTz, t as MinuteKline, s as MinuteTimeline, O as OBVOptions, f as OBVResult, g as ROCOptions, h as ROCResult, R as RSIOptions, S as SAROptions, j as SARResult, T as TimeMeta, u as TodayTimeline, v as TodayTimelineResponse, U as USHistoryKline, z as USMinuteKline, E as USMinuteTimeline, W as WROptions, a as addIndicators, o as buildTimeMeta, q as buildTimeMetaFromDateAndTime, r as formatInTz, p as parseMarketTime } from './addIndicators-DwEr9RKK.cjs';
5
+ export { e as ATROptions, A as AnyHistoryKline, d as BIASOptions, B as BOLLOptions, C as CCIOptions, D as DMIOptions, i as DMIResult, w as HKHistoryKline, x as HKMinuteKline, y as HKMinuteTimeline, H as HistoryKline, I as IndicatorOptions, k as KCOptions, l as KCResult, c as KDJOptions, K as KlineWithIndicators, b as MACDOptions, M as MAOptions, m as MARKET_TZ, n as MarketTz, t as MinuteKline, s as MinuteTimeline, O as OBVOptions, f as OBVResult, g as ROCOptions, h as ROCResult, R as RSIOptions, S as SAROptions, j as SARResult, T as TimeMeta, u as TodayTimeline, v as TodayTimelineResponse, U as USHistoryKline, z as USMinuteKline, E as USMinuteTimeline, W as WROptions, a as addIndicators, o as buildTimeMeta, q as buildTimeMetaFromDateAndTime, r as formatInTz, p as parseMarketTime } from './addIndicators-DQNysyLs.cjs';
6
6
  export { INDICATOR_REGISTRY, IndicatorKey, buildIndicatorContext, calcATR, calcBIAS, calcBOLL, calcCCI, calcDMI, calcEMA, calcKC, calcKDJ, calcMA, calcMACD, calcOBV, calcROC, calcRSI, calcSAR, calcSMA, calcWMA, calcWR, estimateIndicatorLookback, getEnabledIndicatorKeys } from './indicators.cjs';
7
- export { A as AssetType, E as Exchange, M as Market, N as NormalizedSymbol, a as SymbolInput, S as SymbolRef, n as normalizeSymbol, b as toEastmoneySecid, t as toTencentSymbol } from './adapters-BvE63CMd.cjs';
7
+ export { A as AssetType, E as Exchange, M as Market, N as NormalizedSymbol, a as SymbolInput, S as SymbolRef, n as normalizeSymbol, b as toEastmoneySecid, t as toTencentSymbol } from './adapters-BiH4keVd.cjs';
8
8
  export { Signal, SignalOptions, SignalType, calcSignals } from './signals.cjs';
9
9
  export { BacktestOptions, BacktestReport, ScreenerBuilder, Strategy, StrategySignal, Trade, backtest, screen } from './screener.cjs';
10
10
 
@@ -217,27 +217,6 @@ interface DatacenterResult<T> {
217
217
  pages: number;
218
218
  }
219
219
 
220
- declare class FundService extends BaseService {
221
- constructor(client: RequestClient);
222
- /** 获取基金分红明细(全市场,按年份分页) */
223
- getFundDividendList(options?: FundDividendListOptions): Promise<FundDividendListResult>;
224
- /** 获取基金历史净值(单位 + 累计,全历史一次返回) */
225
- getFundNavHistory(code: string): Promise<FundNavHistory>;
226
- /** 获取基金当日实时估值(含 T-1 单位净值 + 盘中估算) */
227
- getFundEstimate(code: string): Promise<FundEstimate>;
228
- /** 获取基金同类排名走势(每日近三月排名 + 百分位) */
229
- getFundRankHistory(code: string): Promise<FundRankHistory>;
230
- /**
231
- * 获取基金深度资料(一次请求返回全量字段)。
232
- *
233
- * 包含:前十大重仓股、资产配置、仓位测算、基金经理、业绩评价、
234
- * 持有人结构、规模变动、申购赎回、阶段收益率、同类基金等。
235
- *
236
- * @param code 基金代码(纯数字,如 `'000001'`)
237
- */
238
- getFundProfile(code: string): Promise<FundProfile>;
239
- }
240
-
241
220
  /**
242
221
  * 根据搜索结果生成外部财经站点链接。
243
222
  * @param result 搜索结果
@@ -245,4 +224,4 @@ declare class FundService extends BaseService {
245
224
  */
246
225
  declare function generateSearchExternalLinks(result: SearchResult): ExternalLink[];
247
226
 
248
- export { BROWSER_JSVARS_MUTEX_KEY, type DatacenterQuery, type DatacenterResult, ExternalLink, type FetchJsVarsOptions, FundDividendListOptions, FundDividendListResult, FundEstimate, FundNavHistory, FundProfile, FundRankHistory, FundService, type JsonpOptions, SearchResult, asyncPool, chunkArray, decodeGBK, extractJsonFromJsonp, fetchJsVars, generateSearchExternalLinks, jsonpRequest, parseJsVars, parseResponse, safeNumber, safeNumberOrNull, withScriptMutex };
227
+ export { BROWSER_JSVARS_MUTEX_KEY, type DatacenterQuery, type DatacenterResult, ExternalLink, type FetchJsVarsOptions, type JsonpOptions, SearchResult, asyncPool, chunkArray, decodeGBK, extractJsonFromJsonp, fetchJsVars, generateSearchExternalLinks, jsonpRequest, parseJsVars, parseResponse, safeNumber, safeNumberOrNull, withScriptMutex };
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { a as RequestClient, B as BaseService, F as FundDividendListOptions, b as FundDividendListResult, c as FundNavHistory, d as FundEstimate, e as FundRankHistory, f as FundProfile, g as SearchResult, E as ExternalLink } from './sdk-B-hkKcZs.js';
2
- export { A as AShareMarket, aR as BlockTradeDailyStatItem, K as BlockTradeDateOptions, aQ as BlockTradeDetailItem, aP as BlockTradeMarketStatItem, aI as BoardChangeItem, ao as CFFEXOptionQuote, y as CFFEXOptionQuotesOptions, af as ComexInventory, x as ComexInventoryOptions, a4 as ConceptBoard, a6 as ConceptBoardConstituent, a7 as ConceptBoardKline, C as ConceptBoardKlineOptions, a9 as ConceptBoardMinuteKline, s as ConceptBoardMinuteKlineOptions, a8 as ConceptBoardMinuteTimeline, a5 as ConceptBoardSpot, ar as DividendDetail, aN as DragonTigerBranchItem, L as DragonTigerDateOptions, aK as DragonTigerDetailItem, aM as DragonTigerInstitutionItem, aJ as DragonTigerPeriod, aO as DragonTigerSeatItem, aL as DragonTigerStockStatItem, an as ETFOptionCate, am as ETFOptionExpireDay, al as ETFOptionMonth, O as FullQuote, a$ as FundAssetAllocation, a_ as FundBondHolding, b5 as FundBuySedemption, aW as FundDividend, aU as FundDividendRank, Q as FundFlow, z as FundFlowOptions, at as FundFlowRankItem, D as FundFlowRankOptions, b3 as FundHolderStructure, aZ as FundHolding, b1 as FundManager, aX as FundNavPoint, b2 as FundPerformanceEvaluation, b0 as FundPositionPoint, Y as FundQuote, aY as FundRankPoint, b8 as FundSameType, b7 as FundSameTypePeer, b4 as FundScaleChange, aV as FundSortDirection, b6 as FundStageReturns, aa as FuturesExchange, ae as FuturesInventory, w as FuturesInventoryOptions, ad as FuturesInventorySymbol, ab as FuturesKline, t as FuturesKlineOptions, h as GetAShareCodeListOptions, G as GetAllAShareQuotesOptions, j as GetAllUSQuotesOptions, i as GetUSCodeListOptions, v as GlobalFuturesKlineOptions, ac as GlobalFuturesQuote, u as GlobalFuturesSpotOptions, n as HKKlineOptions, o as HKMinuteKlineOptions, W as HKQuote, H as HistoryKlineOptions, ag as IndexOptionProduct, _ as IndustryBoard, a0 as IndustryBoardConstituent, a1 as IndustryBoardKline, I as IndustryBoardKlineOptions, a3 as IndustryBoardMinuteKline, r as IndustryBoardMinuteKlineOptions, a2 as IndustryBoardMinuteTimeline, $ as IndustryBoardSpot, aS as MarginAccountItem, aT as MarginTargetItem, av as MarketFundFlow, k as MarketStatus, M as MarketType, m as MinuteKlineOptions, aw as NorthboundDirection, aA as NorthboundFlowSummary, aC as NorthboundHistoryItem, J as NorthboundHistoryOptions, aB as NorthboundHoldingRankItem, N as NorthboundHoldingRankOptions, aD as NorthboundIndividualItem, ax as NorthboundMarket, az as NorthboundMinuteItem, ay as NorthboundRankPeriod, aj as OptionKline, ap as OptionLHBItem, ak as OptionMinute, ah as OptionTQuote, ai as OptionTQuoteResult, V as PanelLargeOrder, Z as Quote, R as RequestClientOptions, aq as SearchResultType, au as SectorFundFlowItem, P as SimpleQuote, aH as StockChangeItem, aG as StockChangeType, as as StockFundFlowDaily, S as StockSDK, l as SupportedMarket, T as TradingCalendarService, p as USKlineOptions, U as USMarket, q as USMinuteKlineOptions, X as USQuote, aF as ZTPoolItem, aE as ZTPoolType, S as default } from './sdk-B-hkKcZs.js';
1
+ import { a as RequestClient, b as SearchResult, E as ExternalLink } from './sdk-tyHVl5Ki.js';
2
+ export { A as AShareMarket, aM as BlockTradeDailyStatItem, B as BlockTradeDateOptions, aL as BlockTradeDetailItem, aK as BlockTradeMarketStatItem, aD as BoardChangeItem, aj as CFFEXOptionQuote, u as CFFEXOptionQuotesOptions, aa as ComexInventory, t as ComexInventoryOptions, $ as ConceptBoard, a1 as ConceptBoardConstituent, a2 as ConceptBoardKline, C as ConceptBoardKlineOptions, a4 as ConceptBoardMinuteKline, o as ConceptBoardMinuteKlineOptions, a3 as ConceptBoardMinuteTimeline, a0 as ConceptBoardSpot, am as DividendDetail, aI as DragonTigerBranchItem, D as DragonTigerDateOptions, aF as DragonTigerDetailItem, aH as DragonTigerInstitutionItem, aE as DragonTigerPeriod, aJ as DragonTigerSeatItem, aG as DragonTigerStockStatItem, ai as ETFOptionCate, ah as ETFOptionExpireDay, ag as ETFOptionMonth, y as FullQuote, a$ as FundAssetAllocation, a_ as FundBondHolding, b5 as FundBuySedemption, aS as FundDividend, aR as FundDividendListOptions, aT as FundDividendListResult, aP as FundDividendRank, aW as FundEstimate, J as FundFlow, v as FundFlowOptions, ao as FundFlowRankItem, w as FundFlowRankOptions, b3 as FundHolderStructure, aZ as FundHolding, b1 as FundManager, aV as FundNavHistory, aU as FundNavPoint, b2 as FundPerformanceEvaluation, b0 as FundPositionPoint, h as FundProfile, O as FundQuote, aY as FundRankHistory, aX as FundRankPoint, b8 as FundSameType, b7 as FundSameTypePeer, b4 as FundScaleChange, F as FundService, aQ as FundSortDirection, b6 as FundStageReturns, a5 as FuturesExchange, a9 as FuturesInventory, s as FuturesInventoryOptions, a8 as FuturesInventorySymbol, a6 as FuturesKline, p as FuturesKlineOptions, c as GetAShareCodeListOptions, G as GetAllAShareQuotesOptions, e as GetAllUSQuotesOptions, bd as GetHotThemesOptions, bf as GetThemeFundsOptions, bc as GetThemeListOptions, d as GetUSCodeListOptions, r as GlobalFuturesKlineOptions, a7 as GlobalFuturesQuote, q as GlobalFuturesSpotOptions, j as HKKlineOptions, k as HKMinuteKlineOptions, K as HKQuote, H as HistoryKlineOptions, bi as HotThemesResult, ab as IndexOptionProduct, V as IndustryBoard, X as IndustryBoardConstituent, Y as IndustryBoardKline, I as IndustryBoardKlineOptions, _ as IndustryBoardMinuteKline, n as IndustryBoardMinuteKlineOptions, Z as IndustryBoardMinuteTimeline, W as IndustryBoardSpot, aN as MarginAccountItem, aO as MarginTargetItem, aq as MarketFundFlow, f as MarketStatus, M as MarketType, i as MinuteKlineOptions, ar as NorthboundDirection, av as NorthboundFlowSummary, ax as NorthboundHistoryItem, x as NorthboundHistoryOptions, aw as NorthboundHoldingRankItem, N as NorthboundHoldingRankOptions, ay as NorthboundIndividualItem, as as NorthboundMarket, au as NorthboundMinuteItem, at as NorthboundRankPeriod, ae as OptionKline, ak as OptionLHBItem, af as OptionMinute, ac as OptionTQuote, ad as OptionTQuoteResult, P as PanelLargeOrder, Q as Quote, R as RequestClientOptions, al as SearchResultType, ap as SectorFundFlowItem, z as SimpleQuote, aC as StockChangeItem, aB as StockChangeType, an as StockFundFlowDaily, S as StockSDK, g as SupportedMarket, bb as ThemeCategory, bg as ThemeFund, bj as ThemeFundItem, bk as ThemeFundItemList, bh as ThemeFundListResult, ba as ThemeFundOrder, be as ThemeFundRankSort, b9 as ThemeFundSort, T as TradingCalendarService, l as USKlineOptions, U as USMarket, m as USMinuteKlineOptions, L as USQuote, aA as ZTPoolItem, az as ZTPoolType, S as default } from './sdk-tyHVl5Ki.js';
3
3
  export { H as HttpError, P as ProviderName, a as ProviderRequestPolicy, b as RequestError, R as RetryOptions, S as SdkError, g as getSdkErrorCode } from './index-mlzPfoON.js';
4
4
  export { CacheOptions, CacheStore, MaybePromise, MemoryCache, MemoryCacheStore, cacheThrough, createCacheKey, getSharedCache } from './cache.js';
5
- export { e as ATROptions, A as AnyHistoryKline, d as BIASOptions, B as BOLLOptions, C as CCIOptions, D as DMIOptions, i as DMIResult, w as HKHistoryKline, x as HKMinuteKline, y as HKMinuteTimeline, H as HistoryKline, I as IndicatorOptions, k as KCOptions, l as KCResult, c as KDJOptions, K as KlineWithIndicators, b as MACDOptions, M as MAOptions, m as MARKET_TZ, n as MarketTz, t as MinuteKline, s as MinuteTimeline, O as OBVOptions, f as OBVResult, g as ROCOptions, h as ROCResult, R as RSIOptions, S as SAROptions, j as SARResult, T as TimeMeta, u as TodayTimeline, v as TodayTimelineResponse, U as USHistoryKline, z as USMinuteKline, E as USMinuteTimeline, W as WROptions, a as addIndicators, o as buildTimeMeta, q as buildTimeMetaFromDateAndTime, r as formatInTz, p as parseMarketTime } from './addIndicators-DwEr9RKK.js';
5
+ export { e as ATROptions, A as AnyHistoryKline, d as BIASOptions, B as BOLLOptions, C as CCIOptions, D as DMIOptions, i as DMIResult, w as HKHistoryKline, x as HKMinuteKline, y as HKMinuteTimeline, H as HistoryKline, I as IndicatorOptions, k as KCOptions, l as KCResult, c as KDJOptions, K as KlineWithIndicators, b as MACDOptions, M as MAOptions, m as MARKET_TZ, n as MarketTz, t as MinuteKline, s as MinuteTimeline, O as OBVOptions, f as OBVResult, g as ROCOptions, h as ROCResult, R as RSIOptions, S as SAROptions, j as SARResult, T as TimeMeta, u as TodayTimeline, v as TodayTimelineResponse, U as USHistoryKline, z as USMinuteKline, E as USMinuteTimeline, W as WROptions, a as addIndicators, o as buildTimeMeta, q as buildTimeMetaFromDateAndTime, r as formatInTz, p as parseMarketTime } from './addIndicators-DQNysyLs.js';
6
6
  export { INDICATOR_REGISTRY, IndicatorKey, buildIndicatorContext, calcATR, calcBIAS, calcBOLL, calcCCI, calcDMI, calcEMA, calcKC, calcKDJ, calcMA, calcMACD, calcOBV, calcROC, calcRSI, calcSAR, calcSMA, calcWMA, calcWR, estimateIndicatorLookback, getEnabledIndicatorKeys } from './indicators.js';
7
- export { A as AssetType, E as Exchange, M as Market, N as NormalizedSymbol, a as SymbolInput, S as SymbolRef, n as normalizeSymbol, b as toEastmoneySecid, t as toTencentSymbol } from './adapters-BvE63CMd.js';
7
+ export { A as AssetType, E as Exchange, M as Market, N as NormalizedSymbol, a as SymbolInput, S as SymbolRef, n as normalizeSymbol, b as toEastmoneySecid, t as toTencentSymbol } from './adapters-BiH4keVd.js';
8
8
  export { Signal, SignalOptions, SignalType, calcSignals } from './signals.js';
9
9
  export { BacktestOptions, BacktestReport, ScreenerBuilder, Strategy, StrategySignal, Trade, backtest, screen } from './screener.js';
10
10
 
@@ -217,27 +217,6 @@ interface DatacenterResult<T> {
217
217
  pages: number;
218
218
  }
219
219
 
220
- declare class FundService extends BaseService {
221
- constructor(client: RequestClient);
222
- /** 获取基金分红明细(全市场,按年份分页) */
223
- getFundDividendList(options?: FundDividendListOptions): Promise<FundDividendListResult>;
224
- /** 获取基金历史净值(单位 + 累计,全历史一次返回) */
225
- getFundNavHistory(code: string): Promise<FundNavHistory>;
226
- /** 获取基金当日实时估值(含 T-1 单位净值 + 盘中估算) */
227
- getFundEstimate(code: string): Promise<FundEstimate>;
228
- /** 获取基金同类排名走势(每日近三月排名 + 百分位) */
229
- getFundRankHistory(code: string): Promise<FundRankHistory>;
230
- /**
231
- * 获取基金深度资料(一次请求返回全量字段)。
232
- *
233
- * 包含:前十大重仓股、资产配置、仓位测算、基金经理、业绩评价、
234
- * 持有人结构、规模变动、申购赎回、阶段收益率、同类基金等。
235
- *
236
- * @param code 基金代码(纯数字,如 `'000001'`)
237
- */
238
- getFundProfile(code: string): Promise<FundProfile>;
239
- }
240
-
241
220
  /**
242
221
  * 根据搜索结果生成外部财经站点链接。
243
222
  * @param result 搜索结果
@@ -245,4 +224,4 @@ declare class FundService extends BaseService {
245
224
  */
246
225
  declare function generateSearchExternalLinks(result: SearchResult): ExternalLink[];
247
226
 
248
- export { BROWSER_JSVARS_MUTEX_KEY, type DatacenterQuery, type DatacenterResult, ExternalLink, type FetchJsVarsOptions, FundDividendListOptions, FundDividendListResult, FundEstimate, FundNavHistory, FundProfile, FundRankHistory, FundService, type JsonpOptions, SearchResult, asyncPool, chunkArray, decodeGBK, extractJsonFromJsonp, fetchJsVars, generateSearchExternalLinks, jsonpRequest, parseJsVars, parseResponse, safeNumber, safeNumberOrNull, withScriptMutex };
227
+ export { BROWSER_JSVARS_MUTEX_KEY, type DatacenterQuery, type DatacenterResult, ExternalLink, type FetchJsVarsOptions, type JsonpOptions, SearchResult, asyncPool, chunkArray, decodeGBK, extractJsonFromJsonp, fetchJsVars, generateSearchExternalLinks, jsonpRequest, parseJsVars, parseResponse, safeNumber, safeNumberOrNull, withScriptMutex };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as ae}from"./chunk-LAT6L2TO.js";import{a as ie,b as ce}from"./chunk-LCX5Q36O.js";import{a as pe,b as ue}from"./chunk-F3KZXCVO.js";import{a as p,b as u,c as l,d as m,e as S,f as y,g as C,h as g,i as R,j as x,k as I,l as b,m as A,n as T,o as N,p as K,q as E,r as oe,s as re,t as ne,u as se}from"./chunk-3X645BZO.js";import{a as z,b as B,c as q,d as U,e as X,f as w,g as F,h as _,i as $,j as G,k as H,l as J,m as P,n as V,o as W,p as Q,q as v,r as Y,s as Z,u as j,v as ee,w as te}from"./chunk-G5KF73BW.js";import{d as a,g as L,h as D}from"./chunk-D2MGPO3R.js";import{a as O,b as f,d as M}from"./chunk-DU7MCVLJ.js";import{a as d,b as k,k as h}from"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";var le={0:"sz",1:"sh",100:"global",105:"us",116:"hk"},me={sh:"CN",sz:"CN",hk:"HK",us:"US"},de={IXIC:".IXIC",NDX:".NDX",NDX100:".NDX"},ke={IXIC:"NDX",NDX:"NDX",NDX100:"NDX"};function he(t){return t==="sh"||t==="sz"||t==="hk"||t==="us"||t==="global"}function Se(t){switch(t.market){case"CN":return t.exchange==="SSE"?"sh":t.exchange==="SZSE"?"sz":"unknown";case"HK":return"hk";case"US":return"us";case"GLOBAL":return"global";default:return"unknown"}}function ye(t){let e=t.code.trim(),o=t.market.trim().toLowerCase(),s=le[t.market]??o,r=he(s)?s:void 0;if(r==="global")return{code:e.replace(/^\d{3}\./,"").toUpperCase(),market:"global"};let c=r===void 0||r==="us"?e.replace(/^us(?=[A-Za-z.]+$)/i,""):e;try{let n=a(c,r?{market:me[r]}:void 0);if(n.assetType!=="stock")return{code:e,market:"unknown"};let i=r??Se(n);return i==="unknown"?{code:e,market:"unknown"}:{code:n.market==="US"?n.code.toUpperCase():n.code,market:i}}catch{return{code:e,market:"unknown"}}}function Oe(t,e){return e==="sh"&&t.startsWith("000")||e==="sz"&&t.startsWith("399")}function fe(t){let{code:e,market:o}=t;return(o==="sh"||o==="sz")&&Oe(e,o)?`https://quote.eastmoney.com/zs${e}.html`:o==="sh"||o==="sz"?`https://quote.eastmoney.com/${o}${e}.html`:o==="hk"?`https://quote.eastmoney.com/hk/${e}.html`:o==="us"?`https://quote.eastmoney.com/us/${e}.html`:o==="global"?`https://quote.eastmoney.com/gb/zs${ke[e]??e}.html`:`https://so.eastmoney.com/web/s?keyword=${encodeURIComponent(e)}`}function Me(t){let{code:e,market:o}=t;return o==="sh"||o==="sz"?`https://xueqiu.com/S/${o.toUpperCase()}${e}`:o==="hk"?`https://xueqiu.com/S/${e}`:o==="us"?`https://xueqiu.com/S/${e}`:o==="global"?`https://xueqiu.com/S/${de[e]??e}`:`https://xueqiu.com/k?q=${encodeURIComponent(e)}`}function Ce(t){let e=ye(t);return[{name:"\u4E1C\u65B9\u8D22\u5BCC",url:fe(e)},{name:"\u96EA\u7403",url:Me(e)}]}export{x as BROWSER_JSVARS_MUTEX_KEY,re as FundService,k as HttpError,Z as INDICATOR_REGISTRY,A as MARKET_TZ,O as MemoryCache,pe as MemoryCacheStore,d as SdkError,ne as StockSDK,oe as TradingCalendarService,te as addIndicators,y as asyncPool,ce as backtest,Y as buildIndicatorContext,N as buildTimeMeta,K as buildTimeMetaFromDateAndTime,ue as cacheThrough,J as calcATR,G as calcBIAS,w as calcBOLL,H as calcCCI,W as calcDMI,B as calcEMA,v as calcKC,F as calcKDJ,U as calcMA,X as calcMACD,P as calcOBV,V as calcROC,_ as calcRSI,Q as calcSAR,z as calcSMA,ae as calcSignals,q as calcWMA,$ as calcWR,S as chunkArray,M as createCacheKey,p as decodeGBK,se as default,ee as estimateIndicatorLookback,C as extractJsonFromJsonp,I as fetchJsVars,E as formatInTz,Ce as generateSearchExternalLinks,j as getEnabledIndicatorKeys,h as getSdkErrorCode,f as getSharedCache,g as jsonpRequest,a as normalizeSymbol,b as parseJsVars,T as parseMarketTime,u as parseResponse,l as safeNumber,m as safeNumberOrNull,ie as screen,D as toEastmoneySecid,L as toTencentSymbol,R as withScriptMutex};
1
+ import{a as ae}from"./chunk-LAT6L2TO.js";import{a as ie,b as ce}from"./chunk-LCX5Q36O.js";import{a as pe,b as ue}from"./chunk-F3KZXCVO.js";import{a as p,b as u,c as l,d as m,e as S,f as y,g as C,h as g,i as R,j as x,k as I,l as b,m as A,n as T,o as N,p as K,q as E,r as oe,s as re,t as ne,u as se}from"./chunk-TXJPUZJI.js";import{a as z,b as B,c as q,d as U,e as X,f as w,g as F,h as _,i as $,j as G,k as H,l as J,m as P,n as V,o as W,p as Q,q as v,r as Y,s as Z,u as j,v as ee,w as te}from"./chunk-G5KF73BW.js";import{e as a,h as L,i as D}from"./chunk-ZZ2IBUMV.js";import{a as O,b as f,d as M}from"./chunk-DU7MCVLJ.js";import{a as d,b as k,k as h}from"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";var le={0:"sz",1:"sh",100:"global",105:"us",116:"hk"},me={sh:"CN",sz:"CN",hk:"HK",us:"US"},de={IXIC:".IXIC",NDX:".NDX",NDX100:".NDX"},ke={IXIC:"NDX",NDX:"NDX",NDX100:"NDX"};function he(t){return t==="sh"||t==="sz"||t==="hk"||t==="us"||t==="global"}function Se(t){switch(t.market){case"CN":return t.exchange==="SSE"?"sh":t.exchange==="SZSE"?"sz":"unknown";case"HK":return"hk";case"US":return"us";case"GLOBAL":return"global";default:return"unknown"}}function ye(t){let e=t.code.trim(),o=t.market.trim().toLowerCase(),s=le[t.market]??o,r=he(s)?s:void 0;if(r==="global")return{code:e.replace(/^\d{3}\./,"").toUpperCase(),market:"global"};let c=r===void 0||r==="us"?e.replace(/^us(?=[A-Za-z.]+$)/i,""):e;try{let n=a(c,r?{market:me[r]}:void 0);if(n.assetType!=="stock")return{code:e,market:"unknown"};let i=r??Se(n);return i==="unknown"?{code:e,market:"unknown"}:{code:n.market==="US"?n.code.toUpperCase():n.code,market:i}}catch{return{code:e,market:"unknown"}}}function Oe(t,e){return e==="sh"&&t.startsWith("000")||e==="sz"&&t.startsWith("399")}function fe(t){let{code:e,market:o}=t;return(o==="sh"||o==="sz")&&Oe(e,o)?`https://quote.eastmoney.com/zs${e}.html`:o==="sh"||o==="sz"?`https://quote.eastmoney.com/${o}${e}.html`:o==="hk"?`https://quote.eastmoney.com/hk/${e}.html`:o==="us"?`https://quote.eastmoney.com/us/${e}.html`:o==="global"?`https://quote.eastmoney.com/gb/zs${ke[e]??e}.html`:`https://so.eastmoney.com/web/s?keyword=${encodeURIComponent(e)}`}function Me(t){let{code:e,market:o}=t;return o==="sh"||o==="sz"?`https://xueqiu.com/S/${o.toUpperCase()}${e}`:o==="hk"?`https://xueqiu.com/S/${e}`:o==="us"?`https://xueqiu.com/S/${e}`:o==="global"?`https://xueqiu.com/S/${de[e]??e}`:`https://xueqiu.com/k?q=${encodeURIComponent(e)}`}function Ce(t){let e=ye(t);return[{name:"\u4E1C\u65B9\u8D22\u5BCC",url:fe(e)},{name:"\u96EA\u7403",url:Me(e)}]}export{x as BROWSER_JSVARS_MUTEX_KEY,re as FundService,k as HttpError,Z as INDICATOR_REGISTRY,A as MARKET_TZ,O as MemoryCache,pe as MemoryCacheStore,d as SdkError,ne as StockSDK,oe as TradingCalendarService,te as addIndicators,y as asyncPool,ce as backtest,Y as buildIndicatorContext,N as buildTimeMeta,K as buildTimeMetaFromDateAndTime,ue as cacheThrough,J as calcATR,G as calcBIAS,w as calcBOLL,H as calcCCI,W as calcDMI,B as calcEMA,v as calcKC,F as calcKDJ,U as calcMA,X as calcMACD,P as calcOBV,V as calcROC,_ as calcRSI,Q as calcSAR,z as calcSMA,ae as calcSignals,q as calcWMA,$ as calcWR,S as chunkArray,M as createCacheKey,p as decodeGBK,se as default,ee as estimateIndicatorLookback,C as extractJsonFromJsonp,I as fetchJsVars,E as formatInTz,Ce as generateSearchExternalLinks,j as getEnabledIndicatorKeys,h as getSdkErrorCode,f as getSharedCache,g as jsonpRequest,a as normalizeSymbol,b as parseJsVars,T as parseMarketTime,u as parseResponse,l as safeNumber,m as safeNumberOrNull,ie as screen,D as toEastmoneySecid,L as toTencentSymbol,R as withScriptMutex};
@@ -1,5 +1,5 @@
1
- import { M as MAOptions, F as MAResult, b as MACDOptions, G as MACDResult, B as BOLLOptions, J as BOLLResult, L as OHLCV, c as KDJOptions, N as KDJResult, R as RSIOptions, P as RSIResult, W as WROptions, Q as WRResult, d as BIASOptions, V as BIASResult, C as CCIOptions, X as CCIResult, e as ATROptions, Y as ATRResult, I as IndicatorOptions, Z as PeriodsShorthand, A as AnyHistoryKline } from './addIndicators-DwEr9RKK.cjs';
2
- export { D as DMIOptions, i as DMIResult, k as KCOptions, l as KCResult, K as KlineWithIndicators, O as OBVOptions, f as OBVResult, g as ROCOptions, h as ROCResult, S as SAROptions, j as SARResult, a as addIndicators } from './addIndicators-DwEr9RKK.cjs';
1
+ import { M as MAOptions, F as MAResult, b as MACDOptions, G as MACDResult, B as BOLLOptions, J as BOLLResult, L as OHLCV, c as KDJOptions, N as KDJResult, R as RSIOptions, P as RSIResult, W as WROptions, Q as WRResult, d as BIASOptions, V as BIASResult, C as CCIOptions, X as CCIResult, e as ATROptions, Y as ATRResult, I as IndicatorOptions, Z as PeriodsShorthand, A as AnyHistoryKline } from './addIndicators-DQNysyLs.cjs';
2
+ export { D as DMIOptions, i as DMIResult, k as KCOptions, l as KCResult, K as KlineWithIndicators, O as OBVOptions, f as OBVResult, g as ROCOptions, h as ROCResult, S as SAROptions, j as SARResult, a as addIndicators } from './addIndicators-DQNysyLs.cjs';
3
3
 
4
4
  /**
5
5
  * 计算简单移动平均线 SMA
@@ -1,5 +1,5 @@
1
- import { M as MAOptions, F as MAResult, b as MACDOptions, G as MACDResult, B as BOLLOptions, J as BOLLResult, L as OHLCV, c as KDJOptions, N as KDJResult, R as RSIOptions, P as RSIResult, W as WROptions, Q as WRResult, d as BIASOptions, V as BIASResult, C as CCIOptions, X as CCIResult, e as ATROptions, Y as ATRResult, I as IndicatorOptions, Z as PeriodsShorthand, A as AnyHistoryKline } from './addIndicators-DwEr9RKK.js';
2
- export { D as DMIOptions, i as DMIResult, k as KCOptions, l as KCResult, K as KlineWithIndicators, O as OBVOptions, f as OBVResult, g as ROCOptions, h as ROCResult, S as SAROptions, j as SARResult, a as addIndicators } from './addIndicators-DwEr9RKK.js';
1
+ import { M as MAOptions, F as MAResult, b as MACDOptions, G as MACDResult, B as BOLLOptions, J as BOLLResult, L as OHLCV, c as KDJOptions, N as KDJResult, R as RSIOptions, P as RSIResult, W as WROptions, Q as WRResult, d as BIASOptions, V as BIASResult, C as CCIOptions, X as CCIResult, e as ATROptions, Y as ATRResult, I as IndicatorOptions, Z as PeriodsShorthand, A as AnyHistoryKline } from './addIndicators-DQNysyLs.js';
2
+ export { D as DMIOptions, i as DMIResult, k as KCOptions, l as KCResult, K as KlineWithIndicators, O as OBVOptions, f as OBVResult, g as ROCOptions, h as ROCResult, S as SAROptions, j as SARResult, a as addIndicators } from './addIndicators-DQNysyLs.js';
3
3
 
4
4
  /**
5
5
  * 计算简单移动平均线 SMA