@jingyi0605/codingns 0.8.1 → 0.8.5
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/bin/codingns.mjs +180 -0
- package/dist/public/assets/{AdaptiveButlerPage-b7s6F_sd.js → AdaptiveButlerPage-CJw8Ae62.js} +3 -3
- package/dist/public/assets/App-BOHBGFOd.js +30 -0
- package/dist/public/assets/{BootstrapPage-jFfl7KNK.js → BootstrapPage-BxHQT4nA.js} +1 -1
- package/dist/public/assets/{ConversationPage-sj_rn4q0.js → ConversationPage-DWFsF6BB.js} +6 -6
- package/dist/public/assets/{DesktopDetachPreviewPage-C5c88SOX.js → DesktopDetachPreviewPage-DOgEjYEf.js} +1 -1
- package/dist/public/assets/DesktopModal-D_A8sgQU.js +1 -0
- package/dist/public/assets/DesktopWindowPage-DK7L7osV.js +2 -0
- package/dist/public/assets/FileContextPanel-BdCoubcJ.js +1 -0
- package/dist/public/assets/GitSidebar-BeZ0hj7A.js +6 -0
- package/dist/public/assets/MobileCreateSessionSheet-DfLMVu8q.js +1 -0
- package/dist/public/assets/MobileSheet-5kZ-w-gU.js +1 -0
- package/dist/public/assets/{MobileTopHeaderFrame-_I0t7cC_.js → MobileTopHeaderFrame-lcp2GscV.js} +1 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-C6JMiOq_.js +1 -0
- package/dist/public/assets/PluginAccessOverview-DGcKAMQl.js +1 -0
- package/dist/public/assets/PluginContainerPage-BlY-xJDh.js +1 -0
- package/dist/public/assets/PluginDetailPage-CAJ7LFpD.js +1 -0
- package/dist/public/assets/PluginsListPage-BxZG1NyT.js +1 -0
- package/dist/public/assets/{RelayConnectEntryPage-CMtDWyGS.js → RelayConnectEntryPage-CfNO_TIl.js} +1 -1
- package/dist/public/assets/ServerSettingsModal-by36Z_5k.js +1 -0
- package/dist/public/assets/SessionIndexPage-DkBp9Mqz.js +1 -0
- package/dist/public/assets/SettingsPage-C-ASmJAG.js +2 -0
- package/dist/public/assets/TerminalManagerPanel-NVZRxxmH.js +1 -0
- package/dist/public/assets/{TerminalPage-CBIKHI33.js → TerminalPage-C4LNoPBp.js} +3 -3
- package/dist/public/assets/TerminalRuntimeFallbackModal-Bzum5nZ0.js +1 -0
- package/dist/public/assets/ToolFilesPage-47zbdgTW.js +1 -0
- package/dist/public/assets/ToolGitPage-Fuk_b_jg.js +1 -0
- package/dist/public/assets/ToolProcessesPage-sWSMWD-9.js +1 -0
- package/dist/public/assets/ToolsHomePage-R1mZlbZi.js +1 -0
- package/dist/public/assets/WorkbenchLandingPage-CqmiFH2u.js +1 -0
- package/dist/public/assets/WorkbenchLayout-OFi6CWgH.js +244 -0
- package/dist/public/assets/WorkbenchModal-C7qoQElW.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-BAQe_E0O.js +1 -0
- package/dist/public/assets/WorkspaceDebugDetailPage-DhKa6e9y.js +1 -0
- package/dist/public/assets/WorkspaceDetailPage-BPsrFffw.js +1 -0
- package/dist/public/assets/WorkspaceHomePage-KAtqZOAb.js +1 -0
- package/dist/public/assets/{client-runtime-manager-CdJP7nUp.js → client-runtime-manager-wmCJZKYd.js} +1 -1
- package/dist/public/assets/file-tree-icon-Mg1DiBRX.js +590 -0
- package/dist/public/assets/{index-VVxfF0s5.css → index-C4t-vvqk.css} +1 -1
- package/dist/public/assets/index-CL97fwWB.js +42 -0
- package/dist/public/assets/{login-direct-candidate-resolver-C-mo698r.js → login-direct-candidate-resolver-BOAgTuUf.js} +1 -1
- package/dist/public/assets/plugin-permission-copy-Cq99cnzV.js +1 -0
- package/dist/public/assets/plugins-api-BQTV5DOp.js +1 -0
- package/dist/public/assets/{preferences-service-CnaTvZq2.js → preferences-service-DJxbEEeg.js} +1 -1
- package/dist/public/assets/realtime-client-CLafKzzJ.js +1 -0
- package/dist/public/assets/{relay-entry-D7OgZZN-.js → relay-entry-D-LfvdiX.js} +1 -1
- package/dist/public/assets/{terminal-runtime-meta-BCtAYB0E.js → terminal-runtime-meta-BJmy8dyK.js} +1 -1
- package/dist/public/assets/useRegisteredDebugTemplates-DQAWVdCo.js +1 -0
- package/dist/public/assets/workbench-navigation-MEzCSmsK.js +1 -0
- package/dist/public/index.html +2 -2
- package/dist/server/config/env.d.ts +1 -0
- package/dist/server/config/env.js +4 -0
- package/dist/server/config/env.js.map +1 -1
- package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js +1 -1
- package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js.map +1 -1
- package/dist/server/modules/channels/wechat-claw-client.d.ts +51 -0
- package/dist/server/modules/channels/wechat-claw-client.js +245 -0
- package/dist/server/modules/channels/wechat-claw-client.js.map +1 -0
- package/dist/server/modules/file/file-access-guard.d.ts +2 -0
- package/dist/server/modules/file/file-access-guard.js +24 -2
- package/dist/server/modules/file/file-access-guard.js.map +1 -1
- package/dist/server/modules/file/file-controller.d.ts +153 -1
- package/dist/server/modules/file/file-controller.js +215 -1
- package/dist/server/modules/file/file-controller.js.map +1 -1
- package/dist/server/modules/file/file-preview-link-service.d.ts +2 -0
- package/dist/server/modules/file/file-preview-link-service.js +5 -1
- package/dist/server/modules/file/file-preview-link-service.js.map +1 -1
- package/dist/server/modules/file/runtime/codingns-workspace-bridge.js +911 -0
- package/dist/server/modules/file/workspace-file-bridge-service.d.ts +126 -0
- package/dist/server/modules/file/workspace-file-bridge-service.js +471 -0
- package/dist/server/modules/file/workspace-file-bridge-service.js.map +1 -0
- package/dist/server/modules/file/workspace-file-bridge-watch-service.d.ts +42 -0
- package/dist/server/modules/file/workspace-file-bridge-watch-service.js +304 -0
- package/dist/server/modules/file/workspace-file-bridge-watch-service.js.map +1 -0
- package/dist/server/modules/model-switch/cc-switch-adapter.js +1 -1
- package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -1
- package/dist/server/modules/plugins/plugin-controller.d.ts +131 -0
- package/dist/server/modules/plugins/plugin-controller.js +277 -0
- package/dist/server/modules/plugins/plugin-controller.js.map +1 -0
- package/dist/server/modules/plugins/plugin-file-gateway-service.d.ts +38 -0
- package/dist/server/modules/plugins/plugin-file-gateway-service.js +178 -0
- package/dist/server/modules/plugins/plugin-file-gateway-service.js.map +1 -0
- package/dist/server/modules/plugins/plugin-manifest.d.ts +8 -0
- package/dist/server/modules/plugins/plugin-manifest.js +420 -0
- package/dist/server/modules/plugins/plugin-manifest.js.map +1 -0
- package/dist/server/modules/plugins/plugin-permission-service.d.ts +49 -0
- package/dist/server/modules/plugins/plugin-permission-service.js +267 -0
- package/dist/server/modules/plugins/plugin-permission-service.js.map +1 -0
- package/dist/server/modules/plugins/plugin-process-runner.d.ts +21 -0
- package/dist/server/modules/plugins/plugin-process-runner.js +127 -0
- package/dist/server/modules/plugins/plugin-process-runner.js.map +1 -0
- package/dist/server/modules/plugins/plugin-registry-service.d.ts +41 -0
- package/dist/server/modules/plugins/plugin-registry-service.js +238 -0
- package/dist/server/modules/plugins/plugin-registry-service.js.map +1 -0
- package/dist/server/modules/plugins/plugin-runtime-service.d.ts +55 -0
- package/dist/server/modules/plugins/plugin-runtime-service.js +252 -0
- package/dist/server/modules/plugins/plugin-runtime-service.js.map +1 -0
- package/dist/server/modules/plugins/plugin-runtime-session-service.d.ts +21 -0
- package/dist/server/modules/plugins/plugin-runtime-session-service.js +83 -0
- package/dist/server/modules/plugins/plugin-runtime-session-service.js.map +1 -0
- package/dist/server/modules/plugins/plugin-scheduler-service.d.ts +31 -0
- package/dist/server/modules/plugins/plugin-scheduler-service.js +232 -0
- package/dist/server/modules/plugins/plugin-scheduler-service.js.map +1 -0
- package/dist/server/modules/plugins/plugin-static-service.d.ts +11 -0
- package/dist/server/modules/plugins/plugin-static-service.js +145 -0
- package/dist/server/modules/plugins/plugin-static-service.js.map +1 -0
- package/dist/server/modules/presentation/presentation-controller.d.ts +3 -0
- package/dist/server/modules/presentation/presentation-controller.js +11 -0
- package/dist/server/modules/presentation/presentation-controller.js.map +1 -1
- package/dist/server/modules/presentation/presentation-export-task-service.d.ts +6 -0
- package/dist/server/modules/presentation/presentation-export-task-service.js +52 -8
- package/dist/server/modules/presentation/presentation-export-task-service.js.map +1 -1
- package/dist/server/modules/presentation/presentation-pptx-export-service.js +200 -14
- package/dist/server/modules/presentation/presentation-pptx-export-service.js.map +1 -1
- package/dist/server/modules/presentation/presentation-renderer.d.ts +50 -0
- package/dist/server/modules/presentation/presentation-renderer.js +450 -37
- package/dist/server/modules/presentation/presentation-renderer.js.map +1 -1
- package/dist/server/modules/tasks/task-types.d.ts +2 -0
- package/dist/server/modules/tasks/task-types.js +2 -0
- package/dist/server/modules/tasks/task-types.js.map +1 -1
- package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js +1 -1
- package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js.map +1 -1
- package/dist/server/routes/files.js +40 -0
- package/dist/server/routes/files.js.map +1 -1
- package/dist/server/routes/plugins-public.d.ts +3 -0
- package/dist/server/routes/plugins-public.js +5 -0
- package/dist/server/routes/plugins-public.js.map +1 -0
- package/dist/server/routes/plugins.d.ts +3 -0
- package/dist/server/routes/plugins.js +19 -0
- package/dist/server/routes/plugins.js.map +1 -0
- package/dist/server/routes/presentation.js +1 -0
- package/dist/server/routes/presentation.js.map +1 -1
- package/dist/server/server/create-server.d.ts +20 -0
- package/dist/server/server/create-server.js +47 -1
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/shared/http/error-handler.js +10 -6
- package/dist/server/shared/http/error-handler.js.map +1 -1
- package/dist/server/shared/runtime/better-sqlite3.d.ts +5 -0
- package/dist/server/shared/runtime/better-sqlite3.js +6 -0
- package/dist/server/shared/runtime/better-sqlite3.js.map +1 -0
- package/dist/server/storage/repositories/plugin-audit-event-repository.d.ts +8 -0
- package/dist/server/storage/repositories/plugin-audit-event-repository.js +49 -0
- package/dist/server/storage/repositories/plugin-audit-event-repository.js.map +1 -0
- package/dist/server/storage/repositories/plugin-definition-repository.d.ts +10 -0
- package/dist/server/storage/repositories/plugin-definition-repository.js +84 -0
- package/dist/server/storage/repositories/plugin-definition-repository.js.map +1 -0
- package/dist/server/storage/repositories/plugin-enablement-repository.d.ts +9 -0
- package/dist/server/storage/repositories/plugin-enablement-repository.js +74 -0
- package/dist/server/storage/repositories/plugin-enablement-repository.js.map +1 -0
- package/dist/server/storage/repositories/plugin-permission-grant-repository.d.ts +12 -0
- package/dist/server/storage/repositories/plugin-permission-grant-repository.js +142 -0
- package/dist/server/storage/repositories/plugin-permission-grant-repository.js.map +1 -0
- package/dist/server/storage/repositories/plugin-run-repository.d.ts +10 -0
- package/dist/server/storage/repositories/plugin-run-repository.js +111 -0
- package/dist/server/storage/repositories/plugin-run-repository.js.map +1 -0
- package/dist/server/storage/repositories/plugin-runtime-session-repository.d.ts +10 -0
- package/dist/server/storage/repositories/plugin-runtime-session-repository.js +86 -0
- package/dist/server/storage/repositories/plugin-runtime-session-repository.js.map +1 -0
- package/dist/server/storage/sqlite/client.d.ts +2 -2
- package/dist/server/storage/sqlite/client.js +250 -1
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +140 -0
- package/dist/server/types/domain.d.ts +122 -0
- package/package.json +10 -3
- package/scripts/postinstall.mjs +248 -11
- package/vendor/better-sqlite3-win32-x64-node22/LICENSE +21 -0
- package/vendor/better-sqlite3-win32-x64-node22/README.md +12 -0
- package/vendor/better-sqlite3-win32-x64-node22/README.upstream.md +99 -0
- package/vendor/better-sqlite3-win32-x64-node22/binding.gyp +38 -0
- package/vendor/better-sqlite3-win32-x64-node22/build/Release/better_sqlite3.node +0 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/common.gypi +68 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/copy.js +31 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/defines.gypi +41 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/download.sh +122 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/patches/1208.patch +15 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3.c +265994 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3.h +13968 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3ext.h +730 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3.gyp +80 -0
- package/vendor/better-sqlite3-win32-x64-node22/deps/test_extension.c +21 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/database.js +90 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/index.js +3 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/aggregate.js +43 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/backup.js +67 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/function.js +31 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/inspect.js +7 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/pragma.js +12 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/serialize.js +16 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/table.js +189 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/transaction.js +78 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/methods/wrappers.js +54 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/sqlite-error.js +20 -0
- package/vendor/better-sqlite3-win32-x64-node22/lib/util.js +12 -0
- package/vendor/better-sqlite3-win32-x64-node22/package.json +38 -0
- package/vendor/better-sqlite3-win32-x64-node22/scripts/verify-runtime.cjs +42 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/addon.cpp +47 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/better_sqlite3.cpp +74 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/objects/backup.cpp +120 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/objects/backup.hpp +36 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/objects/database.cpp +417 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/objects/database.hpp +103 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement-iterator.cpp +113 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement-iterator.hpp +50 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement.cpp +383 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement.hpp +58 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/bind-map.cpp +73 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/binder.cpp +193 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/constants.cpp +172 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-aggregate.cpp +121 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-function.cpp +59 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-table.cpp +409 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/data-converter.cpp +17 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/data.cpp +194 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/helpers.cpp +109 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/macros.cpp +83 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/query-macros.cpp +71 -0
- package/vendor/better-sqlite3-win32-x64-node22/src/util/row-builder.cpp +49 -0
- package/vendor/node-pty-fork/README.md +1 -0
- package/vendor/node-pty-fork/scripts/runtime-install-context.cjs +24 -0
- package/vendor/node-pty-fork/scripts/verify-runtime.cjs +8 -0
- package/vendor/node-pty-fork/scripts/verify-runtime.test.cjs +30 -0
- package/vendor-src/better-sqlite3-win32-x64-node22/README.md +12 -0
- package/dist/public/assets/App-B0q8uDA-.js +0 -30
- package/dist/public/assets/DesktopWindowPage-BdKUZrKG.js +0 -2
- package/dist/public/assets/FileContextPanel-lM5mBcfn.js +0 -1
- package/dist/public/assets/GitSidebar-CmXAhyjo.js +0 -6
- package/dist/public/assets/MobileCreateSessionSheet-CceV0-AH.js +0 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-DhaM9fgx.js +0 -1
- package/dist/public/assets/ServerSettingsModal-Rkgn3jft.js +0 -1
- package/dist/public/assets/SessionIndexPage-BOumP3ij.js +0 -1
- package/dist/public/assets/SettingsPage-vx_c-00-.js +0 -2
- package/dist/public/assets/TerminalManagerPanel-D9JHCS6d.js +0 -1
- package/dist/public/assets/TerminalRuntimeFallbackModal-W5NjqFEz.js +0 -1
- package/dist/public/assets/ToolFilesPage-DWtpaN_7.js +0 -1
- package/dist/public/assets/ToolGitPage-MpGXsw4_.js +0 -1
- package/dist/public/assets/ToolProcessesPage-B1jHQKhZ.js +0 -1
- package/dist/public/assets/ToolsHomePage-CJrn8ZFl.js +0 -1
- package/dist/public/assets/WorkbenchLandingPage-CJQ1V5U-.js +0 -1
- package/dist/public/assets/WorkbenchLayout-D48i71PU.js +0 -244
- package/dist/public/assets/WorkbenchModal-BYNuMIoV.js +0 -1
- package/dist/public/assets/WorkbenchShellRoute-CGKjy4J-.js +0 -1
- package/dist/public/assets/WorkspaceDebugDetailPage-DCAYgays.js +0 -1
- package/dist/public/assets/WorkspaceDetailPage-D5v-nUIi.js +0 -1
- package/dist/public/assets/WorkspaceHomePage-I5G1p5SR.js +0 -1
- package/dist/public/assets/file-tree-icon-BFwaPxKs.js +0 -590
- package/dist/public/assets/index-CjewzOUG.js +0 -42
- package/dist/public/assets/model-switch-api-Br0ivfe5.js +0 -1
- package/dist/public/assets/realtime-client-BlQRqVmm.js +0 -1
- package/dist/public/assets/useRegisteredDebugTemplates-CXmxu69X.js +0 -1
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { pathToFileURL } from "node:url";
|
|
3
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
4
4
|
import { chromium } from "playwright-core";
|
|
5
5
|
const PRESENTATION_PAGE_SELECTORS = [
|
|
6
|
+
".reveal .slides > section",
|
|
7
|
+
"body .deck > section.slide",
|
|
8
|
+
"body .deck > .slide",
|
|
6
9
|
"section.slide",
|
|
7
10
|
".deck > .slide",
|
|
8
11
|
".slide[data-title]",
|
|
9
|
-
".slide[data-slide]"
|
|
12
|
+
".slide[data-slide]",
|
|
13
|
+
"[data-slide]",
|
|
14
|
+
"[data-title]",
|
|
15
|
+
".swiper-slide"
|
|
10
16
|
];
|
|
11
17
|
export async function renderPresentationDocument(config, input) {
|
|
12
18
|
input.signal.throwIfAborted();
|
|
@@ -28,11 +34,13 @@ export async function renderPresentationDocument(config, input) {
|
|
|
28
34
|
await page.emulateMedia({ media: "screen" });
|
|
29
35
|
input.signal.throwIfAborted();
|
|
30
36
|
const sourceDirUrl = pathToFileURL(path.dirname(input.sourceFilePath)).href;
|
|
31
|
-
|
|
37
|
+
const htmlContent = inlineLocalImageSources(injectBaseHref(input.htmlContent, sourceDirUrl), input.sourceFilePath);
|
|
38
|
+
await page.setContent(htmlContent, {
|
|
32
39
|
waitUntil: "load",
|
|
33
40
|
timeout: 20_000
|
|
34
41
|
});
|
|
35
42
|
await page.waitForLoadState("networkidle", { timeout: 3_000 }).catch(() => undefined);
|
|
43
|
+
await waitForPresentationImages(page).catch(() => undefined);
|
|
36
44
|
input.signal.throwIfAborted();
|
|
37
45
|
const layout = await page.evaluate((selectors) => {
|
|
38
46
|
const runtimeGlobal = globalThis;
|
|
@@ -78,14 +86,11 @@ export async function renderPresentationDocument(config, input) {
|
|
|
78
86
|
pageRoots.forEach((element, index) => {
|
|
79
87
|
element.setAttribute?.("data-cns-export-page", "true");
|
|
80
88
|
element.setAttribute?.("data-cns-export-page-index", String(index));
|
|
81
|
-
element.
|
|
82
|
-
element.
|
|
83
|
-
element.
|
|
84
|
-
element.style?.setProperty?.("
|
|
85
|
-
element.style?.setProperty?.("
|
|
86
|
-
element.style?.setProperty?.("width", `${width}px`, "important");
|
|
87
|
-
element.style?.setProperty?.("height", `${height}px`, "important");
|
|
88
|
-
element.style?.setProperty?.("margin", "0", "important");
|
|
89
|
+
element.removeAttribute?.("hidden");
|
|
90
|
+
element.setAttribute?.("aria-hidden", "false");
|
|
91
|
+
element.classList?.add?.("active");
|
|
92
|
+
element.style?.setProperty?.("opacity", "1", "important");
|
|
93
|
+
element.style?.setProperty?.("visibility", "visible", "important");
|
|
89
94
|
});
|
|
90
95
|
const style = doc.createElement("style");
|
|
91
96
|
style.id = "cns-presentation-export-style";
|
|
@@ -103,22 +108,35 @@ export async function renderPresentationDocument(config, input) {
|
|
|
103
108
|
-webkit-print-color-adjust: exact;
|
|
104
109
|
print-color-adjust: exact;
|
|
105
110
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
111
|
+
*, *::before, *::after {
|
|
112
|
+
animation-duration: 0s !important;
|
|
113
|
+
animation-delay: 0s !important;
|
|
114
|
+
animation-iteration-count: 1 !important;
|
|
115
|
+
transition-duration: 0s !important;
|
|
116
|
+
transition-delay: 0s !important;
|
|
117
|
+
caret-color: transparent !important;
|
|
118
|
+
}
|
|
119
|
+
[class*="fade-"], [class*="reveal-"], [class*="animate-"],
|
|
120
|
+
[data-animate], [data-animation] {
|
|
121
|
+
opacity: 1 !important;
|
|
110
122
|
transform: none !important;
|
|
123
|
+
filter: none !important;
|
|
124
|
+
}
|
|
125
|
+
.toc, .controls, .progress {
|
|
126
|
+
display: none !important;
|
|
127
|
+
}
|
|
128
|
+
[data-cns-export-page-list="true"] {
|
|
129
|
+
-webkit-print-color-adjust: exact;
|
|
130
|
+
print-color-adjust: exact;
|
|
111
131
|
}
|
|
112
132
|
[data-cns-export-page="true"] {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
page-break-after: always;
|
|
116
|
-
break-inside: avoid;
|
|
117
|
-
page-break-inside: avoid;
|
|
133
|
+
opacity: 1 !important;
|
|
134
|
+
visibility: visible !important;
|
|
118
135
|
}
|
|
119
|
-
[data-cns-export-page="true"]
|
|
120
|
-
|
|
121
|
-
|
|
136
|
+
[data-cns-export-page]:not([data-cns-export-active="true"]) {
|
|
137
|
+
display: none !important;
|
|
138
|
+
opacity: 0 !important;
|
|
139
|
+
visibility: hidden !important;
|
|
122
140
|
}
|
|
123
141
|
`;
|
|
124
142
|
doc.head.appendChild(style);
|
|
@@ -137,6 +155,11 @@ export async function renderPresentationDocument(config, input) {
|
|
|
137
155
|
renderPdf: async (outputFilePath) => {
|
|
138
156
|
input.signal.throwIfAborted();
|
|
139
157
|
fs.mkdirSync(path.dirname(outputFilePath), { recursive: true });
|
|
158
|
+
const editablePages = await extractEditablePages(page, layout.pageCount, input.signal);
|
|
159
|
+
await page.setContent(buildEditablePdfDocument(editablePages, layout.width, layout.height), {
|
|
160
|
+
waitUntil: "load",
|
|
161
|
+
timeout: 20_000
|
|
162
|
+
});
|
|
140
163
|
await page.pdf({
|
|
141
164
|
path: outputFilePath,
|
|
142
165
|
printBackground: true,
|
|
@@ -153,20 +176,11 @@ export async function renderPresentationDocument(config, input) {
|
|
|
153
176
|
},
|
|
154
177
|
renderPageImages: async () => {
|
|
155
178
|
input.signal.throwIfAborted();
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
type: "png",
|
|
162
|
-
timeout: 15_000
|
|
163
|
-
});
|
|
164
|
-
pageImages.push({
|
|
165
|
-
index,
|
|
166
|
-
dataUrl: `data:image/png;base64,${imageBase64.toString("base64")}`
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
return pageImages;
|
|
179
|
+
return await capturePageImages(page, layout.pageCount, input.signal);
|
|
180
|
+
},
|
|
181
|
+
renderEditablePages: async () => {
|
|
182
|
+
input.signal.throwIfAborted();
|
|
183
|
+
return await extractEditablePages(page, layout.pageCount, input.signal);
|
|
170
184
|
},
|
|
171
185
|
close: async () => {
|
|
172
186
|
input.signal.removeEventListener("abort", closeBrowserOnAbort);
|
|
@@ -180,6 +194,65 @@ export async function renderPresentationDocument(config, input) {
|
|
|
180
194
|
throw error;
|
|
181
195
|
}
|
|
182
196
|
}
|
|
197
|
+
function inlineLocalImageSources(htmlContent, sourceFilePath) {
|
|
198
|
+
const sourceDir = path.dirname(sourceFilePath);
|
|
199
|
+
return htmlContent.replace(/(<img\b[^>]*?\bsrc\s*=\s*)(["'])([^"']+)\2/gi, (fullMatch, prefix, quote, rawSrc) => {
|
|
200
|
+
const imageFilePath = resolveLocalImagePath(rawSrc, sourceDir);
|
|
201
|
+
if (!imageFilePath || !fs.existsSync(imageFilePath)) {
|
|
202
|
+
return fullMatch;
|
|
203
|
+
}
|
|
204
|
+
const stat = fs.statSync(imageFilePath);
|
|
205
|
+
if (!stat.isFile() || stat.size > 25 * 1024 * 1024) {
|
|
206
|
+
return fullMatch;
|
|
207
|
+
}
|
|
208
|
+
const mimeType = resolveImageMimeType(imageFilePath);
|
|
209
|
+
if (!mimeType) {
|
|
210
|
+
return fullMatch;
|
|
211
|
+
}
|
|
212
|
+
const dataUrl = `data:${mimeType};base64,${fs.readFileSync(imageFilePath).toString("base64")}`;
|
|
213
|
+
return `${prefix}${quote}${escapeHtmlAttribute(dataUrl)}${quote}`;
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
function resolveLocalImagePath(rawSrc, sourceDir) {
|
|
217
|
+
const trimmed = rawSrc.trim();
|
|
218
|
+
if (!trimmed || trimmed.startsWith("#") || /^[a-z][a-z\d+.-]*:/i.test(trimmed) && !trimmed.startsWith("file:")) {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
try {
|
|
222
|
+
if (trimmed.startsWith("file:")) {
|
|
223
|
+
return fileURLToPath(trimmed);
|
|
224
|
+
}
|
|
225
|
+
const cleanSrc = trimmed.split(/[?#]/, 1)[0] ?? "";
|
|
226
|
+
if (!cleanSrc || path.isAbsolute(cleanSrc)) {
|
|
227
|
+
return cleanSrc || null;
|
|
228
|
+
}
|
|
229
|
+
return path.resolve(sourceDir, decodeURIComponent(cleanSrc));
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
function resolveImageMimeType(filePath) {
|
|
236
|
+
const extension = path.extname(filePath).toLowerCase();
|
|
237
|
+
switch (extension) {
|
|
238
|
+
case ".apng":
|
|
239
|
+
case ".png":
|
|
240
|
+
return "image/png";
|
|
241
|
+
case ".avif":
|
|
242
|
+
return "image/avif";
|
|
243
|
+
case ".gif":
|
|
244
|
+
return "image/gif";
|
|
245
|
+
case ".jpg":
|
|
246
|
+
case ".jpeg":
|
|
247
|
+
return "image/jpeg";
|
|
248
|
+
case ".svg":
|
|
249
|
+
return "image/svg+xml";
|
|
250
|
+
case ".webp":
|
|
251
|
+
return "image/webp";
|
|
252
|
+
default:
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
183
256
|
function injectBaseHref(htmlContent, baseHref) {
|
|
184
257
|
const baseTag = `<base href="${escapeHtmlAttribute(baseHref)}">`;
|
|
185
258
|
if (/<base[\s>]/i.test(htmlContent)) {
|
|
@@ -205,4 +278,344 @@ function resolvePreferredBrowserExecutablePath(config) {
|
|
|
205
278
|
}
|
|
206
279
|
return undefined;
|
|
207
280
|
}
|
|
281
|
+
async function capturePageImages(page, pageCount, signal) {
|
|
282
|
+
const pageImages = [];
|
|
283
|
+
for (let index = 0; index < pageCount; index += 1) {
|
|
284
|
+
signal.throwIfAborted();
|
|
285
|
+
await setActiveExportPage(page, index);
|
|
286
|
+
await waitForPresentationImages(page).catch(() => undefined);
|
|
287
|
+
await page.waitForTimeout(50).catch(() => undefined);
|
|
288
|
+
const locator = page.locator(`[data-cns-export-page-index="${index}"]`);
|
|
289
|
+
const imageBase64 = await locator.screenshot({
|
|
290
|
+
type: "png",
|
|
291
|
+
timeout: 15_000
|
|
292
|
+
});
|
|
293
|
+
pageImages.push({
|
|
294
|
+
index,
|
|
295
|
+
dataUrl: `data:image/png;base64,${imageBase64.toString("base64")}`
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
return pageImages;
|
|
299
|
+
}
|
|
300
|
+
async function waitForPresentationImages(page) {
|
|
301
|
+
await page.evaluate(async () => {
|
|
302
|
+
const runtimeGlobal = globalThis;
|
|
303
|
+
const images = Array.from(runtimeGlobal.document.images);
|
|
304
|
+
await runtimeGlobal.Promise.all(images.map(async (image) => {
|
|
305
|
+
if (image.complete && image.naturalWidth > 0) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
if (typeof image.decode === "function") {
|
|
309
|
+
await image.decode().catch(() => undefined);
|
|
310
|
+
}
|
|
311
|
+
if (image.complete) {
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
await new runtimeGlobal.Promise((resolve) => {
|
|
315
|
+
image.addEventListener?.("load", resolve, { once: true });
|
|
316
|
+
image.addEventListener?.("error", resolve, { once: true });
|
|
317
|
+
runtimeGlobal.setTimeout(resolve, 3000);
|
|
318
|
+
});
|
|
319
|
+
}));
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
async function setActiveExportPage(page, index) {
|
|
323
|
+
await page.evaluate((activeIndex) => {
|
|
324
|
+
const doc = globalThis.document;
|
|
325
|
+
Array.from(doc.querySelectorAll("[data-cns-export-page]"))
|
|
326
|
+
.forEach((element) => {
|
|
327
|
+
if (element.getAttribute("data-cns-export-page-index") === String(activeIndex)) {
|
|
328
|
+
element.setAttribute("data-cns-export-active", "true");
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
element.removeAttribute("data-cns-export-active");
|
|
332
|
+
});
|
|
333
|
+
}, index);
|
|
334
|
+
}
|
|
335
|
+
async function extractEditablePages(page, pageCount, signal) {
|
|
336
|
+
const pages = [];
|
|
337
|
+
for (let index = 0; index < pageCount; index += 1) {
|
|
338
|
+
signal.throwIfAborted();
|
|
339
|
+
await setActiveExportPage(page, index);
|
|
340
|
+
await waitForPresentationImages(page).catch(() => undefined);
|
|
341
|
+
await page.waitForTimeout(50).catch(() => undefined);
|
|
342
|
+
pages.push(await extractActiveEditablePage(page, index));
|
|
343
|
+
}
|
|
344
|
+
return pages;
|
|
345
|
+
}
|
|
346
|
+
async function extractActiveEditablePage(page, index) {
|
|
347
|
+
const script = `(() => {
|
|
348
|
+
const root = document.querySelector('[data-cns-export-page-index="${index}"]');
|
|
349
|
+
if (!root) {
|
|
350
|
+
return { index: ${index}, backgroundColor: 'rgb(255, 255, 255)', elements: [] };
|
|
351
|
+
}
|
|
352
|
+
const rootRect = root.getBoundingClientRect();
|
|
353
|
+
const rootStyle = getComputedStyle(root);
|
|
354
|
+
const elements = [];
|
|
355
|
+
const walk = Array.from(root.querySelectorAll('*'));
|
|
356
|
+
const TEXT_BOX_SAFETY_PX = 4;
|
|
357
|
+
const roundNumber = (value) => Number(value.toFixed(3));
|
|
358
|
+
const parseCssPixels = (value) => {
|
|
359
|
+
const parsed = Number.parseFloat(value || '0');
|
|
360
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
361
|
+
};
|
|
362
|
+
const parseLineHeight = (value, fontSize) => {
|
|
363
|
+
if (!value || value === 'normal') return fontSize * 1.2;
|
|
364
|
+
return parseCssPixels(value) || fontSize * 1.2;
|
|
365
|
+
};
|
|
366
|
+
const hasVisiblePaint = (value) => {
|
|
367
|
+
if (!value || value === 'transparent') return false;
|
|
368
|
+
const rgba = value.match(/rgba?\\(([^)]+)\\)/i);
|
|
369
|
+
if (!rgba) return true;
|
|
370
|
+
const parts = (rgba[1] || '').split(',').map((part) => part.trim());
|
|
371
|
+
const alpha = parts.length >= 4 ? Number.parseFloat(parts[3] || '1') : 1;
|
|
372
|
+
return !Number.isFinite(alpha) || alpha > 0.01;
|
|
373
|
+
};
|
|
374
|
+
const normalizeFontFamily = (value) => {
|
|
375
|
+
const first = (value.split(',')[0] || '').trim() || 'Arial';
|
|
376
|
+
return first.replace(/^['\"]|['\"]$/g, '');
|
|
377
|
+
};
|
|
378
|
+
const toBox = (rect) => ({
|
|
379
|
+
x: roundNumber(rect.left - rootRect.left),
|
|
380
|
+
y: roundNumber(rect.top - rootRect.top),
|
|
381
|
+
width: roundNumber(rect.width),
|
|
382
|
+
height: roundNumber(rect.height)
|
|
383
|
+
});
|
|
384
|
+
const isVisible = (style, rect) => {
|
|
385
|
+
return rect.width > 1
|
|
386
|
+
&& rect.height > 1
|
|
387
|
+
&& style.display !== 'none'
|
|
388
|
+
&& style.visibility !== 'hidden'
|
|
389
|
+
&& Number(style.opacity || '1') > 0.01;
|
|
390
|
+
};
|
|
391
|
+
const toContentBox = (box, style) => {
|
|
392
|
+
const paddingLeft = parseCssPixels(style.paddingLeft);
|
|
393
|
+
const paddingRight = parseCssPixels(style.paddingRight);
|
|
394
|
+
const paddingTop = parseCssPixels(style.paddingTop);
|
|
395
|
+
const paddingBottom = parseCssPixels(style.paddingBottom);
|
|
396
|
+
return {
|
|
397
|
+
x: roundNumber(box.x + paddingLeft),
|
|
398
|
+
y: roundNumber(box.y + paddingTop),
|
|
399
|
+
width: roundNumber(Math.max(1, box.width - paddingLeft - paddingRight + TEXT_BOX_SAFETY_PX)),
|
|
400
|
+
height: roundNumber(Math.max(1, box.height - paddingTop - paddingBottom + TEXT_BOX_SAFETY_PX))
|
|
401
|
+
};
|
|
402
|
+
};
|
|
403
|
+
const readDirectText = (element) => {
|
|
404
|
+
const text = Array.from(element.childNodes || [])
|
|
405
|
+
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
406
|
+
.map((node) => node.textContent || '')
|
|
407
|
+
.join(' ')
|
|
408
|
+
.replace(/\\s+/g, ' ')
|
|
409
|
+
.trim();
|
|
410
|
+
if (text) return text;
|
|
411
|
+
if ((element.children?.length || 0) === 0) {
|
|
412
|
+
return (element.textContent || '').replace(/\\s+/g, ' ').trim();
|
|
413
|
+
}
|
|
414
|
+
return '';
|
|
415
|
+
};
|
|
416
|
+
|
|
417
|
+
for (const element of walk) {
|
|
418
|
+
const tagName = String(element.tagName || '').toLowerCase();
|
|
419
|
+
if (['script', 'style', 'noscript', 'template'].includes(tagName)) continue;
|
|
420
|
+
const rect = element.getBoundingClientRect();
|
|
421
|
+
const style = getComputedStyle(element);
|
|
422
|
+
if (!isVisible(style, rect)) continue;
|
|
423
|
+
const box = toBox(rect);
|
|
424
|
+
const borderWidth = parseCssPixels(style.borderTopWidth);
|
|
425
|
+
const backgroundColor = style.backgroundColor;
|
|
426
|
+
const backgroundImage = style.backgroundImage === 'none' ? '' : style.backgroundImage;
|
|
427
|
+
const borderColor = style.borderTopColor;
|
|
428
|
+
const borderRadius = parseCssPixels(style.borderTopLeftRadius);
|
|
429
|
+
const opacity = Number(style.opacity || '1');
|
|
430
|
+
const hasFill = hasVisiblePaint(backgroundColor) || backgroundImage.length > 0;
|
|
431
|
+
const hasBorder = borderWidth > 0.2 && hasVisiblePaint(borderColor);
|
|
432
|
+
if ((hasFill || hasBorder) && box.width > 2 && box.height > 2) {
|
|
433
|
+
elements.push({
|
|
434
|
+
type: 'shape',
|
|
435
|
+
box,
|
|
436
|
+
style: {
|
|
437
|
+
backgroundColor,
|
|
438
|
+
backgroundImage,
|
|
439
|
+
borderColor,
|
|
440
|
+
borderWidth: roundNumber(borderWidth),
|
|
441
|
+
borderRadius: roundNumber(borderRadius),
|
|
442
|
+
opacity: roundNumber(opacity)
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
if (tagName === 'img') {
|
|
447
|
+
const dataUrl = element.currentSrc || element.src || element.getAttribute('src') || '';
|
|
448
|
+
if (dataUrl) {
|
|
449
|
+
elements.push({
|
|
450
|
+
type: 'image',
|
|
451
|
+
box,
|
|
452
|
+
dataUrl,
|
|
453
|
+
alt: element.alt || '',
|
|
454
|
+
style: {
|
|
455
|
+
opacity: roundNumber(opacity),
|
|
456
|
+
borderRadius: roundNumber(borderRadius)
|
|
457
|
+
}
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
const directText = readDirectText(element);
|
|
462
|
+
if (directText) {
|
|
463
|
+
const fontSize = parseCssPixels(style.fontSize);
|
|
464
|
+
elements.push({
|
|
465
|
+
type: 'text',
|
|
466
|
+
box: toContentBox(box, style),
|
|
467
|
+
text: directText,
|
|
468
|
+
style: {
|
|
469
|
+
color: style.color,
|
|
470
|
+
fontFamily: normalizeFontFamily(style.fontFamily),
|
|
471
|
+
fontSize: roundNumber(fontSize),
|
|
472
|
+
fontWeight: style.fontWeight,
|
|
473
|
+
fontStyle: style.fontStyle,
|
|
474
|
+
lineHeight: roundNumber(parseLineHeight(style.lineHeight, fontSize)),
|
|
475
|
+
textAlign: style.textAlign,
|
|
476
|
+
opacity: roundNumber(opacity)
|
|
477
|
+
}
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
return {
|
|
482
|
+
index: ${index},
|
|
483
|
+
backgroundColor: rootStyle.backgroundColor || 'rgb(255, 255, 255)',
|
|
484
|
+
elements
|
|
485
|
+
};
|
|
486
|
+
})()`;
|
|
487
|
+
return await page.evaluate(script);
|
|
488
|
+
}
|
|
489
|
+
function buildEditablePdfDocument(pages, width, height) {
|
|
490
|
+
const normalizedPages = normalizeEditablePages(pages);
|
|
491
|
+
const pageHtml = normalizedPages
|
|
492
|
+
.map((presentationPage) => {
|
|
493
|
+
const elements = (presentationPage.elements ?? [])
|
|
494
|
+
.map((element) => buildEditablePdfElement(element))
|
|
495
|
+
.join("");
|
|
496
|
+
return `<section class="cns-export-page" style="background:${escapeHtmlAttribute(presentationPage.backgroundColor || "#fff")}">${elements}</section>`;
|
|
497
|
+
})
|
|
498
|
+
.join("");
|
|
499
|
+
return `<!doctype html>
|
|
500
|
+
<html>
|
|
501
|
+
<head>
|
|
502
|
+
<meta charset="utf-8">
|
|
503
|
+
<style>
|
|
504
|
+
@page {
|
|
505
|
+
size: ${width}px ${height}px;
|
|
506
|
+
margin: 0;
|
|
507
|
+
}
|
|
508
|
+
html,
|
|
509
|
+
body {
|
|
510
|
+
margin: 0;
|
|
511
|
+
padding: 0;
|
|
512
|
+
background: #ffffff;
|
|
513
|
+
}
|
|
514
|
+
* {
|
|
515
|
+
box-sizing: border-box;
|
|
516
|
+
}
|
|
517
|
+
.cns-export-page {
|
|
518
|
+
position: relative;
|
|
519
|
+
width: ${width}px;
|
|
520
|
+
height: ${height}px;
|
|
521
|
+
margin: 0;
|
|
522
|
+
padding: 0;
|
|
523
|
+
overflow: hidden;
|
|
524
|
+
break-after: page;
|
|
525
|
+
page-break-after: always;
|
|
526
|
+
-webkit-print-color-adjust: exact;
|
|
527
|
+
print-color-adjust: exact;
|
|
528
|
+
}
|
|
529
|
+
.cns-export-page:last-child {
|
|
530
|
+
break-after: auto;
|
|
531
|
+
page-break-after: auto;
|
|
532
|
+
}
|
|
533
|
+
.cns-export-el {
|
|
534
|
+
position: absolute;
|
|
535
|
+
overflow: hidden;
|
|
536
|
+
}
|
|
537
|
+
.cns-export-text {
|
|
538
|
+
white-space: pre-wrap;
|
|
539
|
+
overflow-wrap: break-word;
|
|
540
|
+
}
|
|
541
|
+
.cns-export-image {
|
|
542
|
+
object-fit: fill;
|
|
543
|
+
}
|
|
544
|
+
</style>
|
|
545
|
+
</head>
|
|
546
|
+
<body>${pageHtml}</body>
|
|
547
|
+
</html>`;
|
|
548
|
+
}
|
|
549
|
+
function normalizeEditablePages(pages) {
|
|
550
|
+
return Array.isArray(pages) ? pages : [];
|
|
551
|
+
}
|
|
552
|
+
function buildEditablePdfElement(element) {
|
|
553
|
+
const boxStyle = `left:${element.box.x}px;top:${element.box.y}px;width:${element.box.width}px;height:${element.box.height}px;`;
|
|
554
|
+
if (element.type === "shape") {
|
|
555
|
+
const backgroundStyle = element.style.backgroundImage
|
|
556
|
+
? `background-image:${element.style.backgroundImage};background-color:${element.style.backgroundColor};`
|
|
557
|
+
: `background:${element.style.backgroundColor};`;
|
|
558
|
+
const borderStyle = element.style.borderWidth > 0
|
|
559
|
+
? `border:${element.style.borderWidth}px solid ${element.style.borderColor};`
|
|
560
|
+
: "border:0;";
|
|
561
|
+
return `<div class="cns-export-el" style="${boxStyle}${backgroundStyle}${borderStyle}border-radius:${element.style.borderRadius}px;opacity:${element.style.opacity};"></div>`;
|
|
562
|
+
}
|
|
563
|
+
if (element.type === "image") {
|
|
564
|
+
return `<img class="cns-export-el cns-export-image" src="${escapeHtmlAttribute(element.dataUrl)}" alt="${escapeHtmlAttribute(element.alt)}" style="${boxStyle}opacity:${element.style.opacity};border-radius:${element.style.borderRadius}px;">`;
|
|
565
|
+
}
|
|
566
|
+
return `<div class="cns-export-el cns-export-text" style="${boxStyle}color:${element.style.color};font-family:${escapeHtmlAttribute(element.style.fontFamily)};font-size:${element.style.fontSize}px;font-weight:${element.style.fontWeight};font-style:${element.style.fontStyle};line-height:${element.style.lineHeight}px;text-align:${element.style.textAlign};opacity:${element.style.opacity};">${escapeHtmlText(element.text)}</div>`;
|
|
567
|
+
}
|
|
568
|
+
function escapeHtmlText(value) {
|
|
569
|
+
return value
|
|
570
|
+
.replaceAll("&", "&")
|
|
571
|
+
.replaceAll("<", "<")
|
|
572
|
+
.replaceAll(">", ">");
|
|
573
|
+
}
|
|
574
|
+
function buildImagePdfDocument(pageImages, width, height) {
|
|
575
|
+
const pages = pageImages
|
|
576
|
+
.map((image) => `
|
|
577
|
+
<section class="cns-export-page">
|
|
578
|
+
<img src="${escapeHtmlAttribute(image.dataUrl)}" alt="Slide ${image.index + 1}">
|
|
579
|
+
</section>
|
|
580
|
+
`)
|
|
581
|
+
.join("");
|
|
582
|
+
return `<!doctype html>
|
|
583
|
+
<html>
|
|
584
|
+
<head>
|
|
585
|
+
<meta charset="utf-8">
|
|
586
|
+
<style>
|
|
587
|
+
@page {
|
|
588
|
+
size: ${width}px ${height}px;
|
|
589
|
+
margin: 0;
|
|
590
|
+
}
|
|
591
|
+
html,
|
|
592
|
+
body {
|
|
593
|
+
margin: 0;
|
|
594
|
+
padding: 0;
|
|
595
|
+
background: #ffffff;
|
|
596
|
+
}
|
|
597
|
+
.cns-export-page {
|
|
598
|
+
width: ${width}px;
|
|
599
|
+
height: ${height}px;
|
|
600
|
+
margin: 0;
|
|
601
|
+
padding: 0;
|
|
602
|
+
overflow: hidden;
|
|
603
|
+
break-after: page;
|
|
604
|
+
page-break-after: always;
|
|
605
|
+
}
|
|
606
|
+
.cns-export-page:last-child {
|
|
607
|
+
break-after: auto;
|
|
608
|
+
page-break-after: auto;
|
|
609
|
+
}
|
|
610
|
+
.cns-export-page img {
|
|
611
|
+
display: block;
|
|
612
|
+
width: ${width}px;
|
|
613
|
+
height: ${height}px;
|
|
614
|
+
object-fit: fill;
|
|
615
|
+
}
|
|
616
|
+
</style>
|
|
617
|
+
</head>
|
|
618
|
+
<body>${pages}</body>
|
|
619
|
+
</html>`;
|
|
620
|
+
}
|
|
208
621
|
//# sourceMappingURL=presentation-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation-renderer.js","sourceRoot":"","sources":["../../../../src/modules/presentation/presentation-renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"presentation-renderer.js","sourceRoot":"","sources":["../../../../src/modules/presentation/presentation-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export declare const HOST_TASK_TYPES: {
|
|
|
21
21
|
readonly officeBrowserTaskExecute: "office.browser_task.execute";
|
|
22
22
|
readonly officeDocumentExportExecute: "office.document_export.execute";
|
|
23
23
|
readonly officeOpsSshTaskExecute: "office.ops_ssh_task.execute";
|
|
24
|
+
readonly pluginScheduleTrigger: "plugin.schedule.trigger";
|
|
25
|
+
readonly pluginActionExecute: "plugin.action.execute";
|
|
24
26
|
readonly presentationExportPdf: "presentation.export_pdf";
|
|
25
27
|
readonly presentationExportPptx: "presentation.export_pptx";
|
|
26
28
|
};
|
|
@@ -21,6 +21,8 @@ export const HOST_TASK_TYPES = {
|
|
|
21
21
|
officeBrowserTaskExecute: "office.browser_task.execute",
|
|
22
22
|
officeDocumentExportExecute: "office.document_export.execute",
|
|
23
23
|
officeOpsSshTaskExecute: "office.ops_ssh_task.execute",
|
|
24
|
+
pluginScheduleTrigger: "plugin.schedule.trigger",
|
|
25
|
+
pluginActionExecute: "plugin.action.execute",
|
|
24
26
|
presentationExportPdf: "presentation.export_pdf",
|
|
25
27
|
presentationExportPptx: "presentation.export_pptx"
|
|
26
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-types.js","sourceRoot":"","sources":["../../../../src/modules/tasks/task-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,wBAAwB;IAC9C,kBAAkB,EAAE,sBAAsB;IAC1C,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,0BAA0B;IAClD,yBAAyB,EAAE,6BAA6B;IACxD,mBAAmB,EAAE,uBAAuB;IAC5C,0BAA0B,EAAE,8BAA8B;IAC1D,4BAA4B,EAAE,iCAAiC;IAC/D,kBAAkB,EAAE,sBAAsB;IAC1C,uBAAuB,EAAE,2BAA2B;IACpD,8BAA8B,EAAE,4CAA4C;IAC5E,+BAA+B,EAAE,oCAAoC;IACrE,6BAA6B,EAAE,mCAAmC;IAClE,uBAAuB,EAAE,2BAA2B;IACpD,2BAA2B,EAAE,+BAA+B;IAC5D,oBAAoB,EAAE,wBAAwB;IAC9C,uBAAuB,EAAE,2BAA2B;IACpD,sBAAsB,EAAE,iCAAiC;IACzD,wBAAwB,EAAE,6BAA6B;IACvD,2BAA2B,EAAE,gCAAgC;IAC7D,uBAAuB,EAAE,6BAA6B;IACtD,qBAAqB,EAAE,yBAAyB;IAChD,sBAAsB,EAAE,0BAA0B;CAC1C,CAAC;AAkIX,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAO,GAAG,OAAO;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAO,GAAG,QAAQ;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"task-types.js","sourceRoot":"","sources":["../../../../src/modules/tasks/task-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,wBAAwB;IAC9C,kBAAkB,EAAE,sBAAsB;IAC1C,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,0BAA0B;IAClD,yBAAyB,EAAE,6BAA6B;IACxD,mBAAmB,EAAE,uBAAuB;IAC5C,0BAA0B,EAAE,8BAA8B;IAC1D,4BAA4B,EAAE,iCAAiC;IAC/D,kBAAkB,EAAE,sBAAsB;IAC1C,uBAAuB,EAAE,2BAA2B;IACpD,8BAA8B,EAAE,4CAA4C;IAC5E,+BAA+B,EAAE,oCAAoC;IACrE,6BAA6B,EAAE,mCAAmC;IAClE,uBAAuB,EAAE,2BAA2B;IACpD,2BAA2B,EAAE,+BAA+B;IAC5D,oBAAoB,EAAE,wBAAwB;IAC9C,uBAAuB,EAAE,2BAA2B;IACpD,sBAAsB,EAAE,iCAAiC;IACzD,wBAAwB,EAAE,6BAA6B;IACvD,2BAA2B,EAAE,gCAAgC;IAC7D,uBAAuB,EAAE,6BAA6B;IACtD,qBAAqB,EAAE,yBAAyB;IAChD,mBAAmB,EAAE,uBAAuB;IAC5C,qBAAqB,EAAE,yBAAyB;IAChD,sBAAsB,EAAE,0BAA0B;CAC1C,CAAC;AAkIX,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAO,GAAG,OAAO;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAO,GAAG,QAAQ;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -2,8 +2,8 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { appendFileSync, mkdirSync, rmSync } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import readline from "node:readline";
|
|
5
|
-
import Database from "better-sqlite3";
|
|
6
5
|
import { parseCliArgs, readRequiredCliArg } from "./conpty-runtime-shared.js";
|
|
6
|
+
import Database from "../../../shared/runtime/better-sqlite3.js";
|
|
7
7
|
const SQLITE_BUSY_TIMEOUT_MS = 250;
|
|
8
8
|
const SQLITE_BUSY_RETRY_DELAYS_MS = [100, 200, 400, 800, 1_200, 1_600];
|
|
9
9
|
const SQLITE_SLOW_OPERATION_THRESHOLD_MS = 200;
|