uudev 1.1.9 → 1.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.
package/dtstype/ppt.d.ts CHANGED
@@ -138,12 +138,14 @@ interface Selection{
138
138
  interface DocumentWindows{
139
139
  readonly Application: Application;
140
140
  readonly Parent: object | any;
141
+ readonly Count: number;
141
142
  Item(Index: number): DocumentWindow;
142
143
  Arrange(arrangeStyle?: PpArrangeStyle): void;
143
144
  }
144
145
  interface SlideShowWindows{
145
146
  readonly Application: Application;
146
147
  readonly Parent: object | any;
148
+ readonly Count: number;
147
149
  Item(Index: number): SlideShowWindow;
148
150
  }
149
151
  interface DocumentWindow{
@@ -261,6 +263,7 @@ interface SlideShowSettings{
261
263
  interface NamedSlideShows{
262
264
  readonly Application: Application;
263
265
  readonly Parent: object | any;
266
+ readonly Count: number;
264
267
  Item(Index: any): NamedSlideShow;
265
268
  Add(Name: string, safeArrayOfSlideIDs: any): NamedSlideShow;
266
269
  }
@@ -299,6 +302,7 @@ interface PrintRanges{
299
302
  ClearAll(): void;
300
303
  Item(Index: number): PrintRange;
301
304
  readonly Parent: object | any;
305
+ readonly Count: number;
302
306
  }
303
307
  interface PrintRange{
304
308
  readonly Application: Application;
@@ -310,6 +314,7 @@ interface PrintRange{
310
314
  interface AddIns{
311
315
  readonly Application: Application;
312
316
  readonly Parent: object | any;
317
+ readonly Count: number;
313
318
  Item(Index: any): AddIn;
314
319
  Add(FileName: string): AddIn;
315
320
  Remove(Index: any): void;
@@ -329,6 +334,7 @@ interface AddIn{
329
334
  interface Presentations{
330
335
  readonly Application: Application;
331
336
  readonly Parent: object | any;
337
+ readonly Count: number;
332
338
  Item(Index: any): Presentation;
333
339
  Add(WithWindow?: MsoTriState): Presentation;
334
340
  OpenOld(FileName: string, ReadOnly?: MsoTriState, Untitled?: MsoTriState, WithWindow?: MsoTriState): Presentation;
@@ -342,6 +348,7 @@ interface PresEvents{
342
348
  interface Hyperlinks{
343
349
  readonly Application: Application;
344
350
  readonly Parent: object | any;
351
+ readonly Count: number;
345
352
  Item(Index: number): Hyperlink;
346
353
  }
347
354
  interface Hyperlink{
@@ -372,12 +379,14 @@ interface PageSetup{
372
379
  interface Fonts{
373
380
  readonly Application: Application;
374
381
  readonly Parent: object | any;
382
+ readonly Count: number;
375
383
  Item(Index: any): Font;
376
384
  Replace(Original: string, Replacement: string): void;
377
385
  }
378
386
  interface ExtraColors{
379
387
  readonly Application: Application;
380
388
  readonly Parent: object | any;
389
+ readonly Count: number;
381
390
  Item(Index: number): number;
382
391
  Add(Type: number): void;
383
392
  Clear(): void;
@@ -385,6 +394,7 @@ interface ExtraColors{
385
394
  interface Slides{
386
395
  readonly Application: Application;
387
396
  readonly Parent: object | any;
397
+ readonly Count: number;
388
398
  Item(Index: any): Slide;
389
399
  FindBySlideID(SlideID: number): Slide;
390
400
  Add(Index: number, Layout: PpSlideLayout): Slide;
@@ -512,12 +522,14 @@ interface SldEvents{
512
522
  interface ColorSchemes{
513
523
  readonly Application: Application;
514
524
  readonly Parent: object | any;
525
+ readonly Count: number;
515
526
  Item(Index: number): ColorScheme;
516
527
  Add(Scheme?: ColorScheme): ColorScheme;
517
528
  }
518
529
  interface ColorScheme{
519
530
  readonly Application: Application;
520
531
  readonly Parent: object | any;
532
+ readonly Count: number;
521
533
  Colors(SchemeColor: PpColorSchemeIndex): RGBColor;
522
534
  Delete(): void;
523
535
  }
@@ -608,6 +620,7 @@ interface Shapes{
608
620
  interface Placeholders{
609
621
  readonly Application: Application;
610
622
  readonly Parent: object | any;
623
+ readonly Count: number;
611
624
  Item(Index: number): Shape;
612
625
  FindByName(Index: any): Shape;
613
626
  }
@@ -1100,6 +1113,7 @@ interface LinkFormat{
1100
1113
  interface ObjectVerbs{
1101
1114
  readonly Application: Application;
1102
1115
  readonly Parent: object | any;
1116
+ readonly Count: number;
1103
1117
  Item(Index: number): string;
1104
1118
  }
1105
1119
  interface AnimationSettings{
@@ -1123,6 +1137,7 @@ interface AnimationSettings{
1123
1137
  interface ActionSettings{
1124
1138
  readonly Application: Application;
1125
1139
  readonly Parent: object | any;
1140
+ readonly Count: number;
1126
1141
  Item(Index: PpMouseActivation): ActionSetting;
1127
1142
  }
1128
1143
  interface ActionSetting{
@@ -1151,6 +1166,7 @@ interface PlaySettings{
1151
1166
  interface TextRange{
1152
1167
  readonly Application: Application;
1153
1168
  readonly Parent: object | any;
1169
+ readonly Count: number;
1154
1170
  readonly ActionSettings: ActionSettings;
1155
1171
  readonly Start: number;
1156
1172
  readonly Length: number;
@@ -1199,6 +1215,7 @@ interface Ruler{
1199
1215
  interface RulerLevels{
1200
1216
  readonly Application: Application;
1201
1217
  readonly Parent: object | any;
1218
+ readonly Count: number;
1202
1219
  Item(Index: number): RulerLevel;
1203
1220
  }
1204
1221
  interface RulerLevel{
@@ -1210,6 +1227,7 @@ interface RulerLevel{
1210
1227
  interface TabStops{
1211
1228
  readonly Application: Application;
1212
1229
  readonly Parent: object | any;
1230
+ readonly Count: number;
1213
1231
  Item(Index: number): TabStop;
1214
1232
  DefaultSpacing: number;
1215
1233
  Add(Type: PpTabStopType, Position: number): TabStop;
@@ -1278,6 +1296,7 @@ interface BulletFormat{
1278
1296
  interface TextStyles{
1279
1297
  readonly Application: Application;
1280
1298
  readonly Parent: object | any;
1299
+ readonly Count: number;
1281
1300
  Item(Type: PpTextStyleType): TextStyle;
1282
1301
  }
1283
1302
  interface TextStyle{
@@ -1290,6 +1309,7 @@ interface TextStyle{
1290
1309
  interface TextStyleLevels{
1291
1310
  readonly Application: Application;
1292
1311
  readonly Parent: object | any;
1312
+ readonly Count: number;
1293
1313
  Item(Level: number): TextStyleLevel;
1294
1314
  }
1295
1315
  interface TextStyleLevel{
@@ -1442,6 +1462,7 @@ interface Presentation{
1442
1462
  interface Tags{
1443
1463
  readonly Application: Application;
1444
1464
  readonly Parent: object | any;
1465
+ readonly Count: number;
1445
1466
  Item(Name: string): string;
1446
1467
  Add(Name: string, Value: string): void;
1447
1468
  Delete(Name: string): void;
@@ -1530,6 +1551,7 @@ interface Table{
1530
1551
  interface Columns{
1531
1552
  readonly Application: Application;
1532
1553
  readonly Parent: object | any;
1554
+ readonly Count: number;
1533
1555
  Item(Index: number): Column;
1534
1556
  Add(BeforeColumn?: number): Column;
1535
1557
  }
@@ -1544,6 +1566,7 @@ interface Column{
1544
1566
  interface Rows{
1545
1567
  readonly Application: Application;
1546
1568
  readonly Parent: object | any;
1569
+ readonly Count: number;
1547
1570
  Item(Index: number): Row;
1548
1571
  Add(BeforeRow?: number): Row;
1549
1572
  }
@@ -1558,6 +1581,7 @@ interface Row{
1558
1581
  interface CellRange{
1559
1582
  readonly Application: Application;
1560
1583
  readonly Parent: object | any;
1584
+ readonly Count: number;
1561
1585
  Item(Index: number): Cell;
1562
1586
  readonly Borders: Borders;
1563
1587
  }
@@ -1574,12 +1598,14 @@ interface Cell{
1574
1598
  interface Borders{
1575
1599
  readonly Application: Application;
1576
1600
  readonly Parent: object | any;
1601
+ readonly Count: number;
1577
1602
  Item(BorderType: PpBorderType): LineFormat;
1578
1603
  }
1579
1604
  interface Panes{
1580
1605
  readonly Application: Application;
1581
1606
  Item(Index: number): Pane;
1582
1607
  readonly Parent: object | any;
1608
+ readonly Count: number;
1583
1609
  }
1584
1610
  interface Pane{
1585
1611
  readonly Parent: object | any;
@@ -1627,6 +1653,7 @@ interface WebOptions{
1627
1653
  interface PublishObjects{
1628
1654
  readonly Application: Application;
1629
1655
  readonly Parent: object | any;
1656
+ readonly Count: number;
1630
1657
  Item(Index: number): PublishObject;
1631
1658
  }
1632
1659
  interface PublishObject{
@@ -1649,6 +1676,7 @@ interface PowerRex{
1649
1676
  interface Comments{
1650
1677
  readonly Application: Application;
1651
1678
  readonly Parent: object | any;
1679
+ readonly Count: number;
1652
1680
  Item(Index: number): Comment;
1653
1681
  Add(Left: number, Top: number, Author: string, AuthorInitials: string, Text: string): Comment;
1654
1682
  Add2(Left: number, Top: number, Author: string, AuthorInitials: string, Text: string, ProviderID: string, UserID: string): Comment;
@@ -1673,6 +1701,7 @@ interface Comment{
1673
1701
  interface Designs{
1674
1702
  readonly Application: Application;
1675
1703
  readonly Parent: object | any;
1704
+ readonly Count: number;
1676
1705
  Item(Index: any): Design;
1677
1706
  Add(designName: string, Index?: number): Design;
1678
1707
  Load(TemplateName: string, Index?: number): Design;
@@ -1751,12 +1780,14 @@ interface TimeLine{
1751
1780
  interface Sequences{
1752
1781
  readonly Application: Application;
1753
1782
  readonly Parent: object | any;
1783
+ readonly Count: number;
1754
1784
  Item(Index: number): Sequence;
1755
1785
  Add(Index?: number): Sequence;
1756
1786
  }
1757
1787
  interface Sequence{
1758
1788
  readonly Application: Application;
1759
1789
  readonly Parent: object | any;
1790
+ readonly Count: number;
1760
1791
  Item(Index: number): Effect;
1761
1792
  AddEffect(Shape: Shape, effectId: MsoAnimEffect, Level?: MsoAnimateByLevel, trigger?: MsoAnimTriggerType, Index?: number): Effect;
1762
1793
  Clone(Effect: Effect, Index?: number): Effect;
@@ -1835,6 +1866,7 @@ interface EffectInformation{
1835
1866
  interface AnimationBehaviors{
1836
1867
  readonly Application: Application;
1837
1868
  readonly Parent: object | any;
1869
+ readonly Count: number;
1838
1870
  Item(Index: number): AnimationBehavior;
1839
1871
  Add(Type: MsoAnimType, Index?: number): AnimationBehavior;
1840
1872
  }
@@ -1901,6 +1933,7 @@ interface PropertyEffect{
1901
1933
  interface AnimationPoints{
1902
1934
  readonly Application: Application;
1903
1935
  readonly Parent: object | any;
1936
+ readonly Count: number;
1904
1937
  Item(Index: number): AnimationPoint;
1905
1938
  Add(Index?: number): AnimationPoint;
1906
1939
  Smooth: MsoTriState;
@@ -1966,6 +1999,7 @@ interface SetEffect{
1966
1999
  interface CustomLayouts{
1967
2000
  readonly Application: Application;
1968
2001
  readonly Parent: object | any;
2002
+ readonly Count: number;
1969
2003
  Item(Index: any): CustomLayout;
1970
2004
  Add(Index: number): CustomLayout;
1971
2005
  Paste(Index?: number): CustomLayout;
@@ -2004,6 +2038,7 @@ interface TableStyle{
2004
2038
  interface CustomerData{
2005
2039
  readonly Application: Application;
2006
2040
  readonly Parent: object | any;
2041
+ readonly Count: number;
2007
2042
  Item(Id: string): CustomXMLPart;
2008
2043
  Add(): CustomXMLPart;
2009
2044
  Delete(Id: string): void;
@@ -2046,6 +2081,7 @@ interface TextFrame2{
2046
2081
  NoTextRotation: MsoTriState;
2047
2082
  }
2048
2083
  interface FileConverters{
2084
+ readonly Count: number;
2049
2085
  Item(Index: any): FileConverter;
2050
2086
  }
2051
2087
  interface FileConverter{
@@ -3080,6 +3116,7 @@ interface ResampleMediaTask{
3080
3116
  readonly Shape: Shape;
3081
3117
  }
3082
3118
  interface ResampleMediaTasks{
3119
+ readonly Count: number;
3083
3120
  Item(Index: number): ResampleMediaTask;
3084
3121
  Pause(): void;
3085
3122
  Cancel(): void;
@@ -3093,6 +3130,7 @@ interface MediaBookmark{
3093
3130
  Delete(): void;
3094
3131
  }
3095
3132
  interface MediaBookmarks{
3133
+ readonly Count: number;
3096
3134
  Item(Index: number): MediaBookmark;
3097
3135
  Add(Position: number, Name: string): MediaBookmark;
3098
3136
  }
@@ -3123,6 +3161,7 @@ interface Broadcast{
3123
3161
  interface ProtectedViewWindows{
3124
3162
  readonly Application: Application;
3125
3163
  readonly Parent: object | any;
3164
+ readonly Count: number;
3126
3165
  Item(Index: number): ProtectedViewWindow;
3127
3166
  Open(FileName: string, ReadPassword?: string, OpenAndRepair?: MsoTriState): ProtectedViewWindow;
3128
3167
  }
@@ -3173,6 +3212,7 @@ interface ThemeVariant{
3173
3212
  interface ThemeVariants{
3174
3213
  readonly Application: Application;
3175
3214
  readonly Parent: object | any;
3215
+ readonly Count: number;
3176
3216
  Item(Index: number): ThemeVariant;
3177
3217
  }
3178
3218
  interface Theme{
@@ -3188,6 +3228,7 @@ interface SlideNavigation{
3188
3228
  interface Guides{
3189
3229
  readonly Application: Application;
3190
3230
  readonly Parent: object | any;
3231
+ readonly Count: number;
3191
3232
  Item(Index: number): Guide;
3192
3233
  Add(Orientation: PpGuideOrientation, Position: number): Guide;
3193
3234
  }
package/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as Ne}from"module";import Q from"fs";import J from"path";import{fileURLToPath as Fe}from"url";import p from"fs";import l from"path";import I from"readline";import{spawn as L}from"child_process";import{fileURLToPath as re}from"url";var oe=re(import.meta.url),z=l.dirname(oe),T=[{key:"1",label:"Excel",value:"Excel",template:"office"},{key:"2",label:"Word",value:"Word",template:"office"},{key:"3",label:"Ppt",value:"Ppt",template:"office"}],V={Excel:"src_excel",Word:"src_word",Ppt:"src_ppt"},ie={Excel:["uudev/types/excel"],Word:["uudev/types/word"],Ppt:["uudev/types/ppt"]};async function se(){try{return(await import("chalk")).default}catch{return null}}async function ae(){try{return(await import("inquirer")).default}catch{return null}}function h(t){if(!t)return;let e=t.trim().toLowerCase(),n=T.find(o=>o.key===e);if(n)return n;let r=T.find(o=>o.label.toLowerCase()===e);if(r)return r}function ce(t){let e=h(t);return e?e.template:String(t||"office").toLowerCase()}function q(t){return/^\d+\.\d+\.\d+$/.test(String(t||""))}function C(t,e){return new Promise(n=>{t.question(e,r=>n(r.trim()))})}async function pe(t={}){let e={...t},n=await se(),r=await ae();if(e.appType){let i=h(e.appType);i&&(e.appType=i.value)}if(e.name&&e.version&&e.appType)return e;let o=I.createInterface({input:process.stdin,output:process.stdout});try{if(!e.name){let i=await C(o,"\u8BF7\u8F93\u5165\u7A0B\u5E8F name: ");e.name=i}if(!e.version)for(;;){let s=await C(o,"\u8BF7\u8F93\u5165 version (\u9ED8\u8BA4 1.0.0): ")||"1.0.0";if(q(s)){e.version=s;break}let a="\u7248\u672C\u53F7\u683C\u5F0F\u9519\u8BEF\uFF0C\u4EC5\u652F\u6301 x.x.x\uFF0C\u4F8B\u5982 1.0.0\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165\u3002";console.log(n?n.red(a):a)}}finally{o.close()}if(!e.appType)if(r){let i=await r.prompt([{type:"list",name:"appTypeSelection",message:"\u8BF7\u9009\u62E9 appType\uFF08\u4E0A\u4E0B\u65B9\u5411\u952E\u79FB\u52A8\uFF0C\u56DE\u8F66\u786E\u8BA4\uFF09",default:T[0].value,choices:T.map(s=>({name:s.label,value:s.value}))}]);e.appType=i.appTypeSelection}else{let i=n?n.cyan("\u8BF7\u9009\u62E9 appType:"):"\u8BF7\u9009\u62E9 appType:";console.log(i);for(let a of T){let c=n?`${n.green(a.key)}. ${n.yellow(a.label)}`:`${a.key}. ${a.label}`;console.log(c)}let s=I.createInterface({input:process.stdin,output:process.stdout});try{let a=await C(s,"\u8BF7\u8F93\u5165\u5E8F\u53F7\u6216\u540D\u79F0 (\u9ED8\u8BA4 1): "),c=h(a||"1");if(!c)throw new Error("appType \u4EC5\u652F\u6301 Excel/Word/Ppt");e.appType=c.value}finally{s.close()}}return e}function le(t){if(!t.name)throw new Error("name \u4E0D\u80FD\u4E3A\u7A7A");if(/[\\/]/.test(t.name))throw new Error("name \u4E0D\u80FD\u5305\u542B\u8DEF\u5F84\u5206\u9694\u7B26");if(!t.appType)throw new Error("appType \u4E0D\u80FD\u4E3A\u7A7A");if(!h(t.appType))throw new Error("appType \u4EC5\u652F\u6301 Excel/Word/Ppt");if(!t.version)throw new Error("version \u4E0D\u80FD\u4E3A\u7A7A");if(!q(t.version))throw new Error("version \u4EC5\u652F\u6301 x.x.x \u683C\u5F0F\uFF0C\u4F8B\u5982 1.0.0")}async function S(t,e){let n=await p.promises.readdir(t,{withFileTypes:!0}),r=new Set(["node_modules","dist"]);await p.promises.mkdir(e,{recursive:!0});for(let o of n){if(o.isDirectory()&&r.has(o.name))continue;let i=l.join(t,o.name),s=l.join(e,o.name);o.isDirectory()?await S(i,s):await p.promises.copyFile(i,s)}}function ue(t){let e=h(t);if(e)return V[e.value]}async function fe(t,e,n){let r=ue(n);if(!r)throw new Error(`\u672A\u627E\u5230 appType \u5BF9\u5E94\u6E90\u7801\u76EE\u5F55: ${n}`);let o=await p.promises.readdir(t,{withFileTypes:!0}),i=new Set(Object.values(V)),s=new Set(["node_modules","dist"]);await p.promises.mkdir(e,{recursive:!0});for(let c of o){if(!c.isDirectory()){let y=l.join(t,c.name),w=l.join(e,c.name);await p.promises.copyFile(y,w);continue}if(i.has(c.name)||s.has(c.name))continue;let d=l.join(t,c.name),f=l.join(e,c.name);await S(d,f)}let a=l.join(t,r);if(!p.existsSync(a))throw new Error(`\u6A21\u677F\u76EE\u5F55\u7F3A\u5C11 ${r}`);await S(a,l.join(e,"src"))}async function me(t,e,n,r){let o=l.join(t,"package.json");if(!p.existsSync(o))return;let i=await p.promises.readFile(o,"utf8"),s=JSON.parse(i);s.name=e,s.version=n,s.appType=r,await p.promises.writeFile(o,`${JSON.stringify(s,null,2)}
3
- `,"utf8")}async function de(t,e){let n=l.join(t,"tsconfig.app.json");if(!p.existsSync(n))return;let r=h(e);if(!r)return;let o=ie[r.value];if(!o)return;let i=await p.promises.readFile(n,"utf8"),s=JSON.stringify(o);if(/"types"\s*:\s*\[[\s\S]*?\]/.test(i)){let a=i.replace(/"types"\s*:\s*\[[\s\S]*?\]/,`"types": ${s}`);await p.promises.writeFile(n,a,"utf8");return}if(/"compilerOptions"\s*:\s*\{/.test(i)){let a=i.replace(/"compilerOptions"\s*:\s*\{/,`"compilerOptions": {
4
- "types": ${s},`);await p.promises.writeFile(n,a,"utf8")}}async function we(t){let e=l.join(t,"package-lock.json");p.existsSync(e)&&await p.promises.unlink(e)}function ge(t){return new Promise((e,n)=>{let r=process.platform==="win32"?L("cmd.exe",["/d","/s","/c","npm.cmd install"],{cwd:t,stdio:"inherit"}):L("npm",["install"],{cwd:t,stdio:"inherit"});r.on("error",o=>{n(o)}),r.on("close",o=>{if(o===0){e();return}n(new Error(`npm install \u6267\u884C\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${o}`))})})}async function B(t){let e=await pe(t||{}),n=h(e.appType||"Excel");n&&(e.appType=n.value),e.version=e.version||"1.0.0",le(e);let r=l.join(process.cwd(),e.name),o=ce(e.appType),s=[l.resolve(z,"..","apptemplate",o),l.resolve(z,"apptemplate",o)].find(a=>p.existsSync(a));if(!s)throw new Error(`\u672A\u627E\u5230 appType \u5BF9\u5E94\u6A21\u677F: ${e.appType}`);if(p.existsSync(r))throw new Error(`\u76EE\u5F55\u5DF2\u5B58\u5728: ${r}`);await p.promises.mkdir(r,{recursive:!0}),o==="office"?await fe(s,r,e.appType):await S(s,r),await me(r,e.name,e.version,e.appType),await de(r,e.appType),await we(r),console.log("\u6B63\u5728\u5B89\u88C5\u9879\u76EE\u4F9D\u8D56: npm install"),await ge(r),console.log(`\u521B\u5EFA\u6210\u529F: ${r}`)}import P from"fs";import E from"path";import{spawn as H}from"child_process";import ye from"archiver";function ve(t){return/^[A-Za-z0-9_./:-]+$/.test(t)?t:`"${String(t).replace(/"/g,'""')}"`}function A(t,e,n){return new Promise((r,o)=>{let i=process.platform==="win32"?H("cmd.exe",["/d","/s","/c",[t,...e].map(ve).join(" ")],{cwd:n,stdio:"inherit"}):H(t,e,{cwd:n,stdio:"inherit"});i.on("error",s=>{o(s)}),i.on("close",s=>{if(s===0){r();return}o(new Error(`\u547D\u4EE4\u6267\u884C\u5931\u8D25: ${t} ${e.join(" ")}`))})})}async function he(t){let e=E.join(t,"package.json");if(!P.existsSync(e))throw new Error(`\u672A\u627E\u5230 package.json: ${e}`);let n=await P.promises.readFile(e,"utf8"),r=JSON.parse(n);if(!r.name)throw new Error("package.json \u7F3A\u5C11 name \u5B57\u6BB5");if(!r.version)throw new Error("package.json \u7F3A\u5C11 version \u5B57\u6BB5");return r}async function Pe(t,e,n){return new Promise((r,o)=>{let i=P.createWriteStream(e),s=ye("zip",{zlib:{level:9}});i.on("close",()=>r()),i.on("error",a=>o(a)),s.on("error",a=>o(a)),s.pipe(i),s.glob("**/*",{cwd:t,dot:!0,ignore:[n]}),s.finalize()})}async function xe(t,e){let n=E.join(t,"menifest.json");if(!P.existsSync(n))throw new Error(`\u672A\u627E\u5230 menifest.json: ${n}`);let r=await P.promises.readFile(n,"utf8"),o=JSON.parse(r);o.name=e.name,o.version=e.version,e.description&&(o.description=e.description,o.note=e.description),await P.promises.writeFile(n,`${JSON.stringify(o,null,2)}
5
- `,"utf8")}async function Z(){let t=process.cwd(),e=await he(t),n=E.join(t,"dist"),r=`${e.name}_${e.version}.zip`,o=E.join(n,r),i=process.platform==="win32"?"npm.cmd":"npm";if(console.log("\u5F00\u59CB\u6267\u884C\u6784\u5EFA: npm run build"),await A(i,["run","build"],t),!P.existsSync(n))throw new Error("\u6784\u5EFA\u5B8C\u6210\u540E\u672A\u627E\u5230 dist \u76EE\u5F55");console.log("\u5F00\u59CB\u540C\u6B65 menifest.json \u5B57\u6BB5"),await xe(n,e),console.log(`\u5F00\u59CB\u6253\u5305 dist: ${r}`),await Pe(n,o,r),console.log(`\u53D1\u5E03\u5305\u751F\u6210\u6210\u529F: ${o}`)}import O from"fs";import Te from"path";import Se from"net";import{spawn as k,spawnSync as Ee}from"child_process";var ke={excel:"{00024505-0016-0000-C000-000000000046}",word:"{000209F5-0000-0000-C000-000000000046}",ppt:"{1CDC7D25-5AA3-4DC4-8E0C-91524280F806}",access:"{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}"};function D(t){let e=String(t||"").trim().toLowerCase();if(e==="excel")return"excel";if(e==="word")return"word";if(e==="ppt"||e==="powerpoint")return"ppt";if(e==="access")return"access";throw new Error(`\u4E0D\u652F\u6301\u7684 appType: ${t||"(\u7A7A)"}\uFF0C\u4EC5\u652F\u6301 Excel/Word/Ppt`)}async function j(t){let e=Te.join(t,"package.json");if(!O.existsSync(e))throw new Error(`\u672A\u627E\u5230 package.json: ${e}`);let n=await O.promises.readFile(e,"utf8"),r=JSON.parse(n);if(!r.appType)throw new Error("package.json \u7F3A\u5C11 appType \u5B57\u6BB5");return r}function be(t){let e=["inherit","pipe","pipe"];return process.platform==="win32"?k("cmd.exe",["/c","npx","vite"],{cwd:t,stdio:e}):k("npx",["vite"],{cwd:t,stdio:e})}function _(t){let e=t.pid;if(e){if(process.platform==="win32"){k("taskkill",["/pid",String(e),"/t","/f"],{stdio:"ignore",windowsHide:!0});return}t.kill("SIGTERM")}}function $e(t){return t.replace(/\x1B\[[0-?]*[ -/]*[@-~]/g,"")}function Ce(t){let e=$e(t).match(/https?:\/\/(?:127\.0\.0\.1|localhost):(\d+)/i)?.[1];if(!e)return null;let n=Number.parseInt(e,10);return!Number.isInteger(n)||n<=0||n>65535?null:n}async function Ae(t,e=3e4){return new Promise((n,r)=>{let o=!1,i=u=>f(()=>r(u)),s=u=>{f(()=>r(new Error(`\u672A\u89E3\u6790\u5230\u672C\u5730\u670D\u52A1\u7AEF\u53E3\uFF0Cuudev debug\u5DF2\u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${u}`)))},a=u=>y(u,process.stdout),c=u=>y(u,process.stderr),d=()=>{t.off("error",i),t.off("close",s),t.stdout?.off("data",a),t.stderr?.off("data",c)},f=u=>{o||(o=!0,clearTimeout(w),d(),u())},y=(u,b)=>{b.write(u);let x=Ce(u.toString("utf8"));x!==null&&f(()=>n(x))};t.on("error",i),t.on("close",s),t.stdout?.on("data",a),t.stderr?.on("data",c);let w=setTimeout(()=>{f(()=>r(new Error(`\u7B49\u5F85\u672C\u5730\u670D\u52A1\u7AEF\u53E3\u8D85\u65F6\uFF08${e}ms\uFF09`)))},e)})}function Oe(t){let e=Ee("reg",["query",t,"/ve"],{encoding:"utf8"});if(e.status!==0)return null;let r=`${e.stdout||""}`.split(/\r?\n/).find(i=>/REG_SZ|REG_EXPAND_SZ/i.test(i));if(!r)return null;let o=r.match(/REG_(?:SZ|EXPAND_SZ)\s+(.+)$/i);return!o||!o[1]?null:o[1].trim()}function De(t){return t.replace(/%([^%]+)%/g,(e,n)=>process.env[n]||`%${n}%`)}function je(t){let e=De(t.trim());if(e.startsWith('"')){let r=e.indexOf('"',1);if(r>1)return e.slice(1,r)}let n=e.match(/^(.+?\.exe)/i);return n&&n[1]?n[1].trim():e}function U(t){return String(t).padStart(2,"0")}function N(t,e=new Date){let n=String(t||"").trim(),r=U(e.getMonth()+1),o=U(e.getDate());return`uudev_pipe_${n}_${r}-${o}`}function F(t){let e=ke[t],n=[`HKCR\\CLSID\\${e}\\LocalServer32`,`HKLM\\SOFTWARE\\Classes\\CLSID\\${e}\\LocalServer32`,`HKLM\\SOFTWARE\\WOW6432Node\\Classes\\CLSID\\${e}\\LocalServer32`];for(let r of n){let o=Oe(r);if(!o)continue;let i=je(o);if(i&&O.existsSync(i))return i}throw new Error(`\u65E0\u6CD5\u901A\u8FC7 CLSID \u5B9A\u4F4D ${t} \u5B89\u88C5\u8DEF\u5F84\uFF0C\u8BF7\u68C0\u67E5 Office \u662F\u5426\u5DF2\u5B89\u88C5`)}async function M(t,e,n){let r=`\\\\.\\pipe\\${e}`,o=Se.createServer(c=>{c.write(n,"utf8"),c.end()});await new Promise((c,d)=>{o.on("error",d),o.listen(r,c)});let i=!1,s=()=>{i||(i=!0,o.close())};return process.once("exit",s),o.on("close",s),k(t,{stdio:"ignore",windowsHide:!1})}async function G(){if(process.platform!=="win32")throw new Error("debug \u547D\u4EE4\u5F53\u524D\u4EC5\u652F\u6301 Windows");let t=process.cwd(),e=be(t);await new Promise((f,y)=>{e.once("error",w=>y(w)),e.once("spawn",()=>f())}),console.log("\u8C03\u8BD5\u670D\u52A1\u5DF2\u542F\u52A8\uFF0C\u6B63\u5728\u8BFB\u53D6 appType \u5E76\u542F\u52A8 Office...");let n=await j(t),r=D(n.appType),o=F(r),s=`http://127.0.0.1:${await Ae(e)}`,a=N(n.appType);console.log(`\u5DF2\u8BC6\u522B appType: ${n.appType}`),console.log(`\u542F\u52A8 Office: ${o}`);let c=await M(o,a,s),d=!1;c.once("close",()=>{d=!0,console.log("Office \u5BA2\u6237\u7AEF\u5DF2\u9000\u51FA\uFF0C\u6B63\u5728\u5173\u95ED uudev debug..."),_(e)}),await new Promise((f,y)=>{e.on("close",w=>{if(d){f();return}if(w===0||w===null){f();return}y(new Error(`uudev debug\u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${w}`))})})}import K from"fs";import Y from"path";import{spawn as _e}from"child_process";async function X(){if(process.platform!=="win32")throw new Error("preview \u547D\u4EE4\u5F53\u524D\u4EC5\u652F\u6301 Windows");let t=process.cwd(),e=Y.join(t,"dist"),n=!1;if(K.existsSync(e)?(await K.promises.readdir(e)).length===0&&(n=!0):n=!0,n){let g=process.platform==="win32"?"npm.cmd":"npm";await A(g,["run","build"],t)}let r=Y.resolve(t),o=process.platform==="win32"?`npx.cmd vite preview --host=127.0.0.1 --outDir="${r}"`:`npx vite preview --host=127.0.0.1 --outDir="${r}"`,i=_e(o,{cwd:t,stdio:["ignore","pipe","pipe"],shell:!0});function s(g){return g.replace(/\x1B\[[0-?]*[ -/]*[@-~]/g,"")}function a(g){let v=s(g).match(/https?:\/\/(?:127\.0\.0\.1|localhost):(\d+)/i)?.[1];if(!v)return null;let m=Number.parseInt(v,10);return!Number.isInteger(m)||m<=0||m>65535?null:m}let c=await new Promise((g,v)=>{let m=!1,R=$=>{let ne=$.toString("utf8"),W=a(ne);W&&!m&&(m=!0,g(W))};i.stdout?.on("data",R),i.stderr?.on("data",R),i.on("error",v),i.on("close",$=>{m||v(new Error(`uudev preview \u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${$}`))}),setTimeout(()=>{m||v(new Error("\u7B49\u5F85 uudev preview \u7AEF\u53E3\u8D85\u65F6"))},2e4)}),d=await j(t),f=D(d.appType),y=F(f),w=`http://127.0.0.1:${c}/dist/index.html`,u=N(d.appType),b=await M(y,u,w),x=!1;b.once("close",()=>{x=!0,console.log("Office \u5BA2\u6237\u7AEF\u5DF2\u9000\u51FA\uFF0C\u6B63\u5728\u5173\u95ED uudev preview..."),_(i)}),await new Promise((g,v)=>{i.on("close",m=>{if(x){g(void 0);return}m===0||m===null?g(void 0):v(new Error(`uudev preview\u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${m}`))})})}var vt=Ne(import.meta.url);function Me(){let t=J.dirname(Fe(import.meta.url)),e=[J.resolve(t,"package.json"),J.resolve(t,"../package.json")];for(let n of e)if(Q.existsSync(n))try{let r=JSON.parse(Q.readFileSync(n,"utf8"));if(r?.version)return r.version}catch{}return"0.0.0"}var te=Me();async function Je(){try{return(await import("chalk")).default}catch{return null}}function ee(){console.log(`uudev v${te}`),console.log(""),console.log("uudev <command> [options]"),console.log(""),console.log("Commands:"),console.log(" create"),console.log(" \u521B\u5EFAuuapp\u9879\u76EE, \u4F1A\u8FDB\u5165\u4EA4\u4E92\u5F0F\u5411\u5BFC\uFF0C\u5E2E\u52A9\u4F60\u5B8C\u6210\u9879\u76EE\u521B\u5EFA"),console.log(" debug"),console.log(" \u5728\u5F53\u524D\u9879\u76EE\u4E2D\u6267\u884C npm run debug\uFF0C\u5E76\u6309 appType \u542F\u52A8 Office"),console.log(" preview"),console.log(" \u6784\u5EFA\u5E76 vite preview \u5F53\u524D\u9879\u76EE\uFF0C\u81EA\u52A8\u542F\u52A8 Office \u5E76\u4F20\u9012\u8C03\u8BD5\u53C2\u6570"),console.log(" makezip"),console.log(" \u5728\u5F53\u524D\u9879\u76EE\u4E2D\u6267\u884C npm run makezip\uFF0C\u5E76\u5C06 dist \u76EE\u5F55\u5185\u5BB9\u6253\u5305\u4E3A appName_version.zip"),console.log(" --help, -h"),console.log(" \u663E\u793A\u5E2E\u52A9\u4FE1\u606F"),console.log(" --version, -v"),console.log(" \u663E\u793A\u7248\u672C\u4FE1\u606F"),console.log(""),console.log("AppType options: Excel | Word | Ppt"),console.log("Version format : x.x.x (\u4F8B\u5982 1.0.0)")}function Re(){console.log(`uudev v${te}`)}async function We(){let t=process.argv[2],e=await Je();if(!t||t==="--help"||t==="-h"||t==="help"){ee();return}if(t==="--version"||t==="-v"||t==="version"){Re();return}if(t==="create"){if(process.argv.length>3){let n="create \u547D\u4EE4\u4F1A\u5FFD\u7565\u9644\u5E26\u53C2\u6570\uFF0C\u5DF2\u8FDB\u5165\u521B\u5EFA\u5411\u5BFC\u3002";console.log(e?e.yellow(n):n)}await B();return}if(t==="makezip"){await Z();return}if(t==="debug"){await G();return}if(t==="preview"){await X();return}ee()}We().catch(t=>{console.error(`\u6267\u884C\u5931\u8D25: ${t.message}`),process.exit(1)});
2
+ import{createRequire as je}from"module";import Q from"fs";import M from"path";import{fileURLToPath as Fe}from"url";import u from"fs";import d from"path";import z from"readline";import{spawn as V}from"child_process";import D from"fs";import ne from"path";import{spawn as _,spawnSync as re}from"child_process";var se={excel:"{00024505-0016-0000-C000-000000000046}",word:"{000209F5-0000-0000-C000-000000000046}",ppt:"{1CDC7D25-5AA3-4DC4-8E0C-91524280F806}",access:"{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}"};function x(t){let e=String(t||"").trim().toLowerCase();if(e==="excel")return"excel";if(e==="word")return"word";if(e==="ppt"||e==="powerpoint")return"ppt";if(e==="access")return"access";throw new Error(`\u4E0D\u652F\u6301\u7684 appType: ${t||"(\u7A7A)"}\uFF0C\u4EC5\u652F\u6301 Excel/Word/Ppt/Access`)}async function S(t){let e=ne.join(t,"package.json");if(!D.existsSync(e))throw new Error(`\u672A\u627E\u5230 package.json: ${e}`);let o=await D.promises.readFile(e,"utf8"),n=JSON.parse(o);if(!n.appType)throw new Error("package.json \u7F3A\u5C11 appType \u5B57\u6BB5");return n}function ie(t){return t.replace(/%([^%]+)%/g,(e,o)=>process.env[o]||`%${o}%`)}function ae(t){let e=ie(t.trim());if(e.startsWith('"')){let n=e.indexOf('"',1);if(n>1)return e.slice(1,n)}let o=e.match(/^(.+?\.exe)/i);return o&&o[1]?o[1].trim():e}function ce(t){let e=re("reg",["query",t,"/ve"],{encoding:"utf8"});if(e.status!==0)return null;let n=`${e.stdout||""}`.split(/\r?\n/).find(s=>/REG_SZ|REG_EXPAND_SZ/i.test(s));if(!n)return null;let r=n.match(/REG_(?:SZ|EXPAND_SZ)\s+(.+)$/i);return!r||!r[1]?null:r[1].trim()}function P(t){let e=se[t],o=[`HKCR\\CLSID\\${e}\\LocalServer32`,`HKLM\\SOFTWARE\\Classes\\CLSID\\${e}\\LocalServer32`,`HKLM\\SOFTWARE\\WOW6432Node\\Classes\\CLSID\\${e}\\LocalServer32`];for(let n of o){let r=ce(n);if(!r)continue;let s=ae(r);if(s&&D.existsSync(s))return s}throw new Error(`\u65E0\u6CD5\u901A\u8FC7 CLSID \u5B9A\u4F4D ${t} \u5B89\u88C5\u8DEF\u5F84\uFF0C\u8BF7\u68C0\u67E5 Office \u662F\u5426\u5DF2\u5B89\u88C5`)}function W(t){try{return P(t),!0}catch{return!1}}function L(t){return String(t).padStart(2,"0")}function T(t,e=new Date){let o=String(t||"").trim(),n=L(e.getMonth()+1),r=L(e.getDate());return`uudev_pipe_${o}_${n}-${r}`}function pe(t){return/^[A-Za-z0-9_./:-]+$/.test(t)?t:`"${String(t).replace(/"/g,'""')}"`}function le(t){return t.replace(/\x1B\[[0-?]*[ -/]*[@-~]/g,"")}function E(t){let e=le(t).match(/https?:\/\/(?:127\.0\.0\.1|localhost):(\d+)/i)?.[1];if(!e)return null;let o=Number.parseInt(e,10);return!Number.isInteger(o)||o<=0||o>65535?null:o}function k(t){let e=t.pid;if(e){if(process.platform==="win32"){_("taskkill",["/pid",String(e),"/t","/f"],{stdio:"ignore",windowsHide:!0});return}t.kill("SIGTERM")}}function b(t,e,o){return new Promise((n,r)=>{let s=process.platform==="win32"?_("cmd.exe",["/d","/s","/c",[t,...e].map(pe).join(" ")],{cwd:o,stdio:"inherit"}):_(t,e,{cwd:o,stdio:"inherit"});s.on("error",i=>{r(i)}),s.on("close",i=>{if(i===0){n();return}r(new Error(`\u547D\u4EE4\u6267\u884C\u5931\u8D25: ${t} ${e.join(" ")}`))})})}import{fileURLToPath as ue}from"url";var fe=ue(import.meta.url),q=d.dirname(fe),A=[{key:"1",label:"Excel",value:"Excel",template:"office"},{key:"2",label:"Word",value:"Word",template:"office"},{key:"3",label:"Ppt",value:"Ppt",template:"office"},{key:"4",label:"Access",value:"Access",template:"office"}],B={Excel:"src_excel",Word:"src_word",Ppt:"src_ppt",Access:"src_acc"},me={Excel:["uudev/types/excel"],Word:["uudev/types/word"],Ppt:["uudev/types/ppt"],Access:["uudev/types/access"]};async function de(){try{return(await import("chalk")).default}catch{return null}}async function we(){try{return(await import("inquirer")).default}catch{return null}}function y(t){if(!t)return;let e=t.trim().toLowerCase(),o=A.find(r=>r.key===e);if(o)return o;let n=A.find(r=>r.label.toLowerCase()===e);if(n)return n}function ge(t){let e=y(t);return e?e.template:String(t||"office").toLowerCase()}function H(t){return/^\d+\.\d+\.\d+$/.test(String(t||""))}function j(t,e){return new Promise(o=>{t.question(e,n=>o(n.trim()))})}async function ye(t={}){let e={...t},o=await de(),n=await we();if(e.appType){let s=y(e.appType);s&&(e.appType=s.value)}if(e.name&&e.version&&e.appType)return e;let r=z.createInterface({input:process.stdin,output:process.stdout});try{if(!e.name){let s=await j(r,"\u8BF7\u8F93\u5165\u7A0B\u5E8F name: ");e.name=s}if(!e.version)for(;;){let i=await j(r,"\u8BF7\u8F93\u5165 version (\u9ED8\u8BA4 1.0.0): ")||"1.0.0";if(H(i)){e.version=i;break}let a="\u7248\u672C\u53F7\u683C\u5F0F\u9519\u8BEF\uFF0C\u4EC5\u652F\u6301 x.x.x\uFF0C\u4F8B\u5982 1.0.0\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165\u3002";console.log(o?o.red(a):a)}}finally{r.close()}if(!e.appType){let s=W("access"),i=s?A:A.filter(c=>c.value!=="Access"),a=i.map(c=>c.label).join("/");if(n){let c=await n.prompt([{type:"list",name:"appTypeSelection",message:"\u8BF7\u9009\u62E9 appType\uFF08\u4E0A\u4E0B\u65B9\u5411\u952E\u79FB\u52A8\uFF0C\u56DE\u8F66\u786E\u8BA4\uFF09",default:i[0].value,choices:i.map(m=>({name:m.label,value:m.value}))}]);e.appType=c.appTypeSelection}else{if(!s){let p=o?o.dim("\uFF08\u672A\u68C0\u6D4B\u5230 Access \u5B89\u88C5\uFF0C\u5DF2\u9690\u85CF\u8BE5\u9009\u9879\uFF09"):"\uFF08\u672A\u68C0\u6D4B\u5230 Access \u5B89\u88C5\uFF0C\u5DF2\u9690\u85CF\u8BE5\u9009\u9879\uFF09";console.log(p)}let c=o?o.cyan("\u8BF7\u9009\u62E9 appType:"):"\u8BF7\u9009\u62E9 appType:";console.log(c);for(let p of i){let f=o?`${o.green(p.key)}. ${o.yellow(p.label)}`:`${p.key}. ${p.label}`;console.log(f)}let m=z.createInterface({input:process.stdin,output:process.stdout});try{let p=await j(m,"\u8BF7\u8F93\u5165\u5E8F\u53F7\u6216\u540D\u79F0 (\u9ED8\u8BA4 1): "),f=y(p||"1");if(!f||f.value==="Access"&&!s)throw new Error(`appType \u4EC5\u652F\u6301 ${a}`);e.appType=f.value}finally{m.close()}}}return e}function ve(t){if(!t.name)throw new Error("name \u4E0D\u80FD\u4E3A\u7A7A");if(/[\\/]/.test(t.name))throw new Error("name \u4E0D\u80FD\u5305\u542B\u8DEF\u5F84\u5206\u9694\u7B26");if(!t.appType)throw new Error("appType \u4E0D\u80FD\u4E3A\u7A7A");if(!y(t.appType))throw new Error("appType \u4EC5\u652F\u6301 Excel/Word/Ppt/Access");if(!t.version)throw new Error("version \u4E0D\u80FD\u4E3A\u7A7A");if(!H(t.version))throw new Error("version \u4EC5\u652F\u6301 x.x.x \u683C\u5F0F\uFF0C\u4F8B\u5982 1.0.0")}async function $(t,e){let o=await u.promises.readdir(t,{withFileTypes:!0}),n=new Set(["node_modules","dist"]);await u.promises.mkdir(e,{recursive:!0});for(let r of o){if(r.isDirectory()&&n.has(r.name))continue;let s=d.join(t,r.name),i=d.join(e,r.name);r.isDirectory()?await $(s,i):await u.promises.copyFile(s,i)}}function he(t){let e=y(t);if(e)return B[e.value]}async function Pe(t,e,o){let n=he(o);if(!n)throw new Error(`\u672A\u627E\u5230 appType \u5BF9\u5E94\u6E90\u7801\u76EE\u5F55: ${o}`);let r=await u.promises.readdir(t,{withFileTypes:!0}),s=new Set(Object.values(B)),i=new Set(["node_modules","dist"]);await u.promises.mkdir(e,{recursive:!0});for(let c of r){if(!c.isDirectory()){let f=d.join(t,c.name),h=d.join(e,c.name);await u.promises.copyFile(f,h);continue}if(s.has(c.name)||i.has(c.name))continue;let m=d.join(t,c.name),p=d.join(e,c.name);await $(m,p)}let a=d.join(t,n);if(!u.existsSync(a))throw new Error(`\u6A21\u677F\u76EE\u5F55\u7F3A\u5C11 ${n}`);await $(a,d.join(e,"src"))}async function xe(t,e,o,n){let r=d.join(t,"package.json");if(!u.existsSync(r))return;let s=await u.promises.readFile(r,"utf8"),i=JSON.parse(s);i.name=e,i.version=o,i.appType=n,await u.promises.writeFile(r,`${JSON.stringify(i,null,2)}
3
+ `,"utf8")}async function Se(t,e){let o=d.join(t,"tsconfig.app.json");if(!u.existsSync(o))return;let n=y(e);if(!n)return;let r=me[n.value];if(!r)return;let s=await u.promises.readFile(o,"utf8"),i=JSON.stringify(r);if(/"types"\s*:\s*\[[\s\S]*?\]/.test(s)){let a=s.replace(/"types"\s*:\s*\[[\s\S]*?\]/,`"types": ${i}`);await u.promises.writeFile(o,a,"utf8");return}if(/"compilerOptions"\s*:\s*\{/.test(s)){let a=s.replace(/"compilerOptions"\s*:\s*\{/,`"compilerOptions": {
4
+ "types": ${i},`);await u.promises.writeFile(o,a,"utf8")}}async function Te(t){let e=d.join(t,"package-lock.json");u.existsSync(e)&&await u.promises.unlink(e)}function Ee(t){return new Promise((e,o)=>{let n=process.platform==="win32"?V("cmd.exe",["/d","/s","/c","npm.cmd install"],{cwd:t,stdio:"inherit"}):V("npm",["install"],{cwd:t,stdio:"inherit"});n.on("error",r=>{o(r)}),n.on("close",r=>{if(r===0){e();return}o(new Error(`npm install \u6267\u884C\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${r}`))})})}async function U(t){let e=await ye(t||{}),o=y(e.appType||"Excel");o&&(e.appType=o.value),e.version=e.version||"1.0.0",ve(e);let n=d.join(process.cwd(),e.name),r=ge(e.appType),i=[d.resolve(q,"..","apptemplate",r),d.resolve(q,"apptemplate",r)].find(a=>u.existsSync(a));if(!i)throw new Error(`\u672A\u627E\u5230 appType \u5BF9\u5E94\u6A21\u677F: ${e.appType}`);if(u.existsSync(n))throw new Error(`\u76EE\u5F55\u5DF2\u5B58\u5728: ${n}`);await u.promises.mkdir(n,{recursive:!0}),r==="office"?await Pe(i,n,e.appType):await $(i,n),await xe(n,e.name,e.version,e.appType),await Se(n,e.appType),await Te(n),console.log("\u6B63\u5728\u5B89\u88C5\u9879\u76EE\u4F9D\u8D56: npm install"),await Ee(n),console.log(`\u521B\u5EFA\u6210\u529F: ${n}`),console.log(`cd ${e.name}`)}import v from"fs";import C from"path";import ke from"archiver";async function be(t){let e=C.join(t,"package.json");if(!v.existsSync(e))throw new Error(`\u672A\u627E\u5230 package.json: ${e}`);let o=await v.promises.readFile(e,"utf8"),n=JSON.parse(o);if(!n.name)throw new Error("package.json \u7F3A\u5C11 name \u5B57\u6BB5");if(!n.version)throw new Error("package.json \u7F3A\u5C11 version \u5B57\u6BB5");return n}async function Ae(t,e,o){return new Promise((n,r)=>{let s=v.createWriteStream(e),i=ke("zip",{zlib:{level:9}});s.on("close",()=>n()),s.on("error",a=>r(a)),i.on("error",a=>r(a)),i.pipe(s),i.glob("**/*",{cwd:t,dot:!0,ignore:[o]}),i.finalize()})}async function $e(t,e){let o=C.join(t,"menifest.json");if(!v.existsSync(o))throw new Error(`\u672A\u627E\u5230 menifest.json: ${o}`);let n=await v.promises.readFile(o,"utf8"),r=JSON.parse(n);r.name=e.name,r.version=e.version,e.description&&(r.description=e.description,r.note=e.description),await v.promises.writeFile(o,`${JSON.stringify(r,null,2)}
5
+ `,"utf8")}async function Z(){let t=process.cwd(),e=await be(t),o=C.join(t,"dist"),n=`${e.name}_${e.version}.zip`,r=C.join(o,n),s=process.platform==="win32"?"npm.cmd":"npm";if(console.log("\u5F00\u59CB\u6267\u884C\u6784\u5EFA: npm run build"),await b(s,["run","build"],t),!v.existsSync(o))throw new Error("\u6784\u5EFA\u5B8C\u6210\u540E\u672A\u627E\u5230 dist \u76EE\u5F55");console.log("\u5F00\u59CB\u540C\u6B65 menifest.json \u5B57\u6BB5"),await $e(o,e),console.log(`\u5F00\u59CB\u6253\u5305 dist: ${n}`),await Ae(o,r,n),console.log(`\u53D1\u5E03\u5305\u751F\u6210\u6210\u529F: ${r}`)}import Ce from"net";import{spawn as F}from"child_process";function Oe(t){let e=["inherit","pipe","pipe"];return process.platform==="win32"?F("cmd.exe",["/c","npx","vite"],{cwd:t,stdio:e}):F("npx",["vite"],{cwd:t,stdio:e})}async function De(t,e=3e4){return new Promise((o,n)=>{let r=!1,s=l=>p(()=>n(l)),i=l=>{p(()=>n(new Error(`\u672A\u89E3\u6790\u5230\u672C\u5730\u670D\u52A1\u7AEF\u53E3\uFF0Cuudev debug\u5DF2\u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${l}`)))},a=l=>f(l,process.stdout),c=l=>f(l,process.stderr),m=()=>{t.off("error",s),t.off("close",i),t.stdout?.off("data",a),t.stderr?.off("data",c)},p=l=>{r||(r=!0,clearTimeout(h),m(),l())},f=(l,g)=>{g.write(l);let w=E(l.toString("utf8"));w!==null&&p(()=>o(w))};t.on("error",s),t.on("close",i),t.stdout?.on("data",a),t.stderr?.on("data",c);let h=setTimeout(()=>{p(()=>n(new Error(`\u7B49\u5F85\u672C\u5730\u670D\u52A1\u7AEF\u53E3\u8D85\u65F6\uFF08${e}ms\uFF09`)))},e)})}async function N(t,e,o){let n=`\\\\.\\pipe\\${e}`,r=Ce.createServer(i=>{i.write(o,"utf8"),i.end()});await new Promise((i,a)=>{r.on("error",c=>{if(r.close(),c.code==="EADDRINUSE"){a(new Error(`\u53E6\u4E00\u4E2A uudev debug \u5B9E\u4F8B\u5DF2\u5728\u8FD0\u884C\uFF0C\u7BA1\u9053 ${e} \u88AB\u5360\u7528`));return}a(c)}),r.listen(n,i)});let s=F(t,{stdio:"ignore",windowsHide:!1});return s._pipeServer=r,s}function J(t){let e=t._pipeServer;e&&e.close()}async function G(){if(process.platform!=="win32")throw new Error("debug \u547D\u4EE4\u5F53\u524D\u4EC5\u652F\u6301 Windows");let t=process.cwd(),e=Oe(t);await new Promise((m,p)=>{e.once("error",f=>p(f)),e.once("spawn",()=>m())}),console.log("\u8C03\u8BD5\u670D\u52A1\u5DF2\u542F\u52A8\uFF0C\u6B63\u5728\u8BFB\u53D6 appType \u5E76\u542F\u52A8 Office...");let o=await S(t),n=x(o.appType),r=P(n),i=`http://127.0.0.1:${await De(e)}`,a=T(o.appType);console.log(`\u5DF2\u8BC6\u522B appType: ${o.appType}`),console.log(`\u542F\u52A8 Office: ${r}`);let c=await N(r,a,i);c.once("close",()=>{console.log("Office \u5BA2\u6237\u7AEF\u5DF2\u9000\u51FA\uFF0C\u6B63\u5728\u5173\u95ED uudev debug..."),J(c),k(e)}),await new Promise((m,p)=>{e.on("close",f=>{if(f===0||f===null){m();return}p(new Error(`uudev debug\u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${f}`))})})}import K from"fs";import Y from"path";import{spawn as _e}from"child_process";async function X(){if(process.platform!=="win32")throw new Error("preview \u547D\u4EE4\u5F53\u524D\u4EC5\u652F\u6301 Windows");let t=process.cwd(),e=Y.join(t,"dist"),o=!1;if(K.existsSync(e)?(await K.promises.readdir(e)).length===0&&(o=!0):o=!0,o){let l=process.platform==="win32"?"npm.cmd":"npm";await b(l,["run","build"],t)}let n=Y.resolve(t),r=process.platform==="win32"?`npx.cmd vite preview --host=127.0.0.1 --outDir="${n}"`:`npx vite preview --host=127.0.0.1 --outDir="${n}"`,s=_e(r,{cwd:t,stdio:["ignore","pipe","pipe"],shell:!0}),i=await new Promise((l,g)=>{let w=!1,R=O=>{let oe=O.toString("utf8"),I=E(oe);I&&!w&&(w=!0,l(I))};s.stdout?.on("data",R),s.stderr?.on("data",R),s.on("error",g),s.on("close",O=>{w||g(new Error(`uudev preview \u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${O}`))}),setTimeout(()=>{w||g(new Error("\u7B49\u5F85 uudev preview \u7AEF\u53E3\u8D85\u65F6"))},2e4)}),a=await S(t),c=x(a.appType),m=P(c),p=`http://127.0.0.1:${i}/dist/index.html`,f=T(a.appType),h=await N(m,f,p);h.once("close",()=>{console.log("Office \u5BA2\u6237\u7AEF\u5DF2\u9000\u51FA\uFF0C\u6B63\u5728\u5173\u95ED uudev preview..."),J(h),k(s)}),await new Promise((l,g)=>{s.on("close",w=>{w===0||w===null?l(void 0):g(new Error(`uudev preview\u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${w}`))})})}var St=je(import.meta.url);function Ne(){let t=M.dirname(Fe(import.meta.url)),e=[M.resolve(t,"package.json"),M.resolve(t,"../package.json")];for(let o of e)if(Q.existsSync(o))try{let n=JSON.parse(Q.readFileSync(o,"utf8"));if(n?.version)return n.version}catch{}return"0.0.0"}var te=Ne();async function Je(){try{return(await import("chalk")).default}catch{return null}}function ee(){console.log(`uudev v${te}`),console.log(""),console.log("uudev <command> [options]"),console.log(""),console.log("Commands:"),console.log(" create"),console.log(" \u521B\u5EFAuuapp\u9879\u76EE, \u4F1A\u8FDB\u5165\u4EA4\u4E92\u5F0F\u5411\u5BFC\uFF0C\u5E2E\u52A9\u4F60\u5B8C\u6210\u9879\u76EE\u521B\u5EFA"),console.log(" debug"),console.log(" \u5728\u5F53\u524D\u9879\u76EE\u4E2D\u6267\u884C npm run debug\uFF0C\u5E76\u6309 appType \u542F\u52A8 Office"),console.log(" preview"),console.log(" \u6784\u5EFA\u5E76 vite preview \u5F53\u524D\u9879\u76EE\uFF0C\u81EA\u52A8\u542F\u52A8 Office \u5E76\u4F20\u9012\u8C03\u8BD5\u53C2\u6570"),console.log(" makezip"),console.log(" \u5728\u5F53\u524D\u9879\u76EE\u4E2D\u6267\u884C npm run makezip\uFF0C\u5E76\u5C06 dist \u76EE\u5F55\u5185\u5BB9\u6253\u5305\u4E3A appName_version.zip"),console.log(" --help, -h"),console.log(" \u663E\u793A\u5E2E\u52A9\u4FE1\u606F"),console.log(" --version, -v"),console.log(" \u663E\u793A\u7248\u672C\u4FE1\u606F"),console.log(""),console.log("AppType options: Excel | Word | Ppt | Access"),console.log("Version format : x.x.x (\u4F8B\u5982 1.0.0)")}function Me(){console.log(`uudev v${te}`)}async function Re(){let t=process.argv[2],e=await Je();if(!t||t==="--help"||t==="-h"||t==="help"){ee();return}if(t==="--version"||t==="-v"||t==="version"){Me();return}if(t==="create"){if(process.argv.length>3){let o="create \u547D\u4EE4\u4F1A\u5FFD\u7565\u9644\u5E26\u53C2\u6570\uFF0C\u5DF2\u8FDB\u5165\u521B\u5EFA\u5411\u5BFC\u3002";console.log(e?e.yellow(o):o)}await U();return}if(t==="makezip"){await Z();return}if(t==="debug"){await G();return}if(t==="preview"){await X();return}ee()}Re().catch(t=>{console.error(`\u6267\u884C\u5931\u8D25: ${t.message}`),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uudev",
3
- "version": "1.1.9",
3
+ "version": "1.2.1",
4
4
  "description": "uudev dev tool",
5
5
  "keywords": [
6
6
  "uudev"
@@ -21,6 +21,9 @@
21
21
  },
22
22
  "./types/ppt": {
23
23
  "types": "./dtstype/ppt.d.ts"
24
+ },
25
+ "./types/access": {
26
+ "types": "./dtstype/acc.d.ts"
24
27
  }
25
28
  },
26
29
  "engines": {