@remotion/webcodecs 4.0.427 → 4.0.429

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/README.md CHANGED
@@ -1,29 +1,18 @@
1
1
  # @remotion/webcodecs
2
-
2
+
3
3
  Media conversion in the browser
4
-
4
+
5
5
  [![NPM Downloads](https://img.shields.io/npm/dm/@remotion/webcodecs.svg?style=flat&color=black&label=Downloads)](https://npmcharts.com/compare/@remotion/webcodecs?minimal=true)
6
-
6
+
7
7
  ## Installation
8
-
8
+
9
9
  ```bash
10
10
  npm install @remotion/webcodecs --save-exact
11
11
  ```
12
-
12
+
13
13
  When installing a Remotion package, make sure to align the version of all `remotion` and `@remotion/*` packages to the same version.
14
14
  Remove the `^` character from the version number to use the exact version.
15
-
16
- ## Usage
17
-
18
- See the [documentation](https://remotion.dev/webcodecs) for more information.
19
-
20
- ## License
21
- This package is licensed under the [Remotion License](/docs/license).
22
- We consider a team of 4 or more people a "company".
23
-
24
- **For "companies"**: A Remotion Company license needs to be obtained to use this package.
25
- In a future version of `@remotion/webcodecs`, this package will also require the purchase of a newly created "WebCodecs Conversion Seat". [Get in touch](https://remotion.dev/contact) with us if you are planning to use this package.
26
15
 
27
- **For individuals and teams up to 3**: You can use this package for free.
16
+ ## Usage
28
17
 
29
- This is a short, non-binding explanation of our license. See the [License](https://remotion.dev/docs/license) itself for more details.
18
+ See the [documentation](https://remotion.dev/webcodecs) for more information.
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.autoSelectWriter = void 0;
4
- const web_fs_1 = require("./writers/web-fs");
5
4
  const with_resolvers_1 = require("./create/with-resolvers");
6
5
  const log_1 = require("./log");
7
6
  const buffer_1 = require("./writers/buffer");
7
+ const web_fs_1 = require("./writers/web-fs");
8
8
  const autoSelectWriter = async (writer, logLevel) => {
9
9
  if (writer) {
10
10
  log_1.Log.verbose(logLevel, 'Using writer provided by user');
@@ -1,5 +1,60 @@
1
+ // src/writers/buffer-implementation/writer.ts
2
+ var createContent = ({ filename, mimeType }) => {
3
+ const buf = new ArrayBuffer(0, {
4
+ maxByteLength: 2000000000
5
+ });
6
+ if (!buf.resize) {
7
+ throw new Error("Could not create buffer writer");
8
+ }
9
+ const write = (newData) => {
10
+ const oldLength = buf.byteLength;
11
+ const newLength = oldLength + newData.byteLength;
12
+ buf.resize(newLength);
13
+ const newArray = new Uint8Array(buf);
14
+ newArray.set(newData, oldLength);
15
+ };
16
+ const updateDataAt = (position, newData) => {
17
+ const newArray = new Uint8Array(buf);
18
+ newArray.set(newData, position);
19
+ };
20
+ let writPromise = Promise.resolve();
21
+ let removed = false;
22
+ const writer = {
23
+ write: (arr) => {
24
+ writPromise = writPromise.then(() => write(arr));
25
+ return writPromise;
26
+ },
27
+ finish: async () => {
28
+ await writPromise;
29
+ if (removed) {
30
+ return Promise.reject(new Error("Already called .remove() on the result"));
31
+ }
32
+ return Promise.resolve();
33
+ },
34
+ getBlob() {
35
+ const arr = new Uint8Array(buf);
36
+ return Promise.resolve(new File([arr.slice()], filename, { type: mimeType }));
37
+ },
38
+ remove() {
39
+ removed = true;
40
+ return Promise.resolve();
41
+ },
42
+ getWrittenByteCount: () => buf.byteLength,
43
+ updateDataAt: (position, newData) => {
44
+ writPromise = writPromise.then(() => updateDataAt(position, newData));
45
+ return writPromise;
46
+ }
47
+ };
48
+ return Promise.resolve(writer);
49
+ };
50
+
51
+ // src/writers/buffer.ts
52
+ var bufferWriter = {
53
+ createContent
54
+ };
55
+
1
56
  // src/writers/web-fs.ts
2
- var createContent = async ({ filename }) => {
57
+ var createContent2 = async ({ filename }) => {
3
58
  const directoryHandle = await navigator.storage.getDirectory();
4
59
  const actualFilename = `__remotion_mediaparser:${filename}`;
5
60
  const remove = async () => {
@@ -53,7 +108,7 @@ var createContent = async ({ filename }) => {
53
108
  return writer;
54
109
  };
55
110
  var webFsWriter = {
56
- createContent
111
+ createContent: createContent2
57
112
  };
58
113
  var canUseWebFsWriter = async () => {
59
114
  if (!("storage" in navigator)) {
@@ -74,61 +129,6 @@ var canUseWebFsWriter = async () => {
74
129
  }
75
130
  };
76
131
 
77
- // src/writers/buffer-implementation/writer.ts
78
- var createContent2 = ({ filename, mimeType }) => {
79
- const buf = new ArrayBuffer(0, {
80
- maxByteLength: 2000000000
81
- });
82
- if (!buf.resize) {
83
- throw new Error("Could not create buffer writer");
84
- }
85
- const write = (newData) => {
86
- const oldLength = buf.byteLength;
87
- const newLength = oldLength + newData.byteLength;
88
- buf.resize(newLength);
89
- const newArray = new Uint8Array(buf);
90
- newArray.set(newData, oldLength);
91
- };
92
- const updateDataAt = (position, newData) => {
93
- const newArray = new Uint8Array(buf);
94
- newArray.set(newData, position);
95
- };
96
- let writPromise = Promise.resolve();
97
- let removed = false;
98
- const writer = {
99
- write: (arr) => {
100
- writPromise = writPromise.then(() => write(arr));
101
- return writPromise;
102
- },
103
- finish: async () => {
104
- await writPromise;
105
- if (removed) {
106
- return Promise.reject(new Error("Already called .remove() on the result"));
107
- }
108
- return Promise.resolve();
109
- },
110
- getBlob() {
111
- const arr = new Uint8Array(buf);
112
- return Promise.resolve(new File([arr.slice()], filename, { type: mimeType }));
113
- },
114
- remove() {
115
- removed = true;
116
- return Promise.resolve();
117
- },
118
- getWrittenByteCount: () => buf.byteLength,
119
- updateDataAt: (position, newData) => {
120
- writPromise = writPromise.then(() => updateDataAt(position, newData));
121
- return writPromise;
122
- }
123
- };
124
- return Promise.resolve(writer);
125
- };
126
-
127
- // src/writers/buffer.ts
128
- var bufferWriter = {
129
- createContent: createContent2
130
- };
131
-
132
132
  // src/resizing/calculate-new-size.ts
133
133
  var ensureMultipleOfTwo = ({
134
134
  dimensions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/webcodecs",
3
- "version": "4.0.427",
3
+ "version": "4.0.429",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/esm/index.mjs",
@@ -12,7 +12,7 @@
12
12
  "url": "https://github.com/remotion-dev/remotion/issues"
13
13
  },
14
14
  "scripts": {
15
- "formatting": "prettier src --check",
15
+ "formatting": "oxfmt src --check",
16
16
  "lint": "eslint src",
17
17
  "test": "bun test src/test",
18
18
  "testwebcodecs": "playwright test src/it-tests",
@@ -27,13 +27,13 @@
27
27
  "author": "Jonny Burger <jonny@remotion.dev>",
28
28
  "license": "Remotion License (See https://remotion.dev/docs/webcodecs#license)",
29
29
  "dependencies": {
30
- "@remotion/media-parser": "4.0.427"
30
+ "@remotion/media-parser": "4.0.429"
31
31
  },
32
32
  "peerDependencies": {},
33
33
  "devDependencies": {
34
34
  "@types/dom-webcodecs": "0.1.11",
35
- "@remotion/example-videos": "4.0.427",
36
- "@remotion/eslint-config-internal": "4.0.427",
35
+ "@remotion/example-videos": "4.0.429",
36
+ "@remotion/eslint-config-internal": "4.0.429",
37
37
  "playwright": "1.55.1",
38
38
  "vite": "5.4.21",
39
39
  "@playwright/test": "1.55.1",
@@ -1,4 +0,0 @@
1
- export declare const sendUsageEvent: ({ apiKey, succeeded, }: {
2
- apiKey: string | null;
3
- succeeded: boolean;
4
- }) => Promise<void>;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendUsageEvent = void 0;
4
- const licensing_1 = require("@remotion/licensing");
5
- const sendUsageEvent = async ({ apiKey, succeeded, }) => {
6
- const host = typeof window === 'undefined'
7
- ? null
8
- : typeof window.location === 'undefined'
9
- ? null
10
- : (window.location.origin ?? null);
11
- if (host === null) {
12
- return;
13
- }
14
- await (0, licensing_1.registerUsageEvent)({
15
- apiKey,
16
- event: 'webcodec-conversion',
17
- host,
18
- succeeded,
19
- });
20
- };
21
- exports.sendUsageEvent = sendUsageEvent;
@@ -1,6 +0,0 @@
1
- declare global {
2
- interface Window {
3
- remotion_imported: string | boolean;
4
- }
5
- }
6
- export declare const setRemotionImported: () => void;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setRemotionImported = void 0;
4
- const media_parser_1 = require("@remotion/media-parser");
5
- // We set the `window.remotion_imported` variable for the sole purpose
6
- // of being picked up by Wappalyzer.
7
- // The Wappalyzer Chrome extension is used to detect the technologies
8
- // used on websites, and it looks for this variable.
9
- // Remotion is a customer of Wappalyzer and buys a list of domains
10
- // where Remotion is used from time to time.
11
- // Remotion uses this data to ensure companies which are required to get
12
- // a company license for this pacakge are actually doing so.
13
- const setRemotionImported = () => {
14
- if (typeof globalThis === 'undefined') {
15
- return;
16
- }
17
- if (globalThis.remotion_imported) {
18
- return;
19
- }
20
- globalThis.remotion_imported = media_parser_1.VERSION;
21
- if (typeof window !== 'undefined') {
22
- window.remotion_imported = `${media_parser_1.VERSION}-webcodecs`;
23
- }
24
- };
25
- exports.setRemotionImported = setRemotionImported;