@tsparticles/plugin-export-video 4.0.0-alpha.2 → 4.0.0-alpha.21

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.
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.2
7
+ * v4.0.0-alpha.21
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -28,16 +28,6 @@ return /******/ (() => { // webpackBootstrap
28
28
  /******/ "use strict";
29
29
  /******/ var __webpack_modules__ = ({
30
30
 
31
- /***/ "./dist/browser/index.js"
32
- /*!*******************************!*\
33
- !*** ./dist/browser/index.js ***!
34
- \*******************************/
35
- (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36
-
37
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadExportVideoPlugin: () => (/* binding */ loadExportVideoPlugin)\n/* harmony export */ });\nfunction loadExportVideoPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.2\");\n engine.register(async e => {\n const {\n ExportVideoPlugin\n } = await __webpack_require__.e(/*! import() */ \"dist_browser_ExportVideoPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./ExportVideoPlugin.js */ \"./dist/browser/ExportVideoPlugin.js\"));\n e.addPlugin(new ExportVideoPlugin());\n });\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-export-video/./dist/browser/index.js?\n}");
38
-
39
- /***/ },
40
-
41
31
  /***/ "@tsparticles/engine"
42
32
  /*!*********************************************************************************************************************************!*\
43
33
  !*** external {"commonjs":"@tsparticles/engine","commonjs2":"@tsparticles/engine","amd":"@tsparticles/engine","root":"window"} ***!
@@ -46,6 +36,16 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
46
36
 
47
37
  module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
48
38
 
39
+ /***/ },
40
+
41
+ /***/ "./dist/browser/index.js"
42
+ /*!*******************************!*\
43
+ !*** ./dist/browser/index.js ***!
44
+ \*******************************/
45
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
46
+
47
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadExportVideoPlugin: () => (/* binding */ loadExportVideoPlugin)\n/* harmony export */ });\nasync function loadExportVideoPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.21\");\n await engine.register(async (e)=>{\n const { ExportVideoPlugin } = await __webpack_require__.e(/*! import() */ \"dist_browser_ExportVideoPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./ExportVideoPlugin.js */ \"./dist/browser/ExportVideoPlugin.js\"));\n e.addPlugin(new ExportVideoPlugin());\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-export-video/./dist/browser/index.js?\n}");
48
+
49
49
  /***/ }
50
50
 
51
51
  /******/ });
@@ -1,2 +1,2 @@
1
- /*! For license information please see tsparticles.plugin.export.video.min.js.LICENSE.txt */
2
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(this,(e=>(()=>{var t,r,o={303(t){t.exports=e}},i={};function n(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return o[e](r,r.exports,n),r.exports}n.m=o,n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,r)=>(n.f[r](e,t),t)),[])),n.u=e=>e+".min.js",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="@tsparticles/plugin-export-video:",n.l=(e,o,i,a)=>{if(t[e])t[e].push(o);else{var p,s;if(void 0!==i)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var u=l[c];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==r+i){p=u;break}}p||(s=!0,(p=document.createElement("script")).charset="utf-8",n.nc&&p.setAttribute("nonce",n.nc),p.setAttribute("data-webpack",r+i),p.src=e),t[e]=[o];var d=(r,o)=>{p.onerror=p.onload=null,clearTimeout(f);var i=t[e];if(delete t[e],p.parentNode&&p.parentNode.removeChild(p),i&&i.forEach((e=>e(o))),r)return r(o)},f=setTimeout(d.bind(null,void 0,{type:"timeout",target:p}),12e4);p.onerror=d.bind(null,p.onerror),p.onload=d.bind(null,p.onload),s&&document.head.appendChild(p)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var o=r.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=r[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{var e={297:0};n.f.j=(t,r)=>{var o=n.o(e,t)?e[t]:void 0;if(0!==o)if(o)r.push(o[2]);else{var i=new Promise(((r,i)=>o=e[t]=[r,i]));r.push(o[2]=i);var a=n.p+n.u(t),p=new Error;n.l(a,(r=>{if(n.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;p.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",p.name="ChunkLoadError",p.type=i,p.request=a,o[1](p)}}),"chunk-"+t,t)}};var t=(t,r)=>{var o,i,[a,p,s]=r,l=0;if(a.some((t=>0!==e[t]))){for(o in p)n.o(p,o)&&(n.m[o]=p[o]);if(s)s(n)}for(t&&t(r);l<a.length;l++)i=a[l],n.o(e,i)&&e[i]&&e[i][0](),e[i]=0},r=this.webpackChunk_tsparticles_plugin_export_video=this.webpackChunk_tsparticles_plugin_export_video||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var a={};function p(e){e.checkVersion("4.0.0-alpha.2"),e.register((async e=>{const{ExportVideoPlugin:t}=await n.e(973).then(n.bind(n,973));e.addPlugin(new t)}))}return n.r(a),n.d(a,{loadExportVideoPlugin:()=>p}),a})()));
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(this,e=>(()=>{"use strict";var t,r,o,i={303(t){t.exports=e}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={exports:{}};return i[e](r,r.exports,a),r.exports}a.m=i,a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce((t,r)=>(a.f[r](e,t),t),[])),a.u=e=>""+e+".min.js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},a.l=(e,t,r,o)=>{if(s[e])return void s[e].push(t);if(void 0!==r)for(var i,n,p=document.getElementsByTagName("script"),l=0;l<p.length;l++){var c=p[l];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")=="@tsparticles/plugin-export-video:"+r){i=c;break}}i||(n=!0,(i=document.createElement("script")).charset="utf-8",a.nc&&i.setAttribute("nonce",a.nc),i.setAttribute("data-webpack","@tsparticles/plugin-export-video:"+r),i.src=e),s[e]=[t];var u=(t,r)=>{i.onerror=i.onload=null,clearTimeout(d);var o=s[e];if(delete s[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=u.bind(null,i.onerror),i.onload=u.bind(null,i.onload),n&&document.head.appendChild(i)},a.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.g.importScripts&&(p=a.g.location+"");var s,p,l=a.g.document;if(!p&&l&&(l.currentScript&&"SCRIPT"===l.currentScript.tagName.toUpperCase()&&(p=l.currentScript.src),!p)){var c=l.getElementsByTagName("script");if(c.length)for(var u=c.length-1;u>-1&&(!p||!/^http(s?):/.test(p));)p=c[u--].src}if(!p)throw Error("Automatic publicPath is not supported in this browser");a.p=p=p.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),t={297:0},a.f.j=(e,r)=>{var o=a.o(t,e)?t[e]:void 0;if(0!==o)if(o)r.push(o[2]);else{var i=new Promise((r,i)=>o=t[e]=[r,i]);r.push(o[2]=i);var n=a.p+a.u(e),s=Error();a.l(n,r=>{if(a.o(t,e)&&(0!==(o=t[e])&&(t[e]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;s.message="Loading chunk "+e+` failed.
2
+ (`+i+": "+n+")",s.name="ChunkLoadError",s.type=i,s.request=n,o[1](s)}},"chunk-"+e,e)}},r=(e,r)=>{var o,i,[n,s,p]=r,l=0;if(n.some(e=>0!==t[e])){for(o in s)a.o(s,o)&&(a.m[o]=s[o]);p&&p(a)}for(e&&e(r);l<n.length;l++)i=n[l],a.o(t,i)&&t[i]&&t[i][0](),t[i]=0},(o=this.webpackChunk_tsparticles_plugin_export_video=this.webpackChunk_tsparticles_plugin_export_video||[]).forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o));var d={};async function f(e){e.checkVersion("4.0.0-alpha.21"),await e.register(async e=>{let{ExportVideoPlugin:t}=await a.e(500).then(a.bind(a,500));e.addPlugin(new t)})}return a.r(d),a.d(d,{loadExportVideoPlugin:()=>f}),d})());
@@ -1,9 +1,7 @@
1
- import type { Container, IPlugin } from "@tsparticles/engine";
2
- import { ExportVideoInstance } from "./ExportVideoInstance.js";
1
+ import type { Container, IContainerPlugin, IPlugin } from "@tsparticles/engine";
3
2
  export declare class ExportVideoPlugin implements IPlugin {
4
- readonly id: string;
5
- constructor();
6
- getPlugin(container: Container): Promise<ExportVideoInstance>;
3
+ readonly id = "export-video";
4
+ getPlugin(container: Container): Promise<IContainerPlugin>;
7
5
  loadOptions(): void;
8
6
  needsPlugin(): boolean;
9
7
  }
@@ -1,5 +1,5 @@
1
1
  import { type Container, type ExportResult, type IContainerPlugin } from "@tsparticles/engine";
2
- export declare class ExportVideoInstance implements IContainerPlugin {
2
+ export declare class ExportVideoPluginInstance implements IContainerPlugin {
3
3
  private readonly _container;
4
4
  private readonly _supportedTypes;
5
5
  constructor(container: Container);
package/types/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import { type Engine } from "@tsparticles/engine";
2
- export declare function loadExportVideoPlugin(engine: Engine): void;
2
+ export declare function loadExportVideoPlugin(engine: Engine): Promise<void>;
@@ -1,22 +1,54 @@
1
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
+ if (k2 === undefined) k2 = k;
3
+ var desc = Object.getOwnPropertyDescriptor(m, k);
4
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
+ desc = { enumerable: true, get: function() { return m[k]; } };
6
+ }
7
+ Object.defineProperty(o, k2, desc);
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
14
+ }) : function(o, v) {
15
+ o["default"] = v;
16
+ });
17
+ var __importStar = (this && this.__importStar) || (function () {
18
+ var ownKeys = function(o) {
19
+ ownKeys = Object.getOwnPropertyNames || function (o) {
20
+ var ar = [];
21
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
22
+ return ar;
23
+ };
24
+ return ownKeys(o);
25
+ };
26
+ return function (mod) {
27
+ if (mod && mod.__esModule) return mod;
28
+ var result = {};
29
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
30
+ __setModuleDefault(result, mod);
31
+ return result;
32
+ };
33
+ })();
1
34
  (function (factory) {
2
35
  if (typeof module === "object" && typeof module.exports === "object") {
3
36
  var v = factory(require, exports);
4
37
  if (v !== undefined) module.exports = v;
5
38
  }
6
39
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./ExportVideoInstance.js"], factory);
40
+ define(["require", "exports"], factory);
8
41
  }
9
42
  })(function (require, exports) {
10
43
  "use strict";
44
+ var __syncRequire = typeof module === "object" && typeof module.exports === "object";
11
45
  Object.defineProperty(exports, "__esModule", { value: true });
12
46
  exports.ExportVideoPlugin = void 0;
13
- const ExportVideoInstance_js_1 = require("./ExportVideoInstance.js");
14
47
  class ExportVideoPlugin {
15
- constructor() {
16
- this.id = "export-video";
17
- }
18
- getPlugin(container) {
19
- return Promise.resolve(new ExportVideoInstance_js_1.ExportVideoInstance(container));
48
+ id = "export-video";
49
+ async getPlugin(container) {
50
+ const { ExportVideoPluginInstance } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./ExportVideoPluginInstance.js"))) : new Promise((resolve_1, reject_1) => { require(["./ExportVideoPluginInstance.js"], resolve_1, reject_1); }).then(__importStar));
51
+ return new ExportVideoPluginInstance(container);
20
52
  }
21
53
  loadOptions() {
22
54
  }
@@ -9,7 +9,7 @@
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ExportVideoInstance = void 0;
12
+ exports.ExportVideoPluginInstance = void 0;
13
13
  const engine_1 = require("@tsparticles/engine");
14
14
  const videoTypes = ["webm", "ogg", "mp4", "x-matroska"], codecs = [
15
15
  "vp9",
@@ -48,30 +48,10 @@
48
48
  });
49
49
  return supported;
50
50
  }
51
- class ExportVideoInstance {
51
+ class ExportVideoPluginInstance {
52
+ _container;
53
+ _supportedTypes = [];
52
54
  constructor(container) {
53
- this._supportedTypes = [];
54
- this._exportVideo = async (data) => {
55
- const element = this._container.canvas.element;
56
- if (!element) {
57
- return;
58
- }
59
- return new Promise(resolve => {
60
- const stream = element.captureStream(data.fps ?? this._container.actualOptions.fpsLimit), firstIndex = 0, mimeType = data.mimeType ?? this._supportedTypes[firstIndex], recorder = new MediaRecorder(stream, {
61
- mimeType,
62
- }), chunks = [], defaultDuration = 5;
63
- recorder.addEventListener("dataavailable", (event) => {
64
- chunks.push(event.data);
65
- });
66
- recorder.addEventListener("stop", () => {
67
- resolve(new Blob(chunks, { type: mimeType }));
68
- });
69
- recorder.start();
70
- setTimeout(() => {
71
- recorder.stop();
72
- }, data.duration ?? defaultDuration * engine_1.millisecondsToSeconds);
73
- });
74
- };
75
55
  this._container = container;
76
56
  this._supportedTypes = getVideoSupportedMimeTypes();
77
57
  }
@@ -87,6 +67,27 @@
87
67
  }
88
68
  return res;
89
69
  }
70
+ _exportVideo = async (data) => {
71
+ const element = this._container.canvas.element;
72
+ if (!element) {
73
+ return;
74
+ }
75
+ return new Promise(resolve => {
76
+ const stream = element.captureStream(data.fps ?? this._container.actualOptions.fpsLimit), firstIndex = 0, mimeType = data.mimeType ?? this._supportedTypes[firstIndex], recorder = new MediaRecorder(stream, {
77
+ mimeType,
78
+ }), chunks = [], defaultDuration = 5;
79
+ recorder.addEventListener("dataavailable", (event) => {
80
+ chunks.push(event.data);
81
+ });
82
+ recorder.addEventListener("stop", () => {
83
+ resolve(new Blob(chunks, { type: mimeType }));
84
+ });
85
+ recorder.start();
86
+ setTimeout(() => {
87
+ recorder.stop();
88
+ }, data.duration ?? defaultDuration * engine_1.millisecondsToSeconds);
89
+ });
90
+ };
90
91
  }
91
- exports.ExportVideoInstance = ExportVideoInstance;
92
+ exports.ExportVideoPluginInstance = ExportVideoPluginInstance;
92
93
  });
package/umd/index.js CHANGED
@@ -44,9 +44,9 @@ var __importStar = (this && this.__importStar) || (function () {
44
44
  var __syncRequire = typeof module === "object" && typeof module.exports === "object";
45
45
  Object.defineProperty(exports, "__esModule", { value: true });
46
46
  exports.loadExportVideoPlugin = loadExportVideoPlugin;
47
- function loadExportVideoPlugin(engine) {
48
- engine.checkVersion("4.0.0-alpha.2");
49
- engine.register(async (e) => {
47
+ async function loadExportVideoPlugin(engine) {
48
+ engine.checkVersion("4.0.0-alpha.21");
49
+ await engine.register(async (e) => {
50
50
  const { ExportVideoPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./ExportVideoPlugin.js"))) : new Promise((resolve_1, reject_1) => { require(["./ExportVideoPlugin.js"], resolve_1, reject_1); }).then(__importStar));
51
51
  e.addPlugin(new ExportVideoPlugin());
52
52
  });
package/973.min.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 973.min.js.LICENSE.txt */
2
- (this.webpackChunk_tsparticles_plugin_export_video=this.webpackChunk_tsparticles_plugin_export_video||[]).push([[973],{973(e,t,s){s.d(t,{ExportVideoPlugin:()=>n});var o=s(303);const p=["webm","ogg","mp4","x-matroska"],i=["vp9","vp9.0","vp8","vp8.0","avc1","av1","h265","h.265","h264","h.264","opus","pcm","aac","mpeg","mp4a"];class r{constructor(e){this._supportedTypes=[],this._exportVideo=async e=>{const t=this._container.canvas.element;if(t)return new Promise((s=>{const p=t.captureStream(e.fps??this._container.actualOptions.fpsLimit),i=e.mimeType??this._supportedTypes[0],r=new MediaRecorder(p,{mimeType:i}),n=[];r.addEventListener("dataavailable",(e=>{n.push(e.data)})),r.addEventListener("stop",(()=>{s(new Blob(n,{type:i}))})),r.start(),setTimeout((()=>{r.stop()}),e.duration??5*o.millisecondsToSeconds)}))},this._container=e,this._supportedTypes=function(){const e=e=>MediaRecorder.isTypeSupported(e),t=[];return p.forEach((s=>{const o=`video/${s}`;i.forEach((s=>{[`${o};codecs=${s}`,`${o};codecs=${s.toUpperCase()}`].forEach((s=>{e(s)&&t.push(s)}))})),e(o)&&t.push(o)})),t}()}async export(e,t){const s={supported:!1};if("video"===e)s.supported=!0,s.blob=await this._exportVideo(t);return s}}class n{constructor(){this.id="export-video"}getPlugin(e){return Promise.resolve(new r(e))}loadOptions(){}needsPlugin(){return!0}}}}]);
@@ -1 +0,0 @@
1
- /*! tsParticles Export Video Plugin v4.0.0-alpha.2 by Matteo Bruni */
@@ -1 +0,0 @@
1
- /*! tsParticles Export Video Plugin v4.0.0-alpha.2 by Matteo Bruni */