@twick/vite-plugin 0.11.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 (57) hide show
  1. package/LICENSE +21 -0
  2. package/lib/index.d.ts +3 -0
  3. package/lib/index.js +23 -0
  4. package/lib/index.js.map +1 -0
  5. package/lib/main.d.ts +71 -0
  6. package/lib/main.js +40 -0
  7. package/lib/main.js.map +1 -0
  8. package/lib/openInExplorer.d.ts +1 -0
  9. package/lib/openInExplorer.js +44 -0
  10. package/lib/openInExplorer.js.map +1 -0
  11. package/lib/partials/assets.d.ts +6 -0
  12. package/lib/partials/assets.js +50 -0
  13. package/lib/partials/assets.js.map +1 -0
  14. package/lib/partials/editor.d.ts +8 -0
  15. package/lib/partials/editor.js +73 -0
  16. package/lib/partials/editor.js.map +1 -0
  17. package/lib/partials/ffmpegBridge.d.ts +40 -0
  18. package/lib/partials/ffmpegBridge.js +195 -0
  19. package/lib/partials/ffmpegBridge.js.map +1 -0
  20. package/lib/partials/imageExporter.d.ts +6 -0
  21. package/lib/partials/imageExporter.js +45 -0
  22. package/lib/partials/imageExporter.js.map +1 -0
  23. package/lib/partials/index.d.ts +11 -0
  24. package/lib/partials/index.js +28 -0
  25. package/lib/partials/index.js.map +1 -0
  26. package/lib/partials/meta.d.ts +2 -0
  27. package/lib/partials/meta.js +68 -0
  28. package/lib/partials/meta.js.map +1 -0
  29. package/lib/partials/metrics.d.ts +2 -0
  30. package/lib/partials/metrics.js +13 -0
  31. package/lib/partials/metrics.js.map +1 -0
  32. package/lib/partials/projects.d.ts +10 -0
  33. package/lib/partials/projects.js +34 -0
  34. package/lib/partials/projects.js.map +1 -0
  35. package/lib/partials/rive.d.ts +2 -0
  36. package/lib/partials/rive.js +70 -0
  37. package/lib/partials/rive.js.map +1 -0
  38. package/lib/partials/settings.d.ts +2 -0
  39. package/lib/partials/settings.js +65 -0
  40. package/lib/partials/settings.js.map +1 -0
  41. package/lib/partials/wasmExporter.d.ts +2 -0
  42. package/lib/partials/wasmExporter.js +87 -0
  43. package/lib/partials/wasmExporter.js.map +1 -0
  44. package/lib/partials/webgl.d.ts +10 -0
  45. package/lib/partials/webgl.js +88 -0
  46. package/lib/partials/webgl.js.map +1 -0
  47. package/lib/plugins.d.ts +99 -0
  48. package/lib/plugins.js +9 -0
  49. package/lib/plugins.js.map +1 -0
  50. package/lib/tsconfig.tsbuildinfo +1 -0
  51. package/lib/utils.d.ts +6 -0
  52. package/lib/utils.js +44 -0
  53. package/lib/utils.js.map +1 -0
  54. package/lib/versions.d.ts +6 -0
  55. package/lib/versions.js +28 -0
  56. package/lib/versions.js.map +1 -0
  57. package/package.json +36 -0
@@ -0,0 +1,45 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,11 @@
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';
@@ -0,0 +1,28 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare function metaPlugin(): Plugin;
@@ -0,0 +1,68 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare function metricsPlugin(): Plugin;
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,10 @@
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 {};
@@ -0,0 +1,34 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare function rivePlugin(): Plugin;
@@ -0,0 +1,70 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare function settingsPlugin(): Plugin;
@@ -0,0 +1,65 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare function wasmExporterPlugin(): Plugin;
@@ -0,0 +1,87 @@
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.wasmExporterPlugin = wasmExporterPlugin;
30
+ const formidable_1 = require("formidable");
31
+ const fs = __importStar(require("fs"));
32
+ const os = __importStar(require("os"));
33
+ const path_1 = __importDefault(require("path"));
34
+ const stream_1 = require("stream");
35
+ function wasmExporterPlugin() {
36
+ return {
37
+ name: 'twick:mp4-wasm',
38
+ configureServer(server) {
39
+ // Virtual file for mp4-wasm
40
+ server.middlewares.use(async (req, res, next) => {
41
+ if (req.url && req.url === '/@mp4-wasm') {
42
+ const pathNew = path_1.default.dirname(require.resolve('mp4-wasm'));
43
+ const filePath = path_1.default.resolve(pathNew, 'mp4.wasm');
44
+ const file = await fs.promises.readFile(filePath);
45
+ res.setHeader('Content-Type', 'application/wasm');
46
+ stream_1.Readable.from(file).pipe(res);
47
+ return;
48
+ }
49
+ next();
50
+ });
51
+ // Endpoint to download the video file from the client
52
+ server.middlewares.use('/uploadVideoFile', async (req, res) => {
53
+ if (req.method === 'POST') {
54
+ const form = new formidable_1.IncomingForm({ maxFileSize: 1024 * 1024 * 1024 * 10 }); // 10GB limit
55
+ form.parse(req, async (err, fields, files) => {
56
+ if (err) {
57
+ console.error('Error parsing form:', err);
58
+ res.statusCode = 500;
59
+ res.end();
60
+ return;
61
+ }
62
+ try {
63
+ const tempDir = fields.tempDir[0];
64
+ const file = files.file[0];
65
+ const outputPath = path_1.default.join(os.tmpdir(), tempDir, 'visuals.mp4');
66
+ const writeStream = fs.createWriteStream(outputPath);
67
+ await new Promise((resolve, reject) => {
68
+ fs.createReadStream(file.filepath)
69
+ .pipe(writeStream)
70
+ .on('finish', resolve)
71
+ .on('error', reject);
72
+ });
73
+ res.statusCode = 200;
74
+ res.end();
75
+ }
76
+ catch (err) {
77
+ console.error('Error uploading video:', err);
78
+ res.statusCode = 500;
79
+ res.end();
80
+ }
81
+ });
82
+ }
83
+ });
84
+ },
85
+ };
86
+ }
87
+ //# sourceMappingURL=wasmExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasmExporter.js","sourceRoot":"","sources":["../../src/partials/wasmExporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Plugin } from 'vite';
2
+ declare module 'source-map' {
3
+ interface SourceNode {
4
+ add(value: string | SourceNode): void;
5
+ }
6
+ interface SourceMapGenerator {
7
+ toJSON(): any;
8
+ }
9
+ }
10
+ export declare function webglPlugin(): Plugin;
@@ -0,0 +1,88 @@
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.webglPlugin = webglPlugin;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const source_map_1 = require("source-map");
10
+ const vite_1 = require("vite");
11
+ const GLSL_EXTENSION_REGEX = /\.glsl(?:$|\?)/;
12
+ const INCLUDE_REGEX = /^#include "([^"]+)"/;
13
+ function webglPlugin() {
14
+ let config;
15
+ return {
16
+ name: 'twick:webgl',
17
+ configResolved(resolvedConfig) {
18
+ config = resolvedConfig;
19
+ },
20
+ async transform(code, id) {
21
+ if (!GLSL_EXTENSION_REGEX.test(id)) {
22
+ return;
23
+ }
24
+ const [base, query] = id.split('?');
25
+ const { dir } = path_1.default.posix.parse(base);
26
+ const params = new URLSearchParams(query);
27
+ if (params.has('raw')) {
28
+ return;
29
+ }
30
+ const context = {
31
+ rootDir: dir,
32
+ fileStack: [],
33
+ includeMap: new Map(),
34
+ watchFile: file => this.addWatchFile(file),
35
+ resolve: async (source, importer) => {
36
+ const resolved = await this.resolve(source, importer);
37
+ return resolved?.id;
38
+ },
39
+ };
40
+ const glslSource = await resolveGlsl(context, id, code);
41
+ const sourceUrl = (0, vite_1.normalizePath)(path_1.default.relative(config.root, base));
42
+ const result = glslSource.toStringWithSourceMap();
43
+ const map = result.map.toJSON();
44
+ map.includeMap = Object.fromEntries(context.includeMap);
45
+ return {
46
+ map,
47
+ code: `export default \`${result.code}\n//# sourceURL=${sourceUrl}\`;`,
48
+ };
49
+ },
50
+ };
51
+ }
52
+ async function resolveGlsl(context, id, code) {
53
+ const lines = code.split(/\r?\n/);
54
+ const source = new source_map_1.SourceNode(1, 0, '', '');
55
+ if (context.fileStack.includes(id)) {
56
+ throw new Error(`Circular dependency detected: ${context.fileStack.join(' -> ')}`);
57
+ }
58
+ context.fileStack.push(id);
59
+ const sourceMapId = path_1.default.posix.relative(context.rootDir, id);
60
+ for (let i = 0; i < lines.length; i++) {
61
+ const line = lines[i];
62
+ const match = line.match(INCLUDE_REGEX);
63
+ if (match) {
64
+ const childId = await context.resolve(match[1], id);
65
+ if (!childId) {
66
+ continue;
67
+ }
68
+ const childSourceMapId = path_1.default.posix.relative(context.rootDir, childId);
69
+ if (context.includeMap.has(childSourceMapId)) {
70
+ continue;
71
+ }
72
+ context.includeMap.set(childSourceMapId, [sourceMapId, i + 1]);
73
+ context.watchFile(childId);
74
+ const childCode = await fs_1.default.promises.readFile(childId, 'utf-8');
75
+ source.add(await resolveGlsl(context, childId, childCode));
76
+ }
77
+ else {
78
+ let j = 0;
79
+ for (; j < line.length; j++) {
80
+ source.add(new source_map_1.SourceNode(i + 1, j, sourceMapId, line[j]));
81
+ }
82
+ source.add(new source_map_1.SourceNode(i + 1, j, sourceMapId, '\n'));
83
+ }
84
+ }
85
+ context.fileStack.pop();
86
+ return source;
87
+ }
88
+ //# sourceMappingURL=webgl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl.js","sourceRoot":"","sources":["../../src/partials/webgl.ts"],"names":[],"mappings":"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"}