@office-open/xlsx 0.10.2 → 0.10.4

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/dist/index.d.mts CHANGED
@@ -1,24 +1,13 @@
1
- import { $ as FillOptions, A as TableColumnOptions, B as PivotCacheDefinitionOptions, C as SheetBackgroundImageOptions, D as WorksheetOptions, E as WorksheetContext, F as tableDesc, G as PivotTableOptions, H as PivotFilterOptions, I as SharedStrings, J as BorderSideOptions, K as AlignmentOptions, L as SharedStringsDocOptions, M as TableStyleInfoOptions, N as TableType, O as stringifyWorksheet, P as TotalsRowFunction, Q as DxfOptions, R as sharedStringsDesc, S as ScenarioOptions, T as WorksheetChartOptions, U as PivotFilterType, V as PivotDataField, W as PivotSourceData, X as CustomCellStyleOptions, Z as CustomTableStyleOptions, _ as PhoneticPropertiesOptions, a as ColumnOptions, at as StylesParseResult, b as ScenarioCellOptions, c as ConditionalFormatRule, d as FormulaOptions, et as FontOptions, f as FreezePaneOptions, g as MergeCellOptions, h as IgnoredErrorOptions, i as ColorScaleOptions, it as StylesDocOptions, j as TableOptions, k as worksheetDesc, l as DataBarOptions, m as IconSetType, n as CfvoOptions, nt as StyleOptions, o as CommentOptions, ot as stylesDesc, p as IconSetOptions, q as BorderOptions, r as CfvoType, rt as Styles, s as ConditionalFormatOptions, t as CellOptions, tt as StyleExtensionOptions, u as DataValidationOptions, v as ProtectedRangeOptions, w as SheetProtectionOptions, x as ScenarioDefinition, y as RowOptions, z as ConsolidateFunction } from "./worksheet-DgjBJg_S.mjs";
2
- import { A as FileRecoveryPropertiesOptions, C as ChartsheetHeaderFooterOptions, D as ChartsheetProtectionOptions, E as ChartsheetPageSetup, F as buildExternalReferencesXml, I as buildTablePartsXml, L as workbookDesc, M as PivotCacheReference, N as WebPublishingOptions, O as chartsheetDesc, P as WorkbookProtectionOptions, S as ChartsheetDescriptorOptions, T as ChartsheetPageMargins, _ as ExternalRowOptions, a as RevisionEntry, b as OleLinkOptions, c as RevisionHeadersOptions, d as RevisionMoveOptions, f as RevisionRowColumnOptions, g as ExternalLinkOptions, h as ExternalDefinedNameOptions, i as RevisionDefinedNameOptions, j as FileSharingOptions, k as CustomWorkbookViewOptions, l as RevisionInsertSheetOptions, m as ExternalCellOptions, n as RevisionCellChangeOptions, o as RevisionFormattingOptions, p as ExternalBookOptions, r as RevisionCommentOptions, s as RevisionHeaderEntry, t as WorkbookOptions, u as RevisionLogOptions, v as ExternalSheetDataOptions, w as ChartsheetOptions, x as externalLinkDesc, y as OleItemOptions } from "./file-ATgsKghI.mjs";
1
+ import { $ as DxfOptions, A as TableColumnOptions, B as PivotAreaOptions, C as SheetBackgroundImageOptions, D as WorksheetOptions, E as WorksheetContext, F as tableDesc, G as PivotSourceData, H as PivotDataField, I as SharedStrings, J as BorderOptions, K as PivotTableOptions, L as SharedStringsDocOptions, M as TableStyleInfoOptions, N as TableType, O as stringifyWorksheet, P as TotalsRowFunction, Q as CustomTableStyleOptions, R as sharedStringsDesc, S as ScenarioOptions, T as WorksheetChartOptions, U as PivotFilterOptions, W as PivotFilterType, Y as BorderSideOptions, Z as CustomCellStyleOptions, _ as PhoneticPropertiesOptions, a as ColumnOptions, at as StylesDocOptions, b as ScenarioCellOptions, c as ConditionalFormatRule, d as FormulaOptions, et as FillOptions, f as FreezePaneOptions, g as MergeCellOptions, h as IgnoredErrorOptions, i as ColorScaleOptions, it as Styles, j as TableOptions, k as worksheetDesc, l as DataBarOptions, m as IconSetType, n as CfvoOptions, nt as StyleExtensionOptions, o as CommentOptions, ot as StylesParseResult, p as IconSetOptions, q as AlignmentOptions, r as CfvoType, rt as StyleOptions, s as ConditionalFormatOptions, st as stylesDesc, t as CellOptions, tt as FontOptions, u as DataValidationOptions, v as ProtectedRangeOptions, w as SheetProtectionOptions, x as ScenarioDefinition, y as RowOptions, z as ConsolidateFunction } from "./worksheet-C9CP2B97.mjs";
2
+ import { A as ChartsheetProtectionOptions, B as buildExternalReferencesXml, C as OleLinkOptions, D as ChartsheetOptions, E as ChartsheetHeaderFooterOptions, F as FileRecoveryPropertiesOptions, H as workbookDesc, I as FileSharingOptions, L as PivotCacheReference, M as CalcChainOptions, N as calcChainDesc, O as ChartsheetPageMargins, P as CustomWorkbookViewOptions, R as WebPublishingOptions, S as OleItemOptions, T as ChartsheetDescriptorOptions, V as buildTablePartsXml, _ as ExternalCellOptions, a as RevisionEntry, b as ExternalRowOptions, c as RevisionHeadersOptions, d as RevisionMoveOptions, f as RevisionRowColumnOptions, g as ExternalBookOptions, h as pivotCacheRecordsDesc, i as RevisionDefinedNameOptions, j as chartsheetDesc, k as ChartsheetPageSetup, l as RevisionInsertSheetOptions, m as pivotCacheDefDesc, n as RevisionCellChangeOptions, o as RevisionFormattingOptions, p as PivotCacheDefDescriptorOptions, r as RevisionCommentOptions, s as RevisionHeaderEntry, t as WorkbookOptions, u as RevisionLogOptions, v as ExternalDefinedNameOptions, w as externalLinkDesc, x as ExternalSheetDataOptions, y as ExternalLinkOptions, z as WorkbookProtectionOptions } from "./file-Clpwutq2.mjs";
3
3
  import { generateWorkbook, generateWorkbookStream, generateWorkbookSync } from "./generate.mjs";
4
4
  import { XlsxDocument, XlsxPartRefs, parseWorkbook, parseXlsx } from "./parse.mjs";
5
5
  import { Patch, PatchWorkbookOptions, ScalarValue, patchWorkbook } from "./patch.mjs";
6
6
  import { Element } from "@office-open/xml";
7
- import { ChartCollection, CompressionOptions, CorePropertiesOptions, OutputByType, OutputType, PackerOptions, RelationshipType, Relationships, XmlifyedFile, Zippable } from "@office-open/core";
7
+ import { ChartCollection, CompressionOptions, CorePropertiesOptions, Media, OutputByType, OutputType, PackerOptions, RelationshipType, Relationships, UniversalMeasure, XmlifyedFile, Zippable } from "@office-open/core";
8
8
  import { createThemeXml } from "@office-open/core/theme";
9
9
  import { CustomDescriptor, ReadContext, WriteContext } from "@office-open/core/descriptor";
10
10
 
11
- //#region src/parts/calc-chain.d.ts
12
- interface CalcCell {
13
- reference: string;
14
- sheetIndex: number;
15
- array?: boolean;
16
- }
17
- interface CalcChainOptions {
18
- cells: CalcCell[];
19
- }
20
- declare const calcChainDesc: CustomDescriptor<CalcChainOptions>;
21
- //#endregion
22
11
  //#region src/parts/comments.d.ts
23
12
  interface CommentsDocOptions {
24
13
  comments: CommentOptions[];
@@ -41,28 +30,28 @@ declare const EDIT_AS_TYPES: {
41
30
  type EditAsType = (typeof EDIT_AS_TYPES)[keyof typeof EDIT_AS_TYPES];
42
31
  interface DrawingImageOptions {
43
32
  col: number;
44
- colOffset?: number;
33
+ colOffset?: number | UniversalMeasure;
45
34
  row: number;
46
- rowOffset?: number;
35
+ rowOffset?: number | UniversalMeasure;
47
36
  toCol?: number;
48
37
  toRow?: number;
49
- toColOffset?: number;
50
- toRowOffset?: number;
38
+ toColOffset?: number | UniversalMeasure;
39
+ toRowOffset?: number | UniversalMeasure;
51
40
  rId: string;
52
41
  anchorType?: AnchorType;
53
42
  editAs?: EditAsType;
54
- absoluteX?: number;
55
- absoluteY?: number;
56
- extentCx?: number;
57
- extentCy?: number;
43
+ absoluteX?: number | UniversalMeasure;
44
+ absoluteY?: number | UniversalMeasure;
45
+ extentCx?: number | UniversalMeasure;
46
+ extentCy?: number | UniversalMeasure;
58
47
  locksWithSheet?: boolean;
59
48
  printsWithSheet?: boolean;
60
49
  }
61
50
  interface DrawingChartOptions {
62
51
  col: number;
63
- colOffset?: number;
52
+ colOffset?: number | UniversalMeasure;
64
53
  row: number;
65
- rowOffset?: number;
54
+ rowOffset?: number | UniversalMeasure;
66
55
  rId: string;
67
56
  locksWithSheet?: boolean;
68
57
  printsWithSheet?: boolean;
@@ -79,31 +68,164 @@ interface PivotTableDescriptorOptions {
79
68
  sourceData: PivotSourceData;
80
69
  cacheId: number;
81
70
  }
82
- declare const pivotTableDesc: CustomDescriptor<PivotTableDescriptorOptions>;
83
- //#endregion
84
- //#region src/parts/pivot-cache.d.ts
85
- interface PivotCacheRecordsDescriptorOptions {
86
- sourceData: PivotSourceData;
87
- records?: Record<string, unknown>[][];
88
- }
89
- interface PivotCacheDefDescriptorOptions {
90
- sourceRef: string;
91
- sourceSheet: string;
92
- sourceData: PivotSourceData;
93
- recordsRid: string;
94
- cacheDefOpts?: PivotCacheDefinitionOptions;
95
- }
96
- declare const pivotCacheDefDesc: CustomDescriptor<PivotCacheDefDescriptorOptions>;
97
- declare const pivotCacheRecordsDesc: CustomDescriptor<PivotCacheRecordsDescriptorOptions>;
71
+ interface PivotFieldParseResult {
72
+ axis?: string;
73
+ showAll?: boolean;
74
+ dataField?: boolean;
75
+ hierarchy?: string;
76
+ dragToRow?: boolean;
77
+ dragToCol?: boolean;
78
+ dragToPage?: boolean;
79
+ dragToData?: boolean;
80
+ dragOff?: boolean;
81
+ showDropDowns?: boolean;
82
+ insertBlankRow?: boolean;
83
+ showPropCell?: boolean;
84
+ showPropTip?: boolean;
85
+ showPropAsCaption?: boolean;
86
+ compact?: boolean;
87
+ outline?: boolean;
88
+ subtotalTop?: boolean;
89
+ includeNewItemsInFilter?: boolean;
90
+ }
91
+ interface DataFieldParseResult {
92
+ name?: string;
93
+ fld?: number;
94
+ subtotal?: string;
95
+ showDataAs?: string;
96
+ baseField?: number;
97
+ baseItem?: number;
98
+ numFmtId?: string;
99
+ }
100
+ interface PageFieldParseResult {
101
+ fld?: number;
102
+ hier?: number;
103
+ cap?: string;
104
+ }
105
+ interface PivotFormatParseResult {
106
+ action?: string;
107
+ dxfId?: number;
108
+ pivotArea?: Partial<PivotAreaOptions>;
109
+ }
110
+ interface ChartFormatParseResult {
111
+ chart?: number;
112
+ format?: number;
113
+ series?: boolean;
114
+ pivotArea?: Partial<PivotAreaOptions>;
115
+ }
116
+ interface PivotHierarchyParseResult {
117
+ outline?: boolean;
118
+ multipleItemSelectionAllowed?: boolean;
119
+ subtotalTop?: boolean;
120
+ showInFieldList?: boolean;
121
+ dragToRow?: boolean;
122
+ dragToCol?: boolean;
123
+ dragToPage?: boolean;
124
+ dragToData?: boolean;
125
+ dragOff?: boolean;
126
+ includeNewItemsInFilter?: boolean;
127
+ caption?: string;
128
+ }
129
+ interface PivotFilterParseResult {
130
+ fld?: number;
131
+ type?: string;
132
+ id?: number;
133
+ mpFld?: number;
134
+ evalOrder?: number;
135
+ }
136
+ interface HierarchyUsageParseResult {
137
+ hierarchyUsage: number;
138
+ }
139
+ interface CalculatedItemParseResult {
140
+ field?: number;
141
+ formula?: string;
142
+ pivotArea?: Partial<PivotAreaOptions>;
143
+ }
144
+ interface CalculatedMemberParseResult {
145
+ name?: string;
146
+ mdx?: string;
147
+ memberName?: string;
148
+ hierarchy?: string;
149
+ parent?: string;
150
+ solveOrder?: number;
151
+ set?: boolean;
152
+ }
153
+ interface PivotTableParseResult {
154
+ name?: string;
155
+ cacheId?: number;
156
+ dataOnRows?: boolean;
157
+ showHeaders?: boolean;
158
+ showEmptyRow?: boolean;
159
+ showEmptyCol?: boolean;
160
+ grandTotalCaption?: string;
161
+ errorCaption?: string;
162
+ showError?: boolean;
163
+ missingCaption?: string;
164
+ showMissing?: boolean;
165
+ pageStyle?: string;
166
+ pivotTableStyle?: string;
167
+ tag?: string;
168
+ showItems?: boolean;
169
+ editData?: boolean;
170
+ disableFieldList?: boolean;
171
+ showCalcMbrs?: boolean;
172
+ visualTotals?: boolean;
173
+ showMultipleLabel?: boolean;
174
+ showDataDropDown?: boolean;
175
+ showDrill?: boolean;
176
+ printDrill?: boolean;
177
+ showMemberPropertyTips?: boolean;
178
+ showDataTips?: boolean;
179
+ enableWizard?: boolean;
180
+ enableDrill?: boolean;
181
+ enableFieldProperties?: boolean;
182
+ pageWrap?: number;
183
+ pageOverThenDown?: boolean;
184
+ subtotalHiddenItems?: boolean;
185
+ fieldPrintTitles?: boolean;
186
+ mergeItem?: boolean;
187
+ showDropZones?: boolean;
188
+ published?: boolean;
189
+ gridDropZones?: boolean;
190
+ multipleFieldFilters?: boolean;
191
+ rowHeaderCaption?: string;
192
+ colHeaderCaption?: string;
193
+ fieldListSortAscending?: boolean;
194
+ mdxSubqueries?: boolean;
195
+ customListSort?: boolean;
196
+ asteriskTotals?: boolean;
197
+ dataPosition?: number;
198
+ immersive?: boolean;
199
+ vacatedStyle?: string;
200
+ dataCaption?: string;
201
+ location?: string;
202
+ locationRowPageCount?: number;
203
+ locationColPageCount?: number;
204
+ pivotFields?: PivotFieldParseResult[];
205
+ dataFields?: DataFieldParseResult[];
206
+ rowFields?: number[];
207
+ colFields?: number[];
208
+ pageFields?: PageFieldParseResult[];
209
+ formats?: PivotFormatParseResult[];
210
+ chartFormats?: ChartFormatParseResult[];
211
+ pivotHierarchies?: PivotHierarchyParseResult[];
212
+ filters?: PivotFilterParseResult[];
213
+ rowHierarchiesUsage?: HierarchyUsageParseResult[];
214
+ colHierarchiesUsage?: HierarchyUsageParseResult[];
215
+ calculatedItems?: CalculatedItemParseResult[];
216
+ calculatedMembers?: CalculatedMemberParseResult[];
217
+ style?: string;
218
+ }
219
+ declare const pivotTableDesc: CustomDescriptor<PivotTableDescriptorOptions, WriteContext, PivotTableParseResult>;
98
220
  //#endregion
99
221
  //#region src/parts/dialogsheet.d.ts
100
222
  interface DialogsheetPageMargins {
101
- left?: number;
102
- right?: number;
103
- top?: number;
104
- bottom?: number;
105
- header?: number;
106
- footer?: number;
223
+ left?: number | UniversalMeasure;
224
+ right?: number | UniversalMeasure;
225
+ top?: number | UniversalMeasure;
226
+ bottom?: number | UniversalMeasure;
227
+ header?: number | UniversalMeasure;
228
+ footer?: number | UniversalMeasure;
107
229
  }
108
230
  interface DialogsheetPageSetup {
109
231
  paperSize?: number;
@@ -408,11 +530,6 @@ interface MediaData {
408
530
  width: number;
409
531
  height: number;
410
532
  }
411
- declare class Media {
412
- private map;
413
- addImage(key: string, data: MediaData): void;
414
- get array(): MediaData[];
415
- }
416
533
  //#endregion
417
534
  //#region src/util/index.d.ts
418
535
  declare function columnToLetter(col: number): string;
@@ -450,25 +567,11 @@ declare class ContentTypes {
450
567
  serialize(): string;
451
568
  }
452
569
  //#endregion
453
- //#region src/parts/media.d.ts
454
- interface MediaData$1 {
455
- fileName: string;
456
- type: string;
457
- data: Uint8Array;
458
- width: number;
459
- height: number;
460
- }
461
- declare class Media$1 {
462
- private map;
463
- addImage(key: string, data: MediaData$1): void;
464
- get array(): MediaData$1[];
465
- }
466
- //#endregion
467
570
  //#region src/context.d.ts
468
571
  declare class XlsxWriteContext implements WriteContext {
469
572
  sharedStrings: SharedStrings;
470
573
  styles: Styles;
471
- media: Media$1;
574
+ media: Media<MediaData>;
472
575
  charts: ChartCollection;
473
576
  contentTypes: ContentTypes;
474
577
  workbookRels: Relationships;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/parts/calc-chain.ts","../src/parts/comments.ts","../src/parts/drawing.ts","../src/parts/pivot-table.ts","../src/parts/pivot-cache.ts","../src/parts/dialogsheet.ts","../src/parts/query-table.ts","../src/parts/metadata.ts","../src/parts/connection.ts","../src/parts/xml-mapping.ts","../src/shared/media.ts","../src/util/index.ts","../src/compiler.ts","../src/parts/content-types.ts","../src/parts/media.ts","../src/context.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/parts/comments.ts","../src/parts/drawing.ts","../src/parts/pivot-table.ts","../src/parts/dialogsheet.ts","../src/parts/query-table.ts","../src/parts/metadata.ts","../src/parts/connection.ts","../src/parts/xml-mapping.ts","../src/shared/media.ts","../src/util/index.ts","../src/compiler.ts","../src/parts/content-types.ts","../src/context.ts"],"mappings":";;;;;;;;;;;UAyBiB,kBAAA;EACf,QAAA,EAAU,cAAc;AAAA;AAAA,cAGb,YAAA,EAAc,gBAAgB,CAAC,kBAAA;AAAA,cAsE/B,YAAA,EAAc,gBAAgB,CAAC,kBAAA;;;cC7C/B,YAAA;EAAA;;;;KAKD,UAAA,WAAqB,YAAA,eAA2B,YAAY;AAAA,cAG3D,aAAA;EAAA;;;;KAKD,UAAA,WAAqB,aAAA,eAA4B,aAAa;AAAA,UAEzD,mBAAA;EAEf,GAAA;EAEA,SAAA,YAAqB,gBAAA;EAErB,GAAA;EAEA,SAAA,YAAqB,gBAAA;EAErB,KAAA;EAEA,KAAA;EAEA,WAAA,YAAuB,gBAAA;EAEvB,WAAA,YAAuB,gBAAA;EAEvB,GAAA;EAEA,UAAA,GAAa,UAAA;EAEb,MAAA,GAAS,UAAA;EAET,SAAA,YAAqB,gBAAA;EAErB,SAAA,YAAqB,gBAAA;EAErB,QAAA,YAAoB,gBAAA;EAEpB,QAAA,YAAoB,gBAAA;EAEpB,cAAA;EAEA,eAAA;AAAA;AAAA,UAGe,mBAAA;EAEf,GAAA;EAEA,SAAA,YAAqB,gBAAA;EAErB,GAAA;EAEA,SAAA,YAAqB,gBAAgB;EAErC,GAAA;EAEA,cAAA;EAEA,eAAA;AAAA;AAAA,UAGe,cAAA;EACf,MAAA,GAAS,mBAAA;EACT,MAAA,GAAS,mBAAmB;AAAA;AAAA,cAejB,WAAA,EAAa,gBAAgB,CAAC,cAAA;;;UCjH1B,2BAAA;EACf,OAAA,EAAS,iBAAA;EACT,UAAA,EAAY,eAAe;EAC3B,OAAA;AAAA;AAAA,UAIe,qBAAA;EACf,IAAA;EACA,OAAA;EACA,SAAA;EACA,SAAA;EACA,SAAA;EACA,SAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;EACA,cAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;EACA,OAAA;EACA,OAAA;EACA,WAAA;EACA,uBAAA;AAAA;AAAA,UAIe,oBAAA;EACf,IAAA;EACA,GAAA;EACA,QAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;EACA,QAAA;AAAA;AAAA,UAIe,oBAAA;EACf,GAAA;EACA,IAAA;EACA,GAAA;AAAA;AAAA,UAIe,sBAAA;EACf,MAAA;EACA,KAAA;EACA,SAAA,GAAY,OAAO,CAAC,gBAAA;AAAA;AAAA,UAIL,sBAAA;EACf,KAAA;EACA,MAAA;EACA,MAAA;EACA,SAAA,GAAY,OAAO,CAAC,gBAAA;AAAA;AAAA,UAIL,yBAAA;EACf,OAAA;EACA,4BAAA;EACA,WAAA;EACA,eAAA;EACA,SAAA;EACA,SAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA;EACA,uBAAA;EACA,OAAA;AAAA;AAAA,UAIe,sBAAA;EACf,GAAA;EACA,IAAA;EACA,EAAA;EACA,KAAA;EACA,SAAA;AAAA;AAAA,UAIe,yBAAA;EACf,cAAc;AAAA;AAAA,UAIC,yBAAA;EACf,KAAA;EACA,OAAA;EACA,SAAA,GAAY,OAAO,CAAC,gBAAA;AAAA;AAAA,UAIL,2BAAA;EACf,IAAA;EACA,GAAA;EACA,UAAA;EACA,SAAA;EACA,MAAA;EACA,UAAA;EACA,GAAA;AAAA;AAAA,UAUe,qBAAA;EACf,IAAA;EACA,OAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;EACA,iBAAA;EACA,YAAA;EACA,SAAA;EACA,cAAA;EACA,WAAA;EACA,SAAA;EACA,eAAA;EACA,GAAA;EACA,SAAA;EACA,QAAA;EACA,gBAAA;EACA,YAAA;EACA,YAAA;EACA,iBAAA;EACA,gBAAA;EACA,SAAA;EACA,UAAA;EACA,sBAAA;EACA,YAAA;EACA,YAAA;EACA,WAAA;EACA,qBAAA;EACA,QAAA;EACA,gBAAA;EACA,mBAAA;EACA,gBAAA;EACA,SAAA;EACA,aAAA;EACA,SAAA;EACA,aAAA;EACA,oBAAA;EACA,gBAAA;EACA,gBAAA;EACA,sBAAA;EACA,aAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,QAAA;EACA,oBAAA;EACA,oBAAA;EACA,WAAA,GAAc,qBAAA;EACd,UAAA,GAAa,oBAAA;EACb,SAAA;EACA,SAAA;EACA,UAAA,GAAa,oBAAA;EACb,OAAA,GAAU,sBAAA;EACV,YAAA,GAAe,sBAAA;EACf,gBAAA,GAAmB,yBAAA;EACnB,OAAA,GAAU,sBAAA;EACV,mBAAA,GAAsB,yBAAA;EACtB,mBAAA,GAAsB,yBAAA;EACtB,eAAA,GAAkB,yBAAA;EAClB,iBAAA,GAAoB,2BAAA;EACpB,KAAA;AAAA;AAAA,cAKW,cAAA,EAAgB,gBAAA,CAC3B,2BAAA,EACA,YAAA,EACA,qBAAA;;;UC1Me,sBAAA;EACf,IAAA,YAAgB,gBAAA;EAChB,KAAA,YAAiB,gBAAA;EACjB,GAAA,YAAe,gBAAA;EACf,MAAA,YAAkB,gBAAA;EAClB,MAAA,YAAkB,gBAAA;EAClB,MAAA,YAAkB,gBAAA;AAAA;AAAA,UAGH,oBAAA;EACf,SAAA;EACA,WAAA;EACA,aAAA;EACA,WAAA;EACA,MAAA;AAAA;AAAA,UAGe,4BAAA;EACf,OAAA;EACA,OAAA;EACA,SAAA;AAAA;AAAA,UAGe,kBAAA;EAEf,IAAA;EAEA,QAAA;EAEA,WAAA,GAAc,sBAAA;EAEd,SAAA,GAAY,oBAAA;EAEZ,eAAA,GAAkB,4BAAA;AAAA;;;UCrCH,6BAAA;EAEf,IAAI;AAAA;AAAA,UAGW,sBAAA;EAEf,EAAA;EAEA,IAAA;EAEA,aAAA;EAEA,GAAA;EAEA,cAAA;EAEA,cAAA;EAEA,gBAAA;EAEA,gBAAA;EAEA,KAAA;EAEA,OAAA;EAEA,SAAA;AAAA;AAAA,UAGe,wBAAA;EAEf,MAAA;EAEA,cAAA;EAEA,kBAAA;EAEA,iBAAA;EAEA,aAAA;EAEA,iBAAA;EAEA,aAAA,GAAgB,6BAAA;EAEhB,gBAAA,GAAmB,sBAAsB;EAEzC,QAAA;EAEA,cAAA;EAEA,oBAAA;EAEA,wBAAA;EAEA,kBAAA;EAEA,mBAAA;AAAA;AAAA,UAGe,iBAAA;EAEf,IAAA;EAEA,YAAA;EAEA,UAAA;EAEA,kBAAA;EAEA,iBAAA;EAEA,aAAA;EAEA,iBAAA;EAEA,UAAA;EAEA,cAAA;EAEA,sBAAA;EAEA,cAAA;EAEA,YAAA;EAEA,gBAAA;EAEA,WAAA;EAEA,YAAA;EAEA,iBAAA,GAAoB,wBAAwB;AAAA;;;UC7F7B,mBAAA;EAEf,IAAA;EAEA,UAAA;EAEA,mBAAA;EAEA,QAAA;EAEA,QAAA;EAEA,IAAA;EAEA,MAAA;EAEA,IAAA;EAEA,KAAA;EAEA,QAAA;EAEA,aAAA;EAEA,WAAA;EAEA,YAAA;EAEA,aAAA;EAEA,mBAAA;EAEA,YAAA;EAEA,cAAA;EAEA,kBAAA;EAEA,KAAA;EAEA,UAAA;EAEA,QAAA;EAEA,WAAA;EAEA,QAAA;EAEA,YAAA;EAEA,aAAA;EAEA,aAAA;EAEA,MAAA;EAEA,MAAA;EAEA,MAAA;EAEA,QAAA;AAAA;AAAA,UAGe,qBAAA;EAEf,KAAK;AAAA;AAAA,UAGU,qBAAA;EAEf,IAAA;EAEA,IAAI;AAAA;AAAA,UAGW,eAAA;EAEf,KAAA,GAAQ,mBAAA;EAER,OAAA,GAAU,qBAAA;EAEV,cAAA,GAAiB,qBAAA;EAEjB,WAAA,GAAc,UAAA;EAEd,kBAAA,GAAqB,oBAAA;EAErB,mBAAA,GAAsB,oBAAA;AAAA;AAAA,UAIP,UAAA;EAEf,CAAA;EAEA,CAAA;EAEA,KAAA,GAAQ,eAAA;EAER,GAAA,GAAM,aAAA;EAEN,UAAA,GAAa,oBAAA;EAEb,GAAA,GAAM,aAAA;AAAA;AAAA,UAGS,eAAA;EAEf,CAAC;AAAA;AAAA,UAGc,aAAA;EAEf,EAAE;AAAA;AAAA,UAGa,oBAAA;EAEf,CAAA;EAEA,EAAE;AAAA;AAAA,UAGa,aAAA;EAEf,CAAA;EAEA,EAAA;EAEA,CAAA;AAAA;AAAA,UAKe,qBAAA;EAEf,CAAA;EAEA,CAAC;AAAA;AAAA,UAGc,oBAAA;EAEf,OAAA,GAAU,qBAAqB;AAAA;;;UC7IhB,yBAAA;EAEf,UAAA;EAEA,OAAA;EAEA,WAAA;EAEA,aAAA;AAAA;AAAA,UAGe,oBAAA;EAEf,GAAA;EAEA,UAAA;EAEA,UAAA;EAEA,UAAA;EAEA,WAAA;EAEA,cAAA;EAEA,QAAA;EAEA,MAAA;EAEA,QAAA;EAEA,QAAA;EAEA,IAAA;EAEA,SAAA;EAEA,IAAA;EAEA,UAAA,GAAa,gBAAgB;AAAA;AAAA,UAGd,qBAAA;EAEf,UAAA,GAAa,gBAAgB;EAE7B,QAAA;EAEA,YAAA;EAEA,UAAA;EAEA,SAAA;EAEA,GAAA;EAEA,KAAA;EAEA,KAAA;EAEA,SAAA;EAEA,MAAA;EAEA,OAAA;EAEA,SAAA;EAEA,aAAA;EAEA,SAAA;EAEA,QAAA;EAEA,QAAA;EAEA,SAAA;AAAA;AAAA,UAGe,gBAAA;EAEf,IAAA;EAEA,QAAQ;AAAA;AAAA,UAGO,gBAAA;EAEf,IAAA;EAEA,OAAA;EAEA,YAAA;EAEA,WAAA;EAEA,YAAA;EAEA,YAAA;EAEA,eAAA;EAEA,MAAA;EAEA,OAAA;EAEA,SAAA;EAEA,aAAA;AAAA;AAAA,UAGe,iBAAA;EAEf,EAAA;EAEA,IAAA;EAEA,IAAA;EAEA,aAAA;EAEA,gBAAA;EAEA,iBAAA;EAEA,QAAA;EAEA,YAAA;EAEA,WAAA;EAEA,WAAA;EAEA,QAAA;EAEA,SAAA;EAEA,GAAA;EAEA,OAAA;EAEA,qBAAA;EAEA,kBAAA;EAEA,cAAA;EAEA,IAAA,GAAO,yBAAA;EAEP,KAAA,GAAQ,oBAAA;EAER,MAAA,GAAS,qBAAA;EAET,UAAA,GAAa,gBAAA;AAAA;;;UCzJE,aAAA;EAEf,EAAA;EAEA,SAAA;EAEA,SAAA;EAEA,cAAA;EAEA,QAAA;EAEA,kBAAA;EAEA,oBAAA;AAAA;AAAA,UAGe,kBAAA;EAEf,eAAA;EAEA,WAAA;EAEA,eAAA;EAEA,YAAA;EAEA,mBAAA;AAAA;AAAA,UAGe,UAAA;EAEf,EAAA;EAEA,IAAA;EAEA,WAAA;EAEA,QAAA;EAEA,gCAAA;EAEA,MAAA;EAEA,mBAAA;EAEA,OAAA;EAEA,WAAA;EAEA,eAAA;EAEA,cAAA;EAEA,oBAAA;EAEA,WAAA,GAAc,kBAAkB;AAAA;AAAA,UAGjB,cAAA;EAEf,mBAAA;EAEA,OAAA,EAAS,aAAA;EAET,IAAA,EAAM,UAAU;AAAA;AAAA,UAGD,oBAAA;EAEf,UAAA;EAEA,KAAA;EAEA,KAAA;EAEA,WAAA;AAAA;AAAA,UAGe,wBAAA;EAEf,EAAA;EAEA,UAAA;EAEA,KAAA,EAAO,oBAAoB;AAAA;AAAA,UAGZ,oBAAA;EAEf,EAAA;EAEA,CAAA;EAEA,YAAA;EAEA,SAAA,EAAW,wBAAwB;AAAA;AAAA,UAGpB,0BAAA;EAEf,KAAA;EAEA,WAAA;EAEA,KAAA;EAEA,YAAA;AAAA;;;UC3Ge,SAAA;EACf,QAAA;EACA,IAAA;EACA,IAAA,EAAM,UAAU;EAChB,KAAA;EACA,MAAA;AAAA;;;iBCXc,cAAA,CAAe,GAAW;AAAA,iBAe1B,kBAAA,CAAmB,IAAU,EAAJ,IAAI;;;iBCgC7B,eAAA,CACd,OAAA,EAAS,eAAA,EACT,SAAA,GAAW,YAAA,IACX,UAAA,YACC,QAAA;;;cCHU,YAAA;EAAA,QACH,cAAA;EAED,YAAA,CAAa,KAAA;EAQb,aAAA,CAAc,KAAA;EAQd,SAAA;EAQA,gBAAA;EAQA,QAAA,CAAS,KAAA;EAQT,mBAAA;EAQA,QAAA,CAAS,KAAA;EAQT,UAAA,CAAW,KAAA;EAQX,WAAA,CAAY,KAAA;EAQZ,aAAA;EASA,YAAA,CAAa,SAAA;EAMb,aAAA,CAAc,KAAA;EAQd,uBAAA,CAAwB,KAAA;EASxB,oBAAA,CAAqB,KAAA;EASrB,QAAA,CAAS,KAAA;EAQT,eAAA,CAAgB,KAAA;EAQhB,YAAA;EAQA,cAAA,CAAe,KAAA;EAQf,kBAAA;EASA,cAAA,CAAe,KAAA;EAQf,QAAA;EAQA,aAAA,CAAc,KAAA;EAQd,WAAA;EAQA,SAAA;AAAA;;;cCvNI,gBAAA,YAA4B,YAAA;EACvC,aAAA,EAAa,aAAA;EACb,MAAA,EAAM,MAAA;EACN,KAAA,EAAK,KAAA,CAAA,SAAA;EACL,MAAA,EAAM,eAAA;EACN,YAAA,EAAY,YAAA;EACZ,YAAA,EAAY,aAAA;EACZ,cAAA,EAAgB,mBAAA;EAIT,eAAA,CAAgB,IAAA,EAAM,gBAAA,EAAkB,MAAA,UAAgB,KAAA;EAMxD,QAAA,CAAS,KAAA,EAAO,UAAA,EAAY,KAAA;EAQ5B,WAAA,CAAY,IAAA,EAAM,UAAA;AAAA;AAAA,cAad,eAAA,YAA2B,WAAA;EAAA,QAO5B,IAAA;EAAA,SALM,aAAA;EAET,YAAA,GAAe,iBAAA;cAGZ,IAAA,EAAM,YAAA,EACd,aAAA;EAKK,mBAAA,CAAoB,GAAA;EAkBpB,mBAAA,CAAoB,MAAA,UAAgB,GAAA;EAmBpC,sBAAA,CACL,MAAA,UACA,YAAA,WACC,KAAA;IAAQ,GAAA;IAAa,MAAA;EAAA;EAkBjB,OAAA,CAAQ,IAAA,WAAe,OAAA;EAIvB,MAAA,CAAO,IAAA,WAAe,UAAA;EAStB,YAAA,CAAa,UAAA,WAAqB,YAAA;AAAA"}
package/dist/index.mjs CHANGED
@@ -1,20 +1,9 @@
1
- import { a as SharedStrings, i as worksheetDesc, n as vmlNotesDesc, o as sharedStringsDesc, r as stringifyWorksheet, t as commentsDesc } from "./comments-CIu-wLTT.mjs";
2
- import { C as stylesDesc, S as Styles, b as chartsheetDesc, c as workbookDesc, d as tableDesc, f as pivotCacheDefDesc, h as PivotFilterType, l as TableType, m as pivotTableDesc, n as XlsxWriteContext, o as buildExternalReferencesXml, p as pivotCacheRecordsDesc, s as buildTablePartsXml, t as XlsxReadContext, u as TotalsRowFunction, v as externalLinkDesc, x as calcChainDesc, y as drawingDesc } from "./context-Btk-2AKp.mjs";
1
+ import { a as SharedStrings, i as worksheetDesc, n as vmlNotesDesc, o as sharedStringsDesc, r as stringifyWorksheet, t as commentsDesc } from "./comments-BTMAAMY4.mjs";
2
+ import { C as Styles, S as calcChainDesc, b as drawingDesc, c as buildTablePartsXml, d as TotalsRowFunction, f as tableDesc, g as PivotFilterType, h as pivotTableDesc, l as workbookDesc, m as pivotCacheRecordsDesc, n as XlsxWriteContext, o as Media, p as pivotCacheDefDesc, s as buildExternalReferencesXml, t as XlsxReadContext, u as TableType, w as stylesDesc, x as chartsheetDesc, y as externalLinkDesc } from "./context-D_9UIEwJ.mjs";
3
3
  import { parseWorkbook, parseXlsx } from "./parse.mjs";
4
4
  import { patchWorkbook } from "./patch.mjs";
5
- import { i as compileWorkbook, n as generateWorkbookStream, r as generateWorkbookSync, t as generateWorkbook } from "./generate-CNllwVqo.mjs";
5
+ import { i as compileWorkbook, n as generateWorkbookStream, r as generateWorkbookSync, t as generateWorkbook } from "./generate-Dsk7XzIC.mjs";
6
6
  import { createThemeXml } from "@office-open/core/theme";
7
- //#region src/shared/media.ts
8
- var Media = class {
9
- map = /* @__PURE__ */ new Map();
10
- addImage(key, data) {
11
- this.map.set(key, data);
12
- }
13
- get array() {
14
- return [...this.map.values()];
15
- }
16
- };
17
- //#endregion
18
7
  //#region src/util/index.ts
19
8
  /**
20
9
  * Convert a 1-based column number to Excel column letter(s).
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/shared/media.ts","../src/util/index.ts"],"sourcesContent":["/**\n * Media collection for XLSX files — stores image binary data.\n *\n * @module\n */\n\nexport interface MediaData {\n fileName: string;\n type: string;\n data: Uint8Array;\n width: number;\n height: number;\n}\n\nexport class Media {\n private map = new Map<string, MediaData>();\n\n public addImage(key: string, data: MediaData): void {\n this.map.set(key, data);\n }\n\n public get array(): MediaData[] {\n return [...this.map.values()];\n }\n}\n","/**\n * Convert a 1-based column number to Excel column letter(s).\n * 1 → \"A\", 26 → \"Z\", 27 → \"AA\", 28 → \"AB\"\n */\nexport function columnToLetter(col: number): string {\n let result = \"\";\n let n = col;\n while (n > 0) {\n const remainder = (n - 1) % 26;\n result = String.fromCharCode(65 + remainder) + result;\n n = Math.floor((n - 1) / 26);\n }\n return result;\n}\n\n/**\n * Convert a JavaScript Date to an Excel serial number.\n * Excel epoch: January 1, 1900 = 1 (with the 1900 leap year bug).\n */\nexport function dateToSerialNumber(date: Date): number {\n // Excel treats 1900 as a leap year (bug inherited from Lotus 1-2-3).\n // The epoch is effectively December 30, 1899 = 0.\n const epoch = new Date(1899, 11, 30);\n const msPerDay = 86400000;\n const diff = date.getTime() - epoch.getTime();\n return diff / msPerDay;\n}\n"],"mappings":";;;;;;;AAcA,IAAa,QAAb,MAAmB;CACjB,sBAAc,IAAI,IAAuB;CAEzC,SAAgB,KAAa,MAAuB;EAClD,KAAK,IAAI,IAAI,KAAK,IAAI;CACxB;CAEA,IAAW,QAAqB;EAC9B,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC;CAC9B;AACF;;;;;;;ACpBA,SAAgB,eAAe,KAAqB;CAClD,IAAI,SAAS;CACb,IAAI,IAAI;CACR,OAAO,IAAI,GAAG;EACZ,MAAM,aAAa,IAAI,KAAK;EAC5B,SAAS,OAAO,aAAa,KAAK,SAAS,IAAI;EAC/C,IAAI,KAAK,OAAO,IAAI,KAAK,EAAE;CAC7B;CACA,OAAO;AACT;;;;;AAMA,SAAgB,mBAAmB,MAAoB;CAGrD,MAAM,QAAQ,IAAI,KAAK,MAAM,IAAI,EAAE;CAGnC,QADa,KAAK,QAAQ,IAAI,MAAM,QAAQ,KAC9B;AAChB"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/util/index.ts"],"sourcesContent":["/**\n * Convert a 1-based column number to Excel column letter(s).\n * 1 → \"A\", 26 → \"Z\", 27 → \"AA\", 28 → \"AB\"\n */\nexport function columnToLetter(col: number): string {\n let result = \"\";\n let n = col;\n while (n > 0) {\n const remainder = (n - 1) % 26;\n result = String.fromCharCode(65 + remainder) + result;\n n = Math.floor((n - 1) / 26);\n }\n return result;\n}\n\n/**\n * Convert a JavaScript Date to an Excel serial number.\n * Excel epoch: January 1, 1900 = 1 (with the 1900 leap year bug).\n */\nexport function dateToSerialNumber(date: Date): number {\n // Excel treats 1900 as a leap year (bug inherited from Lotus 1-2-3).\n // The epoch is effectively December 30, 1899 = 0.\n const epoch = new Date(1899, 11, 30);\n const msPerDay = 86400000;\n const diff = date.getTime() - epoch.getTime();\n return diff / msPerDay;\n}\n"],"mappings":";;;;;;;;;;;AAIA,SAAgB,eAAe,KAAqB;CAClD,IAAI,SAAS;CACb,IAAI,IAAI;CACR,OAAO,IAAI,GAAG;EACZ,MAAM,aAAa,IAAI,KAAK;EAC5B,SAAS,OAAO,aAAa,KAAK,SAAS,IAAI;EAC/C,IAAI,KAAK,OAAO,IAAI,KAAK,EAAE;CAC7B;CACA,OAAO;AACT;;;;;AAMA,SAAgB,mBAAmB,MAAoB;CAGrD,MAAM,QAAQ,IAAI,KAAK,MAAM,IAAI,EAAE;CAGnC,QADa,KAAK,QAAQ,IAAI,MAAM,QAAQ,KAC9B;AAChB"}
package/dist/parse.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as WorkbookOptions } from "./file-ATgsKghI.mjs";
1
+ import { t as WorkbookOptions } from "./file-Clpwutq2.mjs";
2
2
  import { Element } from "@office-open/xml";
3
3
  import { DataType, ParsedArchive, parseArchive } from "@office-open/core";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.mts","names":[],"sources":["../src/parse.ts"],"mappings":";;;;;UA6CiB,YAAA;EACf,UAAA;EACA,MAAA;EACA,KAAA;EACA,QAAA;AAAA;AAAA,UAGe,YAAA;EACf,GAAA,EAAK,aAAA;EAEL,QAAA,GAAW,OAAA;EAEX,UAAA;EAEA,MAAA,GAAS,OAAA;EAET,aAAA,GAAgB,OAAA;EAChB,QAAA,EAAU,YAAA;EAEV,SAAA;EAEA,QAAA;EAEA,WAAA;AAAA;AAAA,iBAwBc,SAAA,CAAU,IAAA,EAAM,QAAA,GAAW,YAAY;AAAA,iBA2FvC,aAAA,CAAc,IAAA,EAAM,QAAA,GAAW,eAAe"}
1
+ {"version":3,"file":"parse.d.mts","names":[],"sources":["../src/parse.ts"],"mappings":";;;;;UAuDiB,YAAA;EACf,UAAA;EACA,MAAA;EACA,KAAA;EACA,QAAA;AAAA;AAAA,UAGe,YAAA;EACf,GAAA,EAAK,aAAA;EAEL,QAAA,GAAW,OAAA;EAEX,UAAA;EAEA,MAAA,GAAS,OAAA;EAET,aAAA,GAAgB,OAAA;EAChB,QAAA,EAAU,YAAA;EAEV,SAAA;EAEA,QAAA;EAEA,WAAA;AAAA;AAAA,iBAwBc,SAAA,CAAU,IAAA,EAAM,QAAA,GAAW,YAAY;AAAA,iBAsFvC,aAAA,CAAc,IAAA,EAAM,QAAA,GAAW,eAAe"}
package/dist/parse.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { i as worksheetDesc, o as sharedStringsDesc, t as commentsDesc } from "./comments-CIu-wLTT.mjs";
2
- import { C as stylesDesc, a as usersDesc, b as chartsheetDesc, c as workbookDesc, d as tableDesc, f as pivotCacheDefDesc, i as revisionLogDesc, m as pivotTableDesc, p as pivotCacheRecordsDesc, r as revisionHeadersDesc, t as XlsxReadContext, v as externalLinkDesc, x as calcChainDesc, y as drawingDesc } from "./context-Btk-2AKp.mjs";
1
+ import { i as worksheetDesc, o as sharedStringsDesc, t as commentsDesc } from "./comments-BTMAAMY4.mjs";
2
+ import { S as calcChainDesc, a as usersDesc, b as drawingDesc, f as tableDesc, h as pivotTableDesc, i as revisionLogDesc, l as workbookDesc, m as pivotCacheRecordsDesc, p as pivotCacheDefDesc, r as revisionHeadersDesc, t as XlsxReadContext, w as stylesDesc, x as chartsheetDesc, y as externalLinkDesc } from "./context-D_9UIEwJ.mjs";
3
3
  import { attr } from "@office-open/xml";
4
4
  import { appPropertiesDesc, customPropertiesDesc, parseArchive, parseCorePropsElement, toUint8Array } from "@office-open/core";
5
5
  //#region src/parse.ts
@@ -79,10 +79,7 @@ function parseXlsx(data) {
79
79
  function extractStringsFromEntries(parsed) {
80
80
  const strings = [];
81
81
  for (const entry of parsed.entries) if (typeof entry === "string") strings.push(entry);
82
- else {
83
- const runs = entry.runs;
84
- if (runs && runs.length > 0) strings.push(runs.map((r) => r.text).join(""));
85
- }
82
+ else if (entry.runs && entry.runs.length > 0) strings.push(entry.runs.map((r) => r.text).join(""));
86
83
  return strings;
87
84
  }
88
85
  /**
@@ -133,14 +130,12 @@ function parseWorkbook(data) {
133
130
  if (parsedStyles.colors) opts.colors = parsedStyles.colors;
134
131
  if (parsedStyles.customCellStyles) opts.cellStyles = parsedStyles.customCellStyles;
135
132
  if (parsedStyles.styleExtensions) opts.styleExtensions = parsedStyles.styleExtensions;
136
- const tableStylesInfo = parsedStyles.tableStylesInfo;
137
- if (tableStylesInfo?.tableStyles) opts.tableStyles = tableStylesInfo.tableStyles;
133
+ if (parsedStyles.tableStylesInfo?.tableStyles) opts.tableStyles = parsedStyles.tableStylesInfo.tableStyles;
138
134
  }
139
135
  let sheetNames = [];
140
136
  if (xlsx.workbook) {
141
137
  const wbData = workbookDesc.parse(xlsx.workbook, readContext);
142
- const sheets = wbData.sheets;
143
- if (sheets) sheetNames = sheets.map((s) => s.name);
138
+ if (wbData.sheets) sheetNames = wbData.sheets.map((s) => s.name);
144
139
  if (wbData.protection) opts.workbookProtection = wbData.protection;
145
140
  if (wbData.bookView) opts.bookView = wbData.bookView;
146
141
  if (wbData.calcPr) opts.calcPr = wbData.calcPr;
@@ -202,11 +197,10 @@ function parseWorkbook(data) {
202
197
  if (pivotTables.length > 0) wsOpts.pivotTables = pivotTables;
203
198
  }
204
199
  const hyperlinks = wsOpts.hyperlinks;
205
- if (hyperlinks) for (const hl of hyperlinks) {
206
- const target = hl.target;
207
- if (target?.type === "external" && typeof target.url === "string") {
208
- const resolved = readContext.resolveWorksheetRel(wsPath, target.url);
209
- if (resolved) target.url = resolved;
200
+ if (hyperlinks) {
201
+ for (const hl of hyperlinks) if (hl.target.type === "external") {
202
+ const resolved = readContext.resolveWorksheetRel(wsPath, hl.target.url);
203
+ if (resolved) hl.target.url = resolved;
210
204
  }
211
205
  }
212
206
  worksheets.push(wsOpts);
@@ -258,8 +252,7 @@ function parseWorkbook(data) {
258
252
  const elEl = xlsx.doc.get(elPath);
259
253
  if (!elEl) continue;
260
254
  const elData = externalLinkDesc.parse(elEl, readContext);
261
- const elData2 = elData;
262
- if (elData2.externalBook) {
255
+ if (elData.externalBook) {
263
256
  const relsPath = externalLinkRelsPath(elPath);
264
257
  const relsEl = xlsx.doc.get(relsPath);
265
258
  if (relsEl) for (const child of relsEl.elements ?? []) {
@@ -267,7 +260,7 @@ function parseWorkbook(data) {
267
260
  if (!(attr(child, "Type") ?? "").includes("/externalLinkPath")) continue;
268
261
  const target = attr(child, "Target");
269
262
  if (target) {
270
- elData2.externalBook.target = target;
263
+ elData.externalBook.target = target;
271
264
  break;
272
265
  }
273
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse.mjs","names":[],"sources":["../src/parse.ts"],"sourcesContent":["/**\n * XLSX parsing — parse .xlsx files into structured data.\n *\n * @module\n */\nimport {\n appPropertiesDesc,\n customPropertiesDesc,\n parseArchive,\n parseCorePropsElement,\n} from \"@office-open/core\";\nimport type { ParsedArchive } from \"@office-open/core\";\nimport { toUint8Array } from \"@office-open/core\";\nimport type { DataType } from \"@office-open/core\";\nimport type { ReadContext } from \"@office-open/core/descriptor\";\nimport type { Element } from \"@office-open/xml\";\nimport { attr } from \"@office-open/xml\";\nimport { calcChainDesc } from \"@parts/calc-chain\";\nimport { chartsheetDesc } from \"@parts/chartsheet\";\nimport type { ChartsheetOptions } from \"@parts/chartsheet\";\nimport { commentsDesc } from \"@parts/comments\";\nimport { drawingDesc } from \"@parts/drawing\";\nimport { externalLinkDesc } from \"@parts/external-link\";\nimport type { SharedWorkbookOptions, WorkbookOptions } from \"@parts/file\";\nimport { pivotCacheDefDesc, pivotCacheRecordsDesc } from \"@parts/pivot-cache\";\nimport { pivotTableDesc } from \"@parts/pivot-table\";\nimport {\n revisionHeadersDesc,\n revisionLogDesc,\n usersDesc,\n type RevisionLogOptions,\n} from \"@parts/revision-log\";\nimport { sharedStringsDesc } from \"@parts/shared-strings\";\nimport { stylesDesc } from \"@parts/styles\";\nimport { tableDesc } from \"@parts/table\";\nimport { workbookDesc } from \"@parts/workbook\";\nimport { worksheetDesc } from \"@parts/worksheet\";\nimport type { WorksheetOptions } from \"@parts/worksheet\";\n\nimport { XlsxReadContext } from \"./context\";\n\nexport { parseArchive };\n\n// ── Low-level parse result ──\n\nexport interface XlsxPartRefs {\n worksheets: string[];\n charts: string[];\n media: string[];\n drawings: string[];\n}\n\nexport interface XlsxDocument {\n doc: ParsedArchive;\n /** xl/workbook.xml root element */\n workbook?: Element;\n /** Worksheet paths (xl/worksheets/sheet{n}.xml) */\n worksheets: string[];\n /** xl/styles.xml root element */\n styles?: Element;\n /** xl/sharedStrings.xml root element */\n sharedStrings?: Element;\n partRefs: XlsxPartRefs;\n /** docProps/core.xml path */\n coreProps?: string;\n /** docProps/app.xml path */\n appProps?: string;\n /** docProps/custom.xml path */\n customProps?: string;\n}\n\nfunction sortByNumber(paths: string[]): string[] {\n return paths.sort((a, b) => {\n const numA = parseInt(a.match(/(\\d+)/)?.[1] ?? \"0\", 10);\n const numB = parseInt(b.match(/(\\d+)/)?.[1] ?? \"0\", 10);\n return numA - numB;\n });\n}\n\n/** Derive the sibling rels path for an external link part.\n * \"xl/externalLinks/externalLink1.xml\" → \"xl/externalLinks/_rels/externalLink1.xml.rels\"\n */\nfunction externalLinkRelsPath(elPath: string): string {\n const idx = elPath.lastIndexOf(\"/\");\n const dir = elPath.substring(0, idx);\n const file = elPath.substring(idx + 1);\n return `${dir}/_rels/${file}.rels`;\n}\n\n/**\n * Parse raw .xlsx data into a low-level XlsxDocument.\n */\nexport function parseXlsx(data: DataType): XlsxDocument {\n const uint8 = toUint8Array(data);\n const doc = parseArchive(uint8);\n\n const workbook = doc.get(\"xl/workbook.xml\");\n const styles = doc.get(\"xl/styles.xml\");\n const sharedStrings = doc.get(\"xl/sharedStrings.xml\");\n\n // Resolve worksheet paths from workbook rels\n const worksheets: string[] = [];\n const charts: string[] = [];\n const drawings: string[] = [];\n const media: string[] = [];\n\n const wbRels = doc.get(\"xl/_rels/workbook.xml.rels\");\n if (wbRels) {\n for (const child of wbRels.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!target) continue;\n\n if (type.includes(\"/worksheet\")) {\n worksheets.push(target.startsWith(\"/\") ? target.slice(1) : `xl/${target}`);\n }\n }\n }\n sortByNumber(worksheets);\n\n // Scan for drawings, charts, media\n drawings.push(...doc.keys(\"xl/drawings/\").filter((k) => k.endsWith(\".xml\")));\n charts.push(...doc.keys(\"xl/charts/\").filter((k) => k.endsWith(\".xml\")));\n media.push(...doc.keys(\"xl/media/\"));\n sortByNumber(drawings);\n sortByNumber(charts);\n\n // Root rels → core/app props\n let coreProps: string | undefined;\n let appProps: string | undefined;\n let customProps: string | undefined;\n const rootRels = doc.get(\"_rels/.rels\");\n if (rootRels) {\n for (const child of rootRels.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (type.includes(\"/core-properties\")) coreProps = target;\n else if (type.includes(\"/extended-properties\")) appProps = target;\n else if (type.includes(\"/custom-properties\")) customProps = target;\n }\n }\n\n return {\n doc,\n workbook,\n worksheets,\n styles,\n sharedStrings,\n partRefs: { worksheets, charts, media, drawings },\n coreProps,\n appProps,\n customProps,\n };\n}\n\n// ── Shared strings helper ──\n\n/** Extract plain string array from sharedStringsDesc.parse() result. */\nfunction extractStringsFromEntries(parsed: {\n entries: (string | Record<string, unknown>)[];\n}): string[] {\n const strings: string[] = [];\n for (const entry of parsed.entries) {\n if (typeof entry === \"string\") {\n strings.push(entry);\n } else {\n // Rich text: concatenate run texts\n const runs = entry.runs as { text: string }[] | undefined;\n if (runs && runs.length > 0) {\n strings.push(runs.map((r) => r.text).join(\"\"));\n }\n }\n }\n return strings;\n}\n\n/**\n * Parse a .xlsx file and convert it into WorkbookOptions.\n *\n * The returned options can be passed to `new Workbook(parsed)`.\n */\nexport function parseWorkbook(data: DataType): WorkbookOptions {\n const xlsx = parseXlsx(data);\n\n const opts: Record<string, unknown> = {};\n\n // Core properties\n if (xlsx.coreProps) {\n const corePropsEl = xlsx.doc.get(xlsx.coreProps);\n if (corePropsEl) {\n const cp = parseCorePropsElement(corePropsEl);\n if (cp.title) opts.title = cp.title;\n if (cp.subject) opts.subject = cp.subject;\n if (cp.creator) opts.creator = cp.creator;\n if (cp.keywords) opts.keywords = cp.keywords;\n if (cp.description) opts.description = cp.description;\n if (cp.lastModifiedBy) opts.lastModifiedBy = cp.lastModifiedBy;\n if (cp.revision !== undefined) opts.revision = cp.revision;\n if (cp.lastPrinted) opts.lastPrinted = cp.lastPrinted;\n if (cp.created) opts.created = cp.created;\n if (cp.modified) opts.modified = cp.modified;\n }\n }\n\n // Extended (app) properties\n if (xlsx.appProps) {\n const appPropsEl = xlsx.doc.get(xlsx.appProps);\n if (appPropsEl) {\n const ap = appPropertiesDesc.parse(appPropsEl, {} as ReadContext);\n if (ap && Object.keys(ap).length > 0) opts.appProperties = ap;\n }\n }\n\n // Custom properties\n if (xlsx.customProps) {\n const customPropsEl = xlsx.doc.get(xlsx.customProps);\n if (customPropsEl) {\n const cp = customPropertiesDesc.parse(customPropsEl, {} as ReadContext);\n if (cp.properties?.length) opts.customProperties = cp.properties;\n }\n }\n\n // Shared strings — use descriptor.parse() for richer data, then extract strings for lookup\n let strings: string[] = [];\n if (xlsx.sharedStrings) {\n const parsed = sharedStringsDesc.parse(xlsx.sharedStrings, {} as never) as {\n entries: (string | Record<string, unknown>)[];\n };\n strings = extractStringsFromEntries(parsed);\n }\n\n // Create read context for descriptor pipeline\n const readContext = new XlsxReadContext(xlsx, strings);\n\n // Parse styles (fonts, fills, borders, cellXfs)\n if (xlsx.styles) {\n const parsedStyles = stylesDesc.parse(xlsx.styles, readContext) as unknown as Record<\n string,\n unknown\n >;\n readContext.parsedStyles = parsedStyles;\n\n // Expose styles sections onto the returned opts for round-trip. compiler.ts\n // re-emits dxfs from options; colors/tableStyles/cellStyles/styleExtensions\n // are surfaced here even though the compiler currently only consumes dxfs,\n // so callers retain the parsed data and the fields stay documented.\n if (parsedStyles.dxfs) opts.dxfs = parsedStyles.dxfs;\n if (parsedStyles.colors) opts.colors = parsedStyles.colors;\n if (parsedStyles.customCellStyles) opts.cellStyles = parsedStyles.customCellStyles;\n if (parsedStyles.styleExtensions) opts.styleExtensions = parsedStyles.styleExtensions;\n const tableStylesInfo = parsedStyles.tableStylesInfo as { tableStyles?: unknown[] } | undefined;\n if (tableStylesInfo?.tableStyles) opts.tableStyles = tableStylesInfo.tableStyles;\n }\n\n // Parse workbook via descriptor for richer data\n let sheetNames: string[] = [];\n if (xlsx.workbook) {\n const wbData = workbookDesc.parse(xlsx.workbook, readContext) as unknown as Record<\n string,\n unknown\n >;\n const sheets = wbData.sheets as\n | { name: string; sheetId: number; rId: string; state?: string }[]\n | undefined;\n if (sheets) sheetNames = sheets.map((s) => s.name);\n\n // Workbook-level properties\n if (wbData.protection) opts.workbookProtection = wbData.protection;\n if (wbData.bookView) opts.bookView = wbData.bookView;\n if (wbData.calcPr) opts.calcPr = wbData.calcPr;\n if (wbData.customViews) opts.customWorkbookViews = wbData.customViews;\n if (wbData.fileRecoveryPr) opts.fileRecoveryPr = wbData.fileRecoveryPr;\n if (wbData.functionGroups) opts.functionGroups = wbData.functionGroups;\n if (wbData.webPublishing) opts.webPublishing = wbData.webPublishing;\n if (wbData.fileSharing) opts.fileSharing = wbData.fileSharing;\n if (wbData.workbookPr) opts.workbookPr = wbData.workbookPr;\n if (wbData.volTypes) opts.volTypes = wbData.volTypes;\n if (wbData.webPublishObjects) opts.webPublishObjects = wbData.webPublishObjects;\n }\n\n // Parse worksheets using descriptor pipeline\n const worksheets: WorksheetOptions[] = [];\n for (let i = 0; i < xlsx.worksheets.length; i++) {\n const wsPath = xlsx.worksheets[i];\n const wsEl = xlsx.doc.get(wsPath);\n if (!wsEl) continue;\n\n const wsOpts = worksheetDesc.parse(wsEl, readContext) as Record<string, unknown>;\n if (sheetNames[i]) wsOpts.name = sheetNames[i];\n\n // ── Resolve sub-parts via worksheet relationships ──\n\n // Comments\n const commentRels = readContext.getWorksheetRelsByType(wsPath, \"/comments\");\n for (const cr of commentRels) {\n const commentEl = xlsx.doc.get(cr.target);\n if (!commentEl) continue;\n const commentData = commentsDesc.parse(commentEl, readContext) as unknown as Record<\n string,\n unknown\n >;\n if (commentData.comments) {\n wsOpts.comments = commentData.comments;\n break; // one comments file per worksheet\n }\n }\n\n // Drawings (images + charts)\n const drawingRels = readContext.getWorksheetRelsByType(wsPath, \"/drawing\");\n for (const dr of drawingRels) {\n const drawingEl = xlsx.doc.get(dr.target);\n if (!drawingEl) continue;\n const drawingData = drawingDesc.parse(drawingEl, readContext);\n if (drawingData.images) wsOpts.images = drawingData.images;\n if (drawingData.charts) wsOpts.charts = drawingData.charts;\n break;\n }\n\n // Tables\n const tableRels = readContext.getWorksheetRelsByType(wsPath, \"/table\");\n if (tableRels.length > 0) {\n const tables: Record<string, unknown>[] = [];\n for (const tr of tableRels) {\n const tableEl = xlsx.doc.get(tr.target);\n if (!tableEl) continue;\n const tableData = tableDesc.parse(tableEl, readContext) as unknown as Record<\n string,\n unknown\n >;\n tables.push(tableData);\n }\n if (tables.length > 0) wsOpts.tables = tables;\n }\n\n // Pivot tables\n const pivotRels = readContext.getWorksheetRelsByType(wsPath, \"/pivotTable\");\n if (pivotRels.length > 0) {\n const pivotTables: Record<string, unknown>[] = [];\n for (const pr of pivotRels) {\n const pivotEl = xlsx.doc.get(pr.target);\n if (!pivotEl) continue;\n const pivotData = pivotTableDesc.parse(pivotEl, readContext) as unknown as Record<\n string,\n unknown\n >;\n pivotTables.push(pivotData);\n }\n if (pivotTables.length > 0) wsOpts.pivotTables = pivotTables;\n }\n\n // Resolve external hyperlink URLs\n const hyperlinks = wsOpts.hyperlinks as Record<string, unknown>[] | undefined;\n if (hyperlinks) {\n for (const hl of hyperlinks) {\n const target = hl.target as Record<string, unknown> | undefined;\n if (target?.type === \"external\" && typeof target.url === \"string\") {\n const resolved = readContext.resolveWorksheetRel(wsPath, target.url);\n if (resolved) target.url = resolved;\n }\n }\n }\n\n worksheets.push(wsOpts as WorksheetOptions);\n }\n\n opts.worksheets = worksheets;\n\n // Chartsheets — parse chartsheet parts\n const chartsheetPaths = xlsx.doc.keys(\"xl/chartsheets/\").filter((k) => k.endsWith(\".xml\"));\n if (chartsheetPaths.length > 0) {\n const chartsheets: ChartsheetOptions[] = [];\n for (let i = 0; i < chartsheetPaths.length; i++) {\n const csEl = xlsx.doc.get(chartsheetPaths[i]);\n if (!csEl) continue;\n const csData = chartsheetDesc.parse(csEl, readContext) as unknown as Record<string, unknown>;\n if (sheetNames[worksheets.length + i]) csData.name = sheetNames[worksheets.length + i];\n chartsheets.push(csData as unknown as ChartsheetOptions);\n }\n if (chartsheets.length > 0) opts.chartsheets = chartsheets;\n }\n\n // Pivot cache definitions and records\n const pivotCacheDefPaths = xlsx.doc\n .keys(\"xl/pivotCache/\")\n .filter((k) => k.includes(\"pivotCacheDefinition\"));\n if (pivotCacheDefPaths.length > 0) {\n const pivotCaches: Record<string, unknown>[] = [];\n for (const pcdPath of pivotCacheDefPaths) {\n const pcdEl = xlsx.doc.get(pcdPath);\n if (!pcdEl) continue;\n const pcdData = pivotCacheDefDesc.parse(pcdEl, readContext) as unknown as Record<\n string,\n unknown\n >;\n pivotCaches.push(pcdData);\n }\n if (pivotCaches.length > 0) opts.pivotCaches = pivotCaches;\n }\n\n const pivotCacheRecPaths = xlsx.doc\n .keys(\"xl/pivotCache/\")\n .filter((k) => k.includes(\"pivotCacheRecords\"));\n if (pivotCacheRecPaths.length > 0) {\n const pivotCacheRecords: Record<string, unknown>[] = [];\n for (const pcrPath of pivotCacheRecPaths) {\n const pcrEl = xlsx.doc.get(pcrPath);\n if (!pcrEl) continue;\n const pcrData = pivotCacheRecordsDesc.parse(pcrEl, readContext) as unknown as Record<\n string,\n unknown\n >;\n pivotCacheRecords.push(pcrData);\n }\n if (pivotCacheRecords.length > 0) opts.pivotCacheRecords = pivotCacheRecords;\n }\n\n // Calculation chain\n const calcChainEl = xlsx.doc.get(\"xl/calcChain.xml\");\n if (calcChainEl) {\n const calcData = calcChainDesc.parse(calcChainEl, readContext) as unknown as Record<\n string,\n unknown\n >;\n if (calcData.cells) opts.calcChain = calcData.cells;\n }\n\n // External links\n const extLinkPaths = xlsx.doc.keys(\"xl/externalLinks/\").filter((k) => k.endsWith(\".xml\"));\n if (extLinkPaths.length > 0) {\n const externalLinks: Record<string, unknown>[] = [];\n for (const elPath of extLinkPaths) {\n const elEl = xlsx.doc.get(elPath);\n if (!elEl) continue;\n const elData = externalLinkDesc.parse(elEl, readContext) as Record<string, unknown>;\n\n // Resolve the external book target from the sibling rels file\n // (xl/externalLinks/_rels/externalLinkN.xml.rels), which compiler.ts writes.\n const elData2 = elData as { externalBook?: { target?: string } };\n if (elData2.externalBook) {\n const relsPath = externalLinkRelsPath(elPath);\n const relsEl = xlsx.doc.get(relsPath);\n if (relsEl) {\n for (const child of relsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n if (!type.includes(\"/externalLinkPath\")) continue;\n const target = attr(child, \"Target\");\n if (target) {\n elData2.externalBook.target = target;\n break;\n }\n }\n }\n }\n\n externalLinks.push(elData);\n }\n if (externalLinks.length > 0) opts.externalLinks = externalLinks;\n }\n\n // Shared-workbook revisions: workbook.xml.rels → revisionHeaders/users;\n // revisionHeaders.xml.rels → per-header revision logs.\n const wbRelsEl2 = xlsx.doc.get(\"xl/_rels/workbook.xml.rels\");\n let revHeadersTarget: string | undefined;\n let usersTarget: string | undefined;\n if (wbRelsEl2) {\n for (const child of wbRelsEl2.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (type.includes(\"/revisionHeaders\")) revHeadersTarget = target;\n else if (type.includes(\"/users\")) usersTarget = target;\n }\n }\n if (revHeadersTarget) {\n const headersPath = revHeadersTarget.startsWith(\"/\")\n ? revHeadersTarget.slice(1)\n : `xl/${revHeadersTarget}`;\n const headersEl = xlsx.doc.get(headersPath);\n if (headersEl) {\n const headers = revisionHeadersDesc.parse(headersEl, readContext);\n const logs: RevisionLogOptions[] = [];\n const slash = headersPath.lastIndexOf(\"/\");\n const revHeadersRelsEl = xlsx.doc.get(\n `${headersPath.slice(0, slash)}/_rels/${headersPath.slice(slash + 1)}.rels`,\n );\n if (revHeadersRelsEl) {\n for (const child of revHeadersRelsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n if (!(attr(child, \"Type\") ?? \"\").includes(\"/revisionLog\")) continue;\n const t = attr(child, \"Target\");\n if (!t) continue;\n const logEl = xlsx.doc.get(t.startsWith(\"/\") ? t.slice(1) : `xl/${t}`);\n if (logEl) logs.push(revisionLogDesc.parse(logEl, readContext));\n }\n }\n const revisionLog: SharedWorkbookOptions = { headers, logs };\n if (usersTarget) {\n const usersEl = xlsx.doc.get(\n usersTarget.startsWith(\"/\") ? usersTarget.slice(1) : `xl/${usersTarget}`,\n );\n if (usersEl) {\n const users = usersDesc.parse(usersEl, readContext);\n if (users.users) revisionLog.users = users;\n }\n }\n opts.revisionLog = revisionLog;\n }\n }\n\n return opts as WorkbookOptions;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse.mjs","names":[],"sources":["../src/parse.ts"],"sourcesContent":["/**\n * XLSX parsing — parse .xlsx files into structured data.\n *\n * @module\n */\nimport {\n appPropertiesDesc,\n customPropertiesDesc,\n parseArchive,\n parseCorePropsElement,\n} from \"@office-open/core\";\nimport type { ParsedArchive } from \"@office-open/core\";\nimport { toUint8Array } from \"@office-open/core\";\nimport type { DataType } from \"@office-open/core\";\nimport type { ReadContext } from \"@office-open/core/descriptor\";\nimport type { Element } from \"@office-open/xml\";\nimport { attr } from \"@office-open/xml\";\nimport { calcChainDesc } from \"@parts/calc-chain\";\nimport { chartsheetDesc } from \"@parts/chartsheet\";\nimport type { ChartsheetOptions } from \"@parts/chartsheet\";\nimport { commentsDesc } from \"@parts/comments\";\nimport { drawingDesc } from \"@parts/drawing\";\nimport { externalLinkDesc } from \"@parts/external-link\";\nimport type { ExternalLinkOptions } from \"@parts/external-link\";\nimport type { SharedWorkbookOptions, WorkbookOptions } from \"@parts/file\";\nimport { pivotCacheDefDesc, pivotCacheRecordsDesc } from \"@parts/pivot-cache\";\nimport type { PivotCacheDefParseResult, PivotCacheRecordsParseResult } from \"@parts/pivot-cache\";\nimport { pivotTableDesc } from \"@parts/pivot-table\";\nimport type { PivotTableParseResult } from \"@parts/pivot-table\";\nimport type { PivotTableOptions } from \"@parts/pivot/pivot-utils\";\nimport {\n revisionHeadersDesc,\n revisionLogDesc,\n usersDesc,\n type RevisionLogOptions,\n} from \"@parts/revision-log\";\nimport { sharedStringsDesc } from \"@parts/shared-strings\";\nimport type { SharedStringsDocOptions } from \"@parts/shared-strings\";\nimport { stylesDesc } from \"@parts/styles\";\nimport { tableDesc } from \"@parts/table\";\nimport type { TableOptions } from \"@parts/table\";\nimport { workbookDesc } from \"@parts/workbook\";\nimport { worksheetDesc } from \"@parts/worksheet\";\nimport type {\n WorksheetChartOptions,\n WorksheetImageOptions,\n WorksheetOptions,\n} from \"@parts/worksheet\";\n\nimport { XlsxReadContext } from \"./context\";\n\nexport { parseArchive };\n\n// ── Low-level parse result ──\n\nexport interface XlsxPartRefs {\n worksheets: string[];\n charts: string[];\n media: string[];\n drawings: string[];\n}\n\nexport interface XlsxDocument {\n doc: ParsedArchive;\n /** xl/workbook.xml root element */\n workbook?: Element;\n /** Worksheet paths (xl/worksheets/sheet{n}.xml) */\n worksheets: string[];\n /** xl/styles.xml root element */\n styles?: Element;\n /** xl/sharedStrings.xml root element */\n sharedStrings?: Element;\n partRefs: XlsxPartRefs;\n /** docProps/core.xml path */\n coreProps?: string;\n /** docProps/app.xml path */\n appProps?: string;\n /** docProps/custom.xml path */\n customProps?: string;\n}\n\nfunction sortByNumber(paths: string[]): string[] {\n return paths.sort((a, b) => {\n const numA = parseInt(a.match(/(\\d+)/)?.[1] ?? \"0\", 10);\n const numB = parseInt(b.match(/(\\d+)/)?.[1] ?? \"0\", 10);\n return numA - numB;\n });\n}\n\n/** Derive the sibling rels path for an external link part.\n * \"xl/externalLinks/externalLink1.xml\" → \"xl/externalLinks/_rels/externalLink1.xml.rels\"\n */\nfunction externalLinkRelsPath(elPath: string): string {\n const idx = elPath.lastIndexOf(\"/\");\n const dir = elPath.substring(0, idx);\n const file = elPath.substring(idx + 1);\n return `${dir}/_rels/${file}.rels`;\n}\n\n/**\n * Parse raw .xlsx data into a low-level XlsxDocument.\n */\nexport function parseXlsx(data: DataType): XlsxDocument {\n const uint8 = toUint8Array(data);\n const doc = parseArchive(uint8);\n\n const workbook = doc.get(\"xl/workbook.xml\");\n const styles = doc.get(\"xl/styles.xml\");\n const sharedStrings = doc.get(\"xl/sharedStrings.xml\");\n\n // Resolve worksheet paths from workbook rels\n const worksheets: string[] = [];\n const charts: string[] = [];\n const drawings: string[] = [];\n const media: string[] = [];\n\n const wbRels = doc.get(\"xl/_rels/workbook.xml.rels\");\n if (wbRels) {\n for (const child of wbRels.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!target) continue;\n\n if (type.includes(\"/worksheet\")) {\n worksheets.push(target.startsWith(\"/\") ? target.slice(1) : `xl/${target}`);\n }\n }\n }\n sortByNumber(worksheets);\n\n // Scan for drawings, charts, media\n drawings.push(...doc.keys(\"xl/drawings/\").filter((k) => k.endsWith(\".xml\")));\n charts.push(...doc.keys(\"xl/charts/\").filter((k) => k.endsWith(\".xml\")));\n media.push(...doc.keys(\"xl/media/\"));\n sortByNumber(drawings);\n sortByNumber(charts);\n\n // Root rels → core/app props\n let coreProps: string | undefined;\n let appProps: string | undefined;\n let customProps: string | undefined;\n const rootRels = doc.get(\"_rels/.rels\");\n if (rootRels) {\n for (const child of rootRels.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (type.includes(\"/core-properties\")) coreProps = target;\n else if (type.includes(\"/extended-properties\")) appProps = target;\n else if (type.includes(\"/custom-properties\")) customProps = target;\n }\n }\n\n return {\n doc,\n workbook,\n worksheets,\n styles,\n sharedStrings,\n partRefs: { worksheets, charts, media, drawings },\n coreProps,\n appProps,\n customProps,\n };\n}\n\n// ── Shared strings helper ──\n\n/** Extract plain string array from sharedStringsDesc.parse() result. */\nfunction extractStringsFromEntries(parsed: SharedStringsDocOptions): string[] {\n const strings: string[] = [];\n for (const entry of parsed.entries) {\n if (typeof entry === \"string\") {\n strings.push(entry);\n } else if (entry.runs && entry.runs.length > 0) {\n // Rich text: concatenate run texts\n strings.push(entry.runs.map((r) => r.text).join(\"\"));\n }\n }\n return strings;\n}\n\n/**\n * Parse a .xlsx file and convert it into WorkbookOptions.\n *\n * The returned options can be passed to `new Workbook(parsed)`.\n */\nexport function parseWorkbook(data: DataType): WorkbookOptions {\n const xlsx = parseXlsx(data);\n\n const opts: Partial<WorkbookOptions> = {};\n\n // Core properties\n if (xlsx.coreProps) {\n const corePropsEl = xlsx.doc.get(xlsx.coreProps);\n if (corePropsEl) {\n const cp = parseCorePropsElement(corePropsEl);\n if (cp.title) opts.title = cp.title;\n if (cp.subject) opts.subject = cp.subject;\n if (cp.creator) opts.creator = cp.creator;\n if (cp.keywords) opts.keywords = cp.keywords;\n if (cp.description) opts.description = cp.description;\n if (cp.lastModifiedBy) opts.lastModifiedBy = cp.lastModifiedBy;\n if (cp.revision !== undefined) opts.revision = cp.revision;\n if (cp.lastPrinted) opts.lastPrinted = cp.lastPrinted;\n if (cp.created) opts.created = cp.created;\n if (cp.modified) opts.modified = cp.modified;\n }\n }\n\n // Extended (app) properties\n if (xlsx.appProps) {\n const appPropsEl = xlsx.doc.get(xlsx.appProps);\n if (appPropsEl) {\n const ap = appPropertiesDesc.parse(appPropsEl, {} as ReadContext);\n if (ap && Object.keys(ap).length > 0) opts.appProperties = ap;\n }\n }\n\n // Custom properties\n if (xlsx.customProps) {\n const customPropsEl = xlsx.doc.get(xlsx.customProps);\n if (customPropsEl) {\n const cp = customPropertiesDesc.parse(customPropsEl, {} as ReadContext);\n if (cp.properties?.length) opts.customProperties = cp.properties;\n }\n }\n\n // Shared strings — use descriptor.parse() for richer data, then extract strings for lookup\n let strings: string[] = [];\n if (xlsx.sharedStrings) {\n const parsed = sharedStringsDesc.parse(xlsx.sharedStrings, {} as never);\n strings = extractStringsFromEntries(parsed);\n }\n\n // Create read context for descriptor pipeline\n const readContext = new XlsxReadContext(xlsx, strings);\n\n // Parse styles (fonts, fills, borders, cellXfs)\n if (xlsx.styles) {\n const parsedStyles = stylesDesc.parse(xlsx.styles, readContext);\n readContext.parsedStyles = parsedStyles;\n\n // Expose styles sections onto the returned opts for round-trip. compiler.ts\n // re-emits dxfs from options; colors/tableStyles/cellStyles/styleExtensions\n // are surfaced here even though the compiler currently only consumes dxfs,\n // so callers retain the parsed data and the fields stay documented.\n if (parsedStyles.dxfs) opts.dxfs = parsedStyles.dxfs;\n if (parsedStyles.colors) opts.colors = parsedStyles.colors;\n if (parsedStyles.customCellStyles) opts.cellStyles = parsedStyles.customCellStyles;\n if (parsedStyles.styleExtensions) opts.styleExtensions = parsedStyles.styleExtensions;\n if (parsedStyles.tableStylesInfo?.tableStyles)\n opts.tableStyles = parsedStyles.tableStylesInfo.tableStyles;\n }\n\n // Parse workbook via descriptor for richer data\n let sheetNames: string[] = [];\n if (xlsx.workbook) {\n const wbData = workbookDesc.parse(xlsx.workbook, readContext);\n if (wbData.sheets) sheetNames = wbData.sheets.map((s) => s.name);\n\n // Workbook-level properties\n if (wbData.protection) opts.workbookProtection = wbData.protection;\n if (wbData.bookView) opts.bookView = wbData.bookView;\n if (wbData.calcPr) opts.calcPr = wbData.calcPr;\n if (wbData.customViews) opts.customWorkbookViews = wbData.customViews;\n if (wbData.fileRecoveryPr) opts.fileRecoveryPr = wbData.fileRecoveryPr;\n if (wbData.functionGroups) opts.functionGroups = wbData.functionGroups;\n if (wbData.webPublishing) opts.webPublishing = wbData.webPublishing;\n if (wbData.fileSharing) opts.fileSharing = wbData.fileSharing;\n if (wbData.workbookPr) opts.workbookPr = wbData.workbookPr;\n if (wbData.volTypes) opts.volTypes = wbData.volTypes;\n if (wbData.webPublishObjects) opts.webPublishObjects = wbData.webPublishObjects;\n }\n\n // Parse worksheets using descriptor pipeline\n const worksheets: WorksheetOptions[] = [];\n for (let i = 0; i < xlsx.worksheets.length; i++) {\n const wsPath = xlsx.worksheets[i];\n const wsEl = xlsx.doc.get(wsPath);\n if (!wsEl) continue;\n\n const wsOpts = worksheetDesc.parse(wsEl, readContext);\n if (sheetNames[i]) wsOpts.name = sheetNames[i];\n\n // ── Resolve sub-parts via worksheet relationships ──\n\n // Comments\n const commentRels = readContext.getWorksheetRelsByType(wsPath, \"/comments\");\n for (const cr of commentRels) {\n const commentEl = xlsx.doc.get(cr.target);\n if (!commentEl) continue;\n const commentData = commentsDesc.parse(commentEl, readContext);\n if (commentData.comments) {\n wsOpts.comments = commentData.comments;\n break; // one comments file per worksheet\n }\n }\n\n // Drawings (images + charts)\n const drawingRels = readContext.getWorksheetRelsByType(wsPath, \"/drawing\");\n for (const dr of drawingRels) {\n const drawingEl = xlsx.doc.get(dr.target);\n if (!drawingEl) continue;\n const drawingData = drawingDesc.parse(drawingEl, readContext);\n // drawingDesc.parse yields CT-layer shapes (rId-anchored DrawingImage/\n // DrawingChart), while WorksheetOptions.images/charts are the user-layer\n // shapes (data bytes / ChartSpace content). The shapes are not\n // interchangeable — round-trip drawings are lossy — these casts mark the\n // known impedance, same as wsOpts.pivotTables above.\n if (drawingData.images)\n wsOpts.images = drawingData.images as unknown as WorksheetImageOptions[];\n if (drawingData.charts)\n wsOpts.charts = drawingData.charts as unknown as WorksheetChartOptions[];\n break;\n }\n\n // Tables\n const tableRels = readContext.getWorksheetRelsByType(wsPath, \"/table\");\n if (tableRels.length > 0) {\n const tables: TableOptions[] = [];\n for (const tr of tableRels) {\n const tableEl = xlsx.doc.get(tr.target);\n if (!tableEl) continue;\n const tableData = tableDesc.parse(tableEl, readContext);\n tables.push(tableData);\n }\n if (tables.length > 0) wsOpts.tables = tables;\n }\n\n // Pivot tables\n const pivotRels = readContext.getWorksheetRelsByType(wsPath, \"/pivotTable\");\n if (pivotRels.length > 0) {\n const pivotTables: PivotTableParseResult[] = [];\n for (const pr of pivotRels) {\n const pivotEl = xlsx.doc.get(pr.target);\n if (!pivotEl) continue;\n const pivotData = pivotTableDesc.parse(pivotEl, readContext);\n pivotTables.push(pivotData);\n }\n // WorksheetOptions.pivotTables is PivotTableOptions[] (user-layer) for the\n // compiler's stringify; parse yields the CT-layer PivotTableParseResult.\n // The shapes are not interchangeable (index-based vs name-based), so\n // round-trip pivot tables are lossy — this cast marks the known impedance.\n if (pivotTables.length > 0)\n wsOpts.pivotTables = pivotTables as unknown as PivotTableOptions[];\n }\n\n // Resolve external hyperlink URLs\n const hyperlinks = wsOpts.hyperlinks;\n if (hyperlinks) {\n for (const hl of hyperlinks) {\n if (hl.target.type === \"external\") {\n const resolved = readContext.resolveWorksheetRel(wsPath, hl.target.url);\n if (resolved) hl.target.url = resolved;\n }\n }\n }\n\n worksheets.push(wsOpts as WorksheetOptions);\n }\n\n opts.worksheets = worksheets;\n\n // Chartsheets — parse chartsheet parts\n const chartsheetPaths = xlsx.doc.keys(\"xl/chartsheets/\").filter((k) => k.endsWith(\".xml\"));\n if (chartsheetPaths.length > 0) {\n const chartsheets: ChartsheetOptions[] = [];\n for (let i = 0; i < chartsheetPaths.length; i++) {\n const csEl = xlsx.doc.get(chartsheetPaths[i]);\n if (!csEl) continue;\n const csData = chartsheetDesc.parse(csEl, readContext);\n if (sheetNames[worksheets.length + i]) csData.name = sheetNames[worksheets.length + i];\n chartsheets.push(csData);\n }\n if (chartsheets.length > 0) opts.chartsheets = chartsheets;\n }\n\n // Pivot cache definitions and records\n const pivotCacheDefPaths = xlsx.doc\n .keys(\"xl/pivotCache/\")\n .filter((k) => k.includes(\"pivotCacheDefinition\"));\n if (pivotCacheDefPaths.length > 0) {\n const pivotCaches: PivotCacheDefParseResult[] = [];\n for (const pcdPath of pivotCacheDefPaths) {\n const pcdEl = xlsx.doc.get(pcdPath);\n if (!pcdEl) continue;\n const pcdData = pivotCacheDefDesc.parse(pcdEl, readContext);\n pivotCaches.push(pcdData);\n }\n if (pivotCaches.length > 0) opts.pivotCaches = pivotCaches;\n }\n\n const pivotCacheRecPaths = xlsx.doc\n .keys(\"xl/pivotCache/\")\n .filter((k) => k.includes(\"pivotCacheRecords\"));\n if (pivotCacheRecPaths.length > 0) {\n const pivotCacheRecords: PivotCacheRecordsParseResult[] = [];\n for (const pcrPath of pivotCacheRecPaths) {\n const pcrEl = xlsx.doc.get(pcrPath);\n if (!pcrEl) continue;\n const pcrData = pivotCacheRecordsDesc.parse(pcrEl, readContext);\n pivotCacheRecords.push(pcrData);\n }\n if (pivotCacheRecords.length > 0) opts.pivotCacheRecords = pivotCacheRecords;\n }\n\n // Calculation chain\n const calcChainEl = xlsx.doc.get(\"xl/calcChain.xml\");\n if (calcChainEl) {\n const calcData = calcChainDesc.parse(calcChainEl, readContext);\n if (calcData.cells) opts.calcChain = calcData.cells;\n }\n\n // External links\n const extLinkPaths = xlsx.doc.keys(\"xl/externalLinks/\").filter((k) => k.endsWith(\".xml\"));\n if (extLinkPaths.length > 0) {\n const externalLinks: ExternalLinkOptions[] = [];\n for (const elPath of extLinkPaths) {\n const elEl = xlsx.doc.get(elPath);\n if (!elEl) continue;\n const elData = externalLinkDesc.parse(elEl, readContext);\n\n // Resolve the external book target from the sibling rels file\n // (xl/externalLinks/_rels/externalLinkN.xml.rels), which compiler.ts writes.\n if (elData.externalBook) {\n const relsPath = externalLinkRelsPath(elPath);\n const relsEl = xlsx.doc.get(relsPath);\n if (relsEl) {\n for (const child of relsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n if (!type.includes(\"/externalLinkPath\")) continue;\n const target = attr(child, \"Target\");\n if (target) {\n elData.externalBook.target = target;\n break;\n }\n }\n }\n }\n\n externalLinks.push(elData);\n }\n if (externalLinks.length > 0) opts.externalLinks = externalLinks;\n }\n\n // Shared-workbook revisions: workbook.xml.rels → revisionHeaders/users;\n // revisionHeaders.xml.rels → per-header revision logs.\n const wbRelsEl2 = xlsx.doc.get(\"xl/_rels/workbook.xml.rels\");\n let revHeadersTarget: string | undefined;\n let usersTarget: string | undefined;\n if (wbRelsEl2) {\n for (const child of wbRelsEl2.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (type.includes(\"/revisionHeaders\")) revHeadersTarget = target;\n else if (type.includes(\"/users\")) usersTarget = target;\n }\n }\n if (revHeadersTarget) {\n const headersPath = revHeadersTarget.startsWith(\"/\")\n ? revHeadersTarget.slice(1)\n : `xl/${revHeadersTarget}`;\n const headersEl = xlsx.doc.get(headersPath);\n if (headersEl) {\n const headers = revisionHeadersDesc.parse(headersEl, readContext);\n const logs: RevisionLogOptions[] = [];\n const slash = headersPath.lastIndexOf(\"/\");\n const revHeadersRelsEl = xlsx.doc.get(\n `${headersPath.slice(0, slash)}/_rels/${headersPath.slice(slash + 1)}.rels`,\n );\n if (revHeadersRelsEl) {\n for (const child of revHeadersRelsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n if (!(attr(child, \"Type\") ?? \"\").includes(\"/revisionLog\")) continue;\n const t = attr(child, \"Target\");\n if (!t) continue;\n const logEl = xlsx.doc.get(t.startsWith(\"/\") ? t.slice(1) : `xl/${t}`);\n if (logEl) logs.push(revisionLogDesc.parse(logEl, readContext));\n }\n }\n const revisionLog: SharedWorkbookOptions = { headers, logs };\n if (usersTarget) {\n const usersEl = xlsx.doc.get(\n usersTarget.startsWith(\"/\") ? usersTarget.slice(1) : `xl/${usersTarget}`,\n );\n if (usersEl) {\n const users = usersDesc.parse(usersEl, readContext);\n if (users.users) revisionLog.users = users;\n }\n }\n opts.revisionLog = revisionLog;\n }\n }\n\n return opts as WorkbookOptions;\n}\n"],"mappings":"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"}
package/dist/patch.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { D as WorksheetOptions, o as CommentOptions } from "./worksheet-DgjBJg_S.mjs";
1
+ import { D as WorksheetOptions, o as CommentOptions } from "./worksheet-C9CP2B97.mjs";
2
2
  import { BasePatchOptions, CorePropertiesOptions, OutputByType, OutputType } from "@office-open/core";
3
3
 
4
4
  //#region src/patch.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.mts","names":[],"sources":["../src/patch.ts"],"mappings":";;;;KA0CY,WAAA,+BAA0C,IAAI;AAAA,KAG9C,KAAA,GAAQ,WAAW;AAAA,UAEd,oBAAA,WACL,UAAA,GAAa,UAAA,UACf,gBAAA,CAAiB,CAAA;EAEzB,YAAA,GAAe,QAAA,CAAS,MAAA,SAAe,WAAA;EAEvC,WAAA,GAAc,QAAA,CAAS,MAAA,SAAe,WAAA;EAEtC,cAAA,GAAiB,OAAA,CAAQ,qBAAA;EAOzB,UAAA;IAEE,OAAA,GAAU,QAAA,CAAS,MAAA,SAAe,gBAAA;IAElC,MAAA,GAAS,QAAA,CAAS,gBAAA;EAAA;EAOpB,QAAA,GAAW,QAAA,CAAS,MAAA,SAAe,cAAA;AAAA;AAAA,cA4CxB,aAAA,aAAiC,UAAA,GAAa,UAAA;EAAY,UAAA;EAAA,IAAA;EAAA,YAAA;EAAA,WAAA;EAAA,cAAA;EAAA,UAAA;EAAA,QAAA;EAAA;AAAA,GASpE,oBAAA,CAAqB,CAAA,MAAK,OAAA,CAAQ,YAAA,CAAa,CAAA"}
1
+ {"version":3,"file":"patch.d.mts","names":[],"sources":["../src/patch.ts"],"mappings":";;;;KA6CY,WAAA,+BAA0C,IAAI;AAAA,KAG9C,KAAA,GAAQ,WAAW;AAAA,UAEd,oBAAA,WACL,UAAA,GAAa,UAAA,UACf,gBAAA,CAAiB,CAAA;EAEzB,YAAA,GAAe,QAAA,CAAS,MAAA,SAAe,WAAA;EAEvC,WAAA,GAAc,QAAA,CAAS,MAAA,SAAe,WAAA;EAEtC,cAAA,GAAiB,OAAA,CAAQ,qBAAA;EAOzB,UAAA;IAEE,OAAA,GAAU,QAAA,CAAS,MAAA,SAAe,gBAAA;IAElC,MAAA,GAAS,QAAA,CAAS,gBAAA;EAAA;EAOpB,QAAA,GAAW,QAAA,CAAS,MAAA,SAAe,cAAA;AAAA;AAAA,cA4CxB,aAAA,aAAiC,UAAA,GAAa,UAAA;EAAY,UAAA;EAAA,IAAA;EAAA,YAAA;EAAA,WAAA;EAAA,cAAA;EAAA,UAAA;EAAA,QAAA;EAAA;AAAA,GASpE,oBAAA,CAAqB,CAAA,MAAK,OAAA,CAAQ,YAAA,CAAa,CAAA"}