@fxri/toolkit 1.0.0 → 1.0.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # @fxri/toolkit
2
+
3
+ ## 1.0.1
4
+ > 2026-09-02 发布
5
+
6
+ ### 🐛 补丁修复
7
+
8
+ - 修复 CHANGELOG 格式化在 CRLF 文件下失效及正文中段重复条目无法合并的问题
9
+ - 发布日期后缀文案随语言切换,英文 CHANGELOG 不再混入中文「发布」
10
+ - 新增 exports 条件导出,CJS 消费方可正常 require
11
+ - changesets 调用改走进程内 node 与数组参数,规避跨平台 shell 差异
12
+ - 修复 changelog 域不带 --lang 时首命令被误删的问题
13
+ - 移除公开包元数据中的私有仓库地址
14
+
15
+ ## 1.0.0
16
+ > 2026-09-02 发布
17
+
18
+ ### ✨ 新增功能
19
+
20
+ - 新增任务管理域(tasks):扫描、总览、归档 Markdown 任务文件
21
+ - 新增多语言 CHANGELOG 域(changelog):封装 changesets,支持中英文标题格式化
22
+
23
+ ### 🐛 补丁修复
24
+
25
+ - 完善 npm 发布配置并为英文变更日志补充分类图标
package/dist/cli.cjs CHANGED
@@ -1,20 +1,24 @@
1
1
  #!/usr/bin/env node
2
- var W=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,g=W();var _=require("module"),B=require("child_process");var j=require("fs"),y=require("path");function v(e){let o=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!o)return{};let n={};for(let t of o[1].split(/\r?\n/)){let s=t.indexOf(":");if(s===-1)continue;let i=t.slice(0,s).trim(),c=t.slice(s+1).trim();i&&(n[i]=c)}return n}function $(e){let o=e.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return o?e.slice(o[0].length):e}var u=require("fs"),h=require("path");function T(e){if(!(0,u.existsSync)(e))return[];let o=[];for(let n of(0,u.readdirSync)(e)){let t=(0,h.join)(e,n);if((0,u.statSync)(t).isDirectory())for(let s of(0,u.readdirSync)(t))s.endsWith(".md")&&o.push((0,h.join)(t,s));else n.endsWith(".md")&&o.push(t)}return o}function L(e){let n=(0,h.basename)(e,(0,h.extname)(e)).match(/^(\d{8})/);return n?n[1]:""}function I(e=".tasks"){let o=(0,y.join)(e,"active");return T(o).map(n=>{let t=(0,j.readFileSync)(n,"utf8"),s=v(t),i=t.split(/\r?\n/).find(c=>c.startsWith("# ")&&!c.startsWith("#!"))?.replace(/^#\s*/,"")||(0,y.basename)(n,".md");return{file:n,name:(0,y.basename)(n,".md"),date:L(n),title:i,frontmatter:s,body:$(t).trim()}})}function R(e=".tasks"){let o=I(e);if(o.length===0){console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1");return}let n=["\u8FDB\u884C\u4E2D","\u963B\u585E","\u5F85\u529E","\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03","\u672A\u6807\u6CE8"],t={};for(let i of o){let c=n.includes(i.frontmatter.status)?i.frontmatter.status:"\u672A\u6807\u6CE8";(t[c]||=[]).push(i)}console.log(`\u4EFB\u52A1\u603B\u89C8\uFF1A
3
- `);let s=0;for(let i of n){let c=t[i]||[];if(c.length!==0){s+=c.length,console.log(`\u3010${i}\u3011${c.length} \u9879`);for(let r of c)console.log(` ${r.date} ${(r.frontmatter.owner||"\u672A\u6807\u6CE8").padEnd(8)} ${r.title}`);console.log("")}}console.log(`\u5171 ${s} \u4E2A\u4EFB\u52A1\u6587\u4EF6`)}var l=require("fs"),p=require("path");var U=["\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03"];function q(e){let o=(0,l.readFileSync)(e,"utf8"),n=[],t=/## (.+?)\n\n> [^\n]*完成时间:([^\n]+)\n\n([\s\S]*?)(?=\n\n---\n\n## |$)/g,s;for(;s=t.exec(o);)n.push({block:s[0].trim(),completed:s[2].trim()});return n}function M(e=".tasks"){let o=(0,p.join)(e,"active"),n=(0,p.join)(e,"archive"),t=T(o);if(t.length===0)return console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1\uFF0C\u65E0\u9700\u5F52\u6863"),{archived:0,skipped:[]};let s=[],i=[];for(let r of t){let m=(0,l.readFileSync)(r,"utf8"),f=v(m);if(!U.includes(f.status))continue;let k=f.completed;if(!k){i.push((0,p.basename)(r,".md")),console.log(`\u8DF3\u8FC7 ${(0,p.basename)(r,".md")}\uFF1A\u7F3A\u5C11 completed \u5B8C\u6210\u65F6\u95F4`);continue}s.push({file:r,name:(0,p.basename)(r,".md"),owner:f.owner||"\u672A\u6807\u6CE8",status:f.status||"\u672A\u6807\u6CE8",scope:f.scope||"-",completed:k,body:$(m).trim()})}if(s.length===0)return console.log("\u672C\u6B21\u65E0\u53EF\u5F52\u6863\u4EFB\u52A1"),{archived:0,skipped:i};let c={};for(let r of s){let m=r.completed.replace(/-/g,"").slice(0,8);(c[m]||=[]).push(r)}for(let[r,m]of Object.entries(c)){let f=(0,p.join)(n,r.slice(0,6));(0,l.mkdirSync)(f,{recursive:!0});let k=(0,p.join)(f,`${r}.md`),F=(0,l.existsSync)(k)?q(k):[];F.push(...m.map(a=>({block:`## ${a.name}
2
+ var G=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,f=G();var O=require("module"),_=require("child_process");var j=require("fs"),y=require("path");function x(t){let n=t.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!n)return{};let e={};for(let o of n[1].split(/\r?\n/)){let s=o.indexOf(":");if(s===-1)continue;let r=o.slice(0,s).trim(),i=o.slice(s+1).trim();(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1)),r&&(e[r]=i)}return e}function S(t){let n=t.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return n?t.slice(n[0].length):t}var h=require("fs"),k=require("path");function T(t){if(!(0,h.existsSync)(t))return[];let n=[];for(let e of(0,h.readdirSync)(t)){let o=(0,k.join)(t,e);if((0,h.statSync)(o).isDirectory())for(let s of(0,h.readdirSync)(o))s.endsWith(".md")&&n.push((0,k.join)(o,s));else e.endsWith(".md")&&n.push(o)}return n}function L(t){let e=(0,k.basename)(t,(0,k.extname)(t)).match(/^(\d{8})/);return e?e[1]:""}function I(t=".tasks"){let n=(0,y.join)(t,"active");return T(n).map(e=>{let o=(0,j.readFileSync)(e,"utf8"),s=x(o),r=o.split(/\r?\n/).find(i=>i.startsWith("# ")&&!i.startsWith("#!"))?.replace(/^#\s*/,"")||(0,y.basename)(e,".md");return{file:e,name:(0,y.basename)(e,".md"),date:L(e),title:r,frontmatter:s,body:S(o).trim()}})}function R(t=".tasks"){let n=I(t);if(n.length===0){console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1");return}let e=["\u8FDB\u884C\u4E2D","\u963B\u585E","\u5F85\u529E","\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03","\u672A\u6807\u6CE8"],o={};for(let r of n){let i=e.includes(r.frontmatter.status)?r.frontmatter.status:"\u672A\u6807\u6CE8";(o[i]||=[]).push(r)}console.log(`\u4EFB\u52A1\u603B\u89C8\uFF1A
3
+ `);let s=0;for(let r of e){let i=o[r]||[];if(i.length!==0){s+=i.length,console.log(`\u3010${r}\u3011${i.length} \u9879`);for(let c of i)console.log(` ${c.date} ${(c.frontmatter.owner||"\u672A\u6807\u6CE8").padEnd(8)} ${c.title}`);console.log("")}}console.log(`\u5171 ${s} \u4E2A\u4EFB\u52A1\u6587\u4EF6`)}var m=require("fs"),l=require("path");var U=["\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03"];function q(t,n){let e=(0,l.resolve)(t),o=(0,l.resolve)(n);for(;e!==o&&e.startsWith(o+l.sep);){try{if((0,m.readdirSync)(e).length>0)break;(0,m.rmdirSync)(e)}catch{break}e=(0,l.dirname)(e)}}function z(t){let n=(0,m.readFileSync)(t,"utf8"),e=[],o=/## (.+?)\n\n> [^\n]*完成时间:([^\n]+)\n\n([\s\S]*?)(?=\n\n---\n\n## |$)/g,s;for(;s=o.exec(n);)e.push({block:s[0].trim(),completed:s[2].trim()});return e}function W(t=".tasks"){let n=(0,l.join)(t,"active"),e=(0,l.join)(t,"archive"),o=T(n);if(o.length===0)return console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1\uFF0C\u65E0\u9700\u5F52\u6863"),{archived:0,skipped:[]};let s=[],r=[];for(let c of o){let p=(0,m.readFileSync)(c,"utf8"),a=x(p);if(!U.includes(a.status))continue;let u=a.completed;if(!u){r.push((0,l.basename)(c,".md")),console.log(`\u8DF3\u8FC7 ${(0,l.basename)(c,".md")}\uFF1A\u7F3A\u5C11 completed \u5B8C\u6210\u65F6\u95F4`);continue}s.push({file:c,name:(0,l.basename)(c,".md"),owner:a.owner||"\u672A\u6807\u6CE8",status:a.status||"\u672A\u6807\u6CE8",scope:a.scope||"-",completed:u,body:S(p).trim()})}if(s.length===0)return console.log("\u672C\u6B21\u65E0\u53EF\u5F52\u6863\u4EFB\u52A1"),{archived:0,skipped:r};let i={};for(let c of s){let p=c.completed.replace(/-/g,"").slice(0,8);(i[p]||=[]).push(c)}for(let[c,p]of Object.entries(i)){let a=(0,l.join)(e,c.slice(0,6));(0,m.mkdirSync)(a,{recursive:!0});let u=(0,l.join)(a,`${c}.md`),F=(0,m.existsSync)(u)?z(u):[];F.push(...p.map(g=>({block:`## ${g.name}
4
4
 
5
- > \u8D1F\u8D23\u4EBA\uFF1A${a.owner}\u3000\u72B6\u6001\uFF1A${a.status}\u3000\u8303\u56F4\uFF1A${a.scope}\u3000\u5B8C\u6210\u65F6\u95F4\uFF1A${a.completed}
5
+ > \u8D1F\u8D23\u4EBA\uFF1A${g.owner}\u3000\u72B6\u6001\uFF1A${g.status}\u3000\u8303\u56F4\uFF1A${g.scope}\u3000\u5B8C\u6210\u65F6\u95F4\uFF1A${g.completed}
6
6
 
7
- ${a.body}`,completed:a.completed}))),F.sort((a,P)=>a.completed.localeCompare(P.completed)),(0,l.writeFileSync)(k,`# ${r} \u5F52\u6863
7
+ ${g.body}`,completed:g.completed}))),F.sort((g,B)=>g.completed.localeCompare(B.completed)),(0,m.writeFileSync)(u,`# ${c} \u5F52\u6863
8
8
 
9
9
  > \u672C\u6587\u4EF6\u7531 \`toolkit tasks archive\` \u81EA\u52A8\u751F\u6210\u3002
10
10
 
11
- ${F.map(a=>a.block).join(`
11
+ ${F.map(g=>g.block).join(`
12
12
 
13
13
  ---
14
14
 
15
15
  `)}
16
- `,"utf8");for(let a of m)(0,l.unlinkSync)(a.file);console.log(`\u5DF2\u5F52\u6863 ${m.length} \u4E2A\u4EFB\u52A1 \u2192 ${r}.md`)}return console.log(`\u5171\u5F52\u6863 ${s.length} \u4E2A\u4EFB\u52A1`),{archived:s.length,skipped:i}}var x={zh:{replacements:{"### Major Changes":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### \u91CD\u5927\u53D8\u66F4":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### Minor Changes":"### \u2728 \u65B0\u589E\u529F\u80FD","### \u65B0\u589E\u529F\u80FD":"### \u2728 \u65B0\u589E\u529F\u80FD","### Patch Changes":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### \u8865\u4E01\u4FEE\u590D":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### Dependent Changes":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","### \u4F9D\u8D56\u53D8\u66F4":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","- Updated dependencies":"- \u66F4\u65B0\u4F9D\u8D56"},deps:"- \u66F4\u65B0\u4F9D\u8D56"},en:{replacements:{"### Major Changes":"### \u{1F6A8} Major Changes","### Minor Changes":"### \u2728 Minor Changes","### Patch Changes":"### \u{1F41B} Patch Changes","### Dependent Changes":"### \u{1F517} Dependent Changes"},deps:"- Updated dependencies"}},S="zh";var C=require("fs");var E=require("fs"),b=require("path");function N(e){let o=[],n=new Set(["node_modules",".git","dist"]),t=s=>{let i;try{i=(0,E.readdirSync)(s,{withFileTypes:!0})}catch{return}for(let c of i)if(c.isDirectory()){if(n.has(c.name))continue;t((0,b.join)(s,c.name))}else c.name==="CHANGELOG.md"&&o.push((0,b.join)(s,c.name))};return t(e),o}function w(){let e=new Date,o=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${o(e.getMonth()+1)}-${o(e.getDate())}`}function z(e,o,n){let t=(0,C.readFileSync)(e,"utf8");for(let[r,m]of Object.entries(n.replacements))t=t.replaceAll(r,m);for(;t.includes(`${n.deps}
17
- ${n.deps}`);)t=t.replace(`${n.deps}
18
- ${n.deps}`,n.deps);for(;;){let r=t.replace(/^- (.+)\n- \1$/m,"- $1");if(r===t)break;t=r}let s=t.split(`
19
- `),i=[];for(let r=0;r<s.length;r++)i.push(s[r]),/^## \d+\.\d+\.\d+/.test(s[r])&&!s[r+1]?.startsWith("> ")&&i.push(`> ${o} \u53D1\u5E03`);let c=i.join(`
20
- `);return c!==t?((0,C.writeFileSync)(e,c,"utf8"),!0):!1}function A(e,o,n){let t=[];for(let s of N(e))z(s,o,n)&&t.push(s);if(t.length===0)console.log("\u65E0 CHANGELOG \u9700\u8981\u66F4\u65B0");else for(let s of t)console.log(`changelog \u5DF2\u66F4\u65B0\uFF1A${s}`);return t}var H=(0,_.createRequire)(g),Y=H.resolve("@changesets/cli/bin.js"),D=e=>{(0,B.execSync)(`node "${Y}" ${e.join(" ")}`,{stdio:"inherit"})},G=process.argv.slice(2),O=G[0],d=G.slice(1);if(O==="tasks"){let e=d.indexOf("--dir"),o=e>=0&&d[e+1]?d[e+1]:".tasks";(d.find(t=>!t.startsWith("--")&&t!==o)||"list")==="archive"?M(o):R(o)}else if(O==="changelog"){let e=d.indexOf("--lang"),o=e>=0&&d[e+1]?d[e+1]:S,n=d.filter((s,i)=>i!==e&&i!==e+1),t=n[0];t==="version"?(D(["version"]),A(".",w(),x[o]??x[S])):t==="format"?A(".",w(),x[o]??x[S]):D(t?n:[])}else console.log("\u7528\u6CD5\uFF1Atoolkit <tasks|changelog> ..."),console.log(" toolkit tasks \u4EFB\u52A1\u603B\u89C8"),console.log(" toolkit tasks archive \u5F52\u6863\u5DF2\u5B8C\u6210\u4EFB\u52A1"),console.log(" toolkit changelog \u521B\u5EFA\u53D8\u66F4\u96C6"),console.log(" toolkit changelog version \u53D1\u7248 + \u591A\u8BED\u8A00\u683C\u5F0F\u5316"),console.log(" toolkit changelog format \u7EAF\u683C\u5F0F\u5316");
16
+ `,"utf8");for(let g of p)(0,m.unlinkSync)(g.file);q((0,l.dirname)(p[0].file),t),console.log(`\u5DF2\u5F52\u6863 ${p.length} \u4E2A\u4EFB\u52A1 \u2192 ${c}.md`)}return console.log(`\u5171\u5F52\u6863 ${s.length} \u4E2A\u4EFB\u52A1`),{archived:s.length,skipped:r}}var v={zh:{replacements:{"### Major Changes":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### \u91CD\u5927\u53D8\u66F4":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### Minor Changes":"### \u2728 \u65B0\u589E\u529F\u80FD","### \u65B0\u589E\u529F\u80FD":"### \u2728 \u65B0\u589E\u529F\u80FD","### Patch Changes":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### \u8865\u4E01\u4FEE\u590D":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### Dependent Changes":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","### \u4F9D\u8D56\u53D8\u66F4":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","- Updated dependencies":"- \u66F4\u65B0\u4F9D\u8D56"},deps:"- \u66F4\u65B0\u4F9D\u8D56",released:"\u53D1\u5E03"},en:{replacements:{"### Major Changes":"### \u{1F6A8} Major Changes","### Minor Changes":"### \u2728 Minor Changes","### Patch Changes":"### \u{1F41B} Patch Changes","### Dependent Changes":"### \u{1F517} Dependent Changes"},deps:"- Updated dependencies",released:"released"}},$="zh";var C=require("fs");var E=require("fs"),b=require("path");function M(t){let n=[],e=new Set(["node_modules",".git","dist"]),o=s=>{let r;try{r=(0,E.readdirSync)(s,{withFileTypes:!0})}catch{return}for(let i of r)if(i.isDirectory()){if(e.has(i.name))continue;o((0,b.join)(s,i.name))}else i.name==="CHANGELOG.md"&&n.push((0,b.join)(s,i.name))};return o(t),n}function w(){let t=new Date,n=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}`}function H(t,n,e){let o=(0,C.readFileSync)(t,"utf8"),s=o.includes(`\r
17
+ `)?`\r
18
+ `:`
19
+ `,r=o.replace(/\r\n/g,`
20
+ `);for(let[a,u]of Object.entries(e.replacements))r=r.replaceAll(a,u);for(;r.includes(`${e.deps}
21
+ ${e.deps}`);)r=r.replace(`${e.deps}
22
+ ${e.deps}`,e.deps);for(;;){let a=r.replace(/^- (.+)\n- \1$/gm,"- $1");if(a===r)break;r=a}let i=r.split(`
23
+ `),c=[];for(let a=0;a<i.length;a++)c.push(i[a]),/^## \d+\.\d+\.\d+/.test(i[a])&&!i[a+1]?.startsWith("> ")&&c.push(`> ${n} ${e.released}`);let p=c.join(`
24
+ `);return p!==r?((0,C.writeFileSync)(t,p.replace(/\n/g,s),"utf8"),!0):!1}function A(t,n,e){let o=[];for(let s of M(t))H(s,n,e)&&o.push(s);if(o.length===0)console.log("\u65E0 CHANGELOG \u9700\u8981\u66F4\u65B0");else for(let s of o)console.log(`changelog \u5DF2\u66F4\u65B0\uFF1A${s}`);return o}var Y=(0,O.createRequire)(f),J=Y.resolve("@changesets/cli/bin.js"),D=t=>{let n=(0,_.spawnSync)(process.execPath,[J,...t],{stdio:"inherit"});n.status!==0&&process.exit(n.status??1)},P=process.argv.slice(2),N=P[0],d=P.slice(1);if(N==="tasks"){let t=d.indexOf("--dir"),n=t>=0&&d[t+1]?d[t+1]:".tasks";(d.find(o=>!o.startsWith("--")&&o!==n)||"list")==="archive"?W(n):R(n)}else if(N==="changelog"){let t=d.indexOf("--lang"),n=t>=0&&d[t+1]?d[t+1]:$,e=t>=0?d.filter((s,r)=>r!==t&&r!==t+1):d,o=e[0];o==="version"?(D(["version"]),A(".",w(),v[n]??v[$])):o==="format"?A(".",w(),v[n]??v[$]):D(o?e:[])}else console.log("\u7528\u6CD5\uFF1Atoolkit <tasks|changelog> ..."),console.log(" toolkit tasks \u4EFB\u52A1\u603B\u89C8"),console.log(" toolkit tasks archive \u5F52\u6863\u5DF2\u5B8C\u6210\u4EFB\u52A1"),console.log(" toolkit changelog \u521B\u5EFA\u53D8\u66F4\u96C6"),console.log(" toolkit changelog version \u53D1\u7248 + \u591A\u8BED\u8A00\u683C\u5F0F\u5316"),console.log(" toolkit changelog format \u7EAF\u683C\u5F0F\u5316");
package/dist/cli.js CHANGED
@@ -1,20 +1,24 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as et}from"module";import{execSync as nt}from"child_process";import{readFileSync as q}from"fs";import{join as z,basename as D}from"path";function u(e){let o=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!o)return{};let n={};for(let t of o[1].split(/\r?\n/)){let s=t.indexOf(":");if(s===-1)continue;let i=t.slice(0,s).trim(),c=t.slice(s+1).trim();i&&(n[i]=c)}return n}function k(e){let o=e.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return o?e.slice(o[0].length):e}import{existsSync as G,readdirSync as b,statSync as U}from"fs";import{join as A,basename as W,extname as P}from"path";function y(e){if(!G(e))return[];let o=[];for(let n of b(e)){let t=A(e,n);if(U(t).isDirectory())for(let s of b(t))s.endsWith(".md")&&o.push(A(t,s));else n.endsWith(".md")&&o.push(t)}return o}function w(e){let n=W(e,P(e)).match(/^(\d{8})/);return n?n[1]:""}function H(e=".tasks"){let o=z(e,"active");return y(o).map(n=>{let t=q(n,"utf8"),s=u(t),i=t.split(/\r?\n/).find(c=>c.startsWith("# ")&&!c.startsWith("#!"))?.replace(/^#\s*/,"")||D(n,".md");return{file:n,name:D(n,".md"),date:w(n),title:i,frontmatter:s,body:k(t).trim()}})}function j(e=".tasks"){let o=H(e);if(o.length===0){console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1");return}let n=["\u8FDB\u884C\u4E2D","\u963B\u585E","\u5F85\u529E","\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03","\u672A\u6807\u6CE8"],t={};for(let i of o){let c=n.includes(i.frontmatter.status)?i.frontmatter.status:"\u672A\u6807\u6CE8";(t[c]||=[]).push(i)}console.log(`\u4EFB\u52A1\u603B\u89C8\uFF1A
3
- `);let s=0;for(let i of n){let c=t[i]||[];if(c.length!==0){s+=c.length,console.log(`\u3010${i}\u3011${c.length} \u9879`);for(let r of c)console.log(` ${r.date} ${(r.frontmatter.owner||"\u672A\u6807\u6CE8").padEnd(8)} ${r.title}`);console.log("")}}console.log(`\u5171 ${s} \u4E2A\u4EFB\u52A1\u6587\u4EF6`)}import{readFileSync as E,writeFileSync as I,mkdirSync as Y,unlinkSync as J,existsSync as K}from"fs";import{join as v,basename as T}from"path";var L=["\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03"];function Q(e){let o=E(e,"utf8"),n=[],t=/## (.+?)\n\n> [^\n]*完成时间:([^\n]+)\n\n([\s\S]*?)(?=\n\n---\n\n## |$)/g,s;for(;s=t.exec(o);)n.push({block:s[0].trim(),completed:s[2].trim()});return n}function M(e=".tasks"){let o=v(e,"active"),n=v(e,"archive"),t=y(o);if(t.length===0)return console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1\uFF0C\u65E0\u9700\u5F52\u6863"),{archived:0,skipped:[]};let s=[],i=[];for(let r of t){let l=E(r,"utf8"),g=u(l);if(!L.includes(g.status))continue;let d=g.completed;if(!d){i.push(T(r,".md")),console.log(`\u8DF3\u8FC7 ${T(r,".md")}\uFF1A\u7F3A\u5C11 completed \u5B8C\u6210\u65F6\u95F4`);continue}s.push({file:r,name:T(r,".md"),owner:g.owner||"\u672A\u6807\u6CE8",status:g.status||"\u672A\u6807\u6CE8",scope:g.scope||"-",completed:d,body:k(l).trim()})}if(s.length===0)return console.log("\u672C\u6B21\u65E0\u53EF\u5F52\u6863\u4EFB\u52A1"),{archived:0,skipped:i};let c={};for(let r of s){let l=r.completed.replace(/-/g,"").slice(0,8);(c[l]||=[]).push(r)}for(let[r,l]of Object.entries(c)){let g=v(n,r.slice(0,6));Y(g,{recursive:!0});let d=v(g,`${r}.md`),$=K(d)?Q(d):[];$.push(...l.map(a=>({block:`## ${a.name}
2
+ import{createRequire as at}from"module";import{spawnSync as ct}from"child_process";import{readFileSync as H}from"fs";import{join as I,basename as D}from"path";function u(t){let n=t.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!n)return{};let e={};for(let s of n[1].split(/\r?\n/)){let o=s.indexOf(":");if(o===-1)continue;let r=s.slice(0,o).trim(),i=s.slice(o+1).trim();(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1)),r&&(e[r]=i)}return e}function k(t){let n=t.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return n?t.slice(n[0].length):t}import{existsSync as P,readdirSync as b,statSync as U}from"fs";import{join as w,basename as q,extname as z}from"path";function y(t){if(!P(t))return[];let n=[];for(let e of b(t)){let s=w(t,e);if(U(s).isDirectory())for(let o of b(s))o.endsWith(".md")&&n.push(w(s,o));else e.endsWith(".md")&&n.push(s)}return n}function A(t){let e=q(t,z(t)).match(/^(\d{8})/);return e?e[1]:""}function Y(t=".tasks"){let n=I(t,"active");return y(n).map(e=>{let s=H(e,"utf8"),o=u(s),r=s.split(/\r?\n/).find(i=>i.startsWith("# ")&&!i.startsWith("#!"))?.replace(/^#\s*/,"")||D(e,".md");return{file:e,name:D(e,".md"),date:A(e),title:r,frontmatter:o,body:k(s).trim()}})}function L(t=".tasks"){let n=Y(t);if(n.length===0){console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1");return}let e=["\u8FDB\u884C\u4E2D","\u963B\u585E","\u5F85\u529E","\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03","\u672A\u6807\u6CE8"],s={};for(let r of n){let i=e.includes(r.frontmatter.status)?r.frontmatter.status:"\u672A\u6807\u6CE8";(s[i]||=[]).push(r)}console.log(`\u4EFB\u52A1\u603B\u89C8\uFF1A
3
+ `);let o=0;for(let r of e){let i=s[r]||[];if(i.length!==0){o+=i.length,console.log(`\u3010${r}\u3011${i.length} \u9879`);for(let a of i)console.log(` ${a.date} ${(a.frontmatter.owner||"\u672A\u6807\u6CE8").padEnd(8)} ${a.title}`);console.log("")}}console.log(`\u5171 ${o} \u4E2A\u4EFB\u52A1\u6587\u4EF6`)}import{readFileSync as E,writeFileSync as J,mkdirSync as K,unlinkSync as Q,existsSync as V,readdirSync as X,rmdirSync as Z}from"fs";import{join as v,basename as $,dirname as M,resolve as W,sep as tt}from"path";var j=["\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03"];function et(t,n){let e=W(t),s=W(n);for(;e!==s&&e.startsWith(s+tt);){try{if(X(e).length>0)break;Z(e)}catch{break}e=M(e)}}function nt(t){let n=E(t,"utf8"),e=[],s=/## (.+?)\n\n> [^\n]*完成时间:([^\n]+)\n\n([\s\S]*?)(?=\n\n---\n\n## |$)/g,o;for(;o=s.exec(n);)e.push({block:o[0].trim(),completed:o[2].trim()});return e}function O(t=".tasks"){let n=v(t,"active"),e=v(t,"archive"),s=y(n);if(s.length===0)return console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1\uFF0C\u65E0\u9700\u5F52\u6863"),{archived:0,skipped:[]};let o=[],r=[];for(let a of s){let g=E(a,"utf8"),c=u(g);if(!j.includes(c.status))continue;let p=c.completed;if(!p){r.push($(a,".md")),console.log(`\u8DF3\u8FC7 ${$(a,".md")}\uFF1A\u7F3A\u5C11 completed \u5B8C\u6210\u65F6\u95F4`);continue}o.push({file:a,name:$(a,".md"),owner:c.owner||"\u672A\u6807\u6CE8",status:c.status||"\u672A\u6807\u6CE8",scope:c.scope||"-",completed:p,body:k(g).trim()})}if(o.length===0)return console.log("\u672C\u6B21\u65E0\u53EF\u5F52\u6863\u4EFB\u52A1"),{archived:0,skipped:r};let i={};for(let a of o){let g=a.completed.replace(/-/g,"").slice(0,8);(i[g]||=[]).push(a)}for(let[a,g]of Object.entries(i)){let c=v(e,a.slice(0,6));K(c,{recursive:!0});let p=v(c,`${a}.md`),T=V(p)?nt(p):[];T.push(...g.map(l=>({block:`## ${l.name}
4
4
 
5
- > \u8D1F\u8D23\u4EBA\uFF1A${a.owner}\u3000\u72B6\u6001\uFF1A${a.status}\u3000\u8303\u56F4\uFF1A${a.scope}\u3000\u5B8C\u6210\u65F6\u95F4\uFF1A${a.completed}
5
+ > \u8D1F\u8D23\u4EBA\uFF1A${l.owner}\u3000\u72B6\u6001\uFF1A${l.status}\u3000\u8303\u56F4\uFF1A${l.scope}\u3000\u5B8C\u6210\u65F6\u95F4\uFF1A${l.completed}
6
6
 
7
- ${a.body}`,completed:a.completed}))),$.sort((a,B)=>a.completed.localeCompare(B.completed)),I(d,`# ${r} \u5F52\u6863
7
+ ${l.body}`,completed:l.completed}))),T.sort((l,G)=>l.completed.localeCompare(G.completed)),J(p,`# ${a} \u5F52\u6863
8
8
 
9
9
  > \u672C\u6587\u4EF6\u7531 \`toolkit tasks archive\` \u81EA\u52A8\u751F\u6210\u3002
10
10
 
11
- ${$.map(a=>a.block).join(`
11
+ ${T.map(l=>l.block).join(`
12
12
 
13
13
  ---
14
14
 
15
15
  `)}
16
- `,"utf8");for(let a of l)J(a.file);console.log(`\u5DF2\u5F52\u6863 ${l.length} \u4E2A\u4EFB\u52A1 \u2192 ${r}.md`)}return console.log(`\u5171\u5F52\u6863 ${s.length} \u4E2A\u4EFB\u52A1`),{archived:s.length,skipped:i}}var h={zh:{replacements:{"### Major Changes":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### \u91CD\u5927\u53D8\u66F4":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### Minor Changes":"### \u2728 \u65B0\u589E\u529F\u80FD","### \u65B0\u589E\u529F\u80FD":"### \u2728 \u65B0\u589E\u529F\u80FD","### Patch Changes":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### \u8865\u4E01\u4FEE\u590D":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### Dependent Changes":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","### \u4F9D\u8D56\u53D8\u66F4":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","- Updated dependencies":"- \u66F4\u65B0\u4F9D\u8D56"},deps:"- \u66F4\u65B0\u4F9D\u8D56"},en:{replacements:{"### Major Changes":"### \u{1F6A8} Major Changes","### Minor Changes":"### \u2728 Minor Changes","### Patch Changes":"### \u{1F41B} Patch Changes","### Dependent Changes":"### \u{1F517} Dependent Changes"},deps:"- Updated dependencies"}},x="zh";import{readFileSync as X,writeFileSync as Z}from"fs";import{readdirSync as V}from"fs";import{join as O}from"path";function R(e){let o=[],n=new Set(["node_modules",".git","dist"]),t=s=>{let i;try{i=V(s,{withFileTypes:!0})}catch{return}for(let c of i)if(c.isDirectory()){if(n.has(c.name))continue;t(O(s,c.name))}else c.name==="CHANGELOG.md"&&o.push(O(s,c.name))};return t(e),o}function F(){let e=new Date,o=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${o(e.getMonth()+1)}-${o(e.getDate())}`}function tt(e,o,n){let t=X(e,"utf8");for(let[r,l]of Object.entries(n.replacements))t=t.replaceAll(r,l);for(;t.includes(`${n.deps}
17
- ${n.deps}`);)t=t.replace(`${n.deps}
18
- ${n.deps}`,n.deps);for(;;){let r=t.replace(/^- (.+)\n- \1$/m,"- $1");if(r===t)break;t=r}let s=t.split(`
19
- `),i=[];for(let r=0;r<s.length;r++)i.push(s[r]),/^## \d+\.\d+\.\d+/.test(s[r])&&!s[r+1]?.startsWith("> ")&&i.push(`> ${o} \u53D1\u5E03`);let c=i.join(`
20
- `);return c!==t?(Z(e,c,"utf8"),!0):!1}function S(e,o,n){let t=[];for(let s of R(e))tt(s,o,n)&&t.push(s);if(t.length===0)console.log("\u65E0 CHANGELOG \u9700\u8981\u66F4\u65B0");else for(let s of t)console.log(`changelog \u5DF2\u66F4\u65B0\uFF1A${s}`);return t}var ot=et(import.meta.url),st=ot.resolve("@changesets/cli/bin.js"),C=e=>{nt(`node "${st}" ${e.join(" ")}`,{stdio:"inherit"})},_=process.argv.slice(2),N=_[0],f=_.slice(1);if(N==="tasks"){let e=f.indexOf("--dir"),o=e>=0&&f[e+1]?f[e+1]:".tasks";(f.find(t=>!t.startsWith("--")&&t!==o)||"list")==="archive"?M(o):j(o)}else if(N==="changelog"){let e=f.indexOf("--lang"),o=e>=0&&f[e+1]?f[e+1]:x,n=f.filter((s,i)=>i!==e&&i!==e+1),t=n[0];t==="version"?(C(["version"]),S(".",F(),h[o]??h[x])):t==="format"?S(".",F(),h[o]??h[x]):C(t?n:[])}else console.log("\u7528\u6CD5\uFF1Atoolkit <tasks|changelog> ..."),console.log(" toolkit tasks \u4EFB\u52A1\u603B\u89C8"),console.log(" toolkit tasks archive \u5F52\u6863\u5DF2\u5B8C\u6210\u4EFB\u52A1"),console.log(" toolkit changelog \u521B\u5EFA\u53D8\u66F4\u96C6"),console.log(" toolkit changelog version \u53D1\u7248 + \u591A\u8BED\u8A00\u683C\u5F0F\u5316"),console.log(" toolkit changelog format \u7EAF\u683C\u5F0F\u5316");
16
+ `,"utf8");for(let l of g)Q(l.file);et(M(g[0].file),t),console.log(`\u5DF2\u5F52\u6863 ${g.length} \u4E2A\u4EFB\u52A1 \u2192 ${a}.md`)}return console.log(`\u5171\u5F52\u6863 ${o.length} \u4E2A\u4EFB\u52A1`),{archived:o.length,skipped:r}}var h={zh:{replacements:{"### Major Changes":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### \u91CD\u5927\u53D8\u66F4":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### Minor Changes":"### \u2728 \u65B0\u589E\u529F\u80FD","### \u65B0\u589E\u529F\u80FD":"### \u2728 \u65B0\u589E\u529F\u80FD","### Patch Changes":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### \u8865\u4E01\u4FEE\u590D":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### Dependent Changes":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","### \u4F9D\u8D56\u53D8\u66F4":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","- Updated dependencies":"- \u66F4\u65B0\u4F9D\u8D56"},deps:"- \u66F4\u65B0\u4F9D\u8D56",released:"\u53D1\u5E03"},en:{replacements:{"### Major Changes":"### \u{1F6A8} Major Changes","### Minor Changes":"### \u2728 Minor Changes","### Patch Changes":"### \u{1F41B} Patch Changes","### Dependent Changes":"### \u{1F517} Dependent Changes"},deps:"- Updated dependencies",released:"released"}},x="zh";import{readFileSync as ot,writeFileSync as rt}from"fs";import{readdirSync as st}from"fs";import{join as R}from"path";function N(t){let n=[],e=new Set(["node_modules",".git","dist"]),s=o=>{let r;try{r=st(o,{withFileTypes:!0})}catch{return}for(let i of r)if(i.isDirectory()){if(e.has(i.name))continue;s(R(o,i.name))}else i.name==="CHANGELOG.md"&&n.push(R(o,i.name))};return s(t),n}function S(){let t=new Date,n=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}`}function it(t,n,e){let s=ot(t,"utf8"),o=s.includes(`\r
17
+ `)?`\r
18
+ `:`
19
+ `,r=s.replace(/\r\n/g,`
20
+ `);for(let[c,p]of Object.entries(e.replacements))r=r.replaceAll(c,p);for(;r.includes(`${e.deps}
21
+ ${e.deps}`);)r=r.replace(`${e.deps}
22
+ ${e.deps}`,e.deps);for(;;){let c=r.replace(/^- (.+)\n- \1$/gm,"- $1");if(c===r)break;r=c}let i=r.split(`
23
+ `),a=[];for(let c=0;c<i.length;c++)a.push(i[c]),/^## \d+\.\d+\.\d+/.test(i[c])&&!i[c+1]?.startsWith("> ")&&a.push(`> ${n} ${e.released}`);let g=a.join(`
24
+ `);return g!==r?(rt(t,g.replace(/\n/g,o),"utf8"),!0):!1}function F(t,n,e){let s=[];for(let o of N(t))it(o,n,e)&&s.push(o);if(s.length===0)console.log("\u65E0 CHANGELOG \u9700\u8981\u66F4\u65B0");else for(let o of s)console.log(`changelog \u5DF2\u66F4\u65B0\uFF1A${o}`);return s}var lt=at(import.meta.url),gt=lt.resolve("@changesets/cli/bin.js"),C=t=>{let n=ct(process.execPath,[gt,...t],{stdio:"inherit"});n.status!==0&&process.exit(n.status??1)},B=process.argv.slice(2),_=B[0],m=B.slice(1);if(_==="tasks"){let t=m.indexOf("--dir"),n=t>=0&&m[t+1]?m[t+1]:".tasks";(m.find(s=>!s.startsWith("--")&&s!==n)||"list")==="archive"?O(n):L(n)}else if(_==="changelog"){let t=m.indexOf("--lang"),n=t>=0&&m[t+1]?m[t+1]:x,e=t>=0?m.filter((o,r)=>r!==t&&r!==t+1):m,s=e[0];s==="version"?(C(["version"]),F(".",S(),h[n]??h[x])):s==="format"?F(".",S(),h[n]??h[x]):C(s?e:[])}else console.log("\u7528\u6CD5\uFF1Atoolkit <tasks|changelog> ..."),console.log(" toolkit tasks \u4EFB\u52A1\u603B\u89C8"),console.log(" toolkit tasks archive \u5F52\u6863\u5DF2\u5B8C\u6210\u4EFB\u52A1"),console.log(" toolkit changelog \u521B\u5EFA\u53D8\u66F4\u96C6"),console.log(" toolkit changelog version \u53D1\u7248 + \u591A\u8BED\u8A00\u683C\u5F0F\u5316"),console.log(" toolkit changelog format \u7EAF\u683C\u5F0F\u5316");
package/dist/index.cjs CHANGED
@@ -1,19 +1,23 @@
1
- var S=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var W=(n,o)=>{for(var r in o)S(n,r,{get:o[r],enumerable:!0})},_=(n,o,r,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of P(o))!U.call(n,e)&&e!==r&&S(n,e,{get:()=>o[e],enumerable:!(t=G(o,e))||t.enumerable});return n};var z=n=>_(S({},"__esModule",{value:!0}),n);var q={};W(q,{DEFAULT_LANG:()=>Y,DONE_STATUSES:()=>b,archiveTasks:()=>E,collectChangelogs:()=>$,dateFromFileName:()=>F,formatChangelog:()=>j,formatChangelogs:()=>O,languages:()=>H,listTaskFiles:()=>y,listTasks:()=>A,localDate:()=>R,parseArchiveTasks:()=>w,parseFrontmatter:()=>k,printTasks:()=>M,stripFrontmatter:()=>x});module.exports=z(q);var b=["\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03"];function k(n){let o=n.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!o)return{};let r={};for(let t of o[1].split(/\r?\n/)){let e=t.indexOf(":");if(e===-1)continue;let a=t.slice(0,e).trim(),i=t.slice(e+1).trim();a&&(r[a]=i)}return r}function x(n){let o=n.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return o?n.slice(o[0].length):n}var d=require("fs"),u=require("path");function y(n){if(!(0,d.existsSync)(n))return[];let o=[];for(let r of(0,d.readdirSync)(n)){let t=(0,u.join)(n,r);if((0,d.statSync)(t).isDirectory())for(let e of(0,d.readdirSync)(t))e.endsWith(".md")&&o.push((0,u.join)(t,e));else r.endsWith(".md")&&o.push(t)}return o}function F(n){let r=(0,u.basename)(n,(0,u.extname)(n)).match(/^(\d{8})/);return r?r[1]:""}var L=require("fs"),T=require("path");function A(n=".tasks"){let o=(0,T.join)(n,"active");return y(o).map(r=>{let t=(0,L.readFileSync)(r,"utf8"),e=k(t),a=t.split(/\r?\n/).find(i=>i.startsWith("# ")&&!i.startsWith("#!"))?.replace(/^#\s*/,"")||(0,T.basename)(r,".md");return{file:r,name:(0,T.basename)(r,".md"),date:F(r),title:a,frontmatter:e,body:x(t).trim()}})}function M(n=".tasks"){let o=A(n);if(o.length===0){console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1");return}let r=["\u8FDB\u884C\u4E2D","\u963B\u585E","\u5F85\u529E","\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03","\u672A\u6807\u6CE8"],t={};for(let a of o){let i=r.includes(a.frontmatter.status)?a.frontmatter.status:"\u672A\u6807\u6CE8";(t[i]||=[]).push(a)}console.log(`\u4EFB\u52A1\u603B\u89C8\uFF1A
2
- `);let e=0;for(let a of r){let i=t[a]||[];if(i.length!==0){e+=i.length,console.log(`\u3010${a}\u3011${i.length} \u9879`);for(let s of i)console.log(` ${s.date} ${(s.frontmatter.owner||"\u672A\u6807\u6CE8").padEnd(8)} ${s.title}`);console.log("")}}console.log(`\u5171 ${e} \u4E2A\u4EFB\u52A1\u6587\u4EF6`)}var l=require("fs"),m=require("path");function w(n){let o=(0,l.readFileSync)(n,"utf8"),r=[],t=/## (.+?)\n\n> [^\n]*完成时间:([^\n]+)\n\n([\s\S]*?)(?=\n\n---\n\n## |$)/g,e;for(;e=t.exec(o);)r.push({block:e[0].trim(),completed:e[2].trim()});return r}function E(n=".tasks"){let o=(0,m.join)(n,"active"),r=(0,m.join)(n,"archive"),t=y(o);if(t.length===0)return console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1\uFF0C\u65E0\u9700\u5F52\u6863"),{archived:0,skipped:[]};let e=[],a=[];for(let s of t){let p=(0,l.readFileSync)(s,"utf8"),g=k(p);if(!b.includes(g.status))continue;let h=g.completed;if(!h){a.push((0,m.basename)(s,".md")),console.log(`\u8DF3\u8FC7 ${(0,m.basename)(s,".md")}\uFF1A\u7F3A\u5C11 completed \u5B8C\u6210\u65F6\u95F4`);continue}e.push({file:s,name:(0,m.basename)(s,".md"),owner:g.owner||"\u672A\u6807\u6CE8",status:g.status||"\u672A\u6807\u6CE8",scope:g.scope||"-",completed:h,body:x(p).trim()})}if(e.length===0)return console.log("\u672C\u6B21\u65E0\u53EF\u5F52\u6863\u4EFB\u52A1"),{archived:0,skipped:a};let i={};for(let s of e){let p=s.completed.replace(/-/g,"").slice(0,8);(i[p]||=[]).push(s)}for(let[s,p]of Object.entries(i)){let g=(0,m.join)(r,s.slice(0,6));(0,l.mkdirSync)(g,{recursive:!0});let h=(0,m.join)(g,`${s}.md`),C=(0,l.existsSync)(h)?w(h):[];C.push(...p.map(c=>({block:`## ${c.name}
1
+ var C=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var U=(e,n)=>{for(var t in n)C(e,t,{get:n[t],enumerable:!0})},_=(e,n,t,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of G(n))!P.call(e,r)&&r!==t&&C(e,r,{get:()=>n[r],enumerable:!(s=B(n,r))||s.enumerable});return e};var z=e=>_(C({},"__esModule",{value:!0}),e);var I={};U(I,{DEFAULT_LANG:()=>q,DONE_STATUSES:()=>b,archiveTasks:()=>E,collectChangelogs:()=>$,dateFromFileName:()=>F,formatChangelog:()=>j,formatChangelogs:()=>R,languages:()=>Y,listTaskFiles:()=>x,listTasks:()=>w,localDate:()=>N,parseArchiveTasks:()=>A,parseFrontmatter:()=>k,printTasks:()=>W,stripFrontmatter:()=>y});module.exports=z(I);var b=["\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03"];function k(e){let n=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!n)return{};let t={};for(let s of n[1].split(/\r?\n/)){let r=s.indexOf(":");if(r===-1)continue;let i=s.slice(0,r).trim(),o=s.slice(r+1).trim();(o.startsWith("'")&&o.endsWith("'")||o.startsWith('"')&&o.endsWith('"'))&&(o=o.slice(1,-1)),i&&(t[i]=o)}return t}function y(e){let n=e.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return n?e.slice(n[0].length):e}var h=require("fs"),u=require("path");function x(e){if(!(0,h.existsSync)(e))return[];let n=[];for(let t of(0,h.readdirSync)(e)){let s=(0,u.join)(e,t);if((0,h.statSync)(s).isDirectory())for(let r of(0,h.readdirSync)(s))r.endsWith(".md")&&n.push((0,u.join)(s,r));else t.endsWith(".md")&&n.push(s)}return n}function F(e){let t=(0,u.basename)(e,(0,u.extname)(e)).match(/^(\d{8})/);return t?t[1]:""}var L=require("fs"),T=require("path");function w(e=".tasks"){let n=(0,T.join)(e,"active");return x(n).map(t=>{let s=(0,L.readFileSync)(t,"utf8"),r=k(s),i=s.split(/\r?\n/).find(o=>o.startsWith("# ")&&!o.startsWith("#!"))?.replace(/^#\s*/,"")||(0,T.basename)(t,".md");return{file:t,name:(0,T.basename)(t,".md"),date:F(t),title:i,frontmatter:r,body:y(s).trim()}})}function W(e=".tasks"){let n=w(e);if(n.length===0){console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1");return}let t=["\u8FDB\u884C\u4E2D","\u963B\u585E","\u5F85\u529E","\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03","\u672A\u6807\u6CE8"],s={};for(let i of n){let o=t.includes(i.frontmatter.status)?i.frontmatter.status:"\u672A\u6807\u6CE8";(s[o]||=[]).push(i)}console.log(`\u4EFB\u52A1\u603B\u89C8\uFF1A
2
+ `);let r=0;for(let i of t){let o=s[i]||[];if(o.length!==0){r+=o.length,console.log(`\u3010${i}\u3011${o.length} \u9879`);for(let a of o)console.log(` ${a.date} ${(a.frontmatter.owner||"\u672A\u6807\u6CE8").padEnd(8)} ${a.title}`);console.log("")}}console.log(`\u5171 ${r} \u4E2A\u4EFB\u52A1\u6587\u4EF6`)}var p=require("fs"),l=require("path");function H(e,n){let t=(0,l.resolve)(e),s=(0,l.resolve)(n);for(;t!==s&&t.startsWith(s+l.sep);){try{if((0,p.readdirSync)(t).length>0)break;(0,p.rmdirSync)(t)}catch{break}t=(0,l.dirname)(t)}}function A(e){let n=(0,p.readFileSync)(e,"utf8"),t=[],s=/## (.+?)\n\n> [^\n]*完成时间:([^\n]+)\n\n([\s\S]*?)(?=\n\n---\n\n## |$)/g,r;for(;r=s.exec(n);)t.push({block:r[0].trim(),completed:r[2].trim()});return t}function E(e=".tasks"){let n=(0,l.join)(e,"active"),t=(0,l.join)(e,"archive"),s=x(n);if(s.length===0)return console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1\uFF0C\u65E0\u9700\u5F52\u6863"),{archived:0,skipped:[]};let r=[],i=[];for(let a of s){let g=(0,p.readFileSync)(a,"utf8"),c=k(g);if(!b.includes(c.status))continue;let f=c.completed;if(!f){i.push((0,l.basename)(a,".md")),console.log(`\u8DF3\u8FC7 ${(0,l.basename)(a,".md")}\uFF1A\u7F3A\u5C11 completed \u5B8C\u6210\u65F6\u95F4`);continue}r.push({file:a,name:(0,l.basename)(a,".md"),owner:c.owner||"\u672A\u6807\u6CE8",status:c.status||"\u672A\u6807\u6CE8",scope:c.scope||"-",completed:f,body:y(g).trim()})}if(r.length===0)return console.log("\u672C\u6B21\u65E0\u53EF\u5F52\u6863\u4EFB\u52A1"),{archived:0,skipped:i};let o={};for(let a of r){let g=a.completed.replace(/-/g,"").slice(0,8);(o[g]||=[]).push(a)}for(let[a,g]of Object.entries(o)){let c=(0,l.join)(t,a.slice(0,6));(0,p.mkdirSync)(c,{recursive:!0});let f=(0,l.join)(c,`${a}.md`),S=(0,p.existsSync)(f)?A(f):[];S.push(...g.map(m=>({block:`## ${m.name}
3
3
 
4
- > \u8D1F\u8D23\u4EBA\uFF1A${c.owner}\u3000\u72B6\u6001\uFF1A${c.status}\u3000\u8303\u56F4\uFF1A${c.scope}\u3000\u5B8C\u6210\u65F6\u95F4\uFF1A${c.completed}
4
+ > \u8D1F\u8D23\u4EBA\uFF1A${m.owner}\u3000\u72B6\u6001\uFF1A${m.status}\u3000\u8303\u56F4\uFF1A${m.scope}\u3000\u5B8C\u6210\u65F6\u95F4\uFF1A${m.completed}
5
5
 
6
- ${c.body}`,completed:c.completed}))),C.sort((c,B)=>c.completed.localeCompare(B.completed)),(0,l.writeFileSync)(h,`# ${s} \u5F52\u6863
6
+ ${m.body}`,completed:m.completed}))),S.sort((m,O)=>m.completed.localeCompare(O.completed)),(0,p.writeFileSync)(f,`# ${a} \u5F52\u6863
7
7
 
8
8
  > \u672C\u6587\u4EF6\u7531 \`toolkit tasks archive\` \u81EA\u52A8\u751F\u6210\u3002
9
9
 
10
- ${C.map(c=>c.block).join(`
10
+ ${S.map(m=>m.block).join(`
11
11
 
12
12
  ---
13
13
 
14
14
  `)}
15
- `,"utf8");for(let c of p)(0,l.unlinkSync)(c.file);console.log(`\u5DF2\u5F52\u6863 ${p.length} \u4E2A\u4EFB\u52A1 \u2192 ${s}.md`)}return console.log(`\u5171\u5F52\u6863 ${e.length} \u4E2A\u4EFB\u52A1`),{archived:e.length,skipped:a}}var H={zh:{replacements:{"### Major Changes":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### \u91CD\u5927\u53D8\u66F4":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### Minor Changes":"### \u2728 \u65B0\u589E\u529F\u80FD","### \u65B0\u589E\u529F\u80FD":"### \u2728 \u65B0\u589E\u529F\u80FD","### Patch Changes":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### \u8865\u4E01\u4FEE\u590D":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### Dependent Changes":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","### \u4F9D\u8D56\u53D8\u66F4":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","- Updated dependencies":"- \u66F4\u65B0\u4F9D\u8D56"},deps:"- \u66F4\u65B0\u4F9D\u8D56"},en:{replacements:{"### Major Changes":"### \u{1F6A8} Major Changes","### Minor Changes":"### \u2728 Minor Changes","### Patch Changes":"### \u{1F41B} Patch Changes","### Dependent Changes":"### \u{1F517} Dependent Changes"},deps:"- Updated dependencies"}},Y="zh";var N=require("fs"),D=require("path");function $(n){let o=[],r=new Set(["node_modules",".git","dist"]),t=e=>{let a;try{a=(0,N.readdirSync)(e,{withFileTypes:!0})}catch{return}for(let i of a)if(i.isDirectory()){if(r.has(i.name))continue;t((0,D.join)(e,i.name))}else i.name==="CHANGELOG.md"&&o.push((0,D.join)(e,i.name))};return t(n),o}var v=require("fs");function R(){let n=new Date,o=r=>String(r).padStart(2,"0");return`${n.getFullYear()}-${o(n.getMonth()+1)}-${o(n.getDate())}`}function j(n,o,r){let t=(0,v.readFileSync)(n,"utf8");for(let[s,p]of Object.entries(r.replacements))t=t.replaceAll(s,p);for(;t.includes(`${r.deps}
16
- ${r.deps}`);)t=t.replace(`${r.deps}
17
- ${r.deps}`,r.deps);for(;;){let s=t.replace(/^- (.+)\n- \1$/m,"- $1");if(s===t)break;t=s}let e=t.split(`
18
- `),a=[];for(let s=0;s<e.length;s++)a.push(e[s]),/^## \d+\.\d+\.\d+/.test(e[s])&&!e[s+1]?.startsWith("> ")&&a.push(`> ${o} \u53D1\u5E03`);let i=a.join(`
19
- `);return i!==t?((0,v.writeFileSync)(n,i,"utf8"),!0):!1}function O(n,o,r){let t=[];for(let e of $(n))j(e,o,r)&&t.push(e);if(t.length===0)console.log("\u65E0 CHANGELOG \u9700\u8981\u66F4\u65B0");else for(let e of t)console.log(`changelog \u5DF2\u66F4\u65B0\uFF1A${e}`);return t}0&&(module.exports={DEFAULT_LANG,DONE_STATUSES,archiveTasks,collectChangelogs,dateFromFileName,formatChangelog,formatChangelogs,languages,listTaskFiles,listTasks,localDate,parseArchiveTasks,parseFrontmatter,printTasks,stripFrontmatter});
15
+ `,"utf8");for(let m of g)(0,p.unlinkSync)(m.file);H((0,l.dirname)(g[0].file),e),console.log(`\u5DF2\u5F52\u6863 ${g.length} \u4E2A\u4EFB\u52A1 \u2192 ${a}.md`)}return console.log(`\u5171\u5F52\u6863 ${r.length} \u4E2A\u4EFB\u52A1`),{archived:r.length,skipped:i}}var Y={zh:{replacements:{"### Major Changes":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### \u91CD\u5927\u53D8\u66F4":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### Minor Changes":"### \u2728 \u65B0\u589E\u529F\u80FD","### \u65B0\u589E\u529F\u80FD":"### \u2728 \u65B0\u589E\u529F\u80FD","### Patch Changes":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### \u8865\u4E01\u4FEE\u590D":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### Dependent Changes":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","### \u4F9D\u8D56\u53D8\u66F4":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","- Updated dependencies":"- \u66F4\u65B0\u4F9D\u8D56"},deps:"- \u66F4\u65B0\u4F9D\u8D56",released:"\u53D1\u5E03"},en:{replacements:{"### Major Changes":"### \u{1F6A8} Major Changes","### Minor Changes":"### \u2728 Minor Changes","### Patch Changes":"### \u{1F41B} Patch Changes","### Dependent Changes":"### \u{1F517} Dependent Changes"},deps:"- Updated dependencies",released:"released"}},q="zh";var M=require("fs"),D=require("path");function $(e){let n=[],t=new Set(["node_modules",".git","dist"]),s=r=>{let i;try{i=(0,M.readdirSync)(r,{withFileTypes:!0})}catch{return}for(let o of i)if(o.isDirectory()){if(t.has(o.name))continue;s((0,D.join)(r,o.name))}else o.name==="CHANGELOG.md"&&n.push((0,D.join)(r,o.name))};return s(e),n}var v=require("fs");function N(){let e=new Date,n=t=>String(t).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}`}function j(e,n,t){let s=(0,v.readFileSync)(e,"utf8"),r=s.includes(`\r
16
+ `)?`\r
17
+ `:`
18
+ `,i=s.replace(/\r\n/g,`
19
+ `);for(let[c,f]of Object.entries(t.replacements))i=i.replaceAll(c,f);for(;i.includes(`${t.deps}
20
+ ${t.deps}`);)i=i.replace(`${t.deps}
21
+ ${t.deps}`,t.deps);for(;;){let c=i.replace(/^- (.+)\n- \1$/gm,"- $1");if(c===i)break;i=c}let o=i.split(`
22
+ `),a=[];for(let c=0;c<o.length;c++)a.push(o[c]),/^## \d+\.\d+\.\d+/.test(o[c])&&!o[c+1]?.startsWith("> ")&&a.push(`> ${n} ${t.released}`);let g=a.join(`
23
+ `);return g!==i?((0,v.writeFileSync)(e,g.replace(/\n/g,r),"utf8"),!0):!1}function R(e,n,t){let s=[];for(let r of $(e))j(r,n,t)&&s.push(r);if(s.length===0)console.log("\u65E0 CHANGELOG \u9700\u8981\u66F4\u65B0");else for(let r of s)console.log(`changelog \u5DF2\u66F4\u65B0\uFF1A${r}`);return s}0&&(module.exports={DEFAULT_LANG,DONE_STATUSES,archiveTasks,collectChangelogs,dateFromFileName,formatChangelog,formatChangelogs,languages,listTaskFiles,listTasks,localDate,parseArchiveTasks,parseFrontmatter,printTasks,stripFrontmatter});
package/dist/index.d.cts CHANGED
@@ -42,6 +42,7 @@ type LanguageMap = Record<string, string>;
42
42
  interface ChangelogLanguage {
43
43
  replacements: LanguageMap;
44
44
  deps: string;
45
+ released: string;
45
46
  }
46
47
  declare const languages: Record<string, ChangelogLanguage>;
47
48
  declare const DEFAULT_LANG = "zh";
package/dist/index.d.ts CHANGED
@@ -42,6 +42,7 @@ type LanguageMap = Record<string, string>;
42
42
  interface ChangelogLanguage {
43
43
  replacements: LanguageMap;
44
44
  deps: string;
45
+ released: string;
45
46
  }
46
47
  declare const languages: Record<string, ChangelogLanguage>;
47
48
  declare const DEFAULT_LANG = "zh";
package/dist/index.js CHANGED
@@ -1,19 +1,23 @@
1
- var $=["\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03"];function d(r){let o=r.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!o)return{};let e={};for(let t of o[1].split(/\r?\n/)){let n=t.indexOf(":");if(n===-1)continue;let a=t.slice(0,n).trim(),i=t.slice(n+1).trim();a&&(e[a]=i)}return e}function u(r){let o=r.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return o?r.slice(o[0].length):r}import{existsSync as M,readdirSync as v,statSync as E}from"fs";import{join as C,basename as N,extname as R}from"path";function h(r){if(!M(r))return[];let o=[];for(let e of v(r)){let t=C(r,e);if(E(t).isDirectory())for(let n of v(t))n.endsWith(".md")&&o.push(C(t,n));else e.endsWith(".md")&&o.push(t)}return o}function y(r){let e=N(r,R(r)).match(/^(\d{8})/);return e?e[1]:""}import{readFileSync as O}from"fs";import{join as B,basename as S}from"path";function b(r=".tasks"){let o=B(r,"active");return h(o).map(e=>{let t=O(e,"utf8"),n=d(t),a=t.split(/\r?\n/).find(i=>i.startsWith("# ")&&!i.startsWith("#!"))?.replace(/^#\s*/,"")||S(e,".md");return{file:e,name:S(e,".md"),date:y(e),title:a,frontmatter:n,body:u(t).trim()}})}function G(r=".tasks"){let o=b(r);if(o.length===0){console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1");return}let e=["\u8FDB\u884C\u4E2D","\u963B\u585E","\u5F85\u529E","\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03","\u672A\u6807\u6CE8"],t={};for(let a of o){let i=e.includes(a.frontmatter.status)?a.frontmatter.status:"\u672A\u6807\u6CE8";(t[i]||=[]).push(a)}console.log(`\u4EFB\u52A1\u603B\u89C8\uFF1A
2
- `);let n=0;for(let a of e){let i=t[a]||[];if(i.length!==0){n+=i.length,console.log(`\u3010${a}\u3011${i.length} \u9879`);for(let s of i)console.log(` ${s.date} ${(s.frontmatter.owner||"\u672A\u6807\u6CE8").padEnd(8)} ${s.title}`);console.log("")}}console.log(`\u5171 ${n} \u4E2A\u4EFB\u52A1\u6587\u4EF6`)}import{readFileSync as A,writeFileSync as P,mkdirSync as U,unlinkSync as W,existsSync as _}from"fs";import{join as k,basename as T}from"path";function w(r){let o=A(r,"utf8"),e=[],t=/## (.+?)\n\n> [^\n]*完成时间:([^\n]+)\n\n([\s\S]*?)(?=\n\n---\n\n## |$)/g,n;for(;n=t.exec(o);)e.push({block:n[0].trim(),completed:n[2].trim()});return e}function z(r=".tasks"){let o=k(r,"active"),e=k(r,"archive"),t=h(o);if(t.length===0)return console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1\uFF0C\u65E0\u9700\u5F52\u6863"),{archived:0,skipped:[]};let n=[],a=[];for(let s of t){let l=A(s,"utf8"),p=d(l);if(!$.includes(p.status))continue;let f=p.completed;if(!f){a.push(T(s,".md")),console.log(`\u8DF3\u8FC7 ${T(s,".md")}\uFF1A\u7F3A\u5C11 completed \u5B8C\u6210\u65F6\u95F4`);continue}n.push({file:s,name:T(s,".md"),owner:p.owner||"\u672A\u6807\u6CE8",status:p.status||"\u672A\u6807\u6CE8",scope:p.scope||"-",completed:f,body:u(l).trim()})}if(n.length===0)return console.log("\u672C\u6B21\u65E0\u53EF\u5F52\u6863\u4EFB\u52A1"),{archived:0,skipped:a};let i={};for(let s of n){let l=s.completed.replace(/-/g,"").slice(0,8);(i[l]||=[]).push(s)}for(let[s,l]of Object.entries(i)){let p=k(e,s.slice(0,6));U(p,{recursive:!0});let f=k(p,`${s}.md`),x=_(f)?w(f):[];x.push(...l.map(c=>({block:`## ${c.name}
1
+ var $=["\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03"];function d(e){let s=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!s)return{};let t={};for(let n of s[1].split(/\r?\n/)){let r=n.indexOf(":");if(r===-1)continue;let i=n.slice(0,r).trim(),o=n.slice(r+1).trim();(o.startsWith("'")&&o.endsWith("'")||o.startsWith('"')&&o.endsWith('"'))&&(o=o.slice(1,-1)),i&&(t[i]=o)}return t}function h(e){let s=e.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return s?e.slice(s[0].length):e}import{existsSync as M,readdirSync as v,statSync as N}from"fs";import{join as S,basename as R,extname as O}from"path";function u(e){if(!M(e))return[];let s=[];for(let t of v(e)){let n=S(e,t);if(N(n).isDirectory())for(let r of v(n))r.endsWith(".md")&&s.push(S(n,r));else t.endsWith(".md")&&s.push(n)}return s}function x(e){let t=R(e,O(e)).match(/^(\d{8})/);return t?t[1]:""}import{readFileSync as B}from"fs";import{join as G,basename as C}from"path";function b(e=".tasks"){let s=G(e,"active");return u(s).map(t=>{let n=B(t,"utf8"),r=d(n),i=n.split(/\r?\n/).find(o=>o.startsWith("# ")&&!o.startsWith("#!"))?.replace(/^#\s*/,"")||C(t,".md");return{file:t,name:C(t,".md"),date:x(t),title:i,frontmatter:r,body:h(n).trim()}})}function P(e=".tasks"){let s=b(e);if(s.length===0){console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1");return}let t=["\u8FDB\u884C\u4E2D","\u963B\u585E","\u5F85\u529E","\u5DF2\u5B8C\u6210","\u5DF2\u653E\u5F03","\u672A\u6807\u6CE8"],n={};for(let i of s){let o=t.includes(i.frontmatter.status)?i.frontmatter.status:"\u672A\u6807\u6CE8";(n[o]||=[]).push(i)}console.log(`\u4EFB\u52A1\u603B\u89C8\uFF1A
2
+ `);let r=0;for(let i of t){let o=n[i]||[];if(o.length!==0){r+=o.length,console.log(`\u3010${i}\u3011${o.length} \u9879`);for(let a of o)console.log(` ${a.date} ${(a.frontmatter.owner||"\u672A\u6807\u6CE8").padEnd(8)} ${a.title}`);console.log("")}}console.log(`\u5171 ${r} \u4E2A\u4EFB\u52A1\u6587\u4EF6`)}import{readFileSync as A,writeFileSync as U,mkdirSync as _,unlinkSync as z,existsSync as H,readdirSync as Y,rmdirSync as q}from"fs";import{join as k,basename as T,dirname as D,resolve as w,sep as I}from"path";function J(e,s){let t=w(e),n=w(s);for(;t!==n&&t.startsWith(n+I);){try{if(Y(t).length>0)break;q(t)}catch{break}t=D(t)}}function j(e){let s=A(e,"utf8"),t=[],n=/## (.+?)\n\n> [^\n]*完成时间:([^\n]+)\n\n([\s\S]*?)(?=\n\n---\n\n## |$)/g,r;for(;r=n.exec(s);)t.push({block:r[0].trim(),completed:r[2].trim()});return t}function K(e=".tasks"){let s=k(e,"active"),t=k(e,"archive"),n=u(s);if(n.length===0)return console.log("\u5F53\u524D\u65E0\u6D3B\u8DC3\u4EFB\u52A1\uFF0C\u65E0\u9700\u5F52\u6863"),{archived:0,skipped:[]};let r=[],i=[];for(let a of n){let p=A(a,"utf8"),c=d(p);if(!$.includes(c.status))continue;let m=c.completed;if(!m){i.push(T(a,".md")),console.log(`\u8DF3\u8FC7 ${T(a,".md")}\uFF1A\u7F3A\u5C11 completed \u5B8C\u6210\u65F6\u95F4`);continue}r.push({file:a,name:T(a,".md"),owner:c.owner||"\u672A\u6807\u6CE8",status:c.status||"\u672A\u6807\u6CE8",scope:c.scope||"-",completed:m,body:h(p).trim()})}if(r.length===0)return console.log("\u672C\u6B21\u65E0\u53EF\u5F52\u6863\u4EFB\u52A1"),{archived:0,skipped:i};let o={};for(let a of r){let p=a.completed.replace(/-/g,"").slice(0,8);(o[p]||=[]).push(a)}for(let[a,p]of Object.entries(o)){let c=k(t,a.slice(0,6));_(c,{recursive:!0});let m=k(c,`${a}.md`),y=H(m)?j(m):[];y.push(...p.map(l=>({block:`## ${l.name}
3
3
 
4
- > \u8D1F\u8D23\u4EBA\uFF1A${c.owner}\u3000\u72B6\u6001\uFF1A${c.status}\u3000\u8303\u56F4\uFF1A${c.scope}\u3000\u5B8C\u6210\u65F6\u95F4\uFF1A${c.completed}
4
+ > \u8D1F\u8D23\u4EBA\uFF1A${l.owner}\u3000\u72B6\u6001\uFF1A${l.status}\u3000\u8303\u56F4\uFF1A${l.scope}\u3000\u5B8C\u6210\u65F6\u95F4\uFF1A${l.completed}
5
5
 
6
- ${c.body}`,completed:c.completed}))),x.sort((c,L)=>c.completed.localeCompare(L.completed)),P(f,`# ${s} \u5F52\u6863
6
+ ${l.body}`,completed:l.completed}))),y.sort((l,E)=>l.completed.localeCompare(E.completed)),U(m,`# ${a} \u5F52\u6863
7
7
 
8
8
  > \u672C\u6587\u4EF6\u7531 \`toolkit tasks archive\` \u81EA\u52A8\u751F\u6210\u3002
9
9
 
10
- ${x.map(c=>c.block).join(`
10
+ ${y.map(l=>l.block).join(`
11
11
 
12
12
  ---
13
13
 
14
14
  `)}
15
- `,"utf8");for(let c of l)W(c.file);console.log(`\u5DF2\u5F52\u6863 ${l.length} \u4E2A\u4EFB\u52A1 \u2192 ${s}.md`)}return console.log(`\u5171\u5F52\u6863 ${n.length} \u4E2A\u4EFB\u52A1`),{archived:n.length,skipped:a}}var ht={zh:{replacements:{"### Major Changes":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### \u91CD\u5927\u53D8\u66F4":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### Minor Changes":"### \u2728 \u65B0\u589E\u529F\u80FD","### \u65B0\u589E\u529F\u80FD":"### \u2728 \u65B0\u589E\u529F\u80FD","### Patch Changes":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### \u8865\u4E01\u4FEE\u590D":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### Dependent Changes":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","### \u4F9D\u8D56\u53D8\u66F4":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","- Updated dependencies":"- \u66F4\u65B0\u4F9D\u8D56"},deps:"- \u66F4\u65B0\u4F9D\u8D56"},en:{replacements:{"### Major Changes":"### \u{1F6A8} Major Changes","### Minor Changes":"### \u2728 Minor Changes","### Patch Changes":"### \u{1F41B} Patch Changes","### Dependent Changes":"### \u{1F517} Dependent Changes"},deps:"- Updated dependencies"}},kt="zh";import{readdirSync as H}from"fs";import{join as D}from"path";function F(r){let o=[],e=new Set(["node_modules",".git","dist"]),t=n=>{let a;try{a=H(n,{withFileTypes:!0})}catch{return}for(let i of a)if(i.isDirectory()){if(e.has(i.name))continue;t(D(n,i.name))}else i.name==="CHANGELOG.md"&&o.push(D(n,i.name))};return t(r),o}import{readFileSync as Y,writeFileSync as q}from"fs";function I(){let r=new Date,o=e=>String(e).padStart(2,"0");return`${r.getFullYear()}-${o(r.getMonth()+1)}-${o(r.getDate())}`}function j(r,o,e){let t=Y(r,"utf8");for(let[s,l]of Object.entries(e.replacements))t=t.replaceAll(s,l);for(;t.includes(`${e.deps}
16
- ${e.deps}`);)t=t.replace(`${e.deps}
17
- ${e.deps}`,e.deps);for(;;){let s=t.replace(/^- (.+)\n- \1$/m,"- $1");if(s===t)break;t=s}let n=t.split(`
18
- `),a=[];for(let s=0;s<n.length;s++)a.push(n[s]),/^## \d+\.\d+\.\d+/.test(n[s])&&!n[s+1]?.startsWith("> ")&&a.push(`> ${o} \u53D1\u5E03`);let i=a.join(`
19
- `);return i!==t?(q(r,i,"utf8"),!0):!1}function J(r,o,e){let t=[];for(let n of F(r))j(n,o,e)&&t.push(n);if(t.length===0)console.log("\u65E0 CHANGELOG \u9700\u8981\u66F4\u65B0");else for(let n of t)console.log(`changelog \u5DF2\u66F4\u65B0\uFF1A${n}`);return t}export{kt as DEFAULT_LANG,$ as DONE_STATUSES,z as archiveTasks,F as collectChangelogs,y as dateFromFileName,j as formatChangelog,J as formatChangelogs,ht as languages,h as listTaskFiles,b as listTasks,I as localDate,w as parseArchiveTasks,d as parseFrontmatter,G as printTasks,u as stripFrontmatter};
15
+ `,"utf8");for(let l of p)z(l.file);J(D(p[0].file),e),console.log(`\u5DF2\u5F52\u6863 ${p.length} \u4E2A\u4EFB\u52A1 \u2192 ${a}.md`)}return console.log(`\u5171\u5F52\u6863 ${r.length} \u4E2A\u4EFB\u52A1`),{archived:r.length,skipped:i}}var $t={zh:{replacements:{"### Major Changes":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### \u91CD\u5927\u53D8\u66F4":"### \u{1F6A8} \u91CD\u5927\u53D8\u66F4","### Minor Changes":"### \u2728 \u65B0\u589E\u529F\u80FD","### \u65B0\u589E\u529F\u80FD":"### \u2728 \u65B0\u589E\u529F\u80FD","### Patch Changes":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### \u8865\u4E01\u4FEE\u590D":"### \u{1F41B} \u8865\u4E01\u4FEE\u590D","### Dependent Changes":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","### \u4F9D\u8D56\u53D8\u66F4":"### \u{1F517} \u4F9D\u8D56\u53D8\u66F4","- Updated dependencies":"- \u66F4\u65B0\u4F9D\u8D56"},deps:"- \u66F4\u65B0\u4F9D\u8D56",released:"\u53D1\u5E03"},en:{replacements:{"### Major Changes":"### \u{1F6A8} Major Changes","### Minor Changes":"### \u2728 Minor Changes","### Patch Changes":"### \u{1F41B} Patch Changes","### Dependent Changes":"### \u{1F517} Dependent Changes"},deps:"- Updated dependencies",released:"released"}},vt="zh";import{readdirSync as Q}from"fs";import{join as L}from"path";function F(e){let s=[],t=new Set(["node_modules",".git","dist"]),n=r=>{let i;try{i=Q(r,{withFileTypes:!0})}catch{return}for(let o of i)if(o.isDirectory()){if(t.has(o.name))continue;n(L(r,o.name))}else o.name==="CHANGELOG.md"&&s.push(L(r,o.name))};return n(e),s}import{readFileSync as V,writeFileSync as X}from"fs";function Z(){let e=new Date,s=t=>String(t).padStart(2,"0");return`${e.getFullYear()}-${s(e.getMonth()+1)}-${s(e.getDate())}`}function W(e,s,t){let n=V(e,"utf8"),r=n.includes(`\r
16
+ `)?`\r
17
+ `:`
18
+ `,i=n.replace(/\r\n/g,`
19
+ `);for(let[c,m]of Object.entries(t.replacements))i=i.replaceAll(c,m);for(;i.includes(`${t.deps}
20
+ ${t.deps}`);)i=i.replace(`${t.deps}
21
+ ${t.deps}`,t.deps);for(;;){let c=i.replace(/^- (.+)\n- \1$/gm,"- $1");if(c===i)break;i=c}let o=i.split(`
22
+ `),a=[];for(let c=0;c<o.length;c++)a.push(o[c]),/^## \d+\.\d+\.\d+/.test(o[c])&&!o[c+1]?.startsWith("> ")&&a.push(`> ${s} ${t.released}`);let p=a.join(`
23
+ `);return p!==i?(X(e,p.replace(/\n/g,r),"utf8"),!0):!1}function tt(e,s,t){let n=[];for(let r of F(e))W(r,s,t)&&n.push(r);if(n.length===0)console.log("\u65E0 CHANGELOG \u9700\u8981\u66F4\u65B0");else for(let r of n)console.log(`changelog \u5DF2\u66F4\u65B0\uFF1A${r}`);return n}export{vt as DEFAULT_LANG,$ as DONE_STATUSES,K as archiveTasks,F as collectChangelogs,x as dateFromFileName,W as formatChangelog,tt as formatChangelogs,$t as languages,u as listTaskFiles,b as listTasks,Z as localDate,j as parseArchiveTasks,d as parseFrontmatter,P as printTasks,h as stripFrontmatter};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fxri/toolkit",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "开发工程化工具集:任务管理 + 多语言 CHANGELOG 发布。",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -8,12 +8,21 @@
8
8
  "email": "tqy@fxri.net",
9
9
  "url": "https://fxri.net:444/"
10
10
  },
11
- "repository": {
12
- "type": "git",
13
- "url": "https://git.fxy.ink:444/fxri/develop/0001.base/toolkit.git"
14
- },
15
11
  "type": "module",
16
12
  "main": "./dist/index.js",
13
+ "exports": {
14
+ ".": {
15
+ "import": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.js"
18
+ },
19
+ "require": {
20
+ "types": "./dist/index.d.cts",
21
+ "default": "./dist/index.cjs"
22
+ }
23
+ },
24
+ "./package.json": "./package.json"
25
+ },
17
26
  "bin": {
18
27
  "toolkit": "dist/cli.js"
19
28
  },
@@ -21,17 +30,12 @@
21
30
  "dist",
22
31
  "README.md",
23
32
  "SPEC.md",
33
+ "CHANGELOG.md",
24
34
  "LICENSE",
25
35
  "TRADEMARK.md",
26
36
  "NOTICE",
27
37
  "package.json"
28
38
  ],
29
- "scripts": {
30
- "dev": "pnpm build:debug && node ./dist/cli.js",
31
- "build": "cross-env NODE_ENV=production tsup",
32
- "build:debug": "cross-env NODE_ENV=development tsup --config tsup.dev.config.ts",
33
- "release": "pnpm build && pnpm publish"
34
- },
35
39
  "keywords": [
36
40
  "toolkit",
37
41
  "task",
@@ -48,12 +52,17 @@
48
52
  "tsup": "^8.5.0",
49
53
  "typescript": "^5.9.3"
50
54
  },
51
- "packageManager": "pnpm@10.34.4",
52
55
  "engines": {
53
56
  "node": ">=20"
54
57
  },
55
58
  "publishConfig": {
56
59
  "registry": "https://registry.npmjs.org/",
57
60
  "access": "public"
61
+ },
62
+ "scripts": {
63
+ "dev": "pnpm build:debug && node ./dist/cli.js",
64
+ "build": "cross-env NODE_ENV=production tsup",
65
+ "build:debug": "cross-env NODE_ENV=development tsup --config tsup.dev.config.ts",
66
+ "release": "pnpm build && pnpm publish"
58
67
  }
59
- }
68
+ }