@vladimish/motion-canvas-2-vite-plugin 3.17.2
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/lib/index.d.ts +3 -0
- package/lib/index.js +23 -0
- package/lib/index.js.map +1 -0
- package/lib/main.d.ts +82 -0
- package/lib/main.js +43 -0
- package/lib/main.js.map +1 -0
- package/lib/openInExplorer.d.ts +1 -0
- package/lib/openInExplorer.js +45 -0
- package/lib/openInExplorer.js.map +1 -0
- package/lib/partials/assets.d.ts +6 -0
- package/lib/partials/assets.js +51 -0
- package/lib/partials/assets.js.map +1 -0
- package/lib/partials/audio.d.ts +9 -0
- package/lib/partials/audio.js +104 -0
- package/lib/partials/audio.js.map +1 -0
- package/lib/partials/corsProxy.d.ts +43 -0
- package/lib/partials/corsProxy.js +219 -0
- package/lib/partials/corsProxy.js.map +1 -0
- package/lib/partials/editor.d.ts +8 -0
- package/lib/partials/editor.js +76 -0
- package/lib/partials/editor.js.map +1 -0
- package/lib/partials/exporter.d.ts +6 -0
- package/lib/partials/exporter.js +49 -0
- package/lib/partials/exporter.js.map +1 -0
- package/lib/partials/index.d.ts +10 -0
- package/lib/partials/index.js +27 -0
- package/lib/partials/index.js.map +1 -0
- package/lib/partials/meta.d.ts +2 -0
- package/lib/partials/meta.js +67 -0
- package/lib/partials/meta.js.map +1 -0
- package/lib/partials/projects.d.ts +9 -0
- package/lib/partials/projects.js +89 -0
- package/lib/partials/projects.js.map +1 -0
- package/lib/partials/scenes.d.ts +2 -0
- package/lib/partials/scenes.js +47 -0
- package/lib/partials/scenes.js.map +1 -0
- package/lib/partials/settings.d.ts +2 -0
- package/lib/partials/settings.js +66 -0
- package/lib/partials/settings.js.map +1 -0
- package/lib/partials/webgl.d.ts +10 -0
- package/lib/partials/webgl.js +89 -0
- package/lib/partials/webgl.js.map +1 -0
- package/lib/plugins.d.ts +104 -0
- package/lib/plugins.js +9 -0
- package/lib/plugins.js.map +1 -0
- package/lib/utils.d.ts +3 -0
- package/lib/utils.js +55 -0
- package/lib/utils.js.map +1 -0
- package/lib/versions.d.ts +6 -0
- package/lib/versions.js +29 -0
- package/lib/versions.js.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corsProxy.js","sourceRoot":"","sources":["../../src/partials/corsProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
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.editorPlugin = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
function editorPlugin({ editor, projects }) {
|
|
10
|
+
const editorPath = path_1.default.dirname(require.resolve(editor));
|
|
11
|
+
const editorFile = fs_1.default.readFileSync(path_1.default.resolve(editorPath, 'editor.html'));
|
|
12
|
+
const htmlParts = editorFile
|
|
13
|
+
.toString()
|
|
14
|
+
.replace('{{style}}', `/@fs/${path_1.default.resolve(editorPath, 'style.css')}`)
|
|
15
|
+
.split('{{source}}');
|
|
16
|
+
const createHtml = (src) => htmlParts[0] + src + htmlParts[1];
|
|
17
|
+
const resolvedEditorId = '\0virtual:editor';
|
|
18
|
+
const lookup = new Map();
|
|
19
|
+
for (const project of projects) {
|
|
20
|
+
lookup.set(project.url, project);
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
name: 'motion-canvas:editor',
|
|
24
|
+
async load(id) {
|
|
25
|
+
const [, query] = id.split('?');
|
|
26
|
+
if (id.startsWith(resolvedEditorId)) {
|
|
27
|
+
if (projects.length === 1) {
|
|
28
|
+
/* language=typescript */
|
|
29
|
+
return `\
|
|
30
|
+
import {editor} from '${editor}';
|
|
31
|
+
import project from '${projects[0].filePath}?project';
|
|
32
|
+
editor(project);
|
|
33
|
+
`;
|
|
34
|
+
}
|
|
35
|
+
if (query) {
|
|
36
|
+
const params = new URLSearchParams(query);
|
|
37
|
+
const name = params.get('project');
|
|
38
|
+
if (name && lookup.has(name)) {
|
|
39
|
+
/* language=typescript */
|
|
40
|
+
return `\
|
|
41
|
+
import {editor} from '${editor}';
|
|
42
|
+
import project from '${lookup.get(name).filePath}?project';
|
|
43
|
+
editor(project);
|
|
44
|
+
`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/* language=typescript */
|
|
48
|
+
return `\
|
|
49
|
+
import {index} from '${editor}';
|
|
50
|
+
index(${JSON.stringify(projects)});
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
configureServer(server) {
|
|
55
|
+
server.middlewares.use((req, res, next) => {
|
|
56
|
+
if (req.url) {
|
|
57
|
+
const url = new URL(req.url, `http://${req.headers.host}`);
|
|
58
|
+
if (url.pathname === '/') {
|
|
59
|
+
res.setHeader('Content-Type', 'text/html');
|
|
60
|
+
res.end(createHtml('/@id/__x00__virtual:editor'));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const name = url.pathname.slice(1);
|
|
64
|
+
if (name && lookup.has(name)) {
|
|
65
|
+
res.setHeader('Content-Type', 'text/html');
|
|
66
|
+
res.end(createHtml(`/@id/__x00__virtual:editor?project=${encodeURIComponent(name)}`));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
next();
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
exports.editorPlugin = editorPlugin;
|
|
76
|
+
//# sourceMappingURL=editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/partials/editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 = void 0;
|
|
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: 'motion-canvas: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('motion-canvas:export', async ({ data, frame, name, subDirectories, mimeType }, client) => {
|
|
27
|
+
const extension = mime_types_1.default.extension(mimeType);
|
|
28
|
+
const outputFilePath = path_1.default.join(outputPath, ...subDirectories, `${name}.${extension}`);
|
|
29
|
+
const outputDirectory = path_1.default.dirname(outputFilePath);
|
|
30
|
+
if (!fs_1.default.existsSync(outputDirectory)) {
|
|
31
|
+
fs_1.default.mkdirSync(outputDirectory, { recursive: true });
|
|
32
|
+
}
|
|
33
|
+
const base64Data = data.slice(data.indexOf(',') + 1);
|
|
34
|
+
await writeBase64(outputFilePath, base64Data);
|
|
35
|
+
client.send('motion-canvas:export-ack', { frame });
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.exporterPlugin = exporterPlugin;
|
|
41
|
+
function writeBase64(filePath, base64) {
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
fs_1.default.createWriteStream(filePath)
|
|
44
|
+
.on('finish', resolve)
|
|
45
|
+
.on('error', reject)
|
|
46
|
+
.end(Buffer.from(base64, 'base64'));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=exporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../src/partials/exporter.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,4DAA8B;AAC9B,gDAAwB;AAExB,sDAAiD;AAMjD,SAAgB,cAAc,CAAC,EAAC,UAAU,EAAuB;IAC/D,OAAO;QACL,IAAI,EAAE,wBAAwB;QAE9B,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,sBAAsB,EACtB,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAC,EAAE,MAAM,EAAE,EAAE;gBAC9D,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,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;YACnD,CAAC,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAxCD,wCAwCC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,MAAc;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,YAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC;aAC3B,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;aACrB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;aACnB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './assets';
|
|
2
|
+
export * from './audio';
|
|
3
|
+
export * from './corsProxy';
|
|
4
|
+
export * from './editor';
|
|
5
|
+
export * from './exporter';
|
|
6
|
+
export * from './meta';
|
|
7
|
+
export * from './projects';
|
|
8
|
+
export * from './scenes';
|
|
9
|
+
export * from './settings';
|
|
10
|
+
export * from './webgl';
|
|
@@ -0,0 +1,27 @@
|
|
|
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("./audio"), exports);
|
|
19
|
+
__exportStar(require("./corsProxy"), exports);
|
|
20
|
+
__exportStar(require("./editor"), exports);
|
|
21
|
+
__exportStar(require("./exporter"), exports);
|
|
22
|
+
__exportStar(require("./meta"), exports);
|
|
23
|
+
__exportStar(require("./projects"), exports);
|
|
24
|
+
__exportStar(require("./scenes"), exports);
|
|
25
|
+
__exportStar(require("./settings"), exports);
|
|
26
|
+
__exportStar(require("./webgl"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/partials/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,6CAA2B;AAC3B,yCAAuB;AACvB,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,0CAAwB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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 = void 0;
|
|
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: 'motion-canvas: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 '@vladimish/motion-canvas-2-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('motion-canvas:meta', async ({ source, data }, client) => {
|
|
42
|
+
// Ignore virtual meta files.
|
|
43
|
+
if (source.startsWith('\0')) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
timeStamps[source] = Date.now();
|
|
47
|
+
await fs_1.default.promises.writeFile(source, JSON.stringify(data, undefined, 2), 'utf8');
|
|
48
|
+
client.send('motion-canvas:meta-ack', { source });
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
handleHotUpdate(ctx) {
|
|
52
|
+
const now = Date.now();
|
|
53
|
+
const modules = [];
|
|
54
|
+
for (const module of ctx.modules) {
|
|
55
|
+
if (module.file !== null &&
|
|
56
|
+
timeStamps[module.file] &&
|
|
57
|
+
timeStamps[module.file] + 1000 > now) {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
modules.push(module);
|
|
61
|
+
}
|
|
62
|
+
return modules;
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
exports.metaPlugin = metaPlugin;
|
|
67
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/partials/meta.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAGxB,SAAgB,UAAU;IACxB,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,IAAI,MAAsB,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,oBAAoB;QAE1B,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,oBAAoB,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAAE,MAAM,EAAE,EAAE;gBAClE,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,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAClC,MAAM,CACP,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;YAClD,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;AAzED,gCAyEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
2
|
+
import { PluginOptions, ProjectData } from '../plugins';
|
|
3
|
+
interface ProjectPluginConfig {
|
|
4
|
+
buildForEditor?: boolean;
|
|
5
|
+
plugins: PluginOptions[];
|
|
6
|
+
projects: ProjectData[];
|
|
7
|
+
}
|
|
8
|
+
export declare function projectsPlugin({ buildForEditor, plugins, projects, }: ProjectPluginConfig): Plugin;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
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.projectsPlugin = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
const versions_1 = require("../versions");
|
|
10
|
+
const PROJECT_QUERY_REGEX = /[?&]project\b/;
|
|
11
|
+
function projectsPlugin({ buildForEditor, plugins, projects, }) {
|
|
12
|
+
const versions = JSON.stringify((0, versions_1.getVersions)());
|
|
13
|
+
let config;
|
|
14
|
+
return {
|
|
15
|
+
name: 'motion-canvas:project',
|
|
16
|
+
configResolved(resolvedConfig) {
|
|
17
|
+
config = resolvedConfig;
|
|
18
|
+
},
|
|
19
|
+
async load(id) {
|
|
20
|
+
if (!PROJECT_QUERY_REGEX.test(id)) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const [base] = id.split('?');
|
|
24
|
+
const { name, dir } = path_1.default.posix.parse(base);
|
|
25
|
+
const runsInEditor = buildForEditor || config.command === 'serve';
|
|
26
|
+
const metaFile = `${name}.meta`;
|
|
27
|
+
await (0, utils_1.createMeta)(path_1.default.join(dir, metaFile));
|
|
28
|
+
const imports = [];
|
|
29
|
+
const pluginNames = [];
|
|
30
|
+
let index = 0;
|
|
31
|
+
for (const plugin of plugins) {
|
|
32
|
+
if (plugin.entryPoint) {
|
|
33
|
+
const pluginName = `plugin${index}`;
|
|
34
|
+
let options = (await plugin.runtimeConfig?.()) ?? '';
|
|
35
|
+
if (typeof options !== 'string') {
|
|
36
|
+
options = JSON.stringify(options);
|
|
37
|
+
}
|
|
38
|
+
imports.push(`import ${pluginName} from '${plugin.entryPoint}'`);
|
|
39
|
+
pluginNames.push(`${pluginName}(${options})`);
|
|
40
|
+
index++;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/* language=typescript */
|
|
44
|
+
return `\
|
|
45
|
+
${imports.join('\n')}
|
|
46
|
+
import {${runsInEditor ? 'editorBootstrap' : 'bootstrap'}} from '@vladimish/motion-canvas-2-core';
|
|
47
|
+
import {MetaFile} from '@vladimish/motion-canvas-2-core';
|
|
48
|
+
import metaFile from './${metaFile}';
|
|
49
|
+
import config from './${name}';
|
|
50
|
+
import settings from 'virtual:settings.meta';
|
|
51
|
+
export default ${runsInEditor ? 'await editorBootstrap' : 'bootstrap'}(
|
|
52
|
+
'${name}',
|
|
53
|
+
${versions},
|
|
54
|
+
[${pluginNames.join(', ')}],
|
|
55
|
+
config,
|
|
56
|
+
metaFile,
|
|
57
|
+
settings,
|
|
58
|
+
);`;
|
|
59
|
+
},
|
|
60
|
+
config(config) {
|
|
61
|
+
return {
|
|
62
|
+
build: {
|
|
63
|
+
target: buildForEditor ? 'esnext' : 'modules',
|
|
64
|
+
assetsDir: './',
|
|
65
|
+
rollupOptions: {
|
|
66
|
+
preserveEntrySignatures: 'strict',
|
|
67
|
+
input: Object.fromEntries(projects.map(project => [
|
|
68
|
+
project.name,
|
|
69
|
+
project.filePath + '?project',
|
|
70
|
+
])),
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
server: {
|
|
74
|
+
port: config?.server?.port ?? 9000,
|
|
75
|
+
},
|
|
76
|
+
esbuild: {
|
|
77
|
+
jsx: 'automatic',
|
|
78
|
+
jsxImportSource: '@vladimish/motion-canvas-2-2d/lib',
|
|
79
|
+
},
|
|
80
|
+
optimizeDeps: {
|
|
81
|
+
entries: projects.map(project => project.filePath),
|
|
82
|
+
exclude: ['preact', 'preact/*', '@preact/signals'],
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
exports.projectsPlugin = projectsPlugin;
|
|
89
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/partials/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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.scenesPlugin = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
const SCENE_QUERY_REGEX = /[?&]scene\b/;
|
|
10
|
+
function scenesPlugin() {
|
|
11
|
+
return {
|
|
12
|
+
name: 'motion-canvas:scene',
|
|
13
|
+
async load(id) {
|
|
14
|
+
if (!SCENE_QUERY_REGEX.test(id)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const [base] = id.split('?');
|
|
18
|
+
const { name, dir } = path_1.default.posix.parse(base);
|
|
19
|
+
const metaFile = `${name}.meta`;
|
|
20
|
+
await (0, utils_1.createMeta)(path_1.default.join(dir, metaFile));
|
|
21
|
+
const sceneFile = `${name}`;
|
|
22
|
+
/* language=typescript */
|
|
23
|
+
return `\
|
|
24
|
+
import {ValueDispatcher} from '@vladimish/motion-canvas-2-core';
|
|
25
|
+
import metaFile from './${metaFile}';
|
|
26
|
+
import description from './${sceneFile}';
|
|
27
|
+
description.name = '${name}';
|
|
28
|
+
metaFile.attach(description.meta);
|
|
29
|
+
if (import.meta.hot) {
|
|
30
|
+
description.onReplaced = import.meta.hot.data.onReplaced;
|
|
31
|
+
}
|
|
32
|
+
description.onReplaced ??= new ValueDispatcher(description.config);
|
|
33
|
+
if (import.meta.hot) {
|
|
34
|
+
import.meta.hot.accept();
|
|
35
|
+
if (import.meta.hot.data.onReplaced) {
|
|
36
|
+
description.onReplaced.current = description;
|
|
37
|
+
} else {
|
|
38
|
+
import.meta.hot.data.onReplaced = description.onReplaced;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export default description;
|
|
42
|
+
`;
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
exports.scenesPlugin = scenesPlugin;
|
|
47
|
+
//# sourceMappingURL=scenes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenes.js","sourceRoot":"","sources":["../../src/partials/scenes.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,oCAAoC;AAEpC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAExC,SAAgB,YAAY;IAC1B,OAAO;QACL,IAAI,EAAE,qBAAqB;QAE3B,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,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,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC;YAChC,MAAM,IAAA,kBAAU,EAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,GAAG,IAAI,EAAE,CAAC;YAE5B,yBAAyB;YACzB,OAAO;;0BAEa,QAAQ;6BACL,SAAS;sBAChB,IAAI;;;;;;;;;;;;;;;CAezB,CAAC;QACE,CAAC;KACF,CAAC;AACJ,CAAC;AAtCD,oCAsCC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 = void 0;
|
|
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(), '.motion-canvas/settings.json');
|
|
14
|
+
const outputDirectory = path_1.default.dirname(settingsPath);
|
|
15
|
+
return {
|
|
16
|
+
name: 'motion-canvas: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('motion-canvas: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('motion-canvas:meta-ack', { source });
|
|
61
|
+
});
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
exports.settingsPlugin = settingsPlugin;
|
|
66
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/partials/settings.ts"],"names":[],"mappings":";;;;;;AAAA,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,CAC/B,YAAE,CAAC,OAAO,EAAE,EACZ,8BAA8B,CAC/B,CAAC;IACF,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnD,OAAO;QACL,IAAI,EAAE,wBAAwB;QAE9B,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,oBAAoB,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAAE,MAAM,EAAE,EAAE;gBAClE,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,wBAAwB,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AA/DD,wCA+DC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
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 = void 0;
|
|
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: 'motion-canvas: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
|
+
exports.webglPlugin = webglPlugin;
|
|
53
|
+
async function resolveGlsl(context, id, code) {
|
|
54
|
+
const lines = code.split(/\r?\n/);
|
|
55
|
+
const source = new source_map_1.SourceNode(1, 0, '', '');
|
|
56
|
+
if (context.fileStack.includes(id)) {
|
|
57
|
+
throw new Error(`Circular dependency detected: ${context.fileStack.join(' -> ')}`);
|
|
58
|
+
}
|
|
59
|
+
context.fileStack.push(id);
|
|
60
|
+
const sourceMapId = path_1.default.posix.relative(context.rootDir, id);
|
|
61
|
+
for (let i = 0; i < lines.length; i++) {
|
|
62
|
+
const line = lines[i];
|
|
63
|
+
const match = line.match(INCLUDE_REGEX);
|
|
64
|
+
if (match) {
|
|
65
|
+
const childId = await context.resolve(match[1], id);
|
|
66
|
+
if (!childId) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const childSourceMapId = path_1.default.posix.relative(context.rootDir, childId);
|
|
70
|
+
if (context.includeMap.has(childSourceMapId)) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
context.includeMap.set(childSourceMapId, [sourceMapId, i + 1]);
|
|
74
|
+
context.watchFile(childId);
|
|
75
|
+
const childCode = await fs_1.default.promises.readFile(childId, 'utf-8');
|
|
76
|
+
source.add(await resolveGlsl(context, childId, childCode));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
let j = 0;
|
|
80
|
+
for (; j < line.length; j++) {
|
|
81
|
+
source.add(new source_map_1.SourceNode(i + 1, j, sourceMapId, line[j]));
|
|
82
|
+
}
|
|
83
|
+
source.add(new source_map_1.SourceNode(i + 1, j, sourceMapId, '\n'));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
context.fileStack.pop();
|
|
87
|
+
return source;
|
|
88
|
+
}
|
|
89
|
+
//# 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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"}
|