@ohos-ports/slides-grab 1.5.0-beta.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.
Files changed (115) hide show
  1. package/LICENSE +21 -0
  2. package/README-ko.md +292 -0
  3. package/README.md +301 -0
  4. package/bin/ohos-postinstall.cjs +118 -0
  5. package/bin/ppt-agent.js +620 -0
  6. package/convert.cjs +20 -0
  7. package/native/@img/sharp-libvips-openharmony-arm64/lib/glib-2.0/include/glibconfig.h +220 -0
  8. package/native/@img/sharp-libvips-openharmony-arm64/lib/index.js +1 -0
  9. package/native/@img/sharp-libvips-openharmony-arm64/lib/libexpat.so +0 -0
  10. package/native/@img/sharp-libvips-openharmony-arm64/lib/libffi.so +0 -0
  11. package/native/@img/sharp-libvips-openharmony-arm64/lib/libjpeg.so +0 -0
  12. package/native/@img/sharp-libvips-openharmony-arm64/lib/libpcre2-8.so.0 +0 -0
  13. package/native/@img/sharp-libvips-openharmony-arm64/lib/libvips-cpp.so.42.20.3 +0 -0
  14. package/native/@img/sharp-libvips-openharmony-arm64/lib/libvips.so.42.20.3 +0 -0
  15. package/native/@img/sharp-libvips-openharmony-arm64/package.json +13 -0
  16. package/native/@img/sharp-openharmony-arm64/lib/sharp-openharmony-arm64.node +0 -0
  17. package/native/@img/sharp-openharmony-arm64/package.json +16 -0
  18. package/package.json +95 -0
  19. package/runtimes/claude-code/agents/design-critic-agent.md +23 -0
  20. package/runtimes/codex/agents/slides-grab-design-critic.md +22 -0
  21. package/scripts/build-viewer.js +444 -0
  22. package/scripts/design-gate.js +258 -0
  23. package/scripts/download-video.js +213 -0
  24. package/scripts/editor-server.js +1167 -0
  25. package/scripts/figma-export.js +169 -0
  26. package/scripts/generate-image.js +116 -0
  27. package/scripts/generate-images.js +164 -0
  28. package/scripts/html2pdf.js +822 -0
  29. package/scripts/html2png.js +246 -0
  30. package/scripts/html2pptx.js +162 -0
  31. package/scripts/import-template.js +86 -0
  32. package/scripts/install-runtime.js +216 -0
  33. package/scripts/render-tldraw.js +44 -0
  34. package/scripts/validate-slides.js +221 -0
  35. package/skills/slides-grab/SKILL.md +65 -0
  36. package/skills/slides-grab/references/presentation-workflow-reference.md +61 -0
  37. package/skills/slides-grab-card-news/SKILL.md +35 -0
  38. package/skills/slides-grab-design/SKILL.md +88 -0
  39. package/skills/slides-grab-design/references/beautiful-slide-defaults.md +88 -0
  40. package/skills/slides-grab-design/references/design-gate.md +349 -0
  41. package/skills/slides-grab-design/references/design-rules.md +76 -0
  42. package/skills/slides-grab-design/references/design-system-full.md +568 -0
  43. package/skills/slides-grab-design/references/detailed-design-rules.md +70 -0
  44. package/skills/slides-grab-export/SKILL.md +55 -0
  45. package/skills/slides-grab-export/references/export-rules.md +27 -0
  46. package/skills/slides-grab-export/references/html2pptx.md +627 -0
  47. package/skills/slides-grab-export/references/ooxml.md +427 -0
  48. package/skills/slides-grab-export/references/pptx-skill-reference.md +189 -0
  49. package/skills/slides-grab-html/SKILL.md +67 -0
  50. package/skills/slides-grab-image/SKILL.md +82 -0
  51. package/skills/slides-grab-plan/SKILL.md +68 -0
  52. package/skills/slides-grab-plan/references/design-md-to-slides-conversion.md +135 -0
  53. package/skills/slides-grab-plan/references/outline-format.md +47 -0
  54. package/skills/slides-grab-plan/references/plan-workflow-reference.md +140 -0
  55. package/src/codex-imagen.js +182 -0
  56. package/src/design-diversity-data.js +6932 -0
  57. package/src/design-gate-report.js +244 -0
  58. package/src/design-gate-state.js +329 -0
  59. package/src/design-import.js +164 -0
  60. package/src/design-md-parser.js +415 -0
  61. package/src/design-styles-data.js +1928 -0
  62. package/src/design-styles.js +209 -0
  63. package/src/editor/codex-edit.js +584 -0
  64. package/src/editor/edit-subprocess.js +170 -0
  65. package/src/editor/editor-codex-prompt.md +50 -0
  66. package/src/editor/editor.html +1785 -0
  67. package/src/editor/js/editor-bbox.js +332 -0
  68. package/src/editor/js/editor-chat.js +56 -0
  69. package/src/editor/js/editor-direct-edit.js +238 -0
  70. package/src/editor/js/editor-dom.js +59 -0
  71. package/src/editor/js/editor-init.js +405 -0
  72. package/src/editor/js/editor-navigation.js +54 -0
  73. package/src/editor/js/editor-select.js +558 -0
  74. package/src/editor/js/editor-send.js +175 -0
  75. package/src/editor/js/editor-sse.js +163 -0
  76. package/src/editor/js/editor-state.js +41 -0
  77. package/src/editor/js/editor-type.js +71 -0
  78. package/src/editor/js/editor-utils.js +167 -0
  79. package/src/editor/js/model-registry.js +37 -0
  80. package/src/editor/screenshot.js +82 -0
  81. package/src/export-resolution.cjs +68 -0
  82. package/src/figma.js +71 -0
  83. package/src/html2pptx-scale.cjs +120 -0
  84. package/src/html2pptx.cjs +1262 -0
  85. package/src/image-contract.js +329 -0
  86. package/src/image-native.js +468 -0
  87. package/src/nano-banana.js +841 -0
  88. package/src/ohos-browser-bridge.cjs +272 -0
  89. package/src/pptx-raster-export.cjs +299 -0
  90. package/src/resolve.js +110 -0
  91. package/src/slide-mode.cjs +72 -0
  92. package/src/template-fidelity.js +267 -0
  93. package/src/template-import.js +505 -0
  94. package/src/template-layout.js +261 -0
  95. package/src/template-pack.js +255 -0
  96. package/src/tldraw/render.js +473 -0
  97. package/src/validation/cli.js +120 -0
  98. package/src/validation/core.js +1023 -0
  99. package/templates/chart.html +121 -0
  100. package/templates/closing.html +54 -0
  101. package/templates/content.html +50 -0
  102. package/templates/contents.html +60 -0
  103. package/templates/cover.html +64 -0
  104. package/templates/custom/.gitkeep +0 -0
  105. package/templates/custom/README.md +7 -0
  106. package/templates/design-styles/README.md +20 -0
  107. package/templates/design-styles/preview.html +4438 -0
  108. package/templates/diagram-tldraw.html +56 -0
  109. package/templates/diagram.html +98 -0
  110. package/templates/quote.html +31 -0
  111. package/templates/section-divider.html +43 -0
  112. package/templates/split-layout.html +43 -0
  113. package/templates/statistics.html +55 -0
  114. package/templates/team.html +49 -0
  115. package/templates/timeline.html +59 -0
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @ohos-ports/slides-grab — postinstall script
5
+ *
6
+ * 1. Patches playwright-core to support openharmony platform
7
+ * 2. Copies bundled native binaries (sharp .node + libvips .so) to node_modules/@img/
8
+ * (these packages are NOT on public npm registry — compiled from source with OHOS clang)
9
+ *
10
+ * Runs automatically after `npm install`.
11
+ * Non-blocking: warnings don't fail npm install.
12
+ */
13
+
14
+ const fs = require('fs');
15
+ const path = require('path');
16
+
17
+ const PKG_ROOT = path.resolve(__dirname, '..');
18
+
19
+ // ─── 1. Patch playwright-core ────────────────────────────────────────────
20
+ function patchPlaywrightCore() {
21
+ let pcRoot;
22
+ try {
23
+ pcRoot = path.dirname(require.resolve('playwright-core/package.json'));
24
+ } catch {
25
+ console.log(' [ohos-bridge] playwright-core not found, skipping patch');
26
+ return false;
27
+ }
28
+
29
+ const targetFile = path.join(pcRoot, 'lib', 'server', 'registry', 'index.js');
30
+ if (!fs.existsSync(targetFile)) {
31
+ console.log(' [ohos-bridge] registry/index.js not found, skipping patch');
32
+ return false;
33
+ }
34
+
35
+ let content = fs.readFileSync(targetFile, 'utf-8');
36
+ const MARKER = '/* @ohos-ports/slides-grab-patched */';
37
+
38
+ if (content.includes(MARKER)) {
39
+ console.log(' [ohos-bridge] playwright-core already patched');
40
+ return true;
41
+ }
42
+
43
+ const oldCode = `else if (process.platform === "win32")
44
+ cacheDirectory = process.env.LOCALAPPDATA || import_path.default.join(import_os.default.homedir(), "AppData", "Local");
45
+ else
46
+ throw new Error("Unsupported platform: " + process.platform);`;
47
+
48
+ const newCode = `else if (process.platform === "win32")
49
+ cacheDirectory = process.env.LOCALAPPDATA || import_path.default.join(import_os.default.homedir(), "AppData", "Local");
50
+ else if (process.platform === "openharmony")
51
+ cacheDirectory = process.env.XDG_CACHE_HOME || import_path.default.join(import_os.default.homedir(), ".cache");
52
+ else
53
+ throw new Error("Unsupported platform: " + process.platform);`;
54
+
55
+ if (content.includes(oldCode)) {
56
+ content = MARKER + '\n' + content.replace(oldCode, newCode);
57
+ fs.writeFileSync(targetFile, content, 'utf-8');
58
+ console.log(' [ohos-bridge] ✓ Patched playwright-core registry/index.js');
59
+ return true;
60
+ }
61
+
62
+ console.log(' [ohos-bridge] ⚠ Could not find target code (playwright version mismatch?)');
63
+ return false;
64
+ }
65
+
66
+ // ─── 2. Copy native binaries ─────────────────────────────────────────────
67
+ function copyNativeBinaries() {
68
+ if (process.platform !== 'openharmony') {
69
+ console.log(' [ohos-bridge] Not openharmony, skipping native binary copy');
70
+ return false;
71
+ }
72
+
73
+ const nativeDir = path.join(PKG_ROOT, 'native', '@img');
74
+ if (!fs.existsSync(nativeDir)) {
75
+ console.log(' [ohos-bridge] native/@img not found in package, skipping');
76
+ return false;
77
+ }
78
+
79
+ // Find node_modules/@img/ (could be nested or hoisted)
80
+ let imgDir = null;
81
+ const candidates = [
82
+ path.join(PKG_ROOT, 'node_modules', '@img'),
83
+ path.resolve(PKG_ROOT, '..', '@img'),
84
+ ];
85
+ for (const c of candidates) {
86
+ if (fs.existsSync(c)) { imgDir = c; break; }
87
+ }
88
+ if (!imgDir) {
89
+ // Create it
90
+ imgDir = path.join(PKG_ROOT, 'node_modules', '@img');
91
+ fs.mkdirSync(imgDir, { recursive: true });
92
+ }
93
+
94
+ let copied = 0;
95
+ const { execSync } = require('child_process');
96
+ for (const pkgName of fs.readdirSync(nativeDir)) {
97
+ const srcDir = path.join(nativeDir, pkgName);
98
+ const dstDir = path.join(imgDir, pkgName);
99
+ try {
100
+ execSync(`cp -r "${srcDir}/." "${dstDir}/"`, { stdio: 'pipe', shell: '/bin/sh' });
101
+ const count = parseInt(execSync(`find "${dstDir}" -type f | wc -l`, { encoding: 'utf-8', shell: '/bin/sh' }).trim(), 10);
102
+ copied += count;
103
+ console.log(` [ohos-bridge] ✓ ${pkgName} ready (${count} files)`);
104
+ } catch (e) {
105
+ // Files might already exist (read-only) or copy failed — non-blocking
106
+ console.log(` [ohos-bridge] ⚠ ${pkgName} copy skipped (may already exist)`);
107
+ }
108
+ }
109
+
110
+ console.log(` [ohos-bridge] ${copied} native files copied`);
111
+ return true;
112
+ }
113
+
114
+ // ─── Main ────────────────────────────────────────────────────────────────
115
+ console.log('[ohos-ports/slides-grab] Running postinstall...');
116
+ patchPlaywrightCore();
117
+ copyNativeBinaries();
118
+ console.log('[ohos-ports/slides-grab] Postinstall complete.');