office-open 0.6.8 → 0.6.10
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/README.md +134 -0
- package/dist/ai/index.d.mts +562 -38
- package/dist/ai/index.d.mts.map +1 -1
- package/dist/ai/index.mjs +2 -2
- package/dist/ai/index.mjs.map +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/schemas/index.d.mts +554 -38
- package/dist/schemas/index.d.mts.map +1 -1
- package/dist/schemas/index.mjs +1 -1
- package/dist/schemas-BhTmC2Jb.mjs +291 -0
- package/dist/schemas-BhTmC2Jb.mjs.map +1 -0
- package/package.json +9 -9
- package/dist/schemas-BbRmv4RW.mjs +0 -125
- package/dist/schemas-BbRmv4RW.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/schemas/docx.ts","../../src/schemas/pptx.ts","../../src/schemas/xlsx.ts","../../src/schemas/index.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/schemas/docx.ts","../../src/schemas/pptx.ts","../../src/schemas/xlsx.ts","../../src/schemas/index.ts"],"mappings":";;;cAuBa,UAAA,EAAU,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCMV,UAAA,EAAU,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cC4EV,UAAA,EAAU,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCjGV,OAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMD,YAAA;AAAA,iBAEI,qBAAA,CAAsB,IAAA,EAAM,YAAA,EAAc,IAAA,YAAgB,MAAM"}
|
package/dist/schemas/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as docxSchema, i as pptxSchema, n as validateDocumentInput, r as xlsxSchema, t as SCHEMAS } from "../schemas-
|
|
1
|
+
import { a as docxSchema, i as pptxSchema, n as validateDocumentInput, r as xlsxSchema, t as SCHEMAS } from "../schemas-BhTmC2Jb.mjs";
|
|
2
2
|
export { SCHEMAS, docxSchema, pptxSchema, validateDocumentInput, xlsxSchema };
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region src/schemas/docx.ts
|
|
3
|
+
const anyObject$2 = z.record(z.string(), z.unknown()).describe("JSON object");
|
|
4
|
+
const sectionChild = z.union([
|
|
5
|
+
z.object({ paragraph: anyObject$2 }).passthrough(),
|
|
6
|
+
z.object({ table: anyObject$2 }).passthrough(),
|
|
7
|
+
z.object({ toc: anyObject$2 }).passthrough(),
|
|
8
|
+
z.object({ textbox: anyObject$2 }).passthrough(),
|
|
9
|
+
z.object({ sdt: anyObject$2 }).passthrough(),
|
|
10
|
+
z.object({ altChunk: anyObject$2 }).passthrough(),
|
|
11
|
+
z.object({ subDoc: anyObject$2 }).passthrough(),
|
|
12
|
+
anyObject$2
|
|
13
|
+
]);
|
|
14
|
+
const headerFooterGroup = z.object({
|
|
15
|
+
default: anyObject$2.or(z.array(sectionChild.or(z.string()))).optional(),
|
|
16
|
+
first: anyObject$2.or(z.array(sectionChild.or(z.string()))).optional(),
|
|
17
|
+
even: anyObject$2.or(z.array(sectionChild.or(z.string()))).optional()
|
|
18
|
+
}).passthrough();
|
|
19
|
+
const docxSchema = z.object({
|
|
20
|
+
sections: z.array(z.object({
|
|
21
|
+
properties: anyObject$2.optional(),
|
|
22
|
+
children: z.array(sectionChild.or(z.string())).describe("Section content: paragraphs ({ paragraph: {...} }), tables ({ table: {...} }), images, TOCs, etc."),
|
|
23
|
+
headers: headerFooterGroup.optional(),
|
|
24
|
+
footers: headerFooterGroup.optional()
|
|
25
|
+
}).passthrough()).describe("Document sections (required)"),
|
|
26
|
+
title: z.string().optional(),
|
|
27
|
+
subject: z.string().optional(),
|
|
28
|
+
creator: z.string().optional(),
|
|
29
|
+
keywords: z.string().optional(),
|
|
30
|
+
description: z.string().optional(),
|
|
31
|
+
lastModifiedBy: z.string().optional(),
|
|
32
|
+
revision: z.number().optional(),
|
|
33
|
+
externalStyles: z.string().optional(),
|
|
34
|
+
styles: anyObject$2.optional(),
|
|
35
|
+
numbering: anyObject$2.optional(),
|
|
36
|
+
comments: anyObject$2.optional(),
|
|
37
|
+
bibliography: anyObject$2.optional(),
|
|
38
|
+
footnotes: z.record(z.string(), anyObject$2).optional(),
|
|
39
|
+
endnotes: z.record(z.string(), anyObject$2).optional(),
|
|
40
|
+
background: anyObject$2.optional(),
|
|
41
|
+
features: anyObject$2.optional(),
|
|
42
|
+
compatabilityModeVersion: z.number().optional(),
|
|
43
|
+
compatibility: anyObject$2.optional(),
|
|
44
|
+
customProperties: z.array(anyObject$2).optional(),
|
|
45
|
+
evenAndOddHeaderAndFooters: z.boolean().optional(),
|
|
46
|
+
defaultTabStop: z.number().optional(),
|
|
47
|
+
fonts: z.array(anyObject$2).optional(),
|
|
48
|
+
hyphenation: anyObject$2.optional(),
|
|
49
|
+
characterSpacingControl: z.enum(["compressPunctuation", "doNotCompress"]).optional(),
|
|
50
|
+
view: z.enum([
|
|
51
|
+
"none",
|
|
52
|
+
"print",
|
|
53
|
+
"outline",
|
|
54
|
+
"masterPages",
|
|
55
|
+
"normal",
|
|
56
|
+
"web"
|
|
57
|
+
]).optional(),
|
|
58
|
+
zoom: z.object({
|
|
59
|
+
percent: z.number().optional(),
|
|
60
|
+
val: z.enum([
|
|
61
|
+
"none",
|
|
62
|
+
"fullPage",
|
|
63
|
+
"bestFit",
|
|
64
|
+
"textFit"
|
|
65
|
+
]).optional()
|
|
66
|
+
}).passthrough().optional(),
|
|
67
|
+
writeProtection: anyObject$2.optional(),
|
|
68
|
+
displayBackgroundShape: z.boolean().optional(),
|
|
69
|
+
embedTrueTypeFonts: z.boolean().optional(),
|
|
70
|
+
embedSystemFonts: z.boolean().optional(),
|
|
71
|
+
saveSubsetFonts: z.boolean().optional(),
|
|
72
|
+
docVars: z.array(z.object({
|
|
73
|
+
name: z.string(),
|
|
74
|
+
val: z.string()
|
|
75
|
+
}).passthrough()).optional(),
|
|
76
|
+
colorSchemeMapping: anyObject$2.optional()
|
|
77
|
+
}).passthrough();
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region src/schemas/pptx.ts
|
|
80
|
+
const anyObject$1 = z.record(z.string(), z.unknown()).describe("JSON object");
|
|
81
|
+
const slideChild = z.union([
|
|
82
|
+
z.object({ shape: anyObject$1 }).passthrough(),
|
|
83
|
+
z.object({ picture: anyObject$1 }).passthrough(),
|
|
84
|
+
z.object({ table: anyObject$1 }).passthrough(),
|
|
85
|
+
z.object({ chart: anyObject$1 }).passthrough(),
|
|
86
|
+
z.object({ line: anyObject$1 }).passthrough(),
|
|
87
|
+
z.object({ connector: anyObject$1 }).passthrough(),
|
|
88
|
+
z.object({ video: anyObject$1 }).passthrough(),
|
|
89
|
+
z.object({ audio: anyObject$1 }).passthrough(),
|
|
90
|
+
z.object({ group: anyObject$1 }).passthrough(),
|
|
91
|
+
z.object({ smartart: anyObject$1 }).passthrough(),
|
|
92
|
+
anyObject$1
|
|
93
|
+
]);
|
|
94
|
+
const slideComment = z.object({
|
|
95
|
+
author: z.string(),
|
|
96
|
+
text: z.string(),
|
|
97
|
+
x: z.number(),
|
|
98
|
+
y: z.number(),
|
|
99
|
+
initials: z.string().optional(),
|
|
100
|
+
date: z.string().optional()
|
|
101
|
+
}).passthrough();
|
|
102
|
+
const pptxSchema = z.object({
|
|
103
|
+
slides: z.array(z.object({
|
|
104
|
+
children: z.array(slideChild.or(z.string())).describe("Slide content: shapes ({ shape: {...} }), pictures ({ picture: {...} }), tables, charts, groups, lines, etc."),
|
|
105
|
+
background: anyObject$1.optional(),
|
|
106
|
+
transition: anyObject$1.optional(),
|
|
107
|
+
notes: z.string().optional(),
|
|
108
|
+
layout: z.enum([
|
|
109
|
+
"blank",
|
|
110
|
+
"title",
|
|
111
|
+
"tx",
|
|
112
|
+
"twoColTx",
|
|
113
|
+
"titleOnly",
|
|
114
|
+
"obj",
|
|
115
|
+
"secHead",
|
|
116
|
+
"chart",
|
|
117
|
+
"tbl",
|
|
118
|
+
"picTx",
|
|
119
|
+
"twoObj",
|
|
120
|
+
"twoTxTwoObj",
|
|
121
|
+
"objTx",
|
|
122
|
+
"vertTx",
|
|
123
|
+
"vertTitleAndTx"
|
|
124
|
+
]).optional(),
|
|
125
|
+
master: z.string().optional(),
|
|
126
|
+
comments: z.array(slideComment).optional(),
|
|
127
|
+
headerFooter: anyObject$1.optional()
|
|
128
|
+
}).passthrough()).describe("Presentation slides (required)"),
|
|
129
|
+
size: z.union([z.enum(["16:9", "4:3"]), z.object({
|
|
130
|
+
width: z.number(),
|
|
131
|
+
height: z.number()
|
|
132
|
+
})]).optional().describe("Slide size: \"16:9\", \"4:3\", or { width, height }"),
|
|
133
|
+
masters: z.array(anyObject$1).optional().describe("Slide master definitions"),
|
|
134
|
+
show: z.object({
|
|
135
|
+
loop: z.boolean().optional(),
|
|
136
|
+
kiosk: z.boolean().optional(),
|
|
137
|
+
showNarration: z.boolean().optional(),
|
|
138
|
+
useTimings: z.boolean().optional()
|
|
139
|
+
}).passthrough().optional(),
|
|
140
|
+
title: z.string().optional(),
|
|
141
|
+
subject: z.string().optional(),
|
|
142
|
+
creator: z.string().optional(),
|
|
143
|
+
keywords: z.string().optional(),
|
|
144
|
+
description: z.string().optional(),
|
|
145
|
+
lastModifiedBy: z.string().optional(),
|
|
146
|
+
revision: z.number().optional()
|
|
147
|
+
}).passthrough();
|
|
148
|
+
//#endregion
|
|
149
|
+
//#region src/schemas/xlsx.ts
|
|
150
|
+
const anyObject = z.record(z.string(), z.unknown()).describe("JSON object");
|
|
151
|
+
const cellValue = z.union([
|
|
152
|
+
z.string(),
|
|
153
|
+
z.number(),
|
|
154
|
+
z.boolean(),
|
|
155
|
+
z.null()
|
|
156
|
+
]);
|
|
157
|
+
const cellOptions = z.union([z.object({
|
|
158
|
+
value: cellValue.optional(),
|
|
159
|
+
reference: z.string().optional(),
|
|
160
|
+
styleIndex: z.number().optional(),
|
|
161
|
+
style: anyObject.optional(),
|
|
162
|
+
formula: anyObject.optional()
|
|
163
|
+
}).passthrough(), cellValue]);
|
|
164
|
+
const columnOptions = z.object({
|
|
165
|
+
min: z.number(),
|
|
166
|
+
max: z.number(),
|
|
167
|
+
width: z.number().optional(),
|
|
168
|
+
hidden: z.boolean().optional(),
|
|
169
|
+
customWidth: z.boolean().optional()
|
|
170
|
+
}).passthrough();
|
|
171
|
+
const mergeCellOptions = z.object({
|
|
172
|
+
from: z.object({
|
|
173
|
+
row: z.number(),
|
|
174
|
+
col: z.number()
|
|
175
|
+
}),
|
|
176
|
+
to: z.object({
|
|
177
|
+
row: z.number(),
|
|
178
|
+
col: z.number()
|
|
179
|
+
})
|
|
180
|
+
}).passthrough();
|
|
181
|
+
const freezePaneOptions = z.object({
|
|
182
|
+
row: z.number().optional(),
|
|
183
|
+
col: z.number().optional()
|
|
184
|
+
}).passthrough();
|
|
185
|
+
const dataValidationOptions = z.object({
|
|
186
|
+
sqref: z.string(),
|
|
187
|
+
type: z.enum([
|
|
188
|
+
"none",
|
|
189
|
+
"whole",
|
|
190
|
+
"decimal",
|
|
191
|
+
"list",
|
|
192
|
+
"date",
|
|
193
|
+
"time",
|
|
194
|
+
"textLength",
|
|
195
|
+
"custom"
|
|
196
|
+
]).optional(),
|
|
197
|
+
operator: z.enum([
|
|
198
|
+
"between",
|
|
199
|
+
"notBetween",
|
|
200
|
+
"equal",
|
|
201
|
+
"notEqual",
|
|
202
|
+
"greaterThan",
|
|
203
|
+
"lessThan",
|
|
204
|
+
"greaterThanOrEqual",
|
|
205
|
+
"lessThanOrEqual"
|
|
206
|
+
]).optional(),
|
|
207
|
+
formula1: z.string().optional(),
|
|
208
|
+
formula2: z.string().optional(),
|
|
209
|
+
allowBlank: z.boolean().optional(),
|
|
210
|
+
showErrorMessage: z.boolean().optional(),
|
|
211
|
+
errorTitle: z.string().optional(),
|
|
212
|
+
error: z.string().optional(),
|
|
213
|
+
showInputMessage: z.boolean().optional(),
|
|
214
|
+
promptTitle: z.string().optional(),
|
|
215
|
+
prompt: z.string().optional()
|
|
216
|
+
}).passthrough();
|
|
217
|
+
const conditionalFormatOptions = z.object({
|
|
218
|
+
sqref: z.string(),
|
|
219
|
+
rules: z.array(z.object({
|
|
220
|
+
type: z.enum([
|
|
221
|
+
"cellIs",
|
|
222
|
+
"containsText",
|
|
223
|
+
"expression",
|
|
224
|
+
"top10",
|
|
225
|
+
"aboveAverage"
|
|
226
|
+
]),
|
|
227
|
+
operator: z.enum([
|
|
228
|
+
"lessThan",
|
|
229
|
+
"lessThanOrEqual",
|
|
230
|
+
"equal",
|
|
231
|
+
"notEqual",
|
|
232
|
+
"greaterThanOrEqual",
|
|
233
|
+
"greaterThan",
|
|
234
|
+
"between",
|
|
235
|
+
"notBetween",
|
|
236
|
+
"containsText",
|
|
237
|
+
"notContains",
|
|
238
|
+
"beginsWith",
|
|
239
|
+
"endsWith"
|
|
240
|
+
]).optional(),
|
|
241
|
+
formulas: z.array(z.string()).optional(),
|
|
242
|
+
priority: z.number().optional(),
|
|
243
|
+
dxfId: z.number().optional()
|
|
244
|
+
}).passthrough())
|
|
245
|
+
}).passthrough();
|
|
246
|
+
const xlsxSchema = z.object({
|
|
247
|
+
worksheets: z.array(z.object({
|
|
248
|
+
name: z.string().optional().describe("Sheet display name"),
|
|
249
|
+
rows: z.array(z.object({
|
|
250
|
+
cells: z.array(cellOptions).optional(),
|
|
251
|
+
height: z.number().optional(),
|
|
252
|
+
hidden: z.boolean().optional(),
|
|
253
|
+
rowNumber: z.number().optional()
|
|
254
|
+
}).passthrough()).optional().describe("Worksheet rows, each with \"cells\" array"),
|
|
255
|
+
columns: z.array(columnOptions).optional(),
|
|
256
|
+
mergeCells: z.array(mergeCellOptions).optional(),
|
|
257
|
+
freezePanes: freezePaneOptions.optional(),
|
|
258
|
+
autoFilter: z.string().optional(),
|
|
259
|
+
images: z.array(anyObject).optional(),
|
|
260
|
+
charts: z.array(anyObject).optional(),
|
|
261
|
+
dataValidations: z.array(dataValidationOptions).optional(),
|
|
262
|
+
conditionalFormats: z.array(conditionalFormatOptions).optional()
|
|
263
|
+
}).passthrough()).describe("Workbook worksheets (required)"),
|
|
264
|
+
title: z.string().optional(),
|
|
265
|
+
subject: z.string().optional(),
|
|
266
|
+
creator: z.string().optional(),
|
|
267
|
+
keywords: z.string().optional(),
|
|
268
|
+
description: z.string().optional(),
|
|
269
|
+
lastModifiedBy: z.string().optional(),
|
|
270
|
+
revision: z.number().optional()
|
|
271
|
+
}).passthrough();
|
|
272
|
+
//#endregion
|
|
273
|
+
//#region src/schemas/index.ts
|
|
274
|
+
const SCHEMAS = {
|
|
275
|
+
docx: docxSchema,
|
|
276
|
+
pptx: pptxSchema,
|
|
277
|
+
xlsx: xlsxSchema
|
|
278
|
+
};
|
|
279
|
+
function validateDocumentInput(type, data) {
|
|
280
|
+
const result = SCHEMAS[type].safeParse(data);
|
|
281
|
+
if (!result.success) {
|
|
282
|
+
const issue = result.error.issues[0];
|
|
283
|
+
const path = issue.path.join(".");
|
|
284
|
+
throw new Error(`Invalid ${type} options${path ? ` at "${path}"` : ""}: ${issue.message}`);
|
|
285
|
+
}
|
|
286
|
+
return result.data;
|
|
287
|
+
}
|
|
288
|
+
//#endregion
|
|
289
|
+
export { docxSchema as a, pptxSchema as i, validateDocumentInput as n, xlsxSchema as r, SCHEMAS as t };
|
|
290
|
+
|
|
291
|
+
//# sourceMappingURL=schemas-BhTmC2Jb.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas-BhTmC2Jb.mjs","names":["anyObject","anyObject"],"sources":["../src/schemas/docx.ts","../src/schemas/pptx.ts","../src/schemas/xlsx.ts","../src/schemas/index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst anyObject = z.record(z.string(), z.unknown()).describe(\"JSON object\");\n\nconst sectionChild = z.union([\n z.object({ paragraph: anyObject }).passthrough(),\n z.object({ table: anyObject }).passthrough(),\n z.object({ toc: anyObject }).passthrough(),\n z.object({ textbox: anyObject }).passthrough(),\n z.object({ sdt: anyObject }).passthrough(),\n z.object({ altChunk: anyObject }).passthrough(),\n z.object({ subDoc: anyObject }).passthrough(),\n anyObject,\n]);\n\nconst headerFooterGroup = z\n .object({\n default: anyObject.or(z.array(sectionChild.or(z.string()))).optional(),\n first: anyObject.or(z.array(sectionChild.or(z.string()))).optional(),\n even: anyObject.or(z.array(sectionChild.or(z.string()))).optional(),\n })\n .passthrough();\n\nexport const docxSchema = z\n .object({\n sections: z\n .array(\n z\n .object({\n properties: anyObject.optional(),\n children: z\n .array(sectionChild.or(z.string()))\n .describe(\n \"Section content: paragraphs ({ paragraph: {...} }), tables ({ table: {...} }), images, TOCs, etc.\",\n ),\n headers: headerFooterGroup.optional(),\n footers: headerFooterGroup.optional(),\n })\n .passthrough(),\n )\n .describe(\"Document sections (required)\"),\n title: z.string().optional(),\n subject: z.string().optional(),\n creator: z.string().optional(),\n keywords: z.string().optional(),\n description: z.string().optional(),\n lastModifiedBy: z.string().optional(),\n revision: z.number().optional(),\n externalStyles: z.string().optional(),\n styles: anyObject.optional(),\n numbering: anyObject.optional(),\n comments: anyObject.optional(),\n bibliography: anyObject.optional(),\n footnotes: z.record(z.string(), anyObject).optional(),\n endnotes: z.record(z.string(), anyObject).optional(),\n background: anyObject.optional(),\n features: anyObject.optional(),\n compatabilityModeVersion: z.number().optional(),\n compatibility: anyObject.optional(),\n customProperties: z.array(anyObject).optional(),\n evenAndOddHeaderAndFooters: z.boolean().optional(),\n defaultTabStop: z.number().optional(),\n fonts: z.array(anyObject).optional(),\n hyphenation: anyObject.optional(),\n characterSpacingControl: z.enum([\"compressPunctuation\", \"doNotCompress\"]).optional(),\n view: z.enum([\"none\", \"print\", \"outline\", \"masterPages\", \"normal\", \"web\"]).optional(),\n zoom: z\n .object({\n percent: z.number().optional(),\n val: z.enum([\"none\", \"fullPage\", \"bestFit\", \"textFit\"]).optional(),\n })\n .passthrough()\n .optional(),\n writeProtection: anyObject.optional(),\n displayBackgroundShape: z.boolean().optional(),\n embedTrueTypeFonts: z.boolean().optional(),\n embedSystemFonts: z.boolean().optional(),\n saveSubsetFonts: z.boolean().optional(),\n docVars: z.array(z.object({ name: z.string(), val: z.string() }).passthrough()).optional(),\n colorSchemeMapping: anyObject.optional(),\n })\n .passthrough();\n","import { z } from \"zod\";\n\nconst anyObject = z.record(z.string(), z.unknown()).describe(\"JSON object\");\n\nconst slideChild = z.union([\n z.object({ shape: anyObject }).passthrough(),\n z.object({ picture: anyObject }).passthrough(),\n z.object({ table: anyObject }).passthrough(),\n z.object({ chart: anyObject }).passthrough(),\n z.object({ line: anyObject }).passthrough(),\n z.object({ connector: anyObject }).passthrough(),\n z.object({ video: anyObject }).passthrough(),\n z.object({ audio: anyObject }).passthrough(),\n z.object({ group: anyObject }).passthrough(),\n z.object({ smartart: anyObject }).passthrough(),\n anyObject,\n]);\n\nconst slideComment = z\n .object({\n author: z.string(),\n text: z.string(),\n x: z.number(),\n y: z.number(),\n initials: z.string().optional(),\n date: z.string().optional(),\n })\n .passthrough();\n\nexport const pptxSchema = z\n .object({\n slides: z\n .array(\n z\n .object({\n children: z\n .array(slideChild.or(z.string()))\n .describe(\n \"Slide content: shapes ({ shape: {...} }), pictures ({ picture: {...} }), tables, charts, groups, lines, etc.\",\n ),\n background: anyObject.optional(),\n transition: anyObject.optional(),\n notes: z.string().optional(),\n layout: z\n .enum([\n \"blank\",\n \"title\",\n \"tx\",\n \"twoColTx\",\n \"titleOnly\",\n \"obj\",\n \"secHead\",\n \"chart\",\n \"tbl\",\n \"picTx\",\n \"twoObj\",\n \"twoTxTwoObj\",\n \"objTx\",\n \"vertTx\",\n \"vertTitleAndTx\",\n ])\n .optional(),\n master: z.string().optional(),\n comments: z.array(slideComment).optional(),\n headerFooter: anyObject.optional(),\n })\n .passthrough(),\n )\n .describe(\"Presentation slides (required)\"),\n size: z\n .union([z.enum([\"16:9\", \"4:3\"]), z.object({ width: z.number(), height: z.number() })])\n .optional()\n .describe('Slide size: \"16:9\", \"4:3\", or { width, height }'),\n masters: z.array(anyObject).optional().describe(\"Slide master definitions\"),\n show: z\n .object({\n loop: z.boolean().optional(),\n kiosk: z.boolean().optional(),\n showNarration: z.boolean().optional(),\n useTimings: z.boolean().optional(),\n })\n .passthrough()\n .optional(),\n title: z.string().optional(),\n subject: z.string().optional(),\n creator: z.string().optional(),\n keywords: z.string().optional(),\n description: z.string().optional(),\n lastModifiedBy: z.string().optional(),\n revision: z.number().optional(),\n })\n .passthrough();\n","import { z } from \"zod\";\n\nconst anyObject = z.record(z.string(), z.unknown()).describe(\"JSON object\");\n\nconst cellValue = z.union([z.string(), z.number(), z.boolean(), z.null()]);\n\nconst cellOptions = z.union([\n z\n .object({\n value: cellValue.optional(),\n reference: z.string().optional(),\n styleIndex: z.number().optional(),\n style: anyObject.optional(),\n formula: anyObject.optional(),\n })\n .passthrough(),\n cellValue,\n]);\n\nconst columnOptions = z\n .object({\n min: z.number(),\n max: z.number(),\n width: z.number().optional(),\n hidden: z.boolean().optional(),\n customWidth: z.boolean().optional(),\n })\n .passthrough();\n\nconst mergeCellOptions = z\n .object({\n from: z.object({ row: z.number(), col: z.number() }),\n to: z.object({ row: z.number(), col: z.number() }),\n })\n .passthrough();\n\nconst freezePaneOptions = z\n .object({\n row: z.number().optional(),\n col: z.number().optional(),\n })\n .passthrough();\n\nconst dataValidationOptions = z\n .object({\n sqref: z.string(),\n type: z\n .enum([\"none\", \"whole\", \"decimal\", \"list\", \"date\", \"time\", \"textLength\", \"custom\"])\n .optional(),\n operator: z\n .enum([\n \"between\",\n \"notBetween\",\n \"equal\",\n \"notEqual\",\n \"greaterThan\",\n \"lessThan\",\n \"greaterThanOrEqual\",\n \"lessThanOrEqual\",\n ])\n .optional(),\n formula1: z.string().optional(),\n formula2: z.string().optional(),\n allowBlank: z.boolean().optional(),\n showErrorMessage: z.boolean().optional(),\n errorTitle: z.string().optional(),\n error: z.string().optional(),\n showInputMessage: z.boolean().optional(),\n promptTitle: z.string().optional(),\n prompt: z.string().optional(),\n })\n .passthrough();\n\nconst conditionalFormatOptions = z\n .object({\n sqref: z.string(),\n rules: z.array(\n z\n .object({\n type: z.enum([\"cellIs\", \"containsText\", \"expression\", \"top10\", \"aboveAverage\"]),\n operator: z\n .enum([\n \"lessThan\",\n \"lessThanOrEqual\",\n \"equal\",\n \"notEqual\",\n \"greaterThanOrEqual\",\n \"greaterThan\",\n \"between\",\n \"notBetween\",\n \"containsText\",\n \"notContains\",\n \"beginsWith\",\n \"endsWith\",\n ])\n .optional(),\n formulas: z.array(z.string()).optional(),\n priority: z.number().optional(),\n dxfId: z.number().optional(),\n })\n .passthrough(),\n ),\n })\n .passthrough();\n\nexport const xlsxSchema = z\n .object({\n worksheets: z\n .array(\n z\n .object({\n name: z.string().optional().describe(\"Sheet display name\"),\n rows: z\n .array(\n z\n .object({\n cells: z.array(cellOptions).optional(),\n height: z.number().optional(),\n hidden: z.boolean().optional(),\n rowNumber: z.number().optional(),\n })\n .passthrough(),\n )\n .optional()\n .describe('Worksheet rows, each with \"cells\" array'),\n columns: z.array(columnOptions).optional(),\n mergeCells: z.array(mergeCellOptions).optional(),\n freezePanes: freezePaneOptions.optional(),\n autoFilter: z.string().optional(),\n images: z.array(anyObject).optional(),\n charts: z.array(anyObject).optional(),\n dataValidations: z.array(dataValidationOptions).optional(),\n conditionalFormats: z.array(conditionalFormatOptions).optional(),\n })\n .passthrough(),\n )\n .describe(\"Workbook worksheets (required)\"),\n title: z.string().optional(),\n subject: z.string().optional(),\n creator: z.string().optional(),\n keywords: z.string().optional(),\n description: z.string().optional(),\n lastModifiedBy: z.string().optional(),\n revision: z.number().optional(),\n })\n .passthrough();\n","import { docxSchema } from \"./docx\";\nimport { pptxSchema } from \"./pptx\";\nimport { xlsxSchema } from \"./xlsx\";\n\nexport { docxSchema } from \"./docx\";\nexport { pptxSchema } from \"./pptx\";\nexport { xlsxSchema } from \"./xlsx\";\n\nexport const SCHEMAS = {\n docx: docxSchema,\n pptx: pptxSchema,\n xlsx: xlsxSchema,\n} as const;\n\nexport type DocumentType = \"docx\" | \"pptx\" | \"xlsx\";\n\nexport function validateDocumentInput(type: DocumentType, data: unknown): Record<string, unknown> {\n const result = SCHEMAS[type].safeParse(data);\n if (!result.success) {\n const issue = result.error.issues[0];\n const path = issue.path.join(\".\");\n throw new Error(`Invalid ${type} options${path ? ` at \"${path}\"` : \"\"}: ${issue.message}`);\n }\n return result.data as Record<string, unknown>;\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "office-open",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.10",
|
|
4
4
|
"description": "Generate Office files (.docx, .pptx, .xlsx) from JSON — CLI, AI SDK tools, and unified re-exports",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
"dependencies": {
|
|
78
78
|
"citty": "0.2.2",
|
|
79
79
|
"zod": "4.4.3",
|
|
80
|
-
"@office-open/
|
|
81
|
-
"@office-open/
|
|
82
|
-
"@office-open/
|
|
83
|
-
"@office-open/
|
|
84
|
-
"@office-open/
|
|
80
|
+
"@office-open/docx": "0.6.10",
|
|
81
|
+
"@office-open/core": "0.6.10",
|
|
82
|
+
"@office-open/xlsx": "0.6.10",
|
|
83
|
+
"@office-open/xml": "0.6.10",
|
|
84
|
+
"@office-open/pptx": "0.6.10"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
87
|
"ai": "^6.0.0"
|
|
@@ -96,8 +96,8 @@
|
|
|
96
96
|
"build": "vp pack",
|
|
97
97
|
"test": "vp test run",
|
|
98
98
|
"check": "vp check --fix",
|
|
99
|
-
"demo:docx": "node dist/cli.mjs docx demo/1-
|
|
100
|
-
"demo:pptx": "node dist/cli.mjs pptx demo/
|
|
101
|
-
"demo:xlsx": "node dist/cli.mjs xlsx demo/
|
|
99
|
+
"demo:docx": "node dist/cli.mjs docx demo/1-docx.json \"My Document.docx\"",
|
|
100
|
+
"demo:pptx": "node dist/cli.mjs pptx demo/2-pptx.json \"My Presentation.pptx\"",
|
|
101
|
+
"demo:xlsx": "node dist/cli.mjs xlsx demo/3-xlsx.json \"My Workbook.xlsx\""
|
|
102
102
|
}
|
|
103
103
|
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
//#region src/schemas/docx.ts
|
|
3
|
-
const anyObject$2 = z.record(z.string(), z.unknown()).describe("JSON object");
|
|
4
|
-
const docxSchema = z.object({
|
|
5
|
-
sections: z.array(z.object({
|
|
6
|
-
properties: anyObject$2.optional(),
|
|
7
|
-
children: z.array(anyObject$2.or(z.string())).describe("Section content: paragraphs ({ paragraph: {...} }), tables ({ table: {...} }), images, TOCs, etc."),
|
|
8
|
-
headers: anyObject$2.optional(),
|
|
9
|
-
footers: anyObject$2.optional()
|
|
10
|
-
}).passthrough()).describe("Document sections (required)"),
|
|
11
|
-
title: z.string().optional(),
|
|
12
|
-
subject: z.string().optional(),
|
|
13
|
-
creator: z.string().optional(),
|
|
14
|
-
keywords: z.string().optional(),
|
|
15
|
-
description: z.string().optional(),
|
|
16
|
-
lastModifiedBy: z.string().optional(),
|
|
17
|
-
revision: z.number().optional(),
|
|
18
|
-
externalStyles: z.string().optional(),
|
|
19
|
-
styles: anyObject$2.optional(),
|
|
20
|
-
numbering: anyObject$2.optional(),
|
|
21
|
-
comments: anyObject$2.optional(),
|
|
22
|
-
bibliography: anyObject$2.optional(),
|
|
23
|
-
footnotes: z.record(z.string(), anyObject$2).optional(),
|
|
24
|
-
endnotes: z.record(z.string(), anyObject$2).optional(),
|
|
25
|
-
background: anyObject$2.optional(),
|
|
26
|
-
features: anyObject$2.optional(),
|
|
27
|
-
compatabilityModeVersion: z.number().optional(),
|
|
28
|
-
compatibility: anyObject$2.optional(),
|
|
29
|
-
customProperties: z.array(anyObject$2).optional(),
|
|
30
|
-
evenAndOddHeaderAndFooters: z.boolean().optional(),
|
|
31
|
-
defaultTabStop: z.number().optional(),
|
|
32
|
-
fonts: z.array(anyObject$2).optional(),
|
|
33
|
-
hyphenation: anyObject$2.optional(),
|
|
34
|
-
characterSpacingControl: z.string().optional(),
|
|
35
|
-
view: z.string().optional(),
|
|
36
|
-
zoom: anyObject$2.optional(),
|
|
37
|
-
writeProtection: anyObject$2.optional(),
|
|
38
|
-
displayBackgroundShape: z.boolean().optional(),
|
|
39
|
-
embedTrueTypeFonts: z.boolean().optional(),
|
|
40
|
-
embedSystemFonts: z.boolean().optional(),
|
|
41
|
-
saveSubsetFonts: z.boolean().optional(),
|
|
42
|
-
docVars: z.array(anyObject$2).optional(),
|
|
43
|
-
colorSchemeMapping: z.unknown().optional()
|
|
44
|
-
}).passthrough();
|
|
45
|
-
//#endregion
|
|
46
|
-
//#region src/schemas/pptx.ts
|
|
47
|
-
const anyObject$1 = z.record(z.string(), z.unknown()).describe("JSON object");
|
|
48
|
-
const pptxSchema = z.object({
|
|
49
|
-
slides: z.array(z.object({
|
|
50
|
-
children: z.array(anyObject$1.or(z.string())).describe("Slide content: shapes ({ shape: {...} }), pictures ({ picture: {...} }), tables, charts, groups, lines, etc."),
|
|
51
|
-
background: anyObject$1.optional(),
|
|
52
|
-
transition: anyObject$1.optional(),
|
|
53
|
-
notes: z.string().optional(),
|
|
54
|
-
layout: z.string().optional(),
|
|
55
|
-
master: z.string().optional(),
|
|
56
|
-
comments: z.array(anyObject$1).optional(),
|
|
57
|
-
headerFooter: anyObject$1.optional()
|
|
58
|
-
}).passthrough()).describe("Presentation slides (required)"),
|
|
59
|
-
size: z.union([z.enum(["16:9", "4:3"]), z.object({
|
|
60
|
-
width: z.number(),
|
|
61
|
-
height: z.number()
|
|
62
|
-
})]).optional().describe("Slide size: \"16:9\", \"4:3\", or { width, height }"),
|
|
63
|
-
masters: z.array(anyObject$1).optional().describe("Slide master definitions"),
|
|
64
|
-
show: anyObject$1.optional(),
|
|
65
|
-
title: z.string().optional(),
|
|
66
|
-
subject: z.string().optional(),
|
|
67
|
-
creator: z.string().optional(),
|
|
68
|
-
keywords: z.string().optional(),
|
|
69
|
-
description: z.string().optional(),
|
|
70
|
-
lastModifiedBy: z.string().optional(),
|
|
71
|
-
revision: z.number().optional()
|
|
72
|
-
}).passthrough();
|
|
73
|
-
//#endregion
|
|
74
|
-
//#region src/schemas/xlsx.ts
|
|
75
|
-
const anyObject = z.record(z.string(), z.unknown()).describe("JSON object");
|
|
76
|
-
const xlsxSchema = z.object({
|
|
77
|
-
worksheets: z.array(z.object({
|
|
78
|
-
name: z.string().optional().describe("Sheet display name"),
|
|
79
|
-
children: z.array(z.object({
|
|
80
|
-
cells: z.array(anyObject.or(z.union([
|
|
81
|
-
z.string(),
|
|
82
|
-
z.number(),
|
|
83
|
-
z.boolean()
|
|
84
|
-
]))).optional(),
|
|
85
|
-
height: z.number().optional(),
|
|
86
|
-
hidden: z.boolean().optional(),
|
|
87
|
-
rowNumber: z.number().optional()
|
|
88
|
-
}).passthrough()).optional().describe("Worksheet rows, each with \"cells\" array. NOTE: use \"children\" not \"rows\""),
|
|
89
|
-
columns: z.array(anyObject).optional(),
|
|
90
|
-
mergeCells: z.array(anyObject).optional(),
|
|
91
|
-
freezePanes: anyObject.optional(),
|
|
92
|
-
autoFilter: z.string().optional(),
|
|
93
|
-
images: z.array(anyObject).optional(),
|
|
94
|
-
charts: z.array(anyObject).optional(),
|
|
95
|
-
dataValidations: z.array(anyObject).optional(),
|
|
96
|
-
conditionalFormats: z.array(anyObject).optional()
|
|
97
|
-
}).passthrough()).describe("Workbook worksheets (required)"),
|
|
98
|
-
title: z.string().optional(),
|
|
99
|
-
subject: z.string().optional(),
|
|
100
|
-
creator: z.string().optional(),
|
|
101
|
-
keywords: z.string().optional(),
|
|
102
|
-
description: z.string().optional(),
|
|
103
|
-
lastModifiedBy: z.string().optional(),
|
|
104
|
-
revision: z.number().optional()
|
|
105
|
-
}).passthrough();
|
|
106
|
-
//#endregion
|
|
107
|
-
//#region src/schemas/index.ts
|
|
108
|
-
const SCHEMAS = {
|
|
109
|
-
docx: docxSchema,
|
|
110
|
-
pptx: pptxSchema,
|
|
111
|
-
xlsx: xlsxSchema
|
|
112
|
-
};
|
|
113
|
-
function validateDocumentInput(type, data) {
|
|
114
|
-
const result = SCHEMAS[type].safeParse(data);
|
|
115
|
-
if (!result.success) {
|
|
116
|
-
const issue = result.error.issues[0];
|
|
117
|
-
const path = issue.path.join(".");
|
|
118
|
-
throw new Error(`Invalid ${type} options${path ? ` at "${path}"` : ""}: ${issue.message}`);
|
|
119
|
-
}
|
|
120
|
-
return result.data;
|
|
121
|
-
}
|
|
122
|
-
//#endregion
|
|
123
|
-
export { docxSchema as a, pptxSchema as i, validateDocumentInput as n, xlsxSchema as r, SCHEMAS as t };
|
|
124
|
-
|
|
125
|
-
//# sourceMappingURL=schemas-BbRmv4RW.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas-BbRmv4RW.mjs","names":["anyObject","anyObject"],"sources":["../src/schemas/docx.ts","../src/schemas/pptx.ts","../src/schemas/xlsx.ts","../src/schemas/index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst anyObject = z.record(z.string(), z.unknown()).describe(\"JSON object\");\n\nexport const docxSchema = z\n .object({\n sections: z\n .array(\n z\n .object({\n properties: anyObject.optional(),\n children: z\n .array(anyObject.or(z.string()))\n .describe(\n \"Section content: paragraphs ({ paragraph: {...} }), tables ({ table: {...} }), images, TOCs, etc.\",\n ),\n headers: anyObject.optional(),\n footers: anyObject.optional(),\n })\n .passthrough(),\n )\n .describe(\"Document sections (required)\"),\n title: z.string().optional(),\n subject: z.string().optional(),\n creator: z.string().optional(),\n keywords: z.string().optional(),\n description: z.string().optional(),\n lastModifiedBy: z.string().optional(),\n revision: z.number().optional(),\n externalStyles: z.string().optional(),\n styles: anyObject.optional(),\n numbering: anyObject.optional(),\n comments: anyObject.optional(),\n bibliography: anyObject.optional(),\n footnotes: z.record(z.string(), anyObject).optional(),\n endnotes: z.record(z.string(), anyObject).optional(),\n background: anyObject.optional(),\n features: anyObject.optional(),\n compatabilityModeVersion: z.number().optional(),\n compatibility: anyObject.optional(),\n customProperties: z.array(anyObject).optional(),\n evenAndOddHeaderAndFooters: z.boolean().optional(),\n defaultTabStop: z.number().optional(),\n fonts: z.array(anyObject).optional(),\n hyphenation: anyObject.optional(),\n characterSpacingControl: z.string().optional(),\n view: z.string().optional(),\n zoom: anyObject.optional(),\n writeProtection: anyObject.optional(),\n displayBackgroundShape: z.boolean().optional(),\n embedTrueTypeFonts: z.boolean().optional(),\n embedSystemFonts: z.boolean().optional(),\n saveSubsetFonts: z.boolean().optional(),\n docVars: z.array(anyObject).optional(),\n colorSchemeMapping: z.unknown().optional(),\n })\n .passthrough();\n","import { z } from \"zod\";\n\nconst anyObject = z.record(z.string(), z.unknown()).describe(\"JSON object\");\n\nexport const pptxSchema = z\n .object({\n slides: z\n .array(\n z\n .object({\n children: z\n .array(anyObject.or(z.string()))\n .describe(\n \"Slide content: shapes ({ shape: {...} }), pictures ({ picture: {...} }), tables, charts, groups, lines, etc.\",\n ),\n background: anyObject.optional(),\n transition: anyObject.optional(),\n notes: z.string().optional(),\n layout: z.string().optional(),\n master: z.string().optional(),\n comments: z.array(anyObject).optional(),\n headerFooter: anyObject.optional(),\n })\n .passthrough(),\n )\n .describe(\"Presentation slides (required)\"),\n size: z\n .union([z.enum([\"16:9\", \"4:3\"]), z.object({ width: z.number(), height: z.number() })])\n .optional()\n .describe('Slide size: \"16:9\", \"4:3\", or { width, height }'),\n masters: z.array(anyObject).optional().describe(\"Slide master definitions\"),\n show: anyObject.optional(),\n title: z.string().optional(),\n subject: z.string().optional(),\n creator: z.string().optional(),\n keywords: z.string().optional(),\n description: z.string().optional(),\n lastModifiedBy: z.string().optional(),\n revision: z.number().optional(),\n })\n .passthrough();\n","import { z } from \"zod\";\n\nconst anyObject = z.record(z.string(), z.unknown()).describe(\"JSON object\");\n\nexport const xlsxSchema = z\n .object({\n worksheets: z\n .array(\n z\n .object({\n name: z.string().optional().describe(\"Sheet display name\"),\n children: z\n .array(\n z\n .object({\n cells: z\n .array(anyObject.or(z.union([z.string(), z.number(), z.boolean()])))\n .optional(),\n height: z.number().optional(),\n hidden: z.boolean().optional(),\n rowNumber: z.number().optional(),\n })\n .passthrough(),\n )\n .optional()\n .describe('Worksheet rows, each with \"cells\" array. NOTE: use \"children\" not \"rows\"'),\n columns: z.array(anyObject).optional(),\n mergeCells: z.array(anyObject).optional(),\n freezePanes: anyObject.optional(),\n autoFilter: z.string().optional(),\n images: z.array(anyObject).optional(),\n charts: z.array(anyObject).optional(),\n dataValidations: z.array(anyObject).optional(),\n conditionalFormats: z.array(anyObject).optional(),\n })\n .passthrough(),\n )\n .describe(\"Workbook worksheets (required)\"),\n title: z.string().optional(),\n subject: z.string().optional(),\n creator: z.string().optional(),\n keywords: z.string().optional(),\n description: z.string().optional(),\n lastModifiedBy: z.string().optional(),\n revision: z.number().optional(),\n })\n .passthrough();\n","import { docxSchema } from \"./docx\";\nimport { pptxSchema } from \"./pptx\";\nimport { xlsxSchema } from \"./xlsx\";\n\nexport { docxSchema } from \"./docx\";\nexport { pptxSchema } from \"./pptx\";\nexport { xlsxSchema } from \"./xlsx\";\n\nexport const SCHEMAS = {\n docx: docxSchema,\n pptx: pptxSchema,\n xlsx: xlsxSchema,\n} as const;\n\nexport type DocumentType = \"docx\" | \"pptx\" | \"xlsx\";\n\nexport function validateDocumentInput(type: DocumentType, data: unknown): Record<string, unknown> {\n const result = SCHEMAS[type].safeParse(data);\n if (!result.success) {\n const issue = result.error.issues[0];\n const path = issue.path.join(\".\");\n throw new Error(`Invalid ${type} options${path ? ` at \"${path}\"` : \"\"}: ${issue.message}`);\n }\n return result.data as Record<string, unknown>;\n}\n"],"mappings":"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"}
|