@json-to-office/json-to-pptx 0.1.0 → 0.2.0
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 +62 -7
- package/dist/index.cjs +24 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# @json-to-office/json-to-pptx
|
|
2
2
|
|
|
3
|
-
Generate professional
|
|
3
|
+
**Presentations as data, not code.** Generate professional `.pptx` files from JSON definitions — serializable, schema-validated, LLM-friendly.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@json-to-office/json-to-pptx)
|
|
6
|
+
[](https://github.com/Wiseair-srl/json-to-office/blob/main/LICENSE)
|
|
7
|
+
|
|
8
|
+
Part of the [json-to-office](https://github.com/Wiseair-srl/json-to-office) monorepo.
|
|
4
9
|
|
|
5
10
|
## Install
|
|
6
11
|
|
|
@@ -11,19 +16,69 @@ npm install @json-to-office/json-to-pptx pptxgenjs
|
|
|
11
16
|
## Usage
|
|
12
17
|
|
|
13
18
|
```ts
|
|
14
|
-
import {
|
|
19
|
+
import { generateBufferFromJson } from '@json-to-office/json-to-pptx';
|
|
20
|
+
import { writeFileSync } from 'fs';
|
|
15
21
|
|
|
16
|
-
const buffer = await
|
|
17
|
-
|
|
22
|
+
const buffer = await generateBufferFromJson({
|
|
23
|
+
name: 'pptx',
|
|
24
|
+
props: {
|
|
25
|
+
title: 'Q1 Review',
|
|
26
|
+
theme: 'corporate',
|
|
27
|
+
grid: { columns: 12, rows: 6 },
|
|
28
|
+
},
|
|
29
|
+
children: [
|
|
18
30
|
{
|
|
19
|
-
|
|
20
|
-
|
|
31
|
+
name: 'slide',
|
|
32
|
+
props: { background: { color: 'background' } },
|
|
33
|
+
children: [
|
|
34
|
+
{
|
|
35
|
+
name: 'text',
|
|
36
|
+
props: {
|
|
37
|
+
text: 'Q1 Results',
|
|
38
|
+
style: 'title',
|
|
39
|
+
grid: { column: 0, row: 0, columnSpan: 12 },
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'chart',
|
|
44
|
+
props: {
|
|
45
|
+
chartType: 'bar',
|
|
46
|
+
data: [{ name: 'Revenue ($M)', values: [1.2, 2.4, 3.1, 4.2] }],
|
|
47
|
+
grid: { column: 0, row: 1, columnSpan: 8, rowSpan: 5 },
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'shape',
|
|
52
|
+
props: {
|
|
53
|
+
type: 'roundRect',
|
|
54
|
+
fill: { color: 'accent' },
|
|
55
|
+
text: 'Revenue\n$4.2M',
|
|
56
|
+
bold: true,
|
|
57
|
+
fontColor: 'FFFFFF',
|
|
58
|
+
grid: { column: 8, row: 1, columnSpan: 4, rowSpan: 2 },
|
|
59
|
+
},
|
|
60
|
+
},
|
|
21
61
|
],
|
|
22
62
|
},
|
|
23
63
|
],
|
|
24
64
|
});
|
|
65
|
+
|
|
66
|
+
writeFileSync('deck.pptx', buffer);
|
|
25
67
|
```
|
|
26
68
|
|
|
69
|
+
## Components
|
|
70
|
+
|
|
71
|
+
7 component types: **text** (bullets, hyperlinks, style presets), **image** (URL/file/base64, rotation, rounded corners, shadows), **shape** (15 types: rect, ellipse, arrow, star, cloud, etc.), **table** (auto-pagination with header repeat, colspan/rowspan), **chart** (8 native PowerPoint types: bar, line, pie, area, doughnut, radar, bubble, scatter), **highcharts**, and **slides** with grid-based positioning.
|
|
72
|
+
|
|
73
|
+
## Highlights
|
|
74
|
+
|
|
75
|
+
- **Grid layout** — 12-column responsive grid with configurable margins and gutters. Position elements by grid coordinates or absolute inches/percentages.
|
|
76
|
+
- **Theme system** — 10-slot semantic color scheme, text style presets, 3 built-in themes (minimal, corporate, vibrant) or define your own.
|
|
77
|
+
- **Template/placeholder system** — Define reusable slide templates with named placeholder regions, static elements, and style inheritance.
|
|
78
|
+
- **Schema validation** — TypeBox schemas as both TypeScript types and runtime validators.
|
|
79
|
+
- **Native charts** — 8 PowerPoint chart types rendered natively (no image export needed).
|
|
80
|
+
- **Peer dependency** — Uses [pptxgenjs](https://github.com/gitbrent/PptxGenJS) as the rendering backend. You control the version.
|
|
81
|
+
|
|
27
82
|
## License
|
|
28
83
|
|
|
29
|
-
[MIT](
|
|
84
|
+
[MIT](https://github.com/Wiseair-srl/json-to-office/blob/main/LICENSE) — Wiseair srl
|
package/dist/index.cjs
CHANGED
|
@@ -21,38 +21,61 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
// src/index.ts
|
|
22
22
|
var index_exports = {};
|
|
23
23
|
__export(index_exports, {
|
|
24
|
+
ComponentValidationError: () => import_core_pptx3.ComponentValidationError,
|
|
25
|
+
DuplicateComponentError: () => import_core_pptx3.DuplicateComponentError,
|
|
24
26
|
PresentationGenerator: () => import_core_pptx.PresentationGenerator,
|
|
25
27
|
WarningCodes: () => import_core_pptx2.WarningCodes,
|
|
28
|
+
cleanComponentProps: () => import_core_pptx3.cleanComponentProps,
|
|
26
29
|
compareSemver: () => import_shared.compareSemver,
|
|
30
|
+
createComponent: () => import_core_pptx3.createComponent,
|
|
31
|
+
createPresentationGenerator: () => import_core_pptx3.createPresentationGenerator,
|
|
32
|
+
createVersion: () => import_core_pptx3.createVersion,
|
|
33
|
+
exportPluginSchema: () => import_core_pptx3.exportPluginSchema,
|
|
27
34
|
generateAndSaveFromJson: () => import_core_pptx.generateAndSaveFromJson,
|
|
28
35
|
generateBufferFromJson: () => import_core_pptx.generateBufferFromJson,
|
|
29
36
|
generateBufferWithWarnings: () => import_core_pptx.generateBufferWithWarnings,
|
|
30
37
|
generateFromFile: () => import_core_pptx.generateFromFile,
|
|
38
|
+
generatePluginPresentationSchema: () => import_core_pptx3.generatePluginPresentationSchema,
|
|
31
39
|
generatePresentation: () => import_core_pptx.generatePresentation,
|
|
32
40
|
isValidSemver: () => import_shared.isValidSemver,
|
|
33
41
|
latestVersion: () => import_shared.latestVersion,
|
|
34
42
|
parseSemver: () => import_shared.parseSemver,
|
|
35
|
-
|
|
43
|
+
resolveComponentVersion: () => import_core_pptx3.resolveComponentVersion,
|
|
44
|
+
savePresentation: () => import_core_pptx.savePresentation,
|
|
45
|
+
validateComponentProps: () => import_core_pptx3.validateComponentProps,
|
|
46
|
+
validatePresentation: () => import_core_pptx3.validatePresentation
|
|
36
47
|
});
|
|
37
48
|
module.exports = __toCommonJS(index_exports);
|
|
38
49
|
var import_core_pptx = require("@json-to-office/core-pptx");
|
|
39
50
|
var import_core_pptx2 = require("@json-to-office/core-pptx");
|
|
51
|
+
var import_core_pptx3 = require("@json-to-office/core-pptx");
|
|
40
52
|
__reExport(index_exports, require("@json-to-office/shared-pptx"), module.exports);
|
|
41
53
|
var import_shared = require("@json-to-office/shared");
|
|
42
54
|
// Annotate the CommonJS export names for ESM import in node:
|
|
43
55
|
0 && (module.exports = {
|
|
56
|
+
ComponentValidationError,
|
|
57
|
+
DuplicateComponentError,
|
|
44
58
|
PresentationGenerator,
|
|
45
59
|
WarningCodes,
|
|
60
|
+
cleanComponentProps,
|
|
46
61
|
compareSemver,
|
|
62
|
+
createComponent,
|
|
63
|
+
createPresentationGenerator,
|
|
64
|
+
createVersion,
|
|
65
|
+
exportPluginSchema,
|
|
47
66
|
generateAndSaveFromJson,
|
|
48
67
|
generateBufferFromJson,
|
|
49
68
|
generateBufferWithWarnings,
|
|
50
69
|
generateFromFile,
|
|
70
|
+
generatePluginPresentationSchema,
|
|
51
71
|
generatePresentation,
|
|
52
72
|
isValidSemver,
|
|
53
73
|
latestVersion,
|
|
54
74
|
parseSemver,
|
|
75
|
+
resolveComponentVersion,
|
|
55
76
|
savePresentation,
|
|
77
|
+
validateComponentProps,
|
|
78
|
+
validatePresentation,
|
|
56
79
|
...require("@json-to-office/shared-pptx")
|
|
57
80
|
});
|
|
58
81
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @json-to-office/json-to-pptx\n *\n * Public API package for PPTX presentation generation.\n * Re-exports from core-pptx and shared-pptx.\n */\n\n// Core generation API\nexport {\n generatePresentation,\n generateBufferFromJson,\n generateBufferWithWarnings,\n generateAndSaveFromJson,\n generateFromFile,\n savePresentation,\n PresentationGenerator,\n} from '@json-to-office/core-pptx';\n\nexport type {
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @json-to-office/json-to-pptx\n *\n * Public API package for PPTX presentation generation.\n * Re-exports from core-pptx and shared-pptx.\n */\n\n// Core generation API\nexport {\n generatePresentation,\n generateBufferFromJson,\n generateBufferWithWarnings,\n generateAndSaveFromJson,\n generateFromFile,\n savePresentation,\n PresentationGenerator,\n} from '@json-to-office/core-pptx';\n\nexport type {\n GenerationResult,\n PipelineWarning,\n WarningCode,\n} from '@json-to-office/core-pptx';\nexport { WarningCodes } from '@json-to-office/core-pptx';\n\n// Plugin system\nexport {\n createComponent,\n createVersion,\n createPresentationGenerator,\n resolveComponentVersion,\n validateComponentProps,\n validatePresentation,\n cleanComponentProps,\n ComponentValidationError,\n DuplicateComponentError,\n generatePluginPresentationSchema,\n exportPluginSchema,\n} from '@json-to-office/core-pptx';\n\nexport type {\n CustomComponent,\n ComponentVersion,\n ComponentVersionMap,\n RenderFunction,\n RenderContext,\n PresentationGeneratorOptions,\n PluginPresentationGenerator,\n PresentationGeneratorBuilder,\n PluginBufferGenerationResult,\n PluginFileGenerationResult,\n PluginValidationResult,\n ExtractCustomComponentType,\n CustomComponentUnion,\n ExtendedPptxComponentInput,\n ExtendedPresentationComponent,\n InferBuilderComponents,\n InferDocumentType,\n InferComponentDefinition,\n ComponentValidationResult,\n PluginValidationError,\n} from '@json-to-office/core-pptx';\n\n// Re-export shared-pptx schemas and types\nexport * from '@json-to-office/shared-pptx';\n\n// Re-export shared utilities\nexport {\n type ComponentDefinition,\n type GenerationWarning,\n type AddWarningFunction,\n type ValidationError,\n type ParsedSemver,\n isValidSemver,\n parseSemver,\n compareSemver,\n latestVersion,\n} from '@json-to-office/shared';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,uBAQO;AAOP,IAAAA,oBAA6B;AAG7B,IAAAA,oBAYO;AA0BP,0BAAc,wCAhEd;AAmEA,oBAUO;","names":["import_core_pptx"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { GenerationResult, PipelineWarning, PresentationGenerator, WarningCode, WarningCodes, generateAndSaveFromJson, generateBufferFromJson, generateBufferWithWarnings, generateFromFile, generatePresentation, savePresentation } from '@json-to-office/core-pptx';
|
|
1
|
+
export { ComponentValidationError, ComponentValidationResult, ComponentVersion, ComponentVersionMap, CustomComponent, CustomComponentUnion, DuplicateComponentError, ExtendedPptxComponentInput, ExtendedPresentationComponent, ExtractCustomComponentType, GenerationResult, InferBuilderComponents, InferComponentDefinition, InferDocumentType, PipelineWarning, PluginBufferGenerationResult, PluginFileGenerationResult, PluginPresentationGenerator, PluginValidationError, PluginValidationResult, PresentationGenerator, PresentationGeneratorBuilder, PresentationGeneratorOptions, RenderContext, RenderFunction, WarningCode, WarningCodes, cleanComponentProps, createComponent, createPresentationGenerator, createVersion, exportPluginSchema, generateAndSaveFromJson, generateBufferFromJson, generateBufferWithWarnings, generateFromFile, generatePluginPresentationSchema, generatePresentation, resolveComponentVersion, savePresentation, validateComponentProps, validatePresentation } from '@json-to-office/core-pptx';
|
|
2
2
|
export * from '@json-to-office/shared-pptx';
|
|
3
3
|
export { AddWarningFunction, ComponentDefinition, GenerationWarning, ParsedSemver, ValidationError, compareSemver, isValidSemver, latestVersion, parseSemver } from '@json-to-office/shared';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { GenerationResult, PipelineWarning, PresentationGenerator, WarningCode, WarningCodes, generateAndSaveFromJson, generateBufferFromJson, generateBufferWithWarnings, generateFromFile, generatePresentation, savePresentation } from '@json-to-office/core-pptx';
|
|
1
|
+
export { ComponentValidationError, ComponentValidationResult, ComponentVersion, ComponentVersionMap, CustomComponent, CustomComponentUnion, DuplicateComponentError, ExtendedPptxComponentInput, ExtendedPresentationComponent, ExtractCustomComponentType, GenerationResult, InferBuilderComponents, InferComponentDefinition, InferDocumentType, PipelineWarning, PluginBufferGenerationResult, PluginFileGenerationResult, PluginPresentationGenerator, PluginValidationError, PluginValidationResult, PresentationGenerator, PresentationGeneratorBuilder, PresentationGeneratorOptions, RenderContext, RenderFunction, WarningCode, WarningCodes, cleanComponentProps, createComponent, createPresentationGenerator, createVersion, exportPluginSchema, generateAndSaveFromJson, generateBufferFromJson, generateBufferWithWarnings, generateFromFile, generatePluginPresentationSchema, generatePresentation, resolveComponentVersion, savePresentation, validateComponentProps, validatePresentation } from '@json-to-office/core-pptx';
|
|
2
2
|
export * from '@json-to-office/shared-pptx';
|
|
3
3
|
export { AddWarningFunction, ComponentDefinition, GenerationWarning, ParsedSemver, ValidationError, compareSemver, isValidSemver, latestVersion, parseSemver } from '@json-to-office/shared';
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,19 @@ import {
|
|
|
9
9
|
PresentationGenerator
|
|
10
10
|
} from "@json-to-office/core-pptx";
|
|
11
11
|
import { WarningCodes } from "@json-to-office/core-pptx";
|
|
12
|
+
import {
|
|
13
|
+
createComponent,
|
|
14
|
+
createVersion,
|
|
15
|
+
createPresentationGenerator,
|
|
16
|
+
resolveComponentVersion,
|
|
17
|
+
validateComponentProps,
|
|
18
|
+
validatePresentation,
|
|
19
|
+
cleanComponentProps,
|
|
20
|
+
ComponentValidationError,
|
|
21
|
+
DuplicateComponentError,
|
|
22
|
+
generatePluginPresentationSchema,
|
|
23
|
+
exportPluginSchema
|
|
24
|
+
} from "@json-to-office/core-pptx";
|
|
12
25
|
export * from "@json-to-office/shared-pptx";
|
|
13
26
|
import {
|
|
14
27
|
isValidSemver,
|
|
@@ -17,17 +30,28 @@ import {
|
|
|
17
30
|
latestVersion
|
|
18
31
|
} from "@json-to-office/shared";
|
|
19
32
|
export {
|
|
33
|
+
ComponentValidationError,
|
|
34
|
+
DuplicateComponentError,
|
|
20
35
|
PresentationGenerator,
|
|
21
36
|
WarningCodes,
|
|
37
|
+
cleanComponentProps,
|
|
22
38
|
compareSemver,
|
|
39
|
+
createComponent,
|
|
40
|
+
createPresentationGenerator,
|
|
41
|
+
createVersion,
|
|
42
|
+
exportPluginSchema,
|
|
23
43
|
generateAndSaveFromJson,
|
|
24
44
|
generateBufferFromJson,
|
|
25
45
|
generateBufferWithWarnings,
|
|
26
46
|
generateFromFile,
|
|
47
|
+
generatePluginPresentationSchema,
|
|
27
48
|
generatePresentation,
|
|
28
49
|
isValidSemver,
|
|
29
50
|
latestVersion,
|
|
30
51
|
parseSemver,
|
|
31
|
-
|
|
52
|
+
resolveComponentVersion,
|
|
53
|
+
savePresentation,
|
|
54
|
+
validateComponentProps,
|
|
55
|
+
validatePresentation
|
|
32
56
|
};
|
|
33
57
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @json-to-office/json-to-pptx\n *\n * Public API package for PPTX presentation generation.\n * Re-exports from core-pptx and shared-pptx.\n */\n\n// Core generation API\nexport {\n generatePresentation,\n generateBufferFromJson,\n generateBufferWithWarnings,\n generateAndSaveFromJson,\n generateFromFile,\n savePresentation,\n PresentationGenerator,\n} from '@json-to-office/core-pptx';\n\nexport type {
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @json-to-office/json-to-pptx\n *\n * Public API package for PPTX presentation generation.\n * Re-exports from core-pptx and shared-pptx.\n */\n\n// Core generation API\nexport {\n generatePresentation,\n generateBufferFromJson,\n generateBufferWithWarnings,\n generateAndSaveFromJson,\n generateFromFile,\n savePresentation,\n PresentationGenerator,\n} from '@json-to-office/core-pptx';\n\nexport type {\n GenerationResult,\n PipelineWarning,\n WarningCode,\n} from '@json-to-office/core-pptx';\nexport { WarningCodes } from '@json-to-office/core-pptx';\n\n// Plugin system\nexport {\n createComponent,\n createVersion,\n createPresentationGenerator,\n resolveComponentVersion,\n validateComponentProps,\n validatePresentation,\n cleanComponentProps,\n ComponentValidationError,\n DuplicateComponentError,\n generatePluginPresentationSchema,\n exportPluginSchema,\n} from '@json-to-office/core-pptx';\n\nexport type {\n CustomComponent,\n ComponentVersion,\n ComponentVersionMap,\n RenderFunction,\n RenderContext,\n PresentationGeneratorOptions,\n PluginPresentationGenerator,\n PresentationGeneratorBuilder,\n PluginBufferGenerationResult,\n PluginFileGenerationResult,\n PluginValidationResult,\n ExtractCustomComponentType,\n CustomComponentUnion,\n ExtendedPptxComponentInput,\n ExtendedPresentationComponent,\n InferBuilderComponents,\n InferDocumentType,\n InferComponentDefinition,\n ComponentValidationResult,\n PluginValidationError,\n} from '@json-to-office/core-pptx';\n\n// Re-export shared-pptx schemas and types\nexport * from '@json-to-office/shared-pptx';\n\n// Re-export shared utilities\nexport {\n type ComponentDefinition,\n type GenerationWarning,\n type AddWarningFunction,\n type ValidationError,\n type ParsedSemver,\n isValidSemver,\n parseSemver,\n compareSemver,\n latestVersion,\n} from '@json-to-office/shared';\n"],"mappings":";AAQA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP,SAAS,oBAAoB;AAG7B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA0BP,cAAc;AAGd;AAAA,EAME;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@json-to-office/json-to-pptx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Professional .pptx presentation generation from JSON - Public API package",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"LICENSE"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@json-to-office/
|
|
28
|
-
"@json-to-office/shared
|
|
29
|
-
"@json-to-office/
|
|
27
|
+
"@json-to-office/core-pptx": "^0.2.0",
|
|
28
|
+
"@json-to-office/shared": "^0.2.0",
|
|
29
|
+
"@json-to-office/shared-pptx": "^0.2.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"pptxgenjs": "^3.12.0"
|