@twick/vite-plugin 0.14.21 → 0.15.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 (62) hide show
  1. package/dist/index.cjs +866 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +172 -0
  4. package/dist/index.d.ts +172 -0
  5. package/dist/index.js +842 -0
  6. package/dist/index.js.map +1 -0
  7. package/package.json +31 -18
  8. package/lib/index.d.ts +0 -3
  9. package/lib/index.js +0 -23
  10. package/lib/index.js.map +0 -1
  11. package/lib/main.d.ts +0 -71
  12. package/lib/main.js +0 -40
  13. package/lib/main.js.map +0 -1
  14. package/lib/openInExplorer.d.ts +0 -1
  15. package/lib/openInExplorer.js +0 -44
  16. package/lib/openInExplorer.js.map +0 -1
  17. package/lib/partials/assets.d.ts +0 -6
  18. package/lib/partials/assets.js +0 -50
  19. package/lib/partials/assets.js.map +0 -1
  20. package/lib/partials/editor.d.ts +0 -8
  21. package/lib/partials/editor.js +0 -73
  22. package/lib/partials/editor.js.map +0 -1
  23. package/lib/partials/ffmpegBridge.d.ts +0 -40
  24. package/lib/partials/ffmpegBridge.js +0 -195
  25. package/lib/partials/ffmpegBridge.js.map +0 -1
  26. package/lib/partials/imageExporter.d.ts +0 -6
  27. package/lib/partials/imageExporter.js +0 -45
  28. package/lib/partials/imageExporter.js.map +0 -1
  29. package/lib/partials/index.d.ts +0 -11
  30. package/lib/partials/index.js +0 -28
  31. package/lib/partials/index.js.map +0 -1
  32. package/lib/partials/meta.d.ts +0 -2
  33. package/lib/partials/meta.js +0 -68
  34. package/lib/partials/meta.js.map +0 -1
  35. package/lib/partials/metrics.d.ts +0 -2
  36. package/lib/partials/metrics.js +0 -13
  37. package/lib/partials/metrics.js.map +0 -1
  38. package/lib/partials/projects.d.ts +0 -10
  39. package/lib/partials/projects.js +0 -34
  40. package/lib/partials/projects.js.map +0 -1
  41. package/lib/partials/rive.d.ts +0 -2
  42. package/lib/partials/rive.js +0 -70
  43. package/lib/partials/rive.js.map +0 -1
  44. package/lib/partials/settings.d.ts +0 -2
  45. package/lib/partials/settings.js +0 -65
  46. package/lib/partials/settings.js.map +0 -1
  47. package/lib/partials/wasmExporter.d.ts +0 -2
  48. package/lib/partials/wasmExporter.js +0 -87
  49. package/lib/partials/wasmExporter.js.map +0 -1
  50. package/lib/partials/webgl.d.ts +0 -10
  51. package/lib/partials/webgl.js +0 -88
  52. package/lib/partials/webgl.js.map +0 -1
  53. package/lib/plugins.d.ts +0 -99
  54. package/lib/plugins.js +0 -9
  55. package/lib/plugins.js.map +0 -1
  56. package/lib/tsconfig.tsbuildinfo +0 -1
  57. package/lib/utils.d.ts +0 -6
  58. package/lib/utils.js +0 -44
  59. package/lib/utils.js.map +0 -1
  60. package/lib/versions.d.ts +0 -6
  61. package/lib/versions.js +0 -28
  62. package/lib/versions.js.map +0 -1
@@ -1,195 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FFmpegBridge = void 0;
4
- exports.ffmpegBridgePlugin = ffmpegBridgePlugin;
5
- const ffmpeg_1 = require("@twick/ffmpeg");
6
- const fs_1 = require("fs");
7
- function ffmpegBridgePlugin({ output }) {
8
- return {
9
- name: 'twick/ffmpeg',
10
- configureServer(server) {
11
- const ffmpegBridge = new FFmpegBridge(server.ws, { output });
12
- const handlePostRequest = async (req, res, handler) => {
13
- if (req.method !== 'POST') {
14
- res.statusCode = 405;
15
- res.end('Method Not Allowed');
16
- return;
17
- }
18
- try {
19
- const body = await new Promise((resolve, reject) => {
20
- let data = '';
21
- req.on('data', (chunk) => (data += chunk));
22
- req.on('end', () => resolve(data));
23
- req.on('error', reject);
24
- });
25
- const parsedBody = JSON.parse(body);
26
- const result = await handler(parsedBody);
27
- if (res.writableEnded) {
28
- return;
29
- }
30
- res.statusCode = 200;
31
- if (result) {
32
- res.setHeader('Content-Type', 'application/json');
33
- res.end(JSON.stringify(result));
34
- return;
35
- }
36
- res.end('OK');
37
- }
38
- catch (error) {
39
- console.error('error in request handler', error);
40
- res.statusCode = 500;
41
- res.end('Internal Server Error');
42
- }
43
- };
44
- server.middlewares.use('/audio-processing/generate-audio', (req, res) => handlePostRequest(req, res, async ({ tempDir, assets, startFrame, endFrame, fps }) => (0, ffmpeg_1.generateAudio)({
45
- outputDir: output,
46
- tempDir,
47
- assets,
48
- startFrame,
49
- endFrame,
50
- fps,
51
- })));
52
- server.middlewares.use('/audio-processing/merge-media', (req, res) => handlePostRequest(req, res, async ({ outputFilename, tempDir, format }) => (0, ffmpeg_1.mergeMedia)(outputFilename, output, tempDir, format)));
53
- server.middlewares.use('/twick-ffmpeg-decoder/video-frame', (req, res) => handlePostRequest(req, res, async (data) => {
54
- const { frame, width, height } = await ffmpegBridge.handleDecodeVideoFrame(data);
55
- res.setHeader('X-Frame-Width', width.toString());
56
- res.setHeader('X-Frame-Height', height.toString());
57
- res.setHeader('Content-Type', 'application/octet-stream');
58
- res.end(Buffer.from(frame));
59
- }));
60
- server.middlewares.use('/twick-ffmpeg-decoder/finished', (req, res) => {
61
- handlePostRequest(req, res, async () => {
62
- await ffmpegBridge.handleRenderFinished();
63
- });
64
- });
65
- server.middlewares.use('/twick-ffmpeg-decoder/download-video-chunks', (req, res) => handlePostRequest(req, res, async (videoDurations) => {
66
- const downloadedPaths = await ffmpegBridge.handleDownloadVideoChunks(videoDurations);
67
- return { success: true, paths: downloadedPaths };
68
- }));
69
- },
70
- };
71
- }
72
- /**
73
- * A simple bridge between the FFmpegExporterServer and FFmpegExporterClient.
74
- *
75
- * @remarks
76
- * This class lets the client exporter invoke methods on the server and receive
77
- * responses using a simple Promise-based API.
78
- */
79
- class FFmpegBridge {
80
- constructor(ws, config) {
81
- this.ws = ws;
82
- this.config = config;
83
- this.process = null;
84
- this.handleMessage = async ({ method, data }) => {
85
- if (method === 'start') {
86
- try {
87
- this.process = new ffmpeg_1.FFmpegExporterServer({
88
- ...data,
89
- ...this.config,
90
- });
91
- this.respondSuccess(method, await this.process.start());
92
- }
93
- catch (e) {
94
- this.respondError(method, e?.message);
95
- }
96
- return;
97
- }
98
- if (!this.process) {
99
- this.respondError(method, 'The exporting process has not been started.');
100
- return;
101
- }
102
- if (!(method in this.process)) {
103
- this.respondError(method, `Unknown method: "${method}".`);
104
- return;
105
- }
106
- try {
107
- this.respondSuccess(method, await this.process[method](data));
108
- }
109
- catch (e) {
110
- this.respondError(method, e?.message);
111
- }
112
- if (method === 'kill') {
113
- this.process = null;
114
- return;
115
- }
116
- };
117
- // List of VideoFrameExtractors
118
- this.videoFrameExtractors = new Map();
119
- ws.on('twick:ffmpeg-exporter', this.handleMessage);
120
- }
121
- respondSuccess(method, data = {}) {
122
- this.ws.send('twick:ffmpeg-exporter-ack', {
123
- status: 'success',
124
- method,
125
- data,
126
- });
127
- }
128
- respondError(method, message = 'Unknown error.') {
129
- this.ws.send('twick:ffmpeg-exporter-ack', {
130
- status: 'error',
131
- method,
132
- message,
133
- });
134
- }
135
- async handleDownloadVideoChunks(videoDurations) {
136
- const downloadPromises = videoDurations.map(({ src, startTime, endTime }) => ffmpeg_1.VideoFrameExtractor.downloadVideoChunk(src, startTime, endTime));
137
- await Promise.all(downloadPromises);
138
- }
139
- async handleDecodeVideoFrame(data) {
140
- const typedData = data;
141
- // Check if we already have a VideoFrameExtractor for this video
142
- const id = typedData.filePath + '-' + typedData.id;
143
- let extractor = this.videoFrameExtractors.get(id);
144
- const frameDuration = 1 / typedData.fps;
145
- const isOldFrame = extractor &&
146
- Math.abs(typedData.startTime - extractor.getLastTime()) <
147
- frameDuration / 2;
148
- // If time has not changed, return the last frame
149
- if (isOldFrame) {
150
- const frame = extractor.getLastFrame();
151
- return {
152
- frame,
153
- width: extractor.getWidth(),
154
- height: extractor.getHeight(),
155
- };
156
- }
157
- // If the video has skipped back we need to create a new extractor
158
- if (extractor &&
159
- typedData.startTime + frameDuration < extractor.getTime()) {
160
- extractor.destroy();
161
- this.videoFrameExtractors.delete(id);
162
- extractor = undefined;
163
- }
164
- // If the video has skipped forward we need to create a new extractor
165
- if (extractor &&
166
- typedData.startTime > extractor.getTime() + frameDuration) {
167
- extractor.destroy();
168
- this.videoFrameExtractors.delete(id);
169
- extractor = undefined;
170
- }
171
- if (!extractor) {
172
- extractor = new ffmpeg_1.VideoFrameExtractor(data.filePath, data.startTime, data.fps, data.duration);
173
- this.videoFrameExtractors.set(id, extractor);
174
- }
175
- // Go to the frame that is closest to the requested time
176
- const frame = await extractor.popImage();
177
- return {
178
- frame: frame,
179
- width: extractor.getWidth(),
180
- height: extractor.getHeight(),
181
- };
182
- }
183
- async handleRenderFinished() {
184
- this.videoFrameExtractors.forEach(extractor => {
185
- extractor.destroy();
186
- const localFile = ffmpeg_1.VideoFrameExtractor.downloadedVideoMap.get(extractor.filePath)?.localPath;
187
- if (localFile && (0, fs_1.existsSync)(localFile)) {
188
- (0, fs_1.unlinkSync)(localFile);
189
- }
190
- });
191
- this.videoFrameExtractors.clear();
192
- }
193
- }
194
- exports.FFmpegBridge = FFmpegBridge;
195
- //# sourceMappingURL=ffmpegBridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ffmpegBridge.js","sourceRoot":"","sources":["../../src/partials/ffmpegBridge.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- interface ExporterPluginConfig {
3
- outputPath: string;
4
- }
5
- export declare function exporterPlugin({ outputPath }: ExporterPluginConfig): Plugin;
6
- export {};
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.exporterPlugin = exporterPlugin;
7
- const fs_1 = __importDefault(require("fs"));
8
- const mime_types_1 = __importDefault(require("mime-types"));
9
- const path_1 = __importDefault(require("path"));
10
- const openInExplorer_1 = require("../openInExplorer");
11
- function exporterPlugin({ outputPath }) {
12
- return {
13
- name: 'twick:exporter',
14
- configureServer(server) {
15
- server.middlewares.use((req, res, next) => {
16
- if (req.url === '/__open-output-path') {
17
- if (!fs_1.default.existsSync(outputPath)) {
18
- fs_1.default.mkdirSync(outputPath, { recursive: true });
19
- }
20
- (0, openInExplorer_1.openInExplorer)(outputPath);
21
- res.end();
22
- return;
23
- }
24
- next();
25
- });
26
- server.ws.on('twick:export', async ({ data, frame, sceneFrame, subDirectories, mimeType, groupByScene }, client) => {
27
- const name = (groupByScene ? sceneFrame : frame)
28
- .toString()
29
- .padStart(6, '0');
30
- const extension = mime_types_1.default.extension(mimeType);
31
- const outputFilePath = path_1.default.join(outputPath, ...subDirectories, `${name}.${extension}`);
32
- const outputDirectory = path_1.default.dirname(outputFilePath);
33
- if (!fs_1.default.existsSync(outputDirectory)) {
34
- fs_1.default.mkdirSync(outputDirectory, { recursive: true });
35
- }
36
- const base64Data = data.slice(data.indexOf(',') + 1);
37
- await fs_1.default.promises.writeFile(outputFilePath, base64Data, {
38
- encoding: 'base64',
39
- });
40
- client.send('twick:export-ack', { frame });
41
- });
42
- },
43
- };
44
- }
45
- //# sourceMappingURL=imageExporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imageExporter.js","sourceRoot":"","sources":["../../src/partials/imageExporter.ts"],"names":[],"mappings":";;;;;AAUA,wCAgDC;AA1DD,4CAAoB;AACpB,4DAA8B;AAC9B,gDAAwB;AAExB,sDAAiD;AAMjD,SAAgB,cAAc,CAAC,EAAC,UAAU,EAAuB;IAC/D,OAAO;QACL,IAAI,EAAE,gBAAgB;QAEtB,eAAe,CAAC,MAAM;YACpB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACxC,IAAI,GAAG,CAAC,GAAG,KAAK,qBAAqB,EAAE,CAAC;oBACtC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;oBAC9C,CAAC;oBACD,IAAA,+BAAc,EAAC,UAAU,CAAC,CAAC;oBAC3B,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBAED,IAAI,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,EAAE,CACV,cAAc,EACd,KAAK,EACH,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAC,EACjE,MAAM,EACN,EAAE;gBACF,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;qBAC7C,QAAQ,EAAE;qBACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,oBAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3C,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAC9B,UAAU,EACV,GAAG,cAAc,EACjB,GAAG,IAAI,IAAI,SAAS,EAAE,CACvB,CAAC;gBACF,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAErD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;oBACpC,YAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;gBACnD,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrD,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,EAAE;oBACtD,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;YAC3C,CAAC,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,11 +0,0 @@
1
- export * from './assets';
2
- export * from './editor';
3
- export * from './ffmpegBridge';
4
- export * from './imageExporter';
5
- export * from './meta';
6
- export * from './metrics';
7
- export * from './projects';
8
- export * from './rive';
9
- export * from './settings';
10
- export * from './wasmExporter';
11
- export * from './webgl';
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./assets"), exports);
18
- __exportStar(require("./editor"), exports);
19
- __exportStar(require("./ffmpegBridge"), exports);
20
- __exportStar(require("./imageExporter"), exports);
21
- __exportStar(require("./meta"), exports);
22
- __exportStar(require("./metrics"), exports);
23
- __exportStar(require("./projects"), exports);
24
- __exportStar(require("./rive"), exports);
25
- __exportStar(require("./settings"), exports);
26
- __exportStar(require("./wasmExporter"), exports);
27
- __exportStar(require("./webgl"), exports);
28
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/partials/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB;AACzB,iDAA+B;AAC/B,kDAAgC;AAChC,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,yCAAuB;AACvB,6CAA2B;AAC3B,iDAA+B;AAC/B,0CAAwB"}
@@ -1,2 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- export declare function metaPlugin(): Plugin;
@@ -1,68 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.metaPlugin = metaPlugin;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- function metaPlugin() {
10
- const timeStamps = {};
11
- let config;
12
- return {
13
- name: 'twick:meta',
14
- configResolved(resolvedConfig) {
15
- config = resolvedConfig;
16
- },
17
- async transform(code, id) {
18
- const [base] = id.split('?');
19
- const { name, ext } = path_1.default.posix.parse(base);
20
- if (ext !== '.meta') {
21
- return;
22
- }
23
- const sourceFile = config.command === 'build' ? false : JSON.stringify(id);
24
- /* language=typescript */
25
- return `\
26
- import {MetaFile} from '@twick/core';
27
- let meta;
28
- if (import.meta.hot) {
29
- meta = import.meta.hot.data.meta;
30
- }
31
- meta ??= new MetaFile('${name}', ${sourceFile});
32
- if (import.meta.hot) {
33
- import.meta.hot.accept();
34
- import.meta.hot.data.meta = meta;
35
- }
36
- meta.loadData(${code});
37
- export default meta;
38
- `;
39
- },
40
- configureServer(server) {
41
- server.ws.on('twick:meta', async ({ source, data }, client) => {
42
- // Ignore virtual meta files.
43
- if (source.startsWith('\0')) {
44
- return;
45
- }
46
- timeStamps[source] = Date.now();
47
- if (!process.env.DONT_WRITE_TO_META_FILES) {
48
- await fs_1.default.promises.writeFile(source, JSON.stringify(data, undefined, 2), 'utf8');
49
- }
50
- client.send('twick:meta-ack', { source });
51
- });
52
- },
53
- handleHotUpdate(ctx) {
54
- const now = Date.now();
55
- const modules = [];
56
- for (const module of ctx.modules) {
57
- if (module.file !== null &&
58
- timeStamps[module.file] &&
59
- timeStamps[module.file] + 1000 > now) {
60
- continue;
61
- }
62
- modules.push(module);
63
- }
64
- return modules;
65
- },
66
- };
67
- }
68
- //# sourceMappingURL=meta.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/partials/meta.ts"],"names":[],"mappings":";;;;;AAIA,gCA2EC;AA/ED,4CAAoB;AACpB,gDAAwB;AAGxB,SAAgB,UAAU;IACxB,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,IAAI,MAAsB,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,YAAY;QAElB,cAAc,CAAC,cAAc;YAC3B,MAAM,GAAG,cAAc,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,EAAC,IAAI,EAAE,GAAG,EAAC,GAAG,cAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GACd,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAE1D,yBAAyB;YACzB,OAAO;;;;;;yBAMY,IAAI,MAAM,UAAU;;;;;gBAK7B,IAAI;;CAEnB,CAAC;QACE,CAAC;QAED,eAAe,CAAC,MAAM;YACpB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAAE,MAAM,EAAE,EAAE;gBAC1D,6BAA6B;gBAC7B,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,OAAO;gBACT,CAAC;gBAED,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;oBAC1C,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAClC,MAAM,CACP,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,eAAe,CAAC,GAAG;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,EAAE,CAAC;YAEnB,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,IACE,MAAM,CAAC,IAAI,KAAK,IAAI;oBACpB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;oBACvB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,EACpC,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- export declare function metricsPlugin(): Plugin;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.metricsPlugin = metricsPlugin;
4
- const telemetry_1 = require("@twick/telemetry");
5
- function metricsPlugin() {
6
- return {
7
- name: 'twick:metrics',
8
- async configResolved() {
9
- (0, telemetry_1.sendEvent)(telemetry_1.EventName.ServerStarted);
10
- },
11
- };
12
- }
13
- //# sourceMappingURL=metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/partials/metrics.ts"],"names":[],"mappings":";;AAGA,sCAQC;AAXD,gDAAsD;AAGtD,SAAgB,aAAa;IAC3B,OAAO;QACL,IAAI,EAAE,eAAe;QAErB,KAAK,CAAC,cAAc;YAClB,IAAA,qBAAS,EAAC,qBAAS,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- import type { PluginOptions } from '../plugins';
3
- import type { Projects } from '../utils';
4
- interface ProjectPluginConfig {
5
- buildForEditor?: boolean;
6
- plugins: PluginOptions[];
7
- projects: Projects;
8
- }
9
- export declare function projectsPlugin({ buildForEditor, projects, }: ProjectPluginConfig): Plugin;
10
- export {};
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.projectsPlugin = projectsPlugin;
4
- function projectsPlugin({ buildForEditor, projects, }) {
5
- // TODO(refactor): use version information
6
- // const versions = JSON.stringify(getVersions());
7
- return {
8
- name: 'twick:project',
9
- config(config) {
10
- return {
11
- build: {
12
- target: buildForEditor ? 'esnext' : 'modules',
13
- assetsDir: './',
14
- rollupOptions: {
15
- preserveEntrySignatures: 'strict',
16
- input: Object.fromEntries(projects.list.map(project => [project.name, project.url])),
17
- },
18
- },
19
- server: {
20
- port: config?.server?.port ?? 9000,
21
- },
22
- esbuild: {
23
- jsx: 'automatic',
24
- jsxImportSource: '@twick/2d/lib',
25
- },
26
- optimizeDeps: {
27
- entries: projects.list.map(project => project.url),
28
- exclude: ['preact', 'preact/*', '@preact/signals'],
29
- },
30
- };
31
- },
32
- };
33
- }
34
- //# sourceMappingURL=projects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/partials/projects.ts"],"names":[],"mappings":";;AAWA,wCAmCC;AAnCD,SAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,QAAQ,GACY;IACpB,0CAA0C;IAC1C,kDAAkD;IAClD,OAAO;QACL,IAAI,EAAE,eAAe;QAErB,MAAM,CAAC,MAAM;YACX,OAAO;gBACL,KAAK,EAAE;oBACL,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBAC7C,SAAS,EAAE,IAAI;oBACf,aAAa,EAAE;wBACb,uBAAuB,EAAE,QAAQ;wBACjC,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAC1D;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI;iBACnC;gBACD,OAAO,EAAE;oBACP,GAAG,EAAE,WAAW;oBAChB,eAAe,EAAE,eAAe;iBACjC;gBACD,YAAY,EAAE;oBACZ,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;oBAClD,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,CAAC;iBACnD;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- export declare function rivePlugin(): Plugin;
@@ -1,70 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.rivePlugin = rivePlugin;
30
- const fs = __importStar(require("fs"));
31
- const path_1 = __importDefault(require("path"));
32
- const stream_1 = require("stream");
33
- async function getRiveWasmPath() {
34
- try {
35
- const packageJsonPath = require.resolve('@rive-app/canvas-advanced/package.json');
36
- const packageDir = path_1.default.dirname(packageJsonPath);
37
- const wasmPath = path_1.default.join(packageDir, 'rive.wasm');
38
- await fs.promises.access(wasmPath, fs.constants.F_OK);
39
- return wasmPath;
40
- }
41
- catch (error) {
42
- console.error('Error finding Rive WASM file:', error);
43
- throw new Error('Could not find Rive WASM file');
44
- }
45
- }
46
- function rivePlugin() {
47
- return {
48
- name: 'twick:rive-wasm',
49
- configureServer(server) {
50
- server.middlewares.use(async (req, res, next) => {
51
- if (req.url && req.url === '/@rive-wasm') {
52
- try {
53
- const wasmPath = await getRiveWasmPath();
54
- const file = await fs.promises.readFile(wasmPath);
55
- res.setHeader('Content-Type', 'application/wasm');
56
- stream_1.Readable.from(file).pipe(res);
57
- }
58
- catch (error) {
59
- console.error('Error serving Rive WASM file:', error);
60
- res.statusCode = 500;
61
- res.end('Error serving Rive WASM file');
62
- }
63
- return;
64
- }
65
- next();
66
- });
67
- },
68
- };
69
- }
70
- //# sourceMappingURL=rive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rive.js","sourceRoot":"","sources":["../../src/partials/rive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,gCAuBC;AA7CD,uCAAyB;AACzB,gDAAwB;AACxB,mCAAgC;AAGhC,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CACrC,wCAAwC,CACzC,CAAC;QACF,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEpD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,eAAe,CAAC,MAAM;YACpB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC9C,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;oBACzC,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;wBACzC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAElD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;wBAClD,iBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;wBACtD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;wBACrB,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;oBAC1C,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- export declare function settingsPlugin(): Plugin;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.settingsPlugin = settingsPlugin;
7
- const fs_1 = __importDefault(require("fs"));
8
- const os_1 = __importDefault(require("os"));
9
- const path_1 = __importDefault(require("path"));
10
- function settingsPlugin() {
11
- const settingsId = 'virtual:settings.meta';
12
- const resolvedSettingsId = '\0' + settingsId;
13
- const settingsPath = path_1.default.resolve(os_1.default.homedir(), '.twick/settings.json');
14
- const outputDirectory = path_1.default.dirname(settingsPath);
15
- return {
16
- name: 'twick:settings',
17
- resolveId(id) {
18
- if (id === settingsId) {
19
- return resolvedSettingsId;
20
- }
21
- },
22
- async load(id) {
23
- if (id === resolvedSettingsId) {
24
- let parsed = {};
25
- try {
26
- parsed = JSON.parse(await fs_1.default.promises.readFile(settingsPath, 'utf8'));
27
- }
28
- catch (_) {
29
- // Ignore an invalid settings file
30
- }
31
- return JSON.stringify(parsed);
32
- }
33
- },
34
- configureServer(server) {
35
- server.ws.on('twick:meta', async ({ source, data }, client) => {
36
- if (source !== resolvedSettingsId) {
37
- return;
38
- }
39
- await fs_1.default.promises.mkdir(outputDirectory, { recursive: true });
40
- const newData = JSON.stringify(data, undefined, 2);
41
- let oldData = '';
42
- try {
43
- oldData = await fs_1.default.promises.readFile(settingsPath, 'utf8');
44
- }
45
- catch (_) {
46
- // Ignore an invalid settings file
47
- }
48
- if (oldData !== newData) {
49
- await Promise.all([
50
- fs_1.default.promises.writeFile(settingsPath, newData, 'utf8'),
51
- // Invalidate the module so that the settings are up-to-date next
52
- // time the browser is refreshed.
53
- server.moduleGraph.getModuleByUrl(source).then(module => {
54
- if (module) {
55
- server.moduleGraph.invalidateModule(module);
56
- }
57
- }),
58
- ]);
59
- }
60
- client.send('twick:meta-ack', { source });
61
- });
62
- },
63
- };
64
- }
65
- //# sourceMappingURL=settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/partials/settings.ts"],"names":[],"mappings":";;;;;AAKA,wCA4DC;AAjED,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AAGxB,SAAgB,cAAc;IAC5B,MAAM,UAAU,GAAG,uBAAuB,CAAC;IAC3C,MAAM,kBAAkB,GAAG,IAAI,GAAG,UAAU,CAAC;IAC7C,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnD,OAAO;QACL,IAAI,EAAE,gBAAgB;QAEtB,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;gBACtB,OAAO,kBAAkB,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,kBAAkB,EAAE,CAAC;gBAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;gBACxE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,kCAAkC;gBACpC,CAAC;gBAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,eAAe,CAAC,MAAM;YACpB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAAE,MAAM,EAAE,EAAE;gBAC1D,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;oBAClC,OAAO;gBACT,CAAC;gBAED,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBACnD,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,OAAO,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC7D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,kCAAkC;gBACpC,CAAC;gBAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;oBACxB,MAAM,OAAO,CAAC,GAAG,CAAC;wBAChB,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;wBACpD,iEAAiE;wBACjE,iCAAiC;wBACjC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;4BACtD,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;4BAC9C,CAAC;wBACH,CAAC,CAAC;qBACH,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- export declare function wasmExporterPlugin(): Plugin;